summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-08-12release: bump version to 1.16.21.16.2Aleksander Morgado1-1/+1
2018-08-12NEWS: update for 1.16.2Aleksander Morgado1-0/+12
2018-08-12mbimcli,atds: fix thresholds in LTE SNR processingAleksander Morgado1-2/+2
The encoded LTE SNR value is between 0 and 35, not up to 97. (cherry picked from commit c603ab385baf5050fdbd47af9bdf9d46d407b1ab)
2018-08-12mbimcli,atds: fix LTE SNR processingAleksander Morgado1-1/+1
(cherry picked from commit b1b0ff50d86e240d2c1d6aa2f19272ce000a5704)
2018-08-12build: (late) post-release version bump to 1.16.1Aleksander Morgado1-1/+1
2018-06-29libmbim-glib: handle MBIM_SERVICE_INTEL_FIRMWARE_UPDATE in ↵Ben Chan1-0/+2
mbim_cid_get_printable() This patch adds a missing handling of MBIM_SERVICE_INTEL_FIRMWARE_UPDATE in mbim_cid_get_printable() for commit d2ae618d ("intel-firmware-update: add support for Intel Firmware Update service") (cherry picked from commit cb54dd691967f21a6a9b1bb3e40d33e3cff35d7a)
2018-02-06mbimcli: longer timeout for '--disconnect' operationBen Chan1-1/+1
(cherry picked from commit b2af1edd5c813c8b09491cbb09f4c38f0f00ff2e)
2018-02-06libmbim-glib,message: handle unknown status when setting errorBen Chan1-16/+24
g_set_error_literal() requires a non-NULL 'message' argument. Passing mbim_status_error_get_string() as the 'message' argument to g_set_error_literal() could result in an assertion as mbim_status_error_get_string() returns NULL for a status code without an associated MbimStatusError enum. (cherry picked from commit 2e99e5f8a8cf2e73cea971abae35731b80249941)
2018-01-23mbimcli: add "ip-type" property to --connectDan Williams1-15/+49
(cherry picked from commit 18eb8aceede2092e4db61ef93caf94f0154c7bf7)
2018-01-20release: 1.16.01.16.0Aleksander Morgado1-2/+2
Updated libtool versioning for the stable release.
2018-01-20Revert "build: post-release version bump to 1.17.0"Aleksander Morgado1-1/+1
This reverts commit 3134204465a2b13316bcbcf6c646b521c4389cec. Didn't bump libtool library versioning...
2018-01-20build: post-release version bump to 1.17.0Aleksander Morgado1-1/+1
2018-01-20release: bump version to 1.16.0Aleksander Morgado1-1/+1
2018-01-20NEWS: update for 1.16.0Aleksander Morgado1-0/+42
2018-01-20AUTHORS: update based on latest git statsAleksander Morgado1-5/+12
2018-01-20mbimcli,mbim-proxy,mbim-network: update copyright year to 2018Aleksander Morgado3-4/+4
2018-01-20build: ignore built test fileAleksander Morgado1-0/+2
2018-01-20docs: update copyright year to 2018Aleksander Morgado1-0/+1
2018-01-10build: don't rebuild mbim-proxy-helpersAleksander Morgado1-3/+1
They're already included in the non-inst core library.
2018-01-10docs: add missing pieces to document the Intel Firmware Update serviceAleksander Morgado2-0/+5
2018-01-10mbimcli: new '--intel-modem-reboot' actionBen Chan5-1/+174
2018-01-10intel-firmware-update: add support for Intel Firmware Update serviceBen Chan11-5/+89
2017-10-08libmbim-glib,device: port transactions to GTaskAleksander Morgado1-216/+248
2017-10-08mbim-proxy: port internal device open to GTaskAleksander Morgado1-43/+40
2017-09-14build: add missing gtk-doc.m4Aleksander Morgado1-0/+88
Fixes: 9ef8723927c28d731e8f4041e45fb4df6c919a0b
2017-09-13build: generate ChangeLog from git during distAleksander Morgado2-1/+14
2017-09-13doc,atds: avoid redefining MbimAtdsProvider documentationAleksander Morgado1-1/+0
MbimAtdsProvider is a struct and is already documented in the ATDS service doc.
2017-09-13libmbim-glib,uuid: also document internal enum valueAleksander Morgado1-0/+1
Just to make gtk-doc happy really.
2017-09-13build: the m4 directory always existsAleksander Morgado1-1/+0
Even when cloning a git checkout, as we have m4/compiler-warnings under version control.
2017-09-13build: import gtk-doc supportAleksander Morgado3-2/+302
Remove the need to run `gtkdocize' when building from git; this should be an operation done by the maintainer when modernizing the gtk-doc setup (think of e.g. gettextize), no need to do it unconditionally. This makes it easier for platforms without gtk-doc to build from git. When trying to build with documentation enabled and gtk-doc isn't found, we get some nice warnings and errors in the configure report: checking for gtk-doc... no configure: WARNING: You will not be able to create source packages with 'make dist' because gtk-doc >= 1.0 is not found. checking for gtkdoc-check... no checking for gtkdoc-check... no checking for gtkdoc-rebase... no checking for gtkdoc-mkpdf... no checking whether to build gtk-doc documentation... yes configure: error: You must have gtk-doc >= 1.0 installed to build documentation for ModemManager. Please install gtk-doc or disable building the documentation by adding '--disable-gtk-doc' to './configure'. Files generated with gtkdocize (gtk-doc) 1.26.1.
2017-09-13api: don't use intermediate variables for deprecation warningsAleksander Morgado4-9/+22
Using an intermediate constant variable breaks compilation with C compilers, as these variables cannot be used as initializers. Instead, define a deprecated type and cast all deprecated symbols to that type. We lose the information about what the new replacement symbol is, but we don't break compilation. Also, add MBIM_DISABLE_DEPRECATED guards around deprecated symbols. So that when this symbol is defined, e.g. via CFLAGS, building a program that uses the libmbim API will fail if the program references deprecated symbols. For now we just use it to keep gtk-doc-scan happy and avoid unnecessary warnings. Equivalent to ModemManager commits eedd4ab4457 and f0bb6ef856.
2017-09-12device: detect already open MBIM channel on EM7345Aleksander Morgado2-5/+115
If we try to 'MBIM open' the channel with a Sierra Wireless EM7345 (FIH7160_V1.1_MODEM_01.1349.12) and the channel is already open in the device (e.g. mbim-proxy crashed and we try to reopen, or just running consecutive mbimcli commands with --no-close), the device returns a 'MBIM close done' message for every 'MBIM open' request we send. We update the logic to try to detect this case, and if we do, we launch an explicit 'MBIM close' operation before retrying the 'MBIM open' again. E.g. this is the flow when trying to run mbimcli command while the MBIM channel is already open in the device side: $ mbimcli -d /dev/cdc-wdm1 --query-device-caps --no-close --verbose [06 ago 2017, 16:58:21] [Debug] opening device... [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Queried max control message size: 512 [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message... <<<<<< RAW: <<<<<< length = 16 <<<<<< data = 01:00:00:00:10:00:00:00:01:00:00:00:00:02:00:00 [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message (translated)... <<<<<< Header: <<<<<< length = 16 <<<<<< type = open (0x00000001) <<<<<< transaction = 1 <<<<<< Contents: <<<<<< max_control_transfer = 512 [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received message... >>>>>> RAW: >>>>>> length = 16 >>>>>> data = 02:00:00:80:10:00:00:00:02:00:00:00:00:00:00:00 [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] No transaction matched in received message [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received unexpected message (translated)... >>>>>> Header: >>>>>> length = 16 >>>>>> type = close-done (0x80000002) >>>>>> transaction = 2 >>>>>> Contents: >>>>>> status error = 'None' (0x00000000) [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message... <<<<<< RAW: <<<<<< length = 12 <<<<<< data = 02:00:00:00:0C:00:00:00:02:00:00:00 [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message (translated)... <<<<<< Header: <<<<<< length = 12 <<<<<< type = close (0x00000002) <<<<<< transaction = 2 [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received message... >>>>>> RAW: >>>>>> length = 16 >>>>>> data = 02:00:00:80:10:00:00:00:02:00:00:00:00:00:00:00 [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message... <<<<<< RAW: <<<<<< length = 16 <<<<<< data = 01:00:00:00:10:00:00:00:03:00:00:00:00:02:00:00 [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message (translated)... <<<<<< Header: <<<<<< length = 16 <<<<<< type = open (0x00000001) <<<<<< transaction = 3 <<<<<< Contents: <<<<<< max_control_transfer = 512 [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received message... >>>>>> RAW: >>>>>> length = 16 >>>>>> data = 01:00:00:80:10:00:00:00:03:00:00:00:00:00:00:00 [06 ago 2017, 16:58:21] [Debug] MBIM Device at '/dev/cdc-wdm1' ready
2017-09-12device: open timeout check in main state machineAleksander Morgado1-15/+24
Lets check if the operation timed out on the main state machine, instead of when the open command response is processed. This will allow us to queue up new steps sending/receiving messages and have a single place to check the timeout for all of them.
2017-09-11mbim-device: prefer realpath() to canonicalize_file_name()Aleksander Morgado1-1/+1
Usually the canonicalize_file_name() GNU extension is preferred to the POSIX realpath(), as it covers some of the limitations the latter has. But this extension isn't available in lots of platforms or in other c library implementations (e.g. musl), so just default to the POSIX method to improve portability. Note that the check for canonicalize_file_name() availability during configure isn't as trivial as adding a new AC_CHECK_FUNCS(), and importing a gnulib module seems overkill just for this one liner.
2017-08-08device: avoid signals sent to the mbim-proxy processAleksander Morgado1-1/+8
If e.g. mbim-proxy is started by ModemManager and we send a Ctrl+C to it, the signal would be propagated to the mbim-proxy process and we would kill it right away, while leaving ModemManager still around wondering why the socket to the proxy got a HUP. Avoid this, by making sure the mbim-proxy gets its own process group.
2017-08-08mbimcli: new '--query-pin-list' actionBen Chan1-0/+116
This patch adds a new '--query-pin-list' action to mbimcli for querying the list of PINs supported by a MBIM device and additional details for each PIN type.
2017-08-03mbim-proxy: avoid double-free of 'opening device info' structAleksander Morgado1-9/+17
When the device is gone while an open() operation is ongoing, we're completing and freeing the 'opening device info' struct, but we didn't remove it from the private info, so when device_open_ready() happened, we were trying to complete and free it again. Avoid this issue by making sure no already-freed structs are kept in the private info, and also allowing device_open_ready() to get called without a valid pending 'opening device info'. [30 Jul 2017, 15:24:33] [Debug] [/dev/cdc-wdm0] Sent message (translated)... <<<<<< Header: <<<<<< length = 16 <<<<<< type = open (0x00000001) <<<<<< transaction = 1 <<<<<< Contents: <<<<<< max_control_transfer = 4096 [30 Jul 2017, 15:24:38] [Debug] [/dev/cdc-wdm0] Sent message... <<<<<< RAW: <<<<<< length = 16 <<<<<< data = 01:00:00:00:10:00:00:00:02:00:00:00:00:10:00:00 [30 Jul 2017, 15:24:38] [Debug] [/dev/cdc-wdm0] Sent message (translated)... <<<<<< Header: <<<<<< length = 16 <<<<<< type = open (0x00000001) <<<<<< transaction = 2 <<<<<< Contents: <<<<<< max_control_transfer = 4096 [30 Jul 2017, 15:24:42] [Debug] [/dev/cdc-wdm0] unexpected port hangup! [30 Jul 2017, 15:24:42] [Debug] Client (7) connection closed... [30 Jul 2017, 15:24:42] -Warning ** error opening device: Device is gone [30 Jul 2017, 15:24:43] [Debug] open operation timed out: closed ==24404== Invalid read of size 8 ==24404== at 0x4E4A673: peek_opening_device_info (in /usr/lib/libmbim-glib.so.4.2.0) ==24404== by 0x4E4BD7B: device_open_ready (in /usr/lib/libmbim-glib.so.4.2.0) ==24404== by 0x50CAF61: g_simple_async_result_complete (in /usr/lib/libgio-2.0.so.0.3707.0) ==24404== by 0x50CB028: complete_in_idle_cb (in /usr/lib/libgio-2.0.so.0.3707.0) ==24404== by 0x5602EEA: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x5603207: g_main_context_iterate.isra.13 (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x56035D1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x4010F8: main (in /usr/lib/mbim-proxy) ==24404== Address 0x6d3bfe0 is 0 bytes inside a block of size 16 free'd ==24404== at 0x4C2A0C0: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24404== by 0x4E4AC21: untrack_device (in /usr/lib/libmbim-glib.so.4.2.0) ==24404== by 0x5395392: _g_closure_invoke_va (in /usr/lib/libgobject-2.0.so.0.3707.0) ==24404== by 0x53A805D: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.3707.0) ==24404== by 0x53A8A51: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.3707.0) ==24404== by 0x4E49424: data_available (in /usr/lib/libmbim-glib.so.4.2.0) ==24404== by 0x5602EEA: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x5603207: g_main_context_iterate.isra.13 (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x56035D1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x4010F8: main (in /usr/lib/mbim-proxy) ==24404== Block was alloc'd at ==24404== at 0x4C2B3D0: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24404== by 0x5607B00: g_malloc (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x5617E12: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x5618385: g_slice_alloc0 (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x4E4B1A9: internal_open (in /usr/lib/libmbim-glib.so.4.2.0) ==24404== by 0x4E4BAC5: device_new_ready (in /usr/lib/libmbim-glib.so.4.2.0) ==24404== by 0x50CAF61: g_simple_async_result_complete (in /usr/lib/libgio-2.0.so.0.3707.0) ==24404== by 0x50CB028: complete_in_idle_cb (in /usr/lib/libgio-2.0.so.0.3707.0) ==24404== by 0x5602EEA: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x5603207: g_main_context_iterate.isra.13 (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x56035D1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.3707.0) ==24404== by 0x4010F8: main (in /usr/lib/mbim-proxy) ==24404==
2017-08-03mbimcli: make output more consistent in capitalizationBen Chan1-9/+9
2017-08-03build: add other source files that affect the output of --help-allBen Chan1-0/+5
2017-07-29mbimcli: show unknown CID name as "unknown" instead of "(null)"Ben Chan1-1/+1
2017-07-28mbimcli: new '--query-ip-packet-filters' actionBen Chan2-1/+117
This patch adds a new '--query-ip-packet-filters' action to mbimcli for querying the IP packet filters currently set up on a MBIM device.
2017-07-28mbim-common,test: add unit tests for mbim_common_str_hexBen Chan4-1/+73
2017-07-28mbim-common: turn __mbim_utils_str_hex into mbim_common_str_hexBen Chan12-53/+135
__mbim_utils_str_hex is a useful utility method for returning a hexadecimal string representation of a sequence of bytes in memory. This patch turns it into 'mbim_common_str_hex', which can be shared between libmbim-glib and mbimcli.
2017-07-27mbimcli: make 'session_id' variables consistently guint32Ben Chan1-9/+9
This patch updates the code to consistently use guint32, instead of guint, for 'session_id' variables as SessionId is UINT32.
2017-07-27mbimcli,ms-firmware-id: fix memory leaksBen Chan1-0/+1
2017-07-27mbimcli,basic-connect: fix memory leaksBen Chan1-0/+13
2017-07-27mbimcli,atds: fix memory leaksBen Chan1-0/+2
2017-07-27mbimcli,phonebook: fix memory leaksBen Chan1-0/+3
2017-07-27mbimcli,phonebook: add missing return statement in set_phonebook_delete_readyBen Chan1-0/+2
When mbim_message_phonebook_delete_response_parse fails, set_phonebook_delete_ready should shutdown with a failure status and return.
2017-07-26mbimcli: ensure 'cancellable' in Context is always initializedBen Chan6-12/+6
As the Context struct is allocated via g_slice_new and its 'cancellable' field is only set when a GCancellable is provided, there is no guarantee that the cancellable field is always initialized. This patch fixes the code to always initialize the cancellable field of the Context struct.