mirror of
https://github.com/zeek/zeek.git
synced 2025-10-10 02:28:21 +00:00
Merge remote-tracking branch 'origin/topic/jsiwek/gh-1083-fix-input-set-events'
* origin/topic/jsiwek/gh-1083-fix-input-set-events: GH-1083: Fix Input Framework 'change' events for 'set' destinations Fixes GH-1083
This commit is contained in:
commit
aa3d94a3cd
7 changed files with 208 additions and 44 deletions
|
@ -0,0 +1,66 @@
|
|||
# @TEST-EXEC: mv entries.set1 entries.set
|
||||
# @TEST-EXEC: btest-bg-run zeek zeek -b %INPUT
|
||||
# @TEST-EXEC: $SCRIPTS/wait-for-file zeek/got1 15 || (btest-bg-wait -k 1 && false)
|
||||
# @TEST-EXEC: mv entries.set2 entries.set
|
||||
# @TEST-EXEC: $SCRIPTS/wait-for-file zeek/got2 15 || (btest-bg-wait -k 1 && false)
|
||||
# @TEST-EXEC: mv entries.set3 entries.set
|
||||
# @TEST-EXEC: btest-bg-wait 30
|
||||
# @TEST-EXEC: btest-diff out
|
||||
|
||||
@TEST-START-FILE entries.set1
|
||||
#fields s
|
||||
one
|
||||
two
|
||||
three
|
||||
@TEST-END-FILE
|
||||
|
||||
@TEST-START-FILE entries.set2
|
||||
#fields s
|
||||
one
|
||||
@TEST-END-FILE
|
||||
|
||||
@TEST-START-FILE entries.set3
|
||||
#fields s
|
||||
one
|
||||
four
|
||||
@TEST-END-FILE
|
||||
|
||||
redef exit_only_after_terminate=T;
|
||||
|
||||
type Idx: record {
|
||||
s: string;
|
||||
};
|
||||
|
||||
global entries: set[string] = set();
|
||||
global event_count = 0;
|
||||
global out = open("../out");
|
||||
|
||||
event entry_notify(description: Input::TableDescription, tpe: Input::Event,
|
||||
left: Idx)
|
||||
{
|
||||
++event_count;
|
||||
print out, fmt("entry notification %s: %s", tpe, left);
|
||||
|
||||
if ( event_count == 3 )
|
||||
system("touch got1");
|
||||
else if ( event_count == 5 )
|
||||
system("touch got2");
|
||||
else if ( event_count == 6 )
|
||||
{
|
||||
print out, "done";
|
||||
close(out);
|
||||
Input::remove("entries");
|
||||
terminate();
|
||||
}
|
||||
}
|
||||
|
||||
event zeek_init()
|
||||
{
|
||||
Input::add_table([$source="../entries.set",
|
||||
$name="entries",
|
||||
$idx=Idx,
|
||||
$destination=entries,
|
||||
$ev=entry_notify,
|
||||
$mode=Input::REREAD
|
||||
]);
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
# @TEST-EXEC: mv entries.set1 entries.set
|
||||
# @TEST-EXEC: btest-bg-run zeek zeek -b %INPUT
|
||||
# @TEST-EXEC: $SCRIPTS/wait-for-file zeek/got1 15 || (btest-bg-wait -k 1 && false)
|
||||
# @TEST-EXEC: cat entries.set2 >> entries.set
|
||||
# @TEST-EXEC: btest-bg-wait 30
|
||||
# @TEST-EXEC: btest-diff out
|
||||
|
||||
@TEST-START-FILE entries.set1
|
||||
#fields s
|
||||
one
|
||||
two
|
||||
three
|
||||
@TEST-END-FILE
|
||||
|
||||
@TEST-START-FILE entries.set2
|
||||
four
|
||||
five
|
||||
six
|
||||
@TEST-END-FILE
|
||||
|
||||
redef exit_only_after_terminate=T;
|
||||
|
||||
type Idx: record {
|
||||
s: string;
|
||||
};
|
||||
|
||||
global entries: set[string] = set();
|
||||
global event_count = 0;
|
||||
global out = open("../out");
|
||||
|
||||
event entry_notify(description: Input::TableDescription, tpe: Input::Event,
|
||||
left: Idx)
|
||||
{
|
||||
++event_count;
|
||||
print out, fmt("entry notification %s: %s", tpe, left);
|
||||
|
||||
if ( event_count == 3 )
|
||||
system("touch got1");
|
||||
else if ( event_count == 6 )
|
||||
{
|
||||
print out, "done";
|
||||
close(out);
|
||||
Input::remove("entries");
|
||||
terminate();
|
||||
}
|
||||
}
|
||||
|
||||
event zeek_init()
|
||||
{
|
||||
Input::add_table([$source="../entries.set",
|
||||
$name="entries",
|
||||
$idx=Idx,
|
||||
$destination=entries,
|
||||
$ev=entry_notify,
|
||||
$mode=Input::STREAM
|
||||
]);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue