Commit Graph

8230 Commits

Author SHA1 Message Date
Louis-Alexis Eyraud
a97b58ebf7 libmm-glib,profile-manager: fix memory leaks when listing connection profiles
This commit fixes memory leaks that occur when invoking
mm_modem_3gpp_profile_manager_list function.

When processing the connection profile data retrieved from dbus
in build_list_results function, the iterator data (of GVariant type)
were not properly freed after use in the while loop.

==7903== 2,697 (144 direct, 2,553 indirect) bytes in 3 blocks are definitely lost in loss record 2,525 of 2,538
==7903==    at 0x484086F: malloc (vg_replace_malloc.c:381)
==7903==    by 0x4A13938: g_malloc (gmem.c:106)
==7903==    by 0x4A2B1F4: g_slice_alloc (gslice.c:1069)
==7903==    by 0x4A51322: UnknownInlinedFun (gvariant-core.c:486)
==7903==    by 0x4A51322: UnknownInlinedFun (gvariant-core.c:624)
==7903==    by 0x4A51322: g_variant_builder_end (gvariant.c:3718)
==7903==    by 0x4C2FEC1: parse_value_from_blob.isra.0 (gdbusmessage.c:1866)
==7903==    by 0x4C2FE8F: parse_value_from_blob.isra.0 (gdbusmessage.c:1766)
==7903==    by 0x4C2FF37: parse_value_from_blob.isra.0 (gdbusmessage.c:1850)
==7903==    by 0x4BF93A7: g_dbus_message_new_from_blob (gdbusmessage.c:2226)
==7903==    by 0x4C09334: _g_dbus_worker_do_read_cb (gdbusprivate.c:750)
==7903==    by 0x4B9EA79: g_task_return_now (gtask.c:1219)
==7903==    by 0x4B9EABC: complete_in_idle_cb (gtask.c:1233)
==7903==    by 0x4A0774A: g_idle_dispatch (gmain.c:5848)

Signed-off-by: Louis-Alexis Eyraud <louis-alexis.eyraud@unabiz.com>
2022-08-09 14:53:34 +02:00
Aleksander Morgado
c6921421da sleep-monitor-powerd: remove unused variables
mm-sleep-monitor-powerd.c: In function ‘signal_cb’:
  mm-sleep-monitor-powerd.c:81:14: error: unused variable ‘is_about_to_suspend’ [-Werror=unused-variable]
     81 |     gboolean is_about_to_suspend;
        |              ^~~~~~~~~~~~~~~~~~~
  mm-sleep-monitor-powerd.c: In function ‘on_pd_proxy_acquired’:
  mm-sleep-monitor-powerd.c💯11: error: unused variable ‘owner’ [-Werror=unused-variable]
    100 |     char *owner;
        |           ^~~~~
2022-08-09 11:17:30 +02:00
Aleksander Morgado
827a853f3f build,autotools: print powerd suspend/resume status in configure output 2022-08-09 09:13:34 +00:00
Aleksander Morgado
71a60c86a2 ci: fix systemd suspend-resume enabling in default test 2022-08-09 09:12:00 +00:00
Aleksander Morgado
70c95151d5 ci: new test to build with powerd suspend-resume support 2022-08-09 09:10:58 +00:00
Aleksander Morgado
1c8f951cff ci: new test to build without suspend-resume support 2022-08-09 09:09:00 +00:00
Aleksander Morgado
6c46794c21 ci: remove check for WITH_NEWEST_QMI_COMMANDS
The newest QMI commands are already builtin the default compilation of
ModemManager.
2022-08-09 09:05:39 +00:00
Aleksander Morgado
bc07143f41 ci: move no-tests check before the default ones 2022-08-09 09:05:39 +00:00
Pavan Holla
d9eb140b13 mm-sim-mbim: Fix compile failure if WITH_SUSPEND_RESUME is not set
Fixes 86f6d33513
2022-08-09 09:05:27 +00:00
Aleksander Morgado
bb310526dc core, log: make libraries logging use the MM level and format
The log level of the libraries was not honoring the log level
configured in MM, so we would see debug messages reported even if the
default log level configured was INFO or MSG.

The format of the logs emitted by the libraries was also not following
the format of the rest of MM logs, e.g. they would not include timing
info in the logs which would make it hard to follow certain event
transitions.

