Commit Graph

42 Commits

Author SHA1 Message Date
Aleksander Morgado
9323daec01 core, plugins: if modem removed don't process response
We try to avoid a memory leak when info->error is reset, as well as a second
re-schedule of the info.
2011-06-05 17:51:00 +02:00
Dan Williams
f4a26ec2b6 hso: use zero send_delay since Option firmware is generally excellent 2011-04-08 16:20:43 -05:00
Dan Williams
802a6f3a56 gsm: fix up CID signed/unsigned confusion
-1 = no APN set, so use modem default.  We'll have to fix a few
more things up for modems like hso/mbm that don't use ATDT and
require CIDs, but this gets us halfway there for other devices.
2010-11-10 13:16:19 -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
9a6aa0c10d option/hso: eat +PACSP0 unsolicited response
Interfered with initial PIN checking in some cases.
2010-05-05 15:47:14 -07:00
Dan Williams
a4c094c340 core: fix serial error #defines
Should have ERROR in them.
2010-04-24 23:44:35 -07:00
Dan Williams
843a772b4c option/hso: implement solicited access technology request 2010-03-26 00:14:47 -07:00
Dan Williams
9e8a0fda9f option/hso: ensure unsolicited messages get turned off on disable 2010-03-22 15:05:45 -07:00
Dan Williams
bdefdac2dc hso: add allowed mode and unsolicited response handling 2010-03-16 15:51:27 -07:00
Dan Williams
9d91501330 Merge remote branch 'origin/master' into qcdm 2010-03-12 12:21:29 -08:00
Dan Williams
e055bd72db hso: fix connections with username/password after e3c87e4e14
e3c87e4e14 introduced a use-after-free
bug that causes passwords and usernames to be corrupted.
2010-03-12 08:57:55 -08:00
Dan Williams
479937cbbb Merge remote branch 'origin/master' into qcdm 2010-03-10 15:04:49 -08:00
Dan Williams
e3c87e4e14 hso: clean up connect and disconnect
Disconnect didn't actually work for HSO since it overrode the parent
class's connect handler and thus didn't set the right state after
the connection was made.  It turns out we can use the same logic
that 'mbm' does for connection and not have to override quite so
much of the parent class.

This also splits the authentication and connection parts into two
distinct stages, which wasn't the case before but was what was
intended.
2010-03-10 14:42:53 -08:00
Dan Williams
f3721a5674 Merge remote branch 'origin/master' into qcdm 2010-03-08 20:01:22 -08:00
Dan Williams
54c1d069eb gsm: rework registration handling
First, generically handle registration polling if the device does
not support unsolicited registration.  Second, using the new
creg/cgreg parsing functions from mm-modem-helpers.c, handle
CREG=2 unsolicited registration replies to capture the GSM LAC/CI
for the location information API.

Because of these changes we can simplify the registration polling
during connection as well by using the common registration parsing
code and the cached registration state.
2010-03-06 10:28:11 -08:00
Dan Williams
e6e3784c02 hso: remove PIN checking code
This is handled by the generic class before the modem is even exported
over D-Bus.
2010-03-04 20:45:30 -08:00
Dan Williams
a8c7bba19e serial: refactor MMSerialPort into a base class and an AT-capable serial port
For QCDM devices we want most of what MMSerialPort does, but not
the AT command handling stuff since the commands and responses
aren't AT commands nor are they even strings.  So convert everything
that MMSerialPort does into a GByteArray, and let MMAtSerialPort
handle the conversion to strings when necessary.
2010-02-20 14:55:10 -08:00
Dan Williams
5bdabaabec gsm: implement enable/connecting/disconnecting state handling
And consolidate generic port enable code in one place since pretty
much every modem needs that.
2009-12-02 14:43:09 -08:00
Dan Williams
f205c814b5 hso: ensure authentication works again after auth errors 2009-11-30 09:47:39 -08:00
Dan Williams
028c6a5e4e hso: fix up connection issues and error ignorance
Should have ignored errors when cleaning up old contexts that
may or may not exist.  Rename hso_disable() to something more
appropriate since it's actually part of the enable/connect path,
not the disable path.
2009-11-29 22:45:28 -08:00
Dan Williams
c8fdb592e3 hso: send authentication info correctly for Icera-based Option modems
Icera-based modems use AT_OPDPP instead of AT$QCPDPP.
2009-11-29 18:58:56 -08:00
Dan Williams
9e92bceb07 hso: consolidate PDP context activate/deactivate operations
And rename the function to make it clearer.  disable() wasn't using
the common activate/deactivate code so switch it to do so.
2009-11-24 00:19:27 -08:00
Dan Williams
e5b5c83394 hso: disconnect the PDP context that was active (if any)
Instead of always disconnecting context #1.
2009-11-23 23:32:01 -08:00
Dan Williams
49b5ffd076 core: use G_DEFINE_TYPE_* instead of rolling our own
Use the macro; save some trees.
2009-10-26 17:56:48 -07:00
Jeroen Elebaut
6bc4f0ae8c hso: handle OWANCALL response better 2009-10-16 14:41:12 -07:00
Dan Williams
5079b32a09 hso: fix disable 2009-10-06 11:45:07 -07:00
Dan Williams
3b19a85727 core: split generic modem enable/disable operations 2009-09-23 16:04:25 -07: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
d5a43aa862 udev: modem port refactor; convert 'hso' to udev
Create a base MMPort class to handle both tty and net ports generically,
and move plugins over to that.  Also port the 'hso' plugin to udev.
2009-06-20 10:49:09 -04:00
Tambet Ingo
2a3acc7a3d Handle "Call setup failed" case for HSO modems to speed up error reporting. 2009-04-22 16:10:32 +03:00
Tambet Ingo
1215bd6a9d Rework unsolicited message handling.
Implement registration using unsolicited messages for generic GSM class (which
is disabled by default, HSO and Huawei plugins enable it).

Modify all GSM modem subclasses that used unsolicited messages to use the new
method.
2009-02-18 14:48:08 +02:00
Dan Williams
bef9c48ffc add --enable-more-warnings=yes/no and fix up resulting errors 2009-02-10 06:48:56 -05: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
8bf265f349 Implement 'Simple' interface for HSO modems. 2009-01-22 12:30:09 +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
3d84a60ab1 Fix HSO modem plugin. 2008-12-02 15:48:52 +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
ebd99af6a0 Disable the HSO modem in addition to just closing the device on Enable(False). 2008-09-01 18:51:48 +03:00
Tambet Ingo
209a6390cb Fix up HSO modem plugin. 2008-09-01 11:27:35 +03:00
Tambet Ingo
424f514b02 Implement the more granular GSM interfaces as agreed on NM mailing list.
Convert all exisiting code over to new DBus interfaces.
2008-08-29 11:43:36 +03:00
Tambet Ingo
64b4827c4c Implement HSO modem driver. 2008-08-26 14:40:20 +03:00