exit 1
fi
-declare -a VALID_ZONES
+declare -a CONFIGURED_ZONES
-VALID_ZONES+=("blue")
-VALID_ZONES+=("green")
-VALID_ZONES+=("orange")
+for zone in blue green orange; do
+ if ! is_${zone}_used; then
+ CONFIGURED_ZONES+=("${zone}")
+ fi
+done
# If we are called as /etc/init.d/network also red is a valid zone.
# Otherwise we are called as /etc/init.d/network-local where red
# is invalid.
if [[ "$(basename $0)" == "network" ]]; then
- VALID_ZONES+=("red")
+ CONFIGURED_ZONES+=("red")
fi
declare -A ZONE_ACTION
-for i in "${VALID_ZONES[@]}"; do
+for i in "${CONFIGURED_ZONES[@]}"; do
ZONE_ACTION[${i}]=false
done
if [ $# -eq 0 ]; then
- for i in "${VALID_ZONES[@]}"; do
- ZONE_ACTION[${i}]=true
+ for zone in "${CONFIGURED_ZONES[@]}"; do
+ ZONE_ACTION[${zone}]=true
done
fi
+
while [ $# -ne 0 ]; do
ZONE_VALID=false
- for i in "${VALID_ZONES[@]}"; do
+ for i in "${CONFIGURED_ZONES[@]}"; do
if [ "${i}" == "${1}" ]; then
ZONE_ACTION[${i}]=true
ZONE_VALID=true
done
if ! ${ZONE_VALID}; then
- echo "'${1}' is not a valid zone. Cannot go on."
+ echo "'${1}' is not configured on this system. Cannot go on."
exit 1
fi
done
case "${DO}" in
start)
# Starting interfaces...
- for i in "${VALID_ZONES[@]}"; do
+ for i in "${CONFIGURED_ZONES[@]}"; do
${ZONE_ACTION[${i}]} && /etc/rc.d/init.d/networking/${i} start
done
;;
stop)
# Stopping interfaces...
- for i in "${VALID_ZONES[@]}"; do
+ for i in "${CONFIGURED_ZONES[@]}"; do
${ZONE_ACTION[${i}]} && /etc/rc.d/init.d/networking/${i} stop
done
;;
restart)
- for i in "${VALID_ZONES[@]}"; do
+ for i in "${CONFIGURED_ZONES[@]}"; do
if ${ZONE_ACTION[${i}]}; then
ARGS+=" ${i}"
fi