Age | Commit message (Collapse) | Author |
|
The behavior of GRegex changed in 2.73.2 once it was ported from pcre1
to pcre2. In some cases it was made more strict, which is fine, in
other cases it exposed some change in how it behaves on certain
matches that is not extremely clear whether it's ok or not.
See https://gitlab.gnome.org/GNOME/glib/-/issues/2729
See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/601
See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/621
Either way, one thing that was assumed was that initializing all
GRegex/GMatchInfo variables to NULL and making sure they're NULL
before they're initialized by glib (especially the GMatchInfo) was a
good and safer approach.
So, whenever possible, g_autoptr() is used to cleanup the allocated
GMatchInfo/GRegex variables, and otherwise, g_clear_pointer() is used
to ensure that no free/unref is attempted unless the given variable is
not NULL, and also so that the variable is reseted to NULL after being
disposed.
|
|
Passed undetected when glib2 was using pcre1, it triggers an error now
with pcre2.
See https://gitlab.gnome.org/GNOME/glib/-/issues/2729#note_1542038
Reported and fix suggested by: Marco Trevisan (Treviño) <mail@3v1n0.net>
|
|
Do not fail to detect an error response with a call or text incoming. This happens during port probing when there's no URC parsers installed in the serial port. This probably will not happen when the serial port was managed by the modem object.w
|
|
Do not fail to detect a valid response with a call or text incoming.
This happens also during port probing when there's no URC parsers
installed in the serial port. This probably will not happen when the
serial port was managed by the modem object.
|
|
|
|
|
|
|
|
Just treat 'NA' as MM_MOBILE_EQUIPMENT_ERROR_NOT_ALLOWED error.
https://bugzilla.gnome.org/show_bug.cgi?id=697368
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
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
|
|
expresions
|
|
|
|
|
|
|
|
New mm_serial_parser_v1_set_custom_regex() method.
|
|
Make it more flexible, add logging to a file, and absolute and
relative timestamps.
|
|
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.
|
|
Nobody seems to know what the number means, but at least recognize
them as errors.
|
|
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.
|
|
Firmware on some Option devices (iCON 505) likes to spray newlines
all over the place. Some fixes and boundary checks by me (dcbw).
|
|
Found by Eugene Crosser <crosser@average.org>
|
|
|
|
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.
|
|
off.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|