Go to file
Roy Marples 413652c1b3 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.
2013-09-12 15:43:20 +00:00
compat Restore linkaddr compat support for KFreeBSD 2013-06-19 09:17:15 +00:00
dev Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
dhcpcd-hooks Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
.gitattributes Don't export git .gitignore file 2009-10-02 20:57:44 +00:00
.gitignore Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
arp.c Only spam syslog if something new or unexpected happens, don't spam 2013-05-23 21:50:34 +00:00
arp.h Note that we support RFC 5227 2013-04-05 09:47:33 +00:00
bpf-filter.h Remove some const const warnings found by clang. 2013-05-22 22:58:15 +00:00
bpf.c Fix compile on FreeBSD 2013-02-17 16:12: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 Add the option hostname_short, which will force the sending of the 2013-07-25 15:10:16 +00:00
configure Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +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 Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
dev.c Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
dev.h Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
dhcp6.c Fix requesting >1 DHCPv6 address 2013-09-07 23:16:36 +00:00
dhcp6.h Fix build without INET6 2013-09-05 08:39:38 +00:00
dhcp-common.c Add support for Rapid Commit, RFC3315 and RFC4039. 2013-06-05 23:57:03 +00:00
dhcp-common.h Add support for Rapid Commit, RFC3315 and RFC4039. 2013-06-05 23:57:03 +00:00
dhcp.c Try and fix removal of the ip address when using INFORM. 2013-09-06 15:23:22 +00:00
dhcp.h It seems that FreeBSD will send RTM_DELADDR + RTM_NEWADDR when 2013-09-06 09:38:24 +00:00
dhcpcd-run-hooks.8.in Use Mt for email address. 2013-07-23 16:45:46 +00:00
dhcpcd-run-hooks.in Ignore emacs files 2013-05-16 18:52:23 +00:00
dhcpcd.8.in Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
dhcpcd.c Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +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 Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
dhcpcd.h Instead of just renaming the interface on Linux, take the FreeBSD 2013-09-10 09:56:11 +00:00
duid.c Fix compile on NetBSD-6 2013-06-02 10:54:43 +00:00
duid.h White space police 2013-04-04 20:31:04 +00:00
eloop.c Add a delay to initial Rebind IA_PD message. 2013-06-18 09:17:28 +00:00
eloop.h Remove include to try and fix ppc 64 linux compile. 2013-05-21 13:25:37 +00:00
GNUmakefile Add comment about GNUMakefile 2009-07-14 21:52:43 +00:00
if-bsd.c It seems that FreeBSD will send RTM_DELADDR + RTM_NEWADDR when 2013-09-06 09:38:24 +00:00
if-linux-wireless.c White space police 2013-04-04 20:31:04 +00:00
if-linux.c Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
if-options.c Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
if-options.h Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +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 Plug a leak 2013-09-06 15:50:25 +00:00
ipv4.h It seems that FreeBSD will send RTM_DELADDR + RTM_NEWADDR when 2013-09-06 09:38:24 +00:00
ipv4ll.c White space police 2013-04-04 20:31:04 +00:00
ipv4ll.h White space police 2013-04-04 20:31:04 +00:00
ipv6.c Don't bother managing a /128 prefix. 2013-09-07 11:13:05 +00:00
ipv6.h No need to know the ra for the route. 2013-09-03 15:17:19 +00:00
ipv6nd.c Fix requesting >1 DHCPv6 address 2013-09-07 23:16:36 +00:00
ipv6nd.h Fix build without INET6 2013-09-05 08:39:38 +00:00
lpf.c It's now possible to compile out IPv4 and IPv6 support by passing 2013-02-04 13:30:35 +00:00
Makefile Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +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 Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
net.h Purge prefix list and routers at start of IPv6 for BSD. 2013-06-10 00:56:54 +00:00
platform-bsd.c Fix kFreeBSD compile. 2013-08-20 15:59:51 +00:00
platform-linux.c Check kernel for autoconf support. 2013-09-03 09:28:37 +00:00
platform.h Fix build without IPv6 2013-08-17 10:00:07 +00:00
README Instead of linking directly to libudev, create a plugin system for /dev 2013-09-12 15:43:20 +00:00
script.c Reduce code size by merging IPv6 ND with RS. 2013-08-20 10:29:43 +00:00
script.h White space police 2013-04-04 20:31:04 +00:00

dhcpcd - DHCP client daemon
Copyright (c) 2006-2013 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

We try and detect how dhcpcd should interact with system services during the
configure stage. If we cannot auto-detect how do to this, or it is wrong then
you can change this by passing shell commands to --service-exists,
--servicecmd and optionally --servicestatus.

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 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/log/