diff --git a/dhclient.c.dif b/dhclient.c.dif deleted file mode 100644 index ea9595a..0000000 --- a/dhclient.c.dif +++ /dev/null @@ -1,57 +0,0 @@ ---- dhcp-3.0b2pl18/client/dhclient.c.orig Thu Feb 15 23:17:05 2001 -+++ dhcp-3.0b2pl18/client/dhclient.c Wed Mar 28 17:07:31 2001 -@@ -46,6 +46,7 @@ - - #include "dhcpd.h" - #include "version.h" -+#include - - TIME cur_time; - TIME default_lease_time = 43200; /* 12 hours... */ -@@ -84,6 +85,7 @@ - static void usage PROTO ((void)); - - void do_release(struct client_state *); -+void signalSetup(); - - int main (argc, argv, envp) - int argc; -@@ -247,6 +249,7 @@ - } else - log_perror = 0; - -+ signalSetup (); - /* If we're given a relay agent address to insert, for testing - purposes, figure out what it is. */ - if (relay) { -@@ -2731,3 +2734,30 @@ - { - return length; - } -+ -+/* install a signal handler to restore resolv.conf when dhclient is being sent TERM */ -+ -+void sigHandler (int sig) -+{ -+ if (sig == SIGTERM) { -+ log_info ("caught deadly SIGTERM"); -+ if ( rename("/etc/resolv.conf.saved.by.dhclient", "/etc/resolv.conf") == 0 ) -+ log_info ("restored resolv.conf "); -+ else -+ log_error ("could not restore resolv.conf: %m"); -+ } -+ exit (sig); -+} -+ -+void signalSetup() -+{ -+ struct sigaction newaction; -+ -+ newaction.sa_handler = sigHandler; -+ sigemptyset(&newaction.sa_mask); -+ newaction.sa_flags = 0; -+ sigaction (SIGTERM, &newaction, NULL); -+ /* log_info ("installed signal handler:"); */ -+ /* log_info ("resolv.conf will be restored at termination"); */ -+} -+ diff --git a/dhcp-3.0.2-extended_option_environment.patch b/dhcp-3.0.2-extended_option_environment.patch deleted file mode 100644 index 5d1bd52..0000000 --- a/dhcp-3.0.2-extended_option_environment.patch +++ /dev/null @@ -1,216 +0,0 @@ ---- dhcp-3.0.2/common/parse.c.extended_option_environment 2005-04-05 17:49:36.513062562 -0400 -+++ dhcp-3.0.2/common/parse.c 2005-04-05 17:49:36.580052656 -0400 -@@ -1270,6 +1270,10 @@ - option_hash_add (option -> universe -> hash, - (const char *)option -> name, - 0, option, MDL); -+#ifdef EXTENDED_NEW_OPTION_INFO -+ if ( new_option_info_tree != 0L ) -+ add_new_option_info( option ); -+#endif - return 1; - } - ---- dhcp-3.0.2/common/tables.c.extended_option_environment 2004-09-01 13:06:35.000000000 -0400 -+++ dhcp-3.0.2/common/tables.c 2005-04-05 18:04:23.915838623 -0400 -@@ -1238,3 +1238,40 @@ - fqdn_universe.name, 0, - &fqdn_universe, MDL); - } -+ -+#ifdef EXTENDED_NEW_OPTION_INFO -+#include -+ -+void *new_option_info_tree = 0L; -+ -+static int new_option_info_comparator( const void* p1, const void *p2 ) -+{ -+ uint32_t ocode1 = (((const struct option*)p1)->universe->index << 8) -+ |(((const struct option*)p1)->code), -+ ocode2 = (((const struct option*)p2)->universe->index << 8) -+ |(((const struct option*)p2)->code); -+ return( (ocode1 == ocode2) -+ ? 0 -+ :( ( ocode1 > ocode2 ) -+ ? 1 -+ : -1 -+ ) -+ ); -+} -+ -+void *add_new_option_info( struct option *option ) -+{ -+ if ( option->universe->index >= fqdn_universe.index ) -+ return 0L; -+ if ( new_option_info_tree == GENERATE_NEW_OPTION_INFO ) -+ new_option_info_tree = (void*)0L; -+ return tsearch( option, &(new_option_info_tree), new_option_info_comparator ); -+} -+ -+void *lookup_new_option_info( struct option *option ) -+{ -+ if ( new_option_info_tree == GENERATE_NEW_OPTION_INFO ) -+ return 0L; -+ return tfind( option, &(new_option_info_tree), new_option_info_comparator ); -+} -+#endif ---- dhcp-3.0.2/includes/dhcpd.h.extended_option_environment 2004-11-24 12:39:16.000000000 -0500 -+++ dhcp-3.0.2/includes/dhcpd.h 2005-04-05 17:49:36.613047777 -0400 -@@ -1800,6 +1800,13 @@ - void initialize_common_option_spaces PROTO ((void)); - struct universe *config_universe; - -+#ifdef EXTENDED_NEW_OPTION_INFO -+#define GENERATE_NEW_OPTION_INFO ((void*)1) -+extern void *new_option_info_tree; -+extern void *add_new_option_info( struct option*); -+extern void *lookup_new_option_info( struct option *); -+#endif -+ - /* stables.c */ - #if defined (FAILOVER_PROTOCOL) - extern failover_option_t null_failover_option; ---- dhcp-3.0.2/client/dhclient.c.extended_option_environment 2005-04-05 17:49:36.566054726 -0400 -+++ dhcp-3.0.2/client/dhclient.c 2005-04-05 17:49:36.617047185 -0400 -@@ -74,7 +74,9 @@ - int onetry=0; - int quiet=0; - int nowait=0; -- -+#ifdef EXTENDED_NEW_OPTION_INFO -+int extended_option_environment = 0; -+#endif - static void usage PROTO ((void)); - - void do_release(struct client_state *); -@@ -204,6 +206,11 @@ - } else if (!strcmp (argv [i], "--version")) { - log_info ("isc-dhclient-%s", DHCP_VERSION); - exit (0); -+#ifdef EXTENDED_NEW_OPTION_INFO -+ } else if (!strcmp (argv [i], "-x")) { -+ extended_option_environment = 1; -+ new_option_info_tree = GENERATE_NEW_OPTION_INFO; -+#endif - } else if (argv [i][0] == '-') { - usage (); - } else { -@@ -572,7 +579,11 @@ - log_info (arr); - log_info (url); - -+#ifdef EXTENDED_NEW_OPTION_INFO -+ log_error ("Usage: dhclient [-1dqr] [-nwx] [-p ] %s", -+#else - log_error ("Usage: dhclient [-1dqr] [-nw] [-p ] %s", -+#endif - "[-s server]"); - log_error (" [-cf config-file] [-lf lease-file]%s", - "[-pf pid-file] [-e VAR=val]"); -@@ -2529,8 +2540,28 @@ - struct envadd_state { - struct client_state *client; - const char *prefix; -+ struct universe *universe; - }; - -+#ifdef EXTENDED_NEW_OPTION_INFO -+static -+void build_universe_info_envvar -+( struct option_cache *oc, -+ struct packet *p, struct lease *l, -+ struct client_state *client, -+ struct option_state *in_o, -+ struct option_state *cf_o, -+ struct binding_scope **scope, -+ struct universe *u, void *es -+) -+{ -+ char info_name[512], info_data[512]; -+ snprintf(info_name, 512, "%s._universe_.", oc->option->universe->name); -+ snprintf(info_data, 512, "%u:%s", oc->option->code,oc->option->format); -+ client_envadd( client, info_name, oc->option->name, info_data ); -+} -+#endif -+ - void client_option_envadd (struct option_cache *oc, - struct packet *packet, struct lease *lease, - struct client_state *client_state, -@@ -2547,6 +2578,31 @@ - in_options, cfg_options, scope, oc, MDL)) { - if (data.len) { - char name [256]; -+#ifdef EXTENDED_NEW_OPTION_INFO -+ if ( extended_option_environment ) -+ { -+ if( ( oc->option->universe != &dhcp_universe ) -+ &&( oc->option->universe->index > fqdn_universe.index ) -+ &&( es->universe != oc->option->universe ) -+ ) -+ { -+ es->universe = oc->option->universe; -+ (*(es->universe->foreach)) -+ ( (struct packet *)0, (struct lease *)0, -+ client_state, -+ in_options, cfg_options, -+ scope, es->universe, es, -+ build_universe_info_envvar -+ ); -+ }else -+ if ( lookup_new_option_info(oc->option) != 0L ) -+ build_universe_info_envvar -+ ( oc, packet, lease, client_state, -+ in_options, cfg_options, scope, -+ oc->option->universe, es -+ ); -+ } -+#endif - if (dhcp_option_ev_name (name, sizeof name, - oc -> option)) { - client_envadd (es -> client, es -> prefix, -@@ -2575,6 +2631,7 @@ - - es.client = client; - es.prefix = prefix; -+ es.universe = 0L; - - client_envadd (client, - prefix, "ip_address", "%s", piaddr (lease -> address)); -@@ -2788,7 +2845,14 @@ - s = option -> name; - if (j + 1 == buflen) - return 0; -+#ifdef EXTENDED_NEW_OPTION_INFO -+ if ( ! extended_option_environment ) -+ buf [j++] = '_'; -+ else -+ buf [j++] = '.'; -+#else - buf [j++] = '_'; -+#endif - } - ++i; - } while (i != 2); ---- dhcp-3.0.2/client/dhclient.8.extended_option_environment 2004-09-29 19:01:46.000000000 -0400 -+++ dhcp-3.0.2/client/dhclient.8 2005-04-05 17:49:36.619046889 -0400 -@@ -78,6 +78,9 @@ - .B -w - ] - [ -+.B -x -+] -+[ - .I if0 - [ - .I ...ifN -@@ -252,6 +255,10 @@ - supplying the - .B -nw - flag. -+.PP -+The -x argument enables eXtended option information to be created in the -+-s dhclient-script environment, which would allow applications running -+in that environment to handle options they do not know about in advance. - .SH CONFIGURATION - The syntax of the dhclient.conf(5) file is discussed separately. - .SH OMAPI diff --git a/dhcp-3.0.3-dhclient-script-dhcdbd.patch b/dhcp-3.0.3-dhclient-script-dhcdbd.patch deleted file mode 100644 index 0357af5..0000000 --- a/dhcp-3.0.3-dhclient-script-dhcdbd.patch +++ /dev/null @@ -1,166 +0,0 @@ ---- a/client/scripts/linux -+++ b/client/scripts/linux -@@ -44,6 +44,20 @@ - set -x - fi - -+if [ -n "${dhc_dbus}" ]; then -+ /bin/dbus-send \ -+ --system \ -+ --dest=com.redhat.dhcp \ -+ --type=method_call \ -+ /com/redhat/dhcp/$interface \ -+ com.redhat.dhcp.set \ -+ 'string:'"`env | /bin/egrep -v '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"; -+ if (( ( dhc_dbus & 31 ) == 31 )); then -+ exit 0; -+ fi; -+fi; -+ -+ - make_resolv_conf() { - # first, look if we are allowed to modify resolv.conf: - eval `grep "^MODIFY_RESOLV_CONF_DYNAMICALLY=" /etc/sysconfig/network/config` -@@ -167,24 +181,26 @@ - fi - - if [ x$reason = xPREINIT ]; then -- if [ x$alias_ip_address != x ]; then -- # Bring down alias interface. Its routes will disappear too. -- ifconfig $interface:0- inet 0 -- fi -- if [ $relmajor -lt 2 ] || ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ) -- then -- ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \ -+ if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then -+ if [ x$alias_ip_address != x ]; then -+ # Bring down alias interface. Its routes will disappear too. -+ ifconfig $interface:0- inet 0 -+ fi -+ if [ $relmajor -lt 2 ] || ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ) -+ then -+ ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \ - broadcast 255.255.255.255 up -- # Add route to make broadcast work. Do not omit netmask. -- route add default dev $interface netmask 0.0.0.0 -- else -- ifconfig $interface 0 up -- fi -+ # Add route to make broadcast work. Do not omit netmask. -+ route add default dev $interface netmask 0.0.0.0 -+ else -+ ifconfig $interface 0 up -+ fi - -- # We need to give the kernel some time to get the interface up. -- sleep 1 -+ # We need to give the kernel some time to get the interface up. -+ sleep 1 - -- exit_with_hooks 0 -+ exit_with_hooks 0 -+ fi - fi - - if [ x$reason = xARPCHECK ] || [ x$reason = xARPSEND ]; then -@@ -193,55 +209,65 @@ - - if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \ - [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then -- if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ -+ if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then -+ if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ - [ x$alias_ip_address != x$old_ip_address ]; then -- # Possible new alias. Remove old alias. -- ifconfig $interface:0- inet 0 -- fi -- if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then -- # IP address changed. Bringing down the interface will delete all routes, -- # and clear the ARP cache. -- ifconfig $interface inet 0 down -+ # Possible new alias. Remove old alias. -+ ifconfig $interface:0- inet 0 -+ fi -+ if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then -+ # IP address changed. Bringing down the interface will delete all routes, -+ # and clear the ARP cache. -+ ifconfig $interface inet 0 down - -+ fi - fi - if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ - [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then - -- ifconfig $interface inet $new_ip_address $new_subnet_arg \ -+ if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then -+ ifconfig $interface inet $new_ip_address $new_subnet_arg \ - $new_broadcast_arg -- # Add a network route to the computed network address. -- if [ $relmajor -lt 2 ] || \ -+ fi -+ if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 4 ) != 4 )); then -+ # Add a network route to the computed network address. -+ if [ $relmajor -lt 2 ] || \ - ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then -- route add -net $new_network_number $new_subnet_arg dev $interface -+ route add -net $new_network_number $new_subnet_arg dev $interface -+ fi -+ for router in $new_routers; do -+ route add default gw $router -+ done - fi -- for router in $new_routers; do -- route add default gw $router -- done - fi -- if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ]; -- then -- ifconfig $interface:0- inet 0 -- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg -- route add -host $alias_ip_address $interface:0 -+ if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then -+ if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ]; -+ then -+ ifconfig $interface:0- inet 0 -+ ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg -+ route add -host $alias_ip_address $interface:0 -+ fi - fi -- make_resolv_conf -- eval `grep --no-filename "^DHCLIENT_SET_HOSTNAME=" /etc/sysconfig/network/dhcp` -- if [ "$DHCLIENT_SET_HOSTNAME" = yes ] ; then -- -- current_hostname=`hostname` -- if [ x$current_hostname = x ] || \ -- [ x$current_hostname != x$new_host_name ]; then -- -- if [ x$new_host_name != x ]; then -- hostname $new_host_name -- else -- if [ -x /usr/bin/host ] ; then -- hostname `host "$new_ip_address" | sed 's:^.* ::; s:\..*::'` -+ if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 1 ) != 1 )); then -+ make_resolv_conf -+ eval `grep --no-filename "^DHCLIENT_SET_HOSTNAME=" /etc/sysconfig/network/dhcp` -+ if [ "$DHCLIENT_SET_HOSTNAME" = yes ] ; then -+ -+ current_hostname=`hostname` -+ if [ x$current_hostname = x ] || \ -+ [ x$current_hostname != x$new_host_name ]; then -+ -+ if [ x$new_host_name != x ]; then -+ hostname $new_host_name -+ else -+ if [ -x /usr/bin/host ] ; then -+ hostname `host "$new_ip_address" | sed 's:^.* ::; s:\..*::'` -+ fi - fi -- fi - -- fi -+ fi - -+ fi - fi - exit_with_hooks 0 - fi diff --git a/dhcp-3.0.5-ldap-patch.gz b/dhcp-3.0.5-ldap-patch.gz deleted file mode 100644 index 8d23447..0000000 --- a/dhcp-3.0.5-ldap-patch.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:07534f18dc314f2bcf4084688898ddf2abf5bd98c46d62a165eefa9d005dcc0c -size 45256 diff --git a/dhcp-3.0.5-ldap-patch_3.1.1.bz2 b/dhcp-3.0.5-ldap-patch_3.1.1.bz2 new file mode 100644 index 0000000..c670904 --- /dev/null +++ b/dhcp-3.0.5-ldap-patch_3.1.1.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09a632cd8f9ff436047cfa548eb2935409b246932075de8c084c4a9ba1080dd9 +size 38097 diff --git a/dhcp-3.0.6-dhclient-conf-no-script.patch b/dhcp-3.0.6-dhclient-conf-no-script.patch deleted file mode 100644 index 6226b8f..0000000 --- a/dhcp-3.0.6-dhclient-conf-no-script.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- dhcp-3.0.6/client/dhclient.conf -+++ dhcp-3.0.6/client/dhclient.conf 2007/11/19 08:14:01 -@@ -32,7 +32,11 @@ - reboot 10; - select-timeout 5; - initial-interval 2; --script "/sbin/dhclient-script"; -+ -+# Default location of the dhclient-script. Note: Setting -+# it in the config, disables the -sf command line option! -+#script "/sbin/dhclient-script"; - - #media "-link0 -link1 -link2", "link0 link1"; - #reject 192.33.137.209; -+ diff --git a/dhcp-3.0.6-dhclient-conf-requests.patch b/dhcp-3.0.6-dhclient-conf-requests.patch deleted file mode 100644 index bb5a0eb..0000000 --- a/dhcp-3.0.6-dhclient-conf-requests.patch +++ /dev/null @@ -1,17 +0,0 @@ -Author: Timo Hoenig , Lars Mueller , Marius Tomaschewski -Subject: Request NIS, NTP and netbios-ns settings by default - -Index: dhcp-3.0.6/client/dhclient.conf -=================================================================== ---- dhcp-3.0.6.orig/client/dhclient.conf -+++ dhcp-3.0.6/client/dhclient.conf -@@ -24,7 +24,8 @@ - - send dhcp-lease-time 3600; - request subnet-mask, broadcast-address, time-offset, routers, -- domain-name, domain-name-servers, host-name; -+ domain-name, domain-name-servers, host-name, nis-domain, -+ nis-servers, ntp-servers, netbios-name-servers; - require subnet-mask, domain-name-servers; - timeout 60; - retry 60; diff --git a/dhcp-3.0.6-dhclient-conf-requires.patch b/dhcp-3.0.6-dhclient-conf-requires.patch deleted file mode 100644 index c3e9f38..0000000 --- a/dhcp-3.0.6-dhclient-conf-requires.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- dhcp-3.0.6/client/dhclient.conf -+++ dhcp-3.0.6/client/dhclient.conf 2008/03/03 13:14:44 -@@ -26,7 +26,10 @@ - request subnet-mask, broadcast-address, time-offset, routers, - domain-name, domain-name-servers, host-name, nis-domain, - nis-servers, ntp-servers, netbios-name-servers; --require subnet-mask, domain-name-servers; -+# We request above options, require only the IP configuration: -+require subnet-mask; -+# To enforce the availability of the dns server list, set to: -+#require subnet-mask, domain-name-servers; - timeout 60; - retry 60; - reboot 10; diff --git a/dhcp-3.0.6-dhclient-script-default-gw.patch b/dhcp-3.0.6-dhclient-script-default-gw.patch deleted file mode 100644 index 46650ff..0000000 --- a/dhcp-3.0.6-dhclient-script-default-gw.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- dhcp-3.0.6/client/scripts/linux -+++ dhcp-3.0.6/client/scripts/linux 2008/04/04 07:38:57 -@@ -284,7 +284,23 @@ - route add -net $new_network_number $new_subnet_arg dev $interface - fi - for router in $new_routers; do -- route add default gw $router -+ err=`route add default gw $router 2>&1` && break || \ -+ case "$err" in -+ SIOCADDRT:*) -+ # The gateway seems to be not reachable via local network -+ # route (implicitely created by ifconfig based on the IP -+ # an netmask provided by dhcp). -+ # Check this, set an explicit host route to the gateway -+ # over the current interface and try again (bnc#266215). -+ matches=$(test -x /sbin/ip && \ -+ /sbin/ip -f inet -o route list match $router | \ -+ grep -v ^default | grep -c -v "^$" 2>/dev/null) -+ if test -n "$matches" -a $(($matches)) -eq 0 ; then -+ route add -host $router dev $interface && \ -+ route add default gw $router && break -+ fi -+ ;; -+ esac - done - fi - fi diff --git a/dhcp-3.0.6-dhclient-script-ntp-runtime.patch b/dhcp-3.0.6-dhclient-script-ntp-runtime.patch deleted file mode 100644 index db6b37b..0000000 --- a/dhcp-3.0.6-dhclient-script-ntp-runtime.patch +++ /dev/null @@ -1,81 +0,0 @@ ---- dhcp-3.0.6/client/scripts/linux -+++ dhcp-3.0.6/client/scripts/linux 2008/04/04 07:37:35 -@@ -103,6 +103,54 @@ - done - } - -+remove_ntp_runtime_conf() { -+ if test -f "/var/run/ntp/servers.${interface}" ; then -+ rm -f "/var/run/ntp/servers.${interface}" -+ -+ if test -x /etc/init.d/ntp ; then -+ /etc/init.d/ntp try-restart -+ fi -+ fi -+} -+ -+make_ntp_runtime_conf() { -+ if [ "x$new_ntp_servers" != "x" ]; then -+ local restart=no -+ if test -f "/var/run/ntp/servers.${interface}" ; then -+ . "/var/run/ntp/servers.${interface}" -+ test "x$RUNTIME_SERVERS" = "x$new_ntp_servers" && return 0 -+ -+ restart=yes -+ rm -f "/var/run/ntp/servers.${interface}" -+ fi -+ -+ cat > "/var/run/ntp/servers.${interface}" << EOF -+### BEGIN INFO -+# -+# Modified_by: dhclient-script -+# Process: /sbin/dhclient -+# Process_id: $(pidof dhclient) -+# Script: /sbin/dhclient-script -+# -+# Info: This is a temporary generated config by the dhclient-script. -+# In the case of a restart these infomrmations are used to -+# add the ntp servers at runtime. -+### END INFO -+ -+RUNTIME_SERVERS="$new_ntp_servers" -+ -+EOF -+ -+ if test -x /etc/init.d/ntp ; then -+ if test "$restart" = "no" ; then -+ /etc/init.d/ntp addserver $new_ntp_servers -+ else -+ /etc/init.d/ntp try-restart -+ fi -+ fi -+ fi -+} -+ - function write_informational_resolv_conf_header() { - cat > /etc/resolv.conf << EOF - ### BEGIN INFO -@@ -250,6 +298,7 @@ - fi - if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 1 ) != 1 )); then - make_resolv_conf -+ make_ntp_runtime_conf - eval `grep --no-filename "^DHCLIENT_SET_HOSTNAME=" /etc/sysconfig/network/dhcp` - if [ "$DHCLIENT_SET_HOSTNAME" = yes ] ; then - -@@ -311,6 +360,7 @@ - route add default gw $router - done - make_resolv_conf -+ make_ntp_runtime_conf - exit_with_hooks 0 - fi - ifconfig $interface inet 0 down -@@ -321,5 +371,7 @@ - if test -f /etc/resolv.conf.saved.by.dhclient ; then - mv /etc/resolv.conf.saved.by.dhclient /etc/resolv.conf - fi -+# remove runtime ntp conf -+remove_ntp_runtime_conf - - exit_with_hooks 0 diff --git a/dhcp-3.0.6-dhclient-script-sethostname.patch b/dhcp-3.0.6-dhclient-script-sethostname.patch deleted file mode 100644 index 5c39d54..0000000 --- a/dhcp-3.0.6-dhclient-script-sethostname.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- dhcp-3.0.6/client/scripts/linux -+++ dhcp-3.0.6/client/scripts/linux 2008/05/23 13:41:28 -@@ -326,7 +326,9 @@ - hostname $new_host_name - else - if [ -x /usr/bin/host ] ; then -- hostname `host "$new_ip_address" | sed 's:^.* ::; s:\..*::'` -+ if out=`host -W 2 "$new_ip_address" 2>/dev/null` ; then -+ hostname `echo "$out" | sed 's:^.* ::; s:\..*::'` -+ fi - fi - fi - diff --git a/dhcp-3.0.7-dhclient-script-netconfig.dif b/dhcp-3.0.7-dhclient-script-netconfig.dif deleted file mode 100644 index 1bba9c4..0000000 --- a/dhcp-3.0.7-dhclient-script-netconfig.dif +++ /dev/null @@ -1,193 +0,0 @@ ---- client/dhclient-script.8 -+++ client/dhclient-script.8 2008/08/22 10:05:02 -@@ -45,9 +45,10 @@ any, and also called once if no valid le - This script is not meant to be customized by the end user. If local - customizations are needed, they should be possible using the enter and - exit hooks provided (see HOOKS for details). These hooks will allow the --user to override the default behaviour of the client in creating a -+user to override the default behaviour of the client in applying of -+additional settings like DNS (e.g. creating a - .B /etc/resolv.conf --file. -+file), NTP or YP to the system. - .PP - No standard client script exists for some operating systems, even though - the actual client may work, so a pioneering user may well need to create -@@ -59,14 +60,46 @@ customizing - .B ETCDIR/dhclient.conf - or using the enter and exit hooks, please submit a bug report. - .SH HOOKS --When it starts, the client script first defines a shell function, --.B make_resolv_conf , --which is later used to create the --.B /etc/resolv.conf --file. To override the default behaviour, redefine this function in --the enter hook script. -+When it starts, the client script first defines several shell functions: -+.BR use_netconfig , -+.BR netconfig_modify , -+.BR netconfig_remove , -+.BR make_resolv_conf , -+.BR make_ntp_runtime_conf , -+.BR restore_resolv_conf , -+and -+.BR remove_ntp_runtime_conf . -+These functions are later used to apply DNS, NTP, YP, and other additional -+settings to the system. -+ -+The -+.B use_netconfig -+returns true (0), when the /sbin/netconfig script is supported / installed -+and enables the use of -+.B netconfig_modify -+and -+.B netconfig_remove -+functions. See also the netconfig(8) manual page. -+.br -+Otherwise, the compatibility functions -+.BR make_resolv_conf , -+.BR restore_resolv_conf , -+.BR make_ntp_runtime_conf , -+and -+.B remove_ntp_runtime_conf -+functions are used. The default implementation of make_resolv_conf is to -+modify the /etc/resolv.conf file in /sbin/modify_resolvconf script -+compatible way. The make_ntp_runtime_conf makes use of the /etc/init.d/ntp -+init script mechanism to apply the NTP server provided by dhcp at runtime. -+ -+.IR Note : -+The /sbin/modify_resolvconf script and mechanizm is obsoleted by netconfig -+and not shipped or supported any more since openSUSE 11.1. -+ -+To override the default behaviour, redefine these functions in the enter -+hook script. - .PP --On after defining the make_resolv_conf function, the client script checks -+On after defining the netconfig functions, the client script checks - for the presence of an executable - .B ETCDIR/dhclient-enter-hooks - script, and if present, it invokes the script inline, using the Bourne -@@ -220,8 +253,8 @@ the other. Assuming the information pr - valid, this shouldn't cause any real problems, but it could be - confusing. - .SH SEE ALSO --dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and --dhclient.leases(5). -+dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5), -+dhclient.leases(5) and netconfig(8). - .SH AUTHOR - .B dhclient-script(8) - has been written for Internet Systems Consortium ---- client/scripts/linux -+++ client/scripts/linux 2008/08/22 09:52:12 -@@ -57,6 +57,36 @@ if [ -n "${dhc_dbus}" ]; then - fi; - fi; - -+use_netconfig() { -+ test -x /sbin/netconfig -+} -+ -+netconfig_modify() { -+ { -+ echo "INTERFACE='$interface'" -+ for v in ${!new_*}; do -+ case $v in -+ (new_ip_address) k='IPADDR' ;; -+ (new_subnet_mask) k='NETMASK' ;; -+ (new_network_number) k='NETWORK' ;; -+ (new_broadcast_address) k='BROADCAST' ;; -+ (new_routers) k='GATEWAYS' ;; -+ (new_domain_name) k='DNSDOMAIN' ;; -+ (new_domain_name_servers) k='DNSSERVERS' ;; -+ (new_ntp_servers) k='NTPSERVERS' ;; -+ (new_nis_domain) k='NISDOMAIN' ;; -+ (new_nis_servers) k='NISSERVERS' ;; -+ (new_netbios_name_servers) k='NETBIOSNAMESERVER' ;; -+ (*) : skip $v ; continue ;; -+ esac -+ [ "k${k}" != k ] && echo "${k}='${!v}'" -+ done -+ } | /sbin/netconfig modify -s "dhclient3" -i "$interface" -+} -+ -+netconfig_remove() { -+ /sbin/netconfig remove -s "dhclient3" -i "$interface" > /var/log/dhclient-script -+ exec 2>> /var/log/dhclient-script -+ set +a -+ set -x -+fi -+ - make_resolv_conf() { -- if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then -- echo search $new_domain_name >/etc/resolv.conf -- chmod 644 /etc/resolv.conf -- for nameserver in $new_domain_name_servers; do -- echo nameserver $nameserver >>/etc/resolv.conf -- done -+ # first, look if we are allowed to modify resolv.conf: -+ eval `grep "^MODIFY_RESOLV_CONF_DYNAMICALLY=" /etc/sysconfig/network/config` -+ eval `grep "^DHCLIENT_MODIFY_RESOLV_CONF=" /etc/sysconfig/network/dhcp` -+ -+ test "$MODIFY_RESOLV_CONF_DYNAMICALLY" = no \ -+ -o "$DHCLIENT_MODIFY_RESOLV_CONF" = no \ -+ && return -+ -+ # It might be useful to have more than one domain in the searchlist. To -+ # achieve this set DHCLIENT_KEEP_SEARCHLIST in /etc/sysconfig/network/dhcp to "yes" -+ # and put the additional domains in the searchlist of the *unmodified* -+ # /etc/resolv.conf. When the client is configured via DHCP the old -+ # searchlist will be appended to the new one. -+ oldsearchlist="" -+ eval `grep "^DHCLIENT_KEEP_SEARCHLIST=" /etc/sysconfig/network/dhcp` -+ if test "$DHCLIENT_KEEP_SEARCHLIST" = yes ; then -+ oldsearchlist=`while read line; do -+ case $line in search*) oldsearchlist=${line/search /};; esac; -+ done< /etc/resolv.conf; -+ echo -n $oldsearchlist` - fi -+ -+ -+ -+ # now, backup the existing resolv.conf first. BUT: -+ # an old backup copy should not be there, because the init script deletes them; if there -+ # is one, it must be current and we don't want to overwrite it -+ # (since this script is called by dhclient more than once) -+ if ! test -f /etc/resolv.conf.saved.by.dhclient ; then -+ mv /etc/resolv.conf /etc/resolv.conf.saved.by.dhclient &> /dev/null -+ fi -+ -+ # put a comment into the new file -+ # FIXME: in theory we should use /sbin/modify_resolvconf for the modifications -+ # instead of fiddling around with it ourselves. -+ write_informational_resolv_conf_header -+ -+ echo search $new_domain_name $oldsearchlist >>/etc/resolv.conf -+ chmod 644 /etc/resolv.conf -+ for nameserver in $new_domain_name_servers; do -+ echo nameserver $nameserver >>/etc/resolv.conf -+ done -+} -+ -+function write_informational_resolv_conf_header() { -+ cat > /etc/resolv.conf << EOF -+### BEGIN INFO -+# -+# Modified_by: dhclient -+# Backup: /etc/resolv.conf.saved.by.dhclient -+# Process: /sbin/dhclient -+# Process_id: $(pidof dhclient) -+# Script: /sbin/dhclient-script -+# -+# Info: This is a temporary resolv.conf created by dhclient. -+# A previous resolv.conf has been saved as -+# /etc/resolv.conf.saved.by.dhclient and will be -+# restored when dhclient is stopped. -+# -+# If you don't like dhclient to change your nameserver -+# settings, set DHCLIENT_MODIFY_RESOLV_CONF in -+# /etc/sysconfig/network/dhcp to "no", or set -+# MODIFY_RESOLV_CONF_DYNAMICALLY in /etc/sysconfig/network/config -+# to "no". -+# You can also customize /etc/dhclient.conf (man 5 dhclient.conf) -+# using the supersede and/or prepend option. -+### END INFO -+ -+EOF -+ -+# Make sure that the file is world readable even if umask is set to e.g. 077 -+ - } - - # Must be used on exit. Invokes the local dhcp client exit hooks, if any. -@@ -106,15 +193,6 @@ - - if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \ - [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then -- current_hostname=`hostname` -- if [ x$current_hostname = x ] || \ -- [ x$current_hostname = x$old_host_name ]; then -- if [ x$current_hostname = x ] || \ -- [ x$new_host_name != x$old_host_name ]; then -- hostname $new_host_name -- fi -- fi -- - if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ - [ x$alias_ip_address != x$old_ip_address ]; then - # Possible new alias. Remove old alias. -@@ -147,6 +225,24 @@ - route add -host $alias_ip_address $interface:0 - fi - make_resolv_conf -+ eval `grep --no-filename "^DHCLIENT_SET_HOSTNAME=" /etc/sysconfig/network/dhcp` -+ if [ "$DHCLIENT_SET_HOSTNAME" = yes ] ; then -+ -+ current_hostname=`hostname` -+ if [ x$current_hostname = x ] || \ -+ [ x$current_hostname != x$new_host_name ]; then -+ -+ if [ x$new_host_name != x ]; then -+ hostname $new_host_name -+ else -+ if [ -x /usr/bin/host ] ; then -+ hostname `host "$new_ip_address" | sed 's:^.* ::; s:\..*::'` -+ fi -+ fi -+ -+ fi -+ -+ fi - exit_with_hooks 0 - fi - -@@ -195,4 +291,9 @@ - exit_with_hooks 1 - fi - -+# restore backup copy of resolv.conf -+if test -f /etc/resolv.conf.saved.by.dhclient ; then -+ mv /etc/resolv.conf.saved.by.dhclient /etc/resolv.conf -+fi -+ - exit_with_hooks 0 diff --git a/dhcp-3.1.1-dhclient-conf.dif b/dhcp-3.1.1-dhclient-conf.dif new file mode 100644 index 0000000..06a40df --- /dev/null +++ b/dhcp-3.1.1-dhclient-conf.dif @@ -0,0 +1,79 @@ +--- client/dhclient.conf ++++ client/dhclient.conf 2008/09/08 14:57:18 +@@ -1,36 +1,46 @@ +-send host-name "andare.fugue.com"; +-send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; ++# ++# /etc/dhclient.conf -- dhclient configuration file ++# see "man dhclient.conf" for further details ++# ++ ++###################################################### ++# Sometimes, a special configuration is required for ++# e.g. Cable Modem providers (@Home -- TCI). ++# For example, it may be required to send out a special ++# dhcp-client-identifier or to override some settings. ++# ++# Uncomment and fill in the appropriate settings: ++# ++#send dhcp-client-identifier "c32423-a" ++# or as hex octets ++#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; ++# ++#send host-name "andare.fugue.com"; ++# ++#supersede domain-name "fugue.com home.vix.com"; ++#prepend domain-name-servers 127.0.0.1; ++# ++##################################################### ++ + send dhcp-lease-time 3600; +-supersede domain-name "fugue.com home.vix.com"; +-prepend domain-name-servers 127.0.0.1; +-request subnet-mask, broadcast-address, time-offset, routers, +- domain-name, domain-name-servers, host-name; +-require subnet-mask, domain-name-servers; ++ ++# Request several well known/usefull dhcp options. ++request subnet-mask, broadcast-address, routers, ++ host-name, domain-name, domain-name-servers, ++ nis-domain, nis-servers, netbios-name-servers, ++ ntp-servers, time-offset; ++ ++# We request above options, require only the IP configuration: ++require subnet-mask; ++# All another options (DNS, NTP, NIS, ...) are applied using ++# netconfig(8) modules. ++ ++# To enforce the availability of the dns server list, set to: ++#require subnet-mask, domain-name-servers; ++ + timeout 60; + retry 60; + reboot 10; + select-timeout 5; + initial-interval 2; +-script "/etc/dhclient-script"; +-media "-link0 -link1 -link2", "link0 link1"; +-reject 192.33.137.209; +- +-alias { +- interface "ep0"; +- fixed-address 192.5.5.213; +- option subnet-mask 255.255.255.255; +-} +- +-lease { +- interface "ep0"; +- fixed-address 192.33.137.200; +- medium "link0 link1"; +- option host-name "andare.swiftmedia.com"; +- option subnet-mask 255.255.255.0; +- option broadcast-address 192.33.137.255; +- option routers 192.33.137.250; +- option domain-name-servers 127.0.0.1; +- renew 2 2000/1/12 00:00:01; +- rebind 2 2000/1/12 00:00:01; +- expire 2 2000/1/12 00:00:01; +-} ++ diff --git a/dhcp-3.0.6-dhclient-exec-filedes.dif b/dhcp-3.1.1-dhclient-exec-filedes.dif similarity index 78% rename from dhcp-3.0.6-dhclient-exec-filedes.dif rename to dhcp-3.1.1-dhclient-exec-filedes.dif index 5653d22..aa24919 100644 --- a/dhcp-3.0.6-dhclient-exec-filedes.dif +++ b/dhcp-3.1.1-dhclient-exec-filedes.dif @@ -1,6 +1,6 @@ --- client/dhclient.c -+++ client/dhclient.c 2007/07/19 12:35:45 -@@ -2629,6 +2629,12 @@ ++++ client/dhclient.c 2008/09/08 09:27:16 +@@ -2659,6 +2659,12 @@ int script_go (client) */ if (leaseFile != NULL) fclose(leaseFile); diff --git a/dhcp-3.1.1-dhclient-no-dereference-twice.dif b/dhcp-3.1.1-dhclient-no-dereference-twice.dif new file mode 100644 index 0000000..e336dc0 --- /dev/null +++ b/dhcp-3.1.1-dhclient-no-dereference-twice.dif @@ -0,0 +1,10 @@ +--- client/dhclient.c ++++ client/dhclient.c 2008/09/12 11:37:53 +@@ -2156,7 +2156,6 @@ + (struct option_state *)0, options, + &global_scope, 0, 0, 0, (struct data_string *)0, + client -> config -> vendor_space_name); +- option_state_dereference (&options, MDL); + if (client -> packet_length < BOOTP_MIN_LEN) + client -> packet_length = BOOTP_MIN_LEN; + option_state_dereference (&options, MDL); diff --git a/dhcp-3.1.1-dhclient-script.dif b/dhcp-3.1.1-dhclient-script.dif new file mode 100644 index 0000000..b0fac19 --- /dev/null +++ b/dhcp-3.1.1-dhclient-script.dif @@ -0,0 +1,324 @@ +--- client/dhclient-script.8 ++++ client/dhclient-script.8 2008/09/12 11:42:47 +@@ -45,9 +45,10 @@ + This script is not meant to be customized by the end user. If local + customizations are needed, they should be possible using the enter and + exit hooks provided (see HOOKS for details). These hooks will allow the +-user to override the default behaviour of the client in creating a ++user to override the default behaviour of the client in applying of ++additional settings like DNS (e.g. creating a + .B /etc/resolv.conf +-file. ++file), NTP or YP to the system. + .PP + No standard client script exists for some operating systems, even though + the actual client may work, so a pioneering user may well need to create +@@ -59,12 +60,43 @@ + .B ETCDIR/dhclient.conf + or using the enter and exit hooks, please submit a bug report. + .SH HOOKS +-When it starts, the client script first defines a shell function, +-.B make_resolv_conf , +-which is later used to create the ++When it starts, the client script first defines several shell functions: ++.BR use_netconfig , ++.BR netconfig_modify , ++.BR netconfig_remove , ++.BR make_resolv_conf , ++and ++.BR restore_resolv_conf . ++These functions are later used to apply DNS, NTP, YP, and other additional ++settings to the system. ++ ++The ++.B use_netconfig ++returns true (0), when the /sbin/netconfig script is installed and enables ++the use of the ++.B netconfig_modify ++and ++.B netconfig_remove ++functions. ++.br ++Otherwise, the ++.BR make_resolv_conf ++and ++.BR restore_resolv_conf ++functions are used. These functions are modified to create ++/var/lib/dhcp/resolv.conf.dhclient.$interface files only ++instead of the + .B /etc/resolv.conf +-file. To override the default behaviour, redefine this function in +-the enter hook script. ++file. ++To override the default behaviour, redefine these function in the enter ++hook script. Before you start doing this, consider to implement own ++netconfig modules. ++ ++.IR Note : ++Note, that since openSUSE 11.1, the modify_resolvconf script / mechanizm ++is obsoleted by netconfig and not shipped or supported any more. ++See the netconfig(8) manual page for more informations. ++ + .PP + On after defining the make_resolv_conf function, the client script checks + for the presence of an executable +@@ -221,7 +253,7 @@ + confusing. + .SH SEE ALSO + dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and +-dhclient.leases(5). ++dhclient.leases(5) and netconfig(8). + .SH AUTHOR + .B dhclient-script(8) + has been written for Internet Systems Consortium +--- client/scripts/linux ++++ client/scripts/linux 2008/09/12 11:43:12 +@@ -22,25 +22,87 @@ + # 4. TIMEOUT not tested. ping has a flag I don't know, and I'm suspicious + # of the $1 in its args. + ++ ++# Debugging: ++# ++# logs entire run of dhclient-script to /var/log/dhclient-script, ++# if DHCLIENT_DEBUG is set in sysconfig/network/dhcp ++# ++eval `grep "^DHCLIENT_DEBUG=" /etc/sysconfig/network/dhcp` ++if [ "$DHCLIENT_DEBUG" = yes ]; then ++ set -a # allexport ++ ( ++ echo '****************' ++ echo "$0 $*" ++ date ++ echo '----------------' ++ set ++ echo '----------------' ++ ) >> /var/log/dhclient-script.log ++ exec 2>> /var/log/dhclient-script.log ++ set +a ++ set -x ++fi ++ ++# netconfig makes all "additional" modifications as DNS or NTP ++use_netconfig() { ++ test -x /sbin/netconfig ++} ++netconfig_modify() { ++ if test -x /sbin/netconfig ; then ++ { ++ echo "INTERFACE='$interface'" ++ for v in ${!new_*}; do ++ case $v in ++ (new_ip_address) k='IPADDR' ;; ++ (new_subnet_mask) k='NETMASK' ;; ++ (new_network_number) k='NETWORK' ;; ++ (new_broadcast_address) k='BROADCAST' ;; ++ (new_routers) k='GATEWAYS' ;; ++ (new_domain_name) k='DNSDOMAIN' ;; ++ (new_domain_name_servers) k='DNSSERVERS' ;; ++ (new_ntp_servers) k='NTPSERVERS' ;; ++ (new_nis_domain) k='NISDOMAIN' ;; ++ (new_nis_servers) k='NISSERVERS' ;; ++ (new_netbios_name_servers) k='NETBIOSNAMESERVER' ;; ++ (*) : skip $v ; continue ;; ++ esac ++ [ "k${k}" != k ] && echo "${k}='${!v}'" ++ done ++ } | /sbin/netconfig modify -s "dhclient3" -i "$interface" ++ fi ++} ++netconfig_remove() { ++ if test -x /sbin/netconfig ; then ++ /sbin/netconfig remove -s "dhclient3" -i "$interface" /etc/resolv.conf.dhclient +- chmod 644 /etc/resolv.conf.dhclient ++ cat /dev/null > /var/lib/dhcp/resolv.conf.dhclient.$interface ++ chmod 644 /var/lib/dhcp/resolv.conf.dhclient.$interface + if [ x"$new_domain_search" != x ]; then +- echo search $new_domain_search >> /etc/resolv.conf.dhclient ++ echo search $new_domain_search >> /var/lib/dhcp/resolv.conf.dhclient.$interface + elif [ x"$new_domain_name" != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. +- echo search $new_domain_name >> /etc/resolv.conf.dhclient ++ echo search $new_domain_name >> /var/lib/dhcp/resolv.conf.dhclient.$interface + fi + for nameserver in $new_domain_name_servers; do +- echo nameserver $nameserver >>/etc/resolv.conf.dhclient ++ echo nameserver $nameserver >> /var/lib/dhcp/resolv.conf.dhclient.$interface + done +- +- mv /etc/resolv.conf.dhclient /etc/resolv.conf + fi + } ++restore_resolv_conf() ++{ ++ rm -f /var/lib/dhcp/resolv.conf.dhclient.$interface ++} + + # Must be used on exit. Invokes the local dhcp client exit hooks, if any. + exit_with_hooks() { +@@ -97,7 +159,7 @@ + if [ $relmajor -lt 2 ] || ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ) + then + ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \ +- broadcast 255.255.255.255 up ++ broadcast 255.255.255.255 up + # Add route to make broadcast work. Do not omit netmask. + route add default dev $interface netmask 0.0.0.0 + else +@@ -116,38 +178,45 @@ + + if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \ + [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then +- current_hostname=`hostname` +- if [ x$current_hostname = x ] || \ +- [ x$current_hostname = x$old_host_name ]; then +- if [ x$current_hostname = x ] || \ +- [ x$new_host_name != x$old_host_name ]; then +- hostname $new_host_name +- fi +- fi +- + if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ +- [ x$alias_ip_address != x$old_ip_address ]; then ++ [ x$alias_ip_address != x$old_ip_address ]; then + # Possible new alias. Remove old alias. + ifconfig $interface:0- inet 0 + fi + if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then + # IP address changed. Bringing down the interface will delete all routes, + # and clear the ARP cache. +- ifconfig $interface inet 0 down ++ ifconfig $interface inet 0 + + fi + if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ + [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then + + ifconfig $interface inet $new_ip_address $new_subnet_arg \ +- $new_broadcast_arg ++ $new_broadcast_arg + # Add a network route to the computed network address. + if [ $relmajor -lt 2 ] || \ +- ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then ++ ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then + route add -net $new_network_number $new_subnet_arg dev $interface + fi + for router in $new_routers; do +- route add default gw $router ++ err=`route add default gw $router 2>&1` && break || \ ++ case "$err" in ++ SIOCADDRT:*) ++ # The gateway seems to be not reachable via local network ++ # route (implicitely created by ifconfig based on the IP ++ # an netmask provided by dhcp). ++ # Check this, set an explicit host route to the gateway ++ # over the current interface and try again (bnc#266215). ++ matches=$(test -x /sbin/ip && \ ++ /sbin/ip -f inet -o route list match $router | \ ++ grep -v ^default | grep -c -v "^$" 2>/dev/null) ++ if test -n "$matches" -a $(($matches)) -eq 0 ; then ++ route add -host $router dev $interface && \ ++ route add default gw $router && break ++ fi ++ ;; ++ esac + done + fi + if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ]; +@@ -156,7 +225,31 @@ + ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg + route add -host $alias_ip_address $interface:0 + fi +- make_resolv_conf ++ if use_netconfig ; then ++ netconfig_modify ++ else ++ make_resolv_conf ++ fi ++ eval `grep --no-filename "^DHCLIENT_SET_HOSTNAME=" /etc/sysconfig/network/dhcp` ++ if [ "$DHCLIENT_SET_HOSTNAME" = yes ] ; then ++ ++ current_hostname=`hostname` ++ if [ x$current_hostname = x ] || \ ++ [ x$current_hostname != x$new_host_name ]; then ++ ++ if [ x$new_host_name != x ]; then ++ hostname $new_host_name ++ else ++ if [ -x /usr/bin/host ] ; then ++ if out=`host -W 2 "$new_ip_address" 2>/dev/null` ; then ++ hostname `echo "$out" | sed 's:^.* ::; s:\..*::'` ++ fi ++ fi ++ fi ++ ++ fi ++ ++ fi + exit_with_hooks 0 + fi + +@@ -168,7 +261,7 @@ + fi + if [ x$old_ip_address != x ]; then + # Shut down interface, which will delete routes and clear arp cache. +- ifconfig $interface inet 0 down ++ ifconfig $interface inet 0 + fi + if [ x$alias_ip_address != x ]; then + ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg +@@ -182,27 +275,37 @@ + ifconfig $interface:0- inet 0 + fi + ifconfig $interface inet $new_ip_address $new_subnet_arg \ +- $new_broadcast_arg ++ $new_broadcast_arg + set $new_routers + ############## what is -w in ping? + if ping -q -c 1 $1; then + if [ x$new_ip_address != x$alias_ip_address ] && \ +- [ x$alias_ip_address != x ]; then ++ [ x$alias_ip_address != x ]; then + ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg + route add -host $alias_ip_address dev $interface:0 + fi + if [ $relmajor -lt 2 ] || \ +- ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then ++ ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then + route add -net $new_network_number + fi + for router in $new_routers; do + route add default gw $router + done +- make_resolv_conf ++ if use_netconfig ; then ++ netconfig_modify ++ else ++ make_resolv_conf ++ fi + exit_with_hooks 0 + fi +- ifconfig $interface inet 0 down ++ ifconfig $interface inet 0 + exit_with_hooks 1 + fi + ++if use_netconfig ; then ++ netconfig_remove ++else ++ restore_resolv_conf ++fi ++ + exit_with_hooks 0 diff --git a/dhcp-send-hostname-rml.patch b/dhcp-3.1.1-dhclient-send-hostname-rml.dif similarity index 56% rename from dhcp-send-hostname-rml.patch rename to dhcp-3.1.1-dhclient-send-hostname-rml.dif index 2312fcf..bae7f56 100644 --- a/dhcp-send-hostname-rml.patch +++ b/dhcp-3.1.1-dhclient-send-hostname-rml.dif @@ -1,13 +1,6 @@ -Add -H flag to specify a hostname to send to the DHCP server - - client/dhclient.8 | 8 ++++++++ - client/dhclient.c | 41 +++++++++++++++++++++++++++++++++++++++-- - 2 files changed, 47 insertions(+), 2 deletions(-) - -diff -urN dhcp-3.0.3/client/dhclient.8 dhcp/client/dhclient.8 ---- dhcp-3.0.3/client/dhclient.8 2006-05-04 13:06:38.000000000 -0400 -+++ dhcp/client/dhclient.8 2006-05-04 13:08:33.000000000 -0400 -@@ -33,6 +33,9 @@ +--- client/dhclient.8 ++++ client/dhclient.8 2008/09/08 15:19:13 +@@ -36,6 +36,9 @@ .I port ] [ @@ -17,9 +10,9 @@ diff -urN dhcp-3.0.3/client/dhclient.8 dhcp/client/dhclient.8 .B -d ] [ -@@ -165,6 +168,11 @@ +@@ -172,6 +175,11 @@ transmit on, the client will also use a different destination port - - one greater than the specified destination port. + one less than the specified port. .PP +The +.B -H @@ -29,18 +22,17 @@ diff -urN dhcp-3.0.3/client/dhclient.8 dhcp/client/dhclient.8 The DHCP client normally transmits any protocol messages it sends before acquiring an IP address to, 255.255.255.255, the IP limited broadcast address. For debugging purposes, it may be useful to have -diff -urN dhcp-3.0.3/client/dhclient.c dhcp/client/dhclient.c ---- dhcp-3.0.3/client/dhclient.c 2006-05-04 13:06:38.000000000 -0400 -+++ dhcp/client/dhclient.c 2006-05-04 13:09:41.000000000 -0400 -@@ -104,6 +104,7 @@ +--- client/dhclient.c ++++ client/dhclient.c 2008/09/08 15:17:50 +@@ -100,6 +100,7 @@ int main (argc, argv, envp) int no_dhclient_db = 0; int no_dhclient_pid = 0; int no_dhclient_script = 0; + char *dhclient_hostname = NULL; char *s; - /* Make sure we have stdin, stdout and stderr. */ -@@ -186,6 +187,15 @@ + /* Make sure that file descriptors 0 (stdin), 1, (stdout), and +@@ -189,6 +190,15 @@ int main (argc, argv, envp) if (++i == argc) usage (); relay = argv [i]; @@ -49,27 +41,27 @@ diff -urN dhcp-3.0.3/client/dhclient.c dhcp/client/dhclient.c + usage (); + if (strlen (argv[i]) > HOST_NAME_MAX) { + log_error("-H option host-name string \"%s\" is too long:" -+ "maximum length is %d characters", argv[i], HOST_NAME_MAX); ++ "maximum length is %d characters", argv[i], HOST_NAME_MAX); + exit(1); + } + dhclient_hostname = argv [i]; } else if (!strcmp (argv [i], "-nw")) { nowait = 1; } else if (!strcmp (argv [i], "-n")) { -@@ -350,6 +360,33 @@ +@@ -345,6 +355,32 @@ int main (argc, argv, envp) /* Parse the dhclient.conf file. */ read_client_conf (); + /* If the user specified a hostname, send it here and now */ -+ if ((dhclient_hostname != NULL) && (*dhclient_hostname != '\0') ) { ++ if ((dhclient_hostname != NULL) && (*dhclient_hostname != '\0') ) { + struct parse *cfile = NULL; + char buf[HOST_NAME_MAX + 40]; + int len; + -+ len = snprintf (buf, sizeof(buf), "send host-name \"%s\";", dhclient_hostname); ++ snprintf (buf, sizeof(buf), "send host-name \"%s\";", dhclient_hostname); ++ len = strlen(buf); + + status = new_parse (&cfile, -1, buf, len, "host-name option", 0); -+ + if (status != ISC_R_SUCCESS) + log_fatal ("Cannot parse send host-name statement!"); + @@ -82,7 +74,6 @@ diff -urN dhcp-3.0.3/client/dhclient.c dhcp/client/dhclient.c + break; + + parse_client_statement (cfile, NULL, &top_level_config); -+ + } + end_parse (&cfile); + } @@ -90,15 +81,15 @@ diff -urN dhcp-3.0.3/client/dhclient.c dhcp/client/dhclient.c /* Parse the lease database. */ read_client_leases (); -@@ -487,9 +524,9 @@ +@@ -483,9 +519,9 @@ static void usage () + log_info (arr); log_info (url); - #ifdef EXTENDED_NEW_OPTION_INFO -- log_error ("Usage: dhclient [-1dqr] [-nwx] [-p ] %s", -+ log_error ("Usage: dhclient [-1dqr] [-nwx] [-H ] [-p ] %s", - #else -- log_error ("Usage: dhclient [-1dqr] [-nw] [-p ] %s", -+ log_error ("Usage: dhclient [-1dqr] [-nw] [-H ] [-p ] %s", - #endif +- log_error ("Usage: dhclient [-1dqrx] [-nw] [-p ] %s", ++ log_error ("Usage: dhclient [-1dqrx] [-nw] [-H ] [-p ] %s", "[-s server]"); - log_error (" [-cf config-file] [-lf lease-file]%s", +- log_error (" [-cf config-file] [-lf lease-file]%s", ++ log_error (" [-cf config-file] [-lf lease-file] %s", + "[-pf pid-file] [-e VAR=val]"); + log_fatal (" [-sf script-file] [interface]"); + } diff --git a/dhcp-3.1.1-dhclient-use-script-cmdline.dif b/dhcp-3.1.1-dhclient-use-script-cmdline.dif new file mode 100644 index 0000000..3af4c88 --- /dev/null +++ b/dhcp-3.1.1-dhclient-use-script-cmdline.dif @@ -0,0 +1,17 @@ +--- client/dhclient.c ++++ client/dhclient.c 2008/09/08 15:31:00 +@@ -355,6 +355,14 @@ int main (argc, argv, envp) + /* Parse the dhclient.conf file. */ + read_client_conf (); + ++ /* ++ ** Override the script name definition in the config file ++ ** with the one provided as command line argument...: ++ */ ++ if(no_dhclient_script) { ++ top_level_config.script_name = path_dhclient_script; ++ } ++ + /* If the user specified a hostname, send it here and now */ + if ((dhclient_hostname != NULL) && (*dhclient_hostname != '\0') ) { + struct parse *cfile = NULL; diff --git a/dhcp-3.0.3-man.dif b/dhcp-3.1.1-man-includes.dif similarity index 51% rename from dhcp-3.0.3-man.dif rename to dhcp-3.1.1-man-includes.dif index 1b272b3..0729ac2 100644 --- a/dhcp-3.0.3-man.dif +++ b/dhcp-3.1.1-man-includes.dif @@ -1,7 +1,6 @@ -diff -uNr dhcp-3.0.3.orig/dhcpctl/dhcpctl.3 dhcp-3.0.3/dhcpctl/dhcpctl.3 ---- dhcp-3.0.3.orig/dhcpctl/dhcpctl.3 2004-09-24 23:08:38.000000000 +0200 -+++ dhcp-3.0.3/dhcpctl/dhcpctl.3 2006-03-29 15:46:13.281689267 +0200 -@@ -425,8 +425,8 @@ +--- dhcpctl/dhcpctl.3 ++++ dhcpctl/dhcpctl.3 2008/09/08 10:02:38 +@@ -425,8 +425,8 @@ that most error checking has been ommitt #include #include @@ -12,10 +11,9 @@ diff -uNr dhcp-3.0.3.orig/dhcpctl/dhcpctl.3 dhcp-3.0.3/dhcpctl/dhcpctl.3 int main (int argc, char **argv) { dhcpctl_data_string ipaddrstring = NULL; -diff -uNr dhcp-3.0.3.orig/omapip/omapi.3 dhcp-3.0.3/omapip/omapi.3 ---- dhcp-3.0.3.orig/omapip/omapi.3 2004-09-24 23:08:38.000000000 +0200 -+++ dhcp-3.0.3/omapip/omapi.3 2006-03-29 15:46:57.128056679 +0200 -@@ -87,8 +87,8 @@ +--- omapip/omapi.3 ++++ omapip/omapi.3 2008/09/08 10:02:38 +@@ -87,8 +87,8 @@ the lease ends. #include #include diff --git a/dhcp-3.1.1-omapi-test.c.dif b/dhcp-3.1.1-omapi-test.c.dif new file mode 100644 index 0000000..e0be4ee --- /dev/null +++ b/dhcp-3.1.1-omapi-test.c.dif @@ -0,0 +1,10 @@ +--- omapip/test.c ++++ omapip/test.c 2008/09/05 08:24:16 +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + + int main (int argc, char **argv) + { diff --git a/dhcp-3.0b2pl18.paranoia.dif b/dhcp-3.1.1-paranoia.dif similarity index 84% rename from dhcp-3.0b2pl18.paranoia.dif rename to dhcp-3.1.1-paranoia.dif index 2c654ba..340cba8 100644 --- a/dhcp-3.0b2pl18.paranoia.dif +++ b/dhcp-3.1.1-paranoia.dif @@ -1,6 +1,6 @@ --- server/dhcpd.c -+++ server/dhcpd.c Sun Mar 18 03:58:15 2001 -@@ -56,6 +56,15 @@ ++++ server/dhcpd.c 2008/09/05 08:22:38 +@@ -47,6 +47,15 @@ static char url [] = "For info, please v #include "version.h" #include @@ -15,8 +15,8 @@ + static void usage PROTO ((void)); - TIME cur_time; -@@ -214,6 +223,15 @@ + struct iaddr server_identifier; +@@ -225,6 +234,15 @@ int main (argc, argv, envp) char *traceinfile = (char *)0; char *traceoutfile = (char *)0; #endif @@ -30,9 +30,9 @@ +#endif + - /* Set up the client classification system. */ - classification_setup (); -@@ -262,6 +280,20 @@ + /* Make sure that file descriptors 0 (stdin), 1, (stdout), and + 2 (stderr) are open. To do this, we assume that when we +@@ -286,6 +304,20 @@ int main (argc, argv, envp) daemon = 0; #endif log_perror = -1; @@ -53,7 +53,7 @@ } else if (!strcmp (argv [i], "-s")) { if (++i == argc) usage (); -@@ -323,7 +355,7 @@ +@@ -347,7 +379,7 @@ int main (argc, argv, envp) log_fatal ("Insufficient memory to %s %s: %s", "record interface", argv [i], isc_result_totext (result)); @@ -62,7 +62,7 @@ if (interfaces) { interface_reference (&tmp -> next, interfaces, MDL); -@@ -384,6 +416,66 @@ +@@ -412,6 +444,66 @@ int main (argc, argv, envp) } } @@ -129,9 +129,9 @@ remote_port = htons (ntohs (local_port) + 1); if (server) { -@@ -587,6 +679,27 @@ - dump_rc_history (); - #endif +@@ -601,6 +693,27 @@ int main (argc, argv, envp) + omapi_set_int_value ((omapi_object_t *)dhcp_control_object, + (omapi_object_t *)0, "state", server_running); +#ifdef PARANOIA + /* change uid to the specified one */ @@ -157,7 +157,7 @@ /* Receive packets and dispatch them... */ dispatch (); -@@ -851,6 +964,10 @@ +@@ -879,6 +992,10 @@ static void usage () log_fatal ("Usage: dhcpd [-p ] [-d] [-f]%s%s%s%s", "\n [-cf config-file] [-lf lease-file]", diff --git a/dhcp-3.0rc10.dif b/dhcp-3.1.1-paths.dif similarity index 60% rename from dhcp-3.0rc10.dif rename to dhcp-3.1.1-paths.dif index e5f4618..c673f93 100644 --- a/dhcp-3.0rc10.dif +++ b/dhcp-3.1.1-paths.dif @@ -1,17 +1,64 @@ ---- Makefile.conf.orig Tue Jun 26 20:31:36 2001 -+++ Makefile.conf Mon Jul 2 11:37:29 2001 -@@ -38,8 +38,8 @@ +--- includes/cf/linux.h ++++ includes/cf/linux.h 2008/09/08 09:56:54 +@@ -75,7 +75,7 @@ extern int h_errno; + + #include /* gettimeofday()*/ + +-/* Databases go in /var/state/dhcp. It would also be valid to put them ++/* Databases go in /var/lib/dhcp. It would also be valid to put them + in /var/state/misc - indeed, given that there's only one lease file, it + would probably be better. However, I have some ideas for optimizing + the lease database that may result in a _lot_ of smaller files being +@@ -83,11 +83,11 @@ extern int h_errno; + directory. */ + + #ifndef _PATH_DHCPD_DB +-#define _PATH_DHCPD_DB "/var/state/dhcp/dhcpd.leases" ++#define _PATH_DHCPD_DB "/var/lib/dhcp/db/dhcpd.leases" + #endif + + #ifndef _PATH_DHCLIENT_DB +-#define _PATH_DHCLIENT_DB "/var/state/dhcp/dhclient.leases" ++#define _PATH_DHCLIENT_DB "/var/lib/dhcp/dhclient.leases" + #endif + + /* Varargs stuff... */ +--- includes/dhcpd.h ++++ includes/dhcpd.h 2008/09/08 09:56:54 +@@ -1062,7 +1062,7 @@ typedef unsigned char option_mask [16]; + #endif + + #ifndef _PATH_DHCPD_DB +-#define _PATH_DHCPD_DB "/etc/dhcpd.leases" ++#define _PATH_DHCPD_DB "/var/lib/dhcp/db/dhcpd.leases" + #endif + + #ifndef _PATH_DHCPD_PID +@@ -1083,7 +1083,7 @@ typedef unsigned char option_mask [16]; + #endif + + #ifndef _PATH_DHCLIENT_DB +-#define _PATH_DHCLIENT_DB "/etc/dhclient.leases" ++#define _PATH_DHCLIENT_DB "/var/run/dhclient.leases" + #endif + + #ifndef _PATH_RESOLV_CONF +--- Makefile.conf ++++ Makefile.conf 2008/09/08 09:56:58 +@@ -42,8 +42,10 @@ CATMANPAGES = ETC = /etc VARRUN = /var/run VARDB = /var/db -LIBDIR=/usr/local/lib -INCDIR=/usr/local/include ++ifeq (${LIBDIR},) +LIBDIR=/usr/lib ++endif +INCDIR=/usr/include LIBS = COPTS = $(BINDDEF) $(CC_OPTIONS) DEBUG = -g -@@ -288,17 +288,17 @@ +@@ -277,17 +279,17 @@ MINORVERSION=MinorVersion #COPTS = -DLINUX_MAJOR=$(MAJORVERSION) -DLINUX_MINOR=$(MINORVERSION) \ # $(BINDDEF) $(CC_OPTIONS) #CF = cf/linux.h @@ -34,7 +81,7 @@ #SCRIPT=linux ##--linux-2.0-- -@@ -307,17 +307,17 @@ +@@ -296,17 +298,17 @@ MINORVERSION=MinorVersion #COPTS = -DLINUX_MAJOR=$(MAJORVERSION) -DLINUX_MINOR=$(MINORVERSION) \ # $(BINDDEF) $(CC_OPTIONS) #CF = cf/linux.h @@ -57,7 +104,7 @@ #SCRIPT=linux ##--linux-2.1-- -@@ -326,20 +326,36 @@ +@@ -315,20 +317,36 @@ MINORVERSION=MinorVersion #COPTS = -DLINUX_MAJOR=$(MAJORVERSION) -DLINUX_MINOR=$(MINORVERSION) \ # $(BINDDEF) $(CC_OPTIONS) #CF = cf/linux.h @@ -99,114 +146,3 @@ ## SCO UnixWare 7 ##--uw7-- #CF = cf/uw7.h ---- client/dhclient.conf -+++ client/dhclient.conf 2000/07/24 10:40:54 -@@ -1,8 +1,28 @@ --send host-name "andare.fugue.com"; --send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; -+# dhclient configuration file -+# see "man dhclient.conf" for further details -+# file: /etc/dhclient.conf -+# -+ -+ -+###################################################### -+# Suggested configurations for Cable Modem providers # -+# -+# uncomment and fill in the appropriate section -+ -+##################################################### -+# @Home -- TCI, etc -+# -+# Uncomment the following line and enter your Client ID, which should -+# have come in your mail from @Home -+# -+# send dhcp-client-identifier "c32423-a" -+ -+#send host-name "andare.fugue.com"; -+#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; -+#supersede domain-name "fugue.com home.vix.com"; -+#prepend domain-name-servers 127.0.0.1; -+ - send dhcp-lease-time 3600; --supersede domain-name "fugue.com home.vix.com"; --prepend domain-name-servers 127.0.0.1; - request subnet-mask, broadcast-address, time-offset, routers, - domain-name, domain-name-servers, host-name; - require subnet-mask, domain-name-servers; -@@ -11,26 +31,7 @@ - reboot 10; - select-timeout 5; - initial-interval 2; --script "/etc/dhclient-script"; --media "-link0 -link1 -link2", "link0 link1"; --reject 192.33.137.209; -- --alias { -- interface "ep0"; -- fixed-address 192.5.5.213; -- option subnet-mask 255.255.255.255; --} -- --lease { -- interface "ep0"; -- fixed-address 192.33.137.200; -- medium "link0 link1"; -- option host-name "andare.swiftmedia.com"; -- option subnet-mask 255.255.255.0; -- option broadcast-address 192.33.137.255; -- option routers 192.33.137.250; -- option domain-name-servers 127.0.0.1; -- renew 2 2000/1/12 00:00:01; -- rebind 2 2000/1/12 00:00:01; -- expire 2 2000/1/12 00:00:01; --} -+script "/sbin/dhclient-script"; -+ -+#media "-link0 -link1 -link2", "link0 link1"; -+#reject 192.33.137.209; ---- includes/cf/linux.h -+++ includes/cf/linux.h Sun Mar 18 02:34:20 2001 -@@ -84,7 +84,7 @@ - - #include /* gettimeofday()*/ - --/* Databases go in /var/state/dhcp. It would also be valid to put them -+/* Databases go in /var/lib/dhcp. It would also be valid to put them - in /var/state/misc - indeed, given that there's only one lease file, it - would probably be better. However, I have some ideas for optimizing - the lease database that may result in a _lot_ of smaller files being -@@ -92,11 +92,11 @@ - directory. */ - - #ifndef _PATH_DHCPD_DB --#define _PATH_DHCPD_DB "/var/state/dhcp/dhcpd.leases" -+#define _PATH_DHCPD_DB "/var/lib/dhcp/db/dhcpd.leases" - #endif - - #ifndef _PATH_DHCLIENT_DB --#define _PATH_DHCLIENT_DB "/var/state/dhcp/dhclient.leases" -+#define _PATH_DHCLIENT_DB "/var/lib/dhcp/dhclient.leases" - #endif - - /* Varargs stuff... */ ---- includes/dhcpd.h -+++ includes/dhcpd.h Sun Mar 18 02:38:16 2001 -@@ -860,7 +860,7 @@ - #endif - - #ifndef _PATH_DHCPD_DB --#define _PATH_DHCPD_DB "/etc/dhcpd.leases" -+#define _PATH_DHCPD_DB "/var/lib/dhcp/db/dhcpd.leases" - #endif - - #ifndef _PATH_DHCPD_PID -@@ -877,7 +877,7 @@ - #endif - - #ifndef _PATH_DHCLIENT_DB --#define _PATH_DHCLIENT_DB "/etc/dhclient.leases" -+#define _PATH_DHCLIENT_DB "/var/run/dhclient.leases" - #endif - - #ifndef _PATH_RESOLV_CONF diff --git a/dhcp-3.0.3b1-pie.dif b/dhcp-3.1.1-pie.dif similarity index 100% rename from dhcp-3.0.3b1-pie.dif rename to dhcp-3.1.1-pie.dif diff --git a/dhcp-3.0.5-tmpfile.dif b/dhcp-3.1.1-tmpfile.dif similarity index 93% rename from dhcp-3.0.5-tmpfile.dif rename to dhcp-3.1.1-tmpfile.dif index be8f3e7..6e9688f 100644 --- a/dhcp-3.0.5-tmpfile.dif +++ b/dhcp-3.1.1-tmpfile.dif @@ -1,5 +1,5 @@ ---- dhcp-3.0.5/server/db.c -+++ dhcp-3.0.5/server/db.c 2006/11/07 10:19:41 +--- server/db.c ++++ server/db.c 2006/11/07 10:19:41 @@ -782,21 +782,16 @@ db_validity = lease_file_is_corrupt; diff --git a/dhcp-3.1.1.tar.gz b/dhcp-3.1.1.tar.gz new file mode 100644 index 0000000..70bff01 --- /dev/null +++ b/dhcp-3.1.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:129024c7545e3e8d37e75cd5d534b50c53955592c4935189a57916e216355f6d +size 798228 diff --git a/dhcp-3.1.1.tar.gz.asc b/dhcp-3.1.1.tar.gz.asc new file mode 100644 index 0000000..81be8dd --- /dev/null +++ b/dhcp-3.1.1.tar.gz.asc @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.9 (FreeBSD) + +iQEVAwUASCtC6iM0Ek4byR5sAQLL3QgAstoKreDh/9lqQDQ/LhwgsOdzL3aidqu1 +YPz23QMqMWTR9lxCeLHJlz3w6JzlgA+2JRDn8CKHO8EMayw99nwtJs+Eu1D1s77D +m3K7T/vz3rfFlk0ObmFD/p18nL5HdEU+jX7wzJS8Um0R9AWClwLfJU6g58OH37MG +RHqrW9pXKa2cehoiQ1fZexuoylLgz/Rrb8PY79xjazWEbJCEbkkp8ZNMX3j6+FkO +CW6HVjFMWIkfnjGWUAbgbO8myzETPuBoVvh7yrpGicjOgQ+FvqukWgww2AgaLo/X +iUAIfjhjqQT2qnHwVvA7v1GEzEkl6pRR86knG492Aj4HTflLGCjV/A== +=Zw8s +-----END PGP SIGNATURE----- diff --git a/dhcp.changes b/dhcp.changes index d12ed46..897ac0e 100644 --- a/dhcp.changes +++ b/dhcp.changes @@ -1,3 +1,39 @@ +------------------------------------------------------------------- +Fri Sep 12 16:58:22 CEST 2008 - mt@suse.de + +- Removed one of two option_state_dereference calls in dhclient.c + causing null pointer messages (not critical) in the log. +- Fixed a forgotten fi typo in the dhclient-script + +------------------------------------------------------------------- +Mon Sep 8 18:29:00 CEST 2008 - mt@suse.de + +- Updated to dhcp-3.1.1, providing following major new features + compared to its 3.0.x derivative: + * A significantly enhanced Failover protocol implementation, + which: + + Implements MAC Address Affinity to reduce the frequency + of clients being assigned new IP addresses; + + Supports the assignment of failover-protected addresses + to legacy BOOTP clients; + + Implements a dynamic lease reservation system that provides + improved accounting of the use of fixed address assignments, + by allocating fixed addresses out of the pool of dynamic leases + + Improves tools and reduces operator oversight necessary for + maintaining a functioning system. + * Support for DHCP leasequery, and the VIVCO/VIVSO options, which + makes easy and comfortable integration with DOCSIS devices and + the environment in which they are used. + * Management of class and subclass statements via OMAPI + * Several server configuration options related to dynamic DNS + behavior + * Other new configuration functions, including "execute()", + which runs a shell command from within a dhcpd or dhclient + configuration file + For a full list of new features added in this release, please + observe the changes list. +- Adopted/merged patches, dropped obsolete dhcdbd (NM) patches. + ------------------------------------------------------------------- Fri Aug 22 13:34:07 CEST 2008 - mt@suse.de diff --git a/dhcp.spec b/dhcp.spec index dbaea71..77fada9 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -1,5 +1,5 @@ # -# spec file for package dhcp (Version 3.0.7) +# spec file for package dhcp (Version 3.1.1) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -26,12 +26,12 @@ Name: dhcp %if %{?with_casa:%with_casa} BuildRequires: CASA-devel %endif -BuildRequires: openldap2-devel +BuildRequires: dos2unix openldap2-devel License: BSD 3-Clause Group: Productivity/Networking/Boot/Servers AutoReqProv: on -Version: 3.0.7 -Release: 1 +Version: 3.1.1 +Release: 2 Summary: Common Files Used by ISC DHCP Software Url: http://www.isc.org/isc/dhcp.html Source0: http://ftp.isc.org/isc/dhcp/dhcp-%{version}.tar.gz @@ -56,48 +56,34 @@ Source40: http://www3.baylor.edu/~Jeff_Wilson/GiveAway/leases.awk Source41: http://www.suse.de/~poeml/dnscompr.py Source42: dhcpd.xml Source43: SuSEfirewall2.dhcp-server -## adjust some paths -Patch: dhcp-3.0rc10.dif +Patch0: dhcp-3.1.1-paths.dif ## chroot patch by Ari Edelkind (see readme) ## and patch supplied by -Patch1: dhcp-3.0b2pl18.paranoia.dif -## add missing include -Patch2: test.c.dif -## improve resolv.conf handling: -Patch31: dhcp-3.0b2pl24.resolv.conf.dif -Patch32: dhclient.c.dif -## duplicate stdin, stdout and stderr for dhclient childs -Patch40: dhcp-3.0.6-dhclient-exec-filedes.dif -## other stuff -Patch41: makefile.diff -Patch51: dhcp-3.0.5-tmpfile.dif -Patch52: dhcp-3.0.3-man.dif +Patch1: dhcp-3.1.1-paranoia.dif +Patch2: dhcp-3.1.1-omapi-test.c.dif +Patch3: dhcp-3.1.1-man-includes.dif +Patch4: dhcp-3.1.1-tmpfile.dif ## LDAP support for DHCP server ## patch lives here: http://home.ntelos.net/~masneyb/ %define DHCPD_LDAP 1 %if %DHCPD_LDAP -Patch60: dhcp-3.0.5-ldap-patch.gz -Patch61: dhcp-3.0.5-ldap-patch_object-order.dif -Patch62: dhcp-3.0.5-ldap-patch_server_dn.dif -Patch63: dhcp-3.0.5-ldap-patch_host_brace.dif -Patch64: dhcp-3.0.6-ldap-patch_hwaddr-icase.dif -Patch65: dhcp-3.0.6-ldap-patch_external-dn.diff +Patch10: dhcp-3.0.5-ldap-patch_3.1.1.bz2 +Patch11: dhcp-3.0.5-ldap-patch_object-order.dif +Patch12: dhcp-3.0.5-ldap-patch_server_dn.dif +Patch13: dhcp-3.0.5-ldap-patch_host_brace.dif +Patch14: dhcp-3.0.6-ldap-patch_hwaddr-icase.dif +Patch15: dhcp-3.0.6-ldap-patch_external-dn.diff %endif %if %{?suse_version:%suse_version}%{?!suse_version:99999} > 930 -Patch70: dhcp-3.0.3b1-pie.dif +Patch30: dhcp-3.1.1-pie.dif %endif -# Add support for dhcdbd -Patch80: dhcp-3.0.2-extended_option_environment.patch -Patch81: dhcp-3.0.3-dhclient-script-dhcdbd.patch -Patch82: dhcp-3.0.6-dhclient-script-ntp-runtime.patch -Patch83: dhcp-3.0.6-dhclient-script-default-gw.patch -Patch84: dhcp-send-hostname-rml.patch -Patch85: dhcp-3.0.6-dhclient-conf-requests.patch -Patch86: dhcp-3.0.6-dhclient-conf-no-script.patch -Patch87: dhcp-3.0.6-dhclient-conf-requires.patch -Patch88: dhcp-3.0.6-dhclient-script-sethostname.patch -Patch89: dhcp-3.0.7-dhclient-script-skip-ifconfig-down.dif -Patch90: dhcp-3.0.7-dhclient-script-netconfig.dif +Patch40: dhcp-3.1.1-dhclient-exec-filedes.dif +Patch41: dhcp-3.1.1-dhclient-send-hostname-rml.dif +Patch42: dhcp-3.1.1-dhclient-use-script-cmdline.dif +Patch43: dhcp-3.1.1-dhclient-no-dereference-twice.dif +Patch50: dhcp-3.1.1-dhclient-conf.dif +Patch60: dhcp-3.1.1-dhclient-script.dif +## Obsoletes: dhcp-base Provides: dhcp-base:/usr/bin/omshell PreReq: /bin/touch /sbin/chkconfig @@ -205,37 +191,30 @@ Authors: %prep %setup -q -n %{name}-%{version} -%patch0 -p0 -b ".paths" +## +%patch0 -p0 %patch1 -p0 -%patch2 -%patch31 -p1 -%patch32 -p1 -%patch40 -%patch41 -%patch51 -p1 -%patch52 -p1 +%patch2 -p0 +%patch3 -p0 +%patch4 -p0 %if %DHCPD_LDAP -%patch60 -p1 -%patch61 -p0 -%patch62 -p0 -%patch63 -p0 -%patch64 -p0 -%patch65 -p0 +%patch10 -p1 +%patch11 -p0 +%patch12 -p0 +%patch13 -p0 +%patch14 -p0 +%patch15 -p0 %endif %if %{?suse_version:%suse_version}%{?!suse_version:99999} > 930 -%patch70 +%patch30 -p0 %endif -%patch80 -p1 -%patch81 -p1 -%patch82 -p1 -%patch83 -p1 -%patch84 -p1 -%patch85 -p1 -%patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p0 -%patch90 -p0 +%patch40 -p0 +%patch41 -p0 +%patch42 -p0 +%patch43 -p0 +%patch50 -p0 +%patch60 -p0 +## find . -type f -name \*.cat\* -exec rm -f {} \; cp -p %{S:2} %{S:3} %{S:11} %{S:12} %{S:14} %{S:32} %{S:33} . for i in README LIESMICH; do @@ -245,6 +224,7 @@ cp -p $RPM_SOURCE_DIR/dhcp.README.upgrade README.upgrade cp -p $RPM_SOURCE_DIR/DDNS-howto.txt . echo "exec /usr/bin/genDDNSkey \"$@\"" > genDDNSKey.sh tar xzf $RPM_SOURCE_DIR/examples.tar.gz +dos2unix contrib/ms2isc/* %build export CFLAGS @@ -252,9 +232,10 @@ CFLAGS="$RPM_OPT_FLAGS -W -Wall -fno-strict-aliasing -Wno-unused -DEXTENDED_NEW_ %if %{?with_casa:%with_casa} CFLAGS="$CFLAGS -DLDAP_CASA_AUTH" %endif -%ifarch ia64 sparc64 alpha s390x ppc64 x86_64 - CFLAGS="$CFLAGS -DPTRSIZE_64BIT" -%endif +# seems obsolete (redefined reports) => double check +#%ifarch ia64 sparc64 alpha s390x ppc64 x86_64 +# CFLAGS="$CFLAGS -DPTRSIZE_64BIT" +#%endif %ifarch ppc ppc64 s390x # bugs 134590, 171532 CFLAGS="$CFLAGS -fsigned-char" @@ -315,6 +296,7 @@ cp -p $RPM_SOURCE_DIR/dnscompr.py . install -m 644 sysconfig.dhcpd $RPM_BUILD_ROOT/var/adm/fillup-templates/ install -m 644 sysconfig.syslog-dhcpd $RPM_BUILD_ROOT/var/adm/fillup-templates/ install -m 644 sysconfig.dhcrelay $RPM_BUILD_ROOT/var/adm/fillup-templates/ +rm -f $RPM_BUILD_ROOT/var/lib/dhcp/dhcpd.leases touch $RPM_BUILD_ROOT/var/lib/dhcp/dhclient.leases install -m 644 client/dhclient.conf $RPM_BUILD_ROOT/etc/dhclient.conf sed '/^max-lease-time/ a \ @@ -504,6 +486,36 @@ if ! test -f /.buildenv; then rm -rf $RPM_BUILD_ROOT; fi %doc %{_mandir}/man3/dhcpctl.3.gz %changelog +* Fri Sep 12 2008 mt@suse.de +- Removed one of two option_state_dereference calls in dhclient.c + causing null pointer messages (not critical) in the log. +- Fixed a forgotten fi typo in the dhclient-script +* Mon Sep 08 2008 mt@suse.de +- Updated to dhcp-3.1.1, providing following major new features + compared to its 3.0.x derivative: + * A significantly enhanced Failover protocol implementation, + which: + + Implements MAC Address Affinity to reduce the frequency + of clients being assigned new IP addresses; + + Supports the assignment of failover-protected addresses + to legacy BOOTP clients; + + Implements a dynamic lease reservation system that provides + improved accounting of the use of fixed address assignments, + by allocating fixed addresses out of the pool of dynamic leases + + Improves tools and reduces operator oversight necessary for + maintaining a functioning system. + * Support for DHCP leasequery, and the VIVCO/VIVSO options, which + makes easy and comfortable integration with DOCSIS devices and + the environment in which they are used. + * Management of class and subclass statements via OMAPI + * Several server configuration options related to dynamic DNS + behavior + * Other new configuration functions, including "execute()", + which runs a shell command from within a dhcpd or dhclient + configuration file + For a full list of new features added in this release, please + observe the changes list. +- Adopted/merged patches, dropped obsolete dhcdbd (NM) patches. * Fri Aug 22 2008 mt@suse.de - Adopted dhclient-script and manual page to use /sbin/netconfig that is replacing the modify_resolvconf mechanizm by default. diff --git a/makefile.diff b/makefile.diff deleted file mode 100644 index 766a372..0000000 --- a/makefile.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- Makefile.conf.ORG 2002-04-29 08:03:28.000000000 +0000 -+++ Makefile.conf 2002-04-29 08:04:48.000000000 +0000 -@@ -38,7 +38,11 @@ - ETC = /etc - VARRUN = /var/run - VARDB = /var/db --LIBDIR=/usr/lib -+ -+ifeq (${LIBDIR},) -+ LIBDIR=/usr/lib -+endif -+ - INCDIR=/usr/include - LIBS = - COPTS = $(BINDDEF) $(CC_OPTIONS) diff --git a/test.c.dif b/test.c.dif deleted file mode 100644 index 498563d..0000000 --- a/test.c.dif +++ /dev/null @@ -1,10 +0,0 @@ ---- omapip/test.c.orig Wed May 17 18:04:19 2000 -+++ omapip/test.c Wed May 16 19:06:18 2001 -@@ -48,6 +48,7 @@ - #include - #include - #include -+#include - - int main (int argc, char **argv) - {