diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2021-04-03 21:58:55 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2021-04-29 10:13:22 +0000 |
commit | e4ef8319ec71b673b322279081636c70835f700b (patch) | |
tree | 71edaafed9dc60bf3a11607660bf75387492ed30 /src/mm-base-bearer.c | |
parent | 9fd5aced67d9a5e548f706e62990fa24abda65d5 (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/mm-base-bearer.c')
-rw-r--r-- | src/mm-base-bearer.c | 20 |
1 files changed, 20 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; } |