mirror of
https://github.com/OISF/suricata.git
synced 2026-10-12 02:07:10 +00:00
app-layer: AppLayerParserFPtr uses a mut pointer to local storage
So, fix the fn prototype in rust ParseFn
This commit is contained in:
committed by
Victor Julien
parent
f470ee448b
commit
c960b7d7c1
@@ -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
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
@@ -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() {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
@@ -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
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user