aboutsummaryrefslogtreecommitdiff
path: root/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample
diff options
context:
space:
mode:
Diffstat (limited to 'net/isc-dhcp3-server/files/isc-dhcpd.sh.sample')
-rw-r--r--net/isc-dhcp3-server/files/isc-dhcpd.sh.sample98
1 files changed, 34 insertions, 64 deletions
diff --git a/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample b/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample
index 17472ab3bb71..63bc57ba0f3d 100644
--- a/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample
+++ b/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample
@@ -2,77 +2,47 @@
#
# $FreeBSD$
#
-# Start or stop isc-dhcpd.
+# PROVIDE: dhcpd
+# REQUIRE: DAEMON
+# KEYWORD: FreeBSD
+#
+# Add the following line to /etc/rc.conf to enable dhcpd:
+#
+# dhcpd_enable="YES"
#
-rc_file=${0##*/}
-rc_arg=$1
-
-# override these variables in ${PREFIX}/etc/rc.isc-dhcpd.conf
-dhcpd_options= # command option(s)
-dhcpd_ifaces= # ethernet interface(s)
-
-if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/${rc_file}\$"); then
- echo "${rc_file}: Cannot determine PREFIX." >&2
- echo "Please use the complete pathname." >&2
- exit 64
-fi
+# override these variables in /etc/rc.conf
+dhcpd_enable=NO
+dhcpd_flags= # command option(s)
+dhcpd_conf=%%PREFIX%%/etc/dhcpd.conf # configuration file
+dhcpd_ifaces= # ethernet interface(s)
-rcconf_dir=${PREFIX}/etc
-rcconf_file=rc.${rc_file%.sh}.conf
-rcconf_path=${rcconf_dir}/${rcconf_file}
+dhcpd_precmd ()
+{
+ dhcpd_rcconf=%%PREFIX%%/etc/rc.isc-dhcpd.conf
-if [ -f ${rcconf_path} ]; then
- . ${rcconf_path}
-fi
+ if [ -f ${dhcpd_rcconf} ]; then
+ warn "${dhcpd_rcconf} is obsolete, use /etc/rc.conf instead."
+ . ${dhcpd_rcconf}
-program_dir=${PREFIX}/sbin
-program_file=dhcpd
-program_path=${program_dir}/${program_file}
+ if [ -n "${dhcpd_options}" -a -z "${rc_flags}" ]; then
+ warn "dhcpd_options is obsolete, use dhcpd_flags instead."
+ rc_flags=${dhcpd_options}
+ fi
+ fi
-config_dir=${PREFIX}/etc
-config_file=${program_file}.conf
-config_path=${config_dir}/${config_file}
+ rc_flags="${rc_flags} -cf ${dhcpd_conf} ${dhcpd_ifaces}"
+}
-pid_dir=/var/run
-pid_file=${program_file}.pid
-pid_path=${pid_dir}/${pid_file}
+. %%RC_SUBR%%
-syslog_facility=daemon.err
+name=dhcpd
+rcvar=$(set_rcvar)
-case "$rc_arg" in
-start)
- if [ ! -x ${program_path} ]; then
- logger -sp ${syslog_facility} -t ${program_file} \
- "unable to start: ${program_path} is missing."
- exit 72
- fi
- if [ ! -f ${config_path} ]; then
- logger -sp ${syslog_facility} -t ${program_file} \
- "unable to start: ${config_path} is missing."
- exit 72
- fi
- ${program_path} ${dhcpd_options} ${dhcpd_ifaces} &&
- echo -n " ${program_file}"
- ;;
-stop)
- if [ -r ${pid_path} ]; then
- kill $(cat ${pid_path}) 2> /dev/null
- else
- killall ${program_file} 2> /dev/null
- fi
- ;;
-restart)
- $0 stop
- $0 start
- ;;
-status)
- ps -auxww | egrep ${program_file} | egrep -v "($0|egrep)"
- ;;
-*)
- echo "usage: ${rc_file} {start|stop|restart|status}" >&2
- exit 64
- ;;
-esac
+command=%%PREFIX%%/sbin/${name}
+pidfile=/var/run/${name}.pid
+required_files=${dhcpd_conf}
+start_precmd=${name}_precmd
-exit 0
+load_rc_config ${name}
+run_rc_command "$1"