1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-21 20:38:45 +00:00

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
PORTVERSION= 3.0.b2.11
PORTVERSION= 3.0.b2.16
CATEGORIES= net
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:]"`
USE_FACILITY= ${_USE_FACILITY}
.else
USE_FACILITY= DAEMON
.endif
#
# Global variables
#
HAS_CONFIGURE= yes
@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \
dhcpd.leases.5
MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8
pre-fetch:
.if ${USE_FACILITY} == "DAEMON"
@${ECHO} ""
@${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:"
@${ECHO} " daemon, local{0-7}"
@${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}>,"
@${ECHO} " if you wish to use a different logging facility."
@${ECHO} ""
@sleep 2
#
# Local variables
#
PATCH_SUBDIRS= client common dhcpctl minires omapip relay server
BIN_FILES= dhclient dhcpd dhcrelay
SAMP_FILES= client/dhclient.conf server/dhcpd.conf
RCD_FILES= isc-dhcpd.sh.sample
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
post-patch:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h
@${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h
@${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}
install-sample-files:
.for file in ${SAMP_FILES}
@${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample
.endfor
post-install:
${TOUCH} /var/db/dhcpd.leases
.for file in dhclient dhcpd dhcrelay
if [ -f ${PREFIX}/sbin/${file} ]; then \
strip ${PREFIX}/sbin/${file}; \
fi
create-data-files:
.for file in ${DATA_FILES}
.if !exists(${VARDB_DIR}/${file})
@${TOUCH} ${VARDB_DIR}/${file}
.endif
.endfor
create-conf-files:
.for file in ${CONF_FILES}
.if !exists(${ETC_DIR}/${file})
@${TOUCH} ${ETC_DIR}/${file}
.endif
.endfor
${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \
${PREFIX}/etc/rc.d
.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$
OPTIONS=""
IFACES="SET_THIS"
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
@ -11,10 +12,10 @@ fi
case "$1" in
start)
${PREFIX}/sbin/dhcpd $IFACES
${PREFIX}/sbin/dhcpd $OPTIONS $IFACES
;;
stop)
kill `cat /var/run/dhcpd.pid`
killall dhcpd
;;
restart)
$0 stop
@ -24,7 +25,7 @@ status)
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

View File

@ -1,43 +1,20 @@
--- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000
+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000
@@ -329,7 +329,7 @@
#endif
--- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001
+++ includes/dhcpd.h Fri Jan 26 06:46:12 2001
@@ -672,7 +672,7 @@
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
-# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script"
+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script"
#endif
#ifndef CL_DEFAULT_REQUESTED_OPTIONS
@@ -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
/* clparse.c */
+extern const char *client_script_name;
+
isc_result_t read_client_conf PROTO ((void));
void read_client_leases PROTO ((void));
void parse_client_statement PROTO ((struct parse *, struct interface_info *,

View File

@ -1,5 +1,11 @@
--- client/clparse.c.orig Wed Jul 19 21:13:10 2000
+++ client/clparse.c Thu Jul 20 21:52:53 2000
@@ -46 +46 @@
--- client/clparse.c.orig Thu Jan 25 09:17:17 2001
+++ client/clparse.c Fri Jan 26 06:11:01 2001
@@ -50,7 +50,7 @@
static TIME parsed_time;
-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 Wed May 10 02:39:43 2000
--- client/dhclient.8.orig Mon May 1 19:11:36 2000
+++ client/dhclient.8 Fri Jan 26 05:12:37 2001
@@ -34,7 +34,7 @@
.B -q
]
@ -9,15 +9,59 @@
]
[
.B -lf
@@ -170,6 +170,11 @@
.B -q
@@ -49,6 +49,10 @@
.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
standard error descriptor.
+.PP
.PP
+The
+.B -1
+flag cause dhclient to try once to get a lease. If it fails, dhclient exits
+with exit code two.
.PP
+.PP
The DHCP client normally gets its configuration information from
.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 Wed Sep 27 03:31:33 2000
--- client/dhclient.c.orig Thu Jan 25 09:18:06 2001
+++ client/dhclient.c Fri Jan 26 06:15:50 2001
@@ -78,6 +78,7 @@
u_int16_t remote_port;
int no_daemon;
@ -8,7 +8,27 @@
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")) {
/* do not exit if there are no broadcast interfaces. */
persist = 1;
@ -17,16 +37,32 @@
} else if (argv [i][0] == '-') {
usage ();
} 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 (url);
- 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]");
log_fatal (" [-lf lease-file] [-pf pid-file]%s",
"[-cf config-file] [interface]");
@@ -1402,6 +1405,10 @@
- log_fatal (" [-lf lease-file] [-pf pid-file]%s",
- "[-cf config-file] [interface]");
+ 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
tell the shell script that we failed to allocate an address,
and try again later. */

View File

