Update to 3.0b2pl16, assign maintainership to Cyrille Lefevre.

PR:		24911
Submitted by:	Cyrille Lefevre <clefevre@citeweb.net> - new maintainer
This commit is contained in:
Peter Pentchev 2001-02-17 14:17:30 +00:00
parent 7713ca3769
commit dbf330cfa8
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=38426
60 changed files with 1655 additions and 675 deletions

View file

@ -7,19 +7,16 @@
# #
PORTNAME= isc-dhcp3 PORTNAME= isc-dhcp3
PORTVERSION= 3.0.b2.11 PORTVERSION= 3.0.b2.16
CATEGORIES= net CATEGORIES= net
MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/ MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/
DISTNAME= dhcp-3.0b2pl${PORTVERSION:S/3.0.b2.//g} DISTNAME= ${PORTNAME:S/isc-//:S/3/-/}${PORTVERSION:S/.b/b/:R}pl${PORTVERSION:E}
MAINTAINER= ports@FreeBSD.org MAINTAINER= clefevre@citeweb.net
.if defined(USE_FACILITY) #
_USE_FACILITY:= `${ECHO} ${USE_FACILITY} | ${TR} "[:lower:]" "[:upper:]"` # Global variables
USE_FACILITY= ${_USE_FACILITY} #
.else
USE_FACILITY= DAEMON
.endif
HAS_CONFIGURE= yes HAS_CONFIGURE= yes
@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \
dhcpd.leases.5 dhcpd.leases.5
MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8 MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8
pre-fetch: #
.if ${USE_FACILITY} == "DAEMON" # Local variables
@${ECHO} "" #
@${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:"
@${ECHO} " daemon, local{0-7}" PATCH_SUBDIRS= client common dhcpctl minires omapip relay server
@${ECHO} " 'daemon' is the default option if one is not defined."
@${ECHO} " Press Control-C and run make clean build LOG_FACILITY=<local{0-7}>," BIN_FILES= dhclient dhcpd dhcrelay
@${ECHO} " if you wish to use a different logging facility." SAMP_FILES= client/dhclient.conf server/dhcpd.conf
@${ECHO} "" RCD_FILES= isc-dhcpd.sh.sample
@sleep 2 DOC_FILES= CHANGES COPYRIGHT README RELNOTES
DATA_FILES= dhclient.leases dhcpd.leases
CONF_FILES= dhclient.conf
BIN_DIR= ${PREFIX}/sbin
ETC_DIR= ${PREFIX}/etc
RCD_DIR= ${PREFIX}/etc/rc.d
DOC_DIR= ${PREFIX}/share/doc/${PORTNAME}
VARDB_DIR= /var/db
STRIP?= strip
#
# Post-patch
#
post-patch: patch-scripts patch-makefiles
patch-scripts:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' \
${WRKSRC}/client/scripts/freebsd
patch-makefiles:
.for subdir in ${PATCH_SUBDIRS}
@${PERL} -pi.fbsd -e \
's|^DEBUG[ ]*=|DEBUG ?=|g;s|^CFLAGS[ ]*=|CFLAGS +=|g' \
${WRKSRC}/${subdir}/Makefile.dist
.endfor
#
# Post-install
#
post-install: strip-binary-files install-startup-files \
install-doc-files install-sample-files \
create-data-files create-conf-files
strip-binary-files:
.for file in ${BIN_FILES}
.if exists({BIN_DIR}/${file})
@${STRIP} ${BIN_DIR}/${file}
.endif
.endfor
install-startup-files:
.for file in ${RCD_FILES}
@${INSTALL_SCRIPT} ${FILESDIR}/${file} ${RCD_DIR}/${file}
.endfor
install-doc-files:
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOC_DIR}
.for file in ${DOC_FILES}
@${INSTALL_DATA} ${WRKSRC}/${file} ${DOC_DIR}/${file}
.endfor
.endif .endif
post-patch: install-sample-files:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h .for file in ${SAMP_FILES}
@${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h @${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/client/scripts/freebsd
.for MF in relay/Makefile.dist server/Makefile.dist client/Makefile.dist common/Makefile.dist dhcpctl/Makefile.dist minires/Makefile.dist omapip/Makefile.dist
@${PERL} -pi.fbsd -e 's|^DEBUG[ ]*=|DEBUG ?=|g ; s|^CFLAGS[ ]*=|CFLAGS +=|g' ${WRKSRC}/${MF}
.endfor .endfor
post-install: create-data-files:
${TOUCH} /var/db/dhcpd.leases .for file in ${DATA_FILES}
.for file in dhclient dhcpd dhcrelay .if !exists(${VARDB_DIR}/${file})
if [ -f ${PREFIX}/sbin/${file} ]; then \ @${TOUCH} ${VARDB_DIR}/${file}
strip ${PREFIX}/sbin/${file}; \ .endif
fi .endfor
create-conf-files:
.for file in ${CONF_FILES}
.if !exists(${ETC_DIR}/${file})
@${TOUCH} ${ETC_DIR}/${file}
.endif
.endfor .endfor
${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \
${PREFIX}/etc/rc.d
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -1 +1 @@
MD5 (dhcp-3.0b2pl11.tar.gz) = 5fd2c97d850c41e6445648a4108b509f MD5 (dhcp-3.0b2pl16.tar.gz) = 88fb65480a1b66c8d011957ea6c2e138

View file

@ -2,6 +2,7 @@
# $FreeBSD$ # $FreeBSD$
OPTIONS=""
IFACES="SET_THIS" IFACES="SET_THIS"
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
@ -11,10 +12,10 @@ fi
case "$1" in case "$1" in
start) start)
${PREFIX}/sbin/dhcpd $IFACES ${PREFIX}/sbin/dhcpd $OPTIONS $IFACES
;; ;;
stop) stop)
kill `cat /var/run/dhcpd.pid` killall dhcpd
;; ;;
restart) restart)
$0 stop $0 stop
@ -24,7 +25,7 @@ status)
ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)" ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)"
;; ;;
*) *)
echo "Usage: `basename $0` {start|stop|restart|status}" >&2 echo "usage: ${0##*/} {start|stop|restart|status}" >&2
;; ;;
esac esac

View file

@ -1,43 +1,20 @@
--- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000 --- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001
+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000 +++ includes/dhcpd.h Fri Jan 26 06:46:12 2001
@@ -329,7 +329,7 @@ @@ -672,7 +672,7 @@
#endif u_int32_t requested_lease; /* Requested lease time, if user
doesn't configure one. */
struct string_list *media; /* Possible network media values. */
- char *script_name; /* Name of config script. */
+ const char *script_name; /* Name of config script. */
char *vendor_space_name; /* Name of config script. */
enum policy bootp_policy;
/* Ignore, accept or prefer BOOTP
@@ -1864,6 +1864,8 @@
void set_ip_address PROTO ((struct interface_info *, struct in_addr));
#ifndef CL_DEFAULT_SCRIPT_NAME /* clparse.c */
-# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script" +extern const char *client_script_name;
+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script" +
#endif isc_result_t read_client_conf PROTO ((void));
void read_client_leases PROTO ((void));
#ifndef CL_DEFAULT_REQUESTED_OPTIONS void parse_client_statement PROTO ((struct parse *, struct interface_info *,
@@ -771,11 +771,11 @@
#define _PATH_DHCPD_DB "dhcpd.leases"
#else
#ifndef _PATH_DHCPD_CONF
-#define _PATH_DHCPD_CONF "/etc/dhcpd.conf"
+#define _PATH_DHCPD_CONF "!!PREFIX!!/etc/dhcpd.conf"
#endif
#ifndef _PATH_DHCPD_DB
-#define _PATH_DHCPD_DB "/etc/dhcpd.leases"
+#define _PATH_DHCPD_DB "!!PREFIX!!/etc/dhcpd.leases"
#endif
#ifndef _PATH_DHCPD_PID
@@ -784,7 +784,7 @@
#endif
#ifndef _PATH_DHCLIENT_CONF
-#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf"
+#define _PATH_DHCLIENT_CONF "!!PREFIX!!/etc/dhclient.conf"
#endif
#ifndef _PATH_DHCLIENT_PID
@@ -792,7 +792,7 @@
#endif
#ifndef _PATH_DHCLIENT_DB
-#define _PATH_DHCLIENT_DB "/etc/dhclient.leases"
+#define _PATH_DHCLIENT_DB "!!PREFIX!!/etc/dhclient.leases"
#endif
#ifndef _PATH_RESOLV_CONF

View file

@ -1,5 +1,11 @@
--- client/clparse.c.orig Wed Jul 19 21:13:10 2000 --- client/clparse.c.orig Thu Jan 25 09:17:17 2001
+++ client/clparse.c Thu Jul 20 21:52:53 2000 +++ client/clparse.c Fri Jan 26 06:11:01 2001
@@ -46 +46 @@ @@ -50,7 +50,7 @@
static TIME parsed_time;
-char client_script_name [] = "/etc/dhclient-script"; -char client_script_name [] = "/etc/dhclient-script";
+char client_script_name [] = CL_DEFAULT_SCRIPT_NAME; +const char *client_script_name = CL_DEFAULT_SCRIPT_NAME;
struct client_config top_level_config;

View file

@ -1,5 +1,5 @@
--- client/dhclient.8.orig Wed May 10 02:36:03 2000 --- client/dhclient.8.orig Mon May 1 19:11:36 2000
+++ client/dhclient.8 Wed May 10 02:39:43 2000 +++ client/dhclient.8 Fri Jan 26 05:12:37 2001
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
.B -q .B -q
] ]
@ -9,15 +9,59 @@
] ]
[ [
.B -lf .B -lf
@@ -170,6 +170,11 @@ @@ -49,6 +49,10 @@
.B -q .I config-file
]
[
+.B -sf
+.I script-file
+]
+[
.B -s
server
]
@@ -174,17 +178,25 @@
flag prevents any messages other than errors from being printed to the flag prevents any messages other than errors from being printed to the
standard error descriptor. standard error descriptor.
+.PP .PP
+The +The
+.B -1 +.B -1
+flag cause dhclient to try once to get a lease. If it fails, dhclient exits +flag cause dhclient to try once to get a lease. If it fails, dhclient exits
+with exit code two. +with exit code two.
.PP +.PP
The DHCP client normally gets its configuration information from The DHCP client normally gets its configuration information from
.B ETCDIR/dhclient.conf, .B ETCDIR/dhclient.conf,
its lease database from
-.B DBDIR/dhclient.leases
-and stores its process ID in a file called
+.B DBDIR/dhclient.leases,
+stores its process ID in a file called
.B RUNDIR/dhclient.pid.
+and configure the network interface using
+.B CLIENTBINDIR/dhclient-script.
To specify different names and/or locations for these files, use the
.B -cf,
-.B -lf
-and
+.B -lf,
.B -pf
+and
+.B -sf
flags, respectively, followed by the name of the file. This can be
particularly useful if, for example,
.B DBDIR
@@ -206,10 +218,12 @@
.SH CONFIGURATION
The syntax of the dhclient.conf(8) file is discussed seperately.
.SH FILES
+.B CLIENTBINDIR/dhclient-script,
.B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid,
-.B DBDIR/dhclient.leases~.
+.B DBDIR/dhclient.leases.
.SH SEE ALSO
-dhcpd(8), dhcrelay(8), dhclient.conf(5), dhclient.leases(5)
+dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5) and
+dhclient.leases(5).
.SH AUTHOR
.B dhclient(8)
has been written for the Internet Software Consortium

View file

