summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
45 hoursmmcli: fix newline prefixingHEADmasterAleksander Morgado1-4/+9
The last line in a multi-line string was getting lost if it wasn't '\n' terminated.
45 hourslibmm-glib,modem: avoid accessing an already freed GArrayAleksander Morgado1-30/+47
We cannot g_array_unref() the GArray when get()-ing bands as that will clear the contents of the GArray, even if there are references around. Instead, just dup the array contents when returning.
3 daysmodem-helpers-mbim: handle MBIM_PIN_TYPE_UNKNOWN in switchAleksander Morgado1-0/+1
3 daysbuild: require mbim-glib >= 1.0.0 when building MBIM supportAleksander Morgado1-1/+1
5 daysnovatel: fix invalid comparison of unsigned expressionBen Chan1-1/+1
This patch fixes the following invalid comparison of unsigned expression: novatel/mm-plugin-novatel.c:148:29: error: comparison of unsigned expression >= 0 is always true [-Werror,-Wtautological-compare] if (ctx->nwdmat_retries >= 0) { ~~~~~~~~~~~~~~~~~~~ ^ ~ Bug reported on https://code.google.com/p/chromium/issues/detail?id=242150
5 daysbroadband-modem-qmi: when listing all SMS fails, list per tagAleksander Morgado1-27/+99
Some QMI modems seem to fail when requesting to list all SMS messages in a given storage. When this happens, we'll loop through all storages but performing per tag list requests.
5 dayssms-qmi: always specify message mode when deleting SMS messagesAleksander Morgado1-0/+4
5 daysbroadband-modem-qmi: always specify message mode when reading SMSAleksander Morgado1-0/+18
5 daysbearer: defer forced disconnection when modem unregistered while connectedAleksander Morgado1-33/+108
If the bearer is connected and we get a notification of being unregistered, wait up to 15s to force the disconnection, in case we can recover the registration in the meantime. https://bugzilla.gnome.org/show_bug.cgi?id=699803
5 daysbearer: allow registration changes from/to SEARCHING without disconnectingAleksander Morgado1-1/+1
We allow the modem to be connected while the registration state is 'SEARCHING', which may happen when the coverage is poor.
5 daysiface-modem-3gpp: remove the deferred registration updatesAleksander Morgado1-95/+0
We should really notify registration updates right away in the DBus interface.
6 daysdevice: check for NULL driver in add_port_driverBen Chan1-0/+2
This patch fixes a crash in MMDevice::add_port_driver() due to g_str_equal() dereferencing a NULL driver returned by mm_device_utils_get_port_driver(). Bug reported on https://code.google.com/p/chromium/issues/detail?id=241823
8 daysbuild: use -Wformat-securityAleksander Morgado1-1/+1
8 dayssms: fix validity variant parsingAleksander Morgado1-1/+1
12 daysconfigure.ac: enable maintainer mode by defaultAdrian Bunk1-1/+1
This is how it should be, and also consistent with NetworkManager.
2013-05-09huawei: use ^SYSINFOEX if available instead of ^SYSINFOAleksander Morgado1-87/+458
Newer Huawei modems, like the E3276 or the ME906 won't support ^SYSINFO, and we should instead use the newer ^SYSINFOEX. By default, use ^SYSINFOEX when available, as it provides more information than the plain ^SYSINFO. E.g.: ^SYSINFOEX:2,3,0,1,,3,"WCDMA",41,"HSPA+" ^SYSINFOEX:2,3,1,1,1,3,”WCDMA”,46,”DC-HSPA+”
2013-05-09huawei: ignore ^NDISSTAT unsolicited messagesAleksander Morgado1-0/+8
These messages give us information about the current connection status in the NDIS interface. We already have other means to know this status, so we just ignore the unsolicited message for now. E.g.: ^NDISSTAT: 1,,,"IPV4"
2013-05-09huawei: ignore ^HCSQ unsolicited messagesAleksander Morgado1-1/+8
Newer Huawei modems use ^HCSQ to report per-interface signal quality values, but we don't know yet what each field means for each technology, so just ignore them for now. E.g.: ^HCSQ: "GSM", 53 ^HCSQ: "WCDMA", 26, 24, 43 ^HCSQ: "LTE", 40, 28, 216, 14 We also don't use this message to update current access technology information, as it is not detailed enough (e.g. WCDMA doesn't specify whether it's plain UMTS or HSDPA or HSPA+...)
2013-05-07novatel: skip $NWDMAT if the modem has QMI portsAleksander Morgado1-1/+141
2013-05-07novatel: allow QMI-powered modemsAleksander Morgado1-1/+17
2013-05-07novatel: don't filter out the USB551LAleksander Morgado1-2/+1
We filter the E362 because it's managed by the Novatel LTE plugin. If we also filter out the USB551L, but it's not explicitly grabbed by any other plugin, it will default to the Generic one.
2013-05-07novatel: don't explicitly filter by driversAleksander Morgado1-2/+0
No real need to do it; the VID filter is already enough.
2013-05-06telit: add basic plugin for Telit 3GPP and 3GPP2 devicesdcbw/telit-pluginDan Williams6-1/+496
2013-05-06sms: enforce message 'class' value validityDan Williams1-1/+2
Class is -1 to 3, so warn about out-of-bounds values when it's being set on the client side.
2013-05-06sms: add support for message classDan Williams9-46/+50
We need to redefine the message class property to int since class 0 is a valid message class. Thus -1 now means "unspecified class".
2013-05-06broadband-modem-zte: chain up to parent access tech loading for CDMA-only ↵Dan Williams1-1/+21
devices (bgo #698850) CDMA-only devices don't support +ZPAS for access tech loading, so chain up to the parent so we get the QCDM fallback access tech loading functions. https://bugzilla.gnome.org/show_bug.cgi?id=698850
2013-05-06broadband-modem-nokia: load access technology with *CNTI if possibleDan Williams1-0/+124
Works on the N9/N950, but not supported by the N900.
2013-05-06broadband-modem-nokia: N900 doesn't disable echo unless explicitly doneDan Williams1-0/+2
During init, the N900 appears to ignore an E0 in the same command as an E1. So just add another init command to disable echo, which won't have any effect on devices that work with the first command.
2013-05-06sierra: remove comparison of unsigned expression >= 0Ben Chan1-3/+1
This patch removes an unnecessary check of unsigned expression >= 0, which also fixes the following clang warnings: sierra/mm-broadband-modem-sierra.c:570:18: error: comparison of unsigned expression >= 0 is always true [-Werror,-Wtautological-compare] mode >= 0 && ~~~~ ^ ~ Bug reported on https://code.google.com/p/chromium/issues/detail?id=235989 Patched by Yunlian Jiang <yunlian@chromium.org>
2013-05-06broadband-bearer: fix cid check in disconnect_3gppBen Chan1-1/+1
A value 0 is used to denote an invalid/uninitialized CID. This patch fixes a CID check in disconnect_3gpp() of MMBroadbandBearer such that it disables all PDP contexts via AT+CGACT=0 when no specific CID is used (i.e. cid == 0).
2013-04-30broadband-modem: update signal quality normalizationBen Chan1-3/+2
This patch updates normalize_ciev_cind_signal_quality() in MMBroadbandModem to remove an unnecessary check on 'quality >= 0' and also makes sure the normalized signal quality is capped at 100 when no maximum is specified. This is revised from a patch originally authored by Yunlian Jiang <yunlian@chromium.org>. Bug reported on https://code.google.com/p/chromium/issues/detail?id=235989
2013-04-30serial-port-qcdm: set SEND_DELAY to 0 (bgo #698869)Dan Williams1-0/+2
For some reason a number of ZTE CDMA devices want the whole QCDM frame in one USB transaction, or at least don't like it being broken up and sent byte-by-byte with a send delay. They simply don't respond. Since testing indicates that every other QCDM capable device I've got also handles a zero send delay on both 3.8.8 and 2.6.32, lets just set it to zero for everything, which should speed things up a bit too. https://bugzilla.gnome.org/show_bug.cgi?id=698869
2013-04-29mm-glib: use correct enum typeYunlian Jiang1-1/+1
2013-04-25time: normalize GetNetworkTime() response to local time + timezone info (bgo ↵Dan Williams6-40/+110
#697372) The GetNetworkTime() response is defined to be an ISO8601 string, which is in turn defined to be in local time. Make sure that's reflected in the documentation, and append the timezone offset to UTC where we have it. Oddly, Icera devices return their time info in UTC with an offset to the local timezone, so we have to jump through some hoops there to convert the response to localtime based on the reported offset. Some additional fixes by Aleksander Morgado <aleksander@lanedo.com>. https://bugzilla.gnome.org/show_bug.cgi?id=697372
2013-04-25broadband-modem: fix assertion during capabilities checking (bgo #698845)Dan Williams1-1/+9
If no capabilities could be determined from the modem's responses, result would be NULL but no error would be set, since the modem didn't time out or have some other critical error, it simply didn't report any recognized capabilities. Ensure that an error is reported in this case. https://bugzilla.gnome.org/show_bug.cgi?id=698845
2013-04-25sms: initialize the validity property when creating SMSAleksander Morgado1-0/+3
2013-04-25libmm-glib: handle relative validity in the MMSmsPropertiesAleksander Morgado3-25/+55
2013-04-25broadband-modem-icera: fix issues checking supported bandsDan Williams1-15/+36
Icera devices include bands that the modem doesn't support in the %IPBM=? list, so the plugin sets the band to its current enabled/disabled value to test whether that band is supported. There were two problems with this approach: 1) Setting an already-enabled band to be enabled apparently isn't a NOP; it might take more than the 3 seconds given, and if the response comes after 3 seconds, this greatly confuses ModemManager because the AT command/reply sequence is now messed up. So increase the timeout to 10 seconds. 2) Why bother checking bands that are already enabled anyway? We already know they are supported, so just don't check those bands at all. This requires some parkour because we use the parsed band array from %IPBM=? to track whether bands are enabled/disabled by indexing into the array, so instead just use two separate arrays. This actually makes the fix for #1 un-needed (because we never enable any bands) but it's good to have #1 anyway.
2013-04-25iface-modem: fix array insertion when setting bandsDan Williams1-2/+1
You can't g_array_insert_val() to an index that's beyond the end of the array, which was happening if the user tried to set the band list to "any": mmcli -m 0 --set-bands=any Just use g_array_append_val() instead. ==5618== Invalid read of size 2 ==5618== at 0x4A0A158: memcpy@GLIBC_2.2.5 (mc_replace_strmem.c:881) ==5618== by 0x326201D8FB: g_array_insert_vals (string3.h:57) ==5618== by 0x442EFB: mm_iface_modem_set_bands (mm-iface-modem.c:1982) ==5618== by 0x44307E: handle_set_bands_auth_ready (mm-iface-modem.c:2100) ==5618== by 0x326386DFF6: g_simple_async_result_complete (gsimpleasyncresult.c:775) ==5618== by 0x4358E3: authorize_ready (mm-base-modem.c:1300) ==5618== by 0x326386DFF6: g_simple_async_result_complete (gsimpleasyncresult.c:775) ==5618== by 0x326386E0F8: complete_in_idle_cb (gsimpleasyncresult.c:787) ==5618== by 0x3262047A54: g_main_context_dispatch (gmain.c:2715) ==5618== by 0x3262047D87: g_main_context_iterate.isra.24 (gmain.c:3290) ==5618== by 0x3262048181: g_main_loop_run (gmain.c:3484) ==5618== by 0x426235: main (main.c:142) ==5618== Address 0x10a7ea74e is not stack'd, malloc'd or (recently) free'd ==5618== ==5618== ==5618== Process terminating with default action of signal 11 (SIGSEGV) ==5618== Access not within mapped region at address 0x10A7EA74E ==5618== at 0x4A0A158: memcpy@GLIBC_2.2.5 (mc_replace_strmem.c:881) ==5618== by 0x326201D8FB: g_array_insert_vals (string3.h:57) ==5618== by 0x442EFB: mm_iface_modem_set_bands (mm-iface-modem.c:1982) ==5618== by 0x44307E: handle_set_bands_auth_ready (mm-iface-modem.c:2100) ==5618== by 0x326386DFF6: g_simple_async_result_complete (gsimpleasyncresult.c:775) ==5618== by 0x4358E3: authorize_ready (mm-base-modem.c:1300) ==5618== by 0x326386DFF6: g_simple_async_result_complete (gsimpleasyncresult.c:775) ==5618== by 0x326386E0F8: complete_in_idle_cb (gsimpleasyncresult.c:787) ==5618== by 0x3262047A54: g_main_context_dispatch (gmain.c:2715) ==5618== by 0x3262047D87: g_main_context_iterate.isra.24 (gmain.c:3290) ==5618== by 0x3262048181: g_main_loop_run (gmain.c:3484) ==5618== by 0x426235: main (main.c:142)
2013-04-25sierra: handle probing ERROR response betterDan Williams1-0/+7
The USB305 (Icera-based) apparently has a port that replies to everything with ERROR, and that port is unusable. Make sure it's ignored, otherwise MM may claim it as the primary AT port since it technically speaks AT.
2013-04-25huawei: only expect custom inits to be run on tty portsAleksander Morgado1-11/+17
2013-04-25zte: ensure error is set when +ZSNT response parser doesn't matchAleksander Morgado1-1/+11
2013-04-25x22x: ensure error is set when +SYSSEL response parser doesn't matchAleksander Morgado1-3/+11
2013-04-25sierra: ensure error is set when !SELRAT response parser doesn't matchAleksander Morgado1-1/+5
2013-04-25novatel: ensure error is set when $NWRAT response parser doesn't matchAleksander Morgado1-6/+10
2013-04-25huawei: ensure error is set when ^CPIN response parser doesn't matchAleksander Morgado1-3/+10
2013-04-25modem-helpers: ensure error is set when +CRM response parser doesn't matchAleksander Morgado1-37/+44
2013-04-25qcdm: remove unnecessary NULL check on free()Ben Chan1-6/+3
This patch removes a few unnecessary NULL checks on free(), which also fixes the following clang warnings: result.c:59:27: error: if statement has empty body [-Werror,-Wempty-body] if (v->u.u8_array); ^ result.c:59:27: note: put the semicolon on a separate line to silence this warning result.c:62:28: error: if statement has empty body [-Werror,-Wempty-body] if (v->u.u16_array); ^ result.c:62:28: note: put the semicolon on a separate line to silence this warning Bug reported on https://code.google.com/p/chromium/issues/detail?id=219280 Patched by Yunlian Jiang <yunlian@chromium.org>
2013-04-24x22x: add Archos G9 device tagsDan Williams1-0/+8
2013-04-24altair-lte: minor coding style fixesAleksander Morgado1-2/+3