diff -Nrux .svn -x work /usr/ports/net/isc-dhcp41-relay/pkg-plist isc-dhcp41-relay/pkg-plist --- /usr/ports/net/isc-dhcp41-relay/pkg-plist 2010-05-06 13:24:00.000000000 -0700 +++ isc-dhcp41-relay/pkg-plist 2011-06-02 20:29:19.663540388 -0700 @@ -1,4 +1,6 @@ @comment $FreeBSD: ports/net/isc-dhcp41-relay/pkg-plist,v 1.1 2010/05/06 20:24:00 wxs Exp $ @unexec %D/etc/rc.d/isc-dhcrelay.sh forcestop 2>/dev/null || true @unexec %D/etc/rc.d/isc-dhcrelay forcestop 2>/dev/null || true +%%IPV6%%@unexec %D/etc/rc.d/isc-dhcrelay6 forcestop 2>/dev/null || true +%%IPV6%%etc/rc.d/isc-dhcrelay6 sbin/dhcrelay diff -Nrux .svn -x work /usr/ports/net/isc-dhcp41-server/Makefile isc-dhcp41-server/Makefile --- /usr/ports/net/isc-dhcp41-server/Makefile 2011-05-08 17:58:17.000000000 -0700 +++ isc-dhcp41-server/Makefile 2011-06-02 20:50:42.030872118 -0700 @@ -24,7 +24,7 @@ PATCHLEVEL= R2 PORTREVISION_SERVER= 0 PORTREVISION_CLIENT= 0 -PORTREVISION_RELAY= 0 +PORTREVISION_RELAY= 1 SUBSYS?= server WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}-${PATCHLEVEL} @@ -198,6 +198,10 @@ .if defined(WITH_DHCP_IPV6) @${LN} -sf isc-dhcpd ${PREFIX}/etc/rc.d/isc-dhcpd6 .endif +.elif ${SUBSYS} == relay +.if defined(WITH_DHCP_IPV6) + @${LN} -sf isc-dhcrelay ${PREFIX}/etc/rc.d/isc-dhcrelay6 +.endif .endif @${SED} ${PKGMESSAGE_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \ ${MSG_FILE} > ${PKGMESSAGE} diff -Nrux .svn -x work /usr/ports/net/isc-dhcp41-server/files/isc-dhcrelay.in isc-dhcp41-server/files/isc-dhcrelay.in --- /usr/ports/net/isc-dhcp41-server/files/isc-dhcrelay.in 2010-05-06 13:24:01.000000000 -0700 +++ isc-dhcp41-server/files/isc-dhcrelay.in 2011-06-02 20:29:19.702538673 -0700 @@ -16,25 +16,49 @@ # dhcrelay_servers="" # dhcrelay server(s) # dhcrelay_ifaces="" # ethernet interface(s) +case $0 in +/etc/rc*) + # during boot (shutdown) $0 is /etc/rc (/etc/rc.shutdown), + # so get the name of the script from $_file + name=$_file + ;; +*) + name=$0 + ;; +esac + +name=${name##*/isc-} + +case ${name} in +*6) + ipversion=-6 + ;; +*) + ipversion=-4 + ;; +esac + dhcrelay_precmd () { - local ifaces + local ifaces _servers _ifaces + + eval "_servers=\${${name}_servers}" + eval "_ifaces=\${${name}_ifaces}" - if [ -z "${dhcrelay_servers}" ]; then - err 1 "no dhcrelay server(s) configured." + if [ -z "${_servers}" ]; then + err 1 "no ${name} server(s) configured." fi ifaces= - for iface in ${dhcrelay_ifaces}; do + for iface in ${_ifaces}; do ifaces="${ifaces} -i ${iface}" done - rc_flags="${rc_flags} ${ifaces} ${dhcrelay_servers}" + rc_flags="${rc_flags} ${ipversion} ${ifaces} ${_servers}" } . /etc/rc.subr -name=dhcrelay rcvar=${name}_enable command=%%PREFIX%%/sbin/${name}