Make the libraries logging use the ModemManager logging method, to fix
all those issues.
2022-08-05 17:11:34 +02:00
Aleksander Morgado
4cb8ca8f0b core,log: minor coding style changes 2022-08-05 17:11:31 +02:00
Aleksander Morgado
4a62ea3e84 broadband-modem-mbim: SIM slots ptr array should have GDestroyNotify
The SIM slots ptr array should have a proper GDestroyNotify, so that
whenever the array is unref-ed as part of the modem disposal logic,
the SIM objects (and the modem object references they keep) are also
unref-ed.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/571
2022-08-04 17:58:55 +02:00
Aleksander Morgado
a783d9f68a shared-qmi: minor rework SetPacketServiceState()
Port to using g_autoptr() so that we avoid the gotos.
2022-08-04 14:26:33 +00:00
Aleksander Morgado
f58dcc832b iface-modem-3gpp: update packet service state in the interface
The skeleton property will be update automatically as they're bound.
2022-08-04 14:26:33 +00:00
Aleksander Morgado
d82f0d5371 iface-modem-simple: wait for packet service state is 3GPP specific 2022-08-04 14:26:33 +00:00
Aleksander Morgado
9746600a12 broadband-modem-qmi: force IDLE state if PS registered but DSD RAT unavailable
We provide a consolidated method to update the PS/EPS/5GS registration
states, based on the actual state reported via NAS and the availabiity
or not of the DSD data RAT.

On this consolidated method, we now force the IDLE state for every
case where it would have been HOME/ROAMING if the data RAT reported
via the DSD service is unknown. This includes not only transitions
into the HOME/ROAMING state, but also transitions to unknown data RAT.
2022-08-04 14:26:33 +00:00
Akash Aggarwal
213cd81b3a iface-modem-simple: wait for packet service 'attach' state in ConnectionStep 2022-08-04 14:26:33 +00:00
Akash Aggarwal
d008e437c3 broadband-modem-qmi,mm-shared-qmi: implement support for 'SetPacketServiceState()' 2022-08-04 14:26:33 +00:00
Akash Aggarwal
6761fc0099 broadband-modem-qmi: Move to "registered" state based on DSD System Status for PS domain
"registered" state should not wholly depend on the PS/EPS/5GS domain
state reported by NAS.

It should listen to DSD system status for availabilty of data network
at modem before moving to 'registered' state".
2022-08-04 14:26:33 +00:00
Aleksander Morgado
3893396e20 broadband-modem: SIM swap check should consider errors loading as no SIM
A failure loading IMSI or ICCID (unless for the UNSUPPORTED case)
could be an indication that there is no SIM.

Ideally, the logic checking if a SIM swap happened should have checked
first if there is a SIM card in the slot, and only if there is one go
on to try to load IMSI or ICCID.
2022-08-04 13:08:55 +00:00
Aleksander Morgado
86f6d33513 sim-mbim: clear cached subscriber info on modem sync request 2022-08-01 20:17:43 +00:00
Aleksander Morgado
f5b3dc7689 broadband-modem: notify when a sync is needed after a suspend/resume
Modem/SIM implementations that keep cached info that is not supposed
to change during runtime of a modem may need to be notified about when
a suspend/resume has happened, so that they can clear and reload the
internally cached data.
2022-08-01 19:51:26 +00:00
Aleksander Morgado
bda3ade5a8 iface-modem: reordering of ready methods in sync() 2022-07-29 15:07:45 +02:00
Aleksander Morgado
dd51defd2b broadband-modem: quick sync the Modem interface also if disabled
If the modem was in disabled state, we still want to sync the Modem
interface, among other things to make sure no SIM event happened
during the system suspension.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/605
2022-07-29 15:06:49 +02:00
NorwayFun
31dec02c6f po: add Georgian translation 2022-07-27 12:26:35 +00:00
Alexey Orishko
04d1e5a380 mm-enums: Added E-UTRAN Band 85 to MMModemBand.
LTE Band 85 is supported by modems based on Qualcomm 9205 chipset.
2022-07-27 11:59:27 +00:00
Aleksander Morgado
a32538fa32 helpers-mbim: report correct network availability from mbim bitmask
MbimProviderState is a bitset, so don't try to match exact values in a
switch statement when converting to MMModem3gppNetworkAvailability.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/524
2022-07-25 20:43:07 +00:00
Dylan Van Assche
57637132c9 ci: build without testcases
Verify if ModemManager builds with everything disabled
2022-07-25 11:01:57 +02:00
Dylan Van Assche
ba96ccc615 build: make tests optional
Add a meson option -Dtests and --without-tests automake option
to disable the compilation of all available testcases.
This is useful for compiling projects with Flatpak such as
GNOME Control Center which disables all possible integrations since they
only need the DBus part of ModemManager.

