Skip to content

Commit

Permalink
More precise error reporting for the disable_analyzer() BiF
Browse files Browse the repository at this point in the history
This replaces generic reporter->Error() calls with the builtin-specific variety,
which gives better context in the resulting error messages (such as the script
and line causing it).

Includes corresponding baseline update in one affected btest.
  • Loading branch information
ckreibich committed May 24, 2024
1 parent cb01f0e commit 455e6a2
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 38 deletions.
6 changes: 3 additions & 3 deletions src/zeek.bif
Original file line number Diff line number Diff line change
Expand Up @@ -4200,15 +4200,15 @@ function disable_analyzer%(cid: conn_id, aid: count, err_if_no_conn: bool &defau
Connection* c = session_mgr->FindConnection(cid);
if ( ! c )
{
zeek::reporter->Error("cannot find connection");
zeek::emit_builtin_error("connection ID not a known connection", cid);
return zeek::val_mgr->False();
}

analyzer::Analyzer* a = c->FindAnalyzer(aid);
if ( ! a )
{
if ( err_if_no_conn )
zeek::reporter->Error("connection does not have analyzer specified to disable");
zeek::emit_builtin_error("connection does not have analyzer specified to disable");
return zeek::val_mgr->False();
}

Expand All @@ -4218,7 +4218,7 @@ function disable_analyzer%(cid: conn_id, aid: count, err_if_no_conn: bool &defau
// of a root analyzer without probing for it.
if ( ! a->Parent() )
{
zeek::reporter->Error("root analyzer %s cannot be removed", a->GetAnalyzerName());
zeek::emit_builtin_error(zeek::util::fmt("root analyzer %s cannot be removed", a->GetAnalyzerName()));
return zeek::val_mgr->False();
}

Expand Down
68 changes: 34 additions & 34 deletions testing/btest/Baseline/bifs.disable_analyzer-invalid-aid/out
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer TCP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer TCP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer TCP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer TCP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer TCP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer TCP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer TCP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer TCP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer TCP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer TCP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error: root analyzer UDP cannot be removed
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer TCP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer TCP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer TCP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer TCP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer TCP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer TCP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer TCP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer TCP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer TCP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer TCP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
XXXXXXXXXX.XXXXXX error in <...>/disable_analyzer-invalid-aid.zeek, line 12: root analyzer UDP cannot be removed (disable_analyzer(c$id, i, F, T))
2 changes: 1 addition & 1 deletion testing/btest/bifs/disable_analyzer-invalid-aid.zeek
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# @TEST-EXEC: zeek -b -r $TRACES/wikipedia.trace %INPUT >out 2>&1
# @TEST-EXEC: btest-diff out
# @TEST-EXEC: TEST_DIFF_CANONIFIER='$SCRIPTS/diff-canonifier | $SCRIPTS/diff-remove-abspath' btest-diff out
# @TEST-DOC: Validates that one can use disable_analyzer even for analyzers without parent. This is a regression test for #3071.

event new_connection(c: connection)
Expand Down

0 comments on commit 455e6a2

Please sign in to comment.