@ -1,5 +1,5 @@
--- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000
+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000
--- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000
+++ client/scripts/freebsd Sat Jan 27 02:17:01 2001
@@ -1,5 +1,11 @@
#!/bin/sh
@ -55,12 +55,26 @@
hostname $new_host_name
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
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
+ $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"
+ if [ "$new_routers" != "" ]; then
+ $LOGGER "New Routers: $new_routers"
@ -70,11 +84,29 @@
route add default $router >/dev/null 2>&1
done
if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ $LOGGER "New Static Routes: $new_static_routes"
set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
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
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
@ -83,7 +115,37 @@
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1
if [ "$new_routers" != "" ]; then
- set $new_routers
+ $LOGGER "New Routers: $new_routers"
set $new_routers
+ set -- $new_routers
if ping -q -c 1 $1; then
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 Tue Oct 3 08:59:57 2000
@@ -1,2 +1,20 @@
--- site.conf.orig Wed Jul 7 17:20:10 1999
+++ site.conf Fri Jan 26 06:58:15 2001
@@ -1,2 +1,29 @@
# Put local site configuration stuff here to override the default
# settings in Makefile.conf
+
+PREFIX ?= /usr/local
+
+ETC = $(PREFIX)/etc
+BINDIR = $(PREFIX)/sbin
+CLIENTBINDIR = $(PREFIX)/sbin
+MANCAT = man
+ADMMANDIR = $(PREFIX)/man/man8
+ADMMANEXT = .8
+FFMANDIR = $(PREFIX)/man/man5
+FFMANEXT = .5
+LIBMANDIR = $(PREFIX)/man/man3
+LIBMANEXT = .3
+MANCAT = man
+# INSTALL = ${INSTALL_DATA}
+# MANINSTALL = ${INSTALL_MAN}
+ETC = $(PREFIX)/etc
+LIBDIR = ${PREFIX}/lib
+INCDIR = ${PREFIX}/include
+
+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_DB=\"$(VARDB)/dhcpd.leases\"
+
+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
DHCP Server (ISC dhcpd). In this release, support for the core
DHCP protocol is provided. BOOTP support is also provided for
backwards compatibility.
* A DHCP server
* A DHCP client
* A DHCP relay agent
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
* OMAPI, an API for accessing and modifying the DHCP
server and client state.
server and client state.
* Conditional behaviour
* Storing arbitrary information on leases
* Address pools with access control
@ -19,10 +20,12 @@ features that are new since version 2.0:
* Relay agent information option support
* Dynamic DNS updates
* 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
this release. There are no build dependencies with any BIND version.
Also, a fully-featured implementation of dynamic DNS updates is
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/

View File

@ -1,9 +1,8 @@
@comment $FreeBSD$
etc/dhclient-script
sbin/dhclient
sbin/dhcpd
sbin/dhcrelay
etc/dhclient.conf.sample
etc/dhcpd.conf.sample
etc/rc.d/isc-dhcpd.sh.sample
include/dhcpctl.h
include/isc/boolean.h
include/isc/dst.h
include/isc/int.h
@ -11,13 +10,25 @@ include/isc/lang.h
include/isc/list.h
include/isc/result.h
include/isc/types.h
@dirrm include/isc
include/omapip/alloc.h
include/omapip/buffer.h
include/omapip/omapip.h
@dirrm include/omapip
include/dhcpctl.h
lib/libomapi.a
lib/libdhcpctl.a
@exec touch /var/db/dhcpd.leases
@exec touch %D/etc/dhclient.conf
lib/libomapi.a
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
PORTVERSION= 3.0.b2.11
PORTVERSION= 3.0.b2.16
CATEGORIES= net
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:]"`
USE_FACILITY= ${_USE_FACILITY}
.else
USE_FACILITY= DAEMON
.endif
#
# Global variables
#
HAS_CONFIGURE= yes
@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \
dhcpd.leases.5
MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8
pre-fetch:
.if ${USE_FACILITY} == "DAEMON"
@${ECHO} ""
@${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:"
@${ECHO} " daemon, local{0-7}"
@${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}>,"
@${ECHO} " if you wish to use a different logging facility."
@${ECHO} ""
@sleep 2
#
# Local variables
#
PATCH_SUBDIRS= client common dhcpctl minires omapip relay server
BIN_FILES= dhclient dhcpd dhcrelay
SAMP_FILES= client/dhclient.conf server/dhcpd.conf
RCD_FILES= isc-dhcpd.sh.sample
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
post-patch:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h
@${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h
@${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}
install-sample-files:
.for file in ${SAMP_FILES}
@${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample
.endfor
post-install:
${TOUCH} /var/db/dhcpd.leases
.for file in dhclient dhcpd dhcrelay
if [ -f ${PREFIX}/sbin/${file} ]; then \
strip ${PREFIX}/sbin/${file}; \
fi
create-data-files:
.for file in ${DATA_FILES}
.if !exists(${VARDB_DIR}/${file})
@${TOUCH} ${VARDB_DIR}/${file}
.endif
.endfor
create-conf-files:
.for file in ${CONF_FILES}
.if !exists(${ETC_DIR}/${file})
@${TOUCH} ${ETC_DIR}/${file}
.endif
.endfor
${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \
${PREFIX}/etc/rc.d
.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$
OPTIONS=""
IFACES="SET_THIS"
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
@ -11,10 +12,10 @@ fi
case "$1" in
start)
${PREFIX}/sbin/dhcpd $IFACES
${PREFIX}/sbin/dhcpd $OPTIONS $IFACES
;;
stop)
kill `cat /var/run/dhcpd.pid`
killall dhcpd
;;
restart)
$0 stop
@ -24,7 +25,7 @@ status)
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

View File

