Commit Graph

37 Commits

Author SHA1 Message Date
Jason Glasgow
2dbca0baf8 core: make modem StateChanged signal consistent with API documentation
The new and old state arguments were flipped.
2011-03-31 15:29:12 -05:00
Dan Williams
16039244bb core: rework logging
Make it more flexible, add logging to a file, and absolute and
relative timestamps.
2011-01-23 20:51:48 -06:00
Dan Williams
d908389aff core: add modem reset/power-cycle command
Based on a patch by Elly Jones from Google.
2011-01-14 12:17:02 -06:00
Dan Williams
5419f1f195 core: allow setting IP method after construction
Some modems might not know their IP method until after the
modem object has been created.
2010-11-29 00:21:44 -06:00
Dan Williams
7ae8ffe21b core: use hardware IDs as part of DeviceIdentifier
Pass the device's hardware IDs through modem creation and use them
when calculating the device's identifier.  Add a bunch of testcases
for real hardware to ensure we don't break the device ID in the
future unless we really want to.
2010-10-22 11:06:48 -05:00
Dan Williams
328d2369a9 core: add DeviceIdentifier property
This is computed before any PIN is entered, and thus before we can
usually get IMEI or MEID/ESN out of the device in many cases. It's
therefore not the same as EquipmentIdentifier.

This is intended to be used by UI programs for matching devices with
PIN numbers for automatic unlocking.  While the PIN number is actually
*SIM* specific, no modems allow access to the IMSI before the PIN is
entered, and thus we cannot actually match the PIN with the SIM.  The
device ID is the next best thing we can use and should allow auto
unlocking in most cases.
2010-10-21 16:57:37 -05:00
David Rochberg
89c572e59d core: add FactoryReset method
Cleanups and authorization checks by me (dcbw).
2010-06-22 17:47:07 -07:00
Dan Williams
88c538314a core: EquipmentIdentity -> EquipmentIdentifier 2010-06-22 17:14:13 -07:00
Torgny Johansson
52929a2c92 core: add modem EquipmentIdentity property to report IMEI/ESN/MEID 2010-06-22 14:36:49 -07:00
Torgny Johansson
f179a56908 gsm: add UnlockRetries property
Which reports the # of attempts remaining for the current PIN required
by the device or SIM.

