X-Git-Url: https://git.distorted.org.uk/~mdw/hippotat/blobdiff_plain/05025919b9ced744608a4de40360d78a734ddc3d..a60dab5b3221357bcf1926253fda0b3649c99834:/debian/hippotat.init diff --git a/debian/hippotat.init b/debian/hippotat.init index c0e4d7e..640bd8f 100644 --- a/debian/hippotat.init +++ b/debian/hippotat.init @@ -15,8 +15,11 @@ 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 . /etc/default/hippotatd @@ -25,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 "$@" @@ -38,10 +48,28 @@ 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 \ - $DAEMON --daemon --pidfile=$PIDFILE \ + ssd --chuid $USER --startas \ + $AUTHBIND $DAEMON --daemon --pidfile=$PIDFILE \ --syslog-facility=$LOGFACILITY $HIPPOTATD_ARGS } do_stop () {