small-package/natflow/files/natflow-zone.init

50 lines
735 B
Bash

#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2011 OpenWrt.org
START=95
DEVCTL=/dev/natflow_zone_ctl
zone_idx=0
natflow_zone_setup()
{
local idx=$zone_idx
zone_idx=$((zone_idx+1))
local cfg="$1"
local fw_zone ifname type
config_get fw_zone "$cfg" fw_zone
config_get ifname "$cfg" ifname
config_get type "$cfg" type
(for fwz in $fw_zone; do
fw3 -q zone $fwz
done; \
for ifn in $ifname; do
echo $ifn
done) | sed 's/\*$/+/' | sort | uniq | while read IFN; do
echo $type $idx=$IFN >$DEVCTL
done
}
start() {
test -c $DEVCTL || return 0
echo clean >$DEVCTL
config_load natflow
config_foreach natflow_zone_setup zone
echo update_match >$DEVCTL
}
stop() {
test -c $DEVCTL || return 0
}
restart()
{
start
}