summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* base-bearer: if method is PPP, require explicit bearer disconnectionmm-1-8Aleksander Morgado2019-08-051-2/+50
| | | | | | | | | | | Never automatically flag the bearer as disconnected if it's using PPP, because we could end up using the TTY at the same time as pppd, with the wrong CLOCAL settings. So, whenever we detect that the bearer requires PPP, we will ignore all disconnection reports generated by ModemManager itself. (cherry picked from commit 5f29bd64de8127cb326488d68a2a2b64a45e1f45)
* build: post-release version bump to 1.8.5Aleksander Morgado2019-07-041-1/+1
|
* release: bump version to 1.8.41.8.4Aleksander Morgado2019-07-041-1/+1
|
* NEWS: update for 1.8.4Aleksander Morgado2019-07-041-0/+30
|
* via: fix memory leak in parent_setup_registration_checks_readyBen Chan2019-07-041-0/+1
| | | | | | | | | This patch fixes a potential memory leak in parent_setup_registration_checks_ready() where the allocated SetupRegistrationChecksResults may be leaked when the MMIfaceModemCdma parent's setup_registration_checks() fails. (cherry picked from commit 7f78ef50100f7f125ddcd47a721676d80e86d1fe)
* modem-helpers: fix memory leak in mm_3gpp_parse_pdu_cmgl_responseBen Chan2019-07-041-0/+1
| | | | | | | | This patch fixes a potential memory leak in mm_3gpp_parse_pdu_cmgl_response() where the allocated MM3gppPduInfo may be leaked when failing to parse the +CMGL response. (cherry picked from commit 84fe52a1e6f1521ecc95666c5a17e37a4937b22a)
* port-qmi: increase qmi_device_open retriesDaniele Palmas2019-07-041-1/+1
| | | | | | | | Telit modems LM940/960 need more time for becoming responsive to qmi requests after device appearance. (cherry picked from commit 301bdcfef7e3407a675b37b99d2c57ddb249baa8) (cherry picked from commit a73b13b67cd1987431f92ea6a4ccc2cb85c51cc7)
* broadband-modem-mbim: parse nw_error in register_state_set_ready only if ↵Lech Perczak2019-07-041-15/+32
| | | | | | | | | | | | | | | | | | | | | | MBIM_STATUS_FAILURE Some modems (Namely: Telit LE910 V2) report nonzero NwError code, outside of 3GPP TS 24.008 - in "register-state set command-done" response, while status code equals MBIM_STATUS_ERROR_NONE. In such cases network is operational. According to MBIM specification 1.0 table 10.5.9.8 "Status codes", NwError shall be nonzero only if Status Code equals MBIM_STATUS_FAILURE, and client shall parse NwError only in such cases. Also, MBIM specification does not explicitly state that 'NwError == 0' equals no error, rather than that it is unknown error, hence raise an error unconditionally if MBIM status code is MBIM_STATUS_FAILURE. Therefore, check NwError IFF MBIM response status code equals MBIM_STATUS_FAILURE, instead of MBIM_STATUS_SUCCESS. Fixes: 854c371c8aa9 ("broadband-modem-mbim: implement 3GPP registration request") Signed-off-by: Lech Perczak <l.perczak@camlintechnologies.com> (cherry picked from commit 7a6e92727f1034f17d5d21f631f3e904b8a6011a)
* bearer-qmi: do not call cleanup_event_report_unsolicited_events() w/o ↵Lubomir Rintel2019-07-041-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | indication_id If a disconnection fails (because stop_network() failed), base-bearer flips the state back to CONNECTED. Oops. At that point something is clearly messed up, but it seems correct to assume the bearer is connected. Nevertheless, we will have already have unhooked the unsolicited events reporting. A subsequent attempt to disconnect the bearer will trip the assertion: #0 0x00007ffff75f2eb5 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007ffff75dd895 in __GI_abort () at abort.c:79 #2 0x00007ffff77beb53 in g_assertion_message (domain=<optimized out>, file=<optimized out>, line=<optimized out>, func=0x5088e0 <__FUNCTION__.56253> "cleanup_event_report_unsolicited_events", message=<optimized out>) at ../glib/gtestutils.c:2878 #3 0x00007ffff781a96f in g_assertion_message_expr (domain=domain@entry=0x0, file=file@entry=0x507aad "mm-bearer-qmi.c", line=line@entry=1138, func=func@entry=0x5088e0 <__FUNCTION__.56253> "cleanup_event_report_unsolicited_events", expr=expr@entry=0x507ae5 "*indication_id != 0") at ../glib/gtestutils.c:2904 #4 0x00000000004a0c49 in cleanup_event_report_unsolicited_events (client=<optimized out>, indication_id=0x5bb30c, self=<optimized out>) at mm-bearer-qmi.c:1138 #5 0x00000000004a0c49 in cleanup_event_report_unsolicited_events (client=<optimized out>, indication_id=indication_id@entry=0x5bb30c, self=0x5bb420 [MMBearerQmi]) at mm-bearer-qmi.c:1132 #6 0x00000000004a0ee3 in disconnect_context_step (task=0x7fffe8012100 [GTask]) at mm-bearer-qmi.c:1854 #7 0x000000000046e889 in disconnect_auth_ready (self=<optimized out>, res=<optimized out>, ctx=ctx@entry=0x654630) at mm-iface-modem-simple.c:865 #8 0x00007ffff79cfa9a in g_task_return_now (task=0x7fffe8012640 [GTask]) at ../gio/gtask.c:1209 ... Add checks for indication_id to calls to cleanup_event_report_unsolicited_events() on DISCONNECT_STEP_STOP_NETWORK_IPV4 or DISCONNECT_STEP_STOP_NETWORK_IPV6, as is done elsewhere. (cherry picked from commit 50fc46c17089fbb55595327a5c3fc82d83f792fd)
* iface-modem-3gpp: use correct finish() method to complete user registrationAleksander Morgado2019-06-241-1/+1
| | | | | https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/131 (cherry picked from commit d1b716abaf4fca0a31498ce77b17fbc7216a5936)
* mm-broadband-modem: fix error propagation in cdma service statusyparitcher2019-05-061-1/+1
| | | | (cherry picked from commit d56bc301dd6b65fce56affa55ddd86b4e3ff335f)
* libmm-glib: fix mm_manager_scan() operationAleksander Morgado2018-12-071-1/+1
| | | | | | The reporting of the operation result was reversed in the async method. (cherry picked from commit 46d627ff831b7d4d609060d77cd852f42cfcfa83)
* libmm-glib: fix mm_manager_set_logging() operationAleksander Morgado2018-12-071-1/+1
| | | | | | The reporting of the operation result was reversed in the async method. (cherry picked from commit 1ef58be792e992f0c4fee3e2f8ac274d2b832a40)
* libmm-glib,manager: fix manager interface proxy creationAleksander Morgado2018-12-071-3/+7
| | | | | | | | | | | We were re-using the GDBusObjectManagerClientFlags set in the MMManager object as GDBusProxyFlags for the Manager1 interface proxy object, and that was completely broken. Instead of setting "DO_NOT_AUTO_START" in the proxy, we were actually setting "DO_NOT_LOAD_PROPERTIES"... (cherry picked from commit d0bb8d1d503f2ce01ea85625294c238aa831d298)
* base-modem: fix segfault when disposing modemAleksander Morgado2018-11-281-0/+3
| | | | | | | | | | | | | If we have a modem reference around during an ongoing operation but the modem has already been disposed after getting removed from the system, we were trying to iterate a NULL hash table, which led to a crash. https://lists.freedesktop.org/archives/modemmanager-devel/2018-November/006915.html Reported by Sebastien Fabre <sebastien.fabre@sigfox.com> (cherry picked from commit 7510b3355d7c1a670ab1eff373ef04bc5a8ad282)
* build: post release version bump to 1.8.3Aleksander Morgado2018-09-221-1/+1
|
* release: bump version to 1.8.21.8.2Aleksander Morgado2018-09-221-1/+1
|
* NEWS: update for 1.8.2Aleksander Morgado2018-09-221-0/+69
|
* cli,signal: add generic fields in its own groupAleksander Morgado2018-09-221-1/+1
| | | | | | | This is just to consolidate the output w.r.t. similar fields in e.g. the Messaging or Location interfaces. (cherry picked from commit 8ef6d397c70313bdc511319c707e0ae825eacc96)
* po: minor updates in fr and it translation filesAleksander Morgado2018-09-222-13/+11
| | | | (cherry picked from commit e75063d80a8b18a28a89116beb78e42fe85c0d56)
* [l10n] Add Italian translationMilo Casagrande2018-09-222-0/+109
| | | | | Signed-off-by: Milo Casagrande <milo@milo.name> (cherry picked from commit 45a8fccb03ddcc35080f746bbe00b481bdbfb43e)
* broadband-modem: Call signal shutdown function when modem is disabledPaul Bartell2018-09-221-0/+6
| | | | (cherry picked from commit 3dc4106f0da30a31af040cb7c38cc1df6a1a177c)
* iface-modem-signal: Tear down refresh context upon shutdown.Paul Bartell2018-09-221-0/+3
| | | | (cherry picked from commit fe3665b18ed79f6de759718959154d5cbee4382a)
* helpers,tests: update ICCID related unit testsAleksander Morgado2018-09-221-1/+31
| | | | | | | | | | Fix the test for invalid characters, because now I allow hex chars in the account number. And add new tests with real China Mobile ICCIDs that contain hex chars in the account number. (cherry picked from commit 32aa8333c62296c7c9c918b161e35355821e7615)
* helpers: allow [A-F] range in operator-specific ICCID account numberAleksander Morgado2018-09-221-19/+22
| | | | | | | | | | | | | | | | | There are operators (e.g. the Chinese CMCC operator) that abuse the fact that 4 bits are used to store the BCD encoded numbers, and also use the [A-F] range as valid characters for the ICCID in the operator specific account number part. Haven't seen any documentation where this format with [A-F] characters is explicitly allowed, but I have seen multiple real cases where it happens. E.g.: 898602F9091830030220 898602C0123456789012 This patch also removes the 'last F' validation, used when reading 19-digit ICCIDs with +CRSM, as it no longer applies. (cherry picked from commit 099d54a4bcaf7d71ccda1d42424d5b73ec286911)
* ublox: implement custom ICCID loadingAleksander Morgado2018-09-224-0/+240
| | | | | | | Use AT+CCID to query the SIM ICCID, and fallback to parent's +CRSM based method otherwise. (cherry picked from commit eb01914bd0cada5d2ed144d5f3f45fd17722e97c)
* helpers: allow 19-digit reported ICCIDsAleksander Morgado2018-09-222-8/+32
| | | | | | | | | | | | | | | | | | | | | | | The mm_3gpp_parse_iccid() method does validation of the ICCID string and was originally implemented to handle +CRSM reported values. The implementation was looking for 20-digit strings, even for 19-digit ICCIDs (those finished with a trailing 'F'). We now extend the logic to also validate ICCID strings reported as 19-digit values directly, and when that happens we won't allow swapping of the digits (a +CRSM specific requirement) or trailing 'F' characters (as that is only required when reporting 19-digit ICCIDs with 20-digit strings). This change allows us to e.g. use the u-blox specific AT+CCID command and validate the returned ICCID with the same helper method, which currently fails: (ttyACM2): --> 'AT+CCID<CR>' (ttyACM2): <-- '<CR><LF>+CCID: 8934077700015848638<CR><LF><CR><LF>OK<CR><LF>' couldn't load SIM identifier: 'Invalid ICCID response size (was 19, expected 20)' (cherry picked from commit 02821232878d2a12bf248b7f2594c48076593810)
* broadband-bearer: don't do connection checks on CDMAAleksander Morgado2018-09-221-0/+8
| | | | | | | | | | On CDMA-only connections we won't have a CID defined, so instead of getting in a loop of warnings reporting "cid not defined", early error out with an UNSUPPORTED error so that the connection check isn't tried any more. https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/83 (cherry picked from commit 47ed19d5be68f139d4fbb00c997cd2805488ace7)
* test,modem-helpers: remove unnecessary NULL check for g_free()Ben Chan2018-09-221-2/+1
| | | | | | | g_free() handles a NULL pointer properly, so there is no need to have a NULL check before calling g_free(). (cherry picked from commit 1b3b2e26a7ff4faf536074b8b82d6e4eec11b36c)
* docs: mm_modem_get_sim is asyncGuido Günther2018-09-221-1/+1
| | | | | Signed-off-by: Guido Günther <guido.gunther@puri.sm> (cherry picked from commit f24d8279bcfac4f9945c2e47bf60e6dfc5a686f5)
* cinterion: new 'MMSharedCinterion' interfaceAleksander Morgado2018-09-225-282/+343
| | | | | | | | | | | | | | | | | | | Implement a new interface to keep the code shared between the QMI and non-QMI modem implementations. While doing that, also fix the parent interface pointer handling, so that it isn't a static pointer applicable to all modems, and make it a per-modem specific pointer. Without this fix, ModemManager would crash if e.g. running with both a QMI and non-QMI Cinterion modem at the same time. The new shared Cinterion logic will be in charge of managing all GPS sources not already managed by the parent interface. E.g. if the parent implementation already supports QMI-based GPS location (using the LOC service for example) prefer that to the custom AT-based logic. (cherry picked from commit 59e79c996b4863448f68a262bf8be053416a1344)
* Add French translationClaude Paroz2018-09-222-0/+107
| | | | (cherry picked from commit cc0c76d87564aacee774644a3422d7854f0090bb)
* po: add Turkish translationAleksander Morgado2018-09-222-0/+106
| | | | | | | From: Emin Tufan Çetin <etcetin@gmail.com> https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/80 (cherry picked from commit 89ffcbdd8db4164a4a1cbea0224b0cc14a3f57b0)
* broadband-modem-mbim: explicitly ignore SMS storage initializationAleksander Morgado2018-09-221-0/+2
| | | | | | | | The MBIM protocol hides to the user the concept of SMS storages, so we should explicitly ignore the initialization step so that it isn't run with the parent AT-based implementation. (cherry picked from commit b7e5ca62c5eca1118e0c5cbda3d769f2c756c92c)
* cli,signal: print unset signal values as n/aAleksander Morgado2018-09-221-37/+37
| | | | (cherry picked from commit 342abd7f6303ccd7f9a519c766ea53f3aa924b2d)
* libmm-glib,signal: fix MM_SIGNAL_UNKNOWN symbol valueAleksander Morgado2018-09-221-1/+1
| | | | | | | | | | | | | | | | Unfortunately, G_MINDOUBLE is basically 0.0, so MM_SIGNAL_UNKNOWN ends up giving us a value that may fall in the range of expected values for the signal component. Update the MM_SIGNAL_UNKNOWN symbol to match a value which is definitely out any other possible valid range, so that we can easily detect which values are set and which aren't. While API is maintained, this fix is introducing an ABI break. Not a big deal anyway, as the purpose of the value is just to detect unset fields. (cherry picked from commit fe66bdf65e57fa7dee3dcb8dea068fb3fc7aec34)
* iface-modem: reload current bands after settingAleksander Morgado2018-09-221-24/+66
| | | | | | | | | | | | | Setting bands is a very device-specific operation. Sometimes the device requires specific band combinations, or sometimes the 'any' specific logic doesn't apply to all supported bands (e.g. may apply only to the currently selected modes, as in XMM based devices). So, don't assume that if the set command succeeds we have set all expected bands. Instead, do an explicit loading of the current bands after the set operation, same thing as we do when setting modes. (cherry picked from commit 59a5af9771b942ea6878e2f428635daae624f229)
* dell: don't ignore TTYs in QMI/MBIM modemsAleksander Morgado2018-09-221-4/+0
| | | | | | | | | | | When we detect that the modem is QMI-capable or MBIM-capable, we still want to be able to use TTYs, for features unsupported by the main protocols. So, don't flag all the TTYs as non-AT non-QCDM, let them probe as usual instead. (cherry picked from commit 24e31dc2b86ade753a0c5853ae568f2312e19072)
* broadband-modem: allow Enable() if disabling or initializingAleksander Morgado2018-09-221-12/+4
| | | | | | | | | | The first step in the Enable() processing is to wait for a final state, so we can definitely wait for the ongoing disabling or initializing states to finish before we go on with the enable operation, there is no need to early fail if the disabling or initializing intermediate states are detected. (cherry picked from commit 8430b051139cc4ca5711345f6244ca5cf160c7e6)
* base-modem: allow parallel Enable() and Disable() requestsAleksander Morgado2018-09-222-23/+100
| | | | | | | | | | | If additional Enable() requests are received while one is already ongoing, we queue them and will end up completing all with the same result once the first one finishes. Same logic also for Disable(). https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/8 (cherry picked from commit c4766122476b53a89c606bd0c0cbbd0ec6d9826b)
* docs/ModemManager.8: document --filter-policy optionLubomir Rintel2018-09-221-0/+17
| | | | (cherry picked from commit dbfc03d9ac5f0ab78d5447b0541cb459ab15c32c)
* docs: move mmcli(8) to section 1Lubomir Rintel2018-09-223-4/+4
| | | | | | Section (8) is for tools that require root privileges. (cherry picked from commit b56cd74ab57edc024eefbcfa0bf0e5ffbabe32eb)
* signal: cleanup previous extended info if no new one givenAleksander Morgado2018-09-221-5/+10
| | | | | | | | | | | | | | | | | | | | | E.g. if the modem switches from 4G to 3G while the extended signal information is enabled, we should no longer expose LTE specific signal quality values, only the UMTS specific ones. E.g. to avoid this: $ mmcli -m 1 --signal-get ------------------------- UMTS | RSSI: '0,00' dBm | RSCP: '-92,00' dBm | EcIo: '-13,00' dB ------------------------- LTE | RSSI: '0,00' dBm | RSRQ: '-6,50' dB | RSRP: '-96,00' dBm | SNR: '0,00' dB (cherry picked from commit ae9efa05c855c94122ef25ab6ee43dee13c1a64c)
* build: ignore all tester programs for plugin-specific modem helpersAleksander Morgado2018-09-221-9/+1
| | | | (cherry picked from commit ab0133445c67091bc494f01bfaea663d5298c568)
* cinterion: fix band related unit testsAleksander Morgado2018-09-221-10/+4
| | | | | | | | | | | The sort_band() method used in the tester was totally wrong, it was comparing the addresses of the variables instead of the MMModemBand values. Use the common mm_common_bands_garray_sort() instead, which works as expected. (cherry picked from commit b8c7773a74f0c460ff19742a29dbf0060119e584)
* broadband-modem-mbim: avoid use of uninitialized variableAleksander Morgado2018-09-221-1/+1
| | | | (cherry picked from commit 3a4a137de31cf1513c5fba4685b3de34eaa8713a)
* mm-modem-helpers-cinterion: update band table for PLS8-JReinhard Speyerer2018-09-221-1/+3
| | | | | | | | The default AT^SCFG="Radio/Band" value for Cinterion PLS8-J devices is "16819472". Add UMTS band 19 and LTE band 19 entries based on the information given in the PLS8 datasheet. (cherry picked from commit ebe9fcd57445460c3a37f7a82dc67843fb07a5cb)
* iface-modem-voice: fix ordering of D-Bus signals for call addition/deletionBob Ham2018-09-221-0/+2
| | | | | | | | | | | | To have proper ordering in the D-Bus signals, the skeleton's property changes must be flushed before the Call{Add,Delet}ed signals are emitted. Without this flush, the emission of the PropertiesChanged signal is delayed until the main loop is idle. This causes problems on the client side, for example the CallAdded signal being received before the Calls property contains the call. Closes: #81 (cherry picked from commit a160832fced9c1e944e119ffdb47ff6460abc8aa)
* man,mmcli: fix documentation for --set-current-bandsAleksander Morgado2018-09-221-1/+1
| | | | | | Reported by: Matthew Stanger <stangerm2@gmail.com> (cherry picked from commit 95cee88ccd7a87147ef8222ed575eb12c73320ee)
* mm-modem-helpers-cinterion: update freq/band tablemstanger2018-09-221-10/+22
| | | | | | | | | | | | This info comes from PLS8-X/E/J/V/US, HC25 & PHS8 references, the last two can be found publicly via Google search. Swapped bit-mask locations for G850 & PCS bands as they may have changed with FW or where accidently put in the wrong place. Updated many 3G & 4G bit-mask fields. (cherry picked from commit 7913fe4fafb583d517ca21ab6ea59d9a1d8c773d)