Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Feb 2013 21:59:12 +0000 (UTC)
From:      Beech Rintoul <beech@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r312942 - head/dns/nsd/files
Message-ID:  <201302252159.r1PLxCrA037451@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: beech
Date: Mon Feb 25 21:59:11 2013
New Revision: 312942
URL: http://svnweb.freebsd.org/changeset/ports/312942

Log:
  - Add multi-instance support
  
  PR:		ports/176156
  Submitted by:	Darren Pilgrim <darren.pilgrim@gmail.com>
  Approved by:	Jaap Akkerhuis <jaap@NLnetLabs.nl> (maintainer)

Modified:
  head/dns/nsd/files/nsd.in   (contents, props changed)

Modified: head/dns/nsd/files/nsd.in
==============================================================================
--- head/dns/nsd/files/nsd.in	Mon Feb 25 21:21:37 2013	(r312941)
+++ head/dns/nsd/files/nsd.in	Mon Feb 25 21:59:11 2013	(r312942)
@@ -14,45 +14,71 @@
 
 . /etc/rc.subr
 
-name=nsd
-rcvar=nsd_enable
+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
 
-required_files=%%PREFIX%%/etc/nsd/nsd.conf
+name=${name##*/}
 
-command=%%PREFIX%%/sbin/nsdc
-command_args="start"
-pidfile=`%%PREFIX%%/sbin/nsd-checkconf -o pidfile %%PREFIX%%/etc/nsd/nsd.conf`
-procname=%%PREFIX%%/sbin/${name}
+rcvar=${name}_enable
 
 load_rc_config ${name}
 
-nsd_enable=${nsd_enable-"NO"}
+eval ": \${${name}_conf:=\"%%PREFIX%%/etc/nsd/${name}.conf\"}"
+eval "_conf=\${${name}_conf}"
+
+command=%%PREFIX%%/sbin/nsdc
+procname=%%PREFIX%%/sbin/nsd
+
+required_files=${_conf}
+pidfile=`%%PREFIX%%/sbin/nsd-checkconf -o pidfile ${_conf}`
+
+extra_commands="notify patch rebuild reload update"
 
-extra_commands="reload"
-start_precmd="nsd_precmd"
-reload_cmd="nsd_reload"
-stop_cmd="nsd_stop"
+notify_cmd="nsd_nsdc_cmd notify"
+patch_cmd="nsd_nsdc_cmd patch"
+rebuild_cmd="nsd_nsdc_cmd rebuild"
+reload_cmd="nsd_reload_cmd"
+start_cmd="nsd_start_cmd"
+stop_cmd="nsd_stop_cmd"
+update_cmd="nsd_nsdc_cmd update"
 
-nsd_precmd()
+nsd_nsdc_cmd()
 {
-	db=`%%PREFIX%%/sbin/nsd-checkconf -o database %%PREFIX%%/etc/nsd/nsd.conf`
-	if [ ! -f "$db" ]; then
-		${command} rebuild
-	fi
+	${command} -c ${_conf} "$1"
 }
 
-nsd_reload()
+nsd_reload_cmd()
 {
-	${command} rebuild && ${command} reload
+	nsd_nsdc_cmd rebuild && nsd_nsdc_cmd reload
+}
+
+nsd_start_cmd()
+{
+	local _db
+	_db=`%%PREFIX%%/sbin/nsd-checkconf -o database ${_conf}`
+	if [ ! -f "${_db}" ]; then
+		nsd_nsdc_cmd rebuild
+	fi
+
+	echo "Starting ${name}."
+	nsd_nsdc_cmd start
 }
 
-nsd_stop()
+nsd_stop_cmd()
 {
 	echo "Merging nsd zone transfer changes to zone files."
-	${command} patch
+	nsd_nsdc_cmd patch
 
 	echo "Stopping ${name}."
-	${command} stop
+	nsd_nsdc_cmd stop	
 }
 
 run_rc_command "$1"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302252159.r1PLxCrA037451>