@ -1,43 +1,20 @@
--- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000
+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000
@@ -329,7 +329,7 @@
#endif
--- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001
+++ includes/dhcpd.h Fri Jan 26 06:46:12 2001
@@ -672,7 +672,7 @@
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
-# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script"
+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script"
#endif
#ifndef CL_DEFAULT_REQUESTED_OPTIONS
@@ -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
/* clparse.c */
+extern const char *client_script_name;
+
isc_result_t read_client_conf PROTO ((void));
void read_client_leases PROTO ((void));
void parse_client_statement PROTO ((struct parse *, struct interface_info *,

View File

@ -1,5 +1,11 @@
--- client/clparse.c.orig Wed Jul 19 21:13:10 2000
+++ client/clparse.c Thu Jul 20 21:52:53 2000
@@ -46 +46 @@
--- client/clparse.c.orig Thu Jan 25 09:17:17 2001
+++ client/clparse.c Fri Jan 26 06:11:01 2001
@@ -50,7 +50,7 @@
static TIME parsed_time;
-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 Wed May 10 02:39:43 2000
--- client/dhclient.8.orig Mon May 1 19:11:36 2000
+++ client/dhclient.8 Fri Jan 26 05:12:37 2001
@@ -34,7 +34,7 @@
.B -q
]
@ -9,15 +9,59 @@
]
[
.B -lf
@@ -170,6 +170,11 @@
.B -q
@@ -49,6 +49,10 @@
.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
standard error descriptor.
+.PP
.PP
+The
+.B -1
+flag cause dhclient to try once to get a lease. If it fails, dhclient exits
+with exit code two.
.PP
+.PP
The DHCP client normally gets its configuration information from
.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 Wed Sep 27 03:31:33 2000
--- client/dhclient.c.orig Thu Jan 25 09:18:06 2001
+++ client/dhclient.c Fri Jan 26 06:15:50 2001
@@ -78,6 +78,7 @@
u_int16_t remote_port;
int no_daemon;
@ -8,7 +8,27 @@
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")) {
/* do not exit if there are no broadcast interfaces. */
persist = 1;
@ -17,16 +37,32 @@
} else if (argv [i][0] == '-') {
usage ();
} 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 (url);
- 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]");
log_fatal (" [-lf lease-file] [-pf pid-file]%s",
"[-cf config-file] [interface]");
@@ -1402,6 +1405,10 @@
- log_fatal (" [-lf lease-file] [-pf pid-file]%s",
- "[-cf config-file] [interface]");
+ 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
tell the shell script that we failed to allocate an address,
and try again later. */

View File

@ -1,5 +1,5 @@
--- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000
+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000
--- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000
+++ client/scripts/freebsd Sat Jan 27 02:17:01 2001
@@ -1,5 +1,11 @@
#!/bin/sh
@ -55,12 +55,26 @@
hostname $new_host_name
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
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
+ $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"
+ if [ "$new_routers" != "" ]; then
+ $LOGGER "New Routers: $new_routers"
@ -70,11 +84,29 @@
route add default $router >/dev/null 2>&1
done
if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ $LOGGER "New Static Routes: $new_static_routes"
set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
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
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
@ -83,7 +115,37 @@
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1
if [ "$new_routers" != "" ]; then
- set $new_routers
+ $LOGGER "New Routers: $new_routers"
set $new_routers
+ set -- $new_routers
if ping -q -c 1 $1; then
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 Tue Oct 3 08:59:57 2000
@@ -1,2 +1,20 @@
--- site.conf.orig Wed Jul 7 17:20:10 1999
+++ site.conf Fri Jan 26 06:58:15 2001
@@ -1,2 +1,29 @@
# Put local site configuration stuff here to override the default
# settings in Makefile.conf
+
+PREFIX ?= /usr/local
+
+ETC = $(PREFIX)/etc
+BINDIR = $(PREFIX)/sbin
+CLIENTBINDIR = $(PREFIX)/sbin
+MANCAT = man
+ADMMANDIR = $(PREFIX)/man/man8
+ADMMANEXT = .8
+FFMANDIR = $(PREFIX)/man/man5
+FFMANEXT = .5
+LIBMANDIR = $(PREFIX)/man/man3
+LIBMANEXT = .3
+MANCAT = man
+# INSTALL = ${INSTALL_DATA}
+# MANINSTALL = ${INSTALL_MAN}
+ETC = $(PREFIX)/etc
+LIBDIR = ${PREFIX}/lib
+INCDIR = ${PREFIX}/include
+
+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_DB=\"$(VARDB)/dhcpd.leases\"
+
+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
DHCP Server (ISC dhcpd). In this release, support for the core
DHCP protocol is provided. BOOTP support is also provided for
backwards compatibility.
* A DHCP server
* A DHCP client
* A DHCP relay agent
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
* OMAPI, an API for accessing and modifying the DHCP
server and client state.
server and client state.
* Conditional behaviour
* Storing arbitrary information on leases
* Address pools with access control
@ -19,10 +20,12 @@ features that are new since version 2.0:
* Relay agent information option support
* Dynamic DNS updates
* 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
this release. There are no build dependencies with any BIND version.
Also, a fully-featured implementation of dynamic DNS updates is
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/

View File

