Age | Commit message (Collapse) | Author |
|
The new mm_plugin_manager_is_finding_port_support() allows to check whether the
Plugin Manager is looking for support in a specific port.
The new mm_plugin_manager_is_checking_device_support() allows to check whether
the Plugin Manager is looking for support in any port of a given device.
|
|
The newly launched support check will start probing with the suggested plugin
right away.
|
|
As soon as the first support check of a port in a given device finishes with a
valid best plugin and level > 0, propagate the result to other support tasks
corresponding to ports in the same physical device.
Previously, this propagation of support check results was only done once the
port was grabbed by a plugin, not just when the plugin reported that it
supported it. This change in behaviour isn't probably a big deal, as there
should not be any case where a plugin says it supports a port and then cannot
grab it.
|
|
We will keep a reference to each of the support checks currently in progress,
grouped by physical device path. The stored SupportsInfo structs as well as
the support check operations, are guaranteed to be kept valid as long as the
Plugin Manager exists. Or in other words, the Plugin Manager cannot be disposed
if there is still an ongoing supports check operation.
|
|
The new `mm_plugin_manager_find_port_support()' method requests the Plugin
Manager to iterate over the list of plugins internally handled, launching
supports task for the given port in each of them.
The method is fully asynchronous, and the result can be retrieved with
`mm_plugin_manager_find_port_support_finish()' once the operation is ready.
|
|
There is little chance of having a PLUGINDIR which is not UTF-8, but it may
happen, and g_log() won't like it.
|
|
Ported the plugin finding and loading code from the MMManager object.
|
|
Looking for plugins and loading them will be done during the object creation,
so the operation may fail and we need to report it.
|
|
|
|
We now have 'supports_port' (async method) and 'supports_port_finish' (to get
the result of the async method), so it makes sense to rename the method to
'supports_port_cancel'.
|
|
Before this change, supports check was either synchronous (e.g. in some
UNSUPPORTED cases) or asynchronous (when IN_PROGRESS was returned).
With this fix, the supports check requested to the plugin will always be
completed asynchronously; either directly in an idle before launching any real
probing operation, or once the probing operation is finished.
Therefore, it is not expected to get a IN_PROGRESS reply in
mm_plugin_supports_port_finish(), only UNSUPPORTED|SUPPORTED|DEFERRED.
|
|
While porting to GDBus, use opaque pointers. This allows us to include either a
DBusGMethodInvocation or a GDBusMethodInvocation in the 'context' pointer.
Once fully ported to GDBus, we can safely change it back to make the context be
a GDBusMethodInvocation.
|
|
Also removed the MMSerialError implementation from `src/mm-errors.[h|c]', as it
is now included in the new `include/ModemManager-errors.h' header file. All the
other enums and errors without clashing names will be ported afterwards to the
new base code.
|
|
|
|
|
|
In the future we'll just default to PDU mode.
|
|
g_match_info_fetch() returns always a heap-allocated string which should be
freed by the caller.
|
|
Make port roles more flexible. We have modems that do PPP
on interfaces other than the primary interface, and that
wasn't possible with the old code. So clean up all that
logic and move the port organization code into the core
so we can reduce code in the plugins.
In the new world order, the plugins say whether the port
is a QCDM port, an AT port, or ignored. If it's an AT
port the plugins get to tag it as primary, secondary, or
PPP, or any combination of the 3. This allows for modems
where PPP should really be done on the secondary port
(Huawei E220, Sierra devices) so that the primary port
stays open for command and status.
Modem subclasses no longer get asked to handle port grabbing
themselves. Instead, that's now done by the generic classes
(MMGenericCdma and MMGenericGsm) and the plugins are notified
when a port is grabbed so they can add unsolicited response
handlers for it. After all ports are grabbed by the generic
classes, they get "organized", which assigns various ports
to the roles of PRIMARY, SECONDARY, DATA, and QCDM based
on specific rules and hints that the plugin provided (which
are expressed as MMAtPortFlags). The plugins then have
a chance to perform fixups on the primary port if they choose.
The plugin code is responsible for determining the port
hints (ie MMAtPortFlags) at probe time, instead of having
a combination of the plugin and the modem class do the
job. This simplifies things greatly for the plugins at
the expense of more complicated logic in the core.
|
|
|
|
The string passed to utils_bin2hexstr() needs to be freed afterwards.
|
|
|
|
This IpTimeout property will be read by NetworkManager, and used as the time to
wait for pppd to establish the IP configuration.
|
|
|
|
|
|
|
|
|
|
by the modem
|
|
|
|
|
|
|
|
-1 was actually correct, if data->len is 10, i goes from 0 to 8.
|
|
We expect the responses to start always with <CR><LF>. We just remove anything
that comes before that.
|
|
|
|
|
|
This likely has no effect, but just make sure the regex stops
grabbing message content when it hits the CF/LF that terminates
the message content in text mode.
|
|
We don't get a \r\n at the end for single messages.
|
|
|
|
|
|
This method will try to convert the input string to UTF-8. The input string is
supposed to be in the given charset; or otherwise is supposed to be the hex
representation of the string in the given charset.
|
|
|
|
The ownership of the GValueArray is not transferred.
|
|
Undoubtedly we'll need to adjust the regex but this works for now.
|
|
Even though we don't parse them correctly yet, at least
send the right command for listing them.
|
|
Stupid signed/unsigned mistake.
|
|
The MMModemTime interface was getting initialized more than once.
|
|
Signed-off-by: Thomas Tuttle <ttuttle@chromium.org>
|
|
Signed-off-by: Thomas Tuttle <ttuttle@chromium.org>
|
|
Signed-off-by: Thomas Tuttle <ttuttle@chromium.org>
|
|
|
|
|