• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

compat/22-Nov-2023-1,453695

crypt/22-Nov-2023-747433

dbus/22-Nov-2023-1,162970

dev/22-Nov-2023-223158

dhcpcd-hooks/22-Nov-2023-926767

test/22-Nov-2023-290164

.gitD01-Jan-19700

Android.mkD22-Nov-20232.6 KiB9151

GNUmakefileD22-Nov-2023365 137

MODULE_LICENSE_BSD_LIKED22-Nov-20238 21

MakefileD22-Nov-20235.7 KiB217160

Makefile.incD22-Nov-2023151 138

NOTICED22-Nov-20236.2 KiB137105

READMED22-Nov-20236.3 KiB150123

arp.cD22-Nov-202310.6 KiB434344

arp.hD22-Nov-20232.7 KiB8649

auth.cD22-Nov-202315.3 KiB672533

auth.hD22-Nov-20232.5 KiB8746

bpf-filter.hD22-Nov-20234.2 KiB10035

common.cD22-Nov-20238 KiB371287

common.hD22-Nov-20236.8 KiB191140

config-null.mkD22-Nov-202371 41

config.hD22-Nov-2023471 1916

configureD22-Nov-202328.9 KiB1,2641,151

control.cD22-Nov-20239.9 KiB444362

control.hD22-Nov-20232.2 KiB6529

defs.hD22-Nov-20232.4 KiB7746

dev.cD22-Nov-20234.3 KiB189138

dev.hD22-Nov-20232 KiB6127

dhcp-common.cD22-Nov-202319.2 KiB930788

dhcp-common.hD22-Nov-20233.9 KiB12174

dhcp.cD22-Nov-202394 KiB3,8083,196

dhcp.hD22-Nov-20239.5 KiB323242

dhcp6.cD22-Nov-202386.5 KiB3,6223,120

dhcp6.hD22-Nov-20237.6 KiB262204

dhcpcd-definitions.confD22-Nov-202315 KiB534305

dhcpcd-embedded.cD22-Nov-202311.4 KiB344309

dhcpcd-embedded.c.inD22-Nov-20231.6 KiB3732

dhcpcd-embedded.hD22-Nov-20231.5 KiB323

dhcpcd-embedded.h.inD22-Nov-20231.5 KiB3228

dhcpcd-run-hooks.8.inD22-Nov-20236.5 KiB223222

dhcpcd-run-hooks.inD22-Nov-20238.3 KiB382292

dhcpcd.8.inD22-Nov-202322.1 KiB744743

dhcpcd.cD22-Nov-202348.7 KiB1,9991,644

dhcpcd.confD22-Nov-20231.5 KiB539

dhcpcd.conf.5.inD22-Nov-202324.3 KiB822821

dhcpcd.hD22-Nov-20235.1 KiB186128

duid.cD22-Nov-20234.4 KiB166118

duid.hD22-Nov-20231.5 KiB365

eloop.cD22-Nov-202315 KiB656542

eloop.hD22-Nov-20233.6 KiB11772

genembedcD22-Nov-2023252 1713

genembedhD22-Nov-2023350 1612

iconfig.mkD22-Nov-2023235 85

if-bsd.cD22-Nov-202339.8 KiB1,6901,431

if-linux-wext.cD22-Nov-20232.9 KiB9139

if-linux.cD22-Nov-202341.8 KiB1,8191,526

if-options.cD22-Nov-202358.1 KiB2,4162,239

if-options.hD22-Nov-20236.5 KiB216162

if-sun.cD22-Nov-20233.2 KiB184120

if.cD22-Nov-202316.7 KiB722599

if.hD22-Nov-20235.5 KiB175109

ifaddrs.cD22-Nov-20234 KiB151118

ifaddrs.hD22-Nov-20231.1 KiB3520

ipv4.cD22-Nov-202326.1 KiB1,109926

ipv4.hD22-Nov-20233.6 KiB11473

ipv4ll.cD22-Nov-20237.3 KiB282200

ipv4ll.hD22-Nov-20231.5 KiB377

ipv6.cD22-Nov-202351.2 KiB2,1291,709

ipv6.hD22-Nov-20238.2 KiB277201

ipv6nd.cD22-Nov-202343.1 KiB1,7631,528

ipv6nd.hD22-Nov-20233.9 KiB12280

rpc-interface.hD22-Nov-20232 KiB5412

rpc-stub.cD22-Nov-20231.9 KiB7231

script-stub.cD22-Nov-20231.7 KiB5016

script.cD22-Nov-202316.3 KiB736651

script.hD22-Nov-20231.6 KiB387

README