@ -1,9 +1,8 @@
@comment $FreeBSD$
etc/dhclient-script
sbin/dhclient
sbin/dhcpd
sbin/dhcrelay
etc/dhclient.conf.sample
etc/dhcpd.conf.sample
etc/rc.d/isc-dhcpd.sh.sample
include/dhcpctl.h
include/isc/boolean.h
include/isc/dst.h
include/isc/int.h
@ -11,13 +10,25 @@ include/isc/lang.h
include/isc/list.h
include/isc/result.h
include/isc/types.h
@dirrm include/isc
include/omapip/alloc.h
include/omapip/buffer.h
include/omapip/omapip.h
@dirrm include/omapip
include/dhcpctl.h
lib/libomapi.a
lib/libdhcpctl.a
@exec touch /var/db/dhcpd.leases
@exec touch %D/etc/dhclient.conf
lib/libomapi.a
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
PORTVERSION= 3.0.b2.11
PORTVERSION= 3.0.b2.16
CATEGORIES= net
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:]"`
USE_FACILITY= ${_USE_FACILITY}
.else
USE_FACILITY= DAEMON
.endif
#
# Global variables
#
HAS_CONFIGURE= yes
@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \
dhcpd.leases.5
MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8
pre-fetch:
.if ${USE_FACILITY} == "DAEMON"
@${ECHO} ""
@${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:"
@${ECHO} " daemon, local{0-7}"
@${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}>,"
@${ECHO} " if you wish to use a different logging facility."
@${ECHO} ""
@sleep 2
#
# Local variables
#
PATCH_SUBDIRS= client common dhcpctl minires omapip relay server
BIN_FILES= dhclient dhcpd dhcrelay
SAMP_FILES= client/dhclient.conf server/dhcpd.conf
RCD_FILES= isc-dhcpd.sh.sample
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
post-patch:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h
@${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h
@${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}
install-sample-files:
.for file in ${SAMP_FILES}
@${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample
.endfor
post-install:
${TOUCH} /var/db/dhcpd.leases
.for file in dhclient dhcpd dhcrelay
if [ -f ${PREFIX}/sbin/${file} ]; then \
strip ${PREFIX}/sbin/${file}; \
fi
create-data-files:
.for file in ${DATA_FILES}
.if !exists(${VARDB_DIR}/${file})
@${TOUCH} ${VARDB_DIR}/${file}
.endif
.endfor
create-conf-files:
.for file in ${CONF_FILES}
.if !exists(${ETC_DIR}/${file})
@${TOUCH} ${ETC_DIR}/${file}
.endif
.endfor
${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \
${PREFIX}/etc/rc.d
.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$
OPTIONS=""
IFACES="SET_THIS"
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
@ -11,10 +12,10 @@ fi
case "$1" in
start)
${PREFIX}/sbin/dhcpd $IFACES
${PREFIX}/sbin/dhcpd $OPTIONS $IFACES
;;
stop)
kill `cat /var/run/dhcpd.pid`
killall dhcpd
;;
restart)
$0 stop
@ -24,7 +25,7 @@ status)
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

View File

@ -1,43 +1,20 @@
--- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000
+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000
@@ -329,7 +329,7 @@
#endif
--- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001
+++ includes/dhcpd.h Fri Jan 26 06:46:12 2001
@@ -672,7 +672,7 @@
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
-# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script"
+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script"
#endif
#ifndef CL_DEFAULT_REQUESTED_OPTIONS
@@ -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
/* clparse.c */
+extern const char *client_script_name;
+
isc_result_t read_client_conf PROTO ((void));
void read_client_leases PROTO ((void));
void parse_client_statement PROTO ((struct parse *, struct interface_info *,

View File

@ -1,5 +1,11 @@
--- client/clparse.c.orig Wed Jul 19 21:13:10 2000
+++ client/clparse.c Thu Jul 20 21:52:53 2000
@@ -46 +46 @@
--- client/clparse.c.orig Thu Jan 25 09:17:17 2001
+++ client/clparse.c Fri Jan 26 06:11:01 2001
@@ -50,7 +50,7 @@
static TIME parsed_time;
-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 Wed May 10 02:39:43 2000
--- client/dhclient.8.orig Mon May 1 19:11:36 2000
+++ client/dhclient.8 Fri Jan 26 05:12:37 2001
@@ -34,7 +34,7 @@
.B -q
]
@ -9,15 +9,59 @@
]
[
.B -lf
@@ -170,6 +170,11 @@
.B -q
@@ -49,6 +49,10 @@
.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
standard error descriptor.
+.PP
.PP
+The
+.B -1
+flag cause dhclient to try once to get a lease. If it fails, dhclient exits
+with exit code two.
.PP
+.PP
The DHCP client normally gets its configuration information from
.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 Wed Sep 27 03:31:33 2000
--- client/dhclient.c.orig Thu Jan 25 09:18:06 2001
+++ client/dhclient.c Fri Jan 26 06:15:50 2001
@@ -78,6 +78,7 @@
u_int16_t remote_port;
int no_daemon;
@ -8,7 +8,27 @@
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")) {
/* do not exit if there are no broadcast interfaces. */
persist = 1;
@ -17,16 +37,32 @@
} else if (argv [i][0] == '-') {
usage ();
} 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 (url);
- 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]");
log_fatal (" [-lf lease-file] [-pf pid-file]%s",
"[-cf config-file] [interface]");
@@ -1402,6 +1405,10 @@
- log_fatal (" [-lf lease-file] [-pf pid-file]%s",
- "[-cf config-file] [interface]");
+ 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
tell the shell script that we failed to allocate an address,
and try again later. */

View File

