This new option will make the proxy to avoid exiting when no connected clients
were found. Without this option, the proxy will end up exiting after 30s without
a valid QmiDevice connected to the proxy, e.g.:
$ sudo /usr/libexec/qmi-proxy --verbose
[23 feb 2015, 20:48:35] [Debug] creating UNIX socket service...
[23 feb 2015, 20:48:35] [Debug] starting UNIX socket service at 'qmi-proxy'...
[23 feb 2015, 20:49:05] [Debug] UNIX socket service at 'qmi-proxy' stopped
[23 feb 2015, 20:49:05] [Debug] exiting 'qmi-proxy'...
Dell-branded Sierra modems, like the Dell DW5570 (Sierra Wireless MC8805) need
this specific command before they can be put in 'online' mode:
$ sudo qmicli -d /dev/cdc-wdm1 --dms-get-operating-mode
[/dev/cdc-wdm1] Operating mode retrieved:
Mode: 'low-power'
HW restricted: 'no'
$ sudo qmicli -d /dev/cdc-wdm1 --dms-set-fcc-authentication
[/dev/cdc-wdm1] Successfully set FCC authentication
$ sudo qmicli -d /dev/cdc-wdm1 --dms-get-operating-mode
[/dev/cdc-wdm1] Operating mode retrieved:
Mode: 'online'
HW restricted: 'no'
https://bugzilla.kernel.org/show_bug.cgi?id=92101
Each QMI control port has one and only one associated WWAN net port. This new
"device-wwan-iface" property and the qmi_device_get_wwan_iface() getter allow
to load the WWAN net port name by looking directly at sysfs.
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
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
'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.
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
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.
Commit b9c3701e33 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.
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