- Jul 13, 2021
-
-
Aleksander Morgado authored
As the profile id is not really set in the base bearer object until after connected.
-
- May 26, 2021
-
-
Aleksander Morgado authored
Some of the AT-based connection methods don't have any way to query connection status, or we don't have a proper implementation for those yet. Ignore the reload operation in all those.
-
- May 22, 2021
-
-
Aleksander Morgado authored
By default, fallback to "unknown" mobile equipment error when the modem gets disconnected by the network and we don't have any way to know a more detailed reason.
-
- Apr 30, 2021
-
-
Aleksander Morgado authored
This is now a requirement when using glib 2.56.
-
- Nov 14, 2020
-
-
Aleksander Morgado authored
Each different plugin or protocol had a different connection attempt value. E.g. QMI and MBIM both used 60s max for the connection attempt, while the u-blox plugin had up to 180s for ECM based connection setups. This commit consolidates all plugins and protocols to use the same timeout values for commands that may take long to respond, e.g. a connection atempt under low signal quality conditions. A value of 180s for the connection attempt steps and 120s for a disconnection attempt step is considered. Note, though, that in some cases (like a IPv4v6 setup attempt using QMI) we may have more than one such long step, so this doesn't mean that a connection attempt will always take less than 180s. Users of the connection/disconnection APIs should be able to handle the case where the attempt times out in their side (e.g. with a lower DBus request timeout), and which would not mean the actual request they did really failed. E.g. a connection attempt with a DBus timeout of 30s may fail in the user with a timeout error, but the attempt would still go on for as much as the plugin/protocol needs. Fixes #270
-
- Jul 24, 2020
-
-
Giacinto Cifelli authored
CHAP is almost universal nowadays, and so it is a better default than PAP Not changed for uBlox, that prefers an error if not specified, and for Huawei, which uses NONE with user/pwd and has 2 CHAP choices
-
- Apr 08, 2020
-
-
Aleksander Morgado authored
-
- Jan 31, 2020
-
-
Aleksander Morgado authored
option/mm-broadband-bearer-hso.c: In function ‘ip_config_ready’: option/mm-broadband-bearer-hso.c:128:21: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘guint’ {aka ‘unsigned int’} [-Werror=sign-compare] 128 | num != ctx->cid) { | ^~
-
- Dec 05, 2017
-
-
Aleksander Morgado authored
This block is a subclassed method from MMBaseBearer, which we just happen to also use as part of the 3GPP dial logic in the connection attempt. So make it a separate logical block, and call the processing of the connection attempt if one is found. This change makes it similar to the same logic in the Icera plugin.
-
Aleksander Morgado authored
Same amount of time as in the Icera plugin.
-
Aleksander Morgado authored
-
- Sep 20, 2017
-
-
- Mar 29, 2017
-
-
g_free and g_object_unref are in form of `void (*)(gpointer)`, which matches the GDestroyNotify signature. An explicit GDestroyNotify cast on g_free and g_object_unref is thus not needed.
-
- Oct 12, 2016
-
-
Aleksander Morgado authored
A default implementation to monitor the ongoing connection is provided in the generic MMBroadbandModem, based on AT+CGACT? to check whether the PDP context of the connection (identified by the cached cid) is active or not. This commit also disables the connection monitoring logic in those plugins that have custom connection methods.
-
- Dec 02, 2015
-
-
Aleksander Morgado authored
-
- Jul 06, 2014
-
-
Aleksander Morgado authored
Just so that we don't have same header names in src/ and /libmm-glib.
-
- Jun 13, 2014
-
-
Dan Williams authored
Subclasses may need to know which IP families were used for the setup so they can return the correct IP configuration. We can't just use the MMBearer default_ip_family becuase that isn't the family that was actually used during the connection.
-
- May 21, 2014
-
-
- May 20, 2014
-
-
- Feb 13, 2014
-
-
Aleksander Morgado authored
-
Aleksander Morgado authored
-
- Sep 23, 2013
-
-
Aleksander Morgado authored
Originally developed by: Ben Chan <benchan@chromium.org> This patch replaces mm_bearer_report_disconnection() with a more generic mm_bearer_report_connection_status(), which allows reporting any connection status of a bearer. This further allows getting rid of those custom report_connection_status functions in plugic specific bearer subclasses. Note that while plugin-specific implementations can receive multiple 'MMBearerConnectionStatus' values, the generic implementation is only allowed to receive DISCONNECTED. Plugins need to make sure that they process all the other status values, and only report DISCONNECTED to the parent when required. MBM: The MBM bearer implementation of report_connection_status() expects either CONNECTED or DISCONNECTED. If any of these is received and there is an ongoing connection attempt, the corresponding operation will be completed. If there is no connection attempt, we will just handle the DISCONNECTED state, calling the parent method to notify that the modem got network-disconnected. Icera: The Icera bearer implementation of report_connection_status() expects either CONNECTED, CONNECT FAILED or DISCONNECTED. If any of these is received and there is an ongoing connection or disconnection attempt, the corresponding operation will be completed. If there is no connection or disconnection attempt, we will just handle the CONNECT FAILED and DISCONNECTED states, calling the parent method (always with DISCONNECTED) to notify that the modem got network-disconnected. Option/HSO: The Option/HSO bearer implementation of report_connection_status() expects either CONNECTED, CONNECTION FAILED or DISCONNECTED. If any of these is received and there is an ongoing connection or disconnection attempt, the corresponding operation will be completed. If there is no connection or disconnection attempt, we will just handle the CONNECTION FAILED and DISCONNECTED states, calling the parent method (always with DISCONNECTED) to notify that the modem got network-disconnected. Huawei: The Huawei bearer implementation of report_connection_status() expects either CONNECTED or DISCONNECTED. These messages are not used to process pending connection or disconnection attempts; so if they are received while one of these is on-going, it will just be ignored. CONNECTED reports are also ignored, so we will just handle the DISCONNECTED state, calling the parent method to notify that the modem got network-disconnected. Altair-LTE: The Altair-LTE bearers will only report DISCONNECTED on network-disconnected cases. There is no custom report_connection_status(). Novatel-LTE: The Novatel-LTE bearers will only report DISCONNECTED on network-disconnected cases. There is no custom report_connection_status().
-
- Jun 25, 2013
-
-
Dan Williams authored
The modem doesn't give us a prefix in the OWANDATA response, but it's always /32. This didn't get set previously because NetworkManager always just used /32 for the 'static' configuration, but NM isn't the only user of MM, and only MM knows for sure that the prefix should be /32.
-
- Feb 18, 2013
-
-
Aleksander Morgado authored
Instead of deciding in advance which data port to use, we let the dialling operation gather it. For the generic dialling logic, ATD-based, always an 'AT' port will be used as data port, even if we grabbed a 'net' port. Those plugins that can work with 'net' ports will grab the specific 'net' port themselves.
-
- Jan 14, 2013
-
-
Aleksander Morgado authored
-
- Dec 12, 2012
-
-
Aleksander Morgado authored
If the primary port is gone (e.g. when going to sleep) and we are just in the middle of a connection attempt, we won't be able to receive any unsolicited message regarding the status of the attempt. So, if we detect that the port is forced to get closed, we'll just treat it as a connection failure. http://code.google.com/p/chromium-os/issues/detail?id=35391
-
- Nov 27, 2012
-
-
Aleksander Morgado authored
The logic gets completely stuck when this happens: Stack trace below: #0 0x77661424 in __kernel_vsyscall () #1 0x77337c3c in pthread_cond_wait () #2 0x773cebaa in g_cond_wait () from /usr/lib/libglib-2.0.so.0 #3 0x774c03cc in g_cancellable_disconnect () from /usr/lib/libgio-2.0.so.0 #4 0x76955d36 in connect_cancelled_cb (cancellable=0x78e055a0, self=0x78e0b590) #5 0x77460982 in g_cclosure_marshal_VOID__VOIDv () from /usr/lib/libgobject-2.0.so.0 #6 0x7745ed8a in ?? () from /usr/lib/libgobject-2.0.so.0 #7 0x77478435 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #8 0x77478eb3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #9 0x774c01eb in g_cancellable_cancel () from /usr/lib/libgio-2.0.so.0 #10 0x776a0eab in mm_bearer_disconnect (self=0x78e0b590, callback=0x776c5980 <disconnect_ready>, #11 0x776c57de in disconnect_next_bearer (ctx=0x78e12870) at mm-iface-modem-simple.c:898 #12 0x776c58d2 in disconnect_auth_ready (self=0x78df3048, res=0x78e06210, ctx=0x78e12870) #13 0x774fed25 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0 #14 0x776a8c4e in authorize_ready (authp=0x78db68d0, res=0x76801638, simple=0x78e06210) #15 0x774fed25 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0 #16 0x774fee3e in ?? () from /usr/lib/libgio-2.0.so.0 #17 0x7738a7a2 in ?? () from /usr/lib/libglib-2.0.so.0 #18 0x7738ce83 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #19 0x7738d248 in ?? () from /usr/lib/libglib-2.0.so.0 #20 0x7738d6eb in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #21 0x77696a7d in main (argc=2, argv=0x7fbb1f04) at main.c:158 http://code.google.com/p/chromium-os/issues/detail?id=36448
-
- Oct 30, 2012
-
-
Aleksander Morgado authored
If we are requested to cancel the connection, we first need to wait for the connection attempt to finish before issuing the disconnect command, as otherwise the modem just returns an error saying that it cannot perform the operation and at the end we end up with the modem connected but ModemManager thinking that it isn't.
-
- Oct 07, 2012
-
-
Aleksander Morgado authored
If none of the specified methods is supported, an error is returned. Also quote user and password using `mm_at_serial_port_quote_string()'.
-
- Oct 04, 2012
-
-
Aleksander Morgado authored
Both the ModemManager daemon and the mmcli will now include `libmm-glib.h' only. We also handle two new special `_LIBMM_INSIDE_MM' and `LIBMM_INSIDE_MMCLI' symbols, which if included before the `libmm-glib.h' library allow us to: * Don't include the libmm-glib high level API in the ModemManager daemon, as the object names would clash with those in the core. * Define some of the methods of helper objects to be included only if compiling ModemManager daemon or the mmcli.
-
- Sep 14, 2012
-
-
Aleksander Morgado authored
Moved the utils to play with binary to hex strings into libmm-common.
-
- Aug 24, 2012
-
-
Aleksander Morgado authored
-
- Aug 23, 2012
-
-
Aleksander Morgado authored
Plugins may require specific dialling commands depending on the port type.
-
- Aug 06, 2012
-
-
Aleksander Morgado authored
In the connection sequence, we make sure that the Bearer object is valid by keeping a reference in the Dial3gppContext (actually, another one kept by the GSimpleAsyncResult as well). But we are considering here the case where the connection context is completed and freed by an unsolicited message handler before we get the reply to the AT command, so to properly ensure that the bearer object is still valid when we try to check if the context is in the priv struct, we need to keep an extra ref around.
-
Aleksander Morgado authored
In the connection sequence, we keep the context in the private info of the Bearer object, so that we can complete and free it when we receive OWANCALL unsolicited messages. Now, the reply of the OWANCALL itself may get processed as an unsolicited message, so effectively we're processing and finishing the connection/disconnection context *before* we process the reply of the AT command. This patch ensures that we do not try to re-use the connection context after it has been processed by the unsolicited messages handler.
-
- Jul 19, 2012
-
-
Aleksander Morgado authored
-
Aleksander Morgado authored
-
Aleksander Morgado authored
-
- May 06, 2012
-
-
Aleksander Morgado authored
The base MMBearer object will receive the MMBearerProperties configuration, which contains every generic and plugin-specific set up. Not every configuration parameter will be used by every implementation (e.g. not every bearer needs user/password). The Bearer object will expose every configuration parameter received in its `Properties' property in the interface, even if it's not really used.
-