@ -1,5 +1,5 @@
--- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000
+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000
--- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000
+++ client/scripts/freebsd Sat Jan 27 02:17:01 2001
@@ -1,5 +1,11 @@
#!/bin/sh
@ -55,12 +55,26 @@
hostname $new_host_name
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
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
+ $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"
+ if [ "$new_routers" != "" ]; then
+ $LOGGER "New Routers: $new_routers"
@ -70,11 +84,29 @@
route add default $router >/dev/null 2>&1
done
if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ $LOGGER "New Static Routes: $new_static_routes"
set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
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
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
@ -83,7 +115,37 @@
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1
if [ "$new_routers" != "" ]; then
- set $new_routers
+ $LOGGER "New Routers: $new_routers"
set $new_routers
+ set -- $new_routers
if ping -q -c 1 $1; then
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 Tue Oct 3 08:59:57 2000
@@ -1,2 +1,20 @@
--- site.conf.orig Wed Jul 7 17:20:10 1999
+++ site.conf Fri Jan 26 06:58:15 2001
@@ -1,2 +1,29 @@
# Put local site configuration stuff here to override the default
# settings in Makefile.conf
+
+PREFIX ?= /usr/local
+
+ETC = $(PREFIX)/etc
+BINDIR = $(PREFIX)/sbin
+CLIENTBINDIR = $(PREFIX)/sbin
+MANCAT = man
+ADMMANDIR = $(PREFIX)/man/man8
+ADMMANEXT = .8
+FFMANDIR = $(PREFIX)/man/man5
+FFMANEXT = .5
+LIBMANDIR = $(PREFIX)/man/man3
+LIBMANEXT = .3
+MANCAT = man
+# INSTALL = ${INSTALL_DATA}
+# MANINSTALL = ${INSTALL_MAN}
+ETC = $(PREFIX)/etc
+LIBDIR = ${PREFIX}/lib
+INCDIR = ${PREFIX}/include
+
+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_DB=\"$(VARDB)/dhcpd.leases\"
+
+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
DHCP Server (ISC dhcpd). In this release, support for the core
DHCP protocol is provided. BOOTP support is also provided for
backwards compatibility.
* A DHCP server
* A DHCP client
* A DHCP relay agent
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
* OMAPI, an API for accessing and modifying the DHCP
server and client state.
server and client state.
* Conditional behaviour
* Storing arbitrary information on leases
* Address pools with access control
@ -19,10 +20,12 @@ features that are new since version 2.0:
* Relay agent information option support
* Dynamic DNS updates
* 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
this release. There are no build dependencies with any BIND version.
Also, a fully-featured implementation of dynamic DNS updates is
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/

View File

@ -1,9 +1,8 @@
@comment $FreeBSD$
etc/dhclient-script
sbin/dhclient
sbin/dhcpd
sbin/dhcrelay
etc/dhclient.conf.sample
etc/dhcpd.conf.sample
etc/rc.d/isc-dhcpd.sh.sample
include/dhcpctl.h
include/isc/boolean.h
include/isc/dst.h
include/isc/int.h
@ -11,13 +10,25 @@ include/isc/lang.h
include/isc/list.h
include/isc/result.h
include/isc/types.h
@dirrm include/isc
include/omapip/alloc.h
include/omapip/buffer.h
include/omapip/omapip.h
@dirrm include/omapip
include/dhcpctl.h
lib/libomapi.a
lib/libdhcpctl.a
@exec touch /var/db/dhcpd.leases
@exec touch %D/etc/dhclient.conf
lib/libomapi.a
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
PORTVERSION= 3.0.b2.11
PORTVERSION= 3.0.b2.16
CATEGORIES= net
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:]"`
USE_FACILITY= ${_USE_FACILITY}
.else
USE_FACILITY= DAEMON
.endif
#
# Global variables
#
HAS_CONFIGURE= yes
@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \
dhcpd.leases.5
MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8
pre-fetch:
.if ${USE_FACILITY} == "DAEMON"
@${ECHO} ""
@${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:"
@${ECHO} " daemon, local{0-7}"
@${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}>,"
@${ECHO} " if you wish to use a different logging facility."
@${ECHO} ""
@sleep 2
#
# Local variables
#
PATCH_SUBDIRS= client common dhcpctl minires omapip relay server
BIN_FILES= dhclient dhcpd dhcrelay
SAMP_FILES= client/dhclient.conf server/dhcpd.conf
RCD_FILES= isc-dhcpd.sh.sample
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
post-patch:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h
@${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h
@${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}
install-sample-files:
.for file in ${SAMP_FILES}
@${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample
.endfor
post-install:
${TOUCH} /var/db/dhcpd.leases
.for file in dhclient dhcpd dhcrelay
if [ -f ${PREFIX}/sbin/${file} ]; then \
strip ${PREFIX}/sbin/${file}; \
fi
create-data-files:
.for file in ${DATA_FILES}
.if !exists(${VARDB_DIR}/${file})
@${TOUCH} ${VARDB_DIR}/${file}
.endif
.endfor
create-conf-files:
.for file in ${CONF_FILES}
.if !exists(${ETC_DIR}/${file})
@${TOUCH} ${ETC_DIR}/${file}
.endif
.endfor
${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \
${PREFIX}/etc/rc.d
.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$
OPTIONS=""
IFACES="SET_THIS"
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
@ -11,10 +12,10 @@ fi
case "$1" in
start)
${PREFIX}/sbin/dhcpd $IFACES
${PREFIX}/sbin/dhcpd $OPTIONS $IFACES
;;
stop)
kill `cat /var/run/dhcpd.pid`
killall dhcpd
;;
restart)
$0 stop
@ -24,7 +25,7 @@ status)
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

