Go to file
Roy Marples 776e5fbb8d Add support for the following RFCs:
DHCP SLP Directory Agent, RFC2610
	DHCP Name Service Search, RFC2937
	DHCP PANA Authentication Agent, RFC5192
	DHCP Lost Server, RFC5223
	DHCP CAPWAP, RFC5417
	DHCP Mobility Services, RFC5678
	DHCP SIP UA, RFC6011
	DHCP ANDSF, RFC6153
	DHCP RDNSS Selection for MIF Nodes, RFC6731
	DHCP TFTP Server Address, RFC5859
	DHCP PXELINUX, RFC5071
	DHCP Access Network Domain Name, RFC5986
	DHCP Virtual Subnet Selection, RFC6607
	DHCP Relay Agent Remote-ID, RFC4649
	DHCP Relay Agent Subscriber-ID, RFC4580
	DHCPv6 Relay-ID, RFC5460
	DHCPv6 LIS Discovery, RFC5986
	DHCPv6 SIP UA, RFC6011
	DHCPv6 Network Boot, RFC5970
	DHCPv6 Home Info Discovery in MIPv6, RFC6610
	DHCPv6 RDNSS Selection for MIF Nodes, RFC6731
	DHCPv6 Kerberos, RFC6784
	DHCPv6 Relay-Triggered Reconfiguraion, RFC6977
	DHCPv6 SOL_MAX_RT, RFC7083
