Roy Marples [Thu, 12 Sep 2013 21:13:41 +0000 (21:13 +0000)]
Dev module start now returns an fd to monitor so the eloop additions
can go into dev.c
Create a new struct to pass dhcpcd handle_interface to dev plugins
This allows us to build the dhcpcd binary normally and save a few k
disk space.
Roy Marples [Thu, 12 Sep 2013 15:43:20 +0000 (15:43 +0000)]
Instead of linking directly to libudev, create a plugin system for /dev
management. This allows dhcpcd to work even if udev removed and adds the
ability to change from udev to something else in the future.
Roy Marples [Tue, 10 Sep 2013 09:56:11 +0000 (09:56 +0000)]
Instead of just renaming the interface on Linux, take the FreeBSD
approach and remove the old and create a new one.
This simple change allows the the allow/deny rules to be followed.
Roy Marples [Fri, 6 Sep 2013 09:38:24 +0000 (09:38 +0000)]
It seems that FreeBSD will send RTM_DELADDR + RTM_NEWADDR when
replacing an existing IPv4 address with the same values.
As such, we need to maintain a list of configured IPv4 addresses
for each interface so we know when to add it and when to skip it
to avoid receiving bogus RTM_DELADDR messages from ourself.
Roy Marples [Fri, 2 Aug 2013 09:10:38 +0000 (09:10 +0000)]
Slackware uses /etc/rc.d/rc.$service instead of just $service,
so configure doesn't find those. This patch overrides the
defaults for SERVICEEXISTS, SERVICECMD, and SERVICESTATUS.
Thanks to Robby Workman.
Roy Marples [Thu, 25 Jul 2013 15:10:16 +0000 (15:10 +0000)]
Add the option hostname_short, which will force the sending of the
short hostname so DDNS will always work, even if the hostname domain
is different from the DHCP servers.
Change hostname_fqdn to true/false/unset value.
unset means use what the DHCP server supplies
(DHCPv4/DHCPv6 maybe inconsistent depending on server setup)
true/false force the hostname to be either a FQDN or a short name.
Roy Marples [Sun, 21 Jul 2013 09:57:27 +0000 (09:57 +0000)]
Rename the script option fqdn_name to fqdn for DHCPv4 replies to
match DHCPv6 as it makes name sense.
Request the FQDN option by default as well as sending it.
Roy Marples [Tue, 25 Jun 2013 08:31:11 +0000 (08:31 +0000)]
Detect link address changes on Linux.
Only NetBSD emits RTM_CHGADDR for link address changes.
Sadly no other BSD emits anything for link address changes so we have
to do a full discovery on carrier up.
When a link address does change, simply carry on as we are, no need
to drop any existing lease as the carrier change will do that for us.
Roy Marples [Wed, 19 Jun 2013 16:02:19 +0000 (16:02 +0000)]
Add a route from the IPv4 address to the loopback address.
This allows for machine-internal communications to this address
can use the large loopback mtu.
Roy Marples [Tue, 18 Jun 2013 09:17:28 +0000 (09:17 +0000)]
Add a delay to initial Rebind IA_PD message.
Delay initial DHCPv6 messages a futher 2 seconds for POINTOPOINT links to
try and ensure dhcpcd receives a reply.
Process link events last so that dhcpcd can process any rejection messages.
When a delegating interface stops, the delegates addresses will be removed.
Roy Marples [Wed, 12 Jun 2013 10:58:28 +0000 (10:58 +0000)]
Ensure we have the correct type to send in our saved lease as the
user could change from IA_PD to IA_NA.
Re-send INFORM_REQUEST at each ROUTERADVERT.
Save some code by sharing the drop addrs loop.