82186fd
diff -up dhcp-4.0.0/server/dhcpd.conf.5.manpages dhcp-4.0.0/server/dhcpd.conf.5
82186fd
--- dhcp-4.0.0/server/dhcpd.conf.5.manpages	2007-11-20 08:34:37.000000000 -1000
82186fd
+++ dhcp-4.0.0/server/dhcpd.conf.5	2008-01-02 11:26:38.000000000 -1000
82186fd
@@ -513,6 +513,9 @@ pool {
82186fd
 };
82186fd
 .fi
82186fd
 .PP
82186fd
+Dynamic BOOTP leases are not compatible with failover, and, as such,
82186fd
+you need to disallow BOOTP in pools that you are using failover for.
82186fd
+.PP
82186fd
 The  server currently  does very  little  sanity checking,  so if  you
82186fd
 configure it wrong, it will just  fail in odd ways.  I would recommend
82186fd
 therefore that you either do  failover or don't do failover, but don't
82186fd
@@ -527,9 +530,9 @@ primary server might look like this:
82186fd
 failover peer "foo" {
82186fd
   primary;
82186fd
   address anthrax.rc.vix.com;
82186fd
-  port 519;
82186fd
+  port 647;
82186fd
   peer address trantor.rc.vix.com;
82186fd
-  peer port 520;
82186fd
+  peer port 847;
82186fd
   max-response-delay 60;
82186fd
   max-unacked-updates 10;
82186fd
   mclt 3600;
82186fd
@@ -588,9 +591,7 @@ statement
82186fd
 .B port \fIport-number\fR\fB;\fR
82186fd
 .PP
82186fd
 The \fBport\fR statement declares the TCP port on which the server
82186fd
-should listen for connections from its failover peer.   This statement
82186fd
-may not currently be omitted, because the failover protocol does not
82186fd
-yet have a reserved TCP port number.
82186fd
+should listen for connections from its failover peer.
82186fd
 .RE
82186fd
 .PP
82186fd
 The 
82186fd
@@ -602,10 +603,8 @@ statement
82186fd
 .PP
82186fd
 The \fBpeer port\fR statement declares the TCP port to which the
82186fd
 server should connect to reach its failover peer for failover
82186fd
-messages.   This statement may not be omitted because the failover
82186fd
-protocol does not yet have a reserved TCP port number.   The port
82186fd
-number declared in the \fBpeer port\fR statement may be the same as
82186fd
-the port number declared in the \fBport\fR statement.
82186fd
+messages.  The port number declared in the \fBpeer port\fR statement
82186fd
+may be the same as the port number declared in the \fBport\fR statement.
82186fd
 .RE
82186fd
 .PP
82186fd
 The
82186fd
@@ -1272,7 +1271,7 @@ the zone containing PTR records - for IS
82186fd
 .PP
82186fd
 .nf
82186fd
 key DHCP_UPDATER {
82186fd
-  algorithm HMAC-MD5.SIG-ALG.REG.INT;
82186fd
+  algorithm hmac-md5;
82186fd
   secret pRP5FapFoJ95JEL06sv4PQ==;
82186fd
 };
82186fd
 
82186fd
@@ -1295,7 +1294,7 @@ dhcpd.conf file:
82186fd
 .PP
82186fd
 .nf
82186fd
 key DHCP_UPDATER {
82186fd
-  algorithm HMAC-MD5.SIG-ALG.REG.INT;
82186fd
+  algorithm hmac-md5;
82186fd
   secret pRP5FapFoJ95JEL06sv4PQ==;
82186fd
 };
82186fd
 
82186fd
@@ -2433,7 +2432,8 @@ statement
82186fd
 The \fInext-server\fR statement is used to specify the host address of
82186fd
 the server from which the initial boot file (specified in the
82186fd
 \fIfilename\fR statement) is to be loaded.   \fIServer-name\fR should
82186fd
-be a numeric IP address or a domain name.
82186fd
+be a numeric IP address or a domain name.  If no \fInext-server\fR statement
82186fd
+applies to a given client, the address 0.0.0.0 is used.
82186fd
 .RE
82186fd
 .PP
82186fd
 The
82186fd
diff -up dhcp-4.0.0/common/dhcp-options.5.manpages dhcp-4.0.0/common/dhcp-options.5
82186fd
--- dhcp-4.0.0/common/dhcp-options.5.manpages	2007-09-17 07:52:01.000000000 -1000
82186fd
+++ dhcp-4.0.0/common/dhcp-options.5	2008-01-02 11:26:38.000000000 -1000
82186fd
@@ -896,6 +896,21 @@ classless IP routing - it does not inclu
82186fd
 classless IP routing is now the most widely deployed routing standard,
82186fd
 this option is virtually useless, and is not implemented by any of the
82186fd
 popular DHCP clients, for example the Microsoft DHCP client.
82186fd
+.PP
82186fd
+NOTE to @PRODUCTNAME@ dhclient users:
82186fd
+.br
82186fd
+dhclient-script interprets trailing 0 octets of the target as indicating
82186fd
+the subnet class of the route, so for the following static-routes value:
82186fd
+.br
82186fd
+        option static-routes 172.0.0.0 172.16.2.254,
82186fd
+.br
82186fd
+                             192.168.0.0 192.168.2.254;
82186fd
+.br
82186fd
+dhclient-script will create routes:
82186fd
+.br
82186fd
+        172/8 via 172.16.2.254 dev $interface
82186fd
+.br
82186fd
+        192.168/16 via 192.168.2.254 dev $interface
82186fd
 .RE
82186fd
 .PP
82186fd
 .nf
82186fd
diff -up dhcp-4.0.0/client/dhclient-script.8.manpages dhcp-4.0.0/client/dhclient-script.8
82186fd
--- dhcp-4.0.0/client/dhclient-script.8.manpages	2006-02-24 13:16:27.000000000 -1000
82186fd
+++ dhcp-4.0.0/client/dhclient-script.8	2008-01-02 11:26:38.000000000 -1000
82186fd
@@ -47,7 +47,7 @@ customizations are needed, they should b
82186fd
 exit hooks provided (see HOOKS for details).   These hooks will allow the
82186fd
 user to override the default behaviour of the client in creating a
82186fd
 .B /etc/resolv.conf
82186fd
-file.
82186fd
+file, and to handle DHCP options not handled by default.
82186fd
 .PP
82186fd
 No standard client script exists for some operating systems, even though
82186fd
 the actual client may work, so a pioneering user may well need to create
82186fd
@@ -91,6 +91,26 @@ present.   The
82186fd
 .B ETCDIR/dhclient-exit-hooks
82186fd
 script can modify the valid of exit_status to change the exit status
82186fd
 of dhclient-script.
82186fd
+.PP
82186fd
+Immediately after dhclient brings an interface UP with a new IP address,
82186fd
+subnet mask, and routes, in the REBOOT/BOUND states, it will check for the
82186fd
+existence of an executable
82186fd
+.B ETCDIR/dhclient-up-hooks
82186fd
+script, and source it if found. This script can handle DHCP options in
82186fd
+the environment that are not handled by default. A per-interface.
82186fd
+.B ETCDIR/dhclient-${IF}-up-hooks
82186fd
+script will override the generic script and be sourced when interface
82186fd
+$IF has been brought up.
82186fd
+.PP
82186fd
+Immediately before dhclient brings an interface DOWN, removing its IP
82186fd
+address, subnet mask, and routes, in the STOP/RELEASE  states, it will
82186fd
+check for the existence of an executable
82186fd
+.B ETCDIR/dhclient-down-hooks
82186fd
+script, and source it if found. This script can handle DHCP options in
82186fd
+the environment that are not handled by default. A per-interface
82186fd
+.B ETCDIR/dhclient-${IF}-down-hooks
82186fd
+script will override the generic script and be sourced when interface
82186fd
+$IF is about to be brought down.
82186fd
 .SH OPERATION
82186fd
 When dhclient needs to invoke the client configuration script, it
82186fd
 defines a set of variables in the environment, and then invokes
82186fd
diff -up dhcp-4.0.0/client/dhclient.conf.5.manpages dhcp-4.0.0/client/dhclient.conf.5
82186fd
--- dhcp-4.0.0/client/dhclient.conf.5.manpages	2007-08-23 06:06:08.000000000 -1000
82186fd
+++ dhcp-4.0.0/client/dhclient.conf.5	2008-01-02 11:26:38.000000000 -1000
82186fd
@@ -186,9 +186,9 @@ responding to the client send the client
82186fd
 options.   Only the option names should be specified in the request
82186fd
 statement - not option parameters.   By default, the DHCP server
82186fd
 requests the subnet-mask, broadcast-address, time-offset, routers,
82186fd
-domain-name, domain-name-servers and host-name options.  Note that if
82186fd
-you enter a 'request' statement, you over-ride this default and these
82186fd
-options will not be requested.
82186fd
+domain-name, domain-name-servers host-name, nis-domain, nis-servers,
82186fd
+and ntp-servers options.  Note that if you enter a 'request' statement,
82186fd
+you over-ride this default and these options will not be requested.
82186fd
 .PP
82186fd
 In some cases, it may be desirable to send no parameter request list
82186fd
 at all.   To do this, simply write the request statement but specify
82186fd
@@ -626,6 +626,18 @@ database and will record the media type 
82186fd
 Whenever the client tries to renew the lease, it will use that same
82186fd
 media type.   The lease must expire before the client will go back to
82186fd
 cycling through media types.
82186fd
+.PP
82186fd
+ \fBbootp-broadcast-always;\fR
82186fd
+.PP
82186fd
+The
82186fd
+.B bootp-broadcast-always
82186fd
+statement instructs dhclient to always set the bootp broadcast flag in
82186fd
+request packets, so that servers will always broadcast replies.
82186fd
+This is equivalent to supplying the dhclient -B argument, and has
82186fd
+the same effect as specifying 'always-broadcast' in the server's dhcpd.conf.
82186fd
+This option is provided as an extension to enable dhclient to work
82186fd
+on IBM s390 Linux guests.
82186fd
+.PP
82186fd
 .SH SAMPLE
82186fd
 The following configuration file is used on a laptop running NetBSD
82186fd
 1.3.   The laptop has an IP alias of 192.5.5.213, and has one
82186fd
diff -up dhcp-4.0.0/client/dhclient.8.manpages dhcp-4.0.0/client/dhclient.8
82186fd
--- dhcp-4.0.0/client/dhclient.8.manpages	2007-10-04 07:13:25.000000000 -1000
82186fd
+++ dhcp-4.0.0/client/dhclient.8	2008-01-02 11:26:38.000000000 -1000
82186fd
@@ -91,6 +91,33 @@ relay
82186fd
 .B -w
82186fd
 ]
