Commit Graph
1362 Commits
Author SHA1 Message Date
Nathan Williams 01a17f5c6c helpers: adjust parsing of +CNUM response to permit spaces in the alphanumeric descriptor.
This permits matching a response such as '"Line 1","+19999999999",145',
which previously did not match.

Change-Id: I666af8774507c6c3b3e214b820449542065dd8b4
2012-04-13 23:35:13 +02:00
Aleksander Morgado d379b9ea2a bearer: allow subclasses to report disconnection
The new `mm_bearer_report_disconnection()' allows subclasses to notify about
being disconnected, so that every layer of inheritance can chain its own code
to reset the connection status.

This commit partially disables the logic included in commit 981222. Now
subclasses (actually, no one) are not allowed to g_object_set() the
MM_BEARER_STATUS property.
2012-04-10 23:27:25 +02:00
Aleksander Morgado 83afd3ddc9 iface-modem: new helpers to query supported modes 2012-04-10 18:28:33 +02:00
Aleksander Morgado bc0d9ddf5f broadband-modem: query supported networks to get a better supported modes value
If we base our supported modes default guessing only on capabilities listed by
AT+GCAP, we find that we don't know how to differenciate between 2G and 3G 3GPP
modems. So, if supported, we will try to query the list of supported networks
with AT+WS46=?, which explicitly tells us if the modem supports GERAN and/or
UTRAN and/or E-UTRAN. Note that plugins need to request this new behaviour by
setting the `MM_BROADBAND_MODEM_USE_WS46' property to TRUE when creating the
modem object.
2012-04-10 18:27:17 +02:00
Aleksander Morgado b49ddfe930 iface-modem: skip handling the CURRENT_CAPABILITIES property
It is an unnecessary complication, as long as we can keep the helpers in the interface.
2012-04-10 17:47:43 +02:00
Aleksander Morgado 9812225d93 bearer: always reset interface state when going into disconnected status
Custom bearer implementations in Plugins are allowed to g_object_set() the
MM_BEARER_STATUS property to DISCONNECTED in order to notify that the bearer got
disconnected. We need to always reset the interface state (remove IP config, set
connected=FALSE,...) also in that case.

Also consolidated in some helper private functions the way the bearer status is
updated.
2012-04-10 10:46:10 +02:00
Aleksander Morgado cfeebcd63a manager: no need to remove modems in idle
There is no problem in getting the modem removed just after finishing the
disabling sequence.
2012-03-30 16:18:48 +02:00
Aleksander Morgado 3094e3f26b manager: try to get all modems disabled before while shutting down 2012-03-30 16:11:55 +02:00
Aleksander Morgado 8c84aea3f0 base-modem: disconnect internal cancellable handler while disposing 2012-03-30 16:11:14 +02:00
Aleksander Morgado b68461c417 base-modem: plug small leaks 2012-03-30 16:09:27 +02:00
Aleksander Morgado b03541b1fe plugin-base: don't setup udev client notifications 2012-03-30 13:47:00 +02:00
Aleksander Morgado 0372e73abd port-probe-cache: ensure we cleanup every possible leftover 2012-03-30 13:47:00 +02:00
Aleksander Morgado 94d46a4387 plugin-base: plug memleak 2012-03-30 13:47:00 +02:00
Aleksander Morgado 7518772d4b core: fatal errors in iface initializations force the modem into a FAILED state
Modems which end up being found unusable (e.g. no SIM, fatal SIM error, no
capabilities) will be exposed in DBus, but just with the Modem interface and
in a FAILED state which allows no actions.
2012-03-30 13:47:00 +02:00
Aleksander Morgado 3b366118b6 simple: need to wait to get fully initialized before trying to enable 2012-03-30 10:25:33 +02:00
Aleksander Morgado 374c028b16 broadband: reload operator and registration info only when enabling 3GPP location source 2012-03-30 08:20:38 +02:00
Aleksander Morgado 0d8cf160e5 broadband: ensure 3GPP location info gets updated when enabling the source
Whenever 3GPP location source gets enabled, we'll launch new registration status
checks (to get updated LAC/CI) and new operator code/name checks (to get updated
MCC/MNC).

