mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
[backfire] merge dual stack firewall
git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@25353 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
49
package/firewall/files/bin/fw
Normal file
49
package/firewall/files/bin/fw
Normal file
@@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
FW_LIBDIR=/lib/firewall
|
||||
|
||||
. /etc/functions.sh
|
||||
. ${FW_LIBDIR}/fw.sh
|
||||
|
||||
case "$(type fw)" in
|
||||
*function) ;;
|
||||
*) exit 255;;
|
||||
esac
|
||||
|
||||
usage() {
|
||||
echo $0 "<command>" "<family>" "<table>" "<chain>" "<target>" "{" "<rules>" "}"
|
||||
exit 0
|
||||
}
|
||||
|
||||
cmd=$1
|
||||
shift
|
||||
case "$cmd" in
|
||||
--help|help) usage ;;
|
||||
start|stop|reload|restart)
|
||||
. ${FW_LIBDIR}/core.sh
|
||||
fw_$cmd
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
fam=$1
|
||||
shift
|
||||
case "$fam" in
|
||||
ip)
|
||||
fam=i
|
||||
if [ $# -gt 2 ]; then
|
||||
for p in $(seq 2 $(($# - 1))); do
|
||||
if eval "[ \$$p == '}' ]"; then
|
||||
fam=I
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi ;;
|
||||
ip4) fam=4 ;;
|
||||
ip6) fam=6 ;;
|
||||
arp) fam=a ;;
|
||||
eth) fam=e ;;
|
||||
-*) exec $0 $cmd ${fam##*-} "$@" ;;
|
||||
esac
|
||||
|
||||
fw "$cmd" "$fam" "$@"
|
||||
exit $?
|
||||
Reference in New Issue
Block a user