View File

@ -1,43 +1,20 @@
--- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000
+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000
@@ -329,7 +329,7 @@
#endif
--- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001
+++ includes/dhcpd.h Fri Jan 26 06:46:12 2001
@@ -672,7 +672,7 @@
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
-# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script"
+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script"
#endif
#ifndef CL_DEFAULT_REQUESTED_OPTIONS
@@ -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
/* clparse.c */
+extern const char *client_script_name;
+
isc_result_t read_client_conf PROTO ((void));
void read_client_leases PROTO ((void));
void parse_client_statement PROTO ((struct parse *, struct interface_info *,

View File

@ -1,5 +1,11 @@
--- client/clparse.c.orig Wed Jul 19 21:13:10 2000
+++ client/clparse.c Thu Jul 20 21:52:53 2000
@@ -46 +46 @@
--- client/clparse.c.orig Thu Jan 25 09:17:17 2001
+++ client/clparse.c Fri Jan 26 06:11:01 2001
@@ -50,7 +50,7 @@
static TIME parsed_time;
-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 Wed May 10 02:39:43 2000
--- client/dhclient.8.orig Mon May 1 19:11:36 2000
+++ client/dhclient.8 Fri Jan 26 05:12:37 2001
@@ -34,7 +34,7 @@
.B -q
]
@ -9,15 +9,59 @@
]
[
.B -lf
@@ -170,6 +170,11 @@
.B -q
@@ -49,6 +49,10 @@
.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
standard error descriptor.
+.PP
.PP
+The
+.B -1
+flag cause dhclient to try once to get a lease. If it fails, dhclient exits
+with exit code two.
.PP
+.PP
The DHCP client normally gets its configuration information from
.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 Wed Sep 27 03:31:33 2000
--- client/dhclient.c.orig Thu Jan 25 09:18:06 2001
+++ client/dhclient.c Fri Jan 26 06:15:50 2001
@@ -78,6 +78,7 @@
u_int16_t remote_port;
int no_daemon;
@ -8,7 +8,27 @@
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")) {
/* do not exit if there are no broadcast interfaces. */
persist = 1;
@ -17,16 +37,32 @@
} else if (argv [i][0] == '-') {
usage ();
} 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 (url);
- 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]");
log_fatal (" [-lf lease-file] [-pf pid-file]%s",
"[-cf config-file] [interface]");
@@ -1402,6 +1405,10 @@
- log_fatal (" [-lf lease-file] [-pf pid-file]%s",
- "[-cf config-file] [interface]");
+ 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
tell the shell script that we failed to allocate an address,
and try again later. */

View File

@ -1,5 +1,5 @@
--- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000
+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000
--- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000
+++ client/scripts/freebsd Sat Jan 27 02:17:01 2001
@@ -1,5 +1,11 @@
#!/bin/sh
@ -55,12 +55,26 @@
hostname $new_host_name
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
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
+ $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"
+ if [ "$new_routers" != "" ]; then
+ $LOGGER "New Routers: $new_routers"
@ -70,11 +84,29 @@
route add default $router >/dev/null 2>&1
done
if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ $LOGGER "New Static Routes: $new_static_routes"
set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
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
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
@ -83,7 +115,37 @@
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1
if [ "$new_routers" != "" ]; then
- set $new_routers
+ $LOGGER "New Routers: $new_routers"
set $new_routers
+ set -- $new_routers
if ping -q -c 1 $1; then
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 Tue Oct 3 08:59:57 2000
@@ -1,2 +1,20 @@
--- site.conf.orig Wed Jul 7 17:20:10 1999
+++ site.conf Fri Jan 26 06:58:15 2001
@@ -1,2 +1,29 @@
# Put local site configuration stuff here to override the default
# settings in Makefile.conf
+
+PREFIX ?= /usr/local
+
+ETC = $(PREFIX)/etc
+BINDIR = $(PREFIX)/sbin
+CLIENTBINDIR = $(PREFIX)/sbin
+MANCAT = man
+ADMMANDIR = $(PREFIX)/man/man8
+ADMMANEXT = .8
+FFMANDIR = $(PREFIX)/man/man5
+FFMANEXT = .5
+LIBMANDIR = $(PREFIX)/man/man3
+LIBMANEXT = .3
+MANCAT = man
+# INSTALL = ${INSTALL_DATA}
+# MANINSTALL = ${INSTALL_MAN}
+ETC = $(PREFIX)/etc
+LIBDIR = ${PREFIX}/lib
+INCDIR = ${PREFIX}/include
+
+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_DB=\"$(VARDB)/dhcpd.leases\"
+
+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
DHCP Server (ISC dhcpd). In this release, support for the core
DHCP protocol is provided. BOOTP support is also provided for
backwards compatibility.
* A DHCP server
* A DHCP client
* A DHCP relay agent
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
* OMAPI, an API for accessing and modifying the DHCP
server and client state.
server and client state.
* Conditional behaviour
* Storing arbitrary information on leases
* Address pools with access control
@ -19,10 +20,12 @@ features that are new since version 2.0:
* Relay agent information option support
* Dynamic DNS updates
* 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
this release. There are no build dependencies with any BIND version.
Also, a fully-featured implementation of dynamic DNS updates is
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/