2014-02-03 10:28:30 +00:00
compat Restore linkaddr compat support for KFreeBSD 2013-06-19 09:17:15 +00:00
crypt Implement RFC 1321 MD5 Message-Digest if not provided in libc. 2014-01-25 01:35:53 +00:00
dev Allow dev to recieve errors from managers handle_device. 2013-09-14 08:50:41 +00:00
dhcpcd-hooks Check that we have ctrl_interface defined in wpa_supplicant.conf 2014-01-20 15:01:53 +00:00
test Implement RFC 1321 MD5 Message-Digest if not provided in libc. 2014-01-25 01:35:53 +00:00
arp.c Implement support for RFC 3203, FORCERENEW message. 2014-01-31 11:47:27 +00:00
arp.h Changed in 2014 2014-01-31 12:45:55 +00:00
auth.c Reset reconfigure token when dropping a lease. 2014-01-31 18:33:11 +00:00
auth.h Reset reconfigure token when dropping a lease. 2014-01-31 18:33:11 +00:00
bpf-filter.h Remove some const const warnings found by clang. 2013-05-22 22:58:15 +00:00
bpf.c Fix payload address calculation. 2014-01-20 16:16:54 +00:00
common.c Add the option hostname_short, which will force the sending of the 2013-07-25 15:10:16 +00:00
common.h We're not extracting the address from proc, so convert our match address 2014-01-21 09:58:55 +00:00
configure Tweak stuff for importing 2014-01-31 15:55:16 +00:00
control.c Change from _unused to __unused to match NetBSD cdefs and avoid 2013-04-24 09:38:18 +00:00
control.h White space police 2013-04-04 20:31:04 +00:00
defs.h Implement RFC 1321 MD5 Message-Digest if not provided in libc. 2014-01-25 01:35:53 +00:00
dev.c Warn if dev is started more than once. 2013-11-12 17:09:29 +00:00
dev.h Allow dev to recieve errors from managers handle_device. 2013-09-14 08:50:41 +00:00
dhcp6.c Add support for the following RFCs: 2014-02-03 10:28:30 +00:00
dhcp6.h Add support for the following RFCs: 2014-02-03 10:28:30 +00:00
dhcp-common.c Fix an off-by-1 error decoding RFC3361. 2014-01-16 09:29:42 +00:00
dhcp-common.h Add support for RFC3925 Vendor-Identifying Vendor Options 2013-12-06 17:47:53 +00:00
dhcp.c Fix auto-configure 2014-02-01 10:40:40 +00:00
dhcp.h Add support for DHCP auto configuration, RFC 2563. 2014-01-31 22:15:50 +00:00
dhcpcd-definitions.conf Add support for the following RFCs: 2014-02-03 10:28:30 +00:00
dhcpcd-embedded.h.in We changed these files in 2014 2014-01-14 14:42:00 +00:00
dhcpcd-run-hooks.8.in Use Mt for email address. 2013-07-23 16:45:46 +00:00
dhcpcd-run-hooks.in Fix trim sed fallback 2014-01-20 15:19:11 +00:00
dhcpcd.8.in Add support for DHCP auto configuration, RFC 2563. 2014-01-31 22:15:50 +00:00
dhcpcd.c Implement support for RFC 3203, FORCERENEW message. 2014-01-31 11:47:27 +00:00
dhcpcd.conf Add the persistent option to the default dhcpcd.conf 2013-08-26 12:20:53 +00:00
dhcpcd.conf.5.in Change to using a NTP time stamp for Replay Detection as that seems 2014-01-30 13:04:42 +00:00
dhcpcd.h Allow IAID to be configured in DHCPv4 clientid. 2013-11-15 13:43:41 +00:00
duid.c Allow IAID to be configured in DHCPv4 clientid. 2013-11-15 13:43:41 +00:00
duid.h Allow IAID to be configured in DHCPv4 clientid. 2013-11-15 13:43:41 +00:00
eloop.c Add a delay to initial Rebind IA_PD message. 2013-06-18 09:17:28 +00:00
eloop.h Dev module start now returns an fd to monitor so the eloop additions 2013-09-12 21:13:41 +00:00
genembedc Remove hard coded DHCP/DHCPv6 options and then to dhcpcd-definitions.conf 2013-12-02 16:42:09 +00:00
genembedh Remove hard coded DHCP/DHCPv6 options and then to dhcpcd-definitions.conf 2013-12-02 16:42:09 +00:00
GNUmakefile Add comment about GNUMakefile 2009-07-14 21:52:43 +00:00
if-bsd.c Move vimaster checks to if-bsd.c 2014-01-21 16:27:47 +00:00
if-linux-wireless.c White space police 2013-04-04 20:31:04 +00:00
if-linux.c Fix compile 2014-01-21 16:30:39 +00:00
if-options.c Change to using a NTP time stamp for Replay Detection as that seems 2014-01-30 13:04:42 +00:00
if-options.h Add nodhcp and nodhcp6 directives. 2014-01-29 14:05:58 +00:00
if-pref.c White space police 2013-04-04 20:31:04 +00:00
if-pref.h White space police 2013-04-04 20:31:04 +00:00
ipv4.c Linux has had address loopback routes since 2.2 2013-11-16 11:55:27 +00:00
ipv4.h Build fixes for only INET and only INET6 2013-11-14 15:48:07 +00:00
ipv4ll.c Implement support for RFC 3203, FORCERENEW message. 2014-01-31 11:47:27 +00:00
ipv4ll.h White space police 2013-04-04 20:31:04 +00:00
ipv6.c Detect IPv6 address flags at interface discovery on Linux. 2014-01-19 22:35:52 +00:00
ipv6.h Move the kernel reporting DAD warning to ipv6nd.c to avoid compile spam 2013-11-08 09:37:44 +00:00
ipv6nd.c Typo, thanks to Iain Hibbert. 2014-01-27 11:34:26 +00:00
ipv6nd.h Fix build without INET6 2013-09-05 08:39:38 +00:00
lpf.c Cleanup IPv4 fd opening and closing. 2013-11-12 15:00:22 +00:00
Makefile Tweak stuff for importing 2014-01-31 15:55:16 +00:00
Makefile.inc Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
net.c Move vimaster checks to if-bsd.c 2014-01-21 16:27:47 +00:00
net.h Move vimaster checks to if-bsd.c 2014-01-21 16:27:47 +00:00
platform-bsd.c Changed in 2014. 2014-01-14 21:53:24 +00:00
platform-linux.c Remove the IPv6 forwarding router check as valid use cases exist 2013-10-02 08:00:09 +00:00
platform.h Fix build without IPv6 2013-08-17 10:00:07 +00:00
README Changed in 2014. 2014-01-14 22:50:36 +00:00
script.c We changed these files in 2014 2014-01-14 14:42:00 +00:00
script.h White space police 2013-04-04 20:31:04 +00:00

dhcpcd - DHCP client daemon
Copyright (c) 2006-2014 Roy Marples <roy@marples.name>


Installation
------------
./configure; make; make install
man dhcpcd for command line options
man dhcpcd.conf for configuration options
man dhcpcd-run-hooks to learn how to hook scripts into dhcpcd events


Notes
-----
If you're cross compiling you may need set the platform if OS is different
from the host.
--target=sparc-sun-netbsd5.0

If you're building for an MMU-less system where fork() does not work, you
should ./configure --disable-fork.
This also puts the --no-background flag on and stops the --background flag
from working.

You can change the default dirs with these knobs.
For example, to satisfy FHS compliance you would do this:-
./configure --libexecdir=/lib/dhcpcd dbdir=/var/lib/dhcpcd

We now default to using -std=c99. For 64-bit linux, this always works, but
for 32-bit linux it requires either gnu99 or a patch to asm/types.h.
Most distros patch linux headers so this should work fine.
linux-2.6.24 finally ships with a working 32-bit header.
If your linux headers are older, or your distro hasn't patched them you can
set CSTD=gnu99 to work around this.

Some BSD systems do not allow the manipulation of automatically added subnet
routes. You can find discussion here:
    http://mail-index.netbsd.org/tech-net/2008/12/03/msg000896.html
BSD systems where this has been fixed are:
    NetBSD-5.0

Some BSD systems protect against IPv6 NS/NA messages by ensuring that the
source address matches an address/prefix on the interface.
This is an error as the correct check is for on-link prefixes.
As such, on these systems stateful addressing via DHCPv6 may cause issues
trying to reach other neighbours.
BSD systems where this is known to be a problem
    Occured in NetBSD-5.0, fixed in NetBSD-6.99.29
    Occured in OpenBSD-4.2, fixed in OpenBSD-5.0

We try and detect how dhcpcd should interact with system services at runtime.
If we cannot auto-detect how do to this, or it is wrong then
you can change this by passing shell commands to --serviceexists,
--servicecmd and optionally --servicestatus to ./configure or overriding
the service variables in a hook.

Some systems have /dev management systems and some of these like to rename
interfaces. As this system would listen in the same way as dhcpcd to new
interface arrivals, dhcpcd needs to listen to the /dev management sytem
instead of the kernel. However, if the /dev management system breaks, stops
working, or changes to a new one, dhcpcd should still try and continue to work.
To facilitate this, dhcpcd allows a plugin to load to instruct dhcpcd when it
can use an interface. As of the time of writing only udev support is included.
You can disable this with --without-dev, or without-udev

To shrink dhcpcd you can disable IPv4 or IPv6:
	--disable-inet
	--disable-inet6

You can also move the embedded extended configuration from the dhcpcd binary
to an external file (LIBEXECDIR/dhcpcd-definitions.conf)
	--disable-embedded
If dhcpcd cannot load this file at runtime, dhcpcd will work but will not be
able to decode any DHCP/DHCPv6 options that are not defined by the user
in /etc/dhcpcd.conf.

To prepare dhcpcd for import into a platform source tree (like NetBSD)
you can use the make import target to create /tmp/dhcpcd-$version and
populate it with all the source files and hooks needed.
In this instance, you may wish to disable some configured tests when
the binary has to run on older versions which lack support, such as getline.
./configure --without-getline


Hooks
-----
Not all the hooks in dhcpcd-hooks are installed by default.
By default we install 01-test, 02-dump, 10-mtu, 10-wpa_supplicant,
15-timezone, 20-resolv.conf, 29-lookup-hostname and 30-hostname.
The default dhcpcd.conf disables the lookup-hostname hook by default.
The configure program attempts to find hooks for systems you have installed.
To add more simply
./configure -with-hook=ntp.conf


Compatibility
-------------
dhcpcd-5.0 is only fully command line compatible with dhcpcd-4.0
For compatibility with older versions, use dhcpcd-4.0


ChangeLog
---------
We no longer supply a ChangeLog.
However, you're more than welcome to read the commit log at
http://roy.marples.name/projects/dhcpcd/timeline/