#[no_mangle]
pub extern "C" fn rs_dcerpc_udp_parse(
- _flow: *mut core::Flow, state: &mut DCERPCUDPState, _pstate: *mut std::os::raw::c_void,
- input: *const u8, input_len: u32, _data: *mut std::os::raw::c_void, _flags: u8,
+ _flow: *const core::Flow, state: *mut std::os::raw::c_void, _pstate: *mut std::os::raw::c_void,
+ input: *const u8, input_len: u32, _data: *const std::os::raw::c_void, _flags: u8,
) -> AppLayerResult {
+ let state = cast_pointer!(state, DCERPCUDPState);
if input_len > 0 && input != std::ptr::null_mut() {
let buf = build_slice!(input, input_len as usize);
return state.handle_input_data(buf);
}
#[no_mangle]
-pub unsafe extern "C" fn rs_dcerpc_udp_state_new(_orig_state: *mut std::os::raw::c_void, _orig_proto: core::AppProto) -> *mut std::os::raw::c_void {
+pub extern "C" fn rs_dcerpc_udp_state_new(_orig_state: *mut std::os::raw::c_void, _orig_proto: core::AppProto) -> *mut std::os::raw::c_void {
let state = DCERPCUDPState::new();
let boxed = Box::new(state);
- transmute(boxed)
+ return unsafe { transmute(boxed) };
}
#[no_mangle]
#[no_mangle]
pub extern "C" fn rs_dcerpc_udp_set_tx_detect_state(
- vtx: *mut std::os::raw::c_void, de_state: *mut core::DetectEngineState,
-) -> u8 {
+ vtx: *mut std::os::raw::c_void, de_state: &mut core::DetectEngineState,
+) -> std::os::raw::c_int {
let dce_state = cast_pointer!(vtx, DCERPCTransaction);
dce_state.de_state = Some(de_state);
0
#[no_mangle]
pub extern "C" fn rs_dcerpc_udp_get_tx(
state: *mut std::os::raw::c_void, tx_id: u64,
-) -> *mut DCERPCTransaction {
+) -> *mut std::os::raw::c_void {
let dce_state = cast_pointer!(state, DCERPCUDPState);
match dce_state.get_tx(tx_id) {
Some(tx) => {
- return unsafe{&mut *(tx as *mut DCERPCTransaction)};
+ return unsafe{ transmute(tx) };
},
None => {
return std::ptr::null_mut();
return 1;
}
return 0;
-
}