Ignore 'start' and 'stop' if firewall(s) is started

Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
Tom Eastep 2020-04-15 09:13:31 -07:00
parent a5d4cbd76c
commit 9d3da44dad

View File

@ -24,6 +24,20 @@
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
#
# Check to see if any of the products are running. If so, issue a warning
# and exits with value 1
firewall_stopped() {
for PRODUCT in $PRODUCTS; do
if $PRODUCT status > /dev/null 2>&1; then
echo " WARNING: $PRODUCT is running -- ignoring $1 command" >&2
return 1
fi
done
return 0
}
# set the STATEDIR variable
setstatedir() {
local statedir
@ -42,23 +56,6 @@ setstatedir() {
fi
}
#
# This is modified by the installer when ${SHAREDIR} <> /usr/share
#
. /usr/share/shorewall/shorewallrc
# check if shorewall-init is configured or not
if [ -f "$SYSCONFDIR/shorewall-init" ]; then
. $SYSCONFDIR/shorewall-init
if [ -z "$PRODUCTS" ]; then
echo "ERROR: No products configured" >&2
exit 1
fi
else
echo "ERROR: ${SYSCONFDIR}/shorewall-init not found" >&2
exit 1
fi
# Initialize the firewall
shorewall_start () {
local PRODUCT
@ -109,12 +106,29 @@ shorewall_stop () {
return 0
}
#
# This is modified by the installer when ${SHAREDIR} <> /usr/share
#
. /usr/share/shorewall/shorewallrc
# check if shorewall-init is configured or not
if [ -f "$SYSCONFDIR/shorewall-init" ]; then
. $SYSCONFDIR/shorewall-init
if [ -z "$PRODUCTS" ]; then
echo "ERROR: No products configured" >&2
exit 1
fi
else
echo "ERROR: ${SYSCONFDIR}/shorewall-init not found" >&2
exit 1
fi
case "$1" in
start)
shorewall_start
firewall_stopped 'start' && shorewall_start
;;
stop)
shorewall_stop
firewall_stopped 'stop' && shorewall_stop
;;
*)
echo "Usage: $0 {start|stop}"