chiark / gitweb /
initscript: check firewall
[hippotat] / debian / hippotat.init
CommitLineData
6a1ac5de
IJ
1#!/bin/sh
2
3### BEGIN INIT INFO
4# Provides: hippotatd
5# Required-Start: $syslog $network userv
6# Required-Stop: $syslog $network
7# Default-Start: 2 3 4 5
8# Default-Stop: 0 1 6
9# Short-Description: hippotatd
10# Description: Asinine IP over HTTP server
11### END INIT INFO
12
13DAEMON=/usr/sbin/hippotat
14MASTER_CONFIG=/etc/hippotat/master.cfg
15USER=Debian-hippotat
16PIDFILE=/var/run/hippotat/hippotatd.pid
17LOGFACILITY=daemon
a60dab5b 18CHECK_FIREWALL=true
6a1ac5de 19# HIPPOTATD_ARGS
a60dab5b 20AS_USER=as_user_userv
05025919 21DESCRIPTION='Asinine IP over HTTP server'
25367ad4 22if type -p authbind >/dev/null 2>&1; then AUTHBIND=authbind; fi
6a1ac5de
IJ
23
24. /etc/default/hippotatd
25
26test -f $DAEMON || exit 0
477169b1 27egrep '^[^ #]' $MASTER_CONFIG >/dev/null 2>&1 || exit 0
6a1ac5de
IJ
28
29. /lib/lsb/init-functions
30
a60dab5b
IJ
31as_user_userv () {
32 userv --override '
33 execute-from-path
34 no-suppress-args
35 ' $USER "$@"
36}
37
6a1ac5de
IJ
38ssd () {
39 set +e
40 start-stop-daemon --start --quiet --user $USER --pidfile=$PIDFILE "$@"
41 rc=$?
42 set -e
43}
44ensure_dirs () {
45 pidfiledir=${PIDFILE%/*}
46 if test -d ${pidfiledir}; then return; fi
47 mkdir -m 755 $pidfiledir
48 chown $USER $pidfiledir
49}
50
a60dab5b
IJ
51dump_firewall () {
52 iptables -L -v -n
53}
54
55print_config () {
56 $AS_USER $DAEMON $HIPPOTATD_ARGS --print-config "$1"
57}
58
59check_firewall () {
60 vnetwork=$(print_config vnetwork)
61 if dump_firewall | fgrep " $vnetwork " >/dev/null; then :; else
62 log_failure_msg \
63 "no entry in firewall for insecure vnetwork $vnetwork"
64 exit 1
65 fi
66}
67
6a1ac5de 68do_start () {
a60dab5b 69 check_firewall
6a1ac5de 70 ensure_dirs
25367ad4
IJ
71 ssd --chuid $USER --startas \
72 $AUTHBIND $DAEMON --daemon --pidfile=$PIDFILE \
6a1ac5de
IJ
73 --syslog-facility=$LOGFACILITY $HIPPOTATD_ARGS
74}
75do_stop () {
76 ssd --stop --retry 5
77}
78
79case "$1" in
80start)
05025919 81 log_daemon_msg "Starting $DESCRIPTION" hippotatd
6a1ac5de
IJ
82 do_start
83 log_end_msg $rc
84 ;;
85
86stop)
05025919 87 log_daemon_msg "Stopping $DESCRIPTION" hippotatd
6a1ac5de
IJ
88 do_stop
89 log_end_msg $rc
90 ;;
91
92restart|force-reload)
05025919 93 log_daemon_msg "Restarting $DESCRIPTION" hippotatd
6a1ac5de
IJ
94 do_stop
95 sleep 1
96 do_start
97 log_end_msg $rc
98 ;;
99
100reload)
101 log_failure_msg "Cannot reload hippotat - need restart"
102 exit 1
103 ;;
104
105*)
106 echo >&2 "$0: unknown action $1"
107 exit 1
108 ;;
109
110esac
111
112exit 0