@ -1,5 +1,5 @@
--- client/dhclient.c.orig Thu Sep 14 05:42:01 2000 --- client/dhclient.c.orig Thu Jan 25 09:18:06 2001
+++ client/dhclient.c Wed Sep 27 03:31:33 2000 +++ client/dhclient.c Fri Jan 26 06:15:50 2001
@@ -78,6 +78,7 @@ @@ -78,6 +78,7 @@
u_int16_t remote_port; u_int16_t remote_port;
int no_daemon; int no_daemon;
@ -8,7 +8,27 @@
static void usage PROTO ((void)); static void usage PROTO ((void));
@@ -176,6 +177,8 @@ @@ -104,6 +105,7 @@
int no_dhclient_conf = 0;
int no_dhclient_db = 0;
int no_dhclient_pid = 0;
+ int no_dhclient_script = 0;
char *s;
#ifdef SYSLOG_4_2
@@ -159,6 +161,11 @@
usage ();
path_dhclient_db = argv [i];
no_dhclient_db = 1;
+ } else if (!strcmp (argv [i], "-sf")) {
+ if (++i == argc)
+ usage ();
+ client_script_name = argv [i];
+ no_dhclient_script = 1;
} else if (!strcmp (argv [i], "-q")) {
quiet = 1;
quiet_interface_discovery = 1;
@@ -176,6 +183,8 @@
} else if (!strcmp (argv [i], "-w")) { } else if (!strcmp (argv [i], "-w")) {
/* do not exit if there are no broadcast interfaces. */ /* do not exit if there are no broadcast interfaces. */
persist = 1; persist = 1;
@ -17,16 +37,32 @@
} else if (argv [i][0] == '-') { } else if (argv [i][0] == '-') {
usage (); usage ();
} else { } else {
@@ -417,7 +420,7 @@ @@ -208,6 +217,9 @@
if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) {
path_dhclient_pid = s;
}
+ if (!no_dhclient_script && (s = getenv ("PATH_DHCLIENT_SCRIPT"))) {
+ client_script_name = s;
+ }
/* first kill of any currently running client */
if (release_mode) {
@@ -423,10 +435,11 @@
log_info (arr); log_info (arr);
log_info (url); log_info (url);
- log_error ("Usage: dhclient [-d] [-D] [-q] [-p <port>] %s", - log_error ("Usage: dhclient [-d] [-D] [-q] [-p <port>] %s",
+ log_error ("Usage: dhclient [-1] [-d] [-D] [-q] [-p <port>] %s", + log_error ("usage: dhclient [-1] [-d] [-D] [-q] [-p <port>] %s",
"[-s server]"); "[-s server]");
log_fatal (" [-lf lease-file] [-pf pid-file]%s", - log_fatal (" [-lf lease-file] [-pf pid-file]%s",
"[-cf config-file] [interface]"); - "[-cf config-file] [interface]");
@@ -1402,6 +1405,10 @@ + log_error (" [-cf config-file] [-lf lease-file] %s",
+ "[-pf pid-file] [-sf script-file]");
+ log_fatal (" [interface]");
}
isc_result_t find_class (struct class **c,
@@ -1432,6 +1445,10 @@
/* No leases were available, or what was available didn't work, so /* No leases were available, or what was available didn't work, so
tell the shell script that we failed to allocate an address, tell the shell script that we failed to allocate an address,
and try again later. */ and try again later. */

View file

@ -1,5 +1,5 @@
--- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000 --- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000
+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000 +++ client/scripts/freebsd Sat Jan 27 02:17:01 2001
@@ -1,5 +1,11 @@ @@ -1,5 +1,11 @@
#!/bin/sh #!/bin/sh
@ -55,12 +55,26 @@
hostname $new_host_name hostname $new_host_name
fi fi
fi fi
@@ -105,11 +111,18 @@ @@ -93,24 +99,31 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh
fi
if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
[ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
ifconfig $interface inet $new_ip_address $new_netmask_arg \ ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium $new_broadcast_arg $medium
+ $LOGGER "New IP Address($interface): $new_ip_address" + $LOGGER "New IP Address($interface): $new_ip_address"
+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask" + $LOGGER "New Subnet Mask($interface): $new_subnet_mask"
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
+ if [ "$new_routers" != "" ]; then + if [ "$new_routers" != "" ]; then
+ $LOGGER "New Routers: $new_routers" + $LOGGER "New Routers: $new_routers"
@ -70,11 +84,29 @@
route add default $router >/dev/null 2>&1 route add default $router >/dev/null 2>&1
done done
if [ "$new_static_routes" != "" ]; then if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ $LOGGER "New Static Routes: $new_static_routes" + $LOGGER "New Static Routes: $new_static_routes"
set $new_static_routes + set -- $new_static_routes
while [ $# -gt 1 ]; do while [ $# -gt 1 ]; do
route add $1 $2 route add $1 $2
@@ -161,8 +174,12 @@ shift; shift
@@ -138,13 +151,13 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
fi
if [ x$alias_ip_address != x ]; then
@@ -161,9 +174,13 @@
fi fi
ifconfig $interface inet $new_ip_address $new_netmask_arg \ ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium $new_broadcast_arg $medium
@ -83,7 +115,37 @@
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1 sleep 1
if [ "$new_routers" != "" ]; then if [ "$new_routers" != "" ]; then
- set $new_routers
+ $LOGGER "New Routers: $new_routers" + $LOGGER "New Routers: $new_routers"
set $new_routers + set -- $new_routers
if ping -q -c 1 $1; then if ping -q -c 1 $1; then
if [ x$new_ip_address != x$alias_ip_address ] && \ if [ x$new_ip_address != x$alias_ip_address ] && \
[ x$alias_ip_address != x ]; then
@@ -174,9 +191,9 @@
for router in $new_routers; do
route add default $router >/dev/null 2>&1
done
- set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
- route add $0 $1
+ route add $1 $2
shift; shift
done
make_resolv_conf
@@ -188,13 +205,13 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
exit_with_hooks 1
fi

View file

@ -1,23 +1,32 @@
--- site.conf.orig Wed Jul 7 08:20:10 1999 --- site.conf.orig Wed Jul 7 17:20:10 1999
+++ site.conf Tue Oct 3 08:59:57 2000 +++ site.conf Fri Jan 26 06:58:15 2001
@@ -1,2 +1,20 @@ @@ -1,2 +1,29 @@
# Put local site configuration stuff here to override the default # Put local site configuration stuff here to override the default
# settings in Makefile.conf # settings in Makefile.conf
+ +
+PREFIX ?= /usr/local +PREFIX ?= /usr/local
+ +
+ETC = $(PREFIX)/etc
+BINDIR = $(PREFIX)/sbin +BINDIR = $(PREFIX)/sbin
+CLIENTBINDIR = $(PREFIX)/sbin +CLIENTBINDIR = $(PREFIX)/sbin
+MANCAT = man
+ADMMANDIR = $(PREFIX)/man/man8 +ADMMANDIR = $(PREFIX)/man/man8
+ADMMANEXT = .8 +ADMMANEXT = .8
+FFMANDIR = $(PREFIX)/man/man5 +FFMANDIR = $(PREFIX)/man/man5
+FFMANEXT = .5 +FFMANEXT = .5
+LIBMANDIR = $(PREFIX)/man/man3 +LIBMANDIR = $(PREFIX)/man/man3
+LIBMANEXT = .3 +LIBMANEXT = .3
+MANCAT = man
+# INSTALL = ${INSTALL_DATA}
+# MANINSTALL = ${INSTALL_MAN}
+ETC = $(PREFIX)/etc
+LIBDIR = ${PREFIX}/lib
+INCDIR = ${PREFIX}/include
+ +
+DEBUG ?= #none +DEBUG ?= #none
+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(ETC)/dhclient-script\" +
+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(CLIENTBINDIR)/dhclient-script\"
+
+CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\" +CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\"
+CFLAGS += -D_PATH_DHCPD_DB=\"$(VARDB)/dhcpd.leases\"
+
+CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\" +CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\"
+CFLAGS += -D_PATH_DHCLIENT_DB=\"$(VARDB)/dhclient.leases\"

View file

@ -1,5 +0,0 @@
--- includes/site.h.orig Thu Sep 28 11:24:17 2000
+++ includes/site.h Sat Dec 2 00:46:53 2000
@@ -159 +159 @@
-/* #define DHCPD_LOG_FACILITY LOG_DAEMON */
+#define DHCPD_LOG_FACILITY LOG_!!USE_FACILITY!!

View file

@ -1,16 +1,17 @@
ISC-DHCP Dynamic Host Configuration Protocol server The ISC Dynamic Host Configuration Protocol Distribution provides
a freely redistributable reference implementation of all aspects
of the DHCP protocol, through a suite of DHCP tools:
This is a release of the Internet Software Consortium * A DHCP server
DHCP Server (ISC dhcpd). In this release, support for the core * A DHCP client
DHCP protocol is provided. BOOTP support is also provided for * A DHCP relay agent
backwards compatibility.
Version 3, Beta 2 of the ISC DHCP Distribution includes the following Version 3, Beta 2 of the ISC DHCP Distribution includes the following
features that are new since version 2.0: features that are new since version 2.0:
* DHCP Failover Protocol support * DHCP Failover Protocol support
* OMAPI, an API for accessing and modifying the DHCP * OMAPI, an API for accessing and modifying the DHCP
server and client state. server and client state.
* Conditional behaviour * Conditional behaviour
* Storing arbitrary information on leases * Storing arbitrary information on leases
* Address pools with access control * Address pools with access control
@ -19,10 +20,12 @@ features that are new since version 2.0:
* Relay agent information option support * Relay agent information option support
* Dynamic DNS updates * Dynamic DNS updates
* Many bug fixes, performance enhancements, and minor * Many bug fixes, performance enhancements, and minor
new DHCP protocol features. new DHCP protocol features.
A fully-featured implementation of dynamic DNS updates is included in Also, a fully-featured implementation of dynamic DNS updates is
this release. There are no build dependencies with any BIND version. included and there are no build dependencies with any BIND version.
Since patch-level 15, a log-facility configuration parameter has
been added, see the manual pages for details.
WWW: http://www.isc.org/products/DHCP/ WWW: http://www.isc.org/products/DHCP/

View file

@ -1,9 +1,8 @@
@comment $FreeBSD$ @comment $FreeBSD$
etc/dhclient-script etc/dhclient.conf.sample
sbin/dhclient etc/dhcpd.conf.sample
sbin/dhcpd
sbin/dhcrelay
etc/rc.d/isc-dhcpd.sh.sample etc/rc.d/isc-dhcpd.sh.sample
include/dhcpctl.h
include/isc/boolean.h include/isc/boolean.h
include/isc/dst.h include/isc/dst.h
include/isc/int.h include/isc/int.h
@ -11,13 +10,25 @@ include/isc/lang.h
include/isc/list.h include/isc/list.h
include/isc/result.h include/isc/result.h
include/isc/types.h include/isc/types.h
@dirrm include/isc
include/omapip/alloc.h include/omapip/alloc.h
include/omapip/buffer.h include/omapip/buffer.h
include/omapip/omapip.h include/omapip/omapip.h
@dirrm include/omapip
include/dhcpctl.h
lib/libomapi.a
lib/libdhcpctl.a lib/libdhcpctl.a
@exec touch /var/db/dhcpd.leases lib/libomapi.a
@exec touch %D/etc/dhclient.conf sbin/dhclient
sbin/dhclient-script
sbin/dhcpd
sbin/dhcrelay
share/doc/isc-dhcp3/CHANGES
share/doc/isc-dhcp3/COPYRIGHT
share/doc/isc-dhcp3/README
share/doc/isc-dhcp3/RELNOTES
@dirrm include/isc
@dirrm include/omapip
@dirrm share/doc/isc-dhcp3
@exec [ -f /var/db/dhclient.leases ] || touch /var/db/dhclient.leases
@unexec [ -s /var/db/dhclient.leases ] || rm -f /var/db/dhclient.leases
@exec [ -f /var/db/dhcpd.leases ] || touch /var/db/dhcpd.leases
@unexec [ -s /var/db/dhcpd.leases ] || rm -f /var/db/dhcpd.leases
@exec [ -f %D/etc/dhclient.conf ] || touch %D/etc/dhclient.conf
@unexec [ -L %D/etc/dhclient.conf -o -s %D/etc/dhclient.conf ] || rm -f %D/etc/dhclient.conf

View file

@ -7,19 +7,16 @@
# #
PORTNAME= isc-dhcp3 PORTNAME= isc-dhcp3
PORTVERSION= 3.0.b2.11 PORTVERSION= 3.0.b2.16
CATEGORIES= net CATEGORIES= net
MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/ MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/
DISTNAME= dhcp-3.0b2pl${PORTVERSION:S/3.0.b2.//g} DISTNAME= ${PORTNAME:S/isc-//:S/3/-/}${PORTVERSION:S/.b/b/:R}pl${PORTVERSION:E}
MAINTAINER= ports@FreeBSD.org MAINTAINER= clefevre@citeweb.net
.if defined(USE_FACILITY) #
_USE_FACILITY:= `${ECHO} ${USE_FACILITY} | ${TR} "[:lower:]" "[:upper:]"` # Global variables
USE_FACILITY= ${_USE_FACILITY} #
.else
USE_FACILITY= DAEMON
.endif
HAS_CONFIGURE= yes HAS_CONFIGURE= yes
@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \
dhcpd.leases.5 dhcpd.leases.5
MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8 MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8
pre-fetch: #
.if ${USE_FACILITY} == "DAEMON" # Local variables
@${ECHO} "" #
@${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:"
@${ECHO} " daemon, local{0-7}" PATCH_SUBDIRS= client common dhcpctl minires omapip relay server
@${ECHO} " 'daemon' is the default option if one is not defined."
@${ECHO} " Press Control-C and run make clean build LOG_FACILITY=<local{0-7}>," BIN_FILES= dhclient dhcpd dhcrelay
@${ECHO} " if you wish to use a different logging facility." SAMP_FILES= client/dhclient.conf server/dhcpd.conf
@${ECHO} "" RCD_FILES= isc-dhcpd.sh.sample
@sleep 2 DOC_FILES= CHANGES COPYRIGHT README RELNOTES
DATA_FILES= dhclient.leases dhcpd.leases
CONF_FILES= dhclient.conf
BIN_DIR= ${PREFIX}/sbin
ETC_DIR= ${PREFIX}/etc
RCD_DIR= ${PREFIX}/etc/rc.d
DOC_DIR= ${PREFIX}/share/doc/${PORTNAME}
VARDB_DIR= /var/db
STRIP?= strip
#
# Post-patch
#
post-patch: patch-scripts patch-makefiles
patch-scripts:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' \
${WRKSRC}/client/scripts/freebsd
patch-makefiles:
.for subdir in ${PATCH_SUBDIRS}
@${PERL} -pi.fbsd -e \
's|^DEBUG[ ]*=|DEBUG ?=|g;s|^CFLAGS[ ]*=|CFLAGS +=|g' \
${WRKSRC}/${subdir}/Makefile.dist
.endfor
#
# Post-install
#
post-install: strip-binary-files install-startup-files \
install-doc-files install-sample-files \
create-data-files create-conf-files
strip-binary-files:
.for file in ${BIN_FILES}
.if exists({BIN_DIR}/${file})
@${STRIP} ${BIN_DIR}/${file}
.endif
.endfor
install-startup-files:
.for file in ${RCD_FILES}
@${INSTALL_SCRIPT} ${FILESDIR}/${file} ${RCD_DIR}/${file}
.endfor
install-doc-files:
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOC_DIR}
.for file in ${DOC_FILES}
@${INSTALL_DATA} ${WRKSRC}/${file} ${DOC_DIR}/${file}
.endfor
.endif .endif
post-patch: install-sample-files:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h .for file in ${SAMP_FILES}
@${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h @${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/client/scripts/freebsd
.for MF in relay/Makefile.dist server/Makefile.dist client/Makefile.dist common/Makefile.dist dhcpctl/Makefile.dist minires/Makefile.dist omapip/Makefile.dist
@${PERL} -pi.fbsd -e 's|^DEBUG[ ]*=|DEBUG ?=|g ; s|^CFLAGS[ ]*=|CFLAGS +=|g' ${WRKSRC}/${MF}
.endfor .endfor
post-install: create-data-files:
${TOUCH} /var/db/dhcpd.leases .for file in ${DATA_FILES}
.for file in dhclient dhcpd dhcrelay .if !exists(${VARDB_DIR}/${file})
if [ -f ${PREFIX}/sbin/${file} ]; then \ @${TOUCH} ${VARDB_DIR}/${file}
strip ${PREFIX}/sbin/${file}; \ .endif
fi .endfor
create-conf-files:
.for file in ${CONF_FILES}
.if !exists(${ETC_DIR}/${file})
@${TOUCH} ${ETC_DIR}/${file}
.endif
.endfor .endfor
${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \
${PREFIX}/etc/rc.d
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -1 +1 @@
MD5 (dhcp-3.0b2pl11.tar.gz) = 5fd2c97d850c41e6445648a4108b509f MD5 (dhcp-3.0b2pl16.tar.gz) = 88fb65480a1b66c8d011957ea6c2e138

View file

@ -2,6 +2,7 @@
# $FreeBSD$ # $FreeBSD$
OPTIONS=""
IFACES="SET_THIS" IFACES="SET_THIS"
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
@ -11,10 +12,10 @@ fi
case "$1" in case "$1" in
start) start)
${PREFIX}/sbin/dhcpd $IFACES ${PREFIX}/sbin/dhcpd $OPTIONS $IFACES
;; ;;
stop) stop)
kill `cat /var/run/dhcpd.pid` killall dhcpd
;; ;;
restart) restart)
$0 stop $0 stop
@ -24,7 +25,7 @@ status)
ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)" ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)"
;; ;;
*) *)
echo "Usage: `basename $0` {start|stop|restart|status}" >&2 echo "usage: ${0##*/} {start|stop|restart|status}" >&2
;; ;;
esac esac

View file

