Files
bpfire/src/initscripts/init.d/tor
Michael Tremer 0203401cf5 Merge remote-tracking branch 'origin/next' into fifteen
Conflicts:
	doc/language_issues.es
	doc/language_issues.fr
	doc/language_issues.nl
	doc/language_issues.pl
	doc/language_issues.tr
	doc/language_missings
2013-10-03 14:26:33 +02:00

100 lines
1.9 KiB
Bash

#!/bin/sh
########################################################################
# Begin $rc_base/init.d/tor
#
# Description : Anonymizing overlay network for TCP
#
########################################################################
. /etc/sysconfig/rc
. ${rc_functions}
FILEDESCRIPTORS="65535"
eval $(/usr/local/bin/readhash /var/ipfire/tor/settings)
function tor_is_enabled() {
[ "${TOR_ENABLED}" = "on" ] || [ "${TOR_RELAY_ENABLED}" = "on" ]
}
function setup_firewall() {
# Flush all rules.
flush_firewall
if [ "${TOR_RELAY_ENABLED}" = "on" -a -n "${TOR_RELAY_PORT}" ]; then
iptables -A TOR_INPUT -p tcp --dport "${TOR_RELAY_PORT}" -j ACCEPT
fi
if [ "${TOR_RELAY_ENABLED}" = "on" -a -n "${TOR_RELAY_DIRPORT}" ] && [ "${TOR_RELAY_DIRPORT}" -ne 0 ]; then
iptables -A TOR_INPUT -p tcp --dport "${TOR_RELAY_DIRPORT}" -j ACCEPT
fi
}
function flush_firewall() {
# Flush all rules.
iptables -F TOR_INPUT
}
case "${1}" in
start)
tor_is_enabled || exit 0
# Setup firewall.
setup_firewall
# Increasing open file descriptors.
if [ -n "${FILEDESCRIPTORS}" ]; then
ulimit -n "${FILEDESCRIPTORS}"
fi
boot_mesg "Starting tor..."
loadproc /usr/bin/tor \
--runasdaemon 1 \
--defaults-torrc /usr/share/tor/defaults-torrc \
-f /etc/tor/torrc \
--quiet
;;
stop)
# Flush firewall.
flush_firewall
boot_mesg "Stopping tor..."
killproc /usr/bin/tor
;;
reload)
# Setup firewall.
setup_firewall
boot_mesg "Reloading tor..."
reloadproc /usr/bin/tor
;;
restart)
${0} stop
sleep 1
${0} start
;;
reload-or-restart)
# Reload the process if it is already running. Otherwise, restart.
if pidofproc -s /usr/bin/tor; then
$0 reload
else
$0 restart
fi
;;
status)
statusproc /usr/bin/tor
;;
*)
echo "Usage: ${0} {start|stop|reload|restart|reload-or-restart|status}"
exit 1
;;
esac
# End $rc_base/init.d/tor