aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-04-03 21:58:55 +0200
committerAleksander Morgado <aleksander@aleksander.es>2021-04-29 10:13:22 +0000
commite4ef8319ec71b673b322279081636c70835f700b (patch)
tree71edaafed9dc60bf3a11607660bf75387492ed30 /src
parent9fd5aced67d9a5e548f706e62990fa24abda65d5 (diff)
base-bearer: propagate connected profile id value in the connect result
Implementations that support profile management will provide the connected profile id value in the MMBearerConnectResult returned to the base bearer object during the connection attempt.
Diffstat (limited to 'src')
-rw-r--r--src/mm-base-bearer.c20
-rw-r--r--src/mm-base-bearer.h5
2 files changed, 25 insertions, 0 deletions
diff --git a/src/mm-base-bearer.c b/src/mm-base-bearer.c
index 64a8057c..92c98af8 100644
--- a/src/mm-base-bearer.c
+++ b/src/mm-base-bearer.c
@@ -407,6 +407,7 @@ bearer_stats_start (MMBaseBearer *self)
static void
bearer_reset_interface_status (MMBaseBearer *self)
{
+ mm_gdbus_bearer_set_profile_id (MM_GDBUS_BEARER (self), MM_3GPP_PROFILE_ID_UNKNOWN);
mm_gdbus_bearer_set_multiplexed (MM_GDBUS_BEARER (self), FALSE);
mm_gdbus_bearer_set_connected (MM_GDBUS_BEARER (self), FALSE);
mm_gdbus_bearer_set_suspended (MM_GDBUS_BEARER (self), FALSE);
@@ -466,9 +467,11 @@ static void
bearer_update_status_connected (MMBaseBearer *self,
const gchar *interface,
gboolean multiplexed,
+ gint profile_id,
MMBearerIpConfig *ipv4_config,
MMBearerIpConfig *ipv6_config)
{
+ mm_gdbus_bearer_set_profile_id (MM_GDBUS_BEARER (self), profile_id);
mm_gdbus_bearer_set_multiplexed (MM_GDBUS_BEARER (self), multiplexed);
mm_gdbus_bearer_set_connected (MM_GDBUS_BEARER (self), TRUE);
mm_gdbus_bearer_set_suspended (MM_GDBUS_BEARER (self), FALSE);
@@ -831,6 +834,7 @@ connect_ready (MMBaseBearer *self,
self,
mm_port_get_device (mm_bearer_connect_result_peek_data (result)),
mm_bearer_connect_result_get_multiplexed (result),
+ mm_bearer_connect_result_get_profile_id (result),
mm_bearer_connect_result_peek_ipv4_config (result),
mm_bearer_connect_result_peek_ipv6_config (result));
mm_bearer_connect_result_unref (result);
@@ -1529,6 +1533,7 @@ mm_base_bearer_init (MMBaseBearer *self)
/* Set defaults */
mm_gdbus_bearer_set_interface (MM_GDBUS_BEARER (self), NULL);
mm_gdbus_bearer_set_multiplexed (MM_GDBUS_BEARER (self), FALSE);
+ mm_gdbus_bearer_set_profile_id (MM_GDBUS_BEARER (self), MM_3GPP_PROFILE_ID_UNKNOWN);
mm_gdbus_bearer_set_connected (MM_GDBUS_BEARER (self), FALSE);
mm_gdbus_bearer_set_suspended (MM_GDBUS_BEARER (self), FALSE);
mm_gdbus_bearer_set_properties (MM_GDBUS_BEARER (self), NULL);
@@ -1646,6 +1651,7 @@ struct _MMBearerConnectResult {
MMBearerIpConfig *ipv4_config;
MMBearerIpConfig *ipv6_config;
gboolean multiplexed;
+ gint profile_id;
};
MMBearerConnectResult *
@@ -1700,6 +1706,19 @@ mm_bearer_connect_result_get_multiplexed (MMBearerConnectResult *result)
return result->multiplexed;
}
+void
+mm_bearer_connect_result_set_profile_id (MMBearerConnectResult *result,
+ gint profile_id)
+{
+ result->profile_id = profile_id;
+}
+
+gint
+mm_bearer_connect_result_get_profile_id (MMBearerConnectResult *result)
+{
+ return result->profile_id;
+}
+
MMBearerConnectResult *
mm_bearer_connect_result_new (MMPort *data,
MMBearerIpConfig *ipv4_config,
@@ -1718,5 +1737,6 @@ mm_bearer_connect_result_new (MMPort *data,
if (ipv6_config)
result->ipv6_config = g_object_ref (ipv6_config);
result->multiplexed = FALSE; /* default */
+ result->profile_id = MM_3GPP_PROFILE_ID_UNKNOWN;
return result;
}
diff --git a/src/mm-base-bearer.h b/src/mm-base-bearer.h
index baa46bb0..6ab58ac4 100644
--- a/src/mm-base-bearer.h
+++ b/src/mm-base-bearer.h
@@ -49,6 +49,11 @@ void mm_bearer_connect_result_set_multiplexed (MMBearerConnec
gboolean multiplexed);
gboolean mm_bearer_connect_result_get_multiplexed (MMBearerConnectResult *result);
+/* profile id, if known */
+void mm_bearer_connect_result_set_profile_id (MMBearerConnectResult *result,
+ gint profile_id);
+gint mm_bearer_connect_result_get_profile_id (MMBearerConnectResult *result);
+
/*****************************************************************************/
/* Default timeout values to be used in the steps of a connection or