Commit graph

18541 commits

Author SHA1 Message Date
Tim Wojtulewicz
a289307e50 Merge remote-tracking branch 'origin/topic/timw/clang-20-build-warnings'
* origin/topic/timw/clang-20-build-warnings:
  Silence -Wnontrivial-memcall warning in ConnKey methods
2025-06-05 08:22:40 -07:00
Tim Wojtulewicz
badca1e604 Merge remote-tracking branch 'origin/topic/timw/update-broker'
* origin/topic/timw/update-broker:
  Update broker submodule [nomail]
2025-06-05 08:21:42 -07:00
Johanna Amann
e6755325e1 Merge remote-tracking branch 'origin/topic/johanna/new-style-analyzer-log'
* origin/topic/johanna/new-style-analyzer-log:
  NEWS entries for analyzer log changes
  Move detect-protocol from frameworks/dpd to frameworks/analyzer
  Introduce new c$failed_analyzers field
  Settle on analyzer.log for the dpd.log replacement
  dpd->analyzer.log change - rename files
  Analyzer failure logging: tweaks and test fixes
  Introduce analyzer-failed.log, as a replacement for dpd.log
  Rename analyzer.log to analyzer.debug log; move to policy
  Move dpd.log to policy script
2025-06-05 07:22:35 +01:00
Tim Wojtulewicz
62dc6ce7bc Merge remote-tracking branch 'origin/topic/timw/clang-tidy-cppcoreguidelines-fixes'
* origin/topic/timw/clang-tidy-cppcoreguidelines-fixes:
  Add some notes about missing/disabled cppcoreguildlines clang-tidy checkers
  Fix clang-tidy cppcoreguidelines-macro-usage findings (macro functions)
  Fix clang-tidy cppcoreguidelines-macro-usage findings (macros as constants)
  script_opt: Add missing virtual destructor (cppcoreguidelines-virtual-class-destructor)
2025-06-04 09:38:38 -07:00
Tim Wojtulewicz
05aa4690ad Add some notes about missing/disabled cppcoreguildlines clang-tidy checkers 2025-06-04 09:24:05 -07:00
Tim Wojtulewicz
460fe24a9a Fix clang-tidy cppcoreguidelines-macro-usage findings (macro functions) 2025-06-04 09:24:05 -07:00
Tim Wojtulewicz
ad99a6821e Fix clang-tidy cppcoreguidelines-macro-usage findings (macros as constants) 2025-06-04 09:24:05 -07:00
Tim Wojtulewicz
d6d56d330b script_opt: Add missing virtual destructor (cppcoreguidelines-virtual-class-destructor) 2025-06-04 09:24:05 -07:00
Johanna Amann
c392cda11c Merge remote-tracking branch 'origin/topic/johanna/parallelize-coverage-bare-mode-errors'
* origin/topic/johanna/parallelize-coverage-bare-mode-errors:
  Parallelize coverage/bare-mode-errors
2025-06-04 15:56:37 +01:00
Evan Typanski
14fa756d31 Merge remote-tracking branch 'origin/topic/etyp/fix-reenable-analyzer-log'
* origin/topic/etyp/fix-reenable-analyzer-log:
  Fix Spicy re-enable builtin analyzer debug message
2025-06-04 08:40:27 -04:00
Johanna Amann
c51998361c Parallelize coverage/bare-mode-errors
Currently, coverage/bare-mode-errors is one of the slowest tests in the
entire test suite. This is caused by the fact that it has to repeatedly
launch Zeek for every script that we ship. This is done sequentially.

This commit changes this test to use xargs to spawn 20 parallell
processes.
2025-06-04 13:18:05 +01:00
Johanna Amann
9466b10387 NEWS entries for analyzer log changes 2025-06-04 12:16:09 +01:00
Johanna Amann
f02e817aea Move detect-protocol from frameworks/dpd to frameworks/analyzer
detect-protocol.zeek was the last non-deprecated script left in
policy/frameworks/dpd. It was moved to policy/frameworks/analyzer. A
script that loads the script from the new location with a deprecation
warning was added.
2025-06-04 12:16:09 +01:00
Johanna Amann
58613f0313 Introduce new c$failed_analyzers field
This field is used internally to trace which analyzers already had a
violation. This is mostly used to prevent duplicate logging.

