X-Git-Url: https://git.distorted.org.uk/~mdw/hippotat/blobdiff_plain/25367ad4963b246ac77028f07ecbedf393e30b66..a571ef2d5e5929225f8874a9e3f819c43d21b534:/debian/hippotat.init diff --git a/debian/hippotat.init b/debian/hippotat.init index 51495e9..640bd8f 100644 --- a/debian/hippotat.init +++ b/debian/hippotat.init @@ -15,7 +15,9 @@ MASTER_CONFIG=/etc/hippotat/master.cfg USER=Debian-hippotat PIDFILE=/var/run/hippotat/hippotatd.pid LOGFACILITY=daemon +CHECK_FIREWALL=true # HIPPOTATD_ARGS +AS_USER=as_user_userv DESCRIPTION='Asinine IP over HTTP server' if type -p authbind >/dev/null 2>&1; then AUTHBIND=authbind; fi @@ -26,6 +28,13 @@ egrep '^[^ #]' $MASTER_CONFIG >/dev/null 2>&1 || exit 0 . /lib/lsb/init-functions +as_user_userv () { + userv --override ' + execute-from-path + no-suppress-args + ' $USER "$@" +} + ssd () { set +e start-stop-daemon --start --quiet --user $USER --pidfile=$PIDFILE "$@" @@ -39,7 +48,25 @@ ensure_dirs () { chown $USER $pidfiledir } +dump_firewall () { + iptables -L -v -n +} + +print_config () { + $AS_USER $DAEMON $HIPPOTATD_ARGS --print-config "$1" +} + +check_firewall () { + vnetwork=$(print_config vnetwork) + if dump_firewall | fgrep " $vnetwork " >/dev/null; then :; else + log_failure_msg \ + "no entry in firewall for insecure vnetwork $vnetwork" + exit 1 + fi +} + do_start () { + check_firewall ensure_dirs ssd --chuid $USER --startas \ $AUTHBIND $DAEMON --daemon --pidfile=$PIDFILE \