d3e04df
diff -up dhcp-4.1.1/client/dhclient.8.man dhcp-4.1.1/client/dhclient.8
d3e04df
--- dhcp-4.1.1/client/dhclient.8.man	2009-07-25 00:04:51.000000000 +0200
d3e04df
+++ dhcp-4.1.1/client/dhclient.8	2010-01-20 17:20:31.000000000 +0100
3161ff3
@@ -111,6 +111,33 @@ relay
7ebed4a
 .B -w
7ebed4a
 ]
7ebed4a
 [
7ebed4a
+.B -B
7ebed4a
+]
7ebed4a
+[
7ebed4a
+.B -I
7ebed4a
+.I dhcp-client-identifier
7ebed4a
+]
7ebed4a
+[
7ebed4a
+.B -H
7ebed4a
+.I host-name
7ebed4a
+]
7ebed4a
+[
7ebed4a
+.B -F
7ebed4a
+.I fqdn.fqdn
7ebed4a
+]
7ebed4a
+[
7ebed4a
+.B -V
7ebed4a
+.I vendor-class-identifier
7ebed4a
+]
7ebed4a
+[
7ebed4a
+.B -R
7ebed4a
+.I request-option-list
7ebed4a
+]
7ebed4a
+[
3161ff3
+.B -timeout
7ebed4a
+.I timeout
7ebed4a
+]
7ebed4a
+[
7ebed4a
 .B -v
7ebed4a
 ]