Some modifications/cleanups by dcbw.
2010-06-22 14:05:09 -07:00
Dan Williams
b8f0f40349 core: fix memory leaks
Since MMModem is an interface and doesn't store stuff like the
modem's physdev internally (since it's an interface) these things
are handled via GObject properties.  And since g_object_get()
returns allocated values, we need to free the returned value
from mm_modem_get_device() after we're done with it.
2010-05-07 13:56:23 -07:00
Dan Williams
a13becc225 core: timestamp debug statements 2010-04-29 18:59:11 -07:00
Dan Williams
2a94d38edc core: move charset enum/string conversion to it's own file 2010-03-13 16:37:24 -08:00
Dan Williams
ac7310ab10 gsm: add character set get/set support 2010-03-13 16:26:46 -08:00
Dan Williams
28d065c1f1 core: implement optional PolicyKit-based authentication 2010-02-27 12:51:13 -08:00
Dan Williams
3b6a58145f core: simply authentication request objects 2010-02-27 10:29:34 -08:00
Dan Williams
438a047935 core: add authorization providers and optional PolicyKit support
When the support is complete, use --with-polkit to enable
PolicyKit support.  It's not there yet, but this commit adds an
authorization provider framework which will be extended to allow
hooking into PolicyKit.
2010-02-26 18:01:55 -08:00
Norbert Frese
3d0f2ecf12 core: add an UnlockRequired property that provides lock status (bgo #604551)
Clients can check the property to determine lock/unlock status and thus
unlock the modem before trying to connect if required.

Bits of the patch by dcbw (see the bug).
2010-01-31 11:06:55 -08:00
Dan Williams
c6694a06b5 core: fix mm_modem_check_removed() to return errors correctly
Make sure all errors actually get returned, not just removal errors.
2010-01-19 14:23:05 -08:00
Dan Williams
50ad39b28e core: protect against modem removal in critical callbacks (rh #553953)
There are more places to handle, but these are the most critical.  If
the modem is removed while a command is in-progress, the mm-callback-info
code will set info->modem to NULL.  Make sure we check for that in
callbacks and return a reasonable error.  Previous code would just
blindly forge ahead and die on a null dereference.
2010-01-19 03:18:10 -08:00
Dan Williams
710986bd4b core: add Enabled property to org.freedesktop.ModemManager.Modem interface 2009-12-21 11:37:36 -08:00
Dan Williams
1157b59a18 core: pretty-print state changes 2009-12-02 14:59:26 -08:00
Dan Williams
7f1951fec8 core: fix ordering of DISABLING and DISABLED states 2009-12-01 16:44:07 -08:00
Dan Williams
e9964231e9 core: use modem states to protect against double operations 2009-12-01 15:38:11 -08:00
Dan Williams
231d2ca90b core: schedule enabled/disabled callbacks to avoid infinite recursion 2009-12-01 12:57:39 -08:00
Dan Williams
9bbc6ab53b core: initial implementation of modem states
Needs more work for GSM, but should be reasonably complete for CDMA.
2009-10-27 15:01:00 -07:00
Dan Williams
3b19a85727 core: split generic modem enable/disable operations 2009-09-23 16:04:25 -07:00
Alexander Sack
12ac98e9f6 license: add license header to all files and set copyright based on git log 2009-08-06 12:43:51 +02:00
Dan Williams
52da9990ee plugins: allow plugins to more easily suggest port types
ZTE modems need to use udev rules to assign port type hints,
so generalize that and port all the plugins over to suggested
port types in the MMModem interface's grab_port() function.
2009-07-02 13:48:30 -04:00
Dan Williams
6077763d90 asynchronous and deferred port detection
Allow plugins to perform asynchronous port detection, and to defer port detection
until later.  This moves the prober bits into MMPluginBase so that all plugins
can take adavantage of it only when needed; the probing is not done at udev time.
Furthermore, plugins like Novatel can flip the secondary ports over the AT mode
through	deferred detection, by deferring the secondary ports until the main port
has been detected and AT$NWDMAT	has been sent.

This commit also finishes the port of the rest of the plugins (except mbm) over
to the new port detection methods and plugin API.
2009-06-28 14:05:05 -04:00
Dan Williams
6d4616c1d3 modem: move GetInfo from GsmCard -> Modem interface
It's generic, everything implements some variant of +GMM, +GMR, and +GMI.
2009-06-19 12:43:37 -04:00
Dan Williams
924814c101 udev: move device probing and detection to udev
Get rid of dependency on HAL, using libgudev instead.  Fix up the plugin API
to no longer use either HAL or udev defines, but let plugins use whatever
mechanism they want for getting more information out of the device given the
subsystem and device node name.

Modems are now defined as "master" devices which "own" a one or more ports.
A port could be a serial tty device or a network device or whatever.  The
plugin figures out whether it supports a given port or not and then assigns
it to a new or existing modem.  Modems now have a 'valid' property that
should be set to TRUE when the modem has enough ports to operate correctly.
For devices (ex. 'hso') that use a network device for data transfer, the
modem would need to grab at least one TTY and the network device associated
with that physical device to be 'valid'.

Also move the generic modem support code to a plugin like other modem plugins,
and change the I-support-this-device mechanism to return a number indicating
the level of support.  For example, the generic plugin would return a quite
low number if the device indicates via probing that it can do GSM or CDMA, but
a more specific plugin can indicate better support for the device, and thus
the more specific plugin would win control.
2009-06-18 14:25:30 -04:00
Tambet Ingo
fd5f4222d7 Extend org.freedesktop.ModemManager.Modem interface.
* Add IpMethod property with known values ppp (default), static, DHCP.
* Rename DataDevice property to Device.
* Add GetIP4Config method. It should be implemented only when IpMethod==static.
* Update org.freedesktop.ModemManager.Modem.Gsm.Sms interface based on
  Pablo Martí Gamboa's suggestions.
* Adjust MBM and HSO interfaces to take advantage of the generic Modem
  interface.
2009-02-06 13:34:02 +02:00
Tambet Ingo
d1d94de6a1 Lots of random fixes:
Rework the MMCallbackInfo callback invocation.
Always use g_error_literal() where it makes sense.
Replace sleep() calls, with timeouts to not block the whole MM.
2008-12-09 15:41:51 +02:00
Tambet Ingo
ac4409e7ce Rewrite serial device communications.
Instead of vague "send something, wait something" the responses are now
analyzed by (overridable) parsers. Makes all the modem implementations much
easier since each caller knows without any code whether the call succeeded
or failed.

Another thing that makes modem code simpler (and the whole thing more robust),
is the queueing of sent commands. Each queued command has a command and a
callback which is quaranteed to get called, even if sending failed.

Define and implement error reporting.
2008-09-11 08:35:32 +03:00
Tambet Ingo
149b41f220 Implement per modem type DBus interfaces.
A major code reorganization.
2008-08-21 09:11:17 +03:00
Tambet Ingo
cc31458b18 Initial commit. 2008-07-31 09:43:00 +03:00