View File

@ -1,9 +1,8 @@
@comment $FreeBSD$
etc/dhclient-script
sbin/dhclient
sbin/dhcpd
sbin/dhcrelay
etc/dhclient.conf.sample
etc/dhcpd.conf.sample
etc/rc.d/isc-dhcpd.sh.sample
include/dhcpctl.h
include/isc/boolean.h
include/isc/dst.h
include/isc/int.h
@ -11,13 +10,25 @@ include/isc/lang.h
include/isc/list.h
include/isc/result.h
include/isc/types.h
@dirrm include/isc
include/omapip/alloc.h
include/omapip/buffer.h
include/omapip/omapip.h
@dirrm include/omapip
include/dhcpctl.h
lib/libomapi.a
lib/libdhcpctl.a
@exec touch /var/db/dhcpd.leases
@exec touch %D/etc/dhclient.conf
lib/libomapi.a
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
PORTVERSION= 3.0.b2.11
PORTVERSION= 3.0.b2.16
CATEGORIES= net
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:]"`
USE_FACILITY= ${_USE_FACILITY}
.else
USE_FACILITY= DAEMON
.endif
#
# Global variables
#
HAS_CONFIGURE= yes
@ -29,34 +26,89 @@ MAN5= dhclient.conf.5 dhclient.leases.5 dhcp-contrib.5 \
dhcpd.leases.5
MAN8= dhclient.8 dhclient-script.8 dhcpd.8 dhcrelay.8
pre-fetch:
.if ${USE_FACILITY} == "DAEMON"
@${ECHO} ""
@${ECHO} " You can choose which syslog faciliy by setting LOG_FACILITY to:"
@${ECHO} " daemon, local{0-7}"
@${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}>,"
@${ECHO} " if you wish to use a different logging facility."
@${ECHO} ""
@sleep 2
#
# Local variables
#
PATCH_SUBDIRS= client common dhcpctl minires omapip relay server
BIN_FILES= dhclient dhcpd dhcrelay
SAMP_FILES= client/dhclient.conf server/dhcpd.conf
RCD_FILES= isc-dhcpd.sh.sample
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
post-patch:
@${PERL} -pi.fbsd -e 's.!!PREFIX!!.${PREFIX}.g' ${WRKSRC}/includes/dhcpd.h
@${PERL} -pi.fbsd -e "s.!!USE_FACILITY!!.${USE_FACILITY}.g" ${WRKSRC}/includes/site.h
@${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}
install-sample-files:
.for file in ${SAMP_FILES}
@${INSTALL_DATA} ${WRKSRC}/${file} ${ETC_DIR}/${file:T}.sample
.endfor
post-install:
${TOUCH} /var/db/dhcpd.leases
.for file in dhclient dhcpd dhcrelay
if [ -f ${PREFIX}/sbin/${file} ]; then \
strip ${PREFIX}/sbin/${file}; \
fi
create-data-files:
.for file in ${DATA_FILES}
.if !exists(${VARDB_DIR}/${file})
@${TOUCH} ${VARDB_DIR}/${file}
.endif
.endfor
create-conf-files:
.for file in ${CONF_FILES}
.if !exists(${ETC_DIR}/${file})
@${TOUCH} ${ETC_DIR}/${file}
.endif
.endfor
${INSTALL_SCRIPT} ${FILESDIR}/isc-dhcpd.sh.sample \
${PREFIX}/etc/rc.d
.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$
OPTIONS=""
IFACES="SET_THIS"
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
@ -11,10 +12,10 @@ fi
case "$1" in
start)
${PREFIX}/sbin/dhcpd $IFACES
${PREFIX}/sbin/dhcpd $OPTIONS $IFACES
;;
stop)
kill `cat /var/run/dhcpd.pid`
killall dhcpd
;;
restart)
$0 stop
@ -24,7 +25,7 @@ status)
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

View File

