mirror of
https://github.com/zeek/zeek.git
synced 2025-10-05 16:18:19 +00:00
Merge branch 'master' into topic/jsiwek/ipv6-ext-headers
This commit is contained in:
commit
f11fca588e
17 changed files with 99 additions and 19 deletions
13
CHANGES
13
CHANGES
|
@ -1,4 +1,17 @@
|
||||||
|
|
||||||
|
2.0-150 | 2012-03-13 16:16:22 -0700
|
||||||
|
|
||||||
|
* Changing the regular expression to allow Site::local_nets in
|
||||||
|
signatures. (Julien Sentier)
|
||||||
|
|
||||||
|
* Removing a line of dead code. Found by . Closes #786. (Julien
|
||||||
|
Sentier)
|
||||||
|
|
||||||
|
2.0-146 | 2012-03-13 15:39:38 -0700
|
||||||
|
|
||||||
|
* Change IPv6 literal constant syntax to require encasing square
|
||||||
|
brackets. (Jon Siwek)
|
||||||
|
|
||||||
2.0-145 | 2012-03-09 15:10:35 -0800
|
2.0-145 | 2012-03-09 15:10:35 -0800
|
||||||
|
|
||||||
* Remove the match expression. 'match' and 'using' are no longer
|
* Remove the match expression. 'match' and 'using' are no longer
|
||||||
|
|
3
NEWS
3
NEWS
|
@ -28,6 +28,9 @@ Bro 2.1
|
||||||
the default scripts, nor was it likely to be used by anybody anytime
|
the default scripts, nor was it likely to be used by anybody anytime
|
||||||
soon. With that, "match" and "using" are no longer reserved keywords.
|
soon. With that, "match" and "using" are no longer reserved keywords.
|
||||||
|
|
||||||
|
- The syntax for IPv6 literals changed from "2607:f8b0:4009:802::1012"
|
||||||
|
to "[2607:f8b0:4009:802::1012]".
|
||||||
|
|
||||||
TODO: Extend.
|
TODO: Extend.
|
||||||
|
|
||||||
Bro 2.0
|
Bro 2.0
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
2.0-145
|
2.0-150
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit ca13601450803b48d70122609764e51252a0d86e
|
Subproject commit a08ca90727c5c4b90aa8633106ec33a5cf7378d4
|
|
@ -1 +1 @@
|
||||||
Subproject commit ee87db37b520b88a55323a9767234c30b801e439
|
Subproject commit 9c9fde204dd5518bdfdb8b4a86d38ed06e597209
|
|
@ -275,7 +275,7 @@ event ftp_reply(c: connection, code: count, msg: string, cont_resp: bool) &prior
|
||||||
{
|
{
|
||||||
c$ftp$passive=T;
|
c$ftp$passive=T;
|
||||||
|
|
||||||
if ( code == 229 && data$h == :: )
|
if ( code == 229 && data$h == [::] )
|
||||||
data$h = id$resp_h;
|
data$h = id$resp_h;
|
||||||
|
|
||||||
ftp_data_expected[data$h, data$p] = c$ftp;
|
ftp_data_expected[data$h, data$p] = c$ftp;
|
||||||
|
|
|
@ -352,7 +352,6 @@ void SMTP_Analyzer::ProcessLine(int length, const char* line, bool orig)
|
||||||
const char* ext;
|
const char* ext;
|
||||||
int ext_len;
|
int ext_len;
|
||||||
|
|
||||||
line = skip_whitespace(line + ext_len, end_of_line);
|
|
||||||
get_word(end_of_line - line, line, ext_len, ext);
|
get_word(end_of_line - line, line, ext_len, ext);
|
||||||
ProcessExtension(ext_len, ext);
|
ProcessExtension(ext_len, ext);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ WS [ \t]+
|
||||||
D [0-9]+
|
D [0-9]+
|
||||||
H [0-9a-fA-F]+
|
H [0-9a-fA-F]+
|
||||||
STRING \"([^\n\"]|\\\")*\"
|
STRING \"([^\n\"]|\\\")*\"
|
||||||
ID [0-9a-zA-Z_-]+
|
ID ([0-9a-zA-Z_-]+::)*[0-9a-zA-Z_-]+
|
||||||
RE \/(\\\/)?([^/]|[^\\]\\\/)*\/
|
RE \/(\\\/)?([^/]|[^\\]\\\/)*\/
|
||||||
META \.[^ \t]+{WS}[^\n]+
|
META \.[^ \t]+{WS}[^\n]+
|
||||||
PID ([0-9a-zA-Z_-]|"::")+
|
PID ([0-9a-zA-Z_-]|"::")+
|
||||||
|
|
23
src/scan.l
23
src/scan.l
|
@ -228,6 +228,24 @@ ESCSEQ (\\([^\n]|[0-7]+|x[[:xdigit:]]+))
|
||||||
++yylloc.last_line;
|
++yylloc.last_line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* IPv6 literal constant patterns */
|
||||||
|
"["({HEX}:){7}{HEX}"]" {
|
||||||
|
string s(yytext+1);
|
||||||
|
RET_CONST(new AddrVal(s.erase(s.size()-1)))
|
||||||
|
}
|
||||||
|
"["0x{HEX}({HEX}|:)*"::"({HEX}|:)*"]" {
|
||||||
|
string s(yytext+3);
|
||||||
|
RET_CONST(new AddrVal(s.erase(s.size()-1)))
|
||||||
|
}
|
||||||
|
"["({HEX}|:)*"::"({HEX}|:)*"]" {
|
||||||
|
string s(yytext+1);
|
||||||
|
RET_CONST(new AddrVal(s.erase(s.size()-1)))
|
||||||
|
}
|
||||||
|
"["({HEX}|:)*"::"({HEX}|:)*({D}"."){3}{D}"]" {
|
||||||
|
string s(yytext+1);
|
||||||
|
RET_CONST(new AddrVal(s.erase(s.size()-1)))
|
||||||
|
}
|
||||||
|
|
||||||
[!%*/+\-,:;<=>?()\[\]{}~$|] return yytext[0];
|
[!%*/+\-,:;<=>?()\[\]{}~$|] return yytext[0];
|
||||||
|
|
||||||
"--" return TOK_DECR;
|
"--" return TOK_DECR;
|
||||||
|
@ -448,11 +466,6 @@ F RET_CONST(new Val(false, TYPE_BOOL))
|
||||||
|
|
||||||
({D}"."){3}{D} RET_CONST(new AddrVal(yytext))
|
({D}"."){3}{D} RET_CONST(new AddrVal(yytext))
|
||||||
|
|
||||||
({HEX}:){7}{HEX} RET_CONST(new AddrVal(yytext))
|
|
||||||
|
|
||||||
0x{HEX}({HEX}|:)*"::"({HEX}|:)* RET_CONST(new AddrVal(yytext+2))
|
|
||||||
(({D}|:)({HEX}|:)*)?"::"({HEX}|:)* RET_CONST(new AddrVal(yytext))
|
|
||||||
|
|
||||||
"0x"{HEX}+ RET_CONST(new Val(static_cast<bro_uint_t>(strtol(yytext, 0, 16)), TYPE_COUNT))
|
"0x"{HEX}+ RET_CONST(new Val(static_cast<bro_uint_t>(strtol(yytext, 0, 16)), TYPE_COUNT))
|
||||||
|
|
||||||
{H}("."{H})+ RET_CONST(dns_mgr->LookupHost(yytext))
|
{H}("."{H})+ RET_CONST(dns_mgr->LookupHost(yytext))
|
||||||
|
|
22
testing/btest/Baseline/language.ipv6-literals/output
Normal file
22
testing/btest/Baseline/language.ipv6-literals/output
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
::1
|
||||||
|
::ffff
|
||||||
|
::255.255.255.255
|
||||||
|
::10.10.255.255
|
||||||
|
1::1
|
||||||
|
1::a
|
||||||
|
1::1:1
|
||||||
|
1::1:a
|
||||||
|
a::a
|
||||||
|
a::1
|
||||||
|
a::a:a
|
||||||
|
a::a:1
|
||||||
|
a:a::a
|
||||||
|
aaaa::ffff
|
||||||
|
192.168.1.100
|
||||||
|
ffff::c0a8:164
|
||||||
|
::192.168.1.100
|
||||||
|
805b:2d9d:dc28::fc57:d4c8:1fff
|
||||||
|
aaaa::bbbb
|
||||||
|
aaaa:bbbb:cccc:dddd:eeee:ffff:1111:2222
|
||||||
|
aaaa:bbbb:cccc:dddd:eeee:ffff:1:2222
|
||||||
|
aaaa:bbbb:cccc:dddd:eeee:ffff:0:2222
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
global v: index_vec;
|
global v: index_vec;
|
||||||
|
|
||||||
v = addr_to_counts(2001:0db8:85a3:0000:0000:8a2e:0370:7334);
|
v = addr_to_counts([2001:0db8:85a3:0000:0000:8a2e:0370:7334]);
|
||||||
print v;
|
print v;
|
||||||
print counts_to_addr(v);
|
print counts_to_addr(v);
|
||||||
v = addr_to_counts(1.2.3.4);
|
v = addr_to_counts(1.2.3.4);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# @TEST-EXEC: bro %INPUT >output
|
# @TEST-EXEC: bro %INPUT >output
|
||||||
# @TEST-EXEC: btest-diff output
|
# @TEST-EXEC: btest-diff output
|
||||||
|
|
||||||
print addr_to_ptr_name(2607:f8b0:4009:802::1012);
|
print addr_to_ptr_name([2607:f8b0:4009:802::1012]);
|
||||||
print addr_to_ptr_name(74.125.225.52);
|
print addr_to_ptr_name(74.125.225.52);
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
# @TEST-EXEC: btest-diff out
|
# @TEST-EXEC: btest-diff out
|
||||||
|
|
||||||
print is_v4_addr(1.2.3.4);
|
print is_v4_addr(1.2.3.4);
|
||||||
print is_v4_addr(::1);
|
print is_v4_addr([::1]);
|
||||||
print is_v6_addr(1.2.3.4);
|
print is_v6_addr(1.2.3.4);
|
||||||
print is_v6_addr(::1);
|
print is_v6_addr([::1]);
|
||||||
|
|
|
@ -17,4 +17,4 @@ test_to_addr("10.20.30.40", 10.20.30.40);
|
||||||
test_to_addr("100.200.30.40", 100.200.30.40);
|
test_to_addr("100.200.30.40", 100.200.30.40);
|
||||||
test_to_addr("10.0.0.0", 10.0.0.0);
|
test_to_addr("10.0.0.0", 10.0.0.0);
|
||||||
test_to_addr("10.00.00.000", 10.0.0.0);
|
test_to_addr("10.00.00.000", 10.0.0.0);
|
||||||
test_to_addr("not an IP", ::);
|
test_to_addr("not an IP", [::]);
|
||||||
|
|
|
@ -6,6 +6,6 @@ global sn: subnet;
|
||||||
sn = to_subnet("10.0.0.0/8");
|
sn = to_subnet("10.0.0.0/8");
|
||||||
print sn, sn == 10.0.0.0/8;
|
print sn, sn == 10.0.0.0/8;
|
||||||
sn = to_subnet("2607:f8b0::/32");
|
sn = to_subnet("2607:f8b0::/32");
|
||||||
print sn, sn == 2607:f8b0::/32;
|
print sn, sn == [2607:f8b0::]/32;
|
||||||
sn = to_subnet("10.0.0.0");
|
sn = to_subnet("10.0.0.0");
|
||||||
print sn, sn == ::/0;
|
print sn, sn == [::]/0;
|
||||||
|
|
30
testing/btest/language/ipv6-literals.bro
Normal file
30
testing/btest/language/ipv6-literals.bro
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# @TEST-EXEC: bro -b %INPUT >output
|
||||||
|
# @TEST-EXEC: btest-diff output
|
||||||
|
|
||||||
|
local v: vector of addr = vector();
|
||||||
|
|
||||||
|
v[|v|] = [::1];
|
||||||
|
v[|v|] = [::ffff];
|
||||||
|
v[|v|] = [::ffff:ffff];
|
||||||
|
v[|v|] = [::0a0a:ffff];
|
||||||
|
v[|v|] = [1::1];
|
||||||
|
v[|v|] = [1::a];
|
||||||
|
v[|v|] = [1::1:1];
|
||||||
|
v[|v|] = [1::1:a];
|
||||||
|
v[|v|] = [a::a];
|
||||||
|
v[|v|] = [a::1];
|
||||||
|
v[|v|] = [a::a:a];
|
||||||
|
v[|v|] = [a::a:1];
|
||||||
|
v[|v|] = [a:a::a];
|
||||||
|
v[|v|] = [aaaa:0::ffff];
|
||||||
|
v[|v|] = [::ffff:192.168.1.100];
|
||||||
|
v[|v|] = [ffff::192.168.1.100];
|
||||||
|
v[|v|] = [::192.168.1.100];
|
||||||
|
v[|v|] = [805B:2D9D:DC28::FC57:212.200.31.255];
|
||||||
|
v[|v|] = [0xaaaa::bbbb];
|
||||||
|
v[|v|] = [aaaa:bbbb:cccc:dddd:eeee:ffff:1111:2222];
|
||||||
|
v[|v|] = [aaaa:bbbb:cccc:dddd:eeee:ffff:1:2222];
|
||||||
|
v[|v|] = [aaaa:bbbb:cccc:dddd:eeee:ffff:0:2222];
|
||||||
|
|
||||||
|
for (i in v)
|
||||||
|
print v[i];
|
|
@ -20,7 +20,7 @@ type example_record: record {
|
||||||
};
|
};
|
||||||
|
|
||||||
global a: addr = 1.2.3.4;
|
global a: addr = 1.2.3.4;
|
||||||
global a6: addr = ::1;
|
global a6: addr = [::1];
|
||||||
global b: bool = T;
|
global b: bool = T;
|
||||||
global c: count = 10;
|
global c: count = 10;
|
||||||
global d: double = -1.23;
|
global d: double = -1.23;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue