Commit Graph

63 Commits

Author SHA1 Message Date
Aleksander Morgado
8ddee24cc9 hso: use user-specified allowed authentication methods
If none of the specified methods is supported, an error is returned.

Also quote user and password using `mm_at_serial_port_quote_string()'.
2012-10-07 21:12:00 +02:00
Aleksander Morgado
c250fa3797 libmm-glib: remove the `libmm-common.h' header
Both the ModemManager daemon and the mmcli will now include `libmm-glib.h' only.

We also handle two new special `_LIBMM_INSIDE_MM' and `LIBMM_INSIDE_MMCLI'
symbols, which if included before the `libmm-glib.h' library allow us to:

 * Don't include the libmm-glib high level API in the ModemManager daemon, as
   the object names would clash with those in the core.

 * Define some of the methods of helper objects to be included only if compiling
   ModemManager daemon or the mmcli.
2012-10-04 10:17:12 +02:00
Aleksander Morgado
a66f971a7c libmm-common: added common utils from core
Moved the utils to play with binary to hex strings into libmm-common.
2012-09-14 07:05:26 +02:00
Aleksander Morgado
4f7534452d option,hso: properly parse returned IMEI 2012-09-14 07:05:23 +02:00
Aleksander Morgado
6c1e005b54 hso: fix error handling in PIN retry counts 2012-08-30 23:47:30 +02:00
Aleksander Morgado
0436b3e457 api,introspection: report list of drivers, not just one
Different ports of the same modem may get handled by different drivers. We
therefore need to provide a list of drivers (new `Modem.Drivers' property with
signature 'as') instead of just one (removed `Modem.Driver' property with
signature 's').

$ sudo mmcli -m 0 | grep drivers
           |        drivers: 'qcserial, qmi_wwan'
2012-08-24 13:34:51 +02:00
Aleksander Morgado
d18dbb869a base-modem-at: add 'raw' handling to `mm_base_modem_at_command_full()' 2012-08-24 12:32:29 +02:00
Aleksander Morgado
d091344da2 broadband-bearer: pass down the data port to the 3GPP dialling step
Plugins may require specific dialling commands depending on the port type.
2012-08-23 18:56:22 +02:00
Aleksander Morgado
40730b115e hso: avoid highly unlikely use of already unref-ed bearer
In the connection sequence, we make sure that the Bearer object is valid by
keeping a reference in the Dial3gppContext (actually, another one kept by the
GSimpleAsyncResult as well). But we are considering here the case where the
connection context is completed and freed by an unsolicited message handler
before we get the reply to the AT command, so to properly ensure that the bearer
object is still valid when we try to check if the context is in the priv struct,
we need to keep an extra ref around.
2012-08-06 20:07:26 +02:00
Aleksander Morgado
63a45f8082 hso: avoid trying to use an already freed context
In the connection sequence, we keep the context in the private info of the
Bearer object, so that we can complete and free it when we receive OWANCALL
unsolicited messages. Now, the reply of the OWANCALL itself may get processed
as an unsolicited message, so effectively we're processing and finishing the
connection/disconnection context *before* we process the reply of the AT
command.

This patch ensures that we do not try to re-use the connection context after it
has been processed by the unsolicited messages handler.
2012-08-06 20:07:26 +02:00
Dan Williams
4e92b849af hso: fix small error in unlock retries checking
_OERCN only reports PIN and PUK, so we only check for two values.
2012-08-06 20:07:26 +02:00
Dan Williams
32bc031ae6 hso: implement unlock retries checking 2012-08-06 20:07:26 +02:00
Aleksander Morgado
a9075b0c09 port-probe: rename _get_port() to _peek_port() as there is no ownership transfer 2012-08-06 20:06:45 +02:00
Aleksander Morgado
e5e46f489e core: merge MMPluginBase' and MMPlugin'
There's no real point in maintaining a separate `MMPlugin' interface, as all the
plugins will inherit from `MMPluginBase', so just merge them and simplify
everything.
2012-08-06 20:06:45 +02:00
Aleksander Morgado
815693661c core: compile all ports before creating the modem object
Before this, we only exported the modem to DBus when all ports were organized,
in order to make sure that we select as primary port the one we really want and
not the first AT port grabbed. Given that to get all the ports organized we also
needed to wait to get all the ports grabbed, we can now also defer the creation
of the modem object until all the ports get grabbed. This allows us to create
different types of objects based on the ports available (e.g. we can now create
QMI-supported modem objects if we see a QMI port around).
2012-08-06 20:06:44 +02:00
Aleksander Morgado
b300110055 hso: use common integer string parsers 2012-07-19 16:22:45 +02:00
Aleksander Morgado
487cd29d8b hso: unsolicited %IPDPACT may come before the AT command reply 2012-07-19 16:22:40 +02:00
Aleksander Morgado
c63f42a20c hso: plug memleak when finishing dialling with error 2012-07-19 16:22:32 +02:00
Aleksander Morgado
b43ee56d06 hso: fix cid to report to 2012-07-19 16:22:27 +02:00
Aleksander Morgado
caeeae2721 bearer: simplify handling of the bearer configuration
The base MMBearer object will receive the MMBearerProperties configuration,
which contains every generic and plugin-specific set up. Not every configuration
parameter will be used by every implementation (e.g. not every bearer needs
user/password).

The Bearer object will expose every configuration parameter received in its
`Properties' property in the interface, even if it's not really used.
2012-05-06 17:12:36 +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
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
71e108fd64 hso: include support for the raw GPS location source 2012-03-29 09:18:04 +02:00
Aleksander Morgado
614a547316 hso: report received NMEA traces 2012-03-29 09:18:03 +02:00
Aleksander Morgado
2072190691 hso: open/close the raw GPS port when we enable/disable GPS gathering 2012-03-29 09:17:53 +02:00
Aleksander Morgado
97f779df1e hso: ensure GPS is disabled when we initialize the modem 2012-03-29 09:17:53 +02:00
Aleksander Morgado
ab9363011a hso: enable/disable GPS location gathering 2012-03-29 09:17:53 +02:00
Aleksander Morgado
335ba97f48 hso: include custom location capabilities loading
Will check for GPS location sources.
2012-03-29 09:17:53 +02:00
Aleksander Morgado
090e349209 hso: grab GPS-specific ports 2012-03-28 15:50:51 +02:00
Aleksander Morgado
f0b02ce321 hso: plug small memleak when building devfile
Why do we need the devfile anyway?
2012-03-28 15:50:43 +02:00
Aleksander Morgado
e07786ebb1 option: fix loading current allowed modes
The proper command to check the current allowed modes is `AT_OPSYS?'.
2012-03-26 15:23:28 +02:00
Aleksander Morgado
2d02279ba7 Revert "option: fix allowed modes response parsing"
This reverts commit 0bc824b452.

The fix is NOT to change the expected result, but to change the command itself.
2012-03-26 15:20:55 +02:00
Aleksander Morgado
063c4f9bf8 option: fix disabling sequence handling
This provides the proper fix for the disabling sequence, also amending the
erroneous checks introduced in commit 5b10af0f.
2012-03-26 13:46:30 +02:00
Aleksander Morgado
b581d6765f hso: skip the 10s timeout in High-Speed Option devices
Will only be applied to non-HSO Option modems.
2012-03-26 13:39:21 +02:00
Aleksander Morgado
e387100eb5 hso: update connection status only in the bearer matching the specific CID 2012-03-26 12:57:44 +02:00
Aleksander Morgado
770511f449 hso: fix segfault in bearer status update handling 2012-03-26 12:57:00 +02:00
Aleksander Morgado
5191dd3d9e option: fix reading port-specific setup file
The `physdev' stored in the probe is the sysfs path of the parent device, that
owning all ports. We need to build the setup file path using the port's sysfs
path instead.
2012-03-26 12:56:18 +02:00
Aleksander Morgado
ae50d291cd hso: probe for QCDM ports 2012-03-24 20:29:26 +01:00
Aleksander Morgado
6b678bd8cf hso: fix bearer private data handling 2012-03-24 19:50:10 +01:00
Aleksander Morgado
bd90ee8094 option: handle special 'auto' mode when setting allowed/preferred modes 2012-03-24 19:17:25 +01:00
Aleksander Morgado
43cdb25eb1 option: handle response specifying automatic mode
Option modems may reply '_OPSYS: 5,2' to report automatic mode being used.
2012-03-24 19:17:19 +01:00
Aleksander Morgado
19436a9906 option: fix setting allowed modes 2012-03-24 19:16:53 +01:00
Aleksander Morgado
5b10af0ff3 option: no result expected in unsolicited enabling/disabling sequence 2012-03-24 19:16:44 +01:00
Aleksander Morgado
0bc824b452 option: fix allowed modes response parsing
Expecting a `_OSSYS' reply, not `_OPSYS'.
2012-03-24 11:48:34 +01:00
Aleksander Morgado
3a7270930a hso: custom disconnection implementation 2012-03-16 14:53:26 +01:00
Aleksander Morgado
51956459dc hso: custom IP config retrieval implementation 2012-03-16 14:53:26 +01:00
Aleksander Morgado
70c70a61ab hso: let modem report connection status to the bearer
Connection status notifications are unsolicited; the modem will receive them
and it will forward them to the available bearer.
2012-03-16 14:53:26 +01:00
Aleksander Morgado
5a8a5d0f22 hso: always create a HSO-specific broadband bearer 2012-03-16 14:53:26 +01:00
Aleksander Morgado
7de8b588b6 hso: setup connection sequence 2012-03-16 14:53:26 +01:00
Aleksander Morgado
d374b995f9 hso: new `MMBroadbandBearerHso'
Includes handling of user and password.
2012-03-16 14:53:26 +01:00