aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/cinterion/mm-broadband-bearer-cinterion.c20
-rw-r--r--plugins/icera/mm-broadband-modem-icera.c2
-rw-r--r--plugins/option/mm-broadband-modem-hso.c12
-rw-r--r--plugins/sierra/mm-broadband-bearer-sierra.c10
-rw-r--r--plugins/ublox/mm-broadband-bearer-ublox.c21
5 files changed, 36 insertions, 29 deletions
diff --git a/plugins/cinterion/mm-broadband-bearer-cinterion.c b/plugins/cinterion/mm-broadband-bearer-cinterion.c
index ddfc90d0..f073ac77 100644
--- a/plugins/cinterion/mm-broadband-bearer-cinterion.c
+++ b/plugins/cinterion/mm-broadband-bearer-cinterion.c
@@ -132,14 +132,21 @@ out:
static void
load_connection_status_by_cid (MMBroadbandBearerCinterion *bearer,
- guint cid,
+ gint cid,
GAsyncReadyCallback callback,
gpointer user_data)
{
- GTask *task;
- MMBaseModem *modem;
+ GTask *task;
+ g_autoptr(MMBaseModem) modem = NULL;
task = g_task_new (bearer, NULL, callback, user_data);
+ if (cid == MM_3GPP_PROFILE_ID_UNKNOWN) {
+ g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "Unknown profile id to check connection status");
+ g_object_unref (task);
+ return;
+ }
+
g_task_set_task_data (task, GUINT_TO_POINTER (cid), NULL);
g_object_get (bearer,
@@ -152,7 +159,6 @@ load_connection_status_by_cid (MMBroadbandBearerCinterion *bearer,
FALSE,
(GAsyncReadyCallback) swwan_check_status_ready,
task);
- g_object_unref (modem);
}
static void
@@ -161,7 +167,7 @@ load_connection_status (MMBaseBearer *bearer,
gpointer user_data)
{
load_connection_status_by_cid (MM_BROADBAND_BEARER_CINTERION (bearer),
- mm_broadband_bearer_get_3gpp_cid (MM_BROADBAND_BEARER (bearer)),
+ mm_base_bearer_get_profile_id (bearer),
callback,
user_data);
}
@@ -358,7 +364,7 @@ dial_3gpp_context_step (GTask *task)
mm_obj_dbg (self, "dial step %u/%u: checking SWWAN interface %u status...",
ctx->step, DIAL_3GPP_CONTEXT_STEP_LAST, usb_interface_configs[ctx->usb_interface_config_index].swwan_index);
load_connection_status_by_cid (ctx->self,
- ctx->cid,
+ (gint) ctx->cid,
(GAsyncReadyCallback) dial_connection_status_ready,
task);
return;
@@ -556,7 +562,7 @@ disconnect_3gpp_context_step (GTask *task)
ctx->step, DISCONNECT_3GPP_CONTEXT_STEP_LAST,
usb_interface_configs[ctx->usb_interface_config_index].swwan_index);
load_connection_status_by_cid (MM_BROADBAND_BEARER_CINTERION (ctx->self),
- ctx->cid,
+ (gint) ctx->cid,
(GAsyncReadyCallback) disconnect_connection_status_ready,
task);
return;
diff --git a/plugins/icera/mm-broadband-modem-icera.c b/plugins/icera/mm-broadband-modem-icera.c
index 080b1ca2..8df73b6c 100644
--- a/plugins/icera/mm-broadband-modem-icera.c
+++ b/plugins/icera/mm-broadband-modem-icera.c
@@ -399,7 +399,7 @@ static void
bearer_list_report_status_foreach (MMBaseBearer *bearer,
BearerListReportStatusForeachContext *ctx)
{
- if (mm_broadband_bearer_get_3gpp_cid (MM_BROADBAND_BEARER (bearer)) != ctx->cid)
+ if (mm_base_bearer_get_profile_id (bearer) != (gint)ctx->cid)
return;
if (!MM_IS_BROADBAND_BEARER_ICERA (bearer))
diff --git a/plugins/option/mm-broadband-modem-hso.c b/plugins/option/mm-broadband-modem-hso.c
index 8f280c3a..b6aed4f1 100644
--- a/plugins/option/mm-broadband-modem-hso.c
+++ b/plugins/option/mm-broadband-modem-hso.c
@@ -198,7 +198,7 @@ static void
bearer_list_report_status_foreach (MMBaseBearer *bearer,
BearerListReportStatusForeachContext *ctx)
{
- if (mm_broadband_bearer_get_3gpp_cid (MM_BROADBAND_BEARER (bearer)) != ctx->cid)
+ if (mm_base_bearer_get_profile_id (bearer) != (gint)ctx->cid)
return;
mm_base_bearer_report_connection_status (MM_BASE_BEARER (bearer), ctx->status);
@@ -209,7 +209,7 @@ hso_connection_status_changed (MMPortSerialAt *port,
GMatchInfo *match_info,
MMBroadbandModemHso *self)
{
- MMBearerList *list = NULL;
+ g_autoptr(MMBearerList) list = NULL;
BearerListReportStatusForeachContext ctx;
guint cid;
guint status;
@@ -245,14 +245,10 @@ hso_connection_status_changed (MMPortSerialAt *port,
g_object_get (self,
MM_IFACE_MODEM_BEARER_LIST, &list,
NULL);
- if (!list)
- return;
/* Will report status only in the bearer with the specific CID */
- mm_bearer_list_foreach (list,
- (MMBearerListForeachFunc)bearer_list_report_status_foreach,
- &ctx);
- g_object_unref (list);
+ if (list)
+ mm_bearer_list_foreach (list, (MMBearerListForeachFunc)bearer_list_report_status_foreach, &ctx);
}
static gboolean
diff --git a/plugins/sierra/mm-broadband-bearer-sierra.c b/plugins/sierra/mm-broadband-bearer-sierra.c
index 2c2ef375..8b6b6fbd 100644
--- a/plugins/sierra/mm-broadband-bearer-sierra.c
+++ b/plugins/sierra/mm-broadband-bearer-sierra.c
@@ -119,7 +119,7 @@ load_connection_status (MMBaseBearer *self,
GTask *task;
MMBaseModem *modem = NULL;
MMPortSerialAt *port;
- guint cid;
+ gint profile_id;
task = g_task_new (self, NULL, callback, user_data);
@@ -128,14 +128,14 @@ load_connection_status (MMBaseBearer *self,
NULL);
/* If CID not defined, error out */
- cid = mm_broadband_bearer_get_3gpp_cid (MM_BROADBAND_BEARER (self));
- if (!cid) {
+ profile_id = mm_base_bearer_get_profile_id (self);
+ if (profile_id == MM_3GPP_PROFILE_ID_UNKNOWN) {
g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
- "Couldn't load connection status: cid not defined");
+ "Couldn't load connection status: profile id not defined");
g_object_unref (task);
goto out;
}
- g_task_set_task_data (task, GUINT_TO_POINTER (cid), NULL);
+ g_task_set_task_data (task, GUINT_TO_POINTER ((guint)profile_id), NULL);
/* If no control port available, error out */
port = mm_base_modem_peek_best_at_port (modem, NULL);
diff --git a/plugins/ublox/mm-broadband-bearer-ublox.c b/plugins/ublox/mm-broadband-bearer-ublox.c
index d69bc8dc..ced42cc8 100644
--- a/plugins/ublox/mm-broadband-bearer-ublox.c
+++ b/plugins/ublox/mm-broadband-bearer-ublox.c
@@ -775,19 +775,24 @@ ugcntrd_ready (MMBaseModem *modem,
GError *error = NULL;
guint64 tx_bytes = 0;
guint64 rx_bytes = 0;
- guint cid;
+ gint cid;
self = MM_BROADBAND_BEARER_UBLOX (g_task_get_source_object (task));
- cid = mm_broadband_bearer_get_3gpp_cid (MM_BROADBAND_BEARER (self));
+ cid = mm_base_bearer_get_profile_id (MM_BASE_BEARER (self));
response = mm_base_modem_at_command_finish (modem, res, &error);
- if (response)
- mm_ublox_parse_ugcntrd_response_for_cid (response,
- cid,
- &tx_bytes, &rx_bytes,
- NULL, NULL,
- &error);
+ if (response) {
+ if (cid == MM_3GPP_PROFILE_ID_UNKNOWN)
+ error = g_error_new (MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "Unknown profile id");
+ else
+ mm_ublox_parse_ugcntrd_response_for_cid (response,
+ cid,
+ &tx_bytes, &rx_bytes,
+ NULL, NULL,
+ &error);
+ }
if (error) {
g_prefix_error (&error, "Couldn't load PDP context %u statistics: ", cid);