@ -1,43 +1,20 @@
--- includes/dhcpd.h.orig Wed Feb 2 18:01:17 2000
+++ includes/dhcpd.h Mon Jul 17 21:21:04 2000
@@ -329,7 +329,7 @@
#endif
--- includes/dhcpd.h.orig Thu Jan 25 09:25:12 2001
+++ includes/dhcpd.h Fri Jan 26 06:46:12 2001
@@ -672,7 +672,7 @@
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
-# define CL_DEFAULT_SCRIPT_NAME "/etc/dhclient-script"
+# define CL_DEFAULT_SCRIPT_NAME "!!PREFIX!!/etc/dhclient-script"
#endif
#ifndef CL_DEFAULT_REQUESTED_OPTIONS
@@ -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
/* clparse.c */
+extern const char *client_script_name;
+
isc_result_t read_client_conf PROTO ((void));
void read_client_leases PROTO ((void));
void parse_client_statement PROTO ((struct parse *, struct interface_info *,

View File

@ -1,5 +1,11 @@
--- client/clparse.c.orig Wed Jul 19 21:13:10 2000
+++ client/clparse.c Thu Jul 20 21:52:53 2000
@@ -46 +46 @@
--- client/clparse.c.orig Thu Jan 25 09:17:17 2001
+++ client/clparse.c Fri Jan 26 06:11:01 2001
@@ -50,7 +50,7 @@
static TIME parsed_time;
-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 Wed May 10 02:39:43 2000
--- client/dhclient.8.orig Mon May 1 19:11:36 2000
+++ client/dhclient.8 Fri Jan 26 05:12:37 2001
@@ -34,7 +34,7 @@
.B -q
]
@ -9,15 +9,59 @@
]
[
.B -lf
@@ -170,6 +170,11 @@
.B -q
@@ -49,6 +49,10 @@
.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
standard error descriptor.
+.PP
.PP
+The
+.B -1
+flag cause dhclient to try once to get a lease. If it fails, dhclient exits
+with exit code two.
.PP
+.PP
The DHCP client normally gets its configuration information from
.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 Wed Sep 27 03:31:33 2000
--- client/dhclient.c.orig Thu Jan 25 09:18:06 2001
+++ client/dhclient.c Fri Jan 26 06:15:50 2001
@@ -78,6 +78,7 @@
u_int16_t remote_port;
int no_daemon;
@ -8,7 +8,27 @@
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")) {
/* do not exit if there are no broadcast interfaces. */
persist = 1;
@ -17,16 +37,32 @@
} else if (argv [i][0] == '-') {
usage ();
} 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 (url);
- 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]");
log_fatal (" [-lf lease-file] [-pf pid-file]%s",
"[-cf config-file] [interface]");
@@ -1402,6 +1405,10 @@
- log_fatal (" [-lf lease-file] [-pf pid-file]%s",
- "[-cf config-file] [interface]");
+ 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
tell the shell script that we failed to allocate an address,
and try again later. */

View File

@ -1,5 +1,5 @@
--- client/scripts/freebsd.orig Wed Sep 20 02:38:03 2000
+++ client/scripts/freebsd Wed Sep 27 03:33:29 2000
--- client/scripts/freebsd.orig Wed Sep 20 11:38:03 2000
+++ client/scripts/freebsd Sat Jan 27 02:17:01 2001
@@ -1,5 +1,11 @@
#!/bin/sh
@ -55,12 +55,26 @@
hostname $new_host_name
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
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
+ $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"
+ if [ "$new_routers" != "" ]; then
+ $LOGGER "New Routers: $new_routers"
@ -70,11 +84,29 @@
route add default $router >/dev/null 2>&1
done
if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ $LOGGER "New Static Routes: $new_static_routes"
set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
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
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
@ -83,7 +115,37 @@
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1
if [ "$new_routers" != "" ]; then
- set $new_routers
+ $LOGGER "New Routers: $new_routers"
set $new_routers
+ set -- $new_routers
if ping -q -c 1 $1; then
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 Tue Oct 3 08:59:57 2000
@@ -1,2 +1,20 @@
--- site.conf.orig Wed Jul 7 17:20:10 1999
+++ site.conf Fri Jan 26 06:58:15 2001
@@ -1,2 +1,29 @@
# Put local site configuration stuff here to override the default
# settings in Makefile.conf
+
+PREFIX ?= /usr/local
+
+ETC = $(PREFIX)/etc
+BINDIR = $(PREFIX)/sbin
+CLIENTBINDIR = $(PREFIX)/sbin
+MANCAT = man
+ADMMANDIR = $(PREFIX)/man/man8
+ADMMANEXT = .8
+FFMANDIR = $(PREFIX)/man/man5
+FFMANEXT = .5
+LIBMANDIR = $(PREFIX)/man/man3
+LIBMANEXT = .3
+MANCAT = man
+# INSTALL = ${INSTALL_DATA}
+# MANINSTALL = ${INSTALL_MAN}
+ETC = $(PREFIX)/etc
+LIBDIR = ${PREFIX}/lib
+INCDIR = ${PREFIX}/include
+
+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_DB=\"$(VARDB)/dhcpd.leases\"
+
+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
DHCP Server (ISC dhcpd). In this release, support for the core
DHCP protocol is provided. BOOTP support is also provided for
backwards compatibility.
* A DHCP server
* A DHCP client
* A DHCP relay agent
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
* OMAPI, an API for accessing and modifying the DHCP
server and client state.
server and client state.
* Conditional behaviour
* Storing arbitrary information on leases
* Address pools with access control
@ -19,10 +20,12 @@ features that are new since version 2.0:
* Relay agent information option support
* Dynamic DNS updates
* 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
this release. There are no build dependencies with any BIND version.
Also, a fully-featured implementation of dynamic DNS updates is
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/

View File

@ -1,9 +1,8 @@
@comment $FreeBSD$
etc/dhclient-script
sbin/dhclient
sbin/dhcpd
sbin/dhcrelay
etc/dhclient.conf.sample
etc/dhcpd.conf.sample
etc/rc.d/isc-dhcpd.sh.sample
include/dhcpctl.h
include/isc/boolean.h
include/isc/dst.h
include/isc/int.h
@ -11,13 +10,25 @@ include/isc/lang.h
include/isc/list.h
include/isc/result.h
include/isc/types.h
@dirrm include/isc
include/omapip/alloc.h
include/omapip/buffer.h
include/omapip/omapip.h
@dirrm include/omapip
include/dhcpctl.h
lib/libomapi.a
lib/libdhcpctl.a
@exec touch /var/db/dhcpd.leases
@exec touch %D/etc/dhclient.conf
lib/libomapi.a
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