From a1f2d8c99b396887206d7a9dde50eef8c2e31c76 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Tue, 10 Sep 2024 13:56:20 +0000 Subject: broadband-modem-mbim: log hex value of IP type if unknown The L850 seems to report 0xFFFFFFFF as MbimContextIpType value, which is not a correct value. Instead of printing "(none)" (the default used by glib when trying to print a NULL pointer as a string), make it so that we end up printing the actual numeric value in hex. [modem0] 'home' settings found at configuration index 0 [modem0] 'non-partner' settings found at configuration index 1 [modem0] 'partner' settings not found [modem0] updates in the home LTE attach configuration settings: [modem0] ip type: 'unknown (0xffffffff)' -> ''ipv4v6' [modem0] updates in the partner LTE attach configuration settings: [modem0] none (skipped) [modem0] updates in the non-partner LTE attach configuration settings: [modem0] none --- src/mm-broadband-modem-mbim.c | 18 ++++++++++++++---- src/mm-modem-helpers-mbim.c | 24 ++++++++++++++++++++++++ src/mm-modem-helpers-mbim.h | 2 ++ 3 files changed, 40 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index ce27e3a3..8e51c6ed 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -4443,16 +4443,26 @@ update_lte_attach_configuration (MMBroadbandModemMbim *self, } if (!previous_config || !new_config || (previous_config->ip_type != new_config->ip_type)) { + g_autofree gchar *previous_ip_type = NULL; + g_autofree gchar *new_ip_type = NULL; + + previous_ip_type = previous_config ? mm_mbim_context_ip_type_get_printable (previous_config->ip_type) : NULL; + new_ip_type = new_config ? mm_mbim_context_ip_type_get_printable (new_config->ip_type) : NULL; mm_obj_dbg (self, " ip type: '%s' -> '%s'", - previous_config ? mbim_context_ip_type_get_string (previous_config->ip_type) : "", - new_config ? mbim_context_ip_type_get_string (new_config->ip_type) : ""); + previous_ip_type ? previous_ip_type : "", + new_ip_type ? new_ip_type : ""); n_updates++; } if (!previous_config || !new_config || (previous_config->auth_protocol != new_config->auth_protocol)) { + g_autofree gchar *previous_auth_protocol = NULL; + g_autofree gchar *new_auth_protocol = NULL; + + previous_auth_protocol = previous_config ? mm_mbim_auth_protocol_get_printable (previous_config->auth_protocol) : NULL; + new_auth_protocol = new_config ? mm_mbim_auth_protocol_get_printable (new_config->auth_protocol) : NULL; mm_obj_dbg (self, " auth protocol: '%s' -> '%s'", - previous_config ? mbim_auth_protocol_get_string (previous_config->auth_protocol) : "", - new_config ? mbim_auth_protocol_get_string (new_config->auth_protocol) : ""); + previous_auth_protocol ? previous_auth_protocol : "", + new_auth_protocol ? new_auth_protocol : ""); n_updates++; } diff --git a/src/mm-modem-helpers-mbim.c b/src/mm-modem-helpers-mbim.c index b96f6b50..49d38531 100644 --- a/src/mm-modem-helpers-mbim.c +++ b/src/mm-modem-helpers-mbim.c @@ -457,6 +457,18 @@ mm_bearer_allowed_auth_to_mbim_auth_protocol (MMBearerAllowedAuth bearer_auth, return MBIM_AUTH_PROTOCOL_NONE; } +gchar * +mm_mbim_auth_protocol_get_printable (MbimAuthProtocol auth_protocol) +{ + const gchar *str; + + str = mbim_auth_protocol_get_string (auth_protocol); + if (str) + return g_strdup (str); + + return g_strdup_printf ("unknown (0x%x)", auth_protocol); +} + /*****************************************************************************/ MMBearerApnType @@ -617,6 +629,18 @@ mm_bearer_ip_family_to_mbim_context_ip_type (MMBearerIpFamily ip_family, return MBIM_CONTEXT_IP_TYPE_DEFAULT; } +gchar * +mm_mbim_context_ip_type_get_printable (MbimContextIpType ip_type) +{ + const gchar *str; + + str = mbim_context_ip_type_get_string (ip_type); + if (str) + return g_strdup (str); + + return g_strdup_printf ("unknown (0x%x)", ip_type); +} + /*****************************************************************************/ gboolean diff --git a/src/mm-modem-helpers-mbim.h b/src/mm-modem-helpers-mbim.h index ca5b1e21..ba664bbb 100644 --- a/src/mm-modem-helpers-mbim.h +++ b/src/mm-modem-helpers-mbim.h @@ -60,9 +60,11 @@ MMBearerAllowedAuth mm_bearer_allowed_auth_from_mbim_auth_protocol (MbimAuthProt MbimAuthProtocol mm_bearer_allowed_auth_to_mbim_auth_protocol (MMBearerAllowedAuth bearer_auth, gpointer log_object, GError **error); +gchar *mm_mbim_auth_protocol_get_printable (MbimAuthProtocol auth_protocol); MMBearerIpFamily mm_bearer_ip_family_from_mbim_context_ip_type (MbimContextIpType ip_type); MbimContextIpType mm_bearer_ip_family_to_mbim_context_ip_type (MMBearerIpFamily ip_family, GError **error); +gchar *mm_mbim_context_ip_type_get_printable (MbimContextIpType ip_type); MMBearerApnType mm_bearer_apn_type_from_mbim_context_type (MbimContextType context_type); MbimContextType mm_bearer_apn_type_to_mbim_context_type (MMBearerApnType apn_type, gboolean mbim_extensions_supported, -- cgit v1.2.3-70-g09d2