shorewall_code/Shorewall/prog.footer.redhat

161 lines
2.9 KiB
Plaintext

#
# Give Usage Information
#
usage() {
echo $"Usage: $BASENAME [ -q ] [ -v ] [ -n ] {start|stop|clear|restart|condrestart|status|version}"
exit $1
}
################################################################################
# E X E C U T I O N B E G I N S H E R E #
################################################################################
initialize
#
# Start trace if first arg is "debug"
#
[ $# -gt 1 ] && [ "$1" = "debug" ] && { set -x ; shift ; }
finished=0
while [ $finished -eq 0 -a $# -gt 0 ]; do
option=$1
case $option in
-*)
option=${option#-}
[ -z "$option" ] && usage 1
while [ -n "$option" ]; do
case $option in
v*)
VERBOSE=$(($VERBOSE + 1 ))
option=${option#v}
;;
q*)
VERBOSE=$(($VERBOSE - 1 ))
option=${option#q}
;;
n*)
NOROUTES=Yes
option=${option#n}
;;
*)
usage 1
;;
esac
done
shift
;;
*)
finished=1
;;
esac
done
if [ $# -ne 1 ]; then
usage 2
else
COMMAND="$1"
fi
case "$COMMAND" in
start)
if shorewall_is_started; then
echo -n $"$BASENAME already running."
echo_failure
echo
status=1
else
echo -n $"Starting $BASENAME: "
define_firewall
status=$?
[ $status = 0 -a -n "$SUBSYSLOCK" ] && touch $SUBSYSLOCK
[ $status -eq 0 ] && echo_success || echo_failure
echo
fi
;;
stop)
echo -n $"Shutting down $BASENAME: "
stop_firewall
status=0
[ -n "$SUBSYSLOCK" ] && rm -f $SUBSYSLOCK
echo_success
echo
;;
restart)
if shorewall_is_started; then
echo -n $"Restarting $BASENAME: "
else
echo -n $"Starting $BASENAME: "
fi
define_firewall
status=$?
[ $status = 0 -a -n "$SUBSYSLOCK" ] && touch $SUBSYSLOCK
[ $status -eq 0 ] && echo_success || echo_failure
echo
;;
condrestart)
if shorewall_is_started; then
echo -n $"Restarting $BASENAME: "
define_firewall
status=$?
[ $status = 0 -a -n "$SUBSYSLOCK" ] && touch $SUBSYSLOCK
[ $status -eq 0 ] && echo_success || echo_failure
echo
fi
;;
restore)
echo -n $"Restoring $BASENAME: "
restore_firewall
status=$?
[ $status = 0 -a -n "$SUBSYSLOCK" ] && touch $SUBSYSLOCK
[ $status -eq 0 ] && echo_success || echo_failure
echo
;;
clear)
echo -n $"Clearing $BASENAME: "
clear_firewall
status=0
[ -n "$SUBSYSLOCK" ] && rm -f $SUBSYSLOCK
echo_success
echo
;;
status)
echo "Shorewall-$VERSION Status at $HOSTNAME - $(date)"
echo
if shorewall_is_started; then
echo "Shorewall is running"
status=0
else
echo "Shorewall is stopped"
status=4
fi
if [ -f /var/lib/shorewall/state ]; then
state="$(cat /var/lib/shorewall/state)"
case $state in
Stopped*|Clear*)
status=3
;;
esac
else
state=Unknown
fi
echo "State:$state"
echo
;;
version)
echo $VERSION
status=0
;;
help)
usage 0
;;
*)
usage 2
;;
esac
exit $status