Commit Graph

2375 Commits

Author SHA1 Message Date
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
Aleksander Morgado
3046059aff iface-modem-3gpp: if already registered as requested, don't try to register from scratch 2012-03-16 15:52:36 +01:00
Aleksander Morgado
6bb90d92e4 iface-modem-simple: try to skip initial steps in the Simple Connect sequence 2012-03-16 15:38:09 +01:00
Aleksander Morgado
295272196d iface-modem-simple: don't request to connect the bearer if already connected 2012-03-16 15:37:37 +01:00
Aleksander Morgado
29b955afa2 iface-modem: if we are already unlocked, don't try to check it again
We're assuming here we are never getting locked without us knowing it.
2012-03-16 15:37:12 +01:00
Aleksander Morgado
1dbe4a12cf iface-modem-simple: don't call the enable() methods in the class directly
Use the new `mm_base_modem_enable()' instead, which will pass down the
modem-wide cancellable to the enable() implementation.
2012-03-16 15:21:56 +01:00
Aleksander Morgado
686cfbb2c0 iface-modem-simple: don't assume bearer is always set 2012-03-16 15:21:01 +01:00
Aleksander Morgado
f2fee29968 broadband-bearer: pass down cancellable to the 3gpp dialing implementation 2012-03-16 15:20:40 +01:00
Aleksander Morgado
93b4256fb6 broadband-bearer: pass down CID to the 3GPP-specific disconnection logic 2012-03-16 14:53:26 +01:00
Aleksander Morgado
cd7d4c3019 broadband-bearer: let subclasses handle their own IP config retrieval mechanism
Mainly given for bearers requiring static IP addresses in net ports.
2012-03-16 14:53:26 +01:00
Aleksander Morgado
6900348b64 broadband-bearer: let subclasses know the CID being used 2012-03-16 14:53:26 +01:00
Aleksander Morgado
fe13d4cb66 broadband-bearer: ensure a result is always set
Just a convenience, as it is anyway not used afterwards.
2012-03-16 14:53:26 +01:00
Aleksander Morgado
473c5fee4d bearer: properties are exposed before exporting the bearer object
And we let subclasses to specify which of the input properties need to be
exposed.
2012-03-16 14:53:26 +01:00
Aleksander Morgado
15e9943036 plugin-base: avoid launching AT probing on new ports if the modem expects only one
If we got an existing modem showing a new port, and the plugin handling that modem
said that only one AT port was expected, we shouldn't be AT-probing it any more.
2012-03-16 14:53:25 +01:00
Aleksander Morgado
29f23f2a49 base-modem: new method to check if the modem got any AT port
Required for the single-at logic in the plugins.
2012-03-16 14:53:25 +01:00
Aleksander Morgado
3eb4220caa port-probe: new probing result setters
We make them public, so that we can set results before actually running the
probing.
2012-03-16 14:53:25 +01:00
Aleksander Morgado
d2559e2716 plugin-base: only cancel AT probing in probes of the same device 2012-03-16 14:53:25 +01:00
Aleksander Morgado
c52762ea67 build: require gudev >= 147
Since udev 147 the gudev API is no longer marked as experimental, and therefore
`G_UDEV_API_IS_SUBJECT_TO_CHANGE' is no longer needed.
2012-03-16 14:53:25 +01:00
Aleksander Morgado
703ab2590b port-probe: probing may just require vendor or product probing
If we already had probed, e.g. AT capabilities, and a next plugin requires
Vendor AT probing, the task will only show that VENDOR_AT is requested.
2012-03-16 14:53:25 +01:00
Aleksander Morgado
56e7b15f5c base-modem: ensure we cancel any ongoing operation when we're disposing 2012-03-16 14:53:24 +01:00
Aleksander Morgado
09026ed89a iface-modem: treat serial errors also as fatal when checking unlock status 2012-03-16 14:53:24 +01:00
Aleksander Morgado
e2a56ba490 iface-modem-time: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado
9eebb75ca3 iface-modem-messaging: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado
2c4a69b190 iface-modem-location: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado
fea2ef0e5c iface-modem-cdma: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado
0d4b644572 iface-modem-3gpp: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado
e140ff3c5f iface-modem: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado
d27e40ae9a core: new `Initializing' state in the global modem state machine
We need to define a state to be used while the modem is being initialized, so
that we forbid any operation on the modem on already exported interfaces, while
there are interfaces pending to get exported.

This Initializing state will also cover the state between having the SIM
unlocked (which launches re-initialization) and being completely initialized.
2012-03-16 14:53:24 +01:00
Aleksander Morgado
6de2e3f72c sim: don't require the Modem object in the context
It's already easily available in self->priv->modem;
2012-03-16 14:53:24 +01:00
Aleksander Morgado
3a22128d9e iface-modem: don't leave locked state until re-initialization is complete 2012-03-16 14:53:24 +01:00
Aleksander Morgado
be7f499aa6 broadband-modem: set cancellations in the initialization, enabling and disabling sequences 2012-03-16 14:53:23 +01:00
Aleksander Morgado
181f9c85f0 log: only include LOC and method name in debug logs if running with --debug
If the modem is started with --log-level=DEBUG, they will not be shown.
2012-03-16 14:53:23 +01:00
Aleksander Morgado
cdd339f802 base-modem: implement new modem-wide cancellable, and rework AT commands
Instead of the `_in_port()' variants, we'll provide more generic
`_full()' methods. These should be used either if we want to send commands
to a specific port, or if we want to use a specific user-provided GCancellable.

In addition to this user-provided GCancellable, we keep the internal modem-wide
one.
2012-03-16 14:53:23 +01:00
Aleksander Morgado
215c278082 base-modem: new modem-wide cancellable, passed to every state machine 2012-03-16 14:53:23 +01:00
Aleksander Morgado
7bfc56c2a8 base-modem-at: set error if NULL port detected
Users of mm_base_modem_at_command_in_port() can now directly pass the result
of mm_base_modem_peek_port_primary() or mm_base_modem_peek_port_secondary(),
which may be NULL if no such port exists in the modem. So we'll gracefully
detect the NULL port and complete the async operation with an error.
2012-03-16 14:53:23 +01:00
Aleksander Morgado
cc6d4a97fb base-modem: new port getters and peekers
* mm_base_modem_peek_port_* () will return either a port object (no new
reference), or NULL if none available.

You would usually peek() a port if you're going to use it just in the current
method, as there is no way to that reference to get invalid (we're single
threaded).

 * mm_base_modem_get_port_* () will return either NEW references to valid
port objects, or NULL if none available.

And, you would usually get() a port, whenever you want the port object to be
valid even out of the current method, for example when keeping it in the
context of an async operation.

Also, we need to consider that the primary AT port MAY BE NULL when you
peek() or get() it. This is due to the fact that we may be releasing ports
(due to device disconnection) in the middle of async operations.
2012-03-16 14:53:23 +01:00
Aleksander Morgado
48285dcfdf serial-port: forcing to close a port is an internal operation
Ports being forced to get closed will only happen when we get a HUP error
in the serial port (e.g. device got disconnected).
2012-03-16 14:53:23 +01:00
Aleksander Morgado
4f59a696fc serial-port: don't warn when trying to close a port which was forced to be closed 2012-03-16 14:53:23 +01:00