#!/bin/sh

# PROVIDE: gdnsd
# REQUIRE: DAEMON
# REQUIRE: LOGIN
# KEYWORD: FreeBSD shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# gdnsd_enable (bool):	Set to NO by default.
#				Set it to YES to enable gdnsd.
# gdnsd_flags (str):		Set to "" by default
#				Extra command line argument flags

. /etc/rc.subr

name="gdnsd"
rcvar=gdnsd_enable

# set defaults
load_rc_config $name
: ${gdnsd_enable:="NO"}
: ${gdnsd_user:="gdnsd"}
: ${gdnsd_group:="gdnsd"}
: ${gdnsd_flags:=""}

command="%%PREFIX%%/sbin/gdnsd"
command_args="daemonize"
procname=${command}
start_precmd="gdnsd_prestart"
restart_precmd="gdnsd_checkconf"
restart_cmd="gdnsd_restart"
reload_cmd="gdnsd_reload"
reload_precmd="gdnsd_checkconf"
stats_cmd="gdnsd_stats"
configtest_cmd="gdnsd_checkconf"
extra_commands="stats reload configtest"

gdnsd_prestart()
{
  if ! kldstat -q -m mac_portacl; then
    warn "mac_portacl module not loaded, please review pkg-message"
  fi

  install -d -o ${gdnsd_user} -g ${gdnsd_group} -m 700 /var/run/gdnsd
}

gdnsd_reload()
{
  %%PREFIX%%/bin/gdnsdctl reload-zones
}

gdnsd_restart()
{
  %%PREFIX%%/bin/gdnsdctl replace
}

gdnsd_checkconf()
{
  ${command} ${gdnsd_flags} checkconf
}

gdnsd_stats()
{
  %%PREFIX%%/bin/gdnsdctl stats
}

run_rc_command "$1"
