123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #!/bin/sh
- #
- # ufw-init: helper script to be used by ufw itself
- #
- # Copyright 2008-2015 Canonical Ltd.
- #
- # This program is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License version 3,
- # as published by the Free Software Foundation.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
- #
- set -e
- # FIXME: this shouldn't be ordered
- rootdir=
- if [ "$1" = "--rootdir" ] && [ -s "$2" ]; then
- rootdir="$2/" # ensure trailing slash
- shift 2
- fi
- datadir=
- if [ "$1" = "--datadir" ] && [ -s "$2" ]; then
- datadir="$2/" # ensure trailing slash
- shift 2
- fi
- export DATA_DIR="$datadir"
- # Debian/Ubuntu: small boot speed improvement
- . "${rootdir}/etc/ufw/ufw.conf"
- if [ "$1" = "start" ] && [ "$2" = "quiet" ] && [ "$ENABLED" = "no" ]; then
- exit 0
- fi
- if [ -s "${rootdir}/lib/ufw/ufw-init-functions" ]; then
- . "${rootdir}/lib/ufw/ufw-init-functions"
- else
- echo "Could not find ${rootdir}/lib/ufw/ufw-init-functions (aborting)"
- exit 1
- fi
- case "$1" in
- start)
- # process multiple error strings
- ret=0
- output=`ufw_start` || ret="$?"
- test -n "$output" && echo "$output" | while read line ; do
- if [ "$2" = "quiet" ] || [ "$QUIET" = "yes" ]; then
- echo "$line" | grep -q "Skip starting" && continue
- fi
- echo "$line"
- done
- exit "$ret"
- ;;
- stop)
- ufw_stop || exit "$?"
- ;;
- force-stop)
- ufw_stop --force || exit "$?"
- ;;
- restart|force-reload)
- ufw_reload || exit "$?"
- ;;
- status)
- ufw_status || exit "$?"
- # If before.init and after.init support 'status', just display them after
- # ufw_status() so it is prettier
- if [ -x "$RULES_PATH/before.init" ]; then
- "$RULES_PATH/before.init" status || exit "$?"
- fi
- if [ -x "$RULES_PATH/after.init" ]; then
- "$RULES_PATH/after.init" status || exit "$?"
- fi
- ;;
- flush-all)
- # Use sparingly. It flushes the built-in chains, deletes all non-builtin
- # chains and resets the policy to ACCEPT
- if [ -x "$RULES_PATH/before.init" ]; then
- "$RULES_PATH/before.init" flush-all || exit "$?"
- fi
- flush_builtins || exit "$?"
- if [ -x "$RULES_PATH/after.init" ]; then
- "$RULES_PATH/after.init" flush-all || exit "$?"
- fi
- ;;
- *)
- echo "Usage: /lib/ufw/ufw-init {start|stop|restart|force-reload|force-stop|flush-all|status}"
- exit 1
- ;;
- esac
|