summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-10-30Revert "libqmi-glib,message: include raw data buffer when building printable ↵validate-tlvAleksander Morgado
string" This reverts commit d89b9064afa991d5cc7737fa9b0b1b55c0e31158. We already print the raw buffer when sending/receiving the message in QmiDevice, which is actually better as we end up priting it *before* parsing it, so it's much better for debugging purposes.
2012-10-30fixup! qmi-codegen: validate TLV before really reading itAleksander Morgado
2012-10-30libqmi-glib,test: new test for messages with invalid TLVsAleksander Morgado
2012-10-30qmi-codegen: validate TLV before really reading itAleksander Morgado
Try to handle buggy firmware, or just make the library more robust, by validating the read TLV before really reading it. If a TLV is not considered valid, we just skip it for now. E.g.: the "Detailed Service Status" TLV (0x21) in the "NAS Get Serving System" message is supposed to be a sequence of 5 bytes, but some models (e.g. ZTE MF683) end up sending only the first 4 bytes.
2012-10-30libqmi-glib,test: include printable string in message testsAleksander Morgado
2012-10-30libqmi-glib: define library G_LOG_DOMAINAleksander Morgado
2012-10-30libqmi-glib,utils: minor documentation fixAleksander Morgado
2012-10-30libqmi-glib,message: include raw data buffer when building printable stringAleksander Morgado
2012-10-29libqmi-glib,device: print raw sent/received message before translating itAleksander Morgado
This will help us debug issues in the message translation.
2012-10-29libqmi-glib,utils: no need to pass endianness when reading/writing single bytesAleksander Morgado
2012-10-25cli,wds: print connection status string instead of integerAleksander Morgado
2012-10-23wds: annotate GetCurrentSettings with correct byte ordersDan Williams
IPv6 addresses are always sent in network byte order. Oddly, IPv4 addresses appear to be sent as LE uint32s rather than BE/network byte order.
2012-10-23libqmi-glib,qmi-codegen: add endian-ness annotation capabilityDan Williams
Some values are sent by the firmware in big endian byte order, specifically IP addresses, which are sent in network byte order (ie, big endian). Add the ability to specify the byte order the firmware handles the value as, and convert that to host byte order when reading/writing QMI buffers.
2012-10-10libqmi-glib,qmi-codegen: cancelled operations will issue an ABORT messageAleksander Morgado
We allow passing a GCancellable to every async operation with the clients. Now, if the cancellable gets cancelled and the operation can be ABORT-ed, then we do it.
2012-10-10libqmi-glib,device: avoid invalid reads in the sync indication callbackAleksander Morgado
If we don't disconnect the signal handler when we clear the private QmiClientCtl, we may end up in the situation where we try to use the already disposed QmiDevice object.
2012-10-10wds: "Start Network" may be abortedAleksander Morgado
2012-10-10nas: "Network Scan" may be abortedAleksander Morgado
2012-10-10libqmi-glib,qmi-codegen: timed out operations will issue an ABORT messageAleksander Morgado
Messages can now be tagged with a special 'abort' keyword, so that whenever the message times out we issue a new ABORT command to cancel the specific timed out request. This support is currently only available for the NAS and WDS services, which are the ones supporting ABORT for their long-running operations.
2012-10-10libqmi-glib,device: include missing `qmi_device_command()' documentationAleksander Morgado
2012-10-10docs: hide class structures of `QmiDevice' and `QmiClient'Aleksander Morgado
2012-10-10dms: activation state related commands already in DMS 1.3Aleksander Morgado
2012-10-09build: fix documentation buildAleksander Morgado
2012-10-09cli: traces enabled if running in verbose modeAleksander Morgado
2012-10-09libqmi-glib: message traces compiled alwaysAleksander Morgado
Message traces have been very useful when debugging issues in the protocol, and we should avoid requiring a full recompilation in order to get them enabled. Instead, we provide two new API methods, `qmi_utils_(get|set)_traces_enabled()', which allow specifying whether traces should be dumped with g_debug() or not.
2012-10-09libqmi-glib,utils: improve documentationAleksander Morgado
2012-10-09libqmi-glib,utils: make qmi_utils_str_hex() private to the libraryAleksander Morgado
2012-10-09device: remove transaction ID related traces, not useful any moreAleksander Morgado
2012-10-09qmi-codegen: make internal get_printable() and get_version_introduced()Aleksander Morgado
These methods are (should only be) used only by the library.
2012-10-09docs: improve documentation of enums, flags and errorsAleksander Morgado
2012-10-09qmi-codegen: request creator and response/indication parsers are privateAleksander Morgado
2012-10-09libqmi-glib: completely hide the implicit CTL Client in the APIAleksander Morgado
2012-10-09build,libqmi-glib: only allow including `libqmi-glib.h' directlyAleksander Morgado
2012-10-09build,libqmi-glib: include missing headers in SOURCESAleksander Morgado
2012-10-09libqmi-glib: new header file for private enum/flag typesAleksander Morgado
2012-10-09build: include missing files in distAleksander Morgado
2012-10-09docs: improve generated `libqmi-glib' documentationAleksander Morgado
Among the tons of fixes done here, we now generate some per-service .sections file which we then concatenate to build the final libqmi-glib-sections.txt file.
2012-10-09build: compile all generated code into a non-installable libraryAleksander Morgado
Also simplify the build by using BUILT_SOURCES to avoid needing to specify custom dependency rules.
2012-10-09libmm-glib: fix multiple documentation issuesAleksander Morgado
2012-09-27cli: format fixDan Williams
2012-09-27nas: Ec/Io given always as a signed integerAleksander Morgado
2012-09-27cli: skip printing network info for SINR and IOAleksander Morgado
Seems that SINR and IO, even if they are supposedly only meaningful in EV-DO, may still be given for other networks. [27 Sep 2012, 11:17:36] [Debug] [/dev/cdc-wdm0] Received message... >>>>>> QMUX: >>>>>> length = 49 >>>>>> flags = 0x80 >>>>>> service = "nas" >>>>>> client = 6 >>>>>> QMI: >>>>>> flags = "response" >>>>>> transaction = 1 >>>>>> tlv_length = 37 >>>>>> message = "Get Signal Strength" (0x0020) >>>>>> TLV: >>>>>> type = "Result" (0x02) >>>>>> length = 4 >>>>>> value = 00:00:00:00 >>>>>> translated = SUCCESS >>>>>> TLV: >>>>>> type = "Signal Strength" (0x01) >>>>>> length = 2 >>>>>> value = A8:05 >>>>>> translated = [ strength = '-88' radio_interface = '5' ] >>>>>> TLV: >>>>>> type = "RSSI List" (0x11) >>>>>> length = 4 >>>>>> value = 01:00:58:05 >>>>>> translated = { [0] = '[ rssi = '88' radio_interface = '5' ] '} >>>>>> TLV: >>>>>> type = "ECIO List" (0x12) >>>>>> length = 4 >>>>>> value = 01:00:FC:05 >>>>>> translated = { [0] = '[ ecio = '252' radio_interface = '5' ] '} >>>>>> TLV: >>>>>> type = "IO" (0x13) >>>>>> length = 4 >>>>>> value = 96:FF:FF:FF >>>>>> translated = -106 >>>>>> TLV: >>>>>> type = "SINR" (0x14) >>>>>> length = 1 >>>>>> value = 08 >>>>>> translated = 8
2012-09-26cli: avoid shadowing the global `index' variableAleksander Morgado
2012-09-26libqmi-glib,utils: handle alignment issues when reading integers from the bufferAleksander Morgado
Some architectures require that the value of a pointer is aligned in memory. Given that we're reading from a raw buffer, the integers in it may not end up aligned so we cannot safely cast any address to a valid 16/32/64 bit integer value. Handle this by copying the integer from the raw buffer directly into the output variable, which is of course properly aligned. Also added new test cases to check this. Thanks to: Shawn J. Goff <shawnjgoff@gmail.com> for reporting the issue and his endless tests.
2012-09-26cli: new `--dms-select-stored-image' actionAleksander Morgado
Can be run e.g. like: $> sudo qmicli -d /dev/cdc-wdm0 --dms-select-stored-image="modem1,pri2"
2012-09-26cli: new `--dms-delete-stored-image' actionAleksander Morgado
Can be run e.g. like: $> sudo qmicli -d /dev/cdc-wdm0 --dms-delete-stored-image="pri2" The passed index is the one given by a previous `--dms-list-stored-images' action. Please note that if you delete a given image, the listed indexes will change, so if you want to delete multiple images you'll need to first list stored images and grab the index and then use that bew index to delete the new image. Also, don't try this command many times or you'll run out of images to delete!
2012-09-26cli: new `--dms-list-stored-images' actionAleksander Morgado
2012-09-26dms: implement "Set Firmware Preference" request/responseAleksander Morgado
2012-09-26dms: implement "Delete Stored Image" request/responseAleksander Morgado
2012-09-26dms: implement "Get Stored Image Info" request/responseAleksander Morgado
2012-09-26dms: implement "List Stored Images" request/responseAleksander Morgado