@ -1,43 +1,20 @@
--- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000 --- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001
+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000 +++ includes/dhcpd.h Fri Jan 26 06:46:12 2001
@@ -329,7 +329,7 @@ @@ -672,7 +672,7 @@
#endif u_int32_t requested_lease; /* Requested lease time, if user
doesn't configure one. */
struct string_list *media; /* Possible network media values. */
- char *script_name; /* Name of config script. */
+ const char *script_name; /* Name of config script. */
char *vendor_space_name; /* Name of config script. */
enum policy bootp_policy;
/* Ignore, accept or prefer BOOTP
@@ -1864,6 +1864,8 @@
void set_ip_address PROTO ((struct interface_info *, struct in_addr));
#ifndef CL_DEFAULT_SCRIPT_NAME /* clparse.c */
-# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script" +extern const char *client_script_name;
+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script" +
#endif isc_result_t read_client_conf PROTO ((void));
void read_client_leases PROTO ((void));
#ifndef CL_DEFAULT_REQUESTED_OPTIONS void parse_client_statement PROTO ((struct parse *, struct interface_info *,
@@ -771,11 +771,11 @@
#define _PATH_DHCPD_DB "dhcpd.leases"
#else
#ifndef _PATH_DHCPD_CONF
-#define _PATH_DHCPD_CONF "/etc/dhcpd.conf"
+#define _PATH_DHCPD_CONF "!!PREFIX!!/etc/dhcpd.conf"
#endif
#ifndef _PATH_DHCPD_DB
-#define _PATH_DHCPD_DB "/etc/dhcpd.leases"
+#define _PATH_DHCPD_DB "!!PREFIX!!/etc/dhcpd.leases"
#endif
#ifndef _PATH_DHCPD_PID
@@ -784,7 +784,7 @@
#endif
#ifndef _PATH_DHCLIENT_CONF
-#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf"
+#define _PATH_DHCLIENT_CONF "!!PREFIX!!/etc/dhclient.conf"
#endif
#ifndef _PATH_DHCLIENT_PID
@@ -792,7 +792,7 @@
#endif
#ifndef _PATH_DHCLIENT_DB
-#define _PATH_DHCLIENT_DB "/etc/dhclient.leases"
+#define _PATH_DHCLIENT_DB "!!PREFIX!!/etc/dhclient.leases"
#endif
#ifndef _PATH_RESOLV_CONF

View file

@ -1,5 +1,11 @@
--- client/clparse.c.orig Wed Jul 19 21:13:10 2000 --- client/clparse.c.orig Thu Jan 25 09:17:17 2001
+++ client/clparse.c Thu Jul 20 21:52:53 2000 +++ client/clparse.c Fri Jan 26 06:11:01 2001
@@ -46 +46 @@ @@ -50,7 +50,7 @@
static TIME parsed_time;
-char client_script_name [] = "/etc/dhclient-script"; -char client_script_name [] = "/etc/dhclient-script";
+char client_script_name [] = CL_DEFAULT_SCRIPT_NAME; +const char *client_script_name = CL_DEFAULT_SCRIPT_NAME;
struct client_config top_level_config;

View file

@ -1,5 +1,5 @@
--- client/dhclient.8.orig Wed May 10 02:36:03 2000 --- client/dhclient.8.orig Mon May 1 19:11:36 2000
+++ client/dhclient.8 Wed May 10 02:39:43 2000 +++ client/dhclient.8 Fri Jan 26 05:12:37 2001
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
.B -q .B -q
] ]
@ -9,15 +9,59 @@
] ]
[ [
.B -lf .B -lf
@@ -170,6 +170,11 @@ @@ -49,6 +49,10 @@
.B -q .I config-file
]
[
+.B -sf
+.I script-file
+]
+[
.B -s
server
]
@@ -174,17 +178,25 @@
flag prevents any messages other than errors from being printed to the flag prevents any messages other than errors from being printed to the
standard error descriptor. standard error descriptor.
+.PP .PP
+The +The
+.B -1 +.B -1
+flag cause dhclient to try once to get a lease. If it fails, dhclient exits +flag cause dhclient to try once to get a lease. If it fails, dhclient exits
+with exit code two. +with exit code two.
.PP +.PP
The DHCP client normally gets its configuration information from The DHCP client normally gets its configuration information from
.B ETCDIR/dhclient.conf, .B ETCDIR/dhclient.conf,
its lease database from
-.B DBDIR/dhclient.leases
-and stores its process ID in a file called
+.B DBDIR/dhclient.leases,
+stores its process ID in a file called
.B RUNDIR/dhclient.pid.
+and configure the network interface using
+.B CLIENTBINDIR/dhclient-script.
To specify different names and/or locations for these files, use the
.B -cf,
-.B -lf
-and
+.B -lf,
.B -pf
+and
+.B -sf
flags, respectively, followed by the name of the file. This can be
particularly useful if, for example,
.B DBDIR
@@ -206,10 +218,12 @@
.SH CONFIGURATION
The syntax of the dhclient.conf(8) file is discussed seperately.
.SH FILES
+.B CLIENTBINDIR/dhclient-script,
.B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid,
-.B DBDIR/dhclient.leases~.
+.B DBDIR/dhclient.leases.
.SH SEE ALSO
-dhcpd(8), dhcrelay(8), dhclient.conf(5), dhclient.leases(5)
+dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5) and
+dhclient.leases(5).
.SH AUTHOR
.B dhclient(8)
has been written for the Internet Software Consortium

View file

@ -1,5 +1,5 @@
--- client/dhclient.c.orig Thu Sep 14 05:42:01 2000 --- client/dhclient.c.orig Thu Jan 25 09:18:06 2001
+++ client/dhclient.c Wed Sep 27 03:31:33 2000 +++ client/dhclient.c Fri Jan 26 06:15:50 2001
@@ -78,6 +78,7 @@ @@ -78,6 +78,7 @@
u_int16_t remote_port; u_int16_t remote_port;
int no_daemon; int no_daemon;
@ -8,7 +8,27 @@
static void usage PROTO ((void)); static void usage PROTO ((void));
@@ -176,6 +177,8 @@ @@ -104,6 +105,7 @@
int no_dhclient_conf = 0;
int no_dhclient_db = 0;
int no_dhclient_pid = 0;
+ int no_dhclient_script = 0;
char *s;
#ifdef SYSLOG_4_2
@@ -159,6 +161,11 @@
usage ();
path_dhclient_db = argv [i];
no_dhclient_db = 1;
+ } else if (!strcmp (argv [i], "-sf")) {
+ if (++i == argc)
+ usage ();
+ client_script_name = argv [i];
+ no_dhclient_script = 1;
} else if (!strcmp (argv [i], "-q")) {
quiet = 1;
quiet_interface_discovery = 1;
@@ -176,6 +183,8 @@
} else if (!strcmp (argv [i], "-w")) { } else if (!strcmp (argv [i], "-w")) {
/* do not exit if there are no broadcast interfaces. */ /* do not exit if there are no broadcast interfaces. */
persist = 1; persist = 1;
@ -17,16 +37,32 @@
} else if (argv [i][0] == '-') { } else if (argv [i][0] == '-') {
usage (); usage ();
} else { } else {
@@ -417,7 +420,7 @@ @@ -208,6 +217,9 @@
if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) {
path_dhclient_pid = s;
}
+ if (!no_dhclient_script && (s = getenv ("PATH_DHCLIENT_SCRIPT"))) {
+ client_script_name = s;
+ }
/* first kill of any currently running client */
if (release_mode) {
@@ -423,10 +435,11 @@
log_info (arr); log_info (arr);
log_info (url); log_info (url);
- log_error ("Usage: dhclient [-d] [-D] [-q] [-p <port>] %s", - log_error ("Usage: dhclient [-d] [-D] [-q] [-p <port>] %s",
+ log_error ("Usage: dhclient [-1] [-d] [-D] [-q] [-p <port>] %s", + log_error ("usage: dhclient [-1] [-d] [-D] [-q] [-p <port>] %s",
"[-s server]"); "[-s server]");
log_fatal (" [-lf lease-file] [-pf pid-file]%s", - log_fatal (" [-lf lease-file] [-pf pid-file]%s",
"[-cf config-file] [interface]"); - "[-cf config-file] [interface]");
@@ -1402,6 +1405,10 @@ + log_error (" [-cf config-file] [-lf lease-file] %s",
+ "[-pf pid-file] [-sf script-file]");
+ log_fatal (" [interface]");
}
isc_result_t find_class (struct class **c,
@@ -1432,6 +1445,10 @@
/* No leases were available, or what was available didn't work, so /* No leases were available, or what was available didn't work, so
tell the shell script that we failed to allocate an address, tell the shell script that we failed to allocate an address,
and try again later. */ and try again later. */

View file

@ -1,5 +1,5 @@
--- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000 --- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000
+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000 +++ client/scripts/freebsd Sat Jan 27 02:17:01 2001
@@ -1,5 +1,11 @@ @@ -1,5 +1,11 @@
#!/bin/sh #!/bin/sh
@ -55,12 +55,26 @@
hostname $new_host_name hostname $new_host_name
fi fi
fi fi
@@ -105,11 +111,18 @@ @@ -93,24 +99,31 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh
fi
if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
[ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
ifconfig $interface inet $new_ip_address $new_netmask_arg \ ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium $new_broadcast_arg $medium
+ $LOGGER "New IP Address($interface): $new_ip_address" + $LOGGER "New IP Address($interface): $new_ip_address"
+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask" + $LOGGER "New Subnet Mask($interface): $new_subnet_mask"
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
+ if [ "$new_routers" != "" ]; then + if [ "$new_routers" != "" ]; then
+ $LOGGER "New Routers: $new_routers" + $LOGGER "New Routers: $new_routers"
@ -70,11 +84,29 @@
route add default $router >/dev/null 2>&1 route add default $router >/dev/null 2>&1
done done
if [ "$new_static_routes" != "" ]; then if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ $LOGGER "New Static Routes: $new_static_routes" + $LOGGER "New Static Routes: $new_static_routes"
set $new_static_routes + set -- $new_static_routes
while [ $# -gt 1 ]; do while [ $# -gt 1 ]; do
route add $1 $2 route add $1 $2
@@ -161,8 +174,12 @@ shift; shift
@@ -138,13 +151,13 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
fi
if [ x$alias_ip_address != x ]; then
@@ -161,9 +174,13 @@
fi fi
ifconfig $interface inet $new_ip_address $new_netmask_arg \ ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium $new_broadcast_arg $medium
@ -83,7 +115,37 @@
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1 sleep 1
if [ "$new_routers" != "" ]; then if [ "$new_routers" != "" ]; then
- set $new_routers
+ $LOGGER "New Routers: $new_routers" + $LOGGER "New Routers: $new_routers"
set $new_routers + set -- $new_routers
if ping -q -c 1 $1; then if ping -q -c 1 $1; then
if [ x$new_ip_address != x$alias_ip_address ] && \ if [ x$new_ip_address != x$alias_ip_address ] && \
[ x$alias_ip_address != x ]; then
@@ -174,9 +191,9 @@
for router in $new_routers; do
route add default $router >/dev/null 2>&1
done
- set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
- route add $0 $1
+ route add $1 $2
shift; shift
done
make_resolv_conf
@@ -188,13 +205,13 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
exit_with_hooks 1
fi

View file

@ -1,23 +1,32 @@
--- site.conf.orig Wed Jul 7 08:20:10 1999 --- site.conf.orig Wed Jul 7 17:20:10 1999
+++ site.conf Tue Oct 3 08:59:57 2000 +++ site.conf Fri Jan 26 06:58:15 2001
@@ -1,2 +1,20 @@ @@ -1,2 +1,29 @@
# Put local site configuration stuff here to override the default # Put local site configuration stuff here to override the default
# settings in Makefile.conf # settings in Makefile.conf
+ +
+PREFIX ?= /usr/local +PREFIX ?= /usr/local
+ +
+ETC = $(PREFIX)/etc
+BINDIR = $(PREFIX)/sbin +BINDIR = $(PREFIX)/sbin
+CLIENTBINDIR = $(PREFIX)/sbin +CLIENTBINDIR = $(PREFIX)/sbin
+MANCAT = man
+ADMMANDIR = $(PREFIX)/man/man8 +ADMMANDIR = $(PREFIX)/man/man8
+ADMMANEXT = .8 +ADMMANEXT = .8
+FFMANDIR = $(PREFIX)/man/man5 +FFMANDIR = $(PREFIX)/man/man5
+FFMANEXT = .5 +FFMANEXT = .5
+LIBMANDIR = $(PREFIX)/man/man3 +LIBMANDIR = $(PREFIX)/man/man3
+LIBMANEXT = .3 +LIBMANEXT = .3
+MANCAT = man
+# INSTALL = ${INSTALL_DATA}
+# MANINSTALL = ${INSTALL_MAN}
+ETC = $(PREFIX)/etc
+LIBDIR = ${PREFIX}/lib
+INCDIR = ${PREFIX}/include
+ +
+DEBUG ?= #none +DEBUG ?= #none
+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(ETC)/dhclient-script\" +
+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(CLIENTBINDIR)/dhclient-script\"
+
+CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\" +CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\"
+CFLAGS += -D_PATH_DHCPD_DB=\"$(VARDB)/dhcpd.leases\"
+
+CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\" +CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\"
+CFLAGS += -D_PATH_DHCLIENT_DB=\"$(VARDB)/dhclient.leases\"

View file

@ -1,5 +0,0 @@
--- includes/site.h.orig Thu Sep 28 11:24:17 2000
+++ includes/site.h Sat Dec 2 00:46:53 2000
@@ -159 +159 @@
-/* #define DHCPD_LOG_FACILITY LOG_DAEMON */
+#define DHCPD_LOG_FACILITY LOG_!!USE_FACILITY!!

View file

@ -1,16 +1,17 @@
ISC-DHCP Dynamic Host Configuration Protocol server The ISC Dynamic Host Configuration Protocol Distribution provides
a freely redistributable reference implementation of all aspects
of the DHCP protocol, through a suite of DHCP tools:
This is a release of the Internet Software Consortium * A DHCP server
DHCP Server (ISC dhcpd). In this release, support for the core * A DHCP client
DHCP protocol is provided. BOOTP support is also provided for * A DHCP relay agent
backwards compatibility.
Version 3, Beta 2 of the ISC DHCP Distribution includes the following Version 3, Beta 2 of the ISC DHCP Distribution includes the following
features that are new since version 2.0: features that are new since version 2.0:
* DHCP Failover Protocol support * DHCP Failover Protocol support
* OMAPI, an API for accessing and modifying the DHCP * OMAPI, an API for accessing and modifying the DHCP
server and client state. server and client state.
* Conditional behaviour * Conditional behaviour
* Storing arbitrary information on leases * Storing arbitrary information on leases
* Address pools with access control * Address pools with access control
@ -19,10 +20,12 @@ features that are new since version 2.0:
* Relay agent information option support * Relay agent information option support
* Dynamic DNS updates * Dynamic DNS updates
* Many bug fixes, performance enhancements, and minor * Many bug fixes, performance enhancements, and minor
new DHCP protocol features. new DHCP protocol features.
A fully-featured implementation of dynamic DNS updates is included in Also, a fully-featured implementation of dynamic DNS updates is
this release. There are no build dependencies with any BIND version. included and there are no build dependencies with any BIND version.
Since patch-level 15, a log-facility configuration parameter has
been added, see the manual pages for details.
WWW: http://www.isc.org/products/DHCP/ WWW: http://www.isc.org/products/DHCP/

View file

@ -1,9 +1,8 @@
@comment $FreeBSD$ @comment $FreeBSD$
etc/dhclient-script etc/dhclient.conf.sample
sbin/dhclient etc/dhcpd.conf.sample
sbin/dhcpd
sbin/dhcrelay
etc/rc.d/isc-dhcpd.sh.sample etc/rc.d/isc-dhcpd.sh.sample
include/dhcpctl.h
include/isc/boolean.h include/isc/boolean.h
include/isc/dst.h include/isc/dst.h
include/isc/int.h include/isc/int.h
@ -11,13 +10,25 @@ include/isc/lang.h
include/isc/list.h include/isc/list.h
include/isc/result.h include/isc/result.h
include/isc/types.h include/isc/types.h
@dirrm include/isc
include/omapip/alloc.h include/omapip/alloc.h
include/omapip/buffer.h include/omapip/buffer.h
include/omapip/omapip.h include/omapip/omapip.h
@dirrm include/omapip
include/dhcpctl.h
lib/libomapi.a
lib/libdhcpctl.a lib/libdhcpctl.a
@exec touch /var/db/dhcpd.leases lib/libomapi.a
@exec touch %D/etc/dhclient.conf sbin/dhclient
sbin/dhclient-script
sbin/dhcpd
sbin/dhcrelay
share/doc/isc-dhcp3/CHANGES
share/doc/isc-dhcp3/COPYRIGHT
share/doc/isc-dhcp3/README
share/doc/isc-dhcp3/RELNOTES
@dirrm include/isc
@dirrm include/omapip
@dirrm share/doc/isc-dhcp3
@exec [ -f /var/db/dhclient.leases ] || touch /var/db/dhclient.leases
@unexec [ -s /var/db/dhclient.leases ] || rm -f /var/db/dhclient.leases
@exec [ -f /var/db/dhcpd.leases ] || touch /var/db/dhcpd.leases
@unexec [ -s /var/db/dhcpd.leases ] || rm -f /var/db/dhcpd.leases
@exec [ -f %D/etc/dhclient.conf ] || touch %D/etc/dhclient.conf
@unexec [ -L %D/etc/dhclient.conf -o -s %D/etc/dhclient.conf ] || rm -f %D/etc/dhclient.conf

View file

@ -7,19 +7,16 @@
# #
PORTNAME= isc-dhcp3 PORTNAME= isc-dhcp3
PORTVERSION= 3.0.b2.11 PORTVERSION= 3.0.b2.16
CATEGORIES= net CATEGORIES= net
MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/ MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/
DISTNAME= dhcp-3.0b2pl${PORTVERSION:S/3.0.b2.//g} DISTNAME= ${PORTNAME:S/isc-//:S/3/-/}${PORTVERSION:S/.b/b/:R}pl${PORTVERSION:E}
MAINTAINER= ports@FreeBSD.org MAINTAINER= clefevre@citeweb.net
.if defined(USE_FACILITY) #
_USE_FACILITY:= `${ECHO} ${USE_FACILITY} | ${TR} "[:lower:]" "[:upper:]"` # Global variables
USE_FACILITY= ${_USE_FACILITY} #
.else
USE_FACILITY= DAEMON
.endif
HAS_CONFIGURE= yes HAS_CONFIGURE= yes
@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \
dhcpd.leases.5 dhcpd.leases.5
MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8 MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8
pre-fetch: #
.if ${USE_FACILITY} == "DAEMON" # Local variables
@${ECHO} "" #
@${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:"
@${ECHO} " daemon, local{0-7}" PATCH_SUBDIRS= client common dhcpctl minires omapip relay server
@${ECHO} " 'daemon' is the default option if one is not defined."
@${ECHO} " Press Control-C and run make clean build LOG_FACILITY=<local{0-7}>," BIN_FILES= dhclient dhcpd dhcrelay
@${ECHO} " if you wish to use a different logging facility." SAMP_FILES= client/dhclient.conf server/dhcpd.conf
@${ECHO} "" RCD_FILES= isc-dhcpd.sh.sample
@sleep 2 DOC_FILES= CHANGES COPYRIGHT README RELNOTES
DATA_FILES= dhclient.leases dhcpd.leases
CONF_FILES= dhclient.conf
BIN_DIR= ${PREFIX}/sbin
ETC_DIR= ${PREFIX}/etc
RCD_DIR= ${PREFIX}/etc/rc.d
DOC_DIR= ${PREFIX}/share/doc/${PORTNAME}
VARDB_DIR= /var/db
STRIP?= strip
#
# Post-patch
#
post-patch: patch-scripts patch-makefiles
patch-scripts:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' \
${WRKSRC}/client/scripts/freebsd
patch-makefiles:
.for subdir in ${PATCH_SUBDIRS}
@${PERL} -pi.fbsd -e \
's|^DEBUG[ ]*=|DEBUG ?=|g;s|^CFLAGS[ ]*=|CFLAGS +=|g' \
${WRKSRC}/${subdir}/Makefile.dist
.endfor
#
# Post-install
#
post-install: strip-binary-files install-startup-files \
install-doc-files install-sample-files \
create-data-files create-conf-files
strip-binary-files:
.for file in ${BIN_FILES}
.if exists({BIN_DIR}/${file})
@${STRIP} ${BIN_DIR}/${file}
.endif
.endfor
install-startup-files:
.for file in ${RCD_FILES}
@${INSTALL_SCRIPT} ${FILESDIR}/${file} ${RCD_DIR}/${file}
.endfor
install-doc-files:
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOC_DIR}
.for file in ${DOC_FILES}
@${INSTALL_DATA} ${WRKSRC}/${file} ${DOC_DIR}/${file}
.endfor
.endif .endif
post-patch: install-sample-files:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h .for file in ${SAMP_FILES}
@${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h @${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/client/scripts/freebsd
.for MF in relay/Makefile.dist server/Makefile.dist client/Makefile.dist common/Makefile.dist dhcpctl/Makefile.dist minires/Makefile.dist omapip/Makefile.dist
@${PERL} -pi.fbsd -e 's|^DEBUG[ ]*=|DEBUG ?=|g ; s|^CFLAGS[ ]*=|CFLAGS +=|g' ${WRKSRC}/${MF}
.endfor .endfor
post-install: create-data-files:
${TOUCH} /var/db/dhcpd.leases .for file in ${DATA_FILES}
.for file in dhclient dhcpd dhcrelay .if !exists(${VARDB_DIR}/${file})
if [ -f ${PREFIX}/sbin/${file} ]; then \ @${TOUCH} ${VARDB_DIR}/${file}
strip ${PREFIX}/sbin/${file}; \ .endif
fi .endfor
create-conf-files:
.for file in ${CONF_FILES}
.if !exists(${ETC_DIR}/${file})
@${TOUCH} ${ETC_DIR}/${file}
.endif
.endfor .endfor
${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \
${PREFIX}/etc/rc.d
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -1 +1 @@
MD5 (dhcp-3.0b2pl11.tar.gz) = 5fd2c97d850c41e6445648a4108b509f MD5 (dhcp-3.0b2pl16.tar.gz) = 88fb65480a1b66c8d011957ea6c2e138

View file

@ -2,6 +2,7 @@
# $FreeBSD$ # $FreeBSD$
OPTIONS=""
IFACES="SET_THIS" IFACES="SET_THIS"
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
@ -11,10 +12,10 @@ fi
case "$1" in case "$1" in
start) start)
${PREFIX}/sbin/dhcpd $IFACES ${PREFIX}/sbin/dhcpd $OPTIONS $IFACES
;; ;;
stop) stop)
kill `cat /var/run/dhcpd.pid` killall dhcpd
;; ;;
restart) restart)
$0 stop $0 stop
@ -24,7 +25,7 @@ status)
ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)" ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)"
;; ;;
*) *)
echo "Usage: `basename $0` {start|stop|restart|status}" >&2 echo "usage: ${0##*/} {start|stop|restart|status}" >&2
;; ;;
esac esac

