]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
-L actually doesn't do IPv4LL as advertised.
authorRoy Marples <roy@marples.name>
Sat, 11 Aug 2007 16:03:25 +0000 (16:03 +0000)
committerRoy Marples <roy@marples.name>
Sat, 11 Aug 2007 16:03:25 +0000 (16:03 +0000)
ChangeLog
client.c

index 6b8793d8442c240e65d93b2fadf924c760a37e16..4371c8ed43016ce0146c503e734763333e6f8ec7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,5 @@
+-L actually doesn't do IPv4LL as advertised.
+
 dhcpcd-3.1.4
 Ensure ARP checking times out when there is a flood.
 Add -x option to quit without releasing the lease.
index b7c92bca96efa5b35d37ea43c32bb18e96d4208b..656fc6de7b9786f28c88a41a67b985ee6579de12 100644 (file)
--- a/client.c
+++ b/client.c
@@ -152,9 +152,11 @@ static bool get_old_lease (const options_t *options, interface_t *iface,
 
 #ifdef ENABLE_ARP
        /* Check that no-one is using the address */
-       if ((options->dolastlease ||
-                IN_LINKLOCAL (dhcp->address.s_addr)) &&
-               arp_claim (iface, dhcp->address)) {
+       if ((options->dolastlease || 
+                (IN_LINKLOCAL (dhcp->address.s_addr) &&
+                 (! options->doipv4ll ||
+                  arp_claim (iface, dhcp->address)))))
+       {
                memset (&dhcp->address, 0, sizeof (struct in_addr));
                memset (&dhcp->netmask, 0, sizeof (struct in_addr));
                memset (&dhcp->broadcast, 0, sizeof (struct in_addr));
@@ -424,7 +426,7 @@ int dhcp_run (const options_t *options, int *pidfd)
 #endif
 
 #ifdef ENABLE_IPV4LL
-                                               if (! options->test &&
+                                               if (! options->test && options->doipv4ll &&
                                                        (! dhcp->address.s_addr ||
                                                         (! IN_LINKLOCAL (dhcp->address.s_addr) &&
                                                          ! options->dolastlease)))