From dea8f27464fee9afb7d5cee20b2f6f58499c369b Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Thu, 1 May 2025 14:55:22 +0900 Subject: api,bearer: new 'DisconnectRequest' property To report that the bearer has been killed from the modem side and the connection should be terminated. Signed-off-by: Dominique Martinet --- cli/mmcli-bearer.c | 3 +++ cli/mmcli-output.c | 1 + cli/mmcli-output.h | 1 + docs/reference/libmm-glib/libmm-glib-sections.txt | 3 +++ .../org.freedesktop.ModemManager1.Bearer.xml | 10 ++++++++++ libmm-glib/mm-bearer.c | 21 +++++++++++++++++++++ libmm-glib/mm-bearer.h | 2 ++ 7 files changed, 41 insertions(+) diff --git a/cli/mmcli-bearer.c b/cli/mmcli-bearer.c index 1789f3f9..04da6110 100644 --- a/cli/mmcli-bearer.c +++ b/cli/mmcli-bearer.c @@ -138,6 +138,7 @@ print_bearer_info (MMBearer *bearer) g_autoptr(MMBearerProperties) properties = NULL; g_autoptr(MMBearerStats) stats = NULL; g_autoptr(GError) connection_error = NULL; + gboolean disconnect_request = FALSE; gint profile_id; gchar *profile_id_str; @@ -147,6 +148,7 @@ print_bearer_info (MMBearer *bearer) stats = mm_bearer_get_stats (bearer); profile_id = mm_bearer_get_profile_id (bearer); connection_error = mm_bearer_get_connection_error (bearer); + disconnect_request = mm_bearer_get_disconnect_request (bearer); profile_id_str = (profile_id != MM_3GPP_PROFILE_ID_UNKNOWN) ? g_strdup_printf ("%d", profile_id) : NULL; @@ -156,6 +158,7 @@ print_bearer_info (MMBearer *bearer) mmcli_output_string (MMC_F_BEARER_STATUS_CONNECTED, mm_bearer_get_connected (bearer) ? "yes" : "no"); mmcli_output_string_take (MMC_F_BEARER_STATUS_CONNECTION_ERROR_NAME, connection_error ? g_dbus_error_encode_gerror (connection_error) : NULL); mmcli_output_string (MMC_F_BEARER_STATUS_CONNECTION_ERROR_MESSAGE, connection_error ? connection_error->message : NULL); + mmcli_output_string (MMC_F_BEARER_STATUS_DISCONNECT_REQUEST, disconnect_request ? "yes" : "no"); mmcli_output_string (MMC_F_BEARER_STATUS_SUSPENDED, mm_bearer_get_suspended (bearer) ? "yes" : "no"); mmcli_output_string (MMC_F_BEARER_STATUS_MULTIPLEXED, mm_bearer_get_multiplexed (bearer) ? "yes" : "no"); mmcli_output_string (MMC_F_BEARER_STATUS_INTERFACE, mm_bearer_get_interface (bearer)); diff --git a/cli/mmcli-output.c b/cli/mmcli-output.c index 8aaa3581..1efd0119 100644 --- a/cli/mmcli-output.c +++ b/cli/mmcli-output.c @@ -242,6 +242,7 @@ static FieldInfo field_infos[] = { [MMC_F_BEARER_STATUS_CONNECTED] = { "bearer.status.connected", "connected", MMC_S_BEARER_STATUS, }, [MMC_F_BEARER_STATUS_CONNECTION_ERROR_NAME] = { "bearer.status.connection-error.name", "connection error name", MMC_S_BEARER_STATUS, }, [MMC_F_BEARER_STATUS_CONNECTION_ERROR_MESSAGE] = { "bearer.status.connection-error.message", "connection error message", MMC_S_BEARER_STATUS, }, + [MMC_F_BEARER_STATUS_DISCONNECT_REQUEST] = { "bearer.status.disconnect-request", "disconnect request", 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, }, diff --git a/cli/mmcli-output.h b/cli/mmcli-output.h index e7627653..4aecdfa0 100644 --- a/cli/mmcli-output.h +++ b/cli/mmcli-output.h @@ -260,6 +260,7 @@ typedef enum { MMC_F_BEARER_STATUS_CONNECTED, MMC_F_BEARER_STATUS_CONNECTION_ERROR_NAME, MMC_F_BEARER_STATUS_CONNECTION_ERROR_MESSAGE, + MMC_F_BEARER_STATUS_DISCONNECT_REQUEST, MMC_F_BEARER_STATUS_SUSPENDED, MMC_F_BEARER_STATUS_MULTIPLEXED, MMC_F_BEARER_STATUS_INTERFACE, diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt index a013b37e..2bed1a5e 100644 --- a/docs/reference/libmm-glib/libmm-glib-sections.txt +++ b/docs/reference/libmm-glib/libmm-glib-sections.txt @@ -1448,6 +1448,7 @@ mm_bearer_dup_path mm_bearer_get_interface mm_bearer_dup_interface mm_bearer_get_connected +mm_bearer_get_disconnect_request mm_bearer_get_suspended mm_bearer_get_multiplexed mm_bearer_get_ip_timeout @@ -2345,6 +2346,7 @@ mm_gdbus_bearer_dup_properties mm_gdbus_bearer_get_connected mm_gdbus_bearer_get_connection_error mm_gdbus_bearer_dup_connection_error +mm_gdbus_bearer_get_disconnect_request mm_gdbus_bearer_get_suspended mm_gdbus_bearer_get_multiplexed mm_gdbus_bearer_get_bearer_type @@ -2363,6 +2365,7 @@ mm_gdbus_bearer_call_disconnect_sync mm_gdbus_bearer_interface_info mm_gdbus_bearer_set_connected mm_gdbus_bearer_set_connection_error +mm_gdbus_bearer_set_disconnect_request mm_gdbus_bearer_set_interface mm_gdbus_bearer_set_ip4_config mm_gdbus_bearer_set_ip6_config diff --git a/introspection/org.freedesktop.ModemManager1.Bearer.xml b/introspection/org.freedesktop.ModemManager1.Bearer.xml index 512e4003..1aa77d3e 100644 --- a/introspection/org.freedesktop.ModemManager1.Bearer.xml +++ b/introspection/org.freedesktop.ModemManager1.Bearer.xml @@ -115,6 +115,16 @@ --> + + +