Home | History | Annotate | only in /external/dhcpcd-6.8.2
Up to higher level directory
NameDateSize
Android.mk05-Oct-20172.6K
arp.c05-Oct-201710.6K
arp.h05-Oct-20172.7K
auth.c05-Oct-201715.3K
auth.h05-Oct-20172.5K
bpf-filter.h05-Oct-20174.2K
common.c05-Oct-20178K
common.h05-Oct-20176.8K
compat/05-Oct-2017
config-null.mk05-Oct-201771
config.h05-Oct-2017471
configure05-Oct-201728.9K
control.c05-Oct-20179.9K
control.h05-Oct-20172.2K
crypt/05-Oct-2017
dbus/05-Oct-2017
defs.h05-Oct-20172.4K
dev/05-Oct-2017
dev.c05-Oct-20174.3K
dev.h05-Oct-20172K
dhcp-common.c05-Oct-201719.2K
dhcp-common.h05-Oct-20173.9K
dhcp.c05-Oct-201794K
dhcp.h05-Oct-20179.5K
dhcp6.c05-Oct-201786.5K
dhcp6.h05-Oct-20177.6K
dhcpcd-definitions.conf05-Oct-201715K
dhcpcd-embedded.c05-Oct-201711.4K
dhcpcd-embedded.c.in05-Oct-20171.6K
dhcpcd-embedded.h05-Oct-20171.5K
dhcpcd-embedded.h.in05-Oct-20171.5K
dhcpcd-hooks/05-Oct-2017
dhcpcd-run-hooks.8.in05-Oct-20176.5K
dhcpcd-run-hooks.in05-Oct-20178.3K
dhcpcd.8.in05-Oct-201722.1K
dhcpcd.c05-Oct-201748.7K
dhcpcd.conf05-Oct-20171.5K
dhcpcd.conf.5.in05-Oct-201724.3K
dhcpcd.h05-Oct-20175.1K
duid.c05-Oct-20174.4K
duid.h05-Oct-20171.5K
eloop.c05-Oct-201715K
eloop.h05-Oct-20173.6K
genembedc05-Oct-2017252
genembedh05-Oct-2017350
GNUmakefile05-Oct-2017365
iconfig.mk05-Oct-2017235
if-bsd.c05-Oct-201739.8K
if-linux-wext.c05-Oct-20172.9K
if-linux.c05-Oct-201741.8K
if-options.c05-Oct-201758.1K
if-options.h05-Oct-20176.5K
if-sun.c05-Oct-20173.2K
if.c05-Oct-201716.7K
if.h05-Oct-20175.5K
ifaddrs.c05-Oct-20174K
ifaddrs.h05-Oct-20171.1K
ipv4.c05-Oct-201726.1K
ipv4.h05-Oct-20173.6K
ipv4ll.c05-Oct-20177.3K
ipv4ll.h05-Oct-20171.5K
ipv6.c05-Oct-201751.2K
ipv6.h05-Oct-20178.2K
ipv6nd.c05-Oct-201743.1K
ipv6nd.h05-Oct-20173.9K
Makefile05-Oct-20175.7K
Makefile.inc05-Oct-2017151
MODULE_LICENSE_BSD_LIKE05-Oct-20178
NOTICE05-Oct-20176.2K
README05-Oct-20176.3K
rpc-interface.h05-Oct-20172K
rpc-stub.c05-Oct-20171.9K
script-stub.c05-Oct-20171.7K
script.c05-Oct-201716.3K
script.h05-Oct-20171.6K
test/05-Oct-2017

README

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