summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* libmm-glib: add autoptr cleanup functions for all typesaleksander/autocleanupAleksander Morgado2018-12-1737-0/+146
| | | | https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/100
* iface-modem-firmware: fix reporting empty firmware listAleksander Morgado2018-12-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | ModemManager[2804]: <warn> [1545055222.508649] No valid firmware images listed. Assuming firmware unsupported. ModemManager[2804]: <debug> [1545055222.508665] firmware list loading failed: unsupported ModemManager[2804]: <debug> [1545055222.508683] Couldn't load firmware image list: firmware list unknown ModemManager[2804]: <debug> [1545055222.508728] Couldn't load current firmware image: current firmware unknown (ModemManager:2804): GLib-CRITICAL **: 15:00:22.508: g_variant_builder_end: assertion '!GVSB(builder)->uniform_item_types || GVSB(builder)->prev_item_type != NULL || g_variant_type_is_definite (GVSB(builder)->type)' failed Thread 1 "ModemManager" received signal SIGTRAP, Trace/breakpoint trap. 0x00007ffff75b39b6 in ?? () from /usr/lib/libglib-2.0.so.0 (gdb) bt #0 0x00007ffff75b39b6 in () at /usr/lib/libglib-2.0.so.0 #1 0x00007ffff75b4363 in g_logv () at /usr/lib/libglib-2.0.so.0 #2 0x00007ffff75b4560 in g_log () at /usr/lib/libglib-2.0.so.0 #3 0x00007ffff758867d in g_variant_builder_end () at /usr/lib/libglib-2.0.so.0 #4 0x00005555555e4d12 in load_current_ready (self=0x55555579c330, res=0x5555557388e0, ctx=0x5555557d6d80) at mm-iface-modem-firmware.c:84 #5 0x00007ffff778f194 in () at /usr/lib/libgio-2.0.so.0 #6 0x00007ffff778f1c9 in () at /usr/lib/libgio-2.0.so.0 #7 0x00007ffff75c4271 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #8 0x00007ffff75c5f89 in () at /usr/lib/libglib-2.0.so.0 #9 0x00007ffff75c6f62 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0 #10 0x0000555555597aa0 in main (argc=2, argv=0x7fffffffe488) at main.c:181
* docs,libmm-glib: update copyrightAleksander Morgado2018-12-171-0/+1
|
* ublox,tests: avoid using deprecated band symbolsAleksander Morgado2018-12-161-2/+2
|
* telit: avoid using deprecated band symbolsAleksander Morgado2018-12-161-2/+2
|
* libmm-glib,modem-3gpp: add guards around deprecated symbolsAleksander Morgado2018-12-162-1/+8
|
* altair-lte: use mm_autoptr instead of g_autoptrBen Chan2018-12-131-4/+4
| | | | | | | commit 397faef3c5ce ("mm-common-helpers: add mm_autoptr helpers for GRegex and GMatchInfo") introduces mm_autoptr(), which implements g_autoptr() that isn't available before glib 2.44. This patch fixes the code to consistently uses mm_autoptr().
* base-call: Increase incoming call timeout to ten secondsBob Ham2018-12-121-1/+1
| | | | | | | | | | | | | | | | The standard says a RING or CRING should be emitted whenever the network sends an incoming call notification, which is nation-specific: "Interpretation of indications from the network to determine what constitutes a "ring" is defined by national regulations. This result code should be repeated each time the network repeats the incoming call indication." -- ITU-T Rec. V.250, p. 42 On the giffgaff (O2) network in the UK, a SIMCom SIM7100E modem emits RING indicators every six seconds. The current timeout is only five seconds resulting in a stream of timed-out ModemManager call objects whenever there is an incoming call. To fix this, we increase the timeout to ten seconds.
* base-call: Fix in-call URC regex to match handler logicBob Ham2018-12-121-1/+1
| | | | | | | The handler assumes the regex sub-expressions each have the same index so they need to be within the same set of parentheses rather than each individually parenthesised. Without this fix, call state changes are missed.
* docs,libmm-glib: add missing methods for the Version propertyAleksander Morgado2018-12-101-0/+3
|
* dell: support XMM-based devicesLiuQiFeng2018-12-102-11/+46
|
* base-manager: load subsys/name once in device_added()Aleksander Morgado2018-12-091-15/+10
|
* policy: Call method name should be SendDtmf rather than SendToneBob Ham2018-12-071-1/+1
| | | | | | The method on MMBaseCall is send_tone but the D-Bus method call is SendDtmf. Without this patch, calls return org.freedesktop.DBus.Error.AccessDenied.
* iface-modem: always connect all method handlers, even in failed stateAleksander Morgado2018-12-071-85/+72
| | | | | | | | | | | | | So that the returned error is much more descriptive. E.g. instead of this: $ sudo mmcli -m 0 -e error: couldn't enable the modem: 'GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Method Enable is not implemented on interface org.freedesktop.ModemManager1.Modem' We'll get this: $ sudo mmcli -m 0 -e error: couldn't enable the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.WrongState: modem in failed state' https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/96
* iface-modem: remove redundant logic to update failed stateAleksander Morgado2018-12-071-15/+1
| | | | | | | When the MMIfaceModem initialization returns with the SIM_NOT_INSERTED error, the base logic is already updating the modem failed reason to SIM_MISSING. There is no need to do that explicitly for the case where SIM hot swap is supported.
* xmm,dell: add defaults for MBIM-derived objectsAleksander Morgado2018-12-072-0/+7
| | | | | | For subclasses of MMBroadbandModemMbim, also apply the same property defaults. E.g. we want to avoid peridic signal quality polling and we also want to report that SIM hot swap is supported.
* cli,modem: output should include all 3GPP EPS fields alwaysAleksander Morgado2018-12-071-27/+23
| | | | | | | | Even if some fields wouldn't apply to some modem, we're always including all in the output so that clients can assume the fields are always given. Fix adding the 3GPP EPS related fields unconditionally.
* broadband-modem-mbim: implement initial EPS bearer settings updatingAleksander Morgado2018-12-071-0/+171
| | | | | | | We use the "LTE attach config" extension defined by Microsoft to update the initial EPS bearer settings. https://docs.microsoft.com/en-us/windows-hardware/drivers/network/mb-lte-attach-operations
* broadband-modem-mbim: implement initial EPS bearer settings loadingAleksander Morgado2018-12-071-0/+122
| | | | | | | We use the "LTE attach config" extension defined by Microsoft to query the initial EPS bearer settings. https://docs.microsoft.com/en-us/windows-hardware/drivers/network/mb-lte-attach-operations
* broadband-modem-mbim: implement initial EPS bearer status supportAleksander Morgado2018-12-072-26/+185
| | | | | | | We use the "LTE attach status" extension defined by Microsoft to query and monitor the initial EPS bearer settings. https://docs.microsoft.com/en-us/windows-hardware/drivers/network/mb-lte-attach-operations
* helpers-mbim: new method to convert IP type settings to/from MMAleksander Morgado2018-12-073-24/+61
|
* helpers-mbim: new method to convert auth settings to/from MMAleksander Morgado2018-12-073-22/+58
|
* api,modem-3gpp: new 'SetInitialEpsBearerSettings' methodAleksander Morgado2018-12-077-0/+380
| | | | | This method allows users to modify the settings used during the initial LTE attach procedure.
* api,modem-3gpp: new 'InitialEpsBearerSettings' propertyAleksander Morgado2018-12-079-158/+408
| | | | | This property shows the settings stored in the device to be used during the initial LTE attach procedure.
* api,modem-3gpp: new 'InitialEpsBearer' propertyAleksander Morgado2018-12-0714-194/+675
| | | | | | | | | | | | | | | | | | | | | | | This property contains the DBus path of a Bearer object of type MM_BEARER_TYPE_DEFAULT_ATTACH, which is automatically exposed by the modem when registered in the LTE network. Unlike standard bearer objects created by the user, this bearer won't allow any connection/disconnection request, as its status is bound to the LTE registration exclusively. The bearer settings exposed by the object include the APN details that have been used during the initial packet network attach, which may be defined by modem settings (e.g. if previously configured in the firmware which APN to use for the given SIM card operator) or by the network itself (e.g. if none configured, or if a network override is required as when roaming). The bearer object will be created as soon as the LTE attach status details are known, and only while the modem is enabled. The implementation allows modems to update the LTE attach status details during runtime, so the bearer object with the settings may be recreated during runtime as well.
* api,bearer: new 'BearerType' propertyAleksander Morgado2018-12-0711-17/+80
| | | | | | | | | | | | | | | | | | | | | | | Until now we have only allowed to use and setup 'default bearers' (in 4G) or 'primary contexts' (in 2G/3G). We can define a couple of additional bearer types, though: * The 'dedicated bearers' (in 4G) or 'secondary contexts' (in 2G/3G), which are associated to a specific default/primary one, but which provide specific QoS settings configured via traffic flow templates. * The 'initial default EPS bearer', which is a special case of default bearer in LTE, which is automatically created and connected when the modem is registered in the LTE network. This commit introduces a new 'MMBearerType' enumeration that will be associated to each bearer through a 'BearerType' property in the org.freedesktop.ModemManager1.Bearer interface, showing what kind of bearer/context this is. By default, right now, all bearer objects created are 'default' bearers.
* libmm-glib: fix mm_manager_scan() operationAleksander Morgado2018-12-071-1/+1
| | | | The reporting of the operation result was reversed in the async method.
* 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.
* mm-common-helpers: add mm_autoptr helpers for GRegex and GMatchInfoDan Williams2018-12-042-21/+29
| | | | Alias them to g_autoptr() on glib >= 2.44, otherwise re-implement.
* build: version bump to flag existence of new API (runtime version reporting)Aleksander Morgado2018-12-041-1/+1
|
* api,manager: new 'Version' propertyAleksander Morgado2018-12-046-5/+54
| | | | | | This string shows the runtime version of the ModemManager daemon. https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/94
* libmm-glib,manager: fix manager interface proxy creationAleksander Morgado2018-12-041-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"...
* helpers-qmi: fix UTRAN band 6 vs band 19 mappingAleksander Morgado2018-12-031-4/+4
| | | | | | | | | Looks like the original band 6 mapping was ok, and the mismatch was introduced when adding support for band 19. https://forum.sierrawireless.com/t/utran-19-band-configuration-in-sdk/14625 Fixes 518d62e731534cb4834a10e86f32ee31300de98b.
* cli,output: include string.h for strlen()Ben Chan2018-11-301-0/+1
| | | | | | | | This patch fixes the following compiler warning: mmcli-output.c:783:19: error: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' [-Werror,-Wimplicit-function-declaration] aux = strlen (section_infos[field_infos[item_l->field].section].name); ^
* cli,call: fix incorrect string conversion of MMCallStateReason enumBen Chan2018-11-301-1/+1
| | | | | | | | This patch fixes the following issue with string conversion of a MMCallStateReason enum: mmcli-call.c:160:88: error: implicit conversion from enumeration type 'MMCallStateReason' to different enumeration type 'MMCallState' [-Werror,-Wenum-conversion] mmcli_output_string (MMC_F_CALL_PROPERTIES_STATE_REASON, mm_call_state_get_string (mm_call_get_state_reason (call))); ~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 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>
* cli: allow multiple output format typesAleksander Morgado2018-11-2618-908/+1994
| | | | | | | | | | In addition to the standard human-friendly output, we now allow a machine-friendly key-value pair output, much easier to parse and use by programs that look at the mmcli output. This new key-value pair output should be treated as API from now on, so third-party programs can assume the output is compatible from one release to another.
* cli,location: remove redundant --location-get-XXX actionsAleksander Morgado2018-11-261-150/+71
| | | | | | | The --location-get action provides full location information from all sources, which is better than per-source actions, as those were anyway using the same API method to load location information as the global one.
* cli,simple: remove redundant --simple-status actionAleksander Morgado2018-11-261-167/+1
| | | | | | | | The Simple.GetStatus() method is useful for simple DBus clients that don't need all the information associated to the modem, just the most important bits. But, in our case, the information provided by this method is already given by the standard modem info output, so it is totally redundant.
* api,modem: deprecate ListBearers() methodAleksander Morgado2018-11-262-68/+3
| | | | | | | | | | | | | | | This method is completely unnecessary as we have the readable Bearers property already in place, so let's deprecate it. Worth noting that the mm_modem_list_bearers() async/sync methods in libmm-glib were not really using the ListBearers() method anyway, they are using the property directly. These methods are NOT deprecated, because they allow us to get a list of MMBearer objects, instead of just the list of DBus paths that we get when reading the Bearers property directly. We also remove --list-bearers from the mmcli operation list as we have already the same information in the standard modem output.
* broadband-modem: enable and handle +CGEV indicationsAleksander Morgado2018-11-264-109/+953
| | | | | | | | | | | | | | | | The +CGEV indications allow us to get notified of packet domain events like network-initiated or ME-initiated disconnections on specific connected contexts, as well as full PS detach events (all contexts disconnected). If the modem supports these indications, we will enable them with +CGEREP and will then process them when they are emitted by the modem. If a full PS detach event happens, we will explicitly disconnect all connected bearers. If a deactivation inidication is received for a single context, we will look for the associated bearer by CID and explicitly disconnect it.
* cli,signal: fix missing separator in GSM blockAleksander Morgado2018-11-201-1/+3
| | | | Each group of items should have a separator.
* cli,signal: fix unknown value reportingAleksander Morgado2018-11-201-1/+1
| | | | | | | | At this point we want the values enclosed between single quotes, e.g. so that the fields are parsed easier by scripts. This issue will not have any practical relevance as soon as the key-value pair output support is merged.
* dell: don't ignore ttyUSB1 in the DW5821eAleksander Morgado2018-11-121-2/+2
| | | | | | | | This port was ignored because it was non-functional in early development firmware images, and made device probing very slow. This has been solved in the first production images of the DW5821e module.
* doc,libmm-glib: mm_pco_new() is not part of public APIAleksander Morgado2018-11-121-2/+1
|
* docs,libmm-glib: flag as private the mm_location_3gpp_reset() methodAleksander Morgado2018-11-121-2/+1
|
* libmm-glib,bearer-properties: don't document non-public APIAleksander Morgado2018-11-121-19/+0
| | | | To avoid gtk-doc complaining about that.
* libmm-glib,3gpp: add missing set_eps_ue_mode_operation() API docsAleksander Morgado2018-11-121-0/+43
|
* docs: remove duplicated mm-call-audio-format sectionAleksander Morgado2018-11-121-28/+0
|
* tests: use memcmp() instead of g_assert_cmpmem() for nowBen Chan2018-11-082-4/+2
| | | | | | g_assert_cmpmem() isn't available until glib 2.46, while the minimum glib version required by ModemManager is 2.36. This patch replaces the uses of g_assert_cmpmem() with memcmp() instead.