View file

@ -1,43 +1,20 @@
--- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000 --- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001
+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000 +++ includes/dhcpd.h Fri Jan 26 06:46:12 2001
@@ -329,7 +329,7 @@ @@ -672,7 +672,7 @@
#endif u_int32_t requested_lease; /* Requested lease time, if user
doesn't configure one. */
struct string_list *media; /* Possible network media values. */
- char *script_name; /* Name of config script. */
+ const char *script_name; /* Name of config script. */
char *vendor_space_name; /* Name of config script. */
enum policy bootp_policy;
/* Ignore, accept or prefer BOOTP
@@ -1864,6 +1864,8 @@
void set_ip_address PROTO ((struct interface_info *, struct in_addr));
#ifndef CL_DEFAULT_SCRIPT_NAME /* clparse.c */
-# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script" +extern const char *client_script_name;
+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script" +
#endif isc_result_t read_client_conf PROTO ((void));
void read_client_leases PROTO ((void));
#ifndef CL_DEFAULT_REQUESTED_OPTIONS void parse_client_statement PROTO ((struct parse *, struct interface_info *,
@@ -771,11 +771,11 @@
#define _PATH_DHCPD_DB "dhcpd.leases"
#else
#ifndef _PATH_DHCPD_CONF
-#define _PATH_DHCPD_CONF "/etc/dhcpd.conf"
+#define _PATH_DHCPD_CONF "!!PREFIX!!/etc/dhcpd.conf"
#endif
#ifndef _PATH_DHCPD_DB
-#define _PATH_DHCPD_DB "/etc/dhcpd.leases"
+#define _PATH_DHCPD_DB "!!PREFIX!!/etc/dhcpd.leases"
#endif
#ifndef _PATH_DHCPD_PID
@@ -784,7 +784,7 @@
#endif
#ifndef _PATH_DHCLIENT_CONF
-#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf"
+#define _PATH_DHCLIENT_CONF "!!PREFIX!!/etc/dhclient.conf"
#endif
#ifndef _PATH_DHCLIENT_PID
@@ -792,7 +792,7 @@
#endif
#ifndef _PATH_DHCLIENT_DB
-#define _PATH_DHCLIENT_DB "/etc/dhclient.leases"
+#define _PATH_DHCLIENT_DB "!!PREFIX!!/etc/dhclient.leases"
#endif
#ifndef _PATH_RESOLV_CONF

View file

@ -1,5 +1,11 @@
--- client/clparse.c.orig Wed Jul 19 21:13:10 2000 --- client/clparse.c.orig Thu Jan 25 09:17:17 2001
+++ client/clparse.c Thu Jul 20 21:52:53 2000 +++ client/clparse.c Fri Jan 26 06:11:01 2001
@@ -46 +46 @@ @@ -50,7 +50,7 @@
static TIME parsed_time;
-char client_script_name [] = "/etc/dhclient-script"; -char client_script_name [] = "/etc/dhclient-script";
+char client_script_name [] = CL_DEFAULT_SCRIPT_NAME; +const char *client_script_name = CL_DEFAULT_SCRIPT_NAME;
struct client_config top_level_config;

View file

@ -1,5 +1,5 @@
--- client/dhclient.8.orig Wed May 10 02:36:03 2000 --- client/dhclient.8.orig Mon May 1 19:11:36 2000
+++ client/dhclient.8 Wed May 10 02:39:43 2000 +++ client/dhclient.8 Fri Jan 26 05:12:37 2001
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
.B -q .B -q
] ]
@ -9,15 +9,59 @@
] ]
[ [
.B -lf .B -lf
@@ -170,6 +170,11 @@ @@ -49,6 +49,10 @@
.B -q .I config-file
]
[
+.B -sf
+.I script-file
+]
+[
.B -s
server
]
@@ -174,17 +178,25 @@
flag prevents any messages other than errors from being printed to the flag prevents any messages other than errors from being printed to the
standard error descriptor. standard error descriptor.
+.PP .PP
+The +The
+.B -1 +.B -1
+flag cause dhclient to try once to get a lease. If it fails, dhclient exits +flag cause dhclient to try once to get a lease. If it fails, dhclient exits
+with exit code two. +with exit code two.
.PP +.PP
The DHCP client normally gets its configuration information from The DHCP client normally gets its configuration information from
.B ETCDIR/dhclient.conf, .B ETCDIR/dhclient.conf,
its lease database from
-.B DBDIR/dhclient.leases
-and stores its process ID in a file called
+.B DBDIR/dhclient.leases,
+stores its process ID in a file called
.B RUNDIR/dhclient.pid.
+and configure the network interface using
+.B CLIENTBINDIR/dhclient-script.
To specify different names and/or locations for these files, use the
.B -cf,
-.B -lf
-and
+.B -lf,
.B -pf
+and
+.B -sf
flags, respectively, followed by the name of the file. This can be
particularly useful if, for example,
.B DBDIR
@@ -206,10 +218,12 @@
.SH CONFIGURATION
The syntax of the dhclient.conf(8) file is discussed seperately.
.SH FILES
+.B CLIENTBINDIR/dhclient-script,
.B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid,
-.B DBDIR/dhclient.leases~.
+.B DBDIR/dhclient.leases.
.SH SEE ALSO
-dhcpd(8), dhcrelay(8), dhclient.conf(5), dhclient.leases(5)
+dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5) and
+dhclient.leases(5).
.SH AUTHOR
.B dhclient(8)
has been written for the Internet Software Consortium

View file

