45d60a
diff -up dhcp-4.2.5b1/client/dhclient.conf.5.man dhcp-4.2.5b1/client/dhclient.conf.5
45d60a
--- dhcp-4.2.5b1/client/dhclient.conf.5.man	2012-12-05 02:17:38.000000000 +0100
45d60a
+++ dhcp-4.2.5b1/client/dhclient.conf.5	2012-12-17 12:49:52.818451301 +0100
45d60a
@@ -202,7 +202,8 @@ responding to the client send the client
45d60a
 options.  Only the option names should be specified in the request
45d60a
 statement - not option parameters.  By default, the DHCPv4 client
45d60a
 requests the subnet-mask, broadcast-address, time-offset, routers,
45d60a
-domain-name, domain-name-servers and host-name options while the DHCPv6
45d60a
+domain-search, domain-name, domain-name-servers, host-name, nis-domain,
45d60a
+nis-servers, ntp-servers and interface-mtu options while the DHCPv6
45d60a
 client requests the dhcp6 name-servers and domain-search options.  Note
45d60a
 that if you enter a \'request\' statement, you over-ride these defaults
45d60a
 and these options will not be requested.
45d60a
@@ -688,6 +689,17 @@ know the DHCP service(s) anycast MAC add
45d60a
 client.  The \fIlink-type\fR and \fImac-address\fR parameters are configured
45d60a
 in a similar manner to the \fBhardware\fR statement.
45d60a
 .PP
45d60a
+ \fBbootp-broadcast-always;\fR
45d60a
+.PP
45d60a
+The
45d60a
+.B bootp-broadcast-always
45d60a
+statement instructs dhclient to always set the bootp broadcast flag in
45d60a
+request packets, so that servers will always broadcast replies.
45d60a
+This is equivalent to supplying the dhclient -B argument, and has
45d60a
+the same effect as specifying 'always-broadcast' in the server's dhcpd.conf.
45d60a
+This option is provided as an extension to enable dhclient to work
45d60a
+on IBM s390 Linux guests.
45d60a
+.PP
45d60a
 .SH SAMPLE
45d60a
 The following configuration file is used on a laptop running NetBSD
45d60a
 1.3.  The laptop has an IP alias of 192.5.5.213, and has one
