aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-03-10telit: implemented set current bandsCarlo Lobrano
2016-03-09plugin-manager: allow early cancel of port tasks when they haven't been run yetAleksander Morgado
2016-03-09port-probe: allow cancellationAleksander Morgado
2016-03-09plugin: allow cancellation of the port probe operationAleksander Morgado
2016-03-09plugin-manager: refactor device/port support checks and allow cancellationsAleksander Morgado
2016-03-09plugin-manager: improve logging when loading pluginsAleksander Morgado
2016-03-09broadband-modem: fix +CPMS empty parameter supportCarlo Lobrano
* Add new async virtual method init_current_storages to MMIfaceModemMessaging * Add logic of init_current_storages to MMBroadbandModem * Add step "INIT_CURRENT_STORAGES" in MMIfaceModemMessaging initialization in order to load and store current SMS storages for mem1 and mem2. * Add usage of current sms storage value for mem1 in place of an empty string parameter when the command AT+CPMS is used. https://bugs.freedesktop.org/show_bug.cgi?id=93135
2016-03-02helpers: fix check for pid when creating device identifierAleksander Morgado
https://bugs.freedesktop.org/show_bug.cgi?id=94364
2016-02-24telit: add current modes settingDaniele Palmas
This patch adds current modes setting in Telit plugin
2016-02-20proxmark3 is not a modem, blacklist it.Michael Farrell
ModemManager locks the proxmark3 when it is connected. As it is not a modem, ModemManager shouldn't be talking to it. At present, the recommended action in the proxmark3 documentation is to purge ModemManager to fix this issue. Note that this vendor uses an unregistered USB device ID, so it is instead matched by the manufacturer string. References: - http://store.ryscc.com/blogs/news/45802433 - http://www.proxmark.org/forum/viewtopic.php?id=1759
2016-02-20build: ignore telit unit testAleksander Morgado
2016-02-15telit: add load_current_bands interfaceCarlo Lobrano
2016-02-15tests: white space / indentation fixesMichael Biebl
Fixes problems with GCC 6 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=811583 Bug: https://bugs.freedesktop.org/show_bug.cgi?id=94149
2016-02-15huawei: avoid trying to disable parent voice unsolicited eventsAleksander Morgado
Which actually segfaults, as MMBroadbandModem doesn't implement the disable_unsolicited_events() method in the voice interface.
2016-02-15huawei: ignore ^ECCLIST unsolicited messagesAleksander Morgado
These messages list the emergency numbers reported by the network, we don't use them yet. E.g.: ^ECCLIST: 112,911\r\n
2016-02-13thuraya: filter by vendor ID instead of vendor stringThomas Sailer
Probe the Thuraya XT modem by USB vendor ID; there are no RS232 versions to my knowledge. One of my computers exhibiting the probing issue (VID/PID of the PCI host controller instead of the USB device) fixed itself after a reboot. Signed-off-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
2016-02-13modem-helpers: regex creation should never failAleksander Morgado
We should really consider errors if we expect that the regex string may not compile; but in this case the pattern is fixed, so should never happen.
2016-02-13helpers: move +CRSM parsing to mm_3gpp_parse_crsm_responseThomas Sailer
Also added test cases. Signed-off-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
2016-02-13helpers: allow optional quotes in +CREG: <stat>,"<lac>","<ci>"Thomas Sailer
GSM 07.07 CREG=2 unsolicited pattern. Added testcase for Thuraya XT. Signed-off-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
2016-02-11broadband-modem-qmi: fix compile errors with newest QMI commands enabledDan Williams
2016-02-11broadband-bearer: don't send disconnect CGACT on data port for multi-port modemsDan Williams
A Huawei E173 (with FW 11.126.15.00.445) seems to stop responding on the primary port (ttyUSB2) when the CGACT is resent on the data port (ttyUSB0). The CGACT-on-data-port was originally added as a fallback attempt to get single-port modems to disconnect when all other methods failed. For single-port modems, the primary port is also the data port so this patch will have no effect. For multi-port modems, this patch will retry the CGACT on the primary port which has a higher chance of success because we already know the primary port is talking to us, while the data port may still be stuck in PPP mode.
2016-02-11thuraya: add plugin for the Thuraya XT satellite phone modemThomas Sailer
Signed-off-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
2016-02-11modem-helpers: allow optional whitespace in +CGDCONT responseThomas Sailer
Add testcase for Thuraya XT. Signed-off-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
2016-02-11qmi: just one InvalidCommand error is enough to avoid all DMS UIM commandsAleksander Morgado
The MMBroadbandModemQmi will not create a MMSimQmi until the unlock status has been checked, and therefore this means that when the SIM object is being created we already know whether the modem supports DMS UIM commands or not, so avoid further fallbacks in the SIM object.
2016-02-11sim-qmi: implement SIM verify/unblock/change/enable with UIM serviceAleksander Morgado
Newer modems like the MC7455 don't implement the "DMS UIM" commands in the DMS service, and therefore these modems need to use the UIM service directly. We include a new flag to detect whether any of the DMS UIM commands is flagged as invalid, and if so, we'll fallback to the UIM specific implementations for all. libqmi version bump to 1.13.7, which includes the new required methods.
2016-02-11broadband-modem-qmi: implement unlock retries loading with UIM serviceAleksander Morgado
Newer modems like the MC7455 don't implement the "DMS UIM" commands in the DMS service, and therefore these modems need to use the UIM service directly.
2016-02-11serial: remove duplicated ECHO & ECHOETomas Jura
2016-02-11mbm: stop echos on gps portTomas Jura
2016-02-04plugin: telit: add current mode loadingDaniele Palmas
This patch adds current mode loading in Telit plugin
2016-02-04plugin: telit: add supported modes loadingDaniele Palmas
This patch add supported modes loading in Telit plugin.
2016-01-30sim-qmi: port to GTaskAleksander Morgado
2016-01-30broadband-modem-qmi: plug memleak when listing SMS messagesAleksander Morgado
2016-01-30broadband-modem-qmi: locked states also indicate readiness of the SIM cardAleksander Morgado
When the card application is flagged as needing PIN or PUK, then the card can be considered as being ready.
2016-01-25telit: minor coding style fixesAleksander Morgado
2016-01-25telit: add load_supported_bands interfaceCarlo Lobrano
2016-01-25telit: add udev rule for Telit LE910 V2 modemCarlo Lobrano
2016-01-24broadband-modem-qmi: use "UIM Get Card Status" if "DMS UIM" command unavailableAleksander Morgado
The newer modules like the MC7455 which support multiple SIM cards won't implement the legacy "DMS UIM" commands.
2016-01-24bearer-qmi: use static IP if LLP is raw-ipAleksander Morgado
When using raw-ip we'll default to request static IP setup for now, so that we don't rely on the DHCP client supporting raw-ip interfaces.
2016-01-24port-qmi: support new Qualcomm chipsets working always in raw-ipAleksander Morgado
The port opening logic is changed completely. Before this change, the logic would only try 802.3 setting via CTL when the QmiDevice was being open. With this new change, instead, we'll use WDA and the new libqmi APIs to query the link layer protocol expected by both the device and the kernel. If the LLP matches in both, we assume we're done; if they differ we'll try to update the LLP expected by the kernel to the one setup in WDA. This change will allow us to run with the modem using raw-ip if that is what WDA reports by default. Also bumped the libqmi version to 1.13.6, which has support for the new required APIs.
2016-01-24build: require GLib 2.36Aleksander Morgado
We now need it for GTask support.
2016-01-23port-serial: rework response parsingAleksander Morgado
Response parsing was being done in different places for AT and QCDM subclasses; in the case of AT it was being done early, before returning the byte array in the mm_serial_port_command_finish() response. In the case of QCDM, it was being done after mm_serial_port_command_finish(), and that was forcing every caller to cleanup the response buffer once the response was processed. With the new logic in this patch, the response is always parsed (i.e. looked for a valid response or an error detected) before mm_serial_port_command_finish() returns, and actually this method now returns a totally different GByteArray, not the internal response buffer GByteArray, so there's no longer any need for the caller to explicitly clean it up. The one doing the cleanup is the parser method itself in every case. This change also allows us to return serial port responses in idle, but that's not changed for now as there's no immediate need.
2016-01-23port-serial: remove response buffer when an error is returnedAleksander Morgado
When valid responses were returned to the caller of the serial command, the caller itself was responsible for removing from the GByteArray the data that it was successfully processed (all the data in AT, just 1 message in QCDM). But, the same logic was missing for the case of errors; we were not explicitly removing the response and therefore in some cases we would see it propagated into the next command response. It was common to see this issue when the echo removal was disabled in the serial port, as in Option/HSO modems: <debug> (ttyHS3): --> 'AT+CNUM<CR>' <debug> (ttyHS3): <-- '<CR><LF>+CME ERROR: 14<CR><LF>' <debug> Got failure code 14: SIM busy <debug> (ttyHS3) device open count is 1 (close) <warn> couldn't load list of Own Numbers: 'Failed to parse NV MDN command result: -17' <debug> (ttyHS3) device open count is 2 (open) <debug> (ttyHS3): --> 'AT_OPSYS?<CR>' <debug> (ttyHS3): <-- '<CR><LF>_OPSYS: 1,2<CR><LF><CR><LF>OK<CR><LF>' <warn> couldn't load current allowed/preferred modes: 'Couldn't parse OPSYS response: '+CME ERROR: 14 _OPSYS: 1,2''
2016-01-20libmm-glib: make C++ happy by not using 'class'Dan Williams
2016-01-19bearer-qmi: print IP details at 'info' log levelDan Williams
2016-01-17broadband-modem: plug memleaks when processing QCDM responsesAleksander Morgado
2016-01-16broadband-modem,time: make sure that error is set when operation failsAleksander Morgado
2016-01-16tests,generic: rename basic DBus testAleksander Morgado
2016-01-16tests,port-context: explicitly close the socket that is added to the listenerAleksander Morgado
Since GLib 2.42, the sockets that are added to socket listeners may no longer be closed automatically when the listener is finalized. In order to avoid that, we will keep our own socket reference and close/unref it ourselves. This issue was preventing adding new test cases with the same port names. $ ./test-service-generic --verbose GTest: random seed: R02S889153ee0f2e59c570f4edff9caa4176 GTest: run: /MM/Service/Generic/enable-disable Activating service name='org.freedesktop.ModemManager1' Successfully activated service 'org.freedesktop.ModemManager1' (MSG: DEBUG: client connection closed) (MSG: MESSAGE: Found modem at '/org/freedesktop/ModemManager1/Modem/0') ** Message: Found modem at '/org/freedesktop/ModemManager1/Modem/0' (MSG: DEBUG: client connection closed) GTest: result: OK GTest: run: /MM/Service/Generic/cme-error-detected Activating service name='org.freedesktop.ModemManager1' Successfully activated service 'org.freedesktop.ModemManager1' (MSG: FATAL-ERROR: Cannot bind socket: Error binding to address: Address already in use) ** (/home/aleksander/Development/foss/ModemManager/plugins/.libs/lt-test-service-generic:32043): ERROR **: Cannot bind socket: Error binding to address: Address already in use
2016-01-16tests,test-fixture: don't rely on other threads to update dbus propertiesAleksander Morgado
We were wrongly using a main loop in the port context thread to manage the global main context. That was silently making the DBus property notifications kind of work, as they were being updated via another thread, so here we could just sleep() and recheck the property values. Given that having that unrelated thread updating the dbus properties of our MMManager object is not a good thing, we'll instead totally ignore that and fully re-create the MMManager in each iteration with the sync() method, which has its own internal thread.
2016-01-16tests,port-context: properly setup per-thread main contextAleksander Morgado
Instead of creating a new main context to be used in the thread, we were using the global context. So, fix that, and create a totally new pair of main context and main loop to be used within the thread.