From 33e531f50dae1a384c3f4512298e4966367fd143 Mon Sep 17 00:00:00 2001 From: Thierry Boureille Date: Wed, 6 Jul 2011 19:41:10 +0200 Subject: [PATCH] ofono: Set IPv4 address if IPv6 method is not supported Also, fall back to IPv6 when the IPv4 method is not supported. --- plugins/ofono.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/plugins/ofono.c b/plugins/ofono.c index c24165e..5a60882 100644 --- a/plugins/ofono.c +++ b/plugins/ofono.c @@ -418,6 +418,8 @@ static gboolean pending_network_is_available(struct connman_network *network) static void set_connected(struct network_info *info, connman_bool_t connected) { + gboolean setip = FALSE; + DBG("network %p connected %d", info->network, connected); switch (info->ipv4_method) { @@ -425,20 +427,20 @@ static void set_connected(struct network_info *info, case CONNMAN_IPCONFIG_METHOD_OFF: case CONNMAN_IPCONFIG_METHOD_MANUAL: case CONNMAN_IPCONFIG_METHOD_AUTO: - return; + break; case CONNMAN_IPCONFIG_METHOD_FIXED: connman_network_set_ipv4_method(info->network, info->ipv4_method); connman_network_set_ipaddress(info->network, &info->ipv4_address); - + setip = TRUE; break; case CONNMAN_IPCONFIG_METHOD_DHCP: connman_network_set_ipv4_method(info->network, info->ipv4_method); - + setip = TRUE; break; } @@ -448,18 +450,19 @@ static void set_connected(struct network_info *info, case CONNMAN_IPCONFIG_METHOD_MANUAL: case CONNMAN_IPCONFIG_METHOD_DHCP: case CONNMAN_IPCONFIG_METHOD_AUTO: - return; + break; case CONNMAN_IPCONFIG_METHOD_FIXED: connman_network_set_ipv6_method(info->network, info->ipv6_method); connman_network_set_ipaddress(info->network, &info->ipv6_address); - + setip = TRUE; break; } - connman_network_set_connected(info->network, connected); + if (setip == TRUE) + connman_network_set_connected(info->network, connected); } static void set_active_reply(DBusPendingCall *call, void *user_data) -- 2.7.4