diff options
author | Abhishek Sansanwal <abhishek.s94@samsung.com> | 2017-04-10 12:08:14 +0530 |
---|---|---|
committer | Abhishek Sansanwal <abhishek.s94@samsung.com> | 2017-04-10 12:08:14 +0530 |
commit | 1a8bd8384824f7b4b6e513c7eff6a6f4f02769cd (patch) | |
tree | a3f99c96bbbb3a8197c97f5fe6a7e741cd89405d /src | |
parent | 6df34c52ef916fd3122053525647ccfbad82def9 (diff) | |
download | connman-1a8bd8384824f7b4b6e513c7eff6a6f4f02769cd.tar.gz connman-1a8bd8384824f7b4b6e513c7eff6a6f4f02769cd.tar.bz2 connman-1a8bd8384824f7b4b6e513c7eff6a6f4f02769cd.zip |
Remove old IP and gateway addresssubmit/tizen/20170412.005740submit/tizen/20170411.091632accepted/tizen/unified/20170412.152315
Change-Id: I61defbc6fba37e7c3a04516d1946f2b5cd22af1a
Signed-off-by: Abhishek Sansanwal <abhishek.s94@samsung.com>
Diffstat (limited to 'src')
-rwxr-xr-x | src/dhcp.c | 19 |
1 files changed, 13 insertions, 6 deletions
@@ -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); |