api,bearer: new 'Multiplexed' property
This property will be TRUE if the bearer has the data session connected through a multiplexed interface. If the bearer is disconnected, or connected without multiplexing, the property will report FALSE.
This commit is contained in:
@@ -146,10 +146,11 @@ print_bearer_info (MMBearer *bearer)
|
|||||||
mmcli_output_string (MMC_F_BEARER_GENERAL_DBUS_PATH, mm_bearer_get_path (bearer));
|
mmcli_output_string (MMC_F_BEARER_GENERAL_DBUS_PATH, mm_bearer_get_path (bearer));
|
||||||
mmcli_output_string (MMC_F_BEARER_GENERAL_TYPE, mm_bearer_type_get_string (mm_bearer_get_bearer_type (bearer)));
|
mmcli_output_string (MMC_F_BEARER_GENERAL_TYPE, mm_bearer_type_get_string (mm_bearer_get_bearer_type (bearer)));
|
||||||
|
|
||||||
mmcli_output_string (MMC_F_BEARER_STATUS_CONNECTED, mm_bearer_get_connected (bearer) ? "yes" : "no");
|
mmcli_output_string (MMC_F_BEARER_STATUS_CONNECTED, mm_bearer_get_connected (bearer) ? "yes" : "no");
|
||||||
mmcli_output_string (MMC_F_BEARER_STATUS_SUSPENDED, mm_bearer_get_suspended (bearer) ? "yes" : "no");
|
mmcli_output_string (MMC_F_BEARER_STATUS_SUSPENDED, mm_bearer_get_suspended (bearer) ? "yes" : "no");
|
||||||
mmcli_output_string (MMC_F_BEARER_STATUS_INTERFACE, mm_bearer_get_interface (bearer));
|
mmcli_output_string (MMC_F_BEARER_STATUS_MULTIPLEXED, mm_bearer_get_multiplexed (bearer) ? "yes" : "no");
|
||||||
mmcli_output_string_take (MMC_F_BEARER_STATUS_IP_TIMEOUT, g_strdup_printf ("%u", mm_bearer_get_ip_timeout (bearer)));
|
mmcli_output_string (MMC_F_BEARER_STATUS_INTERFACE, mm_bearer_get_interface (bearer));
|
||||||
|
mmcli_output_string_take (MMC_F_BEARER_STATUS_IP_TIMEOUT, g_strdup_printf ("%u", mm_bearer_get_ip_timeout (bearer)));
|
||||||
|
|
||||||
/* Properties */
|
/* Properties */
|
||||||
{
|
{
|
||||||
|
@@ -208,6 +208,7 @@ static FieldInfo field_infos[] = {
|
|||||||
[MMC_F_BEARER_GENERAL_TYPE] = { "bearer.type", "type", MMC_S_BEARER_GENERAL, },
|
[MMC_F_BEARER_GENERAL_TYPE] = { "bearer.type", "type", MMC_S_BEARER_GENERAL, },
|
||||||
[MMC_F_BEARER_STATUS_CONNECTED] = { "bearer.status.connected", "connected", MMC_S_BEARER_STATUS, },
|
[MMC_F_BEARER_STATUS_CONNECTED] = { "bearer.status.connected", "connected", MMC_S_BEARER_STATUS, },
|
||||||
[MMC_F_BEARER_STATUS_SUSPENDED] = { "bearer.status.suspended", "suspended", MMC_S_BEARER_STATUS, },
|
[MMC_F_BEARER_STATUS_SUSPENDED] = { "bearer.status.suspended", "suspended", MMC_S_BEARER_STATUS, },
|
||||||
|
[MMC_F_BEARER_STATUS_MULTIPLEXED] = { "bearer.status.multiplexed", "multiplexed", MMC_S_BEARER_STATUS, },
|
||||||
[MMC_F_BEARER_STATUS_INTERFACE] = { "bearer.status.interface", "interface", MMC_S_BEARER_STATUS, },
|
[MMC_F_BEARER_STATUS_INTERFACE] = { "bearer.status.interface", "interface", MMC_S_BEARER_STATUS, },
|
||||||
[MMC_F_BEARER_STATUS_IP_TIMEOUT] = { "bearer.status.ip-timeout", "ip timeout", MMC_S_BEARER_STATUS, },
|
[MMC_F_BEARER_STATUS_IP_TIMEOUT] = { "bearer.status.ip-timeout", "ip timeout", MMC_S_BEARER_STATUS, },
|
||||||
[MMC_F_BEARER_PROPERTIES_APN] = { "bearer.properties.apn", "apn", MMC_S_BEARER_PROPERTIES, },
|
[MMC_F_BEARER_PROPERTIES_APN] = { "bearer.properties.apn", "apn", MMC_S_BEARER_PROPERTIES, },
|
||||||
|
@@ -224,6 +224,7 @@ typedef enum {
|
|||||||
/* Bearer status section */
|
/* Bearer status section */
|
||||||
MMC_F_BEARER_STATUS_CONNECTED,
|
MMC_F_BEARER_STATUS_CONNECTED,
|
||||||
MMC_F_BEARER_STATUS_SUSPENDED,
|
MMC_F_BEARER_STATUS_SUSPENDED,
|
||||||
|
MMC_F_BEARER_STATUS_MULTIPLEXED,
|
||||||
MMC_F_BEARER_STATUS_INTERFACE,
|
MMC_F_BEARER_STATUS_INTERFACE,
|
||||||
MMC_F_BEARER_STATUS_IP_TIMEOUT,
|
MMC_F_BEARER_STATUS_IP_TIMEOUT,
|
||||||
/* Bearer properties section */
|
/* Bearer properties section */
|
||||||
|
@@ -1073,6 +1073,7 @@ mm_bearer_get_interface
|
|||||||
mm_bearer_dup_interface
|
mm_bearer_dup_interface
|
||||||
mm_bearer_get_connected
|
mm_bearer_get_connected
|
||||||
mm_bearer_get_suspended
|
mm_bearer_get_suspended
|
||||||
|
mm_bearer_get_multiplexed
|
||||||
mm_bearer_get_ip_timeout
|
mm_bearer_get_ip_timeout
|
||||||
mm_bearer_get_bearer_type
|
mm_bearer_get_bearer_type
|
||||||
mm_bearer_peek_ipv4_config
|
mm_bearer_peek_ipv4_config
|
||||||
@@ -1751,6 +1752,7 @@ mm_gdbus_bearer_get_properties
|
|||||||
mm_gdbus_bearer_dup_properties
|
mm_gdbus_bearer_dup_properties
|
||||||
mm_gdbus_bearer_get_connected
|
mm_gdbus_bearer_get_connected
|
||||||
mm_gdbus_bearer_get_suspended
|
mm_gdbus_bearer_get_suspended
|
||||||
|
mm_gdbus_bearer_get_multiplexed
|
||||||
mm_gdbus_bearer_get_bearer_type
|
mm_gdbus_bearer_get_bearer_type
|
||||||
mm_gdbus_bearer_get_stats
|
mm_gdbus_bearer_get_stats
|
||||||
mm_gdbus_bearer_dup_stats
|
mm_gdbus_bearer_dup_stats
|
||||||
@@ -1772,6 +1774,7 @@ mm_gdbus_bearer_set_properties
|
|||||||
mm_gdbus_bearer_set_suspended
|
mm_gdbus_bearer_set_suspended
|
||||||
mm_gdbus_bearer_set_bearer_type
|
mm_gdbus_bearer_set_bearer_type
|
||||||
mm_gdbus_bearer_set_stats
|
mm_gdbus_bearer_set_stats
|
||||||
|
mm_gdbus_bearer_set_multiplexed
|
||||||
mm_gdbus_bearer_override_properties
|
mm_gdbus_bearer_override_properties
|
||||||
mm_gdbus_bearer_complete_connect
|
mm_gdbus_bearer_complete_connect
|
||||||
mm_gdbus_bearer_complete_disconnect
|
mm_gdbus_bearer_complete_disconnect
|
||||||
|
@@ -102,6 +102,14 @@
|
|||||||
-->
|
-->
|
||||||
<property name="Suspended" type="b" access="read" />
|
<property name="Suspended" type="b" access="read" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Multiplexed:
|
||||||
|
|
||||||
|
This property will be %TRUE if the bearer is connected through a
|
||||||
|
multiplexed network link.
|
||||||
|
-->
|
||||||
|
<property name="Multiplexed" type="b" access="read" />
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Ip4Config:
|
Ip4Config:
|
||||||
|
|
||||||
|
@@ -202,6 +202,28 @@ mm_bearer_get_suspended (MMBearer *self)
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* mm_bearer_get_multiplexed:
|
||||||
|
* @self: A #MMBearer.
|
||||||
|
*
|
||||||
|
* Checks whether or not the #MMBearer is connected through a multiplexed
|
||||||
|
* network likn.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if packet data service is connected via a multiplexed network
|
||||||
|
* link in the #MMBearer, #FALSE otherwise.
|
||||||
|
*
|
||||||
|
* Since: 1.18
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
mm_bearer_get_multiplexed (MMBearer *self)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (MM_IS_BEARER (self), FALSE);
|
||||||
|
|
||||||
|
return mm_gdbus_bearer_get_multiplexed (MM_GDBUS_BEARER (self));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mm_bearer_get_ip_timeout:
|
* mm_bearer_get_ip_timeout:
|
||||||
* @self: A #MMBearer.
|
* @self: A #MMBearer.
|
||||||
|
@@ -78,6 +78,8 @@ gboolean mm_bearer_get_connected (MMBearer *self);
|
|||||||
|
|
||||||
gboolean mm_bearer_get_suspended (MMBearer *self);
|
gboolean mm_bearer_get_suspended (MMBearer *self);
|
||||||
|
|
||||||
|
gboolean mm_bearer_get_multiplexed (MMBearer *self);
|
||||||
|
|
||||||
guint mm_bearer_get_ip_timeout (MMBearer *self);
|
guint mm_bearer_get_ip_timeout (MMBearer *self);
|
||||||
|
|
||||||
MMBearerType mm_bearer_get_bearer_type (MMBearer *self);
|
MMBearerType mm_bearer_get_bearer_type (MMBearer *self);
|
||||||
|
@@ -410,6 +410,7 @@ bearer_stats_start (MMBaseBearer *self)
|
|||||||
static void
|
static void
|
||||||
bearer_reset_interface_status (MMBaseBearer *self)
|
bearer_reset_interface_status (MMBaseBearer *self)
|
||||||
{
|
{
|
||||||
|
mm_gdbus_bearer_set_multiplexed (MM_GDBUS_BEARER (self), FALSE);
|
||||||
mm_gdbus_bearer_set_connected (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);
|
mm_gdbus_bearer_set_suspended (MM_GDBUS_BEARER (self), FALSE);
|
||||||
mm_gdbus_bearer_set_interface (MM_GDBUS_BEARER (self), NULL);
|
mm_gdbus_bearer_set_interface (MM_GDBUS_BEARER (self), NULL);
|
||||||
@@ -465,11 +466,13 @@ bearer_update_status (MMBaseBearer *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
bearer_update_status_connected (MMBaseBearer *self,
|
bearer_update_status_connected (MMBaseBearer *self,
|
||||||
const gchar *interface,
|
const gchar *interface,
|
||||||
|
gboolean multiplexed,
|
||||||
MMBearerIpConfig *ipv4_config,
|
MMBearerIpConfig *ipv4_config,
|
||||||
MMBearerIpConfig *ipv6_config)
|
MMBearerIpConfig *ipv6_config)
|
||||||
{
|
{
|
||||||
|
mm_gdbus_bearer_set_multiplexed (MM_GDBUS_BEARER (self), multiplexed);
|
||||||
mm_gdbus_bearer_set_connected (MM_GDBUS_BEARER (self), TRUE);
|
mm_gdbus_bearer_set_connected (MM_GDBUS_BEARER (self), TRUE);
|
||||||
mm_gdbus_bearer_set_suspended (MM_GDBUS_BEARER (self), FALSE);
|
mm_gdbus_bearer_set_suspended (MM_GDBUS_BEARER (self), FALSE);
|
||||||
mm_gdbus_bearer_set_interface (MM_GDBUS_BEARER (self), interface);
|
mm_gdbus_bearer_set_interface (MM_GDBUS_BEARER (self), interface);
|
||||||
@@ -830,6 +833,7 @@ connect_ready (MMBaseBearer *self,
|
|||||||
bearer_update_status_connected (
|
bearer_update_status_connected (
|
||||||
self,
|
self,
|
||||||
mm_port_get_device (mm_bearer_connect_result_peek_data (result)),
|
mm_port_get_device (mm_bearer_connect_result_peek_data (result)),
|
||||||
|
mm_bearer_connect_result_get_multiplexed (result),
|
||||||
mm_bearer_connect_result_peek_ipv4_config (result),
|
mm_bearer_connect_result_peek_ipv4_config (result),
|
||||||
mm_bearer_connect_result_peek_ipv6_config (result));
|
mm_bearer_connect_result_peek_ipv6_config (result));
|
||||||
mm_bearer_connect_result_unref (result);
|
mm_bearer_connect_result_unref (result);
|
||||||
@@ -1535,6 +1539,7 @@ mm_base_bearer_init (MMBaseBearer *self)
|
|||||||
|
|
||||||
/* Set defaults */
|
/* Set defaults */
|
||||||
mm_gdbus_bearer_set_interface (MM_GDBUS_BEARER (self), NULL);
|
mm_gdbus_bearer_set_interface (MM_GDBUS_BEARER (self), NULL);
|
||||||
|
mm_gdbus_bearer_set_multiplexed (MM_GDBUS_BEARER (self), FALSE);
|
||||||
mm_gdbus_bearer_set_connected (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);
|
mm_gdbus_bearer_set_suspended (MM_GDBUS_BEARER (self), FALSE);
|
||||||
mm_gdbus_bearer_set_properties (MM_GDBUS_BEARER (self), NULL);
|
mm_gdbus_bearer_set_properties (MM_GDBUS_BEARER (self), NULL);
|
||||||
@@ -1656,10 +1661,11 @@ mm_base_bearer_class_init (MMBaseBearerClass *klass)
|
|||||||
/* Helpers to implement connect() */
|
/* Helpers to implement connect() */
|
||||||
|
|
||||||
struct _MMBearerConnectResult {
|
struct _MMBearerConnectResult {
|
||||||
volatile gint ref_count;
|
volatile gint ref_count;
|
||||||
MMPort *data;
|
MMPort *data;
|
||||||
MMBearerIpConfig *ipv4_config;
|
MMBearerIpConfig *ipv4_config;
|
||||||
MMBearerIpConfig *ipv6_config;
|
MMBearerIpConfig *ipv6_config;
|
||||||
|
gboolean multiplexed;
|
||||||
};
|
};
|
||||||
|
|
||||||
MMBearerConnectResult *
|
MMBearerConnectResult *
|
||||||
@@ -1701,8 +1707,21 @@ mm_bearer_connect_result_peek_ipv6_config (MMBearerConnectResult *result)
|
|||||||
return result->ipv6_config;
|
return result->ipv6_config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
mm_bearer_connect_result_set_multiplexed (MMBearerConnectResult *result,
|
||||||
|
gboolean multiplexed)
|
||||||
|
{
|
||||||
|
result->multiplexed = multiplexed;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
mm_bearer_connect_result_get_multiplexed (MMBearerConnectResult *result)
|
||||||
|
{
|
||||||
|
return result->multiplexed;
|
||||||
|
}
|
||||||
|
|
||||||
MMBearerConnectResult *
|
MMBearerConnectResult *
|
||||||
mm_bearer_connect_result_new (MMPort *data,
|
mm_bearer_connect_result_new (MMPort *data,
|
||||||
MMBearerIpConfig *ipv4_config,
|
MMBearerIpConfig *ipv4_config,
|
||||||
MMBearerIpConfig *ipv6_config)
|
MMBearerIpConfig *ipv6_config)
|
||||||
{
|
{
|
||||||
@@ -1718,5 +1737,6 @@ mm_bearer_connect_result_new (MMPort *data,
|
|||||||
result->ipv4_config = g_object_ref (ipv4_config);
|
result->ipv4_config = g_object_ref (ipv4_config);
|
||||||
if (ipv6_config)
|
if (ipv6_config)
|
||||||
result->ipv6_config = g_object_ref (ipv6_config);
|
result->ipv6_config = g_object_ref (ipv6_config);
|
||||||
|
result->multiplexed = FALSE; /* default */
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@@ -41,6 +41,11 @@ MMPort *mm_bearer_connect_result_peek_data (MMBearerConnec
|
|||||||
MMBearerIpConfig *mm_bearer_connect_result_peek_ipv4_config (MMBearerConnectResult *result);
|
MMBearerIpConfig *mm_bearer_connect_result_peek_ipv4_config (MMBearerConnectResult *result);
|
||||||
MMBearerIpConfig *mm_bearer_connect_result_peek_ipv6_config (MMBearerConnectResult *result);
|
MMBearerIpConfig *mm_bearer_connect_result_peek_ipv6_config (MMBearerConnectResult *result);
|
||||||
|
|
||||||
|
/* by default, if none specified, multiplexed=FALSE */
|
||||||
|
void mm_bearer_connect_result_set_multiplexed (MMBearerConnectResult *result,
|
||||||
|
gboolean multiplexed);
|
||||||
|
gboolean mm_bearer_connect_result_get_multiplexed (MMBearerConnectResult *result);
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
/* Default timeout values to be used in the steps of a connection or
|
/* Default timeout values to be used in the steps of a connection or
|
||||||
|
Reference in New Issue
Block a user