app-layer: AppLayerParserFPtr uses a mut pointer to local storage

So, fix the fn prototype in rust ParseFn
This commit is contained in:
Philippe Antoine
2026-01-16 21:07:38 +00:00
committed by Victor Julien
parent f470ee448b
commit c960b7d7c1
29 changed files with 67 additions and 67 deletions
@@ -38,7 +38,7 @@ In Rust, the callbacks are similar.
_pstate: *mut AppLayerParserState,
input: *const u8,
input_len: u32,
_data: *const std::os::raw::c_void,
_data: *mut std::os::raw::c_void,
_flags: u8)
-> AppLayerResult
+2 -2
View File
@@ -300,7 +300,7 @@ unsafe extern "C" fn template_state_tx_free(state: *mut c_void, tx_id: u64) {
unsafe extern "C" fn template_parse_request(
_flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0;
@@ -324,7 +324,7 @@ unsafe extern "C" fn template_parse_request(
unsafe extern "C" fn template_parse_response(
_flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let _eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0;
let state = cast_pointer!(state, TemplateState);
+1 -1
View File
@@ -495,7 +495,7 @@ pub type ParseFn = unsafe extern "C" fn (flow: *mut Flow,
state: *mut c_void,
pstate: *mut AppLayerParserState,
stream_slice: StreamSlice,
data: *const c_void) -> AppLayerResult;
data: *mut c_void) -> AppLayerResult;
pub type ProbeFn = unsafe extern "C" fn (flow: *const Flow, flags: u8, input:*const u8, input_len: u32, rdir: *mut u8) -> AppProto;
pub type StateAllocFn = unsafe extern "C" fn (*mut c_void, AppProto) -> *mut c_void;
pub type StateFreeFn = unsafe extern "C" fn (*mut c_void);
+2 -2
View File
@@ -289,7 +289,7 @@ unsafe extern "C" fn template_state_tx_free(state: *mut c_void, tx_id: u64) {
unsafe extern "C" fn template_parse_request(
_flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0;
@@ -313,7 +313,7 @@ unsafe extern "C" fn template_parse_request(
unsafe extern "C" fn template_parse_response(
_flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let _eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0;
let state = cast_pointer!(state, TemplateState);
+3 -3
View File
@@ -149,7 +149,7 @@ unsafe extern "C" fn state_tx_free(state: *mut std::os::raw::c_void, tx_id: u64)
unsafe extern "C" fn parse_ts(
_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
return parse(
_flow,
@@ -163,7 +163,7 @@ unsafe extern "C" fn parse_ts(
unsafe extern "C" fn parse_tc(
_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
return parse(
_flow,
@@ -177,7 +177,7 @@ unsafe extern "C" fn parse_tc(
unsafe extern "C" fn parse(
_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void, direction: Direction,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void, direction: Direction,
) -> AppLayerResult {
let state = cast_pointer!(state, BitTorrentDHTState);
let buf = stream_slice.as_slice();
+2 -2
View File
@@ -945,7 +945,7 @@ fn evaluate_stub_params(
unsafe extern "C" fn parse_request(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice,
_data: *const std::os::raw::c_void,
_data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, DCERPCState);
let flags = stream_slice.flags();
@@ -969,7 +969,7 @@ unsafe extern "C" fn parse_request(
unsafe extern "C" fn parse_response(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice,
_data: *const std::os::raw::c_void,
_data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, DCERPCState);
let flags = stream_slice.flags();
+1 -1
View File
@@ -248,7 +248,7 @@ impl DCERPCUDPState {
unsafe extern "C" fn parse(
_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice,
_data: *const std::os::raw::c_void,
_data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, DCERPCUDPState);
if !stream_slice.is_gap() {
+1 -1
View File
@@ -228,7 +228,7 @@ unsafe extern "C" fn dhcp_state_get_tx_count(state: *mut std::os::raw::c_void) -
unsafe extern "C" fn dhcp_parse(
_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, DHCPState);
if state.parse(stream_slice.as_slice()) {
+4 -4
View File
@@ -938,7 +938,7 @@ pub(crate) unsafe extern "C" fn state_tx_free(state: *mut std::os::raw::c_void,
/// C binding parse a DNS request. Returns 1 on success, -1 on failure.
pub(crate) unsafe extern "C" fn parse_request(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, DNSState);
state.parse_request_udp(flow, stream_slice);
@@ -947,7 +947,7 @@ pub(crate) unsafe extern "C" fn parse_request(
unsafe extern "C" fn parse_response(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, DNSState);
state.parse_response_udp(flow, stream_slice);
@@ -957,7 +957,7 @@ unsafe extern "C" fn parse_response(
/// C binding parse a DNS request. Returns 1 on success, -1 on failure.
unsafe extern "C" fn parse_request_tcp(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, DNSState);
if stream_slice.is_gap() {
@@ -970,7 +970,7 @@ unsafe extern "C" fn parse_request_tcp(
unsafe extern "C" fn parse_response_tcp(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, DNSState);
if stream_slice.is_gap() {
+4 -4
View File
@@ -498,7 +498,7 @@ unsafe extern "C" fn enip_state_tx_free(state: *mut c_void, tx_id: u64) {
unsafe extern "C" fn enip_parse_request_udp(
flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, EnipState);
state.parse_udp(stream_slice, true, flow)
@@ -506,7 +506,7 @@ unsafe extern "C" fn enip_parse_request_udp(
unsafe extern "C" fn enip_parse_response_udp(
flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, EnipState);
state.parse_udp(stream_slice, false, flow)
@@ -514,7 +514,7 @@ unsafe extern "C" fn enip_parse_response_udp(
unsafe extern "C" fn enip_parse_request_tcp(
flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0;
if eof {
@@ -533,7 +533,7 @@ unsafe extern "C" fn enip_parse_request_tcp(
unsafe extern "C" fn enip_parse_response_tcp(
flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0;
if eof {
+2 -2
View File
@@ -1463,7 +1463,7 @@ unsafe extern "C" fn http2_state_tx_free(state: *mut std::os::raw::c_void, tx_id
unsafe extern "C" fn http2_parse_ts(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, HTTP2State);
return state.parse_ts(flow, stream_slice);
@@ -1471,7 +1471,7 @@ unsafe extern "C" fn http2_parse_ts(
unsafe extern "C" fn http2_parse_tc(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, HTTP2State);
return state.parse_tc(flow, stream_slice);
+2 -2
View File
@@ -321,7 +321,7 @@ unsafe extern "C" fn ike_state_tx_free(state: *mut std::os::raw::c_void, tx_id:
unsafe extern "C" fn ike_parse_request(
_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, IKEState);
return state.handle_input(stream_slice.as_slice(), Direction::ToServer);
@@ -329,7 +329,7 @@ unsafe extern "C" fn ike_parse_request(
unsafe extern "C" fn ike_parse_response(
_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, IKEState);
return state.handle_input(stream_slice.as_slice(), Direction::ToClient);
+4 -4
View File
@@ -453,7 +453,7 @@ unsafe extern "C" fn krb5_probing_parser_tcp(
unsafe extern "C" fn krb5_parse_request(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let buf = stream_slice.as_slice();
let state = cast_pointer!(state, KRB5State);
@@ -465,7 +465,7 @@ unsafe extern "C" fn krb5_parse_request(
unsafe extern "C" fn krb5_parse_response(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let buf = stream_slice.as_slice();
let state = cast_pointer!(state, KRB5State);
@@ -477,7 +477,7 @@ unsafe extern "C" fn krb5_parse_response(
unsafe extern "C" fn krb5_parse_request_tcp(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, KRB5State);
let buf = stream_slice.as_slice();
@@ -535,7 +535,7 @@ unsafe extern "C" fn krb5_parse_request_tcp(
unsafe extern "C" fn krb5_parse_response_tcp(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, KRB5State);
let buf = stream_slice.as_slice();
+4 -4
View File
@@ -579,7 +579,7 @@ unsafe extern "C" fn ldap_state_tx_free(state: *mut c_void, tx_id: u64) {
unsafe extern "C" fn ldap_parse_request(
flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
if stream_slice.is_empty() {
if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0 {
@@ -600,7 +600,7 @@ unsafe extern "C" fn ldap_parse_request(
unsafe extern "C" fn ldap_parse_response(
flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
if stream_slice.is_empty() {
if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0 {
@@ -620,7 +620,7 @@ unsafe extern "C" fn ldap_parse_response(
unsafe extern "C" fn ldap_parse_request_udp(
flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, LdapState);
state.parse_request_udp(flow, stream_slice)
@@ -628,7 +628,7 @@ unsafe extern "C" fn ldap_parse_request_udp(
unsafe extern "C" fn ldap_parse_response_udp(
flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, LdapState);
state.parse_response_udp(flow, stream_slice)
+2 -2
View File
@@ -341,7 +341,7 @@ unsafe extern "C" fn modbus_state_tx_free(state: *mut std::os::raw::c_void, tx_i
unsafe extern "C" fn modbus_parse_request(
flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let buf = stream_slice.as_slice();
if buf.is_empty() {
@@ -358,7 +358,7 @@ unsafe extern "C" fn modbus_parse_request(
unsafe extern "C" fn modbus_parse_response(
flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let buf = stream_slice.as_slice();
if buf.is_empty() {
+2 -2
View File
@@ -683,7 +683,7 @@ unsafe extern "C" fn mqtt_state_tx_free(state: *mut std::os::raw::c_void, tx_id:
unsafe extern "C" fn mqtt_parse_request(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, MQTTState);
return state.parse_request(flow, stream_slice);
@@ -691,7 +691,7 @@ unsafe extern "C" fn mqtt_parse_request(
unsafe extern "C" fn mqtt_parse_response(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, MQTTState);
return state.parse_response(flow, stream_slice);
+4 -4
View File
@@ -1940,7 +1940,7 @@ extern "C" fn nfs_state_free(state: *mut std::os::raw::c_void) {
/// C binding parse a NFS TCP request. Returns 1 on success, -1 on failure.
unsafe extern "C" fn nfs_parse_request(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, NFSState);
let flow = cast_pointer!(flow, Flow);
@@ -1960,7 +1960,7 @@ extern "C" fn nfs_parse_request_tcp_gap(state: &mut NFSState, input_len: u32) ->
unsafe extern "C" fn nfs_parse_response(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, NFSState);
let flow = cast_pointer!(flow, Flow);
@@ -1981,7 +1981,7 @@ extern "C" fn nfs_parse_response_tcp_gap(state: &mut NFSState, input_len: u32) -
/// C binding to parse an NFS/UDP request. Returns 1 on success, -1 on failure.
unsafe extern "C" fn nfs_parse_request_udp(
f: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, NFSState);
@@ -1991,7 +1991,7 @@ unsafe extern "C" fn nfs_parse_request_udp(
unsafe extern "C" fn nfs_parse_response_udp(
f: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, NFSState);
SCLogDebug!("parsing {} bytes of response data", stream_slice.len());
+2 -2
View File
@@ -181,7 +181,7 @@ extern "C" fn ntp_state_free(state: *mut std::os::raw::c_void) {
unsafe extern "C" fn ntp_parse_request(
_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, NTPState);
if state.parse(stream_slice.as_slice(), Direction::ToServer) < 0 {
@@ -192,7 +192,7 @@ unsafe extern "C" fn ntp_parse_request(
unsafe extern "C" fn ntp_parse_response(
_flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, NTPState);
if state.parse(stream_slice.as_slice(), Direction::ToClient) < 0 {
+2 -2
View File
@@ -838,7 +838,7 @@ unsafe extern "C" fn state_tx_free(state: *mut std::os::raw::c_void, tx_id: u64)
unsafe extern "C" fn parse_request(
flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
if stream_slice.is_empty() {
if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0 {
@@ -861,7 +861,7 @@ unsafe extern "C" fn parse_request(
unsafe extern "C" fn parse_response(
flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
if stream_slice.is_empty() {
if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0 {
+2 -2
View File
@@ -670,7 +670,7 @@ unsafe extern "C" fn pop3_state_tx_free(state: *mut c_void, tx_id: u64) {
unsafe extern "C" fn pop3_parse_request(
flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0;
@@ -694,7 +694,7 @@ unsafe extern "C" fn pop3_parse_request(
unsafe extern "C" fn pop3_parse_response(
flow: *mut Flow, state: *mut c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let _eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0;
let state = cast_pointer!(state, POP3State);
+2 -2
View File
@@ -476,7 +476,7 @@ unsafe extern "C" fn quic_probing_parser(
unsafe extern "C" fn quic_parse_tc(
_flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, QuicState);
let buf = stream_slice.as_slice();
@@ -490,7 +490,7 @@ unsafe extern "C" fn quic_parse_tc(
unsafe extern "C" fn quic_parse_ts(
_flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, QuicState);
let buf = stream_slice.as_slice();
+2 -2
View File
@@ -464,7 +464,7 @@ fn probe_tls_handshake(input: &[u8]) -> bool {
unsafe extern "C" fn rdp_parse_ts(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, RdpState);
let buf = stream_slice.as_slice();
@@ -474,7 +474,7 @@ unsafe extern "C" fn rdp_parse_ts(
unsafe extern "C" fn rdp_parse_tc(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, RdpState);
let buf = stream_slice.as_slice();
+2 -2
View File
@@ -833,7 +833,7 @@ unsafe extern "C" fn rfb_state_tx_free(state: *mut std::os::raw::c_void, tx_id:
unsafe extern "C" fn rfb_parse_request(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, RFBState);
return state.parse_request(flow, stream_slice);
@@ -841,7 +841,7 @@ unsafe extern "C" fn rfb_parse_request(
unsafe extern "C" fn rfb_parse_response(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, RFBState);
return state.parse_response(flow, stream_slice);
+4 -4
View File
@@ -450,7 +450,7 @@ pub static mut ALPROTO_SIP: AppProto = ALPROTO_UNKNOWN;
unsafe extern "C" fn sip_parse_request(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, SIPState);
state.parse_request(flow, stream_slice).into()
@@ -458,7 +458,7 @@ unsafe extern "C" fn sip_parse_request(
unsafe extern "C" fn sip_parse_request_tcp(
flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
if stream_slice.is_empty() {
if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0 {
@@ -474,7 +474,7 @@ unsafe extern "C" fn sip_parse_request_tcp(
unsafe extern "C" fn sip_parse_response(
flow: *mut Flow, state: *mut std::os::raw::c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, SIPState);
state.parse_response(flow, stream_slice).into()
@@ -482,7 +482,7 @@ unsafe extern "C" fn sip_parse_response(
unsafe extern "C" fn sip_parse_response_tcp(
flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
if stream_slice.is_empty() {
if SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0 {
+2 -2
View File
@@ -2019,7 +2019,7 @@ unsafe extern "C" fn smb_parse_request_tcp(flow: *mut Flow,
state: *mut ffi::c_void,
_pstate: *mut AppLayerParserState,
stream_slice: StreamSlice,
_data: *const std::os::raw::c_void,
_data: *mut std::os::raw::c_void,
)
-> AppLayerResult
{
@@ -2054,7 +2054,7 @@ unsafe extern "C" fn smb_parse_response_tcp(flow: *mut Flow,
state: *mut ffi::c_void,
_pstate: *mut AppLayerParserState,
stream_slice: StreamSlice,
_data: *const ffi::c_void,
_data: *mut ffi::c_void,
)
-> AppLayerResult
{
+2 -2
View File
@@ -290,7 +290,7 @@ unsafe extern "C" fn snmp_parse_request(_flow: *mut Flow,
state: *mut std::os::raw::c_void,
_pstate: *mut AppLayerParserState,
stream_slice: StreamSlice,
_data: *const std::os::raw::c_void,
_data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state,SNMPState);
state.parse(stream_slice.as_slice(), Direction::ToServer).into()
@@ -300,7 +300,7 @@ unsafe extern "C" fn snmp_parse_response(_flow: *mut Flow,
state: *mut std::os::raw::c_void,
_pstate: *mut AppLayerParserState,
stream_slice: StreamSlice,
_data: *const std::os::raw::c_void,
_data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = cast_pointer!(state,SNMPState);
state.parse(stream_slice.as_slice(), Direction::ToClient).into()
+2 -2
View File
@@ -453,7 +453,7 @@ extern "C" fn ssh_state_tx_free(_state: *mut std::os::raw::c_void, _tx_id: u64)
unsafe extern "C" fn ssh_parse_request(
flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = &mut cast_pointer!(state, SSHState);
let buf = stream_slice.as_slice();
@@ -468,7 +468,7 @@ unsafe extern "C" fn ssh_parse_request(
unsafe extern "C" fn ssh_parse_response(
flow: *mut Flow, state: *mut std::os::raw::c_void, pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
stream_slice: StreamSlice, _data: *mut std::os::raw::c_void,
) -> AppLayerResult {
let state = &mut cast_pointer!(state, SSHState);
let buf = stream_slice.as_slice();
+2 -2
View File
@@ -422,7 +422,7 @@ unsafe extern "C" fn telnet_parse_request(
state: *mut std::os::raw::c_void,
pstate: *mut AppLayerParserState,
stream_slice: StreamSlice,
_data: *const std::os::raw::c_void
_data: *mut std::os::raw::c_void
) -> AppLayerResult {
let eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS) > 0;
@@ -449,7 +449,7 @@ unsafe extern "C" fn telnet_parse_response(
state: *mut std::os::raw::c_void,
pstate: *mut AppLayerParserState,
stream_slice: StreamSlice,
_data: *const std::os::raw::c_void
_data: *mut std::os::raw::c_void
) -> AppLayerResult {
let _eof = SCAppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC) > 0;
let state = cast_pointer!(state, TelnetState);
+2 -2
View File
@@ -348,7 +348,7 @@ unsafe extern "C" fn websocket_state_tx_free(state: *mut c_void, tx_id: u64) {
unsafe extern "C" fn websocket_parse_request(
flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, WebSocketState);
state.parse(stream_slice, Direction::ToServer, flow)
@@ -356,7 +356,7 @@ unsafe extern "C" fn websocket_parse_request(
unsafe extern "C" fn websocket_parse_response(
flow: *mut Flow, state: *mut c_void, _pstate: *mut AppLayerParserState,
stream_slice: StreamSlice, _data: *const c_void,
stream_slice: StreamSlice, _data: *mut c_void,
) -> AppLayerResult {
let state = cast_pointer!(state, WebSocketState);
state.parse(stream_slice, Direction::ToClient, flow)