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)) {
^
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,
^
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))) {
^~
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,
^
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);
^
Charset definition moved from enable state machine to init state machine,
so that the right current charset is available also during further
initialization steps
==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==
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
When we're reusing over and over the same bearer object, we can
provide statistical information about the number of connection
attempts that have been done and how many of them failed.
If the modem switches from one roaming operator to a different roaming
operator, the actual operator MCCMNC/description will change even if
the registration state keeps on being the same (roaming). Detect that,
and trigger operator info reloading explicitly.
If the modem switches from one roaming operator to a different roaming
operator, the actual operator MCCMNC/description will change even if
the registration state keeps on being the same (roaming). Detect that,
and trigger operator info reloading explicitly.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/154
If the QMI device has autoconnect enabled, it will collide in one way
or another with the ModemManager triggered connection sequence,
usually because the user-requested settings are different to the
autoconnected ones.
So, detect whether autoconnect is enabled or not, and if it is,
explicitly disable it.
So that the logic looking for 3GPP related registration info works in
the QMI modem object when selected network is reported as 'unknown'
but still the radio interfaces list reports 5GNR.
<<<<<< TLV:
<<<<<< type = "Serving System" (0x01)
<<<<<< length = 6
<<<<<< value = 01:02:01:00:01:0C
<<<<<< translated = [ registration_state = 'registered' cs_attach_state = 'detached' ps_attach_state = 'attached' selected_network = 'unknown' radio_interfaces = '{ [0] = '5gnr '}' ]
This fixes the s8500 wave unit test, which was incorrectly parsing the
Act field reported as 'B' as "GSM" (strtol(B)=0)
Also, given that the generic parsing methods are able to parse numbers
from quoted strings, this change allows us to remove the Thuraya
specific CREG matching that just took into consideration quoted
strings. The Thuraya unit tests are also fixed up to provide proper
testing of the logic.