mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 16:31:13 +00:00
c284cb51c0
SVN-Revision: 21286
50 lines
686 B
Bash
50 lines
686 B
Bash
#!/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 $?
|