In the past, c$service_violation was used for a similar purpose -
however it has slightly different semantics. Where c$failed_analyzers
tracks analyzers that were removed due to a violation,
c$service_violation tracks violations - and doesn't care if an analyzer
was actually removed due to it.
2025-06-04 12:07:13 +01:00
zeek-bot
fd98958b92 Update doc submodule [nomail] [skip ci] 2025-06-04 00:23:30 +00:00
Tim Wojtulewicz
0ef2710ca1 Add a missing #include needed by ZeekString on Windows 2025-06-03 15:19:22 -07:00
Tim Wojtulewicz
38ec080196 Update redis btest baselines 2025-06-03 13:37:03 -07:00
Tim Wojtulewicz
3ae9d8ba90 Merge remote-tracking branch 'origin/topic/timw/4350-redis-passwords'
* origin/topic/timw/4350-redis-passwords:
  Redis: Add support for sending AUTH commands during connection
  Redis: disconnect cleanly if INFO request fails
  Fix segfault if storage sync open_backend returns bad code
  Add ToStdString and ToStdStringView to ZeekString
2025-06-03 11:54:23 -07:00
Tim Wojtulewicz
f2aca331ec Redis: Add support for sending AUTH commands during connection 2025-06-03 11:38:38 -07:00
Tim Wojtulewicz
9f12208f57 Redis: disconnect cleanly if INFO request fails 2025-06-03 11:38:38 -07:00
Tim Wojtulewicz
0d18ce4e13 Fix segfault if storage sync open_backend returns bad code 2025-06-03 11:38:38 -07:00
Tim Wojtulewicz
d570486f36 Add ToStdString and ToStdStringView to ZeekString 2025-06-03 11:38:38 -07:00
Johanna Amann
42ba2fcca0 Settle on analyzer.log for the dpd.log replacement
This commit renames analyzer-failed.log to analyzer.log, and updates the
respective news entry.
2025-06-03 17:33:36 +01:00
Johanna Amann
130c89a0a7 dpd->analyzer.log change - rename files
To address review feedback in GH-4362: rename analyzer-failed-log.zeek
to loggig.zeek, analyzer-debug-log.zeek to debug-logging.zeek and
dpd-log.zeek to deprecated-dpd-log.zeek.

Includes respective test, NEWS, etc updates.
2025-06-03 16:32:52 +01:00
Evan Typanski
23b244367b Fix Spicy re-enable builtin analyzer debug message 2025-06-03 11:02:30 -04:00
Johanna Amann
af77a7a83b Analyzer failure logging: tweaks and test fixes
The main part of this commit are changes in tests. A lot of the tests
that previously relied on analyzer.log or dpd.log now use the new
analyzer-failed.log.

I verified all the changes and, as far as I can tell, everything
behaves as it should. This includes the external test baselines.

This change also enables logging of file and packet analyzer to
analyzer_failed.log and fixes some small behavior issues.

The analyzer_failed event is no longer raised when the removal of an
analyzer is vetoed.

If an analyzer is no longer active when an analyzer violation is raised,
currently the analyzer_failed event is raised. This can, e.g., happen
when an analyzer error happens at the very end of the connection. This
makes the behavior more similar to what happened in the past, and also
intuitively seems to make sense.

A bug introduced in the failed service logging was fixed.
2025-06-03 15:56:42 +01:00
Johanna Amann
8c814fa88c Introduce analyzer-failed.log, as a replacement for dpd.log
Analyzer-failed.log is, essentially, the replacement for dpd.log. The
name should make more sense, as it does now log analyzer failures. For
protocol analyzers specifically, these are failures that lead to the
analyzer being disabled.
2025-06-03 15:17:26 +01:00
Johanna Amann
c55e21da71 Rename analyzer.log to analyzer.debug log; move to policy
The current analyzer.log is more useful for debugging than for
operational purposes. Hence this is disabled by default, moved to a
policy script, and the log is renamed to analyzer-debug.log.

Furthermore, logging of analyzer confirmations and disabling analyzers
are now enabled by default.
2025-06-03 15:17:26 +01:00
Johanna Amann
6183c5086b Move dpd.log to policy script
This is the first phase of moving from the current dpd log to a more
modern logfile, without some of the weirdnesses that the current dpd log
contains.

Tests will not pass in the current state; this is just splitting out
functionality.
2025-06-03 15:17:26 +01:00
zeek-bot
f96ce6727f Update doc submodule [nomail] [skip ci] 2025-06-03 00:29:11 +00:00
Tim Wojtulewicz
f76a2437cd Merge remote-tracking branch 'origin/topic/timw/update-windows-ci'
* origin/topic/timw/update-windows-ci:
  Update libunistd submodule [nomail]
  Update Windows CI image to Visual Studio 2022
2025-06-02 14:53:01 -07:00
Tim Wojtulewicz
cd2514f9de Update libunistd submodule [nomail] 2025-06-02 14:52:05 -07:00
Tim Wojtulewicz
295efa7e83 Update Windows CI image to Visual Studio 2022 2025-06-02 14:52:05 -07:00
Tim Wojtulewicz
237c7da47a Merge remote-tracking branch 'origin/topic/timw/bump-opensuse-tumbleweed-docker-image'
* origin/topic/timw/bump-opensuse-tumbleweed-docker-image:
  CI: Force rebuild of opensuse tumbleweed docker image
2025-06-02 14:31:39 -07:00
Tim Wojtulewicz
aea614be56 Merge remote-tracking branch 'origin/topic/robin/gh-4501-eod-abort'
* origin/topic/robin/gh-4501-eod-abort:
  Bump Spicy to pull in fix.
2025-06-02 14:30:51 -07:00
Tim Wojtulewicz
d0f82d8e15 Merge remote-tracking branch 'origin/topic/awelzel/bump-zeekjs-0-17-1'
* origin/topic/awelzel/bump-zeekjs-0-17-1:
  Bump zeekjs to v0.17.1
2025-06-02 11:45:15 -07:00
Tim Wojtulewicz
f2b6fbe1a4 Merge remote-tracking branch 'origin/topic/bbannier/comment-fix'
* origin/topic/bbannier/comment-fix:
  Fix incorrectly copied comment [skip CI]
2025-06-02 11:44:05 -07:00
Tim Wojtulewicz
44a95a61b8 CI: Force rebuild of opensuse tumbleweed docker image
Something is off with the libhiredis package that's installed
as part of the current image, and 'zypper patch' is failing to
update it during the prepare step. Force a rebuild so the
updated package is part of the image to start with.
2025-06-02 10:40:39 -07:00
Arne Welzel
4d03f21031 Bump zeekjs to v0.17.1
b340648 version: 0.17.1
    ccd32e1 ci/docker: Use Fedora 42, retire Fedora 40
    6893431 Nodejs: Use argv.data() over &argv[0]
2025-06-02 19:05:18 +02:00
Arne Welzel
0a34b39e7a Merge remote-tracking branch 'origin/topic/awelzel/4177-4178-custom-event-metadata-part-2'
* origin/topic/awelzel/4177-4178-custom-event-metadata-part-2:
  Event: Bail on add_missing_remote_network_timestamp without add_network_timestamp
  btest/plugin: Test custom metadata publish
  NEWS: Add note about generic event metadata
  cluster: Remove deprecated Event constructor
  cluster: Remove some explicit timestamp handling
  broker/Manager: Fetch and forward all metadata from events
  Event/init-bare: Add add_missing_remote_network_timestamp logic
  cluster/Backend/DoProcessEvent: Use generic metadata, not just timestamps
  cluster/Event: Support moving args and metadata from event
  cluster/serializer/broker: Support generic metadata
  cluster/Event: Generic metadata support
  Event: Use -1.0 for undefined/unset timestamps
  cluster: Use shorter obj_desc versions
  Desc: Add obj_desc() / obj_desc_short() overloads for IntrusivePtr
2025-06-02 17:33:22 +02:00
Arne Welzel
8fc86bb4b6 Event: Bail on add_missing_remote_network_timestamp without add_network_timestamp 2025-06-02 17:31:36 +02:00
Arne Welzel
0ab53c75cd btest/plugin: Test custom metadata publish
Usage demo for plugin writers to add custom event metadata and access in
in Zeek scripts.
2025-06-02 17:31:36 +02:00
Arne Welzel
7db03a8c77 NEWS: Add note about generic event metadata 2025-06-02 17:31:36 +02:00
Arne Welzel
8e87dcbdb2 cluster: Remove deprecated Event constructor
It is now unused, ditch it. This wasn't available in an LTS release yet
and anyhow is in the detail namespace.
2025-06-02 17:31:36 +02:00
Arne Welzel
e3a83addce cluster: Remove some explicit timestamp handling
Backend::MakeClusterEvent() for now is the only place to add implicit
network timestamp metadata within the cluster component.
2025-06-02 17:31:36 +02:00
Arne Welzel
e1f70164e0 broker/Manager: Fetch and forward all metadata from events
Also use the generic metadata version for publishing, keep the
ts-based API for now, but only add timestamps when
EventMetadata::add_network_timestamp is T. I'm not sure what the
right way forward here is, maybe deprecating Broker's publish event
variations and funneling through cluster.
2025-06-02 17:31:36 +02:00
Arne Welzel
96f2d5d369 Event/init-bare: Add add_missing_remote_network_timestamp logic
Make defaulting to the local network timestamp for remote events opt-in.
2025-06-02 17:31:36 +02:00
Arne Welzel
b87109fcf1 cluster/Backend/DoProcessEvent: Use generic metadata, not just timestamps 2025-06-02 17:31:36 +02:00
Arne Welzel
4996ba88fb cluster/Event: Support moving args and metadata from event 2025-06-02 17:31:36 +02:00
Arne Welzel
46d4b5825b cluster/serializer/broker: Support generic metadata
Instead of handling just the network timestamp, support extraction of
the whole metadata vector that broker events hold.
2025-06-02 17:31:36 +02:00