45d60a
@@ -713,7 +725,7 @@ interface "ep0" {
45d60a
     supersede domain-search "fugue.com", "rc.vix.com", "home.vix.com";
45d60a
     prepend domain-name-servers 127.0.0.1;
45d60a
     request subnet-mask, broadcast-address, time-offset, routers,
45d60a
-	    domain-name, domain-name-servers, host-name;
45d60a
+	    domain-search, domain-name, domain-name-servers, host-name;
45d60a
     require subnet-mask, domain-name-servers;
45d60a
     script "CLIENTBINDIR/dhclient-script";
45d60a
     media "media 10baseT/UTP", "media 10base2/BNC";
45d60a
diff -up dhcp-4.2.5b1/client/dhclient-script.8.man dhcp-4.2.5b1/client/dhclient-script.8
45d60a
--- dhcp-4.2.5b1/client/dhclient-script.8.man	2012-12-05 02:17:38.000000000 +0100
45d60a
+++ dhcp-4.2.5b1/client/dhclient-script.8	2012-12-17 12:47:48.410130998 +0100
45d60a
@@ -48,7 +48,7 @@ customizations are needed, they should b
45d60a
 exit hooks provided (see HOOKS for details).   These hooks will allow the
45d60a
 user to override the default behaviour of the client in creating a
45d60a
 .B /etc/resolv.conf
45d60a
-file.
45d60a
+file, and to handle DHCP options not handled by default.
45d60a
 .PP
45d60a
 No standard client script exists for some operating systems, even though
45d60a
 the actual client may work, so a pioneering user may well need to create
45d60a
@@ -92,6 +92,26 @@ present.   The
45d60a
 .B ETCDIR/dhclient-exit-hooks
45d60a
 script can modify the valid of exit_status to change the exit status
45d60a
 of dhclient-script.
45d60a
+.PP
45d60a
+Immediately after dhclient brings an interface UP with a new IP address,
45d60a
+subnet mask, and routes, in the REBOOT/BOUND states, it will check for the
45d60a
+existence of an executable
45d60a
+.B ETCDIR/dhclient-up-hooks
45d60a
+script, and source it if found. This script can handle DHCP options in
45d60a
+the environment that are not handled by default. A per-interface.
45d60a
+.B ETCDIR/dhclient-${IF}-up-hooks
45d60a
+script will override the generic script and be sourced when interface
45d60a
+$IF has been brought up.
45d60a
+.PP
45d60a
+Immediately before dhclient brings an interface DOWN, removing its IP
45d60a
+address, subnet mask, and routes, in the STOP/RELEASE  states, it will
45d60a
+check for the existence of an executable
45d60a
+.B ETCDIR/dhclient-down-hooks
45d60a
+script, and source it if found. This script can handle DHCP options in
45d60a
+the environment that are not handled by default. A per-interface
45d60a
+.B ETCDIR/dhclient-${IF}-down-hooks
45d60a
+script will override the generic script and be sourced when interface
45d60a
+$IF is about to be brought down.
45d60a
 .SH OPERATION
45d60a
 When dhclient needs to invoke the client configuration script, it
45d60a
 defines a set of variables in the environment, and then invokes
45d60a
diff -up dhcp-4.2.5b1/common/dhcp-options.5.man dhcp-4.2.5b1/common/dhcp-options.5
45d60a
--- dhcp-4.2.5b1/common/dhcp-options.5.man	2012-12-05 02:17:38.000000000 +0100
45d60a
+++ dhcp-4.2.5b1/common/dhcp-options.5	2012-12-17 12:47:48.411130985 +0100
45d60a
@@ -914,6 +914,21 @@ classless IP routing - it does not inclu
45d60a
 classless IP routing is now the most widely deployed routing standard,
45d60a
 this option is virtually useless, and is not implemented by any of the
45d60a
 popular DHCP clients, for example the Microsoft DHCP client.
45d60a
+.PP
45d60a
+NOTE to Fedora dhclient users:
45d60a
+.br
45d60a
+dhclient-script interprets trailing 0 octets of the target as indicating
45d60a
+the subnet class of the route, so for the following static-routes value:
45d60a
+.br
45d60a
+        option static-routes 172.0.0.0 172.16.2.254,
45d60a
+.br
45d60a
+                             192.168.0.0 192.168.2.254;
45d60a
+.br
45d60a
+dhclient-script will create routes:
45d60a
+.br
45d60a
+        172/8 via 172.16.2.254 dev $interface
45d60a
+.br
45d60a
+        192.168/16 via 192.168.2.254 dev $interface
45d60a
 .RE
45d60a
 .PP
45d60a
 .nf
45d60a
diff -up dhcp-4.2.5b1/server/dhcpd.conf.5.man dhcp-4.2.5b1/server/dhcpd.conf.5
45d60a
--- dhcp-4.2.5b1/server/dhcpd.conf.5.man	2012-12-05 02:17:39.000000000 +0100
45d60a
+++ dhcp-4.2.5b1/server/dhcpd.conf.5	2012-12-17 12:50:52.117650542 +0100
45d60a
@@ -519,6 +519,9 @@ pool {
45d60a
 };
45d60a
 .fi
45d60a
 .PP
45d60a
+Dynamic BOOTP leases are not compatible with failover, and, as such,
45d60a
+you need to disallow BOOTP in pools that you are using failover for.
45d60a
+.PP
45d60a
 The  server currently  does very  little  sanity checking,  so if  you
45d60a
 configure it wrong, it will just  fail in odd ways.  I would recommend
45d60a
 therefore that you either do  failover or don't do failover, but don't
45d60a
@@ -533,9 +536,9 @@ primary server might look like this:
45d60a
 failover peer "foo" {
45d60a
   primary;
45d60a
   address anthrax.rc.vix.com;
45d60a
-  port 519;
45d60a
+  port 647;
45d60a
   peer address trantor.rc.vix.com;
45d60a
-  peer port 520;
45d60a
+  peer port 847;
45d60a
   max-response-delay 60;
45d60a
   max-unacked-updates 10;
45d60a
   mclt 3600;
45d60a
@@ -1318,7 +1321,7 @@ the zone containing PTR records - for IS
45d60a
 .PP
45d60a
 .nf
45d60a
 key DHCP_UPDATER {
45d60a
-  algorithm HMAC-MD5.SIG-ALG.REG.INT;
45d60a
+  algorithm hmac-md5;
45d60a
   secret pRP5FapFoJ95JEL06sv4PQ==;
45d60a
 };
45d60a
 
45d60a
@@ -1341,7 +1344,7 @@ dhcpd.conf file:
45d60a
 .PP
45d60a
 .nf
45d60a
 key DHCP_UPDATER {
45d60a
-  algorithm HMAC-MD5.SIG-ALG.REG.INT;
45d60a
+  algorithm hmac-md5;
45d60a
   secret pRP5FapFoJ95JEL06sv4PQ==;
45d60a
 };
45d60a
 
45d60a
@@ -2555,7 +2558,8 @@ statement
45d60a
 The \fInext-server\fR statement is used to specify the host address of
45d60a
 the server from which the initial boot file (specified in the
45d60a
 \fIfilename\fR statement) is to be loaded.  \fIServer-name\fR should
45d60a
-be a numeric IP address or a domain name.
45d60a
+be a numeric IP address or a domain name.  If no \fInext-server\fR statement
45d60a
+applies to a given client, the address 0.0.0.0 is used.
45d60a
 .RE
45d60a
 .PP
45d60a
 The