7ebed4a
 [
3161ff3
@@ -138,32 +165,6 @@ important details about the network to w
7ebed4a
 the location of a default router, the location of a name server, and
7ebed4a
 so on.
7ebed4a
 .PP
7ebed4a
-If given the -4 command line argument (default), dhclient will use the
7ebed4a
-DHCPv4 protocol to obtain an IPv4 address and configuration parameters.
7ebed4a
-.PP
7ebed4a
-If given the -6 command line argument, dhclient will use the DHCPv6
7ebed4a
-protocol to obtain whatever IPv6 addresses are available along with
3161ff3
-configuration parameters. But with
3161ff3
-.B -S
3161ff3
-it uses Information-request to get only (i.e., without address)
3161ff3
-stateless configuration parameters.
3161ff3
-.PP
3161ff3
-The default DHCPv6 behavior is modified too with
3161ff3
-.B -T
3161ff3
-which asks for IPv6 temporary addresses, one set per
3161ff3
-.B -T
3161ff3
-flag.
3161ff3
-.B -P
3161ff3
-enables the IPv6 prefix delegation.
3161ff3
-As temporary addresses or prefix delegation disables the normal
3161ff3
-address query,
3161ff3
-.B -N
3161ff3
-restores it. Note it is not recommended to mix queries of different types
3161ff3
-together, or even to share the lease file between them.
7ebed4a
-.PP
7ebed4a
-If given the --version command line argument, dhclient will print its
7ebed4a
-version number and exit.
7ebed4a
-.PP
7ebed4a
 On startup, dhclient reads the
7ebed4a
 .IR dhclient.conf
7ebed4a
 for configuration instructions.   It then gets a list of all the
3161ff3
@@ -217,141 +218,259 @@ file.   If interfaces are specified in t
7ebed4a
 only configure interfaces that are either specified in the
7ebed4a
 configuration file or on the command line, and will ignore all other
7ebed4a
 interfaces.
7ebed4a
-.PP
7ebed4a
-If the DHCP client should listen and transmit on a port other than the
7ebed4a
-standard (port 68), the
7ebed4a
-.B -p
7ebed4a
-flag may used.  It should be followed by the udp port number that
7ebed4a
-dhclient should use.  This is mostly useful for debugging purposes.
7ebed4a
-If a different port is specified for the client to listen on and
7ebed4a
-transmit on, the client will also use a different destination port -
3161ff3
-one less than the specified port.
7ebed4a
-.PP
7ebed4a
-The DHCP client normally transmits any protocol messages it sends
7ebed4a
-before acquiring an IP address to, 255.255.255.255, the IP limited
7ebed4a
-broadcast address.   For debugging purposes, it may be useful to have
7ebed4a
-the server transmit these messages to some other address.   This can
7ebed4a
-be specified with the 
7ebed4a
-.B -s
7ebed4a
-flag, followed by the IP address or domain name of the destination.
3161ff3
-This feature is not supported by DHCPv6.
7ebed4a
-.PP
7ebed4a
-For testing purposes, the giaddr field of all packets that the client
7ebed4a
-sends can be set using the
7ebed4a
-.B -g
7ebed4a
-flag, followed by the IP address to send.   This is only useful for testing,
7ebed4a
-and should not be expected to work in any consistent or useful way.
7ebed4a
-.PP
7ebed4a
-The DHCP client will normally run in the foreground until it has
7ebed4a
-configured an interface, and then will revert to running in the
7ebed4a
-background.   To run force dhclient to always run as a foreground
7ebed4a
-process, the
7ebed4a
-.B -d
7ebed4a
-flag should be specified.  This is useful when running the client
7ebed4a
-under a debugger, or when running it out of inittab on System V
7ebed4a
-systems.
7ebed4a
-.PP
7ebed4a
-The dhclient daemon creates its own environment when executing the
7ebed4a
-dhclient-script to do the grunt work of interface configuration.
7ebed4a
-To define extra environment variables and their values, use the
7ebed4a
-.B -e
7ebed4a
-flag, followed by the environment variable name and value assignment,
7ebed4a
-just as one would assign a variable in a shell.  Eg:
7ebed4a
-.B -e
7ebed4a
-.I IF_METRIC=1
7ebed4a
-.PP
7ebed4a
-The client normally prints no output during its startup sequence.  It
7ebed4a
-can be made to emit verbose messages displaying the startup sequence events
7ebed4a
-until it has acquired an address by supplying the
7ebed4a
-.B -v
7ebed4a
-command line argument.  In either case, the client logs messages using
7ebed4a
-the
7ebed4a
-.B syslog (3)
7ebed4a
-facility.  A
7ebed4a
-.B -q
7ebed4a
-command line argument is provided for backwards compatibility, but since
7ebed4a
-dhclient is quiet by default, it has no effect.
7ebed4a
-.PP
7ebed4a
-The client normally doesn't release the current lease as it is not
7ebed4a
-required by the DHCP protocol.  Some cable ISPs require their clients
7ebed4a
-to notify the server if they wish to release an assigned IP address.
3161ff3
-The
3161ff3
-.B -r
3161ff3
-flag explicitly releases the current lease, and once the lease has been
3161ff3
-released, the client exits.
3161ff3
-.PP
7ebed4a
+.SH OPTIONS
7ebed4a
+.TP
7ebed4a
+.BI \-4
7ebed4a
+Use the DHCPv4 protocol to obtain an IPv4 address and configuration
3161ff3
+parameters (default).
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-6
7ebed4a
+Use the DHCPv6 protocol to obtain whatever IPv6 addresses are available
3161ff3
+along with configuration parameters.  The functionality of DHCPv6 mode
3161ff3
+may be modified with the
3161ff3
+.BI \-S
3161ff3
+,
3161ff3
+.BI \-T
3161ff3
+, and
3161ff3
+.BI \-N
3161ff3
+options.
3161ff3
+
3161ff3
+.TP
3161ff3
+.BI \-S
3161ff3
+Perform an information-only request over DHCPv6 to get stateless
3161ff3
+configuration parameters.  It is not recommended to combine this option
3161ff3
+with the
3161ff3
+.BI \-N
3161ff3
+,
3161ff3
+.BI \-P
3161ff3
+, or
3161ff3
+.BI \-T
3161ff3
+options or to share lease files between different modes of operation.  Only
3161ff3
+valid with the
3161ff3
+.BI \-6
3161ff3
+option.
3161ff3
+
3161ff3
+.TP
3161ff3
+.BI \-N
3161ff3
+Perform a normal (IA_NA) address query over DHCPv6.  It is not recommended
3161ff3
+to combine this option with the
3161ff3
+.BI \-P
3161ff3
+,
3161ff3
+.BI \-S
3161ff3
+, or
3161ff3
+.BI \-T
3161ff3
+options or to share lease files between different modes of operation.  Only
3161ff3
+valid with the
3161ff3
+.BI \-6
3161ff3
+option.
3161ff3
+
3161ff3
+.TP
3161ff3
+.BI \-T
3161ff3
+Perform a temporary (IA_TA) address query over DHCPv6 (disables normal address
3161ff3
+query).  It is not recommended to combine this option with the
3161ff3
+.BI \-N
3161ff3
+,
3161ff3
+.BI \-P
3161ff3
+, or
3161ff3
+.BI \-S
3161ff3
+options or to share lease files between different modes of operation.  Only
3161ff3
+valid with the
3161ff3
+.BI \-6
3161ff3
+option.
3161ff3
+
3161ff3
+.TP
3161ff3
+.BI \-P
3161ff3
+Enable IPv6 prefix delegation (disables normal address query).  It is not
3161ff3
+not recommended to combine this option with the
3161ff3
+.BI \-N
3161ff3
+,
3161ff3
+.BI \-S
3161ff3
+, or
3161ff3
+.BI \-T
3161ff3
+options or to share lease files between different modes of operation.  Only
3161ff3
+valid with the
3161ff3
+.BI \-6
3161ff3
+option.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-p\ <port\ number>
7ebed4a
+The UDP port number the DHCP client should listen and transmit on.  If
7ebed4a
+unspecified,
7ebed4a
+.B dhclient
7ebed4a
+uses the default port 68.  This option is mostly useful for debugging
7ebed4a
+purposes.  If a different port is specified for the client to listen and
7ebed4a
+transmit on, the client will also use a different destination port - one
3161ff3
+less than the specified port.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-d
7ebed4a
+Force
7ebed4a
+.B dhclient
7ebed4a
+to run as a foreground process.  This is useful when running the client
7ebed4a
+under a debugger, or when running it out of inittab on System V systems.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-e\ VAR=value
7ebed4a
+Define additional environment variables for the environment where
3161ff3
+dhclient-script executes.  You may specify multiplate
7ebed4a
+.B \-e
3161ff3
+options on the command line.  For example:
3161ff3
+.B \-e IF_METRIC=1
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-q
7ebed4a
+Suppress all terminal and log output except error messages.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-1
3161ff3
+Try once to get a lease.  One failure, exit with code 2.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-r
7ebed4a
+Tell
7ebed4a
+.B dhclient
7ebed4a
+to release the current lease it has from the server.  This is not required
7ebed4a
+by the DHCP protocol, but some ISPs require their clients to notify the
7ebed4a
+server if they wish to release an assigned IP address.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-lf\ <lease-file>
7ebed4a
+Path to the lease database file.  If unspecified, the default
3161ff3
+.B DBDIR/dhclient.leases
7ebed4a
+is used.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-pf\ <pid-file>
7ebed4a
+Path to the process ID file.  If unspecified, the default
3161ff3
+.B RUNDIR/dhclient.pid
7ebed4a
+is used.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-cf\ <config-file>
7ebed4a
+Path to the client configuration file.  If unspecified, the default
3161ff3
+.B ETCDIR/dhclient.conf
7ebed4a
+is used.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-sf\ <script-file>
7ebed4a
+Path to the network configuration script invoked by
7ebed4a
+.B dhclient
7ebed4a
+when it gets a lease.  If unspecified, the default
0f9d5d3
+.B /sbin/dhclient-script
7ebed4a
+is used.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-s\ <server>
7ebed4a
+Specifiy the server IP address or fully qualified domain name to transmit
7ebed4a
+DHCP protocol messages to.  Normally,
7ebed4a
+.B dhclient
7ebed4a
+transmits these messages to 255.255.255.255 (the IP limited broadcast
7ebed4a
+address).  Overriding this is mostly useful for debugging purposes.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-g\ <relay>
7ebed4a
+Only for debugging.  Set the giaddr field of all packets the client
7ebed4a
+sends to the IP address specified.  This should not be expected to work
7ebed4a
+in any consistent or useful way.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-n
7ebed4a
+Do not configure any interfaces.  Most useful combined with the
7ebed4a
+.B -w
7ebed4a
+option.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-nw
7ebed4a
+Become a daemon process immediately (nowait) rather than waiting until an IP
7ebed4a
+address has been acquired.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-w
7ebed4a
+Keep running even if no network interfaces are found.  The
7ebed4a
+.B omshell
7ebed4a
+program can be used to notify the client when a network interface has been
7ebed4a
+added or removed so it can attempt to configure an IP address on that
7ebed4a
+interface.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-B
7ebed4a
+Set the BOOTP broadcast flag in request packets so servers will always
7ebed4a
+broadcast replies.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-I\ <dhcp-client-identifier>
7ebed4a
+Specify the dhcp-client-identifier option to send to the DHCP server.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-H\ <host-name>
7ebed4a
+Specify the host-name option to send to the DHCP server.  The host-name
7ebed4a
+string only contains the client's hostname prefix, to which the server will
7ebed4a
+append the ddns-domainname or domain-name options, if any, to derive the
7ebed4a
+fully qualified domain name of the client.  The
7ebed4a
+.B -H
7ebed4a
+option cannot be used with the
7ebed4a
+.B -F
7ebed4a
+option.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-F\ <fqdn.fqdn>
7ebed4a
+Specify the fqdn.fqdn option to send to the DHCP server.  This option cannot
7ebed4a
+be used with the
7ebed4a
+.B -H
7ebed4a
+option.  The fqdn.fqdn option must specify the complete domain name of the
7ebed4a
+client host, which the server may use for dynamic DNS updates.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-V\ <vendor-class-identifier>
7ebed4a
+Specify the vendor-class-identifier option to send to the DHCP server.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-R\ <option>[,<option>...]
7ebed4a
+Specify the list of options the client is to request from the server.  The
7ebed4a
+option list must be a single string consisting of option names separated
7ebed4a
+by at least one command and optional space characters.  The default option
7ebed4a
+list is:
7ebed4a
+
7ebed4a
+.BR
7ebed4a
+    subnet-mask, broadcast-address, time-offset, routers,
7ebed4a
+.BR
7ebed4a
+    domain-name, domain-name-servers, host-name, nis-domain,
7ebed4a
+.BR
7ebed4a
+    nis-servers, ntp-servers
7ebed4a
+
7ebed4a
 The
3161ff3
-.B -x
3161ff3
-flag tells any currently running client to exit gracefully without
3161ff3
-releasing leases first.
7ebed4a
+.B -R
7ebed4a
+option does not append options to the default request, it overrides the
7ebed4a
+default request list.  Keep this in mind if you want to request an
7ebed4a
+additional option besides the default request list.  You will have to
7ebed4a
+specify all option names for the
7ebed4a
+.B -R
7ebed4a
+parameter.
7ebed4a
+
7ebed4a
+.TP
3161ff3
+.BI \-timeout\ <timeout>
7ebed4a
+Specify the time after which
7ebed4a
+.B dhclient
7ebed4a
+will decide that no DHCP servers can be contacted when no responses have been
7ebed4a
+received.
7ebed4a
+
7ebed4a
+.TP
7ebed4a
+.BI \-v
7ebed4a
+Enable verbose log messages.
7ebed4a
+
7ebed4a
 .PP
3161ff3
-If the client is killed by a signal (for example at shutdown or reboot)
3161ff3
-it won't execute the
3161ff3
+If the client is killed by a signale (for example at shutdown or reboot), it
3161ff3
+will not execute the
3161ff3
 .B dhclient-script (8)
3161ff3
-at exit. However if you shut the client down gracefully with
3161ff3
-.B -r
3161ff3
+at exit.  However, if you shut the client down gracefully with
3161ff3
+.BI \-r
3161ff3
 or
3161ff3
-.B -x
3161ff3
+.BI \-x
7ebed4a
 it will execute
7ebed4a
 .B dhclient-script (8)
3161ff3
-at shutdown with the specific reason for calling the script set.
7ebed4a
-.PP
7ebed4a
-The
7ebed4a
-.B -1
7ebed4a
-flag will cause dhclient to try once to get a lease.  If it fails, dhclient
3161ff3
-exits with exit code two. In DHCPv6 the
3161ff3
-.B -1
3161ff3
-flag sets the max duration of the initial exchange to
3161ff3
-.I timeout
3161ff3
-(from
3161ff3
-.IR dhclient.conf ,
3161ff3
-default sixty seconds).
7ebed4a
-.PP
7ebed4a
-The DHCP client normally gets its configuration information from
7ebed4a
-.B ETCDIR/dhclient.conf,
7ebed4a
-its lease database from
7ebed4a
-.B DBDIR/dhclient.leases,
7ebed4a
-stores its process ID in a file called
7ebed4a
-.B RUNDIR/dhclient.pid,
7ebed4a
-and configures the network interface using
7ebed4a
-.B CLIENTBINDIR/dhclient-script
7ebed4a
-To specify different names and/or locations for these files, use the
7ebed4a
-.B -cf,
7ebed4a
-.B -lf,
7ebed4a
-.B -pf
7ebed4a
-and
7ebed4a
-.B -sf
7ebed4a
-flags, respectively, followed by the name of the file.   This can be
7ebed4a
-particularly useful if, for example,
7ebed4a
-.B DBDIR
7ebed4a
-or
7ebed4a
-.B RUNDIR
7ebed4a
-has not yet been mounted when the DHCP client is started.
7ebed4a
-.PP
7ebed4a
-The DHCP client normally exits if it isn't able to identify any
7ebed4a
-network interfaces to configure.   On laptop computers and other
7ebed4a
-computers with hot-swappable I/O buses, it is possible that a
7ebed4a
-broadcast interface may be added after system startup.   The
7ebed4a
-.B -w
7ebed4a
-flag can be used to cause the client not to exit when it doesn't find
7ebed4a
-any such interfaces.   The
7ebed4a
-.B omshell (1)
7ebed4a
-program can then be used to notify the client when a network interface
7ebed4a
-has been added or removed, so that the client can attempt to configure an IP
7ebed4a
-address on that interface.
7ebed4a
-.PP
7ebed4a
-The DHCP client can be directed not to attempt to configure any interfaces
7ebed4a
-using the
7ebed4a
-.B -n
7ebed4a
-flag.   This is most likely to be useful in combination with the
7ebed4a
-.B -w
7ebed4a
-flag.
7ebed4a
-.PP
7ebed4a
-The client can also be instructed to become a daemon immediately, rather
7ebed4a
-than waiting until it has acquired an IP address.   This can be done by
7ebed4a
-supplying the
7ebed4a
-.B -nw
7ebed4a
-flag.
3161ff3
+at shutdown with the specific reason for calling the script set in the
3161ff3
+environment table.
7ebed4a
 .SH CONFIGURATION
7ebed4a
 The syntax of the dhclient.conf(5) file is discussed separately.
7ebed4a
 .SH OMAPI
3161ff3
@@ -386,7 +505,7 @@ do a DHCPRELEASE.   To pause it, set its
0f9d5d3
 resume it, set its state attribute to 4.
0f9d5d3
 .PP
0f9d5d3
 .SH FILES
0f9d5d3
-.B CLIENTBINDIR/dhclient-script,
0f9d5d3
+.B /sbin/dhclient-script,
3161ff3
 .B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid,
3161ff3
 .B DBDIR/dhclient.leases~.
0f9d5d3
 .SH SEE ALSO
d3e04df
diff -up dhcp-4.1.1/client/dhclient.conf.5.man dhcp-4.1.1/client/dhclient.conf.5
d3e04df
--- dhcp-4.1.1/client/dhclient.conf.5.man	2009-07-23 21:02:09.000000000 +0200
d3e04df
+++ dhcp-4.1.1/client/dhclient.conf.5	2010-01-20 17:20:31.000000000 +0100
0f9d5d3
@@ -186,9 +186,9 @@ responding to the client send the client
0f9d5d3
 options.   Only the option names should be specified in the request
0f9d5d3
 statement - not option parameters.   By default, the DHCP server
0f9d5d3
 requests the subnet-mask, broadcast-address, time-offset, routers,
0f9d5d3
-domain-name, domain-name-servers and host-name options.  Note that if
0f9d5d3
-you enter a 'request' statement, you over-ride this default and these
0f9d5d3
-options will not be requested.
0f9d5d3
+domain-name, domain-name-servers host-name, nis-domain, nis-servers,
0f9d5d3
+and ntp-servers options.  Note that if you enter a 'request' statement,
0f9d5d3
+you over-ride this default and these options will not be requested.
0f9d5d3
 .PP
0f9d5d3
 In some cases, it may be desirable to send no parameter request list
0f9d5d3
 at all.   To do this, simply write the request statement but specify
d3e04df
@@ -659,6 +659,18 @@ database and will record the media type 
0f9d5d3
 Whenever the client tries to renew the lease, it will use that same
0f9d5d3
 media type.   The lease must expire before the client will go back to
0f9d5d3
 cycling through media types.
0f9d5d3
+.PP
0f9d5d3
+ \fBbootp-broadcast-always;\fR
0f9d5d3
+.PP
0f9d5d3
+The
0f9d5d3
+.B bootp-broadcast-always
0f9d5d3
+statement instructs dhclient to always set the bootp broadcast flag in
0f9d5d3
+request packets, so that servers will always broadcast replies.
0f9d5d3
+This is equivalent to supplying the dhclient -B argument, and has
0f9d5d3
+the same effect as specifying 'always-broadcast' in the server's dhcpd.conf.
0f9d5d3
+This option is provided as an extension to enable dhclient to work
0f9d5d3
+on IBM s390 Linux guests.
0f9d5d3
+.PP
0f9d5d3
 .SH SAMPLE
0f9d5d3
 The following configuration file is used on a laptop running NetBSD
0f9d5d3
 1.3.   The laptop has an IP alias of 192.5.5.213, and has one
d3e04df
@@ -680,12 +692,12 @@ interface "ep0" {
0f9d5d3
     send host-name "andare.fugue.com";
0f9d5d3
     send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
0f9d5d3
     send dhcp-lease-time 3600;
0f9d5d3
-    supersede domain-name "fugue.com rc.vix.com home.vix.com";
0f9d5d3
+    supersede domain-search "fugue.com rc.vix.com home.vix.com";
0f9d5d3
     prepend domain-name-servers 127.0.0.1;
0f9d5d3
     request subnet-mask, broadcast-address, time-offset, routers,
0f9d5d3
-	    domain-name, domain-name-servers, host-name;
0f9d5d3
+	    domain-search, domain-name, domain-name-servers, host-name;
0f9d5d3
     require subnet-mask, domain-name-servers;
0f9d5d3
-    script "CLIENTBINDIR/dhclient-script";
0f9d5d3
+    script "/sbin/dhclient-script";
0f9d5d3
     media "media 10baseT/UTP", "media 10base2/BNC";
0f9d5d3
 }
0f9d5d3
 
d3e04df
diff -up dhcp-4.1.1/client/dhclient-script.8.man dhcp-4.1.1/client/dhclient-script.8
d3e04df
--- dhcp-4.1.1/client/dhclient-script.8.man	2009-07-25 00:04:51.000000000 +0200
d3e04df
+++ dhcp-4.1.1/client/dhclient-script.8	2010-01-20 17:20:31.000000000 +0100
3161ff3
@@ -47,16 +47,16 @@ customizations are needed, they should b
3161ff3
 exit hooks provided (see HOOKS for details).   These hooks will allow the
3161ff3
 user to override the default behaviour of the client in creating a
3161ff3
 .B /etc/resolv.conf
3161ff3
-file.
3161ff3
+file, and to handle DHCP options not handled by default.
3161ff3
 .PP
3161ff3
 No standard client script exists for some operating systems, even though
3161ff3
 the actual client may work, so a pioneering user may well need to create
3161ff3
 a new script or modify an existing one.  In general, customizations specific
3161ff3
 to a particular computer should be done in the
3161ff3
-.B ETCDIR/dhclient.conf
3161ff3
+.B /usr/local/etc/dhclient.conf
3161ff3
 file.   If you find that you can't make such a customization without
3161ff3
 customizing
3161ff3
-.B ETCDIR/dhclient.conf
3161ff3
+.B /usr/local/etc/dhclient.conf
3161ff3
 or using the enter and exit hooks, please submit a bug report.
3161ff3
 .SH HOOKS
3161ff3
 When it starts, the client script first defines a shell function,
3161ff3
@@ -68,33 +68,53 @@ the enter hook script.
3161ff3
 .PP
3161ff3
 On after defining the make_resolv_conf function, the client script checks
3161ff3
 for the presence of an executable
3161ff3
-.B ETCDIR/dhclient-enter-hooks
3161ff3
+.B /usr/local/etc/dhclient-enter-hooks
3161ff3
 script, and if present, it invokes the script inline, using the Bourne
3161ff3
 shell '.' command.   The entire environment documented under OPERATION
3161ff3
 is available to this script, which may modify the environment if needed
3161ff3
 to change the behaviour of the script.   If an error occurs during the
3161ff3
 execution of the script, it can set the exit_status variable to a nonzero
3161ff3
 value, and
3161ff3
-.B CLIENTBINDIR/dhclient-script
3161ff3
+.B /sbin/dhclient-script
3161ff3
 will exit with that error code immediately after the client script exits.
3161ff3
 .PP
3161ff3
 After all processing has completed,
3161ff3
-.B CLIENTBINDIR/dhclient-script
3161ff3
+.B /sbin/dhclient-script
3161ff3
 checks for the presence of an executable
3161ff3
-.B ETCDIR/dhclient-exit-hooks
3161ff3
+.B /usr/local/etc/dhclient-exit-hooks
3161ff3
 script, which if present is invoked using the '.' command.  The exit
3161ff3
 status of dhclient-script will be passed to dhclient-exit-hooks in the
3161ff3
 exit_status shell variable, and will always be zero if the script
3161ff3
 succeeded at the task for which it was invoked.   The rest of the
3161ff3
 environment as described previously for dhclient-enter-hooks is also
3161ff3
 present.   The
3161ff3
-.B ETCDIR/dhclient-exit-hooks
3161ff3
+.B /usr/local/etc/dhclient-exit-hooks
3161ff3
 script can modify the valid of exit_status to change the exit status
3161ff3
 of dhclient-script.
3161ff3
+.PP
3161ff3
+Immediately after dhclient brings an interface UP with a new IP address,
3161ff3
+subnet mask, and routes, in the REBOOT/BOUND states, it will check for the
3161ff3
+existence of an executable
3161ff3
+.B /usr/local/etc/dhclient-up-hooks
3161ff3
+script, and source it if found. This script can handle DHCP options in
3161ff3
+the environment that are not handled by default. A per-interface.
3161ff3
+.B /usr/local/etc/dhclient-${IF}-up-hooks
3161ff3
+script will override the generic script and be sourced when interface
3161ff3
+$IF has been brought up.
3161ff3
+.PP
3161ff3
+Immediately before dhclient brings an interface DOWN, removing its IP
3161ff3
+address, subnet mask, and routes, in the STOP/RELEASE  states, it will
3161ff3
+check for the existence of an executable
3161ff3
+.B /usr/local/etc/dhclient-down-hooks
3161ff3
+script, and source it if found. This script can handle DHCP options in
3161ff3
+the environment that are not handled by default. A per-interface
3161ff3
+.B /usr/local/etc/dhclient-${IF}-down-hooks
3161ff3
+script will override the generic script and be sourced when interface
3161ff3
+$IF is about to be brought down.
3161ff3
 .SH OPERATION
3161ff3
 When dhclient needs to invoke the client configuration script, it
3161ff3
 defines a set of variables in the environment, and then invokes
3161ff3
-.B CLIENTBINDIR/dhclient-script.
3161ff3
+.B /sbin/dhclient-script.
3161ff3
 In all cases, $reason is set to the name of the reason why the script
3161ff3
 has been invoked.   The following reasons are currently defined:
3161ff3
 MEDIUM, PREINIT, BOUND, RENEW, REBIND, REBOOT, EXPIRE, FAIL, STOP, RELEASE,
d3e04df
diff -up dhcp-4.1.1/common/dhcp-options.5.man dhcp-4.1.1/common/dhcp-options.5
d3e04df
--- dhcp-4.1.1/common/dhcp-options.5.man	2009-07-25 00:04:52.000000000 +0200
d3e04df
+++ dhcp-4.1.1/common/dhcp-options.5	2010-01-20 17:20:31.000000000 +0100
3161ff3
@@ -905,6 +905,21 @@ classless IP routing - it does not inclu
0f9d5d3
 classless IP routing is now the most widely deployed routing standard,
0f9d5d3
 this option is virtually useless, and is not implemented by any of the
0f9d5d3
 popular DHCP clients, for example the Microsoft DHCP client.
0f9d5d3
+.PP
0f9d5d3
+NOTE to Fedora dhclient users:
0f9d5d3
+.br
0f9d5d3
+dhclient-script interprets trailing 0 octets of the target as indicating
0f9d5d3
+the subnet class of the route, so for the following static-routes value:
0f9d5d3
+.br
0f9d5d3
+        option static-routes 172.0.0.0 172.16.2.254,
0f9d5d3
+.br
0f9d5d3
+                             192.168.0.0 192.168.2.254;
0f9d5d3
+.br
0f9d5d3
+dhclient-script will create routes:
0f9d5d3
+.br
0f9d5d3
+        172/8 via 172.16.2.254 dev $interface
0f9d5d3
+.br
0f9d5d3
+        192.168/16 via 192.168.2.254 dev $interface
0f9d5d3
 .RE
0f9d5d3
 .PP
0f9d5d3
 .nf
d3e04df
diff -up dhcp-4.1.1/server/dhcpd.conf.5.man dhcp-4.1.1/server/dhcpd.conf.5
d3e04df
--- dhcp-4.1.1/server/dhcpd.conf.5.man	2009-07-23 21:02:10.000000000 +0200
d3e04df
+++ dhcp-4.1.1/server/dhcpd.conf.5	2010-01-20 17:20:31.000000000 +0100
3161ff3
@@ -519,6 +519,9 @@ pool {
0f9d5d3
 };
0f9d5d3
 .fi
0f9d5d3
 .PP
0f9d5d3
+Dynamic BOOTP leases are not compatible with failover, and, as such,
0f9d5d3
+you need to disallow BOOTP in pools that you are using failover for.
0f9d5d3
+.PP
0f9d5d3
 The  server currently  does very  little  sanity checking,  so if  you
0f9d5d3
 configure it wrong, it will just  fail in odd ways.  I would recommend
0f9d5d3
 therefore that you either do  failover or don't do failover, but don't
3161ff3
@@ -533,9 +536,9 @@ primary server might look like this:
0f9d5d3
 failover peer "foo" {
0f9d5d3
   primary;
0f9d5d3
   address anthrax.rc.vix.com;
0f9d5d3
-  port 519;
0f9d5d3
+  port 647;
0f9d5d3
   peer address trantor.rc.vix.com;
0f9d5d3
-  peer port 520;
0f9d5d3
+  peer port 847;
0f9d5d3
   max-response-delay 60;
0f9d5d3
   max-unacked-updates 10;
0f9d5d3
   mclt 3600;
3161ff3
@@ -594,9 +597,7 @@ statement
0f9d5d3
 .B port \fIport-number\fR\fB;\fR
0f9d5d3
 .PP
0f9d5d3
 The \fBport\fR statement declares the TCP port on which the server
0f9d5d3
-should listen for connections from its failover peer.   This statement
0f9d5d3
-may not currently be omitted, because the failover protocol does not
0f9d5d3
-yet have a reserved TCP port number.
0f9d5d3
+should listen for connections from its failover peer.
0f9d5d3
 .RE
0f9d5d3
 .PP
0f9d5d3
 The 
3161ff3
@@ -608,10 +609,8 @@ statement
0f9d5d3
 .PP
0f9d5d3
 The \fBpeer port\fR statement declares the TCP port to which the
0f9d5d3
 server should connect to reach its failover peer for failover
0f9d5d3
-messages.   This statement may not be omitted because the failover
0f9d5d3
-protocol does not yet have a reserved TCP port number.   The port
0f9d5d3
-number declared in the \fBpeer port\fR statement may be the same as
0f9d5d3
-the port number declared in the \fBport\fR statement.
0f9d5d3
+messages.  The port number declared in the \fBpeer port\fR statement
0f9d5d3
+may be the same as the port number declared in the \fBport\fR statement.
0f9d5d3
 .RE
0f9d5d3
 .PP
0f9d5d3
 The
3161ff3
@@ -1278,7 +1277,7 @@ the zone containing PTR records - for IS
0f9d5d3
 .PP
0f9d5d3
 .nf
0f9d5d3
 key DHCP_UPDATER {
0f9d5d3
-  algorithm HMAC-MD5.SIG-ALG.REG.INT;
0f9d5d3
+  algorithm hmac-md5;
0f9d5d3
   secret pRP5FapFoJ95JEL06sv4PQ==;
0f9d5d3
 };
0f9d5d3
 
3161ff3
@@ -1301,7 +1300,7 @@ dhcpd.conf file:
0f9d5d3
 .PP
0f9d5d3
 .nf
0f9d5d3
 key DHCP_UPDATER {
0f9d5d3
-  algorithm HMAC-MD5.SIG-ALG.REG.INT;
0f9d5d3
+  algorithm hmac-md5;
0f9d5d3
   secret pRP5FapFoJ95JEL06sv4PQ==;
0f9d5d3
 };
0f9d5d3
 
d3e04df
@@ -2315,7 +2314,7 @@ statement
0f9d5d3
 .PP
0f9d5d3
 .I Name
0f9d5d3
 should be the name of the DHCP server's lease file.   By default, this
0f9d5d3
-is DBDIR/dhcpd.leases.   This statement \fBmust\fR appear in the outer
0f9d5d3
+is /private/var/db/dhcpd/dhcpd.leases.   This statement \fBmust\fR appear in the outer
0f9d5d3
 scope of the configuration file - if it appears in some other scope,
0f9d5d3
 it will have no effect.  Furthermore, it has no effect if overridden
0f9d5d3
 by the
d3e04df
@@ -2350,7 +2349,7 @@ statement
0f9d5d3
 .PP
0f9d5d3
 .I Name
0f9d5d3
 is the name of the lease file to use if and only if the server is running
0f9d5d3
-in DHCPv6 mode.  By default, this is DBDIR/dhcpd6.leases.  This statement,
0f9d5d3
+in DHCPv6 mode.  By default, this is /private/var/db/dhcpd/dhcpd6.leases.  This statement,
0f9d5d3
 like
0f9d5d3
 .I lease-file-name,
0f9d5d3
 \fBmust\fR appear in the outer scope of the configuration file.  It
d3e04df
@@ -2508,7 +2507,8 @@ statement
0f9d5d3
 The \fInext-server\fR statement is used to specify the host address of
0f9d5d3
 the server from which the initial boot file (specified in the
0f9d5d3
 \fIfilename\fR statement) is to be loaded.   \fIServer-name\fR should
0f9d5d3
-be a numeric IP address or a domain name.
0f9d5d3
+be a numeric IP address or a domain name.  If no \fInext-server\fR statement
0f9d5d3
+applies to a given client, the address 0.0.0.0 is used.
0f9d5d3
 .RE
0f9d5d3
 .PP
0f9d5d3
 The
d3e04df
@@ -2553,7 +2553,7 @@ statement
0f9d5d3
 .I Name
0f9d5d3
 should be the name of the DHCP server's process ID file.   This is the
0f9d5d3
 file in which the DHCP server's process ID is stored when the server
0f9d5d3
-starts.   By default, this is RUNDIR/dhcpd.pid.   Like the
0f9d5d3
+starts.   By default, this is /private/var/run/dhcpd.pid.   Like the
0f9d5d3
 .I lease-file-name
0f9d5d3
 statement, this statement must appear in the outer scope
0f9d5d3
 of the configuration file.  It has no effect if overridden by the
d3e04df
@@ -2571,7 +2571,7 @@ statement
0f9d5d3
 .PP
0f9d5d3
 .I Name
0f9d5d3
 is the name of the pid file to use if and only if the server is running
0f9d5d3
-in DHCPv6 mode.  By default, this is DBDIR/dhcpd6.pid.  This statement,
0f9d5d3
+in DHCPv6 mode.  By default, this is /private/var/db/dhcpd/dhcpd6.pid.  This statement,
0f9d5d3
 like
0f9d5d3
 .I pid-file-name,
0f9d5d3
 \fBmust\fR appear in the outer scope of the configuration file.  It