aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-09-19device: if failed to get VID/PID in first port, try the next oneAleksander Morgado
Don't rely only in the first grabbed port to get VID/PID. Some modems, e.g. Huawei E367, won't report a proper VID in the cdc-wdm port, which is the first one probed.
2012-09-19plugin-manager: never suggest the Generic plugin to othersAleksander Morgado
Some modems, e.g. Huawei E367, will probe first the QMI port and for some reason it doesn't report a proper VID/PID so the Generic plugin is the one finally accepting that port. When we probe the AT ports afterwards we already got the Generic plugin as suggestion, and we end up not grabbing the proper primary and secondary ports as we skipped the AT^GETPORTMODE reply. So, from now on the Generic plugin is never suggested to other probes; except for the case where we need the suggestion to finish a probing task which was 'deferred until suggested'. Also, the device-level plugin can now be overwritten, if and only if, the previously set plugin was the Generic one.
2012-09-19broadband-modem: skip +CGMM: prefix when loading device modelAleksander Morgado
Some devices, e.g. ZTE MF820D, seem to prefix the `AT+CGMM?' response with the `+CGMM:' string, resulting in the following model string being loaded: model: '+CGMM: "MF820D"' Avoid this by: 1) Removing the expected prefixes. 2) Unquoting the resulting string. Reported by: Marius Kotsbak <marius.kotsbak@gmail.com>
2012-09-18sierra: use +CFUN=4 for powering down GSM modemsMarius B. Kotsbak
2012-09-18qmi-port: plug memleakAleksander Morgado
Ensure we clear all allocated client objects when disposing the port.
2012-09-18broadband-modem-qmi: plug memleak, always need to unref() input containersAleksander Morgado
2012-09-18libmm-common,gps-nmea: skip duplicate traces in sequenceAleksander Morgado
2012-09-18broadband-modem-qmi: request NMEA trace indicationsAleksander Morgado
2012-09-18broadband-modem-qmi: listen to "PDS Event Report" indicationsAleksander Morgado
2012-09-18broadband-modem-qmi: enable/disable GPS location gatheringAleksander Morgado
2012-09-18broadband-modem-qmi: new common method to peek a QMI clientAleksander Morgado
2012-09-18broadband-modem-qmi: check support for GPS location capabilitiesAleksander Morgado
2012-09-14sms: don't allow more than 255 partsAleksander Morgado
2012-09-14sms: fix error message string when failing to parse input textAleksander Morgado
2012-09-14cli: minor text output fixesAleksander Morgado
2012-09-14sms: don't try the generic SMS method if we got a timeout errorAleksander Morgado
2012-09-14sms: create SMS parts only when storing or sendingAleksander Morgado
When a user creates an SMS object, we will expose all its properties in DBus properly, but we will not create the internal list of SMS parts. The list of SMS parts will be created when the SMS is stored or sent, whatever comes first. When the message is sent and it was previously stored, the list of parts is not re-created. If the message requires multiple parts, the multipart reference is computed as follows: * If the SMS was not stored and is being sent, we just use a random number. * If the SMS is being stored, we will use a multipart reference which is not being used already in another SMS to the same destination.
2012-09-14test: new tester for the messaging capabilities of a modem, using `mmcli'Aleksander Morgado
Usage: mmcli-test-sms [MODEM INDEX] [all|ucs2|gsm7|data] [NUMBER]" If [NUMBER] is not given, a dummy number will be used and NO SMS will be sent. If you give a proper [NUMBER], we will try to send the SMS.
2012-09-14sms: don't try to delete parts if SMS not storedAleksander Morgado
2012-09-14sms,sms-qmi: update timeout when sending an SMS to 30sAleksander Morgado
2012-09-14cli: new `--create-file-with-data' action for SMS objectsAleksander Morgado
This new action allows creating a new file with the binary data stored in the SMS, if any. E.g.: $> sudo mmcli -s 7 \ --create-file-with-data=output.txt This action can only be run on SMS object with binary data.
2012-09-14cli: new `--messaging-create-sms-with-data' switchAleksander Morgado
This switch can be run along with the `--messaging-create-sms' action, in order to include in the SMS the data as given in the file specified by the new switch. E.g.: $> sudo mmcli -m 0 \ --messaging-create-sms="number='1234567890'" \ --messaging-create-sms-with-data=file.txt In this case, the SMS properties string cannot contain a 'text' field.
2012-09-14sms-part: include user data, if passed, when building the PDUAleksander Morgado
2012-09-14libmm-glib: provide accessors for the 'Data' property in the SMS interfaceAleksander Morgado
2012-09-14libmm-common: added common utils from coreAleksander Morgado
Moved the utils to play with binary to hex strings into libmm-common.
2012-09-14sms: 'Text' and 'Data' will never be given at the same timeAleksander Morgado
When receiving an SMS, if the encoding is either GSM7 or UCS2, we will treat the contents of the SMS as text; and if the encoding is either 8BIT or unknown, we will just dump the contents of the SMS as data. When creating an SMS, the user is not allowed to give both text and data, only one can be given. We will use by default 8BIT when data is given, and guess the best encoding if text is given. Note that it's still possible to have SMS with neither text nor data, as in delivery status reports. This commit also handles the split of the input data in order to make it fit into singlepart or multipart messages.
2012-09-14sms: fix error return when a mandatory parameter missing in dictionaryAleksander Morgado
2012-09-14sms-part: don't keep track of the whole TP-DCS valueAleksander Morgado
We already retrieve the bits we use from it, class and encoding.
2012-09-14sms-part: read message class only if TP-DCS availableAleksander Morgado
2012-09-14broadband-modem: properly avoid duplicate CMTI indicationsAleksander Morgado
We will look for the part being notified in the CMTI indication directly in the list of processed parts; and if we have it there already we won't re-process it. Still, we may get several CMTI indications for the same part one after the other, so it may still happen that the second CMTI comes *before* we have parsed and created the part in the SMS list. For that case, the SMS list will reject taking the part if there is already a part with the same storage+index already processed. This fix removes the `known_sms_parts' hash table, which was being handled incorrectly. This should fix https://bugzilla.gnome.org/show_bug.cgi?id=675175
2012-09-14broadband-modem: fix SMS list object typeAleksander Morgado
2012-09-14broadband-modem: select and lock proper storage when reading CMTI indicationsAleksander Morgado
2012-09-14cli: print new SMS properties in SMS status reportAleksander Morgado
2012-09-14libmm-glib: added methods to retrieve new SMS propertiesAleksander Morgado
2012-09-14api: new `DeliveryState' property in the SMS interfaceAleksander Morgado
Given only for STATUS REPORT SMS messages.
2012-09-14sms: allow parts with neither text nor data only in Status Report PDUsAleksander Morgado
2012-09-14sms: fix double free when parsing PDUsAleksander Morgado
If we get an error when telling the SMS list to take the new PDU, the caller is the one responsible for freeing the part, so avoid doing it twice. Relevant valgrind log: ==7287== Invalid read of size 8 ==7287== at 0x437CE1: mm_sms_part_free (mm-sms-part.c:344) ==7287== by 0x454D11: mm_iface_modem_messaging_take_part (mm-iface-modem-messaging.c:359) ==7287== by 0x461234: cds_received (mm-broadband-modem.c:4626) ==7287== by 0x48A305: parse_unsolicited (mm-at-serial-port.c:256) ==7287== by 0x48723D: parse_response (mm-serial-port.c:731) ==7287== by 0x48759B: data_available (mm-serial-port.c:801) ==7287== by 0x36ADC47694: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x36ADC479C7: ??? (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x36ADC47DC1: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x421398: main (main.c:150) ==7287== Address 0x9840b78 is 24 bytes inside a block of size 104 free'd ==7287== at 0x4A079AE: free (vg_replace_malloc.c:427) ==7287== by 0x36ADC4D37E: g_free (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x36ADC61CCE: g_slice_free1 (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x437D5A: mm_sms_part_free (mm-sms-part.c:351) ==7287== by 0x36ADC449EC: g_list_foreach (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x36ADC44A0A: g_list_free_full (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x43D8A1: finalize (mm-sms.c:1629) ==7287== by 0x36AE8145DA: g_object_unref (in /usr/lib64/libgobject-2.0.so.0.3200.4) ==7287== by 0x43CD52: mm_sms_singlepart_new (mm-sms.c:1376) ==7287== by 0x43E223: take_singlepart (mm-sms-list.c:236) ==7287== by 0x43E60D: mm_sms_list_take_part (mm-sms-list.c:338) ==7287== by 0x454CC7: mm_iface_modem_messaging_take_part (mm-iface-modem-messaging.c:353)
2012-09-14sms-part: don't read out of the pdu bufferAleksander Morgado
... or Valgrind will complain: ==4834== Invalid read of size 1 ==4834== at 0x43904C: mm_sms_part_new_from_binary_pdu (mm-sms-part.c:783) ==4834== by 0x4382C9: mm_sms_part_new_from_pdu (mm-sms-part.c:485) ==4834== by 0x461D85: sms_pdu_part_list_ready (mm-broadband-modem.c:5004) ==4834== by 0x3161A6CFB6: g_simple_async_result_complete (in /usr/lib64/libgio-2.0.so.0.3200.4) ==4834== by 0x432F82: at_command_parse_response (mm-base-modem-at.c:490) ==4834== by 0x489F96: handle_response (mm-at-serial-port.c:161) ==4834== by 0x486D0A: mm_serial_port_got_response (mm-serial-port.c:588) ==4834== by 0x48758B: data_available (mm-serial-port.c:804) ==4834== by 0x36ADC47694: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3200.4) ==4834== by 0x36ADC479C7: ??? (in /usr/lib64/libglib-2.0.so.0.3200.4) ==4834== by 0x36ADC47DC1: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3200.4) ==4834== by 0x421398: main (main.c:150) ==4834== Address 0x927e489 is 0 bytes after a block of size 25 alloc'd ==4834== at 0x4A06F18: calloc (vg_replace_malloc.c:566) ==4834== by 0x36ADC4D2C6: g_malloc0 (in /usr/lib64/libglib-2.0.so.0.3200.4) ==4834== by 0x4844B2: utils_hexstr2bin (mm-utils.c:63) ==4834== by 0x438284: mm_sms_part_new_from_pdu (mm-sms-part.c:476) ==4834== by 0x461D85: sms_pdu_part_list_ready (mm-broadband-modem.c:5004) ==4834== by 0x3161A6CFB6: g_simple_async_result_complete (in /usr/lib64/libgio-2.0.so.0.3200.4) ==4834== by 0x432F82: at_command_parse_response (mm-base-modem-at.c:490) ==4834== by 0x489F96: handle_response (mm-at-serial-port.c:161) ==4834== by 0x486D0A: mm_serial_port_got_response (mm-serial-port.c:588) ==4834== by 0x48758B: data_available (mm-serial-port.c:804) ==4834== by 0x36ADC47694: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3200.4) ==4834== by 0x36ADC479C7: ??? (in /usr/lib64/libglib-2.0.so.0.3200.4)
2012-09-14api: make read-only all SMS properties for nowAleksander Morgado
We don't support yet modifying these properties on the fly (e.g. we would need to re-construct the internal PDU list when the text changes).
2012-09-14sms-list: don't look for duplicate parts if index is unknownAleksander Morgado
2012-09-14api: new `MessageReference' property in the SMS interfaceAleksander Morgado
Message reference allows to match a sent SMS with its corresponding delivery report, if requested.
2012-09-14api: new `DischargeTimestamp' property for Status Report SMS messagesAleksander Morgado
2012-09-14sms-part: always treat TP-DCS as a bitmaskAleksander Morgado
2012-09-14sms-part: always treat TP-MTI as a bitmaskAleksander Morgado
2012-09-14sms-part: implement parsing SUBMIT and STATUS REPORT PDUsAleksander Morgado
2012-09-14api: new `PduType' property in the SMS interfaceAleksander Morgado
It will help deciding the type of message.
2012-09-14test: set text encoding when testing PDU creatorAleksander Morgado
2012-09-14test: print all logs in SMS part testsAleksander Morgado
They are extremely helpful for debugging issues.
2012-09-14test: new tests to parse SUBMIT PDUsAleksander Morgado
2012-09-14test: new tests to parse non-stored PDUsAleksander Morgado