This commit is contained in:
parent
f97f49a418
commit
c0482096e0
@ -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 <signal.h>
|
||||
|
||||
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"); */
|
||||
+}
|
||||
+
|
@ -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 <search.h>
|
||||
+
|
||||
+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 <port>] %s",
|
||||
+#else
|
||||
log_error ("Usage: dhclient [-1dqr] [-nw] [-p <port>] %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
|
@ -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
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:07534f18dc314f2bcf4084688898ddf2abf5bd98c46d62a165eefa9d005dcc0c
|
||||
size 45256
|
3
dhcp-3.0.5-ldap-patch_3.1.1.bz2
Normal file
3
dhcp-3.0.5-ldap-patch_3.1.1.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:09a632cd8f9ff436047cfa548eb2935409b246932075de8c084c4a9ba1080dd9
|
||||
size 38097
|
@ -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;
|
||||
+
|
@ -1,17 +0,0 @@
|
||||
Author: Timo Hoenig <thoenig at suse dot de>, Lars Mueller <lmuelle at suse dot de>, Marius Tomaschewski <mt at suse dot de>
|
||||
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;
|
@ -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;
|
@ -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
|
@ -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
|
@ -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
|
||||
|
@ -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" </dev/null
|
||||
+}
|
||||
|
||||
make_resolv_conf() {
|
||||
# first, look if we are allowed to modify resolv.conf:
|
||||
@@ -103,14 +133,22 @@ make_resolv_conf() {
|
||||
done
|
||||
}
|
||||
|
||||
+restore_resolv_conf() {
|
||||
+ # restore backup copy of resolv.conf
|
||||
+ if test -f /etc/resolv.conf.saved.by.dhclient ; then
|
||||
+ mv -f /etc/resolv.conf.saved.by.dhclient /etc/resolv.conf
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
remove_ntp_runtime_conf() {
|
||||
- if test -f "/var/run/ntp/servers.${interface}" ; then
|
||||
- rm -f "/var/run/ntp/servers.${interface}"
|
||||
+ # remove runtime ntp 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
|
||||
+ if test -x /etc/init.d/ntp ; then
|
||||
+ /etc/init.d/ntp try-restart
|
||||
fi
|
||||
+ fi
|
||||
}
|
||||
|
||||
make_ntp_runtime_conf() {
|
||||
@@ -313,8 +351,12 @@ if [ x$reason = xBOUND ] || [ x$reason =
|
||||
fi
|
||||
fi
|
||||
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 1 ) != 1 )); then
|
||||
- make_resolv_conf
|
||||
- make_ntp_runtime_conf
|
||||
+ if use_netconfig ; then
|
||||
+ netconfig_modify
|
||||
+ else
|
||||
+ make_resolv_conf
|
||||
+ make_ntp_runtime_conf
|
||||
+ fi
|
||||
eval `grep --no-filename "^DHCLIENT_SET_HOSTNAME=" /etc/sysconfig/network/dhcp`
|
||||
if [ "$DHCLIENT_SET_HOSTNAME" = yes ] ; then
|
||||
|
||||
@@ -377,19 +419,22 @@ if [ x$reason = xTIMEOUT ]; then
|
||||
for router in $new_routers; do
|
||||
route add default gw $router
|
||||
done
|
||||
- make_resolv_conf
|
||||
- make_ntp_runtime_conf
|
||||
+ if use_netconfig ; then
|
||||
+ netconfig_modify
|
||||
+ else
|
||||
+ make_resolv_conf
|
||||
+ make_ntp_runtime_conf
|
||||
+ fi
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
ifconfig $interface inet 0
|
||||
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
|
||||
+if use_netconfig ; then
|
||||
+ netconfig_remove
|
||||
+else
|
||||
+ restore_resolv_conf
|
||||
+ remove_ntp_runtime_conf
|
||||
fi
|
||||
-# remove runtime ntp conf
|
||||
-remove_ntp_runtime_conf
|
||||
-
|
||||
exit_with_hooks 0
|
@ -1,29 +0,0 @@
|
||||
--- client/scripts/linux
|
||||
+++ client/scripts/linux 2008/08/20 13:34:25
|
||||
@@ -266,7 +266,7 @@ if [ x$reason = xBOUND ] || [ x$reason =
|
||||
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
|
||||
fi
|
||||
@@ -347,7 +347,7 @@ if [ x$reason = xEXPIRE ] || [ x$reason
|
||||
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
|
||||
@@ -381,7 +381,7 @@ if [ x$reason = xTIMEOUT ]; then
|
||||
make_ntp_runtime_conf
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
- ifconfig $interface inet 0 down
|
||||
+ ifconfig $interface inet 0
|
||||
exit_with_hooks 1
|
||||
fi
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9ec6fbd37b4705fd8eed782b64790a246c56b5fd1d5e7de3109b6c23f41b9c50
|
||||
size 888829
|
@ -1,11 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (FreeBSD)
|
||||
|
||||
iQEVAwUASC4KIyM0Ek4byR5sAQKcWwgAx1QCWsGr3fSs8Bl7LuoF2u5IT3RfyhMQ
|
||||
NWur1xZXzG2nw+Zp+a/qR9Sx0ul4zs/OG2IQWBFccSrr3XSe7f6yCZvxrb7COaEf
|
||||
B863Rr2o3mEwGGGTxBt7OkTDG46cVz/vnXj4BT7wRVW3HLNuI0Fo3ud/oh0TwSAe
|
||||
5Y7wfw0Us+uUZ7QF6cSawwH5s0LWPJdONiH/HoZIWUZKicUgra589aGwv0b+r4Oj
|
||||
uW1/BCYlfQxAnCx91ZFXGPSBRw6aMxOWfgtoRHFFYWYn8R/Z5IOEIpJenL1iij0h
|
||||
DH0YAiMMvDtwL0PKhOx++Gp763acaqOVIFrZTKWLvdca+5Y3MCcSvA==
|
||||
=TyWN
|
||||
-----END PGP SIGNATURE-----
|
@ -1,161 +0,0 @@
|
||||
--- dhcp-3.0.1rc9/client/scripts/linux.orig Fri Apr 26 22:30:46 2002
|
||||
+++ dhcp-3.0.1rc9/client/scripts/linux Tue May 21 18:37:25 2002
|
||||
@@ -22,14 +22,101 @@
|
||||
# 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
|
||||
+ 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
|
79
dhcp-3.1.1-dhclient-conf.dif
Normal file
79
dhcp-3.1.1-dhclient-conf.dif
Normal file
@ -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;
|
||||
-}
|
||||
+
|
@ -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);
|
10
dhcp-3.1.1-dhclient-no-dereference-twice.dif
Normal file
10
dhcp-3.1.1-dhclient-no-dereference-twice.dif
Normal file
@ -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);
|
324
dhcp-3.1.1-dhclient-script.dif
Normal file
324
dhcp-3.1.1-dhclient-script.dif
Normal file
@ -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" </dev/null
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
make_resolv_conf() {
|
||||
+ ###
|
||||
+ ### note: this function is never used
|
||||
+ ### it creates /var/lib/dhcp/resolv.conf.dhclient.$interface only
|
||||
+ ###
|
||||
if [ x"$new_domain_name_servers" != x ]; then
|
||||
- cat /dev/null > /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
|
@ -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 <port>] %s",
|
||||
+ log_error ("Usage: dhclient [-1dqr] [-nwx] [-H <hostname>] [-p <port>] %s",
|
||||
#else
|
||||
- log_error ("Usage: dhclient [-1dqr] [-nw] [-p <port>] %s",
|
||||
+ log_error ("Usage: dhclient [-1dqr] [-nw] [-H <hostname>] [-p <port>] %s",
|
||||
#endif
|
||||
- log_error ("Usage: dhclient [-1dqrx] [-nw] [-p <port>] %s",
|
||||
+ log_error ("Usage: dhclient [-1dqrx] [-nw] [-H <hostname>] [-p <port>] %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]");
|
||||
}
|
17
dhcp-3.1.1-dhclient-use-script-cmdline.dif
Normal file
17
dhcp-3.1.1-dhclient-use-script-cmdline.dif
Normal file
@ -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;
|
@ -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 <stdio.h>
|
||||
#include <netinet/in.h>
|
||||
|
||||
@ -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 <stdio.h>
|
||||
#include <netinet/in.h>
|
||||
|
10
dhcp-3.1.1-omapi-test.c.dif
Normal file
10
dhcp-3.1.1-omapi-test.c.dif
Normal file
@ -0,0 +1,10 @@
|
||||
--- omapip/test.c
|
||||
+++ omapip/test.c 2008/09/05 08:24:16
|
||||
@@ -40,6 +40,7 @@
|
||||
#include <isc-dhcp/result.h>
|
||||
#include <sys/time.h>
|
||||
#include <omapip/omapip.h>
|
||||
+#include <string.h>
|
||||
|
||||
int main (int argc, char **argv)
|
||||
{
|
@ -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 <omapip/omapip_p.h>
|
||||
|
||||
@ -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 <UDP port #>] [-d] [-f]%s%s%s%s",
|
||||
"\n [-cf config-file] [-lf lease-file]",
|
@ -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 <sys/time.h> /* 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 <sys/time.h> /* 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
|
@ -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;
|
3
dhcp-3.1.1.tar.gz
Normal file
3
dhcp-3.1.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:129024c7545e3e8d37e75cd5d534b50c53955592c4935189a57916e216355f6d
|
||||
size 798228
|
11
dhcp-3.1.1.tar.gz.asc
Normal file
11
dhcp-3.1.1.tar.gz.asc
Normal file
@ -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-----
|
36
dhcp.changes
36
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
|
||||
|
||||
|
144
dhcp.spec
144
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 <thomas@suse.de>
|
||||
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.
|
||||
|
@ -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)
|
10
test.c.dif
10
test.c.dif
@ -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 <isc/result.h>
|
||||
#include <sys/time.h>
|
||||
#include <omapip/omapip.h>
|
||||
+#include <string.h>
|
||||
|
||||
int main (int argc, char **argv)
|
||||
{
|
Loading…
Reference in New Issue
Block a user