Commit Graph
843 Commits
Author SHA1 Message Date
Aleksander Morgado cd6caf6106 broadband-modem: handle connection related states in the modem
As a modem can have more than one bearer, the mapping between the bearer state
and the modem state is not direct.
2012-03-15 14:14:35 +01:00
Aleksander Morgado 9962f5cbde bearer: new `bearer-state' property 2012-03-15 14:14:35 +01:00
Aleksander Morgado cadc27ca0e core,libmm-glib: include ony `libmm-common.h'
Don't include one by one all the headers from libmm-common, just include the
global `libmm-common.h' which includes all the others.
2012-03-15 14:14:34 +01:00
Aleksander Morgado 4b8b99ee96 bearer-3gpp: set ip method when connecting the bearer
Currently, assume PPP when we have an AT data port, and DHCP otherwise.
2012-03-15 14:14:34 +01:00
Aleksander Morgado b7960f82ac manager: don't try to export already exported modems 2012-03-15 14:14:34 +01:00
Aleksander Morgado 7e99d9415b broadband-modem: allow 3GPP bearer connection if registered in 3GPP network 2012-03-15 14:14:34 +01:00
Aleksander Morgado 770ea53109 bearer: fail connecting try if not allowed to connect 2012-03-15 14:14:34 +01:00
Aleksander Morgado 3d1d4c42e5 bearer-list: allow iterating over the bearers in the list 2012-03-15 14:14:34 +01:00
Aleksander Morgado 00b2e2d2dd bearer: new property to define whether the bearer is allowed to connect
Modems will allow bearers to get connected once they are registered in the
network.
2012-03-15 14:14:34 +01:00
Aleksander Morgado 48f0061355 bearer-3gpp: implement 3GPP-specific bearer
Implement basic functionality of a 3GPP based bearer, including connnection and
disconnection.
2012-03-15 14:14:34 +01:00
Aleksander Morgado c855e5be2d iface-modem: minor fix, remove unneeded variables in the initialization context 2012-03-15 14:14:34 +01:00
Aleksander Morgado c133c3284d base-modem: allow retrieving non-connected data ports
Bearers will ask for data ports that can be used for connections. Right now,
only one data port is expected to be handled, but we don't impose any
restriction in the API.
2012-03-15 14:14:34 +01:00
Aleksander Morgado 88077cbbe8 iface-modem: treat several SIM related errors as fatal
If the SIM is not inserted or the modem reports SIM failures, just abort the
initialization process. We don't want to export modems which cannot be used.

I know at least of one modem (wavecom) which supports SIM insertion while
connected, but being such a corner case, probably not worth supporting it.
2012-03-15 14:14:34 +01:00
Aleksander Morgado 5f4655c574 helpers: implement CGDCONT reply parsing
New method to parse the PDP query reply, and build a list of structs with the
found info.
2012-03-15 14:14:33 +01:00
Aleksander Morgado d7f4a5e134 bearer: populate Properties used when creating the Bearer 2012-03-15 14:14:33 +01:00
Aleksander Morgado 776cc66e2c iface-modem: implement all bearer list operations in the interface
Bearer list operations, except for Bearer creation, are so generic that the
interface itself can implement it for every object implementing the interface.
This implementation is based on a new MMBearerList object.
2012-03-15 14:14:33 +01:00
Aleksander Morgado 667e3edfbd bearer: ensure only valid bearers are exported
We setup bearer export in DBus only if the input properties are the expected
ones.
2012-03-15 14:14:33 +01:00
Aleksander Morgado 4d594c50e8 libmm-common: capabilities string builder moved from core
Keep in libmm-common the capabilities string builder.
2012-03-15 14:14:33 +01:00
Aleksander Morgado 68b0ac6e19 broadband-modem: by default only send init command once
Will handle sending it twice only for Nokia phones.
2012-03-15 14:14:33 +01:00
Aleksander Morgado c15181ae37 port-probe: always complete probing task in idle 2012-03-15 14:14:33 +01:00
Aleksander Morgado ed83d54087 port-probe: plug small leak when reporting error in AT command response 2012-03-15 14:14:33 +01:00
Aleksander Morgado e1cba4a533 broadband-modem: implement bearer creation, deletion and listing
Currently do not limit the number of bearers that can be created.
2012-03-15 14:14:32 +01:00
Aleksander Morgado 4f4bb6b54b bearer: fix object export/unexport 2012-03-15 14:14:32 +01:00
Aleksander Morgado a7acdcd071 sim: only unexport object if currently exported
Avoid trying to unexport the object if it was never exported before.
2012-03-15 14:14:32 +01:00
Aleksander Morgado 7030bbc586 iface-modem-3gpp: bind connection property right away 2012-03-15 14:14:32 +01:00
Aleksander Morgado 8725fe5346 iface-modem: bind connection property right away 2012-03-15 14:14:32 +01:00
Aleksander Morgado ad1c7d8dec sim: bind connection property right away 2012-03-15 14:14:32 +01:00
Aleksander Morgado b435012eb1 sim: make sure we unexport the SIM object when destroying it
Usually, if not always, the connection stored in the SIM object never exists
when disposing it, as we clear the connection property in the Modem object
before destroying it, and both properties are bound. But just in case, in order
to avoid ending up with a zombie object in DBus, we make sure we unexport it.
2012-03-15 14:14:32 +01:00
Aleksander Morgado a2f0814fc5 bearer: keep properties given as input, and avoid async creation
No need to create this object asynchronously.
2012-03-15 14:14:32 +01:00
Aleksander Morgado 3dcdc3c920 modem-helpers: new helper to count number of bits set in a bitmask 2012-03-15 14:14:32 +01:00
Aleksander Morgado 36fae5564b bearer: new object to handle bearers, implements the Bearer DBus interface 2012-03-15 14:14:31 +01:00
Aleksander Morgado 3164f5512d sim: plug memleak, free path on finalize() 2012-03-15 14:14:31 +01:00
Aleksander Morgado 0c64e08f85 error-helpers: small refactor 2012-03-15 14:14:31 +01:00
Aleksander Morgado fb90f205d1 core: port to use the new AT command/sequences in the MMBaseModem API 2012-03-15 14:14:31 +01:00
Aleksander Morgado 52db9b9035 base-modem-at: refactor AT sequence/command handling
Make a tight connection between the action of sending AT commands, either single
or in a sequence, with the MMBaseModem object owning the port. This direct
relation allows sending commands without specifying which port to use, so that
the modem object can get the best port at each time, and handling all that in a
single common place.

The original mm-at API has also been modified so that when a single command is
sent, a constant string is returned. We are allowed to return constant strings
in mm_base_modem_at_command_finish() because the string itself is owned by the
GSimpleAsyncResult, and hence, alive enough time. The GSimpleAsyncResult is
completely disposed only after the async call is fully completed.

Same reasoning behind the GVariant returned in the AT sequences; it should not
be owned by the caller, it's a transfer-none in introspection terms.
2012-03-15 14:14:31 +01:00
Aleksander Morgado 2be2288754 iface-modem: handle CreateBearer(), DeleteBearer() and ListBearers()
Just pass the task to the specific underlying implementation.
2012-03-15 14:14:31 +01:00
Aleksander Morgado 6549c23db8 broadband-modem: implement cleaning up CS and PS registrations 2012-03-15 14:14:31 +01:00
Aleksander Morgado 1e026fe986 iface-modem-3gpp: cleanup CS and PS registrations during disable 2012-03-15 14:14:31 +01:00
Aleksander Morgado e3117333d9 broadband-modem: implement cleaning up unsolicited registration message handlers 2012-03-15 14:14:31 +01:00
Aleksander Morgado 029902312d iface-modem-3gpp: cleanup unsolicited registration messages during disable 2012-03-15 14:14:31 +01:00
Aleksander Morgado 289057bf92 iface-modem: don't flash port during disable
At least just for now. Flashing should be done as part of the disconnection.
2012-03-15 14:14:31 +01:00
Aleksander Morgado a170c0841d broadband-modem: setup steps when disabling the modem
Include disabling the Modem and 3GPP interfaces for now.
2012-03-15 14:14:31 +01:00
Aleksander Morgado c867da54b1 iface-modem-3gpp: interface can be disabled 2012-03-15 14:14:31 +01:00
Aleksander Morgado 8459eba214 iface-modem-3gpp: enable periodic registration checks if no unsolicited
If we get errors when configuring the unsolicited registration messages, setup a
timeout to be run every 30s which will check our registration status.
2012-03-15 14:14:30 +01:00
Aleksander Morgado 3c3a2b811a broadband-modem: implement network scan 2012-03-15 14:14:30 +01:00
Aleksander Morgado 8ecb80b553 iface-modem-3gpp: handle network scan requests 2012-03-15 14:14:30 +01:00
Aleksander Morgado a92e9c59c1 modem-helpers: provide list of scanned networks in a list of structs
We provide the result of the +COPS=? parsing in a GList of MM3gppNetworkInfo
structures. We avoid the previous hash table, or using a dictionary, as a
list of structs with a predefined set of elements, which should be easier for
plugins wanting to make their own version
2012-03-15 14:14:30 +01:00
Aleksander Morgado 0c7281b2d9 broadband-modem: implement Operator Code and Name loading 2012-03-15 14:14:30 +01:00
Aleksander Morgado ad0a18d107 iface-modem-3gpp: when going into REGISTERED, load Operator Name and Code 2012-03-15 14:14:30 +01:00
Aleksander Morgado 3b2b0645be iface-modem-3gpp: report registration state change in the log 2012-03-15 14:14:30 +01:00