aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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); ^
2020-05-19plugins,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. tests/test-helpers.c: In function 'mm_test_helpers_compare_bands': tests/test-helpers.c:41:47: error: cast increases required alignment of target type [-Werror=cast-align] bands_str = mm_common_build_bands_string ((MMModemBand *)(bands->data), bands->len); ^ tests/test-helpers.c:46:56: error: cast increases required alignment of target type [-Werror=cast-align] expected_bands_str = mm_common_build_bands_string ((MMModemBand *)(expected_bands_array->data), expected_bands_array->len); ^
2020-05-19test-qcdm-serial-port: fix warnings with -Wsign-compareAleksander Morgado
test-qcdm-serial-port.c: In function 'wait_for_child': test-qcdm-serial-port.c:57:52: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] if (d->child && (now.tv_sec - start.tv_sec > timeout)) { ^
2020-05-19iface-modem-messaging: 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. mm-iface-modem-messaging.c: In function 'load_supported_storages_ready': mm-iface-modem-messaging.c:1154:53: error: cast increases required alignment of target type [-Werror=cast-align] mem1 = mm_common_build_sms_storages_string ((MMSmsStorage *)storage_ctx->supported_mem1->data, ^ mm-iface-modem-messaging.c:1156:53: error: cast increases required alignment of target type [-Werror=cast-align] mem2 = mm_common_build_sms_storages_string ((MMSmsStorage *)storage_ctx->supported_mem2->data, ^ mm-iface-modem-messaging.c:1158:53: error: cast increases required alignment of target type [-Werror=cast-align] mem3 = mm_common_build_sms_storages_string ((MMSmsStorage *)storage_ctx->supported_mem3->data, ^
2020-05-19iface-modem-location: avoid warnings with -Wsign-compareAleksander Morgado
mm-iface-modem-location.c: In function 'location_gps_update_nmea': mm-iface-modem-location.c:272:61: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] time (NULL) - ctx->location_gps_nmea_last_time >= mm_gdbus_modem_location_get_gps_refresh_rate (skeleton))) { ^~ mm-iface-modem-location.c:282:60: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] time (NULL) - ctx->location_gps_raw_last_time >= mm_gdbus_modem_location_get_gps_refresh_rate (skeleton))) { ^~
2020-05-19iface-modem: 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. mm-iface-modem.c: In function 'after_set_load_current_bands_ready': mm-iface-modem.c:2358:55: error: cast increases required alignment of target type [-Werror=cast-align] requested_str = mm_common_build_bands_string ((MMModemBand *)requested_bands->data, requested_bands->len); ^ mm-iface-modem.c:2359:55: error: cast increases required alignment of target type [-Werror=cast-align] current_str = mm_common_build_bands_string ((MMModemBand *)current_bands->data, current_bands->len); ^ mm-iface-modem.c: In function 'validate_bands': mm-iface-modem.c:2474:48: error: cast increases required alignment of target type [-Werror=cast-align] (const MMModemBand *)supported_bands_array->data, ^ mm-iface-modem.c: In function 'mm_iface_modem_set_current_bands': mm-iface-modem.c:2535: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-19modem-helpers: use GPtrArray to build a GStrvAleksander Morgado
So that we avoid errors when building on ARM due to increasing target type alignment. mm-modem-helpers.c: In function 'mm_3gpp_parse_cnum_exec_response': mm-modem-helpers.c:3206:21: error: cast increases required alignment of target type [-Werror=cast-align] return (array ? (GStrv) g_array_free (array, FALSE) : NULL); ^
2020-05-18AT modem: charset definition in initGiacinto Cifelli
Charset definition moved from enable state machine to init state machine, so that the right current charset is available also during further initialization steps
2020-05-16port-qmi: plug memleak when explicitly releasing clientAleksander Morgado
==43111== 24 bytes in 1 blocks are definitely lost in loss record 1,999 of 5,339 ==43111== at 0x483BB65: calloc (vg_replace_malloc.c:762) ==43111== by 0x50259D1: g_malloc0 (in /usr/lib/libglib-2.0.so.0.6400.2) ==43111== by 0x22AAB8: mm_port_qmi_allocate_client (mm-port-qmi.c:201) ==43111== by 0x2007F0: parent_enabling_started_ready (mm-broadband-modem-qmi.c:9114) ==43111== by 0x4E68653: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==43111== by 0x4E6DA26: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==43111== by 0x1C535E: enabling_flash_done (mm-broadband-modem.c:10318) ==43111== by 0x4E68653: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==43111== by 0x4E6DA26: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==43111== by 0x224F0B: flash_do (mm-port-serial.c:1776) ==43111== by 0x502AC03: ??? (in /usr/lib/libglib-2.0.so.0.6400.2) ==43111== by 0x502B58E: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.6400.2) ==43111==
2020-05-16udev rules for the PLS62 in 005b enumerationGiacinto Cifelli
2020-05-15huawei: NDISDUP based devices may use plain TTYs for controlAleksander Morgado
So don't warn if no associated cdc-wdm port is found.
2020-05-15plugins/cinterion: added Signal interfaceGiacinto Cifelli
Not all Cinterion modems support AT+CESQ. However a much larger group of them support AT^SMONI This commit uses the latter instead of the default former.
2020-05-14telit: flag GPS port in the LE910C1Aleksander Morgado
2020-05-14telit: add LE910C1 udev ruleDavid Khouya
2020-05-14configure.ac: check for xsltprocGiacinto Cifelli
2020-05-13build: require libmbim 1.23.1 for autoptr supportAleksander Morgado
2020-05-10broadmobi: new pluginAleksander Morgado
Right now, just with port type hints for the BM818.
2020-05-10port: use correct enum to string conversion when loggingAleksander Morgado
CC mm-port.lo mm-port.c: In function 'log_object_build_id': mm-port.c:117:60: error: implicit conversion from 'MMPortType' to 'MMModemPortType' [-Werror=enum-conversion] 117 | mm_modem_port_type_get_string (mm_port_get_port_type (self))); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors
2020-05-08bearer-qmi: get correct bearer object pointer from taskAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/207
2020-05-05cli: add allowed-auth bearer property in outputAleksander Morgado
Given as a list of items, because the bearer can be created with one or more allowed authentication protocols.
2020-05-01introspection: use correct node name for ModemManager1 objectEric Caruso
In the D-Bus specification it is stated that the root node of an introspection file should have an absolute path[1]. This path should not be the root path in D-Bus as putting objects there is considered incorrect, and also because the MM1 object does not actually sit at the root path (instead, it uses MM_DBUS_PATH, which is /org/freedesktop/ModemManager1). Fix this in the introspection file. [1] https://dbus.freedesktop.org/doc/dbus-specification.html#introspection-format
2020-04-28huawei: updated HCSQ regex to match unquoted responseMurithi Borona
2020-04-22broadband-modem-qmi: GByteArray can be casted to GArray in USSD encodingAleksander Morgado
Reported by: Maxim Anisimov <linaro85@yandex.ru>
2020-04-22broadband-modem-qmi: USSD data in UTF-16 not always givenMaxim Anisimov
E.g. in the Quectel EP06-E only the ASCII/UCS-2 data TLV is given.
2020-04-22broadband-modem-qmi: fix unicode names in USSD iconv() operationsMaxim Anisimov
So that the limited iconv() in OpenWRT supports the conversion properly.
2020-04-20broadband-modem-qmi: 3GPP USSD supportAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/26
2020-04-17quectel: Check SIM swap after "+QUSIM: 1" URCTeijo Kinnunen
Quectel emits "+QUSIM: 1" after eUICC reinitialization. Detect it and perform SIM swap check if one is encountered. The motivation here is that M2M eUICC profile switch causes eUICC reset and this is one way to detect and handle profile switches properly on Quectel modems. The existing SIM hot swap mechanism is used as it appears to be suitable for handling profile switches as well as physical swapping of SIM cards.
2020-04-16man,mmcli: remove non-existent --list-bearers optionAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/203
2020-04-12api,location: improve InjectAssistanceData() method docsAleksander Morgado
Explain when this method should be used instead of A-GPS.
2020-04-12api,location: improve Setup() method docsAleksander Morgado
Explicitly state that the signals_location argument affects the behavior of the Location property.