|
|
|
@ -46,10 +46,9 @@ pub struct RFBTransaction {
|
|
|
|
pub tc_failure_reason: Option<parser::FailureReason>,
|
|
|
|
pub tc_failure_reason: Option<parser::FailureReason>,
|
|
|
|
pub tc_server_init: Option<parser::ServerInit>,
|
|
|
|
pub tc_server_init: Option<parser::ServerInit>,
|
|
|
|
|
|
|
|
|
|
|
|
logged: LoggerFlags,
|
|
|
|
|
|
|
|
de_state: Option<*mut core::DetectEngineState>,
|
|
|
|
de_state: Option<*mut core::DetectEngineState>,
|
|
|
|
events: *mut core::AppLayerDecoderEvents,
|
|
|
|
events: *mut core::AppLayerDecoderEvents,
|
|
|
|
detect_flags: applayer::TxDetectFlags,
|
|
|
|
tx_data: applayer::AppLayerTxData,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
impl RFBTransaction {
|
|
|
|
impl RFBTransaction {
|
|
|
|
@ -71,10 +70,9 @@ impl RFBTransaction {
|
|
|
|
tc_failure_reason: None,
|
|
|
|
tc_failure_reason: None,
|
|
|
|
tc_server_init: None,
|
|
|
|
tc_server_init: None,
|
|
|
|
|
|
|
|
|
|
|
|
logged: LoggerFlags::new(),
|
|
|
|
|
|
|
|
de_state: None,
|
|
|
|
de_state: None,
|
|
|
|
events: std::ptr::null_mut(),
|
|
|
|
events: std::ptr::null_mut(),
|
|
|
|
detect_flags: applayer::TxDetectFlags::default(),
|
|
|
|
tx_data: applayer::AppLayerTxData::new(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -616,25 +614,6 @@ pub extern "C" fn rs_rfb_tx_get_alstate_progress(
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#[no_mangle]
|
|
|
|
|
|
|
|
pub extern "C" fn rs_rfb_tx_get_logged(
|
|
|
|
|
|
|
|
_state: *mut std::os::raw::c_void,
|
|
|
|
|
|
|
|
tx: *mut std::os::raw::c_void,
|
|
|
|
|
|
|
|
) -> u32 {
|
|
|
|
|
|
|
|
let tx = cast_pointer!(tx, RFBTransaction);
|
|
|
|
|
|
|
|
return tx.logged.get();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[no_mangle]
|
|
|
|
|
|
|
|
pub extern "C" fn rs_rfb_tx_set_logged(
|
|
|
|
|
|
|
|
_state: *mut std::os::raw::c_void,
|
|
|
|
|
|
|
|
tx: *mut std::os::raw::c_void,
|
|
|
|
|
|
|
|
logged: u32,
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
let tx = cast_pointer!(tx, RFBTransaction);
|
|
|
|
|
|
|
|
tx.logged.set(logged);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[no_mangle]
|
|
|
|
#[no_mangle]
|
|
|
|
pub extern "C" fn rs_rfb_state_get_events(
|
|
|
|
pub extern "C" fn rs_rfb_state_get_events(
|
|
|
|
tx: *mut std::os::raw::c_void
|
|
|
|
tx: *mut std::os::raw::c_void
|
|
|
|
@ -688,8 +667,7 @@ pub extern "C" fn rs_rfb_state_get_tx_iterator(
|
|
|
|
// Parser name as a C style string.
|
|
|
|
// Parser name as a C style string.
|
|
|
|
const PARSER_NAME: &'static [u8] = b"rfb\0";
|
|
|
|
const PARSER_NAME: &'static [u8] = b"rfb\0";
|
|
|
|
|
|
|
|
|
|
|
|
export_tx_detect_flags_set!(rs_rfb_set_tx_detect_flags, RFBTransaction);
|
|
|
|
export_tx_data_get!(rs_rfb_get_tx_data, RFBTransaction);
|
|
|
|
export_tx_detect_flags_get!(rs_rfb_get_tx_detect_flags, RFBTransaction);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[no_mangle]
|
|
|
|
#[no_mangle]
|
|
|
|
pub unsafe extern "C" fn rs_rfb_register_parser() {
|
|
|
|
pub unsafe extern "C" fn rs_rfb_register_parser() {
|
|
|
|
@ -711,8 +689,8 @@ pub unsafe extern "C" fn rs_rfb_register_parser() {
|
|
|
|
get_tx: rs_rfb_state_get_tx,
|
|
|
|
get_tx: rs_rfb_state_get_tx,
|
|
|
|
tx_get_comp_st: rs_rfb_state_progress_completion_status,
|
|
|
|
tx_get_comp_st: rs_rfb_state_progress_completion_status,
|
|
|
|
tx_get_progress: rs_rfb_tx_get_alstate_progress,
|
|
|
|
tx_get_progress: rs_rfb_tx_get_alstate_progress,
|
|
|
|
get_tx_logged: Some(rs_rfb_tx_get_logged),
|
|
|
|
get_tx_logged: None,
|
|
|
|
set_tx_logged: Some(rs_rfb_tx_set_logged),
|
|
|
|
set_tx_logged: None,
|
|
|
|
get_de_state: rs_rfb_tx_get_detect_state,
|
|
|
|
get_de_state: rs_rfb_tx_get_detect_state,
|
|
|
|
set_de_state: rs_rfb_tx_set_detect_state,
|
|
|
|
set_de_state: rs_rfb_tx_set_detect_state,
|
|
|
|
get_events: Some(rs_rfb_state_get_events),
|
|
|
|
get_events: Some(rs_rfb_state_get_events),
|
|
|
|
@ -722,9 +700,9 @@ pub unsafe extern "C" fn rs_rfb_register_parser() {
|
|
|
|
localstorage_free: None,
|
|
|
|
localstorage_free: None,
|
|
|
|
get_files: None,
|
|
|
|
get_files: None,
|
|
|
|
get_tx_iterator: Some(rs_rfb_state_get_tx_iterator),
|
|
|
|
get_tx_iterator: Some(rs_rfb_state_get_tx_iterator),
|
|
|
|
get_tx_detect_flags: Some(rs_rfb_get_tx_detect_flags),
|
|
|
|
get_tx_detect_flags: None,
|
|
|
|
set_tx_detect_flags: Some(rs_rfb_set_tx_detect_flags),
|
|
|
|
set_tx_detect_flags: None,
|
|
|
|
get_tx_data: None,
|
|
|
|
get_tx_data: Some(rs_rfb_get_tx_data),
|
|
|
|
apply_tx_config: None,
|
|
|
|
apply_tx_config: None,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|