aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-05broadband-modem-qmi: switch USSD state to idle when ussd session is ↵Maxim Anisimov
terminated by network The cellular operator can break the interactive USSD session. In this case, it is necessary to process this situation otherwise --3gpp-ussd-initiate or --3gpp-ussd-respond will give an error. Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2020-06-05cli: make control chars in strings are escaped correctly for json outputMaxim Anisimov
We need to change json output escaping according to this https://bugzilla.gnome.org/show_bug.cgi?id=730425 Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2020-06-05sms-part-3gpp: fix unicode names in sms decode iconv() operationsMaxim Anisimov
So that the limited iconv() in OpenWRT supports the conversion properly. Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2020-06-04build: bump version to 1.13.900 (1.14-rc1)Aleksander Morgado
2020-06-04NEWS: add details about the plugin configure optionsAleksander Morgado
2020-06-04filter: setup automatic per-vid checks in the plugin whitelistAleksander Morgado
Until now, the plugin whitelist rule in the filter would only handle those plugins that require specific udev tags, and those that had explicit full vid:pid pairs. This update makes a new implicit automatic whitelist for all devices that match any of the vids managed by the different plugins. Looking at the current list of devices in the blacklist and greylist maintained by ModemManager, there are no devices falling under the list of supported plugin vids that would need to be blacklisted; except for u-blox GPS modules: huawei -> 0x12d1 -> None in blacklist/greylist thuraya -> 0x1a26 -> None in blacklist/greylist telit -> 0x1bc7 -> None in blacklist/greylist dLink -> 0x2001 -> None in blacklist/greylist wavecom -> 0x114f -> None in blacklist/greylist x22x -> 0x1bbb,0x0b3c -> None in blacklist/greylist anydata -> 0x16d5 -> None in blacklist/greylist quectel -> 0x2c7c -> None in blacklist/greylist haier -> 0x201e -> None in blacklist/greylist novatel -> 0x1410 -> None in blacklist/greylist dell -> 0x413c -> None in blacklist/greylist option -> 0x0af0,0x1931 -> None in blacklist/greylist nokia -> 0x0421 -> None in blacklist/greylist cinterion -> 0x1e2d,0x0681 -> None in blacklist/greylist simtech -> 0x1e0e -> None in blacklist/greylist iridium -> 0x1edd -> None in blacklist/greylist pantech -> 0x106c -> None in blacklist/greylist longcheer -> 0x1c9e,0x1bbb -> None in blacklist/greylist linktop -> 0x230d -> None in blacklist/greylist sierra -> 0x1199 -> None in blacklist/greylist ublox -> 0x1546 -------------> GPS chips blacklisted !!!!! foxconn -> 0x0489 -> None in blacklist/greylist broadmobi -> 0x2020 -> None in blacklist/greylist fibocom -> 0x2cb7 -> None in blacklist/greylist tplink -> 0x2357 -> None in blacklist/greylist zte -> 0x19d2 -> None in blacklist/greylist The rules used to blacklist the u-blox GPS chips have already been moved to the u-blox plugin itself, and now they use the broader ID_MM_DEVICE_IGNORE tag that applies in all filter modes.
2020-06-04ublox: fully ignore GPS devices with plugin-installed rulesAleksander Morgado
Instead of setting up the ID_MM_TTY_BLACKLIST tag used in 'legacy' filter mode, tag all known u-blox GPS devices with the broader ID_MM_DEVICE_IGNORE tag that applies under all filter modes. Also, make this rules be installed by the plugin itself, because at the end, it is the u-blox plugin the one attempting to probe all devices with vid 0x1546.
2020-06-04NEWS: update MBIM reset operation info to include Qualcomm devicesAleksander Morgado
We're using QMI over MBIM to perform the reset if the device is QMI based.
2020-06-03build: require libmbim 1.24-rc1Aleksander Morgado
2020-06-03NEWS: update for 1.14.0Aleksander Morgado
2020-06-03docs,libmm-glib: add 1.14 indexAleksander Morgado
2020-06-02wavecom: break loop matching 2G bands if exact combination foundAleksander Morgado
2020-06-02wavecom: port to use g_autoptr() setupAleksander Morgado
2020-06-02wavecom: fix GTask return handling when loading current capsAleksander Morgado
2020-06-01huawei: ignore NDISDUP disconnection errorsAleksander Morgado
Running NDISDUP=1,0 on an already disconnected bearer/context will report ERROR, so we can really ignore the result of the command, because we're anyway going to get the correct bearer/context status later on with the NDISSTATQRY checks.
2020-06-01huawei: don't delay reporting network initiated disconnectsAleksander Morgado
When a network-initiated event is received telling us that a bearer/context is disconnected, we should handle and process it right away, without thinking on whether there is going to be a user-requested disconnect afterwards or not. This effectively reverts the changes introduced in commit 21a5aaf4fe6934aad2e6c770aa4bdffa3ad29f9d, which looks like was done to handle synchronization issues with upper layers (e.g. with NetworkManager or Shill). Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/205
2020-06-01filter: 'strict' is the new defaultAleksander Morgado
The 'strict' filter policy is less invasive, as it will not touch TTYs unless there are clear indications that it may be a modem. Under this mode, the ModemManager-provided blacklist database is not used.
2020-06-01filter: rename 'default' to 'legacy'Aleksander Morgado
The old 'default' policy is renamed to 'legacy', and is considered now deprecated.
2020-06-01shared-qmi: require minimum set of NMEA types before starting GNSS engineAleksander Morgado
2020-06-01ci: always build libqmi with basic collectionAleksander Morgado
Which must be the minimum set of supported messages required by ModemManager.
2020-06-01broadband-modem-qmi: plug memleak when changing current firmwareAleksander Morgado
==80079== 104 (40 direct, 64 indirect) bytes in 1 blocks are definitely lost in loss record 4,761 of 5,232 ==80079== at 0x483977F: malloc (vg_replace_malloc.c:309) ==80079== by 0x5025AE9: g_malloc (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x5006223: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x505B0F4: g_array_sized_new (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x2008A3: firmware_change_current (mm-broadband-modem-qmi.c:8426) ==80079== by 0x1AB5F3: select_auth_ready (mm-iface-modem-firmware.c:225) ==80079== by 0x4E68653: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x4E6DA26: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x17402E: authorize_ready (mm-base-modem.c:1363) ==80079== by 0x4E68653: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x4E6DA26: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x15366D: check_authorization_ready (mm-auth-provider.c:99)
2020-06-01iface-modem-firmware: plug memleak when listing imagesAleksander Morgado
==80079== 1,377 (48 direct, 1,329 indirect) bytes in 1 blocks are definitely lost in loss record 5,200 of 5,232 ==80079== at 0x483977F: malloc (vg_replace_malloc.c:309) ==80079== by 0x5025AE9: g_malloc (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x5006223: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x4FEB59B: ??? (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x4FEE378: g_variant_builder_end (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x48F8314: mm_firmware_properties_get_dictionary (mm-firmware-properties.c:337) ==80079== by 0x1AAF29: load_current_ready (mm-iface-modem-firmware.c:80) ==80079== by 0x4E68653: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x4E68688: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x502B58E: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x502D530: ??? (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x502E542: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.6400.2)
2020-05-29huawei: fix memory leak when parsing HCSQ responseLouis-Alexis Eyraud
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/220
2020-05-28cinterion: fix syntax error for setting radio/bands/[23]gGiacinto Cifelli
2020-05-27iface-modem-voice: fix assertions in call setup/teardown logicAleksander Morgado
2020-05-27cinterion: skip sim ready check for modules that don't support itGiacinto Cifelli
2020-05-27blacklist: add USB CEC adaptersAleksander Morgado
These are not being probed when using the STRICT filter, so this blacklist update is relevant only for DEFAULT filter type. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/212
2020-05-26cinterion: simplify checkGiacinto Cifelli
no longer need to check the charset because of the fix in charsets, that now accepts GSM and UCS2.
2020-05-26zte: add MF667 port type hintsAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/217
2020-05-26charsets: take_and_convert() methods should support GSM encodingAleksander Morgado
The iconv() operation would fail because we wouldn't give any proper charset string to convert to/from. Use our custom GSM encoding support instead.
2020-05-26charsets,test: extend UCS2->UTF-8 testing for the reverse operationAleksander Morgado
2020-05-26charsets: don't warn in unlikely case of needing to convert to HEX from UTF-8Aleksander Morgado
This would really be an implementation detail, not a real use case. Just don't warn in this case, as in the conversion in the opposite direction.
2020-05-26cinterion: minor coding style fixes in new band managementAleksander Morgado
2020-05-26cinterion: radio/band handling for LTE modemsGiacinto Cifelli
2020-05-26Revert "charsets: don't warn in unlikely case of needing to convert to HEX ↵Aleksander Morgado
from UTF-8" This reverts commit 6a7dd87f30b2cc1b459abab38a0805aa8ba1bfbc. Reverting because the merge request was set to squash all together....
2020-05-26charsets: don't warn in unlikely case of needing to convert to HEX from UTF-8Giacinto Cifelli
This would really be an implementation detail, not a real use case. Just don't warn in this case, as in the conversion in the opposite direction.
2020-05-25broadband-modem-qmi: only use "Data Service Capabilities" array if content givenAleksander Morgado
See https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/32#note_505065
2020-05-22huawei: ignore ^CCALLSTATE URCs for nowAleksander Morgado
We will want to support these to avoid needing to have CLCC call polling, but for now, just ignore them so that they don't interfere with the call management. For context, see: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/216
2020-05-21iface-modem-voice: fix assert() when setting up call pollingAleksander Morgado
If an incoming call is detected during the CLCC polling, the polling timeout will already be set, so don't assert when checking the polling id afterwards, just make sure we don't reset the timeout. https://lists.freedesktop.org/archives/modemmanager-devel/2020-May/007866.html
2020-05-19cinterion,tests: avoid cast-align errorsAleksander Morgado
We can safely cast the data in a GArray to gpointer first, and then to the pointer type we require. cinterion/tests/test-modem-helpers-cinterion.c: In function 'common_test_scfg': cinterion/tests/test-modem-helpers-cinterion.c:56:56: error: cast increases required alignment of target type [-Werror=cast-align] expected_bands_str = mm_common_build_bands_string ((const MMModemBand *)expected_bands->data, ^ cinterion/tests/test-modem-helpers-cinterion.c:58:47: error: cast increases required alignment of target type [-Werror=cast-align] bands_str = mm_common_build_bands_string ((const MMModemBand *)bands->data, ^ cinterion/tests/test-modem-helpers-cinterion.c: In function 'common_test_scfg_response': cinterion/tests/test-modem-helpers-cinterion.c:209:56: error: cast increases required alignment of target type [-Werror=cast-align] expected_bands_str = mm_common_build_bands_string ((const MMModemBand *)expected_bands->data, ^ cinterion/tests/test-modem-helpers-cinterion.c:211:47: error: cast increases required alignment of target type [-Werror=cast-align] bands_str = mm_common_build_bands_string ((const MMModemBand *)bands->data, ^
2020-05-19wavecom: avoid cast-align errorsAleksander Morgado
We can safely cast the data in a GArray to gpointer first, and then to the pointer type we require. wavecom/mm-broadband-modem-wavecom.c: In function 'set_bands_3g': wavecom/mm-broadband-modem-wavecom.c:800:50: error: cast increases required alignment of target type [-Werror=cast-align] bands_string = mm_common_build_bands_string ((MMModemBand *)bands_array_final->data, ^ wavecom/mm-broadband-modem-wavecom.c: In function 'set_bands_2g': wavecom/mm-broadband-modem-wavecom.c:872:50: error: cast increases required alignment of target type [-Werror=cast-align] bands_string = mm_common_build_bands_string ((MMModemBand *)bands_array_final->data, ^
2020-05-19libmm-glib,helpers: use locale-independent strtod()Aleksander Morgado
Otherwise parsing may fail, e.g. as in this unit test: # Start of smoni tests # DEBUG: testing SMONI response: ^SMONI: 2G,71,-61,262,02,0143,83BA,33,33,3,6,G,NOCONN # DEBUG: testing SMONI response: ^SMONI: 2G,SEARCH,SEARCH # DEBUG: testing SMONI response: ^SMONI: 2G,673,-89,262,07,4EED,A500,16,16,7,4,G,5,-107,LIMSRV # DEBUG: testing SMONI response: ^SMONI: 2G,673,-80,262,07,4EED,A500,35,35,7,4,G,643,4,0,-80,0,S_FR # DEBUG: testing SMONI response: ^SMONI: 3G,10564,296,-7.5,-79,262,02,0143,00228FF,-92,-78,NOCONN ** ERROR:cinterion/tests/test-modem-helpers-cinterion.c:1036:test_smoni_response: assertion failed (fabs (ecn0 - smoni_response_tests[i].ecn0) < 0.1): (0,5 < 0,1) Bail out! ERROR:cinterion/tests/test-modem-helpers-cinterion.c:1036:test_smoni_response: assertion failed (fabs (ecn0 - smoni_response_tests[i].ecn0) < 0.1): (0,5 < 0,1) Aborted (core dumped)
2020-05-19cinterion,helpers: minor coding style fixAleksander Morgado
2020-05-19novatel-lte: use GPtrArray to build a GStrvAleksander Morgado
novatel/mm-broadband-modem-novatel-lte.c: In function 'response_processor_nwmdn_ignore_at_errors': novatel/mm-broadband-modem-novatel-lte.c:241:19: error: cast increases required alignment of target type [-Werror=cast-align] own_numbers = (GStrv) g_array_free (array, FALSE); ^
2020-05-19huawei,helpers: fix warnings with -Wcast-alignAleksander Morgado
huawei/mm-modem-helpers-huawei.c: In function 'match_info_to_ip4_addr': huawei/mm-modem-helpers-huawei.c:193:39: error: cast increases required alignment of target type [-Werror=cast-align] *out_addr = GUINT32_SWAP_LE_BE (*((guint32 *) bin)); ^ /usr/include/glib-2.0/glib/gtypes.h:184:77: note: in definition of macro 'GUINT32_SWAP_LE_BE' # define GUINT32_SWAP_LE_BE(val) ((guint32) __builtin_bswap32 ((gint32) (val))) ^~~
2020-05-19huawei: avoid cast-align errorsAleksander Morgado
We can safely cast the data in a GArray to gpointer first, and then to the pointer type we require. huawei/mm-broadband-modem-huawei.c: In function 'set_current_bands': huawei/mm-broadband-modem-huawei.c:916:50: error: cast increases required alignment of target type [-Werror=cast-align] bands_string = mm_common_build_bands_string ((MMModemBand *)bands_array->data, ^
2020-05-19xmm: avoid cast-align errorsAleksander Morgado
We can safely cast the data in a GArray to gpointer first, and then to the pointer type we require. xmm/mm-shared-xmm.c: In function 'validate_and_build_command_set_current_bands': xmm/mm-shared-xmm.c:512:45: error: cast increases required alignment of target type [-Werror=cast-align] str = mm_common_build_bands_string ((const MMModemBand *)unapplied_bands->data, unapplied_bands->len); ^
2020-05-19ublox,helpers: avoid cast-align errorsAleksander Morgado
We can safely cast the data in a GArray to gpointer first, and then to the pointer type we require. ublox/mm-modem-helpers-ublox.c: In function 'parse_bands_from_string': ublox/mm-modem-helpers-ublox.c:1612:48: error: cast increases required alignment of target type [-Werror=cast-align] tmpstr = mm_common_build_bands_string ((MMModemBand *)(bands->data), bands->len); ^
2020-05-19cinterion,helpers: avoid cast-align errorsAleksander Morgado
We can safely cast the data in a GArray to gpointer first, and then to the pointer type we require. cinterion/mm-modem-helpers-cinterion.c: In function 'mm_cinterion_build_band': cinterion/mm-modem-helpers-cinterion.c:409:54: error: cast increases required alignment of target type [-Werror=cast-align] bands_string = mm_common_build_bands_string ((MMModemBand *)bands->data, bands->len); ^
2020-05-19telit,helpers: avoid cast-align errorsAleksander Morgado
We can safely cast the data in a GArray to gpointer first, and then to the pointer type we require. telit/mm-modem-helpers-telit.c: In function 'mm_telit_build_bnd_request': telit/mm-modem-helpers-telit.c:256:55: error: cast increases required alignment of target type [-Werror=cast-align] bands_str = mm_common_build_bands_string ((const MMModemBand *)(bands_array->data), bands_array->len); ^ telit/mm-modem-helpers-telit.c:275:55: error: cast increases required alignment of target type [-Werror=cast-align] bands_str = mm_common_build_bands_string ((const MMModemBand *)(bands_array->data), bands_array->len); ^