AgeCommit message (Collapse)AuthorFilesLines
2017-07-26mbimcli: wire up cancellable for query-ip-configuration actionBen Chan1-3/+4
2017-07-26mbimcli,dss: fix a potential memory leak in set_dss_readyBen Chan1-0/+2
2017-07-26mbimcli: avoid calling mbim_message_unref on NULL MbimMessageBen Chan1-1/+0
2017-07-18mbim-device: plug memleakAleksander Morgado1-1/+2
==21554== 64 bytes in 1 blocks are definitely lost in loss record 2,960 of 4,396 ==21554== at 0x4C2E10F: realloc (in /usr/lib/valgrind/ ==21554== by 0x644E0CF: g_realloc (in /usr/lib/ ==21554== by 0x6469C06: ??? (in /usr/lib/ ==21554== by 0x6469F94: g_string_insert_len (in /usr/lib/ ==21554== by 0x64345E1: ??? (in /usr/lib/ ==21554== by 0x643585A: g_build_path (in /usr/lib/ ==21554== by 0x57C25E2: get_descriptors_filepath (mbim-device.c:837) ==21554== by 0x57C267A: read_max_control_transfer (mbim-device.c:921) ==21554== by 0x57C2F89: create_iochannel_with_socket (mbim-device.c:1161) ==21554== by 0x57C2C06: wait_for_proxy_cb (mbim-device.c:1073) ==21554== by 0x6449332: ??? (in /usr/lib/ ==21554== by 0x64488B4: g_main_context_dispatch (in /usr/lib/
2017-06-28libmbim-glib: make gtk-doc work again on deprecated enumeratorsBen Chan1-2/+4
Commit e5b6807d6 "libmbim-glib: fix G_DEPRECATED_FOR annotations" replaced macro defintions with `static const int' definitions for those deprecated enumerators. However, gtk-doc doesn't seem to document `static const int' defintions. This patch works around the issue by adding a macro defintion on top of a `static const int' defintion.
2017-06-28mbimcli: make ATDS commands consistent with other subsystemsDan Williams1-2/+2
2017-06-28atds: add AT&T Device Service implementationDan Williams16-6/+633
See;a=blob;f=epan/dissectors/packet-mbim.c ATDS/Operators seems to be the same as BasicConnect/VisibleProviders except that CellularClass has been replaced with a "Provider PLMN Mode". ATDS/RegisterState seems to be exactly the same as BasicConnect/RegisterState if the Wireshark dissector is to be believed. Doesn't implement ATDS/SetProjectionTables yet.
2017-06-28libmbim-glib: fix G_DEPRECATED_FOR annotationsBen Chan1-2/+5
mbim-compat.h defines a few deprecated enumerators as an alias to their equivalence using macros and annotates those macros with G_DEPRECATED_FOR, which may be expanded to `__attribute__((deprecated))'. Neither gcc nor clang supports `__attribute__((deprecated))' on macros. Thus, a G_DEPRECATED_FOR annotation before a macro definition is actually associated with the next identifier found after the macro definition, which is incorrect. Alternatively, the G_DEPRECATED_FOR annotation can be used on the deprecated enumerators. But only gcc 6 or above supports enumerator attributes. To address the issue, this patch defines the deprecated enumerators as `static const int' values, which can then be annotated with G_DEPRECATED_FOR.
2017-06-27libmbim-glib: add MBIM_READY_INFO_FLAG_NONE to MbimReadyInfoFlagBen Chan1-0/+2
According to MBIM spec Rev 1.0 Errata-1 Table 10-17, a value 0 of the ReadyInfo field in MBIM_SUBSCRIBER_READY_INFO refers to MBIMReadyInfoFlagsNone and indicates that the device is in normal mode. This patch adds MBIM_READY_INFO_FLAG_NONE (0) to the MbimReadyInfoFlag enum, such that `mbimcli --query-subscriber-ready-info` shows 'Ready info' as 'none' instead of 'unknown' when the ReadyInfo field is 0.
2017-06-27glib: remove invocations of g_type_init()Ben Chan2-8/+0
g_type_init() has been deprecated (and also marked with the attribute 'deprecated') since glib 2.36 as the type system is automatically initialized. Since the minimum version of glib required by libmbim is 2.36, calling g_type_init() isn't necessarily in the libmbim code.
2017-06-23build: only define WITH_UDEV if enabledBen Chan2-3/+2
2017-06-05mbim-network: add support for short help switchJaroslav Stepanek1-3/+3
2017-05-03libmbim-glib,device: port create_iochannel to use GTaskBen Chan1-80/+83
2017-05-03libmbim-glib,device: port mbim_device_close to use GTaskBen Chan1-31/+22
2017-05-03libmbim-glib,device: port mbim_device_open_full to use GTaskBen Chan1-75/+84
2017-05-03libmbim-glib,device: port initable_init_async to use GTaskBen Chan1-46/+24
2017-04-25build: require glib 2.36Ben Chan1-3/+6
We want to start using new features like GTask, which is available in GLib 2.36.
2017-03-23libmbim-glib,device: misplaced trace_transactionCarlo Lobrano1-2/+2
Moved trace_transaction with error message in the right context.
2017-03-08docs: update copyright year to 2017Aleksander Morgado1-1/+5
2017-02-08libmbim-glib,device: destroy channel when closedAleksander Morgado1-0/+4
2017-02-08libmbim-glib: return NULL on method returning stringAleksander Morgado1-1/+1
No big deal anyway due to the g_assert_not_reached(), so just to make compilers happy.
2017-02-08libmbim-glib: allow printing cid from invalid serviceAleksander Morgado1-1/+3
E.g. to avoid warnings like this: [08 feb 2017, 21:15:45] -Error ** mbim_cid_get_printable: assertion 'service > MBIM_SERVICE_INVALID' failed [08 feb 2017, 21:15:45] [Debug] [/dev/cdc-wdm1] Received message (translated)... >>>>>> Header: >>>>>> length = 48 >>>>>> type = command-done (0x80000003) >>>>>> transaction = 2 >>>>>> Fragment header: >>>>>> total = 1 >>>>>> current = 0 >>>>>> Contents: >>>>>> status error = 'NoDeviceSupport' (0x00000009) >>>>>> service = 'invalid' (00000000-0000-0000-0000-000000000000) >>>>>> cid = '(null)' (0x00000001)
2017-02-03glib: guard invocations of g_type_init()Ben Chan2-0/+4
g_type_init() has been deprecated (and also marked with the attribute 'deprecated') since glib 2.36 as the type system is automatically initialized. Since the minimum version of glib required by libmbim is 2.32, calling g_type_init() should be guarded with the GLIB_CHECK_VERSION macro. When libmbim later requires at least glib 2.36, we can completely remove all invocations of g_type_init() from the code.
2017-02-01Revert "libmbim-glib,device: plug memleak in open timeout"Aleksander Morgado1-1/+0
This reverts commit f6249fee1710484a749a5b919ca130d36d64eb2d. Oops...
2017-02-01libmbim-glib,device: plug memleak in open timeoutAleksander Morgado1-0/+1
2017-01-15libmbim-glib,device: fix segfault when cancellable already cancelledAleksander Morgado1-0/+8
The g_cancellable_connect() method will also call the given callback when the input cancellable is already cancelled. This means that the cancellation callback should also handle the case where the transaction hasn't been stored in the tracking table yet. Thanks to Benoît Donnette <> for the report and the suggested fix. This is the port of the same bugfix from libqmi, see:
2016-11-25mbimcli: use g_clear_object() to cleanup cancellable after async operationAleksander Morgado1-4/+2
2016-11-25mbimcli: use g_unix_signal_add() to setup signalsAleksander Morgado1-15/+17
So that we can safely call GLib/GIO functions from within the signal handlers.
2016-11-25mbimcli: fix second ctrl+c handling in mbimcliAleksander Morgado1-1/+1
A single ctrl+c cancels the GCancellable, and the second ctrl+c should have stopped the GMainLoop, but that was never happening.
2016-10-04libmbim-glib: add MBIM_STATUS_ERROR_CONTEXT_NOT_SUPPORTEDDan Williams1-0/+2
From the MBIM 1.0 specification Errata 1 document.
2016-08-01mbim-codegen: fix message name in generated code doc for parse functionsDan Williams1-2/+2
At the point where the codegen happens, {name} is the name of the last function argument, not of the message. Also fix up the documentation to say "Parses and returns parameters" instead of "Create a new request" since parsing doesn't create any requests. New: * Parses and returns parameters of the 'Signal State' notification command in the 'Basic Connect' service. Old: * Create a new request for the 'ErrorRateThreshold' notification command in the 'Basic Connect' service.
2016-07-22mbim-network: fix bashisms when checking argumentsAleksander Morgado1-2/+1
2016-07-13libmbim-glib,message: avoid iconv()Aleksander Morgado1-29/+45
There are systems out there that come with a fake iconv() implementation that don't support translations to/from UTF-16LE. We can easily avoid that by using the built-in translations to UTF-16HE provided by GLib itself, we just need to take care of converting from HE to/from LE.
2016-07-05build: post release version bump to 1.15.0Aleksander Morgado1-1/+1
2016-07-05release: bump version to Morgado1-3/+3
2016-07-05build: update NEWSAleksander Morgado1-0/+41
2016-07-05docs: add missing documentation for the qmi-over-mbim serviceAleksander Morgado3-1/+9
2016-07-05libmbim-glib,message: internal helper to apply paddingAleksander Morgado1-25/+30
2016-07-05libmbim-glib,message: minor coding style fixAleksander Morgado1-1/+1
2016-07-05libmbim-glib,cid: user helpers symbols to define cid capabilitiesAleksander Morgado1-45/+53
2016-07-05libmbim-glib,uuid: define MBIM_SERVICE_LAST in internal compilation onlyAleksander Morgado3-14/+12
2016-07-05Avoid affecting the padding behavior for other services than QMIEmil Ljungdahl5-17/+21
2016-07-05Added json file lost in original qmi-over-mbim patchEmil Ljungdahl1-0/+15
2016-07-05QMI via MBIMCollin McMillan11-27/+104
Signed-off-by: Bjørn Mork <>
2016-07-01mbimcli: allow passing empty APN in --connectAleksander Morgado1-21/+17
2016-07-01mbimcli: allow querying IP configuration out of the connection attemptAleksander Morgado1-33/+79
2016-06-30mbim-network: allow using the mbim-proxy setupAleksander Morgado1-10/+22
2016-06-30mbim-network: allow specifying APN user/password in profileAleksander Morgado1-3/+51
2016-06-30mbim-network: use standard checks for empty variablesAleksander Morgado1-14/+14
2016-06-30mbim-network: allow loading profile from a different pathAleksander Morgado1-14/+60
This effectively makes mbim-network work with multiple devices in a single system.