Contributes to https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1392
2022-07-25 11:01:51 +02:00
Aleksander Morgado
041f53af8b base-sms: don't clear parts on send/store error
The part generation logic is independent to whether the SMS send or
store operation failed, so just avoid doing the parts cleanup. E.g.
if we created the parts for store() but storing failed, the same parts
could still be used for send() successfully.
2022-07-24 13:14:26 +00:00
Aleksander Morgado
4aaea37022 base-sms: fix segfault when storing already sent messages
The internal list of parts in the base SMS object is created either
when the message is sent or when the message is stored.

The daemon should not expect the list of SMS parts to be empty upon a
store() operation requested via DBus, as the list of parts may have
already been created during send().

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/598
2022-07-24 13:14:26 +00:00
Dan Carpenter
a8b9058a0c sierra: disable CPOL in the GL7600
Similar to the EM7345 (also from Sierra Wireless), the GL7600 becomes
unresponsive after using "AT+CPOL?".

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/595
2022-07-20 13:09:46 +02:00
Aleksander Morgado
1615c8627c broadband-modem: don't make fatal SIM swap check of IMSI or ICCID
If the SIM swap check using ICCID or IMSI fail, don't completely fail
the operation, as the other one may still succeed.

Fail the operation only if both checks failed.
2022-07-16 22:24:33 +02:00
Aleksander Morgado
76f837697a broadband-modem: plug leaks in sim_swap_context_free() 2022-07-16 22:24:28 +02:00
Aleksander Morgado
41ff262006 shared-qmi: improve logging of steps in SIM hot swap setup 2022-07-16 22:24:25 +02:00
Aleksander Morgado
e96a111a63 shared-qmi: only transfer state to priv info if SIM hotswap setup succeeds
Don't transfer state to the private info until we know the operation
has fully succeeded.
2022-07-16 22:24:23 +02:00
Aleksander Morgado
c994ae1b3a shared-qmi: move indication callbacks out of the SIM hot swap setup 2022-07-16 22:24:20 +02:00
Aleksander Morgado
ba3b15fe29 shared-qmi: return error if none of the methods succeeded in SIM hot swap setup 2022-07-16 22:24:17 +02:00
Aleksander Morgado
b7da236567 shared-qmi: avoid jumps in the SIM hot swap setup state machine
Always transition to the next step, and decide what to do based on the
state tracked by the previously run steps.
2022-07-16 22:24:14 +02:00
Aleksander Morgado
21d24657eb shared-qmi: make refresh all non-fatal during SIM hot swap setup
If for any reason "Refresh all" fails, don't return an error, as we
may have already configured SIM slot status correctly.
2022-07-16 22:24:02 +02:00
Aleksander Morgado
d2bc73f394 shared-qmi: add slot status indication in its own step during SIM hot swap setup 2022-07-16 22:23:57 +02:00
Aleksander Morgado
405f5867c7 shared-qmi: add slot status check in its own step during SIM hot swap setup
Also, don't make the "Get Slot Status" operation fatal; just go on
assuming that the slot status indications are unsupported.
2022-07-16 22:23:53 +02:00
Aleksander Morgado
76c0896535 shared-qmi: new step in SIM hot swap setup to connect to refresh signal
Instead of connecting to the signal in multiple places, do it in one
single place in the logic.
2022-07-16 22:23:45 +02:00
Prakash Pabba
5c0db37432 mm-iface-modem,mm-broadband-modem,mm-shared-qmi: support SIM IMSI switch
It is possible that SIM IMSI might change in roaming conditions for a sim.

Register for UIM refresh indication always and reprobe if ICCID or IMSI changes for QMI modem.
2022-07-16 22:22:59 +02:00
Aleksander Morgado
115692dd91 api,tags: fix typo in ID_MM_PORT_TYPE_AT_GPS_CONTROL doc 2022-07-16 22:22:11 +02:00
Aleksander Morgado
36d3a2c4f5 docs: add missing reference to ID_MM_PORT_TYPE_AT_GPS_CONTROL 2022-07-16 22:21:22 +02:00
Aleksander Morgado
f5151fb02e po: update after source file rename 2022-07-16 22:13:04 +02:00
Dylan Van Assche
efb497e2e6 mm-call-qmi: implement DTMF support
Overwrite the base class with a QMI implementation
to send DTMF characters during a call. Uses the continuous DTMF
QMI messages to support both CDMA and 3GPP networks.
2022-07-16 13:33:29 +00:00
Dylan Van Assche
ea3f5ccad8 mm-call-qmi: drop unnecessary white space 2022-07-16 13:33:29 +00:00
Dylan Van Assche
3e61d07419 mm-call-qmi: fix comment consistency
Do not use caps for 'call'
2022-07-16 13:33:29 +00:00