Jason Ish
546209ff12
bindgen: fix include ordering
...
At some point, bindgen include ordering changed such that
AppLayerGetFileState was being bindgen'd as opaque, as the definition of
StreamBufferingConfig was not available when bindgen hit
AppLayerGetFileState, and bindgen processes in order.
Move the util includes before the app-layer includes to fix the ordering
problem, but still keep util includes grouped.
The sys diff is large as many things have been re-ordered.
2026-06-05 12:38:58 +00:00
Giuseppe Longo
13df0f7a06
llmnr: implement parser
...
This adds a parser for LLMNR protocol over both UDP and TCP.
The parser reuses the existing DNS functions since LLMNR shares
the same wire format as DNS, but implements its own protocol-specific
validation:
- LLMNR-specific flag checks (C, TC, T bits)
- Opcode validation (only standard query opcode 0 is valid)
- An Event is set if Z-flag is set, since it's must be zero per RFC4795
LLMNR transactions inherit DNS behavior where each packet creates a new state
with one transaction.
Ticket #8366
2026-06-02 06:26:10 +00:00
Jason Ish
9f40968bba
rust/ffi: bindgen thread storage
...
Ticket: #8445
2026-06-01 15:56:57 +00:00
Juliana Fajardini
372cb8c692
rust/sys: update bindgen SIGMATCH_ constants
...
Part of
Ticket #8551
2026-05-29 15:18:49 +00:00
Jason Ish
c689af0bbb
rust/ffi: bindgen thread lifecycle callbacks
...
Ticket: #8605
2026-05-28 20:49:56 +00:00
Philippe Antoine
4c42998feb
detect/engine: helper to know if a transform happens in-place
2026-05-18 07:41:33 +02:00
Jason Ish
d4dc8be3b2
rust: bindgen flow lifecycle callbacks
...
Ticket: #8446
2026-05-09 04:17:38 +00:00
Philippe Antoine
3d56472d16
detect: bindgen more functions
...
To prepare to move dcerpc.stub_data keyword to full rust
2026-04-28 12:18:44 +00:00
Philippe Antoine
a36af353bc
rust: bindgen SCFlowGetAppProtocol
2026-04-21 07:20:31 +00:00
Philippe Antoine
8f824458c2
detect: helper for buffer register requires progress
...
Ticket: 8395
For protocols where tx are complete at start, that is
the `tx_get_progress` function returns 1 inconditionnally,
we can use the progress 1, not losing time on detection in ips
mode, and getting ready for firewall mode
For the other protocols (where a tx needs both a request and response
for instance), keep progress 0 as was the case before
2026-04-16 05:58:16 +00:00
Philippe Antoine
d14af54b3b
detect/transforms: constify some callbacks arguments
...
Ticket: 8298
2026-04-08 20:44:47 +00:00
Philippe Antoine
4f4912c042
rust: bindgen SIGMATCH_ constants
2026-04-01 19:55:48 +00:00
Jason Ish
f6b11ac855
output-eve: finish exposing to bindgen
...
As all out output-eve.h is now exposed, merge output-eve.h and
output-eve-bindgen.h back into one file, output-eve.h.
2026-02-13 13:34:27 +00:00
Jason Ish
f79158ae55
rust/sys: generate jsonbuilder bindings in sys
...
Bindgen the Rust bindings to the C JsonBuilder API along with the rest
of the Rust bindings to C. Breaking it out was probably the wrong
idea.
This should make it easier, and more correct to bindgen C functions
that use SCJsonBuilder types.
2026-02-13 13:34:27 +00:00
Jason Ish
2d0bf9a2ed
output-eve: bindgen SCEveFileType callback types
2026-02-13 13:34:26 +00:00
Jason Ish
e9611a4d7c
output-eve: bindgen SCRegisterEveFileType to Rust
...
Used by Rust output plugins.
2026-02-13 13:34:26 +00:00
Jason Ish
1b182025bc
output-eve: expose SCEveFileType to Rust with bindgen
...
There is an unfortunate side-affect that one has to read
output-eve-bindgen.h for the documentation on this type, however, I
think we can resolve that in time.
2026-02-13 13:34:26 +00:00
Philippe Antoine
df495d7e22
rust: bindgen SCDetectGetLastSMFromLists
...
to use it from rust keywords
2026-02-13 13:34:25 +00:00
Victor Julien
a2e9ac21f8
flow: turn flags field into uint64_t
...
Entire space is used.
2026-02-12 14:10:51 +00:00
Jason Ish
c7f806a728
rust/sys: allow unknown lints
...
allow(unpredictable_function_pointer_comparisons) is needed on newer
versions of Rust, but is unknown to our MSRV, so for now, allow unknown
lints.
2026-02-09 05:41:18 +00:00
Philippe Antoine
364d2c077d
rust: bindgen SCAppLayerRegisterParser
...
Ticket: 7662
2026-02-05 21:11:16 +00:00
Philippe Antoine
8857b78f6a
rust: move AppLayerTxData definition to C
...
and bindgen it to rust
Will make easier the bindgen of RustParser structure which uses
a callback which uses AppLayerTxData
Move also the free function to C SCAppLayerTxDataCleanup
As suricata-sys crate defines AppLayerTxData for rust,
It must itself implement the Drop trait, and thus,
We need to define a feature surest
2026-02-05 21:11:16 +00:00
Philippe Antoine
8eaced3c1e
rust: move AppLayerResult definition to C
...
and bindgen it to rust
Will make easier the bindgen of RustParser structure which uses
a callback which uses AppLayerResult
Keep From<> impl in sys crate that defines it
2026-02-05 21:11:16 +00:00
Philippe Antoine
06f78b2a22
rust: move StreamSlice definition to C
...
and bindgen it to rust
Will make easier the bindgen of RustParser structure which uses
a callback which uses StreamSlice
2026-02-05 21:11:16 +00:00
Philippe Antoine
41f543ca35
rust: move AppLayerGetTxIterTuple definition to C
...
and bindgen it to rust
Will make easier the bindgen of RustParser structure which uses
a callback which uses AppLayerGetTxIterTuple
2026-02-05 21:11:16 +00:00
Philippe Antoine
64d29fcd1c
rust: move AppLayerStateData definition to C
...
and bindgen it to rust, and use default trait instead of new
Will make easier the bindgen of RustParser structure which uses
a callback which uses AppLayerStateData
2026-02-05 21:11:16 +00:00
Philippe Antoine
76efb8af4d
rust: move AppLayerGetFileState definition to C
...
and bindgen it to rust.
Will make easier the bindgen of RustParser structure which uses
a callback which uses AppLayerGetFileState
2026-02-05 21:11:16 +00:00
Philippe Antoine
fc23e54c6d
rust: bindgen with derive eq
...
As will be needed such as AppLayerTxData
2026-02-05 21:11:16 +00:00
Philippe Antoine
7dbe033ae0
app-layer: function to register ci pattern + probe
...
Ticket: 6591
2026-02-02 15:49:25 +00:00
Philippe Antoine
2cf9a327d5
detect/ssh: move ssh.hassh to rust
...
builds / Ubuntu 24.04 (RUSTC+CARGO vars) (push) Blocked by required conditions
builds / Ubuntu 24.04 (unittests coverage) (push) Blocked by required conditions
builds / Ubuntu 22.04 (unix socket mode coverage) (push) Blocked by required conditions
builds / Ubuntu 22.04 (afpacket and dpdk coverage) (push) Blocked by required conditions
builds / Ubuntu 24.04 (pcap unix socket ASAN) (push) Blocked by required conditions
builds / Ubuntu 24.04 (afpacket and dpdk live tests with ASAN) (push) Blocked by required conditions
builds / Ubuntu 22.04 (fuzz corpus coverage) (push) Blocked by required conditions
builds / Ubuntu 20.04 (-DNDEBUG) (push) Blocked by required conditions
builds / Ubuntu 20.04 (unsupported rust) (push) Blocked by required conditions
builds / Ubuntu 22.04 (Debug Validation) (push) Blocked by required conditions
builds / Ubuntu 22.04 (Fuzz) (push) Blocked by required conditions
builds / Ubuntu 22.04 (Netmap build) (push) Blocked by required conditions
builds / Ubuntu 22.04 (Minimal/Recommended Build) (push) Blocked by required conditions
builds / Ubuntu 22.04 (DPDK Build) (push) Blocked by required conditions
builds / Debian 12 (xdp) (push) Blocked by required conditions
builds / Debian 13 (xdp) (push) Blocked by required conditions
builds / Ubuntu 22.04 Dist Builder (push) Blocked by required conditions
builds / Debian 12 MSRV (push) Blocked by required conditions
builds / Debian 11 (push) Blocked by required conditions
builds / MacOS Latest (push) Blocked by required conditions
builds / Windows MSYS2 MINGW64 (NPcap) (push) Blocked by required conditions
builds / Windows MSYS2 MINGW64 (libpcap) (push) Blocked by required conditions
builds / Windows MSYS2 UCRT64 (libpcap) (push) Blocked by required conditions
builds / Windows MSYS2 MINGW64 (WinDivert) (push) Blocked by required conditions
builds / PF_RING (push) Blocked by required conditions
CodeQL (Rust/C) / Analyze (push) Waiting to run
Nix Env Build / tests (push) Waiting to run
Check Rust / Check Rust (push) Waiting to run
Scan-build / Scan-build (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
Introduces helper SCDetectRegisterBufferLowerMd5Callbacks
2026-01-29 03:45:00 +00:00
Philippe Antoine
83360cfce0
detect/ssh: move ssh.hassh string to rust
...
bindgen needed SCSigMatchSilentErrorEnabled on the way
2026-01-29 03:45:00 +00:00
Philippe Antoine
ea8ac2a02a
detect/ssh: move ssh.software to rust
...
Adds helper function SCDetectHelperBufferProgressMpmRegister on the way
2026-01-16 21:07:39 +00:00
Philippe Antoine
c0d6747e82
app-layer: GetTxIteratorFn uses a AppLayerGetTxIterState
...
Even if every current rust parser uses the u64 variant of the C union
2026-01-16 21:07:38 +00:00
Philippe Antoine
4b541b39f2
rust: move AppLayerEventType definition to C
...
and bindgen it to rust.
Will make easier the bindgen of RustParser structure which uses
a callback which uses AppLayerEventType
2026-01-16 21:07:38 +00:00
Lukas Sismis
3e4fdb2118
misc: time unit parsing function
2026-01-16 06:09:37 +00:00
Jason Ish
d89b35db56
conf: add SCConfNodeChildValueIsFalse to check for false value
...
New function to check is a value is actually set to a false value.
2025-12-17 09:48:14 -06:00
Jeff Lucovsky
9c81f817e8
rust: bindgen update
...
Issue: 7389
Update bindgen with `make update-bindgen`
2025-12-15 22:18:55 +00:00
Philippe Antoine
b4d8aea0ae
rust: bindgen SCAppLayerRegisterProtocolDetection
...
Ticket: 7662
Changing the struct passed to it to have the minimal number
of useful fields.
2025-12-11 04:30:43 +00:00
Philippe Antoine
1329786f84
detect: new command line option : list-rule-protos
...
To list the protocols we can use a in a rule header
Ticket: 635
2025-12-03 01:51:36 +00:00
Philippe Antoine
15b1bf4865
rust: bindgen SCHTPFileCloseHandleRange
...
builds / Fedora 42 (gcc, debug, flto, asan, wshadow, rust-strict) (push) Has been cancelled
builds / Fedora (non-root, debug, clang, asan, wshadow, rust-strict, no-ja) (push) Has been cancelled
builds / AlmaLinux 9 (no jansson) (push) Has been cancelled
builds / AlmaLinux 9 (Minimal/Recommended Build) (push) Has been cancelled
builds / Ubuntu 24.04 (cocci) (push) Has been cancelled
builds / Ubuntu 24.04 (RUSTC+CARGO vars) (push) Has been cancelled
builds / Ubuntu 24.04 (unittests coverage) (push) Has been cancelled
builds / Ubuntu 22.04 (unix socket mode coverage) (push) Has been cancelled
builds / Ubuntu 22.04 (afpacket and dpdk coverage) (push) Has been cancelled
builds / Ubuntu 24.04 (pcap unix socket ASAN) (push) Has been cancelled
builds / Ubuntu 24.04 (afpacket and dpdk live tests with ASAN) (push) Has been cancelled
builds / Ubuntu 22.04 (fuzz corpus coverage) (push) Has been cancelled
builds / Ubuntu 20.04 (-DNDEBUG) (push) Has been cancelled
builds / Ubuntu 20.04 (unsupported rust) (push) Has been cancelled
builds / Ubuntu 22.04 (Debug Validation) (push) Has been cancelled
builds / Ubuntu 22.04 (Fuzz) (push) Has been cancelled
builds / Ubuntu 22.04 (Netmap build) (push) Has been cancelled
builds / Ubuntu 22.04 (Minimal/Recommended Build) (push) Has been cancelled
builds / Ubuntu 22.04 (DPDK Build) (push) Has been cancelled
builds / Debian 12 (xdp) (push) Has been cancelled
builds / Debian 13 (xdp) (push) Has been cancelled
builds / Ubuntu 22.04 Dist Builder (push) Has been cancelled
builds / Debian 12 MSRV (push) Has been cancelled
builds / Debian 11 (push) Has been cancelled
builds / MacOS Latest (push) Has been cancelled
builds / Windows MSYS2 MINGW64 (NPcap) (push) Has been cancelled
builds / Windows MSYS2 MINGW64 (libpcap) (push) Has been cancelled
builds / Windows MSYS2 UCRT64 (libpcap) (push) Has been cancelled
builds / Windows MSYS2 MINGW64 (WinDivert) (push) Has been cancelled
builds / PF_RING (push) Has been cancelled
Ticket: 7762
2025-11-29 12:47:28 +00:00
Philippe Antoine
cddbd0b906
rust: bindgen more file functions
...
Ticket: 7762
2025-11-29 12:47:28 +00:00
Philippe Antoine
327b8b04a9
rust: bindgen with default derive
...
Ticket: 7762
2025-11-29 12:47:28 +00:00
Philippe Antoine
cba13ed9b1
rust: bindgen functions needed for datasets
...
Ticket: 7762
2025-11-13 18:51:26 +00:00
Philippe Antoine
12892ba010
rust: bindgen functions neede for features
...
Ticket: 7762
2025-11-13 18:51:26 +00:00
Li Heng
c141c55bc6
snmp: can be set to detection-only
...
Realloc alp_ctx.ctxs when a dynamic alproto is registered and
g_alproto_max increases. So dynamic alproto can be treated as
real/normal ones. And app-layer switch can be set to any value
of no/deteciton-only/yes.
Ticket: 8000
2025-11-04 06:19:29 +00:00
Philippe Antoine
439f96dea7
rust: bindgen frames functions
...
Ticket: 7667
2025-11-04 06:19:28 +00:00
Philippe Antoine
92c7be1cb6
rust: bindgen SCSRepCatGetByShortname
...
Ticket: 7667
2025-11-04 06:19:28 +00:00
Philippe Antoine
7447651fa0
output/jsonbuilder: helper function SCJbSetPrintAsciiString
...
To replace C PrintStringsToBuffer and avoid a stack alloc
+ copy
Ticket: 8004
2025-11-01 03:46:31 +00:00
Philippe Antoine
2e9027fd5a
plugins: update SC_API_VERSION to 9
...
So that plugins built for 8 will fail to load with 9 as there
were already breaking changes in the structures and functions
prototypes
2025-10-29 15:33:53 +00:00
Philippe Antoine
dc7874b2ac
rust: bindgen more http range functions used in http2
...
Ticket: 7667
2025-10-18 03:53:38 +02:00