1 function portstr
(type
, str
) {
3 if (insmod_mport
!= 1) {
4 print "insmod ipt_multiport >&- 2>&-"
7 if (type ==
"src") return " -m multiport --sports " str
8 else return " -m multiport --dports " str
11 function str2ipt
(str
) {
14 if (_l
["src"] != "") _cmd = _cmd
" -s " _l
["src"]
15 if (_l
["dest"] != "") _cmd = _cmd
" -d " _l
["dest"]
16 if (_l
["proto"] != "") {
17 _cmd = _cmd
" -p " _l
["proto"]
19 # scripts need to check for proto="" and emit two rules in that case
20 if ((_l
["proto"] ==
"") || (_l
["proto"] ==
"tcp") || (_l
["proto"] ==
"udp")) {
21 if (_l
["sport"] != "") _cmd = _cmd portstr
("src", _l
["sport"])
22 if (_l
["dport"] != "") _cmd = _cmd portstr
("dest", _l
["dport"])
24 if (_l
["layer7"] != "") {
26 print "insmod ipt_layer7 >&- 2>&-"
29 _cmd = _cmd
" -m layer7 --l7proto " _l
["layer7"]
34 function str2data
(str
) {
36 _n =
split(str
, _o
, "[\t ]")
37 for (_i =
1; _i
<= _n
; _i
++) {
38 _n2 =
split(_o
[_i
], _c
, "=")
39 if (_n2 ==
2) _l
[_c
[1]] = _c
[2]
43 function bitcount
(c
) {
44 c=and
(rshift
(c
, 1),0x55555555)+and
(c
,0x55555555)
45 c=and
(rshift
(c
, 2),0x33333333)+and
(c
,0x33333333)
46 c=and
(rshift
(c
, 4),0x0f0f0f0f)+and
(c
,0x0f0f0f0f)
47 c=and
(rshift
(c
, 8),0x00ff00ff)+and
(c
,0x00ff00ff)
48 c=and
(rshift
(c
,16),0x0000ffff)+and
(c
,0x0000ffff)
52 function validate_netmask
(nm
) {
53 return and
(-nm
,compl
(nm
))
57 for (ret=
0,n=
split(ip
,a
,"\."),x=
1;x
<=n
;x
++) ret=or
(lshift
(ret
,8),a
[x
])
61 function int2ip
(ip
,ret
,x
) {
64 for(;x
<3;ret=and
(ip
,255)"."ret
,ip=rshift
(ip
,8),x
++);
This page took 0.041544 seconds and 5 git commands to generate.