@ -1,5 +1,5 @@
--- client/dhclient.c.orig Thu Sep 14 05:42:01 2000 --- client/dhclient.c.orig Thu Jan 25 09:18:06 2001
+++ client/dhclient.c Wed Sep 27 03:31:33 2000 +++ client/dhclient.c Fri Jan 26 06:15:50 2001
@@ -78,6 +78,7 @@ @@ -78,6 +78,7 @@
u_int16_t remote_port; u_int16_t remote_port;
int no_daemon; int no_daemon;
@ -8,7 +8,27 @@
static void usage PROTO ((void)); static void usage PROTO ((void));
@@ -176,6 +177,8 @@ @@ -104,6 +105,7 @@
int no_dhclient_conf = 0;
int no_dhclient_db = 0;
int no_dhclient_pid = 0;
+ int no_dhclient_script = 0;
char *s;
#ifdef SYSLOG_4_2
@@ -159,6 +161,11 @@
usage ();
path_dhclient_db = argv [i];
no_dhclient_db = 1;
+ } else if (!strcmp (argv [i], "-sf")) {
+ if (++i == argc)
+ usage ();
+ client_script_name = argv [i];
+ no_dhclient_script = 1;
} else if (!strcmp (argv [i], "-q")) {
quiet = 1;
quiet_interface_discovery = 1;
@@ -176,6 +183,8 @@
} else if (!strcmp (argv [i], "-w")) { } else if (!strcmp (argv [i], "-w")) {
/* do not exit if there are no broadcast interfaces. */ /* do not exit if there are no broadcast interfaces. */
persist = 1; persist = 1;
@ -17,16 +37,32 @@
} else if (argv [i][0] == '-') { } else if (argv [i][0] == '-') {
usage (); usage ();
} else { } else {
@@ -417,7 +420,7 @@ @@ -208,6 +217,9 @@
if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) {
path_dhclient_pid = s;
}
+ if (!no_dhclient_script && (s = getenv ("PATH_DHCLIENT_SCRIPT"))) {
+ client_script_name = s;
+ }
/* first kill of any currently running client */
if (release_mode) {
@@ -423,10 +435,11 @@
log_info (arr); log_info (arr);
log_info (url); log_info (url);
- log_error ("Usage: dhclient [-d] [-D] [-q] [-p <port>] %s", - log_error ("Usage: dhclient [-d] [-D] [-q] [-p <port>] %s",
+ log_error ("Usage: dhclient [-1] [-d] [-D] [-q] [-p <port>] %s", + log_error ("usage: dhclient [-1] [-d] [-D] [-q] [-p <port>] %s",
"[-s server]"); "[-s server]");
log_fatal (" [-lf lease-file] [-pf pid-file]%s", - log_fatal (" [-lf lease-file] [-pf pid-file]%s",
"[-cf config-file] [interface]"); - "[-cf config-file] [interface]");
@@ -1402,6 +1405,10 @@ + log_error (" [-cf config-file] [-lf lease-file] %s",
+ "[-pf pid-file] [-sf script-file]");
+ log_fatal (" [interface]");
}
isc_result_t find_class (struct class **c,
@@ -1432,6 +1445,10 @@
/* No leases were available, or what was available didn't work, so /* No leases were available, or what was available didn't work, so
tell the shell script that we failed to allocate an address, tell the shell script that we failed to allocate an address,
and try again later. */ and try again later. */

View file

@ -1,5 +1,5 @@
--- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000 --- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000
+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000 +++ client/scripts/freebsd Sat Jan 27 02:17:01 2001
@@ -1,5 +1,11 @@ @@ -1,5 +1,11 @@
#!/bin/sh #!/bin/sh
@ -55,12 +55,26 @@
hostname $new_host_name hostname $new_host_name
fi fi
fi fi
@@ -105,11 +111,18 @@ @@ -93,24 +99,31 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh
fi
if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
[ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
ifconfig $interface inet $new_ip_address $new_netmask_arg \ ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium $new_broadcast_arg $medium
+ $LOGGER "New IP Address($interface): $new_ip_address" + $LOGGER "New IP Address($interface): $new_ip_address"
+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask" + $LOGGER "New Subnet Mask($interface): $new_subnet_mask"
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
+ if [ "$new_routers" != "" ]; then + if [ "$new_routers" != "" ]; then
+ $LOGGER "New Routers: $new_routers" + $LOGGER "New Routers: $new_routers"
@ -70,11 +84,29 @@
route add default $router >/dev/null 2>&1 route add default $router >/dev/null 2>&1
done done
if [ "$new_static_routes" != "" ]; then if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ $LOGGER "New Static Routes: $new_static_routes" + $LOGGER "New Static Routes: $new_static_routes"
set $new_static_routes + set -- $new_static_routes
while [ $# -gt 1 ]; do while [ $# -gt 1 ]; do
route add $1 $2 route add $1 $2
@@ -161,8 +174,12 @@ shift; shift
@@ -138,13 +151,13 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
fi
if [ x$alias_ip_address != x ]; then
@@ -161,9 +174,13 @@
fi fi
ifconfig $interface inet $new_ip_address $new_netmask_arg \ ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium $new_broadcast_arg $medium
@ -83,7 +115,37 @@
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1 sleep 1
if [ "$new_routers" != "" ]; then if [ "$new_routers" != "" ]; then
- set $new_routers
+ $LOGGER "New Routers: $new_routers" + $LOGGER "New Routers: $new_routers"
set $new_routers + set -- $new_routers
if ping -q -c 1 $1; then if ping -q -c 1 $1; then
if [ x$new_ip_address != x$alias_ip_address ] && \ if [ x$new_ip_address != x$alias_ip_address ] && \
[ x$alias_ip_address != x ]; then
@@ -174,9 +191,9 @@
for router in $new_routers; do
route add default $router >/dev/null 2>&1
done
- set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
- route add $0 $1
+ route add $1 $2
shift; shift
done
make_resolv_conf
@@ -188,13 +205,13 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
exit_with_hooks 1
fi

View file

@ -1,23 +1,32 @@
--- site.conf.orig Wed Jul 7 08:20:10 1999 --- site.conf.orig Wed Jul 7 17:20:10 1999
+++ site.conf Tue Oct 3 08:59:57 2000 +++ site.conf Fri Jan 26 06:58:15 2001
@@ -1,2 +1,20 @@ @@ -1,2 +1,29 @@
# Put local site configuration stuff here to override the default # Put local site configuration stuff here to override the default
# settings in Makefile.conf # settings in Makefile.conf
+ +
+PREFIX ?= /usr/local +PREFIX ?= /usr/local
+ +
+ETC = $(PREFIX)/etc
+BINDIR = $(PREFIX)/sbin +BINDIR = $(PREFIX)/sbin
+CLIENTBINDIR = $(PREFIX)/sbin +CLIENTBINDIR = $(PREFIX)/sbin
+MANCAT = man
+ADMMANDIR = $(PREFIX)/man/man8 +ADMMANDIR = $(PREFIX)/man/man8
+ADMMANEXT = .8 +ADMMANEXT = .8
+FFMANDIR = $(PREFIX)/man/man5 +FFMANDIR = $(PREFIX)/man/man5
+FFMANEXT = .5 +FFMANEXT = .5
+LIBMANDIR = $(PREFIX)/man/man3 +LIBMANDIR = $(PREFIX)/man/man3
+LIBMANEXT = .3 +LIBMANEXT = .3
+MANCAT = man
+# INSTALL = ${INSTALL_DATA}
+# MANINSTALL = ${INSTALL_MAN}
+ETC = $(PREFIX)/etc
+LIBDIR = ${PREFIX}/lib
+INCDIR = ${PREFIX}/include
+ +
+DEBUG ?= #none +DEBUG ?= #none
+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(ETC)/dhclient-script\" +
+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(CLIENTBINDIR)/dhclient-script\"
+
+CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\" +CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\"
+CFLAGS += -D_PATH_DHCPD_DB=\"$(VARDB)/dhcpd.leases\"
+
+CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\" +CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\"
+CFLAGS += -D_PATH_DHCLIENT_DB=\"$(VARDB)/dhclient.leases\"

View file

@ -1,5 +0,0 @@
--- includes/site.h.orig Thu Sep 28 11:24:17 2000
+++ includes/site.h Sat Dec 2 00:46:53 2000
@@ -159 +159 @@
-/* #define DHCPD_LOG_FACILITY LOG_DAEMON */
+#define DHCPD_LOG_FACILITY LOG_!!USE_FACILITY!!

View file

@ -1,16 +1,17 @@
ISC-DHCP Dynamic Host Configuration Protocol server The ISC Dynamic Host Configuration Protocol Distribution provides
a freely redistributable reference implementation of all aspects
of the DHCP protocol, through a suite of DHCP tools:
This is a release of the Internet Software Consortium * A DHCP server
DHCP Server (ISC dhcpd). In this release, support for the core * A DHCP client
DHCP protocol is provided. BOOTP support is also provided for * A DHCP relay agent
backwards compatibility.
Version 3, Beta 2 of the ISC DHCP Distribution includes the following Version 3, Beta 2 of the ISC DHCP Distribution includes the following
features that are new since version 2.0: features that are new since version 2.0:
* DHCP Failover Protocol support * DHCP Failover Protocol support
* OMAPI, an API for accessing and modifying the DHCP * OMAPI, an API for accessing and modifying the DHCP
server and client state. server and client state.
* Conditional behaviour * Conditional behaviour
* Storing arbitrary information on leases * Storing arbitrary information on leases
* Address pools with access control * Address pools with access control
@ -19,10 +20,12 @@ features that are new since version 2.0:
* Relay agent information option support * Relay agent information option support
* Dynamic DNS updates * Dynamic DNS updates
* Many bug fixes, performance enhancements, and minor * Many bug fixes, performance enhancements, and minor
new DHCP protocol features. new DHCP protocol features.
A fully-featured implementation of dynamic DNS updates is included in Also, a fully-featured implementation of dynamic DNS updates is
this release. There are no build dependencies with any BIND version. included and there are no build dependencies with any BIND version.
Since patch-level 15, a log-facility configuration parameter has
been added, see the manual pages for details.
WWW: http://www.isc.org/products/DHCP/ WWW: http://www.isc.org/products/DHCP/

View file

@ -1,9 +1,8 @@
@comment $FreeBSD$ @comment $FreeBSD$
etc/dhclient-script etc/dhclient.conf.sample
sbin/dhclient etc/dhcpd.conf.sample
sbin/dhcpd
sbin/dhcrelay
etc/rc.d/isc-dhcpd.sh.sample etc/rc.d/isc-dhcpd.sh.sample
include/dhcpctl.h
include/isc/boolean.h include/isc/boolean.h
include/isc/dst.h include/isc/dst.h
include/isc/int.h include/isc/int.h
@ -11,13 +10,25 @@ include/isc/lang.h
include/isc/list.h include/isc/list.h
include/isc/result.h include/isc/result.h
include/isc/types.h include/isc/types.h
@dirrm include/isc
include/omapip/alloc.h include/omapip/alloc.h
include/omapip/buffer.h include/omapip/buffer.h
include/omapip/omapip.h include/omapip/omapip.h
@dirrm include/omapip
include/dhcpctl.h
lib/libomapi.a
lib/libdhcpctl.a lib/libdhcpctl.a
@exec touch /var/db/dhcpd.leases lib/libomapi.a
@exec touch %D/etc/dhclient.conf sbin/dhclient
sbin/dhclient-script
sbin/dhcpd
sbin/dhcrelay
share/doc/isc-dhcp3/CHANGES
share/doc/isc-dhcp3/COPYRIGHT
share/doc/isc-dhcp3/README
share/doc/isc-dhcp3/RELNOTES
@dirrm include/isc
@dirrm include/omapip
@dirrm share/doc/isc-dhcp3
@exec [ -f /var/db/dhclient.leases ] || touch /var/db/dhclient.leases
@unexec [ -s /var/db/dhclient.leases ] || rm -f /var/db/dhclient.leases
@exec [ -f /var/db/dhcpd.leases ] || touch /var/db/dhcpd.leases
@unexec [ -s /var/db/dhcpd.leases ] || rm -f /var/db/dhcpd.leases
@exec [ -f %D/etc/dhclient.conf ] || touch %D/etc/dhclient.conf
@unexec [ -L %D/etc/dhclient.conf -o -s %D/etc/dhclient.conf ] || rm -f %D/etc/dhclient.conf

View file

@ -7,19 +7,16 @@
# #
PORTNAME= isc-dhcp3 PORTNAME= isc-dhcp3
PORTVERSION= 3.0.b2.11 PORTVERSION= 3.0.b2.16
CATEGORIES= net CATEGORIES= net
MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/ MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/
DISTNAME= dhcp-3.0b2pl${PORTVERSION:S/3.0.b2.//g} DISTNAME= ${PORTNAME:S/isc-//:S/3/-/}${PORTVERSION:S/.b/b/:R}pl${PORTVERSION:E}
MAINTAINER= ports@FreeBSD.org MAINTAINER= clefevre@citeweb.net
.if defined(USE_FACILITY) #
_USE_FACILITY:= `${ECHO} ${USE_FACILITY} | ${TR} "[:lower:]" "[:upper:]"` # Global variables
USE_FACILITY= ${_USE_FACILITY} #
.else
USE_FACILITY= DAEMON
.endif
HAS_CONFIGURE= yes HAS_CONFIGURE= yes
@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \
dhcpd.leases.5 dhcpd.leases.5
MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8 MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8
pre-fetch: #
.if ${USE_FACILITY} == "DAEMON" # Local variables
@${ECHO} "" #
@${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:"
@${ECHO} " daemon, local{0-7}" PATCH_SUBDIRS= client common dhcpctl minires omapip relay server
@${ECHO} " 'daemon' is the default option if one is not defined."
@${ECHO} " Press Control-C and run make clean build LOG_FACILITY=<local{0-7}>," BIN_FILES= dhclient dhcpd dhcrelay
@${ECHO} " if you wish to use a different logging facility." SAMP_FILES= client/dhclient.conf server/dhcpd.conf
@${ECHO} "" RCD_FILES= isc-dhcpd.sh.sample
@sleep 2 DOC_FILES= CHANGES COPYRIGHT README RELNOTES
DATA_FILES= dhclient.leases dhcpd.leases
CONF_FILES= dhclient.conf
BIN_DIR= ${PREFIX}/sbin
ETC_DIR= ${PREFIX}/etc
RCD_DIR= ${PREFIX}/etc/rc.d
DOC_DIR= ${PREFIX}/share/doc/${PORTNAME}
VARDB_DIR= /var/db
STRIP?= strip
#
# Post-patch
#
post-patch: patch-scripts patch-makefiles
patch-scripts:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' \
${WRKSRC}/client/scripts/freebsd
patch-makefiles:
.for subdir in ${PATCH_SUBDIRS}
@${PERL} -pi.fbsd -e \
's|^DEBUG[ ]*=|DEBUG ?=|g;s|^CFLAGS[ ]*=|CFLAGS +=|g' \
${WRKSRC}/${subdir}/Makefile.dist
.endfor
#
# Post-install
#
post-install: strip-binary-files install-startup-files \
install-doc-files install-sample-files \
create-data-files create-conf-files
strip-binary-files:
.for file in ${BIN_FILES}
.if exists({BIN_DIR}/${file})
@${STRIP} ${BIN_DIR}/${file}
.endif
.endfor
install-startup-files:
.for file in ${RCD_FILES}
@${INSTALL_SCRIPT} ${FILESDIR}/${file} ${RCD_DIR}/${file}
.endfor
install-doc-files:
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOC_DIR}
.for file in ${DOC_FILES}
@${INSTALL_DATA} ${WRKSRC}/${file} ${DOC_DIR}/${file}
.endfor
.endif .endif
post-patch: install-sample-files:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h .for file in ${SAMP_FILES}
@${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h @${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/client/scripts/freebsd
.for MF in relay/Makefile.dist server/Makefile.dist client/Makefile.dist common/Makefile.dist dhcpctl/Makefile.dist minires/Makefile.dist omapip/Makefile.dist
@${PERL} -pi.fbsd -e 's|^DEBUG[ ]*=|DEBUG ?=|g ; s|^CFLAGS[ ]*=|CFLAGS +=|g' ${WRKSRC}/${MF}
.endfor .endfor
post-install: create-data-files:
${TOUCH} /var/db/dhcpd.leases .for file in ${DATA_FILES}
.for file in dhclient dhcpd dhcrelay .if !exists(${VARDB_DIR}/${file})
if [ -f ${PREFIX}/sbin/${file} ]; then \ @${TOUCH} ${VARDB_DIR}/${file}
strip ${PREFIX}/sbin/${file}; \ .endif
fi .endfor
create-conf-files:
.for file in ${CONF_FILES}
.if !exists(${ETC_DIR}/${file})
@${TOUCH} ${ETC_DIR}/${file}
.endif
.endfor .endfor
${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \
${PREFIX}/etc/rc.d
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -1 +1 @@
MD5 (dhcp-3.0b2pl11.tar.gz) = 5fd2c97d850c41e6445648a4108b509f MD5 (dhcp-3.0b2pl16.tar.gz) = 88fb65480a1b66c8d011957ea6c2e138

View file

@ -2,6 +2,7 @@
# $FreeBSD$ # $FreeBSD$
OPTIONS=""
IFACES="SET_THIS" IFACES="SET_THIS"
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
@ -11,10 +12,10 @@ fi
case "$1" in case "$1" in
start) start)
${PREFIX}/sbin/dhcpd $IFACES ${PREFIX}/sbin/dhcpd $OPTIONS $IFACES
;; ;;
stop) stop)
kill `cat /var/run/dhcpd.pid` killall dhcpd
;; ;;
restart) restart)
$0 stop $0 stop
@ -24,7 +25,7 @@ status)
ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)" ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)"
;; ;;
*) *)
echo "Usage: `basename $0` {start|stop|restart|status}" >&2 echo "usage: ${0##*/} {start|stop|restart|status}" >&2
;; ;;
esac esac

