#!/bin/sh
#
# Init file for the Firestarter firewall
#
# chkconfig: 2345 11 92
#
# description: Starts, stops, and lock the firewall
#
# Script Authors:
#	Tomas Junnonen <majix@sci.fi>
#	Paul Drain <pd@cipherfunk.org>
#
# config: /etc/firestarter/configuration
#
### BEGIN INIT INFO
# Provides:          firestarter
# Required-Start:    $syslog
# Required-Stop:     $syslog
# Should-Start:      $local_fs $network
# Should-Stop:       $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start firewall
# Description:       Run firestarter-configured firewall script.
### END INIT INFO

. /lib/lsb/init-functions

FS_CONTROL="/etc/firestarter/firestarter.sh"

[ -x /usr/sbin/firestarter ] || exit 0
[ -x $FS_CONTROL ] || exit 0
[ -s /etc/firestarter/configuration ] || exit 0

RETVAL=0

start() {
	log_begin_msg "Starting the Firestarter firewall..."
	$FS_CONTROL start > /dev/null
	RETVAL=$?
	if [ $RETVAL -eq 0 ]; then
		log_end_msg 0
	else
		log_end_msg 1
	fi
	return $RETVAL
}

stop() {
	log_begin_msg "Stopping the Firestarter firewall..."
	$FS_CONTROL stop > /dev/null
	RETVAL=$?
	if [ $RETVAL -eq 0 ]; then
		log_end_msg 0
	else
		log_end_msg 1
	fi
	return $RETVAL
}

lock() {
	log_begin_msg "Locking the Firestarter firewall..."
	$FS_CONTROL lock > /dev/null
	RETVAL=$?
	if [ $RETVAL -eq 0 ]; then
		log_end_msg 0
	else
		log_end_msg 1
	fi
	return $RETVAL
}

# See how we were called.
case "$1" in
  start)
	start
	RETVAL=$?
	;;
  stop)
	stop
	RETVAL=$?
	;;
  restart)
	stop
	start
	RETVAL=$?
	;;
  force-reload)
	stop
	start
	RETVAL=$?
	;;
  lock)
	lock
	RETVAL=$?
	;;
  status)
	if [ -e /var/lock/subsys/firestarter -o -e /var/lock/firestarter ]; then
		log_warning_msg "Firestarter is running..."
	else
		log_warning_msg "Firestarter is stopped"
	fi
	RETVAL=$?
	;;
  *)
	log_success_msg "Usage: firestarter {start|stop|restart|force-reload|lock|status}"
	exit 1
esac
exit $RETVAL

