From: Abhishek Sansanwal Date: Mon, 10 Apr 2017 06:38:14 +0000 (+0530) Subject: Remove old IP and gateway address X-Git-Tag: accepted/tizen/unified/20170412.152315^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F75%2F124075%2F1;p=platform%2Fupstream%2Fconnman.git Remove old IP and gateway address Change-Id: I61defbc6fba37e7c3a04516d1946f2b5cd22af1a Signed-off-by: Abhishek Sansanwal --- diff --git a/src/dhcp.c b/src/dhcp.c index 32ffcd9..0a2f6fc 100755 --- a/src/dhcp.c +++ b/src/dhcp.c @@ -439,7 +439,7 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) char *address, *netmask = NULL, *gateway = NULL; const char *c_address, *c_gateway; unsigned char prefixlen, c_prefixlen; - bool ip_change; + bool ip_change = false; DBG("Lease available"); @@ -471,14 +471,21 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) DBG("c_address %s", c_address); - if (g_strcmp0(address, c_address)) + if (g_strcmp0(address, c_address)) { ip_change = true; - else if (g_strcmp0(gateway, c_gateway)) + if (c_address) { + /* Remove old ip address */ + __connman_ipconfig_address_remove(dhcp->ipconfig); + } + } + if (g_strcmp0(gateway, c_gateway)) { ip_change = true; - else if (prefixlen != c_prefixlen) + if (c_gateway) { + /* Remove gateway ip address */ + __connman_ipconfig_gateway_remove(dhcp->ipconfig); + } + } else if (prefixlen != c_prefixlen) ip_change = true; - else - ip_change = false; __connman_ipconfig_set_method(dhcp->ipconfig, CONNMAN_IPCONFIG_METHOD_DHCP);