+-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.
#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));
#endif
#ifdef ENABLE_IPV4LL
- if (! options->test &&
+ if (! options->test && options->doipv4ll &&
(! dhcp->address.s_addr ||
(! IN_LINKLOCAL (dhcp->address.s_addr) &&
! options->dolastlease)))