| @@ -7,26 +7,35 @@ | | | @@ -7,26 +7,35 @@ |
7 | # $4 address | | 7 | # $4 address |
8 | # $5 mask | | 8 | # $5 mask |
9 | # $6 port | | 9 | # $6 port |
10 | # $7 id | | 10 | # $7 id |
11 | | | 11 | |
12 | case "$1" in | | 12 | case "$1" in |
13 | add) | | 13 | add) |
14 | if [ -n "$3" ]; then | | 14 | if [ -n "$3" ]; then |
15 | proto="proto $3" | | 15 | proto="proto $3" |
16 | fi | | 16 | fi |
17 | if [ -n "$6" ]; then | | 17 | if [ -n "$6" ]; then |
18 | port="port $6" | | 18 | port="port $6" |
19 | fi | | 19 | fi |
20 | exec /sbin/npfctl rule $2 add block in final $proto from $4/$5 to any $port | | 20 | addr=$4 |
| | | 21 | mask=$5 |
| | | 22 | case "$4" in |
| | | 23 | ::ffff:*.*.*.*) |
| | | 24 | if [ "$5" = 128 ]; then |
| | | 25 | mask=32 |
| | | 26 | addr=${4#::ffff:} |
| | | 27 | fi;; |
| | | 28 | esac |
| | | 29 | exec /sbin/npfctl rule $2 add block in final $proto from $addr/$mask to any $port |
21 | ;; | | 30 | ;; |
22 | rem) | | 31 | rem) |
23 | exec /sbin/npfctl rule $2 rem-id $7 | | 32 | exec /sbin/npfctl rule $2 rem-id $7 |
24 | ;; | | 33 | ;; |
25 | flush) | | 34 | flush) |
26 | exec /sbin/npfctl rule $2 flush | | 35 | exec /sbin/npfctl rule $2 flush |
27 | ;; | | 36 | ;; |
28 | *) | | 37 | *) |
29 | echo "$0: Unknown command '$1'" 1>&2 | | 38 | echo "$0: Unknown command '$1'" 1>&2 |
30 | exit 1 | | 39 | exit 1 |
31 | ;; | | 40 | ;; |
32 | esac | | 41 | esac |