1dhcpcd - DHCP client daemon
2Copyright (c) 2006-2015 Roy Marples <roy@marples.name>
3
4
5Installation
6------------
7./configure; make; make install
8man dhcpcd for command line options
9man dhcpcd.conf for configuration options
10man dhcpcd-run-hooks to learn how to hook scripts into dhcpcd events
11
12
13Notes
14-----
15If you're cross compiling you may need set the platform if OS is different
16from the host.
17--target=sparc-sun-netbsd5.0
18
19If you're building for an MMU-less system where fork() does not work, you
20should ./configure --disable-fork.
21This also puts the --no-background flag on and stops the --background flag
22from working.
23
24You can change the default dirs with these knobs.
25For example, to satisfy FHS compliance you would do this:-
26./configure --libexecdir=/lib/dhcpcd dbdir=/var/lib/dhcpcd
27
28We now default to using -std=c99. For 64-bit linux, this always works, but
29for 32-bit linux it requires either gnu99 or a patch to asm/types.h.
30Most distros patch linux headers so this should work fine.
31linux-2.6.24 finally ships with a working 32-bit header.
32If your linux headers are older, or your distro hasn't patched them you can
33set CSTD=gnu99 to work around this.
34
35Some BSD systems do not allow the manipulation of automatically added subnet
36routes. You can find discussion here:
37    http://mail-index.netbsd.org/tech-net/2008/12/03/msg000896.html
38BSD systems where this has been fixed or is known to work are:
39    NetBSD-5.0
40    FreeBSD-10.0
41
42Some BSD systems protect against IPv6 NS/NA messages by ensuring that the
43source address matches a prefix on the recieved by a RA message.
44This is an error as the correct check is for on-link prefixes as the
45kernel may not be handling RA itself.
46BSD systems where this has been fixed or is known to work are:
47    NetBSD-7.0
48    OpenBSD-5.0
49    patch submitted against FreeBSD-10.0
50
51Some BSD systems do not announce IPv6 address flag changes, such as
52IN6_IFF_TENTATIVE, IN6_IFF_DUPLICATED, etc. On these systems,
53dhcpcd will poll a freshly added address until either IN6_IFF_TENTATIVE is
54cleared or IN6_IFF_DUPLICATED is set and take action accordingly.
55BSD systems where this has been fixed or is known to work are:
56    NetBSD-7.0
57
58Some BSD systems do not announce cached neighbour route changes based
59on reachability to userland. For such systems, IPv6 routers will always
60be assumed to be reachable until they either stop being a router or expire.
61BSD systems where this has been fixed or is known to work are:
62    NetBSD-7.99.3
63
64Linux prior to 3.17 won't allow userland to manage IPv6 temporary addresses.
65Either upgrade or don't allow dhcpcd to manage the RA,
66so don't set either "ipv6ra_own" or "slaac private" in dhcpcd.conf if you
67want to have working IPv6 temporary addresses.
68SLAAC private addresses are just as private, just stable.
69
70ArchLinux presently sanitises all kernel headers to the latest version
71regardless of the version for your CPU. As such, Arch presently ships a
723.12 kernel with 3.17 headers which claim that it suppors temporary address
73management and no automatic prefix route generation, both of which are
74obviously false. You will have to patch support either in the kernel or
75out of the headers (or dhcpcd itself) to have correct operation.
76
77We try and detect how dhcpcd should interact with system services at runtime.
78If we cannot auto-detect how do to this, or it is wrong then
79you can change this by passing shell commands to --serviceexists,
80--servicecmd and optionally --servicestatus to ./configure or overriding
81the service variables in a hook.
82
83Some systems have /dev management systems and some of these like to rename
84interfaces. As this system would listen in the same way as dhcpcd to new
85interface arrivals, dhcpcd needs to listen to the /dev management sytem
86instead of the kernel. However, if the /dev management system breaks, stops
87working, or changes to a new one, dhcpcd should still try and continue to work.
88To facilitate this, dhcpcd allows a plugin to load to instruct dhcpcd when it
89can use an interface. As of the time of writing only udev support is included.
90You can disable this with --without-dev, or without-udev
91
92To shrink dhcpcd you can disable IPv4 or IPv6:
93	--disable-inet
94	--disable-inet6
95
96You can also move the embedded extended configuration from the dhcpcd binary
97to an external file (LIBEXECDIR/dhcpcd-definitions.conf)
98	--disable-embedded
99If dhcpcd cannot load this file at runtime, dhcpcd will work but will not be
100able to decode any DHCP/DHCPv6 options that are not defined by the user
101in /etc/dhcpcd.conf.
102
103To prepare dhcpcd for import into a platform source tree (like NetBSD)
104you can use the make import target to create /tmp/dhcpcd-$version and
105populate it with all the source files and hooks needed.
106In this instance, you may wish to disable some configured tests when
107the binary has to run on older versions which lack support, such as getline.
108./configure --without-getline
109
110Building for distribution (ie making a dhcpcd source tarball) now requires
111gmake-4 or any BSD make.
112
113
114Hooks
115-----
116Not all the hooks in dhcpcd-hooks are installed by default.
117By default we install 01-test, 02-dump, 10-mtu, 10-wpa_supplicant,
11815-timezone, 20-resolv.conf, 29-lookup-hostname and 30-hostname.
119The default dhcpcd.conf disables the lookup-hostname hook by default.
120The configure program attempts to find hooks for systems you have installed.
121To add more simply
122./configure -with-hook=ntp.conf
123
124Some system services expose the name of the service we are in,
125by default dhcpcd will pick RC_SVCNAME from the environment.
126You can override this in CPPFLAGS+= -DRC_SVCNAME="YOUR_SVCNAME".
127This is important because dhcpcd will scrub the environment aside from $PATH
128before running hooks.
129This variable could be used to facilitate service re-entry so this chain could
130happen in a custom OS hook:
131  dhcpcd service marked inactive && dhcpcd service starts
132  dependant services are not started because dhcpcd is inactive (not stopped)
133  dhcpcd hook tests $if_oneup && $if_ipwaited
134  if true, mark the dhcpcd service as started and then start dependencies
135  if false and the dhcpcd service was previously started, mark as inactive and
136     stop any dependant services.
137
138
139Compatibility
140-------------
141dhcpcd-5.0 is only fully command line compatible with dhcpcd-4.0
142For compatibility with older versions, use dhcpcd-4.0
143
144
145ChangeLog
146---------
147We no longer supply a ChangeLog.
148However, you're more than welcome to read the commit log at
149http://roy.marples.name/projects/dhcpcd/timeline/
150