mirror of
https://github.com/zeek/zeek.git
synced 2025-10-16 13:38:19 +00:00
Merge remote-tracking branch 'origin/master' into topic/johanna/netcontrol-improvements
This commit is contained in:
commit
ee4abb5db2
23 changed files with 382 additions and 35 deletions
20
testing/btest/Baseline/bifs.filter_subnet_table/output
Normal file
20
testing/btest/Baseline/bifs.filter_subnet_table/output
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
10.0.0.0/8,
|
||||
10.2.0.2/31,
|
||||
10.2.0.0/16
|
||||
}
|
||||
{
|
||||
[10.0.0.0/8] = a,
|
||||
[10.2.0.2/31] = c,
|
||||
[10.2.0.0/16] = b
|
||||
}
|
||||
{
|
||||
[10.0.0.0/8] = a,
|
||||
[10.3.0.0/16] = e
|
||||
}
|
||||
{
|
||||
|
||||
}
|
||||
{
|
||||
|
||||
}
|
1
testing/btest/Baseline/language.expire_multiple-2/output
Normal file
1
testing/btest/Baseline/language.expire_multiple-2/output
Normal file
|
@ -0,0 +1 @@
|
|||
error in /Users/johanna/bro/master/testing/btest/.tmp/language.expire_multiple-2/expire_multiple.test, line 2: set/table can only have one of &read_expire, &write_expire, &create_expire (&write_expire=1.0 sec, &create_expire=3.0 secs)
|
1
testing/btest/Baseline/language.expire_multiple-3/output
Normal file
1
testing/btest/Baseline/language.expire_multiple-3/output
Normal file
|
@ -0,0 +1 @@
|
|||
error in /Users/johanna/bro/master/testing/btest/.tmp/language.expire_multiple-3/expire_multiple.test, line 2: set/table can only have one of &read_expire, &write_expire, &create_expire (&write_expire=1.0 sec, &read_expire=3.0 secs)
|
1
testing/btest/Baseline/language.expire_multiple/output
Normal file
1
testing/btest/Baseline/language.expire_multiple/output
Normal file
|
@ -0,0 +1 @@
|
|||
error in /Users/johanna/bro/master/testing/btest/.tmp/language.expire_multiple/expire_multiple.test, line 4: set/table can only have one of &read_expire, &write_expire, &create_expire (&create_expire=1.0 sec, &read_expire=1.0 sec)
|
27
testing/btest/Baseline/language.expire_subnet/output
Normal file
27
testing/btest/Baseline/language.expire_subnet/output
Normal file
|
@ -0,0 +1,27 @@
|
|||
All:
|
||||
0 --> zero
|
||||
2 --> two
|
||||
4 --> four
|
||||
1 --> one
|
||||
3 --> three
|
||||
192.168.3.0/24 --> three
|
||||
192.168.0.0/16 --> zero
|
||||
192.168.4.0/24 --> four
|
||||
192.168.1.0/24 --> one
|
||||
192.168.2.0/24 --> two
|
||||
Time: 0 secs
|
||||
|
||||
Accessed table nums: two; three
|
||||
Accessed table nets: two; three, zero
|
||||
Time: 7.0 secs 518.0 msecs 828.0 usecs
|
||||
|
||||
Expired Num: 0 --> zero at 8.0 secs 835.0 msecs 30.0 usecs
|
||||
Expired Num: 4 --> four at 8.0 secs 835.0 msecs 30.0 usecs
|
||||
Expired Num: 1 --> one at 8.0 secs 835.0 msecs 30.0 usecs
|
||||
Expired Subnet: 192.168.4.0/24 --> four at 8.0 secs 835.0 msecs 30.0 usecs
|
||||
Expired Subnet: 192.168.1.0/24 --> one at 8.0 secs 835.0 msecs 30.0 usecs
|
||||
Expired Num: 2 --> two at 15.0 secs 150.0 msecs 681.0 usecs
|
||||
Expired Num: 3 --> three at 15.0 secs 150.0 msecs 681.0 usecs
|
||||
Expired Subnet: 192.168.3.0/24 --> three at 15.0 secs 150.0 msecs 681.0 usecs
|
||||
Expired Subnet: 192.168.0.0/16 --> zero at 15.0 secs 150.0 msecs 681.0 usecs
|
||||
Expired Subnet: 192.168.2.0/24 --> two at 15.0 secs 150.0 msecs 681.0 usecs
|
49
testing/btest/bifs/filter_subnet_table.bro
Normal file
49
testing/btest/bifs/filter_subnet_table.bro
Normal file
|
@ -0,0 +1,49 @@
|
|||
# @TEST-EXEC: bro -b %INPUT >output
|
||||
# @TEST-EXEC: btest-diff output
|
||||
|
||||
global testa: set[subnet] = {
|
||||
10.0.0.0/8,
|
||||
10.2.0.0/16,
|
||||
10.2.0.2/31,
|
||||
10.1.0.0/16,
|
||||
10.3.0.0/16,
|
||||
5.0.0.0/8,
|
||||
5.5.0.0/25,
|
||||
5.2.0.0/32,
|
||||
7.2.0.0/32,
|
||||
[2607:f8b0:4008:807::200e]/64,
|
||||
[2607:f8b0:4007:807::200e]/64,
|
||||
[2607:f8b0:4007:807::200e]/128
|
||||
};
|
||||
|
||||
global testb: table[subnet] of string = {
|
||||
[10.0.0.0/8] = "a",
|
||||
[10.2.0.0/16] = "b",
|
||||
[10.2.0.2/31] = "c",
|
||||
[10.1.0.0/16] = "d",
|
||||
[10.3.0.0/16] = "e",
|
||||
[5.0.0.0/8] = "f",
|
||||
[5.5.0.0/25] = "g",
|
||||
[5.2.0.0/32] = "h",
|
||||
[7.2.0.0/32] = "i",
|
||||
[[2607:f8b0:4008:807::200e]/64] = "j",
|
||||
[[2607:f8b0:4007:807::200e]/64] = "k",
|
||||
[[2607:f8b0:4007:807::200e]/128] = "l"
|
||||
};
|
||||
|
||||
|
||||
event bro_init()
|
||||
{
|
||||
local c = filter_subnet_table(10.2.0.2/32, testa);
|
||||
print c;
|
||||
c = filter_subnet_table(10.2.0.2/32, testb);
|
||||
print c;
|
||||
c = filter_subnet_table(10.3.0.2/32, testb);
|
||||
print c;
|
||||
c = filter_subnet_table(1.0.0.0/8, testb);
|
||||
print c;
|
||||
|
||||
local unspecified: table[subnet] of string = table();
|
||||
c = filter_subnet_table(10.2.0.2/32, unspecified);
|
||||
print c;
|
||||
}
|
12
testing/btest/language/expire_multiple.test
Normal file
12
testing/btest/language/expire_multiple.test
Normal file
|
@ -0,0 +1,12 @@
|
|||
# @TEST-EXEC-FAIL: bro -b %INPUT >output 2>&1
|
||||
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff output
|
||||
|
||||
global s: set[string] &create_expire=1secs &read_expire=1secs;
|
||||
|
||||
# @TEST-START-NEXT:
|
||||
|
||||
global s: set[string] &write_expire=1secs &create_expire=3secs;
|
||||
|
||||
# @TEST-START-NEXT:
|
||||
|
||||
global s: set[string] &write_expire=1secs &read_expire=3secs;
|
96
testing/btest/language/expire_subnet.test
Normal file
96
testing/btest/language/expire_subnet.test
Normal file
|
@ -0,0 +1,96 @@
|
|||
# @TEST-EXEC: bro -C -r $TRACES/var-services-std-ports.trace %INPUT >output
|
||||
# @TEST-EXEC: btest-diff output
|
||||
|
||||
redef table_expire_interval = 1sec;
|
||||
|
||||
global start_time: time;
|
||||
|
||||
function time_past(): interval
|
||||
{
|
||||
return network_time() - start_time;
|
||||
}
|
||||
|
||||
function expire_nums(tbl: table[count] of string, idx: count): interval
|
||||
{
|
||||
print fmt("Expired Num: %s --> %s at %s", idx, tbl[idx], time_past());
|
||||
return 0sec;
|
||||
}
|
||||
|
||||
function expire_nets(tbl: table[subnet] of string, idx: subnet): interval
|
||||
{
|
||||
print fmt("Expired Subnet: %s --> %s at %s", idx, tbl[idx], time_past());
|
||||
return 0sec;
|
||||
}
|
||||
|
||||
global nums: table[count] of string &read_expire=8sec &expire_func=expire_nums;
|
||||
global nets: table[subnet] of string &read_expire=8sec &expire_func=expire_nets;
|
||||
global step: count;
|
||||
|
||||
### Test ###
|
||||
|
||||
function execute_test()
|
||||
{
|
||||
local num_a = nums[2];
|
||||
local num_b = nums[3];
|
||||
|
||||
local net_a = nets[192.168.2.0/24];
|
||||
#local net_b = nets[192.168.3.0/24];
|
||||
local nets_b = "";
|
||||
local nets_b_tbl: table[subnet] of string;
|
||||
|
||||
nets_b_tbl = filter_subnet_table(192.168.3.0/24, nets);
|
||||
for ( idx in nets_b_tbl )
|
||||
nets_b += cat(", ", nets_b_tbl[idx]);
|
||||
nets_b = nets_b[2:];
|
||||
|
||||
# writing resets expire as expected
|
||||
#nets[192.168.2.0/24] = "accessed";
|
||||
#nets[192.168.3.0/24] = "accessed";
|
||||
|
||||
print fmt("Accessed table nums: %s; %s", num_a, num_b);
|
||||
print fmt("Accessed table nets: %s; %s", net_a, nets_b);
|
||||
print fmt("Time: %s", time_past());
|
||||
print "";
|
||||
}
|
||||
|
||||
### Events ###
|
||||
|
||||
event bro_init()
|
||||
{
|
||||
step = 0;
|
||||
|
||||
nums[0] = "zero";
|
||||
nums[1] = "one";
|
||||
nums[2] = "two";
|
||||
nums[3] = "three";
|
||||
nums[4] = "four";
|
||||
|
||||
nets[192.168.0.0/16] = "zero";
|
||||
nets[192.168.1.0/24] = "one";
|
||||
nets[192.168.2.0/24] = "two";
|
||||
nets[192.168.3.0/24] = "three";
|
||||
nets[192.168.4.0/24] = "four";
|
||||
}
|
||||
|
||||
event new_packet(c: connection, p: pkt_hdr)
|
||||
{
|
||||
if ( step == 0 )
|
||||
{
|
||||
++step;
|
||||
start_time = network_time();
|
||||
|
||||
print "All:";
|
||||
for ( num in nums )
|
||||
print fmt("%s --> %s", num, nums[num]);
|
||||
for ( net in nets )
|
||||
print fmt("%s --> %s", net, nets[net]);
|
||||
print fmt("Time: %s", time_past());
|
||||
print "";
|
||||
}
|
||||
|
||||
if ( (time_past() > 7sec) && (step == 1) )
|
||||
{
|
||||
++step;
|
||||
execute_test();
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue