From 74ca47dbe96b489afa49192b3d5e244ab0e72f83 Mon Sep 17 00:00:00 2001 From: Saurav Babu Date: Wed, 3 Feb 2016 19:41:09 +0530 Subject: gdhcp: Don't send DHCPREQUEST if last assigned IP is Link Local Address 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. --- gdhcp/client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gdhcp/client.c b/gdhcp/client.c index 3bf8cb2b..9012b382 100644 --- a/gdhcp/client.c +++ b/gdhcp/client.c @@ -2832,7 +2832,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 if (dhcp_client->last_address != last_address) { g_free(dhcp_client->last_address); -- cgit v1.2.1