aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-modem-helpers.c')
-rw-r--r--src/mm-modem-helpers.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index 157cb19c..44e8e71e 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -4119,11 +4119,16 @@ mm_3gpp_get_ip_family_from_pdp_type (const gchar *pdp_type)
}
gboolean
-mm_3gpp_normalize_ip_family (MMBearerIpFamily *family)
-{
- /* if nothing specific requested, default to IPv4 */
+mm_3gpp_normalize_ip_family (MMBearerIpFamily *family, gboolean from_user)
+{
+ /* To address limitations in reading IP_TYPE information (in some cases) for
+ * profile requests, default to IPv4v6 (dual-stack) for profile requests and
+ * IPv4 only for user requests (to ensure backward compatibility) if nothing
+ * specific is requested. This ensures network compatibility across IPv4 and IPv6 networks,
+ * preventing potential connectivity issues in IPv6 environments.
+ */
if (*family == MM_BEARER_IP_FAMILY_NONE || *family == MM_BEARER_IP_FAMILY_ANY) {
- *family = MM_BEARER_IP_FAMILY_IPV4;
+ *family = from_user ? MM_BEARER_IP_FAMILY_IPV4 : MM_BEARER_IP_FAMILY_IPV4V6;
return TRUE;
}