82186fd
 [
82186fd
+.B -B
82186fd
+]
82186fd
+[
82186fd
+.B -I
82186fd
+.I dhcp-client-identifier
82186fd
+]
82186fd
+[
82186fd
+.B -H
82186fd
+.I host-name
82186fd
+]
82186fd
+[
82186fd
+.B -F
82186fd
+.I fqdn.fqdn
82186fd
+]
82186fd
+[
82186fd
+.B -V
82186fd
+.I vendor-class-identifier
82186fd
+]
82186fd
+[
82186fd
+.B -R
82186fd
+.I request-option-list
82186fd
+]
82186fd
+[
82186fd
+.B -T
82186fd
+.I timeout
82186fd
+]
82186fd
+[
82186fd
 .B -v
82186fd
 ]
82186fd
 [
82186fd
@@ -118,16 +145,6 @@ important details about the network to w
82186fd
 the location of a default router, the location of a name server, and
82186fd
 so on.
82186fd
 .PP
82186fd
-If given the -4 command line argument (default), dhclient will use the
82186fd
-DHCPv4 protocol to obtain an IPv4 address and configuration parameters.
82186fd
-.PP
82186fd
-If given the -6 command line argument, dhclient will use the DHCPv6
82186fd
-protocol to obtain whatever IPv6 addresses are available along with
82186fd
-configuration parameters.  Information-request is not yet supported.
82186fd
-.PP
82186fd
-If given the --version command line argument, dhclient will print its
82186fd
-version number and exit.
82186fd
-.PP
82186fd
 On startup, dhclient reads the
82186fd
 .IR dhclient.conf
82186fd
 for configuration instructions.   It then gets a list of all the
82186fd
@@ -181,67 +198,183 @@ file.   If interfaces are specified in t
82186fd
 only configure interfaces that are either specified in the
82186fd
 configuration file or on the command line, and will ignore all other
82186fd
 interfaces.
82186fd
-.PP
82186fd
-If the DHCP client should listen and transmit on a port other than the
82186fd
-standard (port 68), the
82186fd
-.B -p
82186fd
-flag may used.  It should be followed by the udp port number that
82186fd
-dhclient should use.  This is mostly useful for debugging purposes.
82186fd
-If a different port is specified for the client to listen on and
82186fd
-transmit on, the client will also use a different destination port -
82186fd
-one greater than the specified destination port.
82186fd
-.PP
82186fd
-The DHCP client normally transmits any protocol messages it sends
82186fd
-before acquiring an IP address to, 255.255.255.255, the IP limited
82186fd
-broadcast address.   For debugging purposes, it may be useful to have
82186fd
-the server transmit these messages to some other address.   This can
82186fd
-be specified with the 
82186fd
-.B -s
82186fd
-flag, followed by the IP address or domain name of the destination.
82186fd
-.PP
82186fd
-For testing purposes, the giaddr field of all packets that the client
82186fd
-sends can be set using the
82186fd
-.B -g
82186fd
-flag, followed by the IP address to send.   This is only useful for testing,
82186fd
-and should not be expected to work in any consistent or useful way.
82186fd
-.PP
82186fd
-The DHCP client will normally run in the foreground until it has
82186fd
-configured an interface, and then will revert to running in the
82186fd
-background.   To run force dhclient to always run as a foreground
82186fd
-process, the
82186fd
-.B -d
82186fd
-flag should be specified.  This is useful when running the client
82186fd
-under a debugger, or when running it out of inittab on System V
82186fd
-systems.
82186fd
-.PP
82186fd
-The dhclient daemon creates its own environment when executing the
82186fd
-dhclient-script to do the grunt work of interface configuration.
82186fd
-To define extra environment variables and their values, use the
82186fd
-.B -e
82186fd
-flag, followed by the environment variable name and value assignment,
82186fd
-just as one would assign a variable in a shell.  Eg:
82186fd
-.B -e
82186fd
-.I IF_METRIC=1
82186fd
-.PP
82186fd
-The client normally prints no output during its startup sequence.  It
82186fd
-can be made to emit verbose messages displaying the startup sequence events
82186fd
-until it has acquired an address by supplying the
82186fd
-.B -v
82186fd
-command line argument.  In either case, the client logs messages using
82186fd
-the
82186fd
-.B syslog (3)
82186fd
-facility.  A
82186fd
-.B -q
82186fd
-command line argument is provided for backwards compatibility, but since
82186fd
-dhclient is quiet by default, it has no effect.
82186fd
-.PP
82186fd
-The client normally doesn't release the current lease as it is not
82186fd
-required by the DHCP protocol.  Some cable ISPs require their clients
82186fd
-to notify the server if they wish to release an assigned IP address.
82186fd
+.SH OPTIONS
82186fd
+.TP
82186fd
+.BI \-4
82186fd
+Use the DHCPv4 protocol to obtain an IPv4 address and configuration
82186fd
+parameters.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-6
82186fd
+Use the DHCPv6 protocol to obtain whatever IPv6 addresses are available
82186fd
+along with configuration parameters.  Information-request is not yet
82186fd
+supported.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-p\ <port\ number>
82186fd
+The UDP port number the DHCP client should listen and transmit on.  If
82186fd
+unspecified,
82186fd
+.B dhclient
82186fd
+uses the default port 68.  This option is mostly useful for debugging
82186fd
+purposes.  If a different port is specified for the client to listen and
82186fd
+transmit on, the client will also use a different destination port - one
82186fd
+greater than the specified destination port.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-d
82186fd
+Force
82186fd
+.B dhclient
82186fd
+to run as a foreground process.  This is useful when running the client
82186fd
+under a debugger, or when running it out of inittab on System V systems.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-e\ VAR=value
82186fd
+Define additional environment variables for the environment where
82186fd
+dhclient-script executes.  You may specify multiple
82186fd
+.B \-e
82186fd
+options on the command line.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-q
82186fd
+Suppress all terminal and log output except error messages.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-1
82186fd
+Try one to get a lease.  On failure, exit with code 2.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-r
82186fd
+Tell
82186fd
+.B dhclient
82186fd
+to release the current lease it has from the server.  This is not required
82186fd
+by the DHCP protocol, but some ISPs require their clients to notify the
82186fd
+server if they wish to release an assigned IP address.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-lf\ <lease-file>
82186fd
+Path to the lease database file.  If unspecified, the default
82186fd
+.B DBDIR/dhclient.leases
82186fd
+is used.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-pf\ <pid-file>
82186fd
+Path to the process ID file.  If unspecified, the default
82186fd
+.B RUNDIR/dhclient.pid
82186fd
+is used.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-cf\ <config-file>
82186fd
+Path to the client configuration file.  If unspecified, the default
82186fd
+.B ETCDIR/dhclient.conf
82186fd
+is used.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-sf\ <script-file>
82186fd
+Path to the network configuration script invoked by
82186fd
+.B dhclient
82186fd
+when it gets a lease.  If unspecified, the default
82186fd
+.B CLIENTBINDIR/dhclient-script
82186fd
+is used.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-s\ <server>
82186fd
+Specifiy the server IP address or fully qualified domain name to transmit
82186fd
+DHCP protocol messages to.  Normally,
82186fd
+.B dhclient
82186fd
+transmits these messages to 255.255.255.255 (the IP limited broadcast
82186fd
+address).  Overriding this is mostly useful for debugging purposes.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-g\ <relay>
82186fd
+Only for debugging.  Set the giaddr field of all packets the client
82186fd
+sends to the IP address specified.  This should not be expected to work
82186fd
+in any consistent or useful way.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-n
82186fd
+Do not configure any interfaces.  Most useful combined with the
82186fd
+.B -w
82186fd
+option.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-nw
82186fd
+Become a daemon process immediately (nowait) rather than waiting until an IP
82186fd
+address has been acquired.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-w
82186fd
+Keep running even if no network interfaces are found.  The
82186fd
+.B omshell
82186fd
+program can be used to notify the client when a network interface has been
82186fd
+added or removed so it can attempt to configure an IP address on that
82186fd
+interface.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-B
82186fd
+Set the BOOTP broadcast flag in request packets so servers will always
82186fd
+broadcast replies.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-I\ <dhcp-client-identifier>
82186fd
+Specify the dhcp-client-identifier option to send to the DHCP server.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-H\ <host-name>
82186fd
+Specify the host-name option to send to the DHCP server.  The host-name
82186fd
+string only contains the client's hostname prefix, to which the server will
82186fd
+append the ddns-domainname or domain-name options, if any, to derive the
82186fd
+fully qualified domain name of the client.  The
82186fd
+.B -H
82186fd
+option cannot be used with the
82186fd
+.B -F
82186fd
+option.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-F\ <fqdn.fqdn>
82186fd
+Specify the fqdn.fqdn option to send to the DHCP server.  This option cannot
82186fd
+be used with the
82186fd
+.B -H
82186fd
+option.  The fqdn.fqdn option must specify the complete domain name of the
82186fd
+client host, which the server may use for dynamic DNS updates.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-V\ <vendor-class-identifier>
82186fd
+Specify the vendor-class-identifier option to send to the DHCP server.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-R\ <option>[,<option>...]
82186fd
+Specify the list of options the client is to request from the server.  The
82186fd
+option list must be a single string consisting of option names separated
82186fd
+by at least one command and optional space characters.  The default option
82186fd
+list is:
82186fd
+
82186fd
+.BR
82186fd
+    subnet-mask, broadcast-address, time-offset, routers,
82186fd
+.BR
82186fd
+    domain-name, domain-name-servers, host-name, nis-domain,
82186fd
+.BR
82186fd
+    nis-servers, ntp-servers
82186fd
+
82186fd
 The
82186fd
-.B -r
82186fd
-flag explicitly releases the current lease, and once the lease has been
82186fd
-released, the client exits.
82186fd
+.B -R
82186fd
+option does not append options to the default request, it overrides the
82186fd
+default request list.  Keep this in mind if you want to request an
82186fd
+additional option besides the default request list.  You will have to
82186fd
+specify all option names for the
82186fd
+.B -R
82186fd
+parameter.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-T\ <timeout>
82186fd
+Specify the time after which
82186fd
+.B dhclient
82186fd
+will decide that no DHCP servers can be contacted when no responses have been
82186fd
+received.
82186fd
+
82186fd
+.TP
82186fd
+.BI \-v
82186fd
+Enable verbose log messages.
82186fd
+
82186fd
 .PP
82186fd
 If the client is killed by a signal (for example at shutdown or reboot)
82186fd
 it won't execute the
82186fd
@@ -253,57 +386,7 @@ or
82186fd
 it will execute
82186fd
 .B dhclient-script (8)
82186fd
 at shutdown with the specific reason for calling the script set.
82186fd
-.PP
82186fd
-The
82186fd
-.B -1
82186fd
-flag will cause dhclient to try once to get a lease.  If it fails, dhclient
82186fd
-exits with exit code two.
82186fd
-.PP
82186fd
-The DHCP client normally gets its configuration information from
82186fd
-.B ETCDIR/dhclient.conf,
82186fd
-its lease database from
82186fd
-.B DBDIR/dhclient.leases,
82186fd
-stores its process ID in a file called
82186fd
-.B RUNDIR/dhclient.pid,
82186fd
-and configures the network interface using
82186fd
-.B CLIENTBINDIR/dhclient-script
82186fd
-To specify different names and/or locations for these files, use the
82186fd
-.B -cf,
82186fd
-.B -lf,
82186fd
-.B -pf
82186fd
-and
82186fd
-.B -sf
82186fd
-flags, respectively, followed by the name of the file.   This can be
82186fd
-particularly useful if, for example,
82186fd
-.B DBDIR
82186fd
-or
82186fd
-.B RUNDIR
82186fd
-has not yet been mounted when the DHCP client is started.
82186fd
-.PP
82186fd
-The DHCP client normally exits if it isn't able to identify any
82186fd
-network interfaces to configure.   On laptop computers and other
82186fd
-computers with hot-swappable I/O buses, it is possible that a
82186fd
-broadcast interface may be added after system startup.   The
82186fd
-.B -w
82186fd
-flag can be used to cause the client not to exit when it doesn't find
82186fd
-any such interfaces.   The
82186fd
-.B omshell (1)
82186fd
-program can then be used to notify the client when a network interface
82186fd
-has been added or removed, so that the client can attempt to configure an IP
82186fd
-address on that interface.
82186fd
-.PP
82186fd
-The DHCP client can be directed not to attempt to configure any interfaces
82186fd
-using the
82186fd
-.B -n
82186fd
-flag.   This is most likely to be useful in combination with the
82186fd
-.B -w
82186fd
-flag.
82186fd
-.PP
82186fd
-The client can also be instructed to become a daemon immediately, rather
82186fd
-than waiting until it has acquired an IP address.   This can be done by
82186fd
-supplying the
82186fd
-.B -nw
82186fd
-flag.
82186fd
+
82186fd
 .SH CONFIGURATION
82186fd
 The syntax of the dhclient.conf(5) file is discussed separately.
82186fd
 .SH OMAPI