Additional changes were needed in the HSO plugin, so that the specific location
gathering enabling implemented by the HSO modem chains up parent's one first.
2012-03-29 17:20:37 +02:00
Aleksander Morgado 3cea187a94 location: update the status before running enabling/disabling sequences
This will allow implementations of location source enabling to actually update
the location information during the enabling phase.
2012-03-29 17:17:52 +02:00
Aleksander Morgado 43bd3f95ae 3gpp: let operator name/code reloading be requested by implementations 2012-03-29 17:16:38 +02:00
Aleksander Morgado dc376bb725 3gpp: errors when reloading operator name/code will reset the values in the interface 2012-03-29 17:15:48 +02:00
Aleksander Morgado bb2f9b672c broadband-modem: remove unused variable 2012-03-29 16:10:07 +02:00
Aleksander Morgado b80fdfdaa8 iface-modem-location: plug memleak and reference count mismatch 2012-03-29 09:18:04 +02:00
Aleksander Morgado 33e569bbab iface-modem-location: handle the raw GPS location source 2012-03-29 09:18:03 +02:00
Aleksander Morgado 53b500c11d iface-modem-location: handle the NMEA-based GPS location source 2012-03-29 09:18:03 +02:00
Aleksander Morgado 1cfab89719 base-modem: use new `MMGpsSerialPort' type for the raw GPS port 2012-03-29 09:17:53 +02:00
Aleksander Morgado a0b3663274 gps-serial-port: new type to handle read-only serial ports with GPS traces 2012-03-29 09:17:53 +02:00
Aleksander Morgado 6d50e5195f serial-port: forced close only to be done once 2012-03-29 09:17:53 +02:00
Aleksander Morgado ceefa2c356 location: rework to allow multiple location sources
Location sources can now be enabled or disabled by using the mask of sources
given in Setup() (similar previous Enable()).
2012-03-29 09:17:53 +02:00
Aleksander Morgado be633fd66b base-modem: handle GPS control and data ports
Plugin may specify GPS-specific port tyeps when requesting to grab the port.
These could either be an AT-based GPS control port, or the raw GPS serial port
which emits the NMEA traces.
2012-03-28 15:50:51 +02:00
Aleksander Morgado b19f97ae7d port: new `MM_PORT_TYPE_NET' for pure net devices
Net devices will be MMPorts of type MM_PORT_TYPE_NET.
2012-03-28 15:50:51 +02:00
Aleksander Morgado 3b481cf17f base-modem: no need for `port_grabbed()'
Subclasses can configure additional stuff in the ports just after all have been
organized, in the SETUP_PORTS initialization step in MMBroadbandModem.
2012-03-28 15:50:51 +02:00
Aleksander Morgado 8dfbf195c1 port: skip LAST enums in glib-mkenums processing 2012-03-28 15:50:51 +02:00
Aleksander Morgado 68421638f5 at-serial-port: new flag to define the GPS control port 2012-03-28 15:50:51 +02:00
Aleksander Morgado 79c93f4333 at-serial-port: define flags by shifting bits
Otherwise glib-mkenums doesn't take the enumeration as being flags.
2012-03-28 15:50:51 +02:00
Aleksander Morgado 62923f9086 serial-port: ensure we close the port when forcing to close it 2012-03-28 15:50:43 +02:00
Aleksander Morgado b8157228eb broadband-modem: plug memleak when uppercasing storage names 2012-03-28 15:50:43 +02:00
Aleksander Morgado 029cb2abe9 broadband-modem: plug memleak when building AT command 2012-03-28 15:50:43 +02:00
Aleksander Morgado b29eb54080 sim: plug memleak 2012-03-28 15:50:43 +02:00
Aleksander Morgado 121c543711 sim: fix completion of pin-puk check 2012-03-28 15:50:43 +02:00
Aleksander Morgado 45e4f390eb charsets: plug memleak 2012-03-28 15:50:43 +02:00
Aleksander Morgado f07d3748c6 broadband-modem: fix error reporting in the modem initialization sequence
The initialization sequence doesn't expect any result, so
`mm_base_modem_at_sequence_finish()' will actually return NULL even if there is
no error. Therefore, we base the success of the sequence on the existence of a
GError in the return.
2012-03-26 13:49:02 +02:00
Aleksander Morgado e69d4974ef broadband-modem: use current charset when parsing operator name 2012-03-26 13:37:41 +02:00
Aleksander Morgado 46fa15c603 broadband-modem: initialize the Simple interface even if unlocked
We should be able to unlock the modem during Simple Connect().
2012-03-26 12:54:17 +02:00
Aleksander Morgado fec294b226 plugin: bump major plugin version
The PluginBase object got modified during the new codebase development, and
therefore we need to ensure that the current codebase doesn't try to load old
plugins.
2012-03-26 11:19:05 +02:00
Aleksander Morgado f6d8c52bc9 iface-modem: do not try to set new allowed/preferred config if modem already in there 2012-03-26 09:35:09 +02:00
Aleksander Morgado 41a592b535 iface-modem: treat ANY in allowed modes as being equal to the list of supported modes 2012-03-24 19:16:53 +01:00
Aleksander Morgado d841916c4f port-probe: don't probe product string if vendor string probing failed 2012-03-23 18:25:58 +01:00
Aleksander Morgado e2730d6a02 port-probe: probed vendor/product string will be NULL when error probing 2012-03-23 18:25:58 +01:00
Dan Williams d41d62f577 serial: fix crash when sending some commands to a closed port (lp:963102)
If the command we're sending doesn't have a callback, don't try
to call NULL.  Triggered if the port got closed (because the modem
crashed, or refcounting errors or whatever) with some code like this:

    mm_at_serial_port_queue_command (MM_AT_SERIAL_PORT (port), "+CREG=0", 3, NULL, NULL);
2012-03-23 10:58:59 -05:00
Aleksander Morgado 46d16d5c99 libmm-common: new common uint/int/str parsers 2012-03-18 17:28:14 +01:00