Commit Graph

30 Commits

Author SHA1 Message Date
Aleksander Morgado
3b6b049e51 serial-parser: detect 'NA' as a mobile equipment error
Just treat 'NA' as MM_MOBILE_EQUIPMENT_ERROR_NOT_ALLOWED error.

https://bugzilla.gnome.org/show_bug.cgi?id=697368
2013-04-05 19:11:24 +02:00
Aleksander Morgado
4e4d139e30 serial-parsers: allow specifying a custom response filter
The serial parser will now allow specifying a custom user-provided filter, which
is applied before even trying to match successful/error responses. This filter
provides a very early barrier to detect strings that are clearly not going to
match.

E.g. this filter may be used during port probing to early detect non-AT ports.
2013-04-04 19:26:51 +02:00
Aleksander Morgado
ba4e209745 sms: fix sending SMS messages on some modems
This is the port to git master of the following commit:

commit 65f13f41cfd00cd38f118121a58b83713501f45f
Author: Dan Williams <dcbw@redhat.com>
Date:   Tue Jul 17 16:00:31 2012 -0500

    gsm: fix sending SMS messages on some modems and use PDU by default

    It turns out we really do have to wait for the modem to return the
    ">" prompt before sending the message data, otherwise a number of
    modems will complain about the data and fail the message.  Fix that
    by sending the first bit of the CMGS, waiting for the ">", and then
    sending the rest.

    This also switches all modems over to PDU mode by default if they
    support it, since it's more compatible and most recent modems don't
    even bother to support text mode anyway.
2012-08-24 12:32:29 +02:00
Aleksander Morgado
1e19273340 serial-parsers: new method to check if a given error was set by the parser 2012-03-16 14:53:22 +01:00
Aleksander Morgado
64d83737fe serial-parsers: remove v0 and v1_e1 parsers, which are unused
Given that we now perform our own built-in echo removal in the v1 parser, we no
longer need the v1_e1 parser.

The v0 parser was also unused from long ago.
2012-03-16 14:53:22 +01:00
Aleksander Morgado
c58db4e015 core: start using our newly defined errors 2012-03-15 14:14:25 +01:00
Dan Williams
bab6ae9552 serial: handle CMS errors correctly 2012-01-16 12:22:18 -06:00
Aleksander Morgado
9ee88e8286 serial-parsers: plug small leak 2011-12-30 18:43:03 +01:00
Aleksander Morgado
fd9f2d2804 serial: skip NUL bytes coming before real AT responses
Some Cinterion modems send a NUL byte before the "CONNECTED" reply to "ATD"
(only during the first ATD try anyway).

This fix will ignore any NUL byte leading the real response.
2011-10-14 17:22:12 +02:00
Nathan Williams
8710820156 core: ensure that GMatchInfo and GRegex objects are freed properly
In particular, g_regex_match() and g_regex_match_full() allocate a
match_info structure on both success and failure, so calling
g_match_info_free() only in the success case is insufficient.

BUG=None
TEST=Inspection

Change-Id: Iea76b5b5dc3ec48120e15601a5e2dd45322133d8
2011-09-27 13:40:39 -05:00
Aleksander Morgado
6d69432a85 serial-parser: allow 0 or more whitespaces before error code in regular expresions 2011-06-02 16:49:53 +02:00
Dan Williams
5dadfa4c21 Merge remote-tracking branch 'lanedo/plugin-wavecom' 2011-04-14 14:20:43 -05:00
Nathan Williams
487972c1ac gsm: implement basic SMS reception and PDU parsing 2011-04-14 14:07:31 -05:00
Aleksander Morgado
262edb96d5 wavecom: handle READY without OK in CPIN? reply 2011-04-11 10:04:27 +02:00
Aleksander Morgado
9435a937ce serial: allow user to provide custom regex for successful and error replies
New mm_serial_parser_v1_set_custom_regex() method.
2011-04-06 17:11:20 -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
1684d8b173 gsm: add SimIdentifier property
An obfuscated SimIdentifier that may be available before the PIN has
been entered, for use in auto-unlocking a device.  If this value is
present, it should be used in preference to DeviceIdentifier as it
is SIM-specific like the PIN code.
2010-10-25 17:41:08 -05:00
Dan Williams
319424ccb3 gsm: recognize Motorola EZX errors
Nobody seems to know what the number means, but at least recognize
them as errors.
2010-08-18 16:12:53 -05:00
Dan Williams
c85e617530 serial: handle string CME error codes too
Some devices won't get to the initialization stage where we send
CMEE=1 (for numeric error codes) before they return some errors,
so handle the string representation of CME error codes too.
2010-01-31 22:32:33 -08:00
Jeroen Elebaut
19e9c0cb48 serial: handle arbitrary amounts of <CR><LF> padding in responses
Firmware on some Option devices (iCON 505) likes to spray newlines
all over the place.  Some fixes and boundary checks by me (dcbw).
2009-11-24 15:36:32 -08:00
Dan Williams
f2a3825f9d generic: match CONNECT even if we get PPP spew
Found by Eugene Crosser <crosser@average.org>
2009-09-23 01:38:42 -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
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
Tambet Ingo
eae902db41 Implement 'V1 E1' parser to work with modems which refuse to turn their echo off. 2009-04-02 12:31:40 +03: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
6b14ebe6ab Relax the "CONNECT" string regex a bit. 2009-01-23 11:58:38 +02:00
Tambet Ingo
128021dc16 Add guards to public functions to validate passed arguments. 2008-10-24 17:46:01 +03:00
Tambet Ingo
36acdcb70e Finish the non-verbose (V0) mode parser. 2008-09-17 13:37:35 +03:00
Tambet Ingo
37b716de8a Fix error codes. 2008-09-11 15:12:07 +03: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