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.
This commit is contained in:
Aleksander Morgado
2021-04-29 10:13:22 +00:00
parent 9fd5aced67
commit e4ef8319ec
2 changed files with 25 additions and 0 deletions
+20
View File
@@ -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;
}
+5
View File
@@ -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