aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* nas: fix QMI_NAS_SIM_REJECT_STATE_SIM_AVAILABLE enum name (api break)Aleksander Morgado2015-01-262-3/+3
| | | | | | | Just a enum value rename, but breaks API. Also, version bump to 0.13.3 to flag the exact version in which the change was introduced.
* qmicli: add command completionAleksander Morgado2015-01-252-0/+159
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=87900
* nas: fix ECIO List TLV array element type (api break)Aleksander Morgado2015-01-253-2/+4
| | | | | | | | | | | | ECIO List TLV (0x12) in the NAS Get Signal Strength response message is given as an unsigned byte, representing negative 0.5dB increments. This is an API break; added to NEWS already not to forget about it. Also, version bump to 0.13.2 to flag the exact version in which the change was introduced. https://bugs.freedesktop.org/show_bug.cgi?id=85052
* nas: fix ECIO TLV field type (api break)Aleksander Morgado2015-01-253-2/+9
| | | | | | | | | | | | ECIO TLV (0x14) in the NAS Event Report Indication message is given as an unsigned byte, representing negative 0.5dB increments. This is an API break; added to NEWS already not to forget about it. Also, version bump to 0.13.1 to flag the exact version in which the change was introduced. https://bugs.freedesktop.org/show_bug.cgi?id=85052
* qmi-codegen: require Service set for a correct Client definitionAleksander Morgado2015-01-251-1/+3
|
* libqmi-glib,message: add missing services in get_printable() and ↵Aleksander Morgado2015-01-251-0/+21
| | | | get_version_introduced()
* wms: new 'SMSC Address' indicationAleksander Morgado2015-01-241-1/+20
| | | | | | | | | | | | | | | | | | | | | E.g.: >>>>>> QMUX: >>>>>> length = 31 >>>>>> flags = 0x80 >>>>>> service = "wms" >>>>>> client = 1 >>>>>> QMI: >>>>>> flags = "indication" >>>>>> transaction = 0 >>>>>> tlv_length = 19 >>>>>> message = "SMSC Address" (0x0046) >>>>>> TLV: >>>>>> type = "Address" (0x01) >>>>>> length = 16 >>>>>> value = 31:34:35:0C:2B:33:34:36:34:34:31:30:39:30:33:30 >>>>>> translated = [ type = '145' digits = '+34644109030' ] https://bugs.freedesktop.org/show_bug.cgi?id=88756
* pds: new 'GPS Ready' indicationAleksander Morgado2015-01-241-1/+8
|
* libqmi-glib,wds: support 'UMTS Granted QoS' TLV in 'Get Current Settings'Aleksander Morgado2015-01-243-0/+137
|
* libqmi-glib,wds: add missing 'underscore_name' in QmiWdsProfileTypeAleksander Morgado2015-01-241-1/+1
|
* libqmi-glib,test: unit test for the 'DMS Get Time' operation messagesAleksander Morgado2015-01-221-0/+82
| | | | | | | | | 'DMS Get Time' is the only message where we have a sized-guint: the 0x01 mandatory response TLV is 8-byte long (6 bytes for the time value, 2 bytes for the source value). This unit test uses the generic library APIs to check the correct parsing of the 'DMS Get Time' response.
* libqmi-glib: fix read/write sized uints when the size is not multiple of 2Aleksander Morgado2015-01-222-10/+4
|
* qmicli,pbm: better output when no capabilities are reportedAleksander Morgado2015-01-201-28/+52
| | | | | | | | | | Old output: $ sudo qmicli -d /dev/cdc-wdm1 --pbm-get-all-capabilities [/dev/cdc-wdm1] Phonebook capabilities: New output: $ sudo qmicli -d /dev/cdc-wdm1 --pbm-get-all-capabilities [/dev/cdc-wdm1] Phonebook capabilities: none
* libqmi-glib,test: fix compilation warnings in 32bit systemsAleksander Morgado2015-01-131-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | CC test_message-test-message.o cc1: warnings being treated as errors test-message.c: In function 'test_message_tlv_rw_64': test-message.c:702: error: integer constant is too large for 'long' type test-message.c:707: error: integer constant is too large for 'long' type test-message.c:712: error: integer constant is too large for 'long' type test-message.c:717: error: integer constant is too large for 'long' type test-message.c:745: error: integer constant is too large for 'long' type test-message.c:750: error: integer constant is too large for 'long' type test-message.c:755: error: integer constant is too large for 'long' type test-message.c:760: error: integer constant is too large for 'long' type test-message.c: In function 'test_message_tlv_rw_sized': test-message.c:790: error: integer constant is too large for 'long' type test-message.c: In function 'test_message_tlv_rw_mixed': test-message.c:1037: error: integer constant is too large for 'long' type test-message.c:1042: error: integer constant is too large for 'long' type test-message.c:1106: error: integer constant is too large for 'long' type test-message.c:1111: error: integer constant is too large for 'long' type test-message.c: In function 'test_message_tlv_write_overflow': test-message.c:1169: error: integer constant is too large for 'long' type test-message.c:1174: error: integer constant is too large for 'long' type make[4]: *** [test_message-test-message.o] Error 1
* build: post release version bump to 1.13.0Aleksander Morgado2015-01-131-1/+1
|
* release: bump version to 1.12.0Aleksander Morgado2015-01-131-4/+4
|
* build: use absolute paths for the ignored files in subdirsAleksander Morgado2015-01-131-52/+52
|
* build: ignore built device owner rules fileAleksander Morgado2015-01-131-0/+1
|
* libqmi-glib,proxy: root user always allowedAleksander Morgado2015-01-131-5/+4
| | | | | | Even if QMI_USERNAME is defined to a non-root user, root should always be able to access the proxy. E.g. ModemManager (run as root) must be able to launch and access the proxy even if QMI_USERNAME was set to a non-root user.
* qmi-codegen: update copyright of built filesAleksander Morgado2015-01-111-0/+1
|
* qmi-codegen: avoid breaking API when defining strings in public structsAleksander Morgado2015-01-114-11/+53
| | | | | | | | | | Commit b9c3701e337198 introduced an API break, where we would change a pointer to a heap allocated string and instead use a fixed size char array. This commit will instead recover the pointer to the string when used in a public struct, so that API isn't broken w.r.t. previous stable libqmi versions. The string is now properly allocated before reading and deallocated as part of the struct deallocation.
* qmicli: update copyright datesAleksander Morgado2015-01-111-2/+2
|
* libqmi-glib,utils: avoid getpwnam() call if --enable-qmi-username not usedRoshan Pius2015-01-093-7/+24
| | | | | | | | | | | | | | | | If --enable-qmi-username isn't explicitly used, we should just check for the root user UID, without using getpwnam(). See e.g. these SELinux warnings: SELinux is preventing /usr/bin/bash from read access on the file /etc/passwd. ***** Plugin catchall (100. confidence) suggests ************************** If you believe that bash should be allowed read access on the passwd file by default. Then you should report this as a bug. You can generate a local policy module to allow this access. Do allow this access for now by executing: # grep qmi-proxy /var/log/audit/audit.log | audit2allow -M mypol # semodule -i mypol.pp
* build: update NEWSAleksander Morgado2014-12-301-5/+40
|
* Fix bashism, as the script uses "sh", not "bash".Marius B. Kotsbak2014-12-301-2/+2
| | | | See downstream bug report https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772328
* AUTHORS: updateAleksander Morgado2014-12-241-3/+21
|
* build: distribute the udev rules template regardless of --enable-qmi-usernameAleksander Morgado2014-12-191-1/+1
| | | | | Include the udev rules template in the distribution tarball even if the `--enable-qmi-username' option wasn't specified.
* libqmi-glib,proxy: Change ownership of QMI devices to the configured user.Roshan Pius2014-12-194-9/+49
| | | | | | Adding a udev rule to change ownership of all QMI devices to the configured user specified at compile time using --enable-qmi-username flag.
* qmi-codegen: fix printing contents of structs with fixed sized stringsAleksander Morgado2014-12-121-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | If the fixed sized string contains no characters or is shorter than the explicit size, NUL bytes will be included. If we try to append exactly the size of the string, we'll end up with embedded NULs in our string to print, so the actual output will be cut, even if the string is longer after the embedded NUL bytes. E.g.: >>>>>> TLV: >>>>>> type = "GERAN Info" (0x10) >>>>>> length = 61 >>>>>> value = 00:00:00:00:00:00:00:00:00:00:00:00:FF:FF:FF:FF:28:00:03:7D:6F:00:00:32:F4:51:B3:00:4D:00:11:2A:00:8A:3C:00:00:32:F4:51:B3:00:63:00:30:14:00:89:3C:00:00:32:F4:51:B3:00:59:00:11:0D:00 >>>>>> translated = [ cell_id = '0' plmn = ' With this fix, we avoid this by explicitly finishing ourselves the fixed sized string with a NUL byte, and then adding the C string as the non-fixed sized ones, i.e. until the first NUL byte is found. E.g.: >>>>>> TLV: >>>>>> type = "GERAN Info" (0x10) >>>>>> length = 61 >>>>>> value = 00:00:00:00:00:00:00:00:00:00:00:00:FF:FF:FF:FF:28:00:03:7D:6F:00:00:32:F4:51:B3:00:4D:00:11:2A:00:8A:3C:00:00:32:F4:51:B3:00:63:00:30:14:00:89:3C:00:00:32:F4:51:B3:00:59:00:11:0D:00 >>>>>> translated = [ cell_id = '0' plmn = '' lac = '0' geran_absolute_rf_channel_number = '0' base_station_identity_code = '0' timing_advance = '4294967295' rx_level = '40' cell = '{ [0] = '[ cell_id = '28541' plmn = '2\xf4Q' lac = '179' geran_absolute_rf_channel_number = '77' base_station_identity_code = '17' rx_level = '42' ] ' [1] = '[ cell_id = '15498' plmn = '2\xf4Q' lac = '179' geran_absolute_rf_channel_number = '99' base_station_identity_code = '48' rx_level = '20' ] ' [2] = '[ cell_id = '15497' plmn = '2\xf4Q' lac = '179' geran_absolute_rf_channel_number = '89' base_station_identity_code = '17' rx_level = '13' ] '}' ]
* qmi-codegen: fix public struct type generationAleksander Morgado2014-12-127-16/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change triggers an API break. When building structs to be included in the public header, we were just relying on using the 'public_format' of each variable. This is an error, as the variable may be more complex than just public/private. E.g. could be another struct, or an array, or a fixed sized string, as in the example. In particular, this bug currently affects one public type, where one of its elements changes from being just a pointer to a string to a fixed sized array of 4 bytes. The following type is changed from: typedef struct _QmiMessageNasGetCellLocationInfoOutputGeranInfoCellElement { guint32 cell_id; gchar * plmn; guint16 lac; guint16 geran_absolute_rf_channel_number; guint8 base_station_identity_code; guint16 rx_level; } QmiMessageNasGetCellLocationInfoOutputGeranInfoCellElement; To: typedef struct _QmiMessageNasGetCellLocationInfoOutputGeranInfoCellElement { guint32 cell_id; gchar plmn[4]; guint16 lac; guint16 geran_absolute_rf_channel_number; guint8 base_station_identity_code; guint16 rx_level; } QmiMessageNasGetCellLocationInfoOutputGeranInfoCellElement; Thanks to Joseba Sanjuan <joseba.sanjuan@gmail.com> for finding the bug.
* libqmi,test: new test for QMI NAS Get Cell Info with GERANAleksander Morgado2014-12-121-5/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Which currently fails: {*LOG(error):{Qmi-FATAL-CRITICAL: qmi_message_tlv_read_fixed_size_string: assertion 'out != NULL' failed}:LOG*} (/home/aleksander/Development/foss/libqmi/src/libqmi-glib/test/.libs/test-generated:12179): Qmi-CRITICAL **: qmi_message_tlv_read_fixed_size_string: assertion 'out != NULL' failed Program received signal SIGTRAP, Trace/breakpoint trap. 0x00007ffff717eae0 in g_logv () from /usr/lib/libglib-2.0.so.0 (gdb) bt #0 0x00007ffff717eae0 in g_logv () from /usr/lib/libglib-2.0.so.0 #1 0x00007ffff717ed1f in g_log () from /usr/lib/libglib-2.0.so.0 #2 0x00007ffff7a5381e in qmi_message_tlv_read_fixed_size_string (self=0x7fffe8007d30, tlv_offset=20, offset=0x7fffffffdcc8, string_length=3, out=0x0, error=0x0) at qmi-message.c:1817 #3 0x00007ffff7acce60 in __qmi_message_nas_get_cell_location_info_response_parse (message=0x7fffe8007d30, error=0x7fffffffded8) at qmi-nas.c:26772 #4 0x00007ffff7af46fa in get_cell_location_info_ready (device=0x64e8b0, res=0x65d990, simple=0x65d920) at qmi-nas.c:47982 #5 0x00007ffff76ff6d7 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0 #6 0x00007ffff76ff739 in ?? () from /usr/lib/libgio-2.0.so.0 #7 0x00007ffff717791d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #8 0x00007ffff7177cf8 in ?? () from /usr/lib/libglib-2.0.so.0 #9 0x00007ffff7178022 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #10 0x0000000000403e9b in test_fixture_loop_run (fixture=0x63c800) at test-fixture.c:321 #11 0x0000000000406da4 in test_generated_nas_get_cell_location_info (fixture=0x63c800) at test-generated.c:562 #12 0x00007ffff719d0f3 in ?? () from /usr/lib/libglib-2.0.so.0 #13 0x00007ffff719d2c2 in ?? () from /usr/lib/libglib-2.0.so.0 #14 0x00007ffff719d2c2 in ?? () from /usr/lib/libglib-2.0.so.0 #15 0x00007ffff719d2c2 in ?? () from /usr/lib/libglib-2.0.so.0 #16 0x00007ffff719d62b in g_test_run_suite () from /usr/lib/libglib-2.0.so.0 #17 0x00007ffff719d661 in g_test_run () from /usr/lib/libglib-2.0.so.0 #18 0x0000000000406ef0 in main (argc=1, argv=0x7fffffffe678) at test-generated.c:584 (gdb) fr 3 #3 0x00007ffff7acce60 in __qmi_message_nas_get_cell_location_info_response_parse (message=0x7fffe8007d30, error=0x7fffffffded8) at qmi-nas.c:26772 warning: Source file is more recent than executable. 26772 if (!qmi_message_tlv_read_fixed_size_string (message, init_offset, &offset, 3, &cell_aux.plmn[0], NULL)) (gdb) p cell_aux $1 = {cell_id = 28541, plmn = 0x0, lac = 0, geran_absolute_rf_channel_number = 0, base_station_identity_code = 0 '\000', rx_level = 0}
* qmi-network: fix bashismsAleksander Morgado2014-12-081-2/+2
| | | | | Equivalent to the fix done in mbim-network, see: https://bugs.freedesktop.org/show_bug.cgi?id=87093
* qmi-codegen: don't mark missing optional TLVs as setDan Williams2014-11-211-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the optional TLV case, 'tlv_error' was never set to TRUE when the optional TLV was missing, because the return value of qmi_message_tlv_read_init() was ignored. This caused "self->arg_*_set" to always be TRUE and NULL strings to be returned to callers requesting the TLV value later. Also prevent incorrect "Left X bytes unread when getting..." messages caused when the TLV is missing. This bug was found when probing a modem that does not return an MEID TLV to DMSGetIds (because it is GSM/UMTS/LTE only), but qmi_message_dms_get_ids_output_get_meid() returned TRUE and a NULL 'str': if (qmi_message_dms_get_ids_output_get_meid (output, &str, NULL) && --> str[0] != '\0' && str[0] != '0') { Bug introduced in b143b7f6 (qmi-codegen: use the new TLV reader API). Before: ======= gsize offset = 0; gsize init_offset; gboolean tlv_error = FALSE; init_offset = qmi_message_tlv_read_init (message, QMI_INDICATION_DMS_EVENT_REPORT_OUTPUT_TLV_POWER_STATE, NULL, NULL); <<<snip>>> /* The remaining size of the buffer needs to be 0 if we successfully read the TLV */ if ((offset = __qmi_message_tlv_read_remaining_size (message, init_offset, offset)) > 0) { g_warning ("Left '%" G_GSIZE_FORMAT "' bytes unread when getting the 'Power State' TLV", offset); } qmi_indication_dms_event_report_output_power_state_out: if (!tlv_error) self->arg_power_state_set = TRUE; After: ====== gsize offset = 0; gsize init_offset; if ((init_offset = qmi_message_tlv_read_init (message, QMI_INDICATION_DMS_EVENT_REPORT_OUTPUT_TLV_POWER_STATE, NULL, NULL)) == 0) { goto qmi_indication_dms_event_report_output_power_state_out; } <<<snip>>> /* The remaining size of the buffer needs to be 0 if we successfully read the TLV */ if ((offset = __qmi_message_tlv_read_remaining_size (message, init_offset, offset)) > 0) { g_warning ("Left '%" G_GSIZE_FORMAT "' bytes unread when getting the 'Power State' TLV", offset); } self->arg_power_state_set = TRUE; qmi_indication_dms_event_report_output_power_state_out: ;
* libqmi,utils: new internal __qmi_user_allowed() methodAleksander Morgado2014-11-183-35/+41
| | | | | | | Allows to check whether the user is allowed to use the QMI device. Also fixes qmi_proxy_open() to make sure we always set the GError when FALSE is returned.
* build: rename '--enable-qmi-proxy-username' to '--enable-qmi-username'Aleksander Morgado2014-11-182-20/+16
| | | | | This shouldn't be a proxy-only setting. We're going to chown the QMI devices to this specific user, so we'll re-use this setting for that as well.
* libqmi-glib,proxy: add a configure flag to set the user ID of QMI proxyRoshan Pius2014-11-182-6/+43
| | | | | | | | | | | | Currently, the QMI proxy process assumes that it is run as root user and that all incoming client connection users are also root. However, it's not always preferable to run the QMI proxy as root for security reasons. On some platforms, the QMI proxy could be constrained to run as a less-privileged user and specially granted the permission to access the QMI device. So, adding a compile time flag in libqmi to check for the specified user, rather than assume it to be the root user. If the flag is not sent, it'll revert to the existing behaviour of checking for user=root(i.e UID=0)
* libqmi-glib,message: fix build (fdo #86128)Volker Sobek2014-11-101-1/+1
| | | | | | | The build failed because g_return_val_if_fail was used in a void function. Use g_return_if_fail instead. https://bugs.freedesktop.org/show_bug.cgi?id=86128
* dms: "UIM Get IMSI" seems to be available in DMS 1.1 alreadyAleksander Morgado2014-11-101-1/+1
| | | | Reported by: Torsten Hilbrich <torsten.hilbrich@secunet.com>
* libqmi-glib: always attach timeout and idles to the thread default main contextAleksander Morgado2014-11-101-9/+19
| | | | | | The standard timeout/idle methods will attach the sources to the default context, not the thread default context. So, create the GSources ourselves and attach them to the thread default context.
* libqmi-glib: always attach sources to the thread default main contextAleksander Morgado2014-11-092-2/+2
| | | | | | | | | If NULL is specified in g_source_attach() it will attach to the default context, not to the thread-default one if one was given with g_main_context_push_thread_default(). This caused that QmiDevices started in the non-main thread would still attach their socket listening sources to the GMainContext in the main thread.
* qmi-codegen: use the new TLV reader APIAleksander Morgado2014-11-0910-423/+182
|
* test,message: fix leak in unit testsAleksander Morgado2014-11-091-0/+2
|
* libqmi-glib,utils: flag reader utils as deprecatedAleksander Morgado2014-11-091-0/+16
|
* test,message: unit tests for the reader APIAleksander Morgado2014-11-091-84/+466
|
* libqmi-glib,message: new TLV reader APIAleksander Morgado2014-11-093-0/+760
|
* libqmi-glib,utils: fix documentation when reading fixed size stringsAleksander Morgado2014-11-091-2/+2
|
* libqmi-glib,message: use TLV builder to create response messagesAleksander Morgado2014-11-091-36/+8
|
* test,message: unit tests for the QmiMessage creator methodsAleksander Morgado2014-11-091-0/+180
|
* qmi-codegen: use the new TLV builder APIAleksander Morgado2014-11-098-111/+71
|
* libqmi-glib,message: update copyrightAleksander Morgado2014-11-093-3/+3
|