View file

@ -1,43 +1,20 @@
--- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000 --- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001
+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000 +++ includes/dhcpd.h Fri Jan 26 06:46:12 2001
@@ -329,7 +329,7 @@ @@ -672,7 +672,7 @@
#endif u_int32_t requested_lease; /* Requested lease time, if user
doesn't configure one. */
struct string_list *media; /* Possible network media values. */
- char *script_name; /* Name of config script. */
+ const char *script_name; /* Name of config script. */
char *vendor_space_name; /* Name of config script. */
enum policy bootp_policy;
/* Ignore, accept or prefer BOOTP
@@ -1864,6 +1864,8 @@
void set_ip_address PROTO ((struct interface_info *, struct in_addr));
#ifndef CL_DEFAULT_SCRIPT_NAME /* clparse.c */
-# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script" +extern const char *client_script_name;
+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script" +
#endif isc_result_t read_client_conf PROTO ((void));
void read_client_leases PROTO ((void));
#ifndef CL_DEFAULT_REQUESTED_OPTIONS void parse_client_statement PROTO ((struct parse *, struct interface_info *,
@@ -771,11 +771,11 @@
#define _PATH_DHCPD_DB "dhcpd.leases"
#else
#ifndef _PATH_DHCPD_CONF
-#define _PATH_DHCPD_CONF "/etc/dhcpd.conf"
+#define _PATH_DHCPD_CONF "!!PREFIX!!/etc/dhcpd.conf"
#endif
#ifndef _PATH_DHCPD_DB
-#define _PATH_DHCPD_DB "/etc/dhcpd.leases"
+#define _PATH_DHCPD_DB "!!PREFIX!!/etc/dhcpd.leases"
#endif
#ifndef _PATH_DHCPD_PID
@@ -784,7 +784,7 @@
#endif
#ifndef _PATH_DHCLIENT_CONF
-#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf"
+#define _PATH_DHCLIENT_CONF "!!PREFIX!!/etc/dhclient.conf"
#endif
#ifndef _PATH_DHCLIENT_PID
@@ -792,7 +792,7 @@
#endif
#ifndef _PATH_DHCLIENT_DB
-#define _PATH_DHCLIENT_DB "/etc/dhclient.leases"
+#define _PATH_DHCLIENT_DB "!!PREFIX!!/etc/dhclient.leases"
#endif
#ifndef _PATH_RESOLV_CONF

View file

@ -1,5 +1,11 @@
--- client/clparse.c.orig Wed Jul 19 21:13:10 2000 --- client/clparse.c.orig Thu Jan 25 09:17:17 2001
+++ client/clparse.c Thu Jul 20 21:52:53 2000 +++ client/clparse.c Fri Jan 26 06:11:01 2001
@@ -46 +46 @@ @@ -50,7 +50,7 @@
static TIME parsed_time;
-char client_script_name [] = "/etc/dhclient-script"; -char client_script_name [] = "/etc/dhclient-script";
+char client_script_name [] = CL_DEFAULT_SCRIPT_NAME; +const char *client_script_name = CL_DEFAULT_SCRIPT_NAME;
struct client_config top_level_config;

View file

@ -1,5 +1,5 @@
--- client/dhclient.8.orig Wed May 10 02:36:03 2000 --- client/dhclient.8.orig Mon May 1 19:11:36 2000
+++ client/dhclient.8 Wed May 10 02:39:43 2000 +++ client/dhclient.8 Fri Jan 26 05:12:37 2001
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
.B -q .B -q
] ]
@ -9,15 +9,59 @@
] ]
[ [
.B -lf .B -lf
@@ -170,6 +170,11 @@ @@ -49,6 +49,10 @@
.B -q .I config-file
]
[
+.B -sf
+.I script-file
+]
+[
.B -s
server
]
@@ -174,17 +178,25 @@
flag prevents any messages other than errors from being printed to the flag prevents any messages other than errors from being printed to the
standard error descriptor. standard error descriptor.
+.PP .PP
+The +The
+.B -1 +.B -1
+flag cause dhclient to try once to get a lease. If it fails, dhclient exits +flag cause dhclient to try once to get a lease. If it fails, dhclient exits
+with exit code two. +with exit code two.
.PP +.PP
The DHCP client normally gets its configuration information from The DHCP client normally gets its configuration information from
.B ETCDIR/dhclient.conf, .B ETCDIR/dhclient.conf,
its lease database from
-.B DBDIR/dhclient.leases
-and stores its process ID in a file called
+.B DBDIR/dhclient.leases,
+stores its process ID in a file called
.B RUNDIR/dhclient.pid.
+and configure the network interface using
+.B CLIENTBINDIR/dhclient-script.
To specify different names and/or locations for these files, use the
.B -cf,
-.B -lf
-and
+.B -lf,
.B -pf
+and
+.B -sf
flags, respectively, followed by the name of the file. This can be
particularly useful if, for example,
.B DBDIR
@@ -206,10 +218,12 @@
.SH CONFIGURATION
The syntax of the dhclient.conf(8) file is discussed seperately.
.SH FILES
+.B CLIENTBINDIR/dhclient-script,
.B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid,
-.B DBDIR/dhclient.leases~.
+.B DBDIR/dhclient.leases.
.SH SEE ALSO
-dhcpd(8), dhcrelay(8), dhclient.conf(5), dhclient.leases(5)
+dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5) and
+dhclient.leases(5).
.SH AUTHOR
.B dhclient(8)
has been written for the Internet Software Consortium

View file

@ -1,5 +1,5 @@
--- client/dhclient.c.orig Thu Sep 14 05:42:01 2000 --- client/dhclient.c.orig Thu Jan 25 09:18:06 2001
+++ client/dhclient.c Wed Sep 27 03:31:33 2000 +++ client/dhclient.c Fri Jan 26 06:15:50 2001
@@ -78,6 +78,7 @@ @@ -78,6 +78,7 @@
u_int16_t remote_port; u_int16_t remote_port;
int no_daemon; int no_daemon;
@ -8,7 +8,27 @@
static void usage PROTO ((void)); static void usage PROTO ((void));
@@ -176,6 +177,8 @@ @@ -104,6 +105,7 @@
int no_dhclient_conf = 0;
int no_dhclient_db = 0;
int no_dhclient_pid = 0;
+ int no_dhclient_script = 0;
char *s;
#ifdef SYSLOG_4_2
@@ -159,6 +161,11 @@
usage ();
path_dhclient_db = argv [i];
no_dhclient_db = 1;
+ } else if (!strcmp (argv [i], "-sf")) {
+ if (++i == argc)
+ usage ();
+ client_script_name = argv [i];
+ no_dhclient_script = 1;
} else if (!strcmp (argv [i], "-q")) {
quiet = 1;
quiet_interface_discovery = 1;
@@ -176,6 +183,8 @@
} else if (!strcmp (argv [i], "-w")) { } else if (!strcmp (argv [i], "-w")) {
/* do not exit if there are no broadcast interfaces. */ /* do not exit if there are no broadcast interfaces. */
persist = 1; persist = 1;
@ -17,16 +37,32 @@
} else if (argv [i][0] == '-') { } else if (argv [i][0] == '-') {
usage (); usage ();
} else { } else {
@@ -417,7 +420,7 @@ @@ -208,6 +217,9 @@
if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) {
path_dhclient_pid = s;
}
+ if (!no_dhclient_script && (s = getenv ("PATH_DHCLIENT_SCRIPT"))) {
+ client_script_name = s;
+ }
/* first kill of any currently running client */
if (release_mode) {
@@ -423,10 +435,11 @@
log_info (arr); log_info (arr);
log_info (url); log_info (url);
- log_error ("Usage: dhclient [-d] [-D] [-q] [-p <port>] %s", - log_error ("Usage: dhclient [-d] [-D] [-q] [-p <port>] %s",
+ log_error ("Usage: dhclient [-1] [-d] [-D] [-q] [-p <port>] %s", + log_error ("usage: dhclient [-1] [-d] [-D] [-q] [-p <port>] %s",
"[-s server]"); "[-s server]");
log_fatal (" [-lf lease-file] [-pf pid-file]%s", - log_fatal (" [-lf lease-file] [-pf pid-file]%s",
"[-cf config-file] [interface]"); - "[-cf config-file] [interface]");
@@ -1402,6 +1405,10 @@ + log_error (" [-cf config-file] [-lf lease-file] %s",
+ "[-pf pid-file] [-sf script-file]");
+ log_fatal (" [interface]");
}
isc_result_t find_class (struct class **c,
@@ -1432,6 +1445,10 @@
/* No leases were available, or what was available didn't work, so /* No leases were available, or what was available didn't work, so
tell the shell script that we failed to allocate an address, tell the shell script that we failed to allocate an address,
and try again later. */ and try again later. */

View file

@ -1,5 +1,5 @@
--- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000 --- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000
+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000 +++ client/scripts/freebsd Sat Jan 27 02:17:01 2001
@@ -1,5 +1,11 @@ @@ -1,5 +1,11 @@
#!/bin/sh #!/bin/sh
@ -55,12 +55,26 @@
hostname $new_host_name hostname $new_host_name
fi fi
fi fi
@@ -105,11 +111,18 @@ @@ -93,24 +99,31 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh
fi
if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
[ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
ifconfig $interface inet $new_ip_address $new_netmask_arg \ ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium $new_broadcast_arg $medium
+ $LOGGER "New IP Address($interface): $new_ip_address" + $LOGGER "New IP Address($interface): $new_ip_address"
+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask" + $LOGGER "New Subnet Mask($interface): $new_subnet_mask"
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
+ if [ "$new_routers" != "" ]; then + if [ "$new_routers" != "" ]; then
+ $LOGGER "New Routers: $new_routers" + $LOGGER "New Routers: $new_routers"
@ -70,11 +84,29 @@
route add default $router >/dev/null 2>&1 route add default $router >/dev/null 2>&1
done done
if [ "$new_static_routes" != "" ]; then if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ $LOGGER "New Static Routes: $new_static_routes" + $LOGGER "New Static Routes: $new_static_routes"
set $new_static_routes + set -- $new_static_routes
while [ $# -gt 1 ]; do while [ $# -gt 1 ]; do
route add $1 $2 route add $1 $2
@@ -161,8 +174,12 @@ shift; shift
@@ -138,13 +151,13 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
fi
if [ x$alias_ip_address != x ]; then
@@ -161,9 +174,13 @@
fi fi
ifconfig $interface inet $new_ip_address $new_netmask_arg \ ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium $new_broadcast_arg $medium
@ -83,7 +115,37 @@
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1 sleep 1
if [ "$new_routers" != "" ]; then if [ "$new_routers" != "" ]; then
- set $new_routers
+ $LOGGER "New Routers: $new_routers" + $LOGGER "New Routers: $new_routers"
set $new_routers + set -- $new_routers
if ping -q -c 1 $1; then if ping -q -c 1 $1; then
if [ x$new_ip_address != x$alias_ip_address ] && \ if [ x$new_ip_address != x$alias_ip_address ] && \
[ x$alias_ip_address != x ]; then
@@ -174,9 +191,9 @@
for router in $new_routers; do
route add default $router >/dev/null 2>&1
done
- set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
- route add $0 $1
+ route add $1 $2
shift; shift
done
make_resolv_conf
@@ -188,13 +205,13 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
exit_with_hooks 1
fi

View file

@ -1,23 +1,32 @@
--- site.conf.orig Wed Jul 7 08:20:10 1999 --- site.conf.orig Wed Jul 7 17:20:10 1999
+++ site.conf Tue Oct 3 08:59:57 2000 +++ site.conf Fri Jan 26 06:58:15 2001
@@ -1,2 +1,20 @@ @@ -1,2 +1,29 @@
# Put local site configuration stuff here to override the default # Put local site configuration stuff here to override the default
# settings in Makefile.conf # settings in Makefile.conf
+ +
+PREFIX ?= /usr/local +PREFIX ?= /usr/local
+ +
+ETC = $(PREFIX)/etc
+BINDIR = $(PREFIX)/sbin +BINDIR = $(PREFIX)/sbin
+CLIENTBINDIR = $(PREFIX)/sbin +CLIENTBINDIR = $(PREFIX)/sbin
+MANCAT = man
+ADMMANDIR = $(PREFIX)/man/man8 +ADMMANDIR = $(PREFIX)/man/man8
+ADMMANEXT = .8 +ADMMANEXT = .8
+FFMANDIR = $(PREFIX)/man/man5 +FFMANDIR = $(PREFIX)/man/man5
+FFMANEXT = .5 +FFMANEXT = .5
+LIBMANDIR = $(PREFIX)/man/man3 +LIBMANDIR = $(PREFIX)/man/man3
+LIBMANEXT = .3 +LIBMANEXT = .3
+MANCAT = man
+# INSTALL = ${INSTALL_DATA}
+# MANINSTALL = ${INSTALL_MAN}
+ETC = $(PREFIX)/etc
+LIBDIR = ${PREFIX}/lib
+INCDIR = ${PREFIX}/include
+ +
+DEBUG ?= #none +DEBUG ?= #none
+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(ETC)/dhclient-script\" +
+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(CLIENTBINDIR)/dhclient-script\"
+
+CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\" +CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\"
+CFLAGS += -D_PATH_DHCPD_DB=\"$(VARDB)/dhcpd.leases\"
+
+CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\" +CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\"
+CFLAGS += -D_PATH_DHCLIENT_DB=\"$(VARDB)/dhclient.leases\"

View file

@ -1,5 +0,0 @@
--- includes/site.h.orig Thu Sep 28 11:24:17 2000
+++ includes/site.h Sat Dec 2 00:46:53 2000
@@ -159 +159 @@
-/* #define DHCPD_LOG_FACILITY LOG_DAEMON */
+#define DHCPD_LOG_FACILITY LOG_!!USE_FACILITY!!

View file

@ -1,16 +1,17 @@
ISC-DHCP Dynamic Host Configuration Protocol server The ISC Dynamic Host Configuration Protocol Distribution provides
a freely redistributable reference implementation of all aspects
of the DHCP protocol, through a suite of DHCP tools:
This is a release of the Internet Software Consortium * A DHCP server
DHCP Server (ISC dhcpd). In this release, support for the core * A DHCP client
DHCP protocol is provided. BOOTP support is also provided for * A DHCP relay agent
backwards compatibility.
Version 3, Beta 2 of the ISC DHCP Distribution includes the following Version 3, Beta 2 of the ISC DHCP Distribution includes the following
features that are new since version 2.0: features that are new since version 2.0:
* DHCP Failover Protocol support * DHCP Failover Protocol support
* OMAPI, an API for accessing and modifying the DHCP * OMAPI, an API for accessing and modifying the DHCP
server and client state. server and client state.
* Conditional behaviour * Conditional behaviour
* Storing arbitrary information on leases * Storing arbitrary information on leases
* Address pools with access control * Address pools with access control
@ -19,10 +20,12 @@ features that are new since version 2.0:
* Relay agent information option support * Relay agent information option support
* Dynamic DNS updates * Dynamic DNS updates
* Many bug fixes, performance enhancements, and minor * Many bug fixes, performance enhancements, and minor
new DHCP protocol features. new DHCP protocol features.
A fully-featured implementation of dynamic DNS updates is included in Also, a fully-featured implementation of dynamic DNS updates is
this release. There are no build dependencies with any BIND version. included and there are no build dependencies with any BIND version.
Since patch-level 15, a log-facility configuration parameter has
been added, see the manual pages for details.
WWW: http://www.isc.org/products/DHCP/ WWW: http://www.isc.org/products/DHCP/

View file

@ -1,9 +1,8 @@
@comment $FreeBSD$ @comment $FreeBSD$
etc/dhclient-script etc/dhclient.conf.sample
sbin/dhclient etc/dhcpd.conf.sample
sbin/dhcpd
sbin/dhcrelay
etc/rc.d/isc-dhcpd.sh.sample etc/rc.d/isc-dhcpd.sh.sample
include/dhcpctl.h
include/isc/boolean.h include/isc/boolean.h
include/isc/dst.h include/isc/dst.h
include/isc/int.h include/isc/int.h
@ -11,13 +10,25 @@ include/isc/lang.h
include/isc/list.h include/isc/list.h
include/isc/result.h include/isc/result.h
include/isc/types.h include/isc/types.h
@dirrm include/isc
include/omapip/alloc.h include/omapip/alloc.h
include/omapip/buffer.h include/omapip/buffer.h
include/omapip/omapip.h include/omapip/omapip.h
@dirrm include/omapip
include/dhcpctl.h
lib/libomapi.a
lib/libdhcpctl.a lib/libdhcpctl.a
@exec touch /var/db/dhcpd.leases lib/libomapi.a
@exec touch %D/etc/dhclient.conf sbin/dhclient
sbin/dhclient-script
sbin/dhcpd
sbin/dhcrelay
share/doc/isc-dhcp3/CHANGES
share/doc/isc-dhcp3/COPYRIGHT
share/doc/isc-dhcp3/README
share/doc/isc-dhcp3/RELNOTES
@dirrm include/isc
@dirrm include/omapip
@dirrm share/doc/isc-dhcp3
@exec [ -f /var/db/dhclient.leases ] || touch /var/db/dhclient.leases
@unexec [ -s /var/db/dhclient.leases ] || rm -f /var/db/dhclient.leases
@exec [ -f /var/db/dhcpd.leases ] || touch /var/db/dhcpd.leases
@unexec [ -s /var/db/dhcpd.leases ] || rm -f /var/db/dhcpd.leases
@exec [ -f %D/etc/dhclient.conf ] || touch %D/etc/dhclient.conf
@unexec [ -L %D/etc/dhclient.conf -o -s %D/etc/dhclient.conf ] || rm -f %D/etc/dhclient.conf

View file

@ -7,19 +7,16 @@
# #
PORTNAME= isc-dhcp3 PORTNAME= isc-dhcp3
PORTVERSION= 3.0.b2.11 PORTVERSION= 3.0.b2.16
CATEGORIES= net CATEGORIES= net
MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/ MASTER_SITES= ftp://ftp.isc.org/isc/dhcp/
DISTNAME= dhcp-3.0b2pl${PORTVERSION:S/3.0.b2.//g} DISTNAME= ${PORTNAME:S/isc-//:S/3/-/}${PORTVERSION:S/.b/b/:R}pl${PORTVERSION:E}
MAINTAINER= ports@FreeBSD.org MAINTAINER= clefevre@citeweb.net
.if defined(USE_FACILITY) #
_USE_FACILITY:= `${ECHO} ${USE_FACILITY} | ${TR} "[:lower:]" "[:upper:]"` # Global variables
USE_FACILITY= ${_USE_FACILITY} #
.else
USE_FACILITY= DAEMON
.endif
HAS_CONFIGURE= yes HAS_CONFIGURE= yes
@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \
dhcpd.leases.5 dhcpd.leases.5
MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8 MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8
pre-fetch: #
.if ${USE_FACILITY} == "DAEMON" # Local variables
@${ECHO} "" #
@${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:"
@${ECHO} " daemon, local{0-7}" PATCH_SUBDIRS= client common dhcpctl minires omapip relay server
@${ECHO} " 'daemon' is the default option if one is not defined."
@${ECHO} " Press Control-C and run make clean build LOG_FACILITY=<local{0-7}>," BIN_FILES= dhclient dhcpd dhcrelay
@${ECHO} " if you wish to use a different logging facility." SAMP_FILES= client/dhclient.conf server/dhcpd.conf
@${ECHO} "" RCD_FILES= isc-dhcpd.sh.sample
@sleep 2 DOC_FILES= CHANGES COPYRIGHT README RELNOTES
DATA_FILES= dhclient.leases dhcpd.leases
CONF_FILES= dhclient.conf
BIN_DIR= ${PREFIX}/sbin
ETC_DIR= ${PREFIX}/etc
RCD_DIR= ${PREFIX}/etc/rc.d
DOC_DIR= ${PREFIX}/share/doc/${PORTNAME}
VARDB_DIR= /var/db
STRIP?= strip
#
# Post-patch
#
post-patch: patch-scripts patch-makefiles
patch-scripts:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' \
${WRKSRC}/client/scripts/freebsd
patch-makefiles:
.for subdir in ${PATCH_SUBDIRS}
@${PERL} -pi.fbsd -e \
's|^DEBUG[ ]*=|DEBUG ?=|g;s|^CFLAGS[ ]*=|CFLAGS +=|g' \
${WRKSRC}/${subdir}/Makefile.dist
.endfor
#
# Post-install
#
post-install: strip-binary-files install-startup-files \
install-doc-files install-sample-files \
create-data-files create-conf-files
strip-binary-files:
.for file in ${BIN_FILES}
.if exists({BIN_DIR}/${file})
@${STRIP} ${BIN_DIR}/${file}
.endif
.endfor
install-startup-files:
.for file in ${RCD_FILES}
@${INSTALL_SCRIPT} ${FILESDIR}/${file} ${RCD_DIR}/${file}
.endfor
install-doc-files:
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOC_DIR}
.for file in ${DOC_FILES}
@${INSTALL_DATA} ${WRKSRC}/${file} ${DOC_DIR}/${file}
.endfor
.endif .endif
post-patch: install-sample-files:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h .for file in ${SAMP_FILES}
@${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h @${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/client/scripts/freebsd
.for MF in relay/Makefile.dist server/Makefile.dist client/Makefile.dist common/Makefile.dist dhcpctl/Makefile.dist minires/Makefile.dist omapip/Makefile.dist
@${PERL} -pi.fbsd -e 's|^DEBUG[ ]*=|DEBUG ?=|g ; s|^CFLAGS[ ]*=|CFLAGS +=|g' ${WRKSRC}/${MF}
.endfor .endfor
post-install: create-data-files:
${TOUCH} /var/db/dhcpd.leases .for file in ${DATA_FILES}
.for file in dhclient dhcpd dhcrelay .if !exists(${VARDB_DIR}/${file})
if [ -f ${PREFIX}/sbin/${file} ]; then \ @${TOUCH} ${VARDB_DIR}/${file}
strip ${PREFIX}/sbin/${file}; \ .endif
fi .endfor
create-conf-files:
.for file in ${CONF_FILES}
.if !exists(${ETC_DIR}/${file})
@${TOUCH} ${ETC_DIR}/${file}
.endif
.endfor .endfor
${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \
${PREFIX}/etc/rc.d
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -1 +1 @@
MD5 (dhcp-3.0b2pl11.tar.gz) = 5fd2c97d850c41e6445648a4108b509f MD5 (dhcp-3.0b2pl16.tar.gz) = 88fb65480a1b66c8d011957ea6c2e138

View file

@ -2,6 +2,7 @@
# $FreeBSD$ # $FreeBSD$
OPTIONS=""
IFACES="SET_THIS" IFACES="SET_THIS"
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
@ -11,10 +12,10 @@ fi
case "$1" in case "$1" in
start) start)
${PREFIX}/sbin/dhcpd $IFACES ${PREFIX}/sbin/dhcpd $OPTIONS $IFACES
;; ;;
stop) stop)
kill `cat /var/run/dhcpd.pid` killall dhcpd
;; ;;
restart) restart)
$0 stop $0 stop
@ -24,7 +25,7 @@ status)
ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)" ps -auxww | egrep '(conserver|console)' | egrep -v "($0|egrep)"
;; ;;
*) *)
echo "Usage: `basename $0` {start|stop|restart|status}" >&2 echo "usage: ${0##*/} {start|stop|restart|status}" >&2
;; ;;
esac esac

View file

@ -1,43 +1,20 @@
--- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000 --- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001
+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000 +++ includes/dhcpd.h Fri Jan 26 06:46:12 2001
@@ -329,7 +329,7 @@ @@ -672,7 +672,7 @@
#endif u_int32_t requested_lease; /* Requested lease time, if user
doesn't configure one. */
struct string_list *media; /* Possible network media values. */
- char *script_name; /* Name of config script. */
+ const char *script_name; /* Name of config script. */
char *vendor_space_name; /* Name of config script. */
enum policy bootp_policy;
/* Ignore, accept or prefer BOOTP
@@ -1864,6 +1864,8 @@
void set_ip_address PROTO ((struct interface_info *, struct in_addr));
#ifndef CL_DEFAULT_SCRIPT_NAME /* clparse.c */
-# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script" +extern const char *client_script_name;
+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script" +
#endif isc_result_t read_client_conf PROTO ((void));
void read_client_leases PROTO ((void));
#ifndef CL_DEFAULT_REQUESTED_OPTIONS void parse_client_statement PROTO ((struct parse *, struct interface_info *,
@@ -771,11 +771,11 @@
#define _PATH_DHCPD_DB "dhcpd.leases"
#else
#ifndef _PATH_DHCPD_CONF
-#define _PATH_DHCPD_CONF "/etc/dhcpd.conf"
+#define _PATH_DHCPD_CONF "!!PREFIX!!/etc/dhcpd.conf"
#endif
#ifndef _PATH_DHCPD_DB
-#define _PATH_DHCPD_DB "/etc/dhcpd.leases"
+#define _PATH_DHCPD_DB "!!PREFIX!!/etc/dhcpd.leases"
#endif
#ifndef _PATH_DHCPD_PID
@@ -784,7 +784,7 @@
#endif
#ifndef _PATH_DHCLIENT_CONF
-#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf"
+#define _PATH_DHCLIENT_CONF "!!PREFIX!!/etc/dhclient.conf"
#endif
#ifndef _PATH_DHCLIENT_PID
@@ -792,7 +792,7 @@
#endif
#ifndef _PATH_DHCLIENT_DB
-#define _PATH_DHCLIENT_DB "/etc/dhclient.leases"
+#define _PATH_DHCLIENT_DB "!!PREFIX!!/etc/dhclient.leases"
#endif
#ifndef _PATH_RESOLV_CONF

View file

@ -1,5 +1,11 @@
--- client/clparse.c.orig Wed Jul 19 21:13:10 2000 --- client/clparse.c.orig Thu Jan 25 09:17:17 2001
+++ client/clparse.c Thu Jul 20 21:52:53 2000 +++ client/clparse.c Fri Jan 26 06:11:01 2001
@@ -46 +46 @@ @@ -50,7 +50,7 @@
static TIME parsed_time;
-char client_script_name [] = "/etc/dhclient-script"; -char client_script_name [] = "/etc/dhclient-script";
+char client_script_name [] = CL_DEFAULT_SCRIPT_NAME; +const char *client_script_name = CL_DEFAULT_SCRIPT_NAME;
struct client_config top_level_config;

View file

@ -1,5 +1,5 @@
--- client/dhclient.8.orig Wed May 10 02:36:03 2000 --- client/dhclient.8.orig Mon May 1 19:11:36 2000
+++ client/dhclient.8 Wed May 10 02:39:43 2000 +++ client/dhclient.8 Fri Jan 26 05:12:37 2001
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
.B -q .B -q
] ]
@ -9,15 +9,59 @@
] ]
[ [
.B -lf .B -lf
@@ -170,6 +170,11 @@ @@ -49,6 +49,10 @@
.B -q .I config-file
]
[
+.B -sf
+.I script-file
+]
+[
.B -s
server
]
@@ -174,17 +178,25 @@
flag prevents any messages other than errors from being printed to the flag prevents any messages other than errors from being printed to the
standard error descriptor. standard error descriptor.
+.PP .PP
+The +The
+.B -1 +.B -1
+flag cause dhclient to try once to get a lease. If it fails, dhclient exits +flag cause dhclient to try once to get a lease. If it fails, dhclient exits
+with exit code two. +with exit code two.
.PP +.PP
The DHCP client normally gets its configuration information from The DHCP client normally gets its configuration information from
.B ETCDIR/dhclient.conf, .B ETCDIR/dhclient.conf,
its lease database from
-.B DBDIR/dhclient.leases
-and stores its process ID in a file called
+.B DBDIR/dhclient.leases,
+stores its process ID in a file called
.B RUNDIR/dhclient.pid.
+and configure the network interface using
+.B CLIENTBINDIR/dhclient-script.
To specify different names and/or locations for these files, use the
.B -cf,
-.B -lf
-and
+.B -lf,
.B -pf
+and
+.B -sf
flags, respectively, followed by the name of the file. This can be
particularly useful if, for example,
.B DBDIR
@@ -206,10 +218,12 @@
.SH CONFIGURATION
The syntax of the dhclient.conf(8) file is discussed seperately.
.SH FILES
+.B CLIENTBINDIR/dhclient-script,
.B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid,
-.B DBDIR/dhclient.leases~.
+.B DBDIR/dhclient.leases.
.SH SEE ALSO
-dhcpd(8), dhcrelay(8), dhclient.conf(5), dhclient.leases(5)
+dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5) and
+dhclient.leases(5).
.SH AUTHOR
.B dhclient(8)
has been written for the Internet Software Consortium

View file

@ -1,5 +1,5 @@
--- client/dhclient.c.orig Thu Sep 14 05:42:01 2000 --- client/dhclient.c.orig Thu Jan 25 09:18:06 2001
+++ client/dhclient.c Wed Sep 27 03:31:33 2000 +++ client/dhclient.c Fri Jan 26 06:15:50 2001
@@ -78,6 +78,7 @@ @@ -78,6 +78,7 @@
u_int16_t remote_port; u_int16_t remote_port;
int no_daemon; int no_daemon;
@ -8,7 +8,27 @@
static void usage PROTO ((void)); static void usage PROTO ((void));
@@ -176,6 +177,8 @@ @@ -104,6 +105,7 @@
int no_dhclient_conf = 0;
int no_dhclient_db = 0;
int no_dhclient_pid = 0;
+ int no_dhclient_script = 0;
char *s;
#ifdef SYSLOG_4_2
@@ -159,6 +161,11 @@
usage ();
path_dhclient_db = argv [i];
no_dhclient_db = 1;
+ } else if (!strcmp (argv [i], "-sf")) {
+ if (++i == argc)
+ usage ();
+ client_script_name = argv [i];
+ no_dhclient_script = 1;
} else if (!strcmp (argv [i], "-q")) {
quiet = 1;
quiet_interface_discovery = 1;
@@ -176,6 +183,8 @@
} else if (!strcmp (argv [i], "-w")) { } else if (!strcmp (argv [i], "-w")) {
/* do not exit if there are no broadcast interfaces. */ /* do not exit if there are no broadcast interfaces. */
persist = 1; persist = 1;
@ -17,16 +37,32 @@
} else if (argv [i][0] == '-') { } else if (argv [i][0] == '-') {
usage (); usage ();
} else { } else {
@@ -417,7 +420,7 @@ @@ -208,6 +217,9 @@
if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) {
path_dhclient_pid = s;
}
+ if (!no_dhclient_script && (s = getenv ("PATH_DHCLIENT_SCRIPT"))) {
+ client_script_name = s;
+ }
/* first kill of any currently running client */
if (release_mode) {
@@ -423,10 +435,11 @@
log_info (arr); log_info (arr);
log_info (url); log_info (url);
- log_error ("Usage: dhclient [-d] [-D] [-q] [-p <port>] %s", - log_error ("Usage: dhclient [-d] [-D] [-q] [-p <port>] %s",
+ log_error ("Usage: dhclient [-1] [-d] [-D] [-q] [-p <port>] %s", + log_error ("usage: dhclient [-1] [-d] [-D] [-q] [-p <port>] %s",
"[-s server]"); "[-s server]");
log_fatal (" [-lf lease-file] [-pf pid-file]%s", - log_fatal (" [-lf lease-file] [-pf pid-file]%s",
"[-cf config-file] [interface]"); - "[-cf config-file] [interface]");
@@ -1402,6 +1405,10 @@ + log_error (" [-cf config-file] [-lf lease-file] %s",
+ "[-pf pid-file] [-sf script-file]");
+ log_fatal (" [interface]");
}
isc_result_t find_class (struct class **c,
@@ -1432,6 +1445,10 @@
/* No leases were available, or what was available didn't work, so /* No leases were available, or what was available didn't work, so
tell the shell script that we failed to allocate an address, tell the shell script that we failed to allocate an address,
and try again later. */ and try again later. */

View file

@ -1,5 +1,5 @@
--- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000 --- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000
+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000 +++ client/scripts/freebsd Sat Jan 27 02:17:01 2001
@@ -1,5 +1,11 @@ @@ -1,5 +1,11 @@
#!/bin/sh #!/bin/sh
@ -55,12 +55,26 @@
hostname $new_host_name hostname $new_host_name
fi fi
fi fi
@@ -105,11 +111,18 @@ @@ -93,24 +99,31 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh
fi
if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
[ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
ifconfig $interface inet $new_ip_address $new_netmask_arg \ ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium $new_broadcast_arg $medium
+ $LOGGER "New IP Address($interface): $new_ip_address" + $LOGGER "New IP Address($interface): $new_ip_address"
+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask" + $LOGGER "New Subnet Mask($interface): $new_subnet_mask"
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
+ if [ "$new_routers" != "" ]; then + if [ "$new_routers" != "" ]; then
+ $LOGGER "New Routers: $new_routers" + $LOGGER "New Routers: $new_routers"
@ -70,11 +84,29 @@
route add default $router >/dev/null 2>&1 route add default $router >/dev/null 2>&1
done done
if [ "$new_static_routes" != "" ]; then if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ $LOGGER "New Static Routes: $new_static_routes" + $LOGGER "New Static Routes: $new_static_routes"
set $new_static_routes + set -- $new_static_routes
while [ $# -gt 1 ]; do while [ $# -gt 1 ]; do
route add $1 $2 route add $1 $2
@@ -161,8 +174,12 @@ shift; shift
@@ -138,13 +151,13 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
fi
if [ x$alias_ip_address != x ]; then
@@ -161,9 +174,13 @@
fi fi
ifconfig $interface inet $new_ip_address $new_netmask_arg \ ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium $new_broadcast_arg $medium
@ -83,7 +115,37 @@
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address" + $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1 sleep 1
if [ "$new_routers" != "" ]; then if [ "$new_routers" != "" ]; then
- set $new_routers
+ $LOGGER "New Routers: $new_routers" + $LOGGER "New Routers: $new_routers"
set $new_routers + set -- $new_routers
if ping -q -c 1 $1; then if ping -q -c 1 $1; then
if [ x$new_ip_address != x$alias_ip_address ] && \ if [ x$new_ip_address != x$alias_ip_address ] && \
[ x$alias_ip_address != x ]; then
@@ -174,9 +191,9 @@
for router in $new_routers; do
route add default $router >/dev/null 2>&1
done
- set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
- route add $0 $1
+ route add $1 $2
shift; shift
done
make_resolv_conf
@@ -188,13 +205,13 @@
route delete default $router >/dev/null 2>&1
done
if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
exit_with_hooks 1
fi

View file

@ -1,23 +1,32 @@
--- site.conf.orig Wed Jul 7 08:20:10 1999 --- site.conf.orig Wed Jul 7 17:20:10 1999
+++ site.conf Tue Oct 3 08:59:57 2000 +++ site.conf Fri Jan 26 06:58:15 2001
@@ -1,2 +1,20 @@ @@ -1,2 +1,29 @@
# Put local site configuration stuff here to override the default # Put local site configuration stuff here to override the default
# settings in Makefile.conf # settings in Makefile.conf
+ +
+PREFIX ?= /usr/local +PREFIX ?= /usr/local
+ +
+ETC = $(PREFIX)/etc
+BINDIR = $(PREFIX)/sbin +BINDIR = $(PREFIX)/sbin
+CLIENTBINDIR = $(PREFIX)/sbin +CLIENTBINDIR = $(PREFIX)/sbin
+MANCAT = man
+ADMMANDIR = $(PREFIX)/man/man8 +ADMMANDIR = $(PREFIX)/man/man8
+ADMMANEXT = .8 +ADMMANEXT = .8
+FFMANDIR = $(PREFIX)/man/man5 +FFMANDIR = $(PREFIX)/man/man5
+FFMANEXT = .5 +FFMANEXT = .5
+LIBMANDIR = $(PREFIX)/man/man3 +LIBMANDIR = $(PREFIX)/man/man3
+LIBMANEXT = .3 +LIBMANEXT = .3
+MANCAT = man
+# INSTALL = ${INSTALL_DATA}
+# MANINSTALL = ${INSTALL_MAN}
+ETC = $(PREFIX)/etc
+LIBDIR = ${PREFIX}/lib
+INCDIR = ${PREFIX}/include
+ +
+DEBUG ?= #none +DEBUG ?= #none
+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(ETC)/dhclient-script\" +
+CFLAGS += -DCL_DEFAULT_SCRIPT_NAME=\"$(CLIENTBINDIR)/dhclient-script\"
+
+CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\" +CFLAGS += -D_PATH_DHCPD_CONF=\"$(ETC)/dhcpd.conf\"
+CFLAGS += -D_PATH_DHCPD_DB=\"$(VARDB)/dhcpd.leases\"
+
+CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\" +CFLAGS += -D_PATH_DHCLIENT_CONF=\"$(ETC)/dhclient.conf\"
+CFLAGS += -D_PATH_DHCLIENT_DB=\"$(VARDB)/dhclient.leases\"

View file

@ -1,5 +0,0 @@
--- includes/site.h.orig Thu Sep 28 11:24:17 2000
+++ includes/site.h Sat Dec 2 00:46:53 2000
@@ -159 +159 @@
-/* #define DHCPD_LOG_FACILITY LOG_DAEMON */
+#define DHCPD_LOG_FACILITY LOG_!!USE_FACILITY!!

View file

@ -1,16 +1,17 @@
ISC-DHCP Dynamic Host Configuration Protocol server The ISC Dynamic Host Configuration Protocol Distribution provides
a freely redistributable reference implementation of all aspects
of the DHCP protocol, through a suite of DHCP tools:
This is a release of the Internet Software Consortium * A DHCP server
DHCP Server (ISC dhcpd). In this release, support for the core * A DHCP client
DHCP protocol is provided. BOOTP support is also provided for * A DHCP relay agent
backwards compatibility.
Version 3, Beta 2 of the ISC DHCP Distribution includes the following Version 3, Beta 2 of the ISC DHCP Distribution includes the following
features that are new since version 2.0: features that are new since version 2.0:
* DHCP Failover Protocol support * DHCP Failover Protocol support
* OMAPI, an API for accessing and modifying the DHCP * OMAPI, an API for accessing and modifying the DHCP
server and client state. server and client state.
* Conditional behaviour * Conditional behaviour
* Storing arbitrary information on leases * Storing arbitrary information on leases
* Address pools with access control * Address pools with access control
@ -19,10 +20,12 @@ features that are new since version 2.0:
* Relay agent information option support * Relay agent information option support
* Dynamic DNS updates * Dynamic DNS updates
* Many bug fixes, performance enhancements, and minor * Many bug fixes, performance enhancements, and minor
new DHCP protocol features. new DHCP protocol features.
A fully-featured implementation of dynamic DNS updates is included in Also, a fully-featured implementation of dynamic DNS updates is
this release. There are no build dependencies with any BIND version. included and there are no build dependencies with any BIND version.
Since patch-level 15, a log-facility configuration parameter has
been added, see the manual pages for details.
WWW: http://www.isc.org/products/DHCP/ WWW: http://www.isc.org/products/DHCP/

View file

@ -1,9 +1,8 @@
@comment $FreeBSD$ @comment $FreeBSD$
etc/dhclient-script etc/dhclient.conf.sample
sbin/dhclient etc/dhcpd.conf.sample
sbin/dhcpd
sbin/dhcrelay
etc/rc.d/isc-dhcpd.sh.sample etc/rc.d/isc-dhcpd.sh.sample
include/dhcpctl.h
include/isc/boolean.h include/isc/boolean.h
include/isc/dst.h include/isc/dst.h
include/isc/int.h include/isc/int.h
@ -11,13 +10,25 @@ include/isc/lang.h
include/isc/list.h include/isc/list.h
include/isc/result.h include/isc/result.h
include/isc/types.h include/isc/types.h
@dirrm include/isc
include/omapip/alloc.h include/omapip/alloc.h
include/omapip/buffer.h include/omapip/buffer.h
include/omapip/omapip.h include/omapip/omapip.h
@dirrm include/omapip
include/dhcpctl.h
lib/libomapi.a
lib/libdhcpctl.a lib/libdhcpctl.a
@exec touch /var/db/dhcpd.leases lib/libomapi.a
@exec touch %D/etc/dhclient.conf sbin/dhclient
sbin/dhclient-script
sbin/dhcpd
sbin/dhcrelay
share/doc/isc-dhcp3/CHANGES
share/doc/isc-dhcp3/COPYRIGHT
share/doc/isc-dhcp3/README
share/doc/isc-dhcp3/RELNOTES
@dirrm include/isc
@dirrm include/omapip
@dirrm share/doc/isc-dhcp3
@exec [ -f /var/db/dhclient.leases ] || touch /var/db/dhclient.leases
@unexec [ -s /var/db/dhclient.leases ] || rm -f /var/db/dhclient.leases
@exec [ -f /var/db/dhcpd.leases ] || touch /var/db/dhcpd.leases
@unexec [ -s /var/db/dhcpd.leases ] || rm -f /var/db/dhcpd.leases
@exec [ -f %D/etc/dhclient.conf ] || touch %D/etc/dhclient.conf
@unexec [ -L %D/etc/dhclient.conf -o -s %D/etc/dhclient.conf ] || rm -f %D/etc/dhclient.conf