gdhcp: Don't send DHCPREQUEST if last assigned IP is Link Local Address 76/60676/1
authorSaurav Babu <saurav.babu@samsung.com>
Tue, 1 Mar 2016 11:40:31 +0000 (17:10 +0530)
committerSaurav Babu <saurav.babu@samsung.com>
Tue, 1 Mar 2016 11:40:31 +0000 (17:10 +0530)
In the following scenario:
 1. ConnMan is connected to a service and Link Local Address is obtained.
 2. Disconnect the service.
 3. Connect the service again.
ConnMan tries to send DHCPREQUEST with last assigned IP which was Link
Local Address.

This patch makes ConnMan to send DHCPDISCOVER when last assigned IP
was Link Local Address.

Change-Id: I3c03f2b43a0f5c5f3be0a4878decb4345af55b33
Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
gdhcp/client.c

index b4b3e7e..8189613 100755 (executable)
@@ -2770,7 +2770,8 @@ int g_dhcp_client_start(GDHCPClient *dhcp_client, const char *last_address)
                addr = 0;
        } else {
                addr = ntohl(inet_addr(last_address));
-               if (addr == 0xFFFFFFFF) {
+               if (addr == 0xFFFFFFFF || ((addr & LINKLOCAL_ADDR) ==
+                                       LINKLOCAL_ADDR)) {
                        addr = 0;
                } else {
                        g_free(dhcp_client->last_address);