use core::{AppProto,Flow,ALPROTO_UNKNOWN,ALPROTO_FAILED,STREAM_TOSERVER,STREAM_TOCLIENT};
use applayer;
use parser::*;
-use libc;
use std;
use std::ffi::{CStr,CString};
use std::mem::transmute;
/// Returns *mut SNMPState
#[no_mangle]
-pub extern "C" fn rs_snmp_state_new() -> *mut libc::c_void {
+pub extern "C" fn rs_snmp_state_new() -> *mut std::os::raw::c_void {
let state = SNMPState::new();
let boxed = Box::new(state);
return unsafe{std::mem::transmute(boxed)};
/// Params:
/// - state: *mut SNMPState as void pointer
#[no_mangle]
-pub extern "C" fn rs_snmp_state_free(state: *mut libc::c_void) {
+pub extern "C" fn rs_snmp_state_free(state: *mut std::os::raw::c_void) {
// Just unbox...
let mut snmp_state: Box<SNMPState> = unsafe{std::mem::transmute(state)};
snmp_state.free();
#[no_mangle]
pub extern "C" fn rs_snmp_parse_request(_flow: *const core::Flow,
- state: *mut libc::c_void,
- _pstate: *mut libc::c_void,
+ state: *mut std::os::raw::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *const u8,
input_len: u32,
- _data: *const libc::c_void,
+ _data: *const std::os::raw::c_void,
_flags: u8) -> i32 {
let buf = build_slice!(input,input_len as usize);
let state = cast_pointer!(state,SNMPState);
#[no_mangle]
pub extern "C" fn rs_snmp_parse_response(_flow: *const core::Flow,
- state: *mut libc::c_void,
- _pstate: *mut libc::c_void,
+ state: *mut std::os::raw::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *const u8,
input_len: u32,
- _data: *const libc::c_void,
+ _data: *const std::os::raw::c_void,
_flags: u8) -> i32 {
let buf = build_slice!(input,input_len as usize);
let state = cast_pointer!(state,SNMPState);
}
#[no_mangle]
-pub extern "C" fn rs_snmp_state_get_tx(state: *mut libc::c_void,
+pub extern "C" fn rs_snmp_state_get_tx(state: *mut std::os::raw::c_void,
tx_id: u64)
- -> *mut libc::c_void
+ -> *mut std::os::raw::c_void
{
let state = cast_pointer!(state,SNMPState);
match state.get_tx_by_id(tx_id) {
}
#[no_mangle]
-pub extern "C" fn rs_snmp_state_get_tx_count(state: *mut libc::c_void)
+pub extern "C" fn rs_snmp_state_get_tx_count(state: *mut std::os::raw::c_void)
-> u64
{
let state = cast_pointer!(state,SNMPState);
}
#[no_mangle]
-pub extern "C" fn rs_snmp_state_tx_free(state: *mut libc::c_void,
+pub extern "C" fn rs_snmp_state_tx_free(state: *mut std::os::raw::c_void,
tx_id: u64)
{
let state = cast_pointer!(state,SNMPState);
#[no_mangle]
pub extern "C" fn rs_snmp_state_progress_completion_status(
_direction: u8)
- -> libc::c_int
+ -> std::os::raw::c_int
{
return 1;
}
#[no_mangle]
-pub extern "C" fn rs_snmp_tx_get_alstate_progress(_tx: *mut libc::c_void,
+pub extern "C" fn rs_snmp_tx_get_alstate_progress(_tx: *mut std::os::raw::c_void,
_direction: u8)
- -> libc::c_int
+ -> std::os::raw::c_int
{
1
}
#[no_mangle]
-pub extern "C" fn rs_snmp_tx_set_logged(_state: *mut libc::c_void,
- tx: *mut libc::c_void,
+pub extern "C" fn rs_snmp_tx_set_logged(_state: *mut std::os::raw::c_void,
+ tx: *mut std::os::raw::c_void,
logged: u32)
{
let tx = cast_pointer!(tx,SNMPTransaction);
}
#[no_mangle]
-pub extern "C" fn rs_snmp_tx_get_logged(_state: *mut libc::c_void,
- tx: *mut libc::c_void)
+pub extern "C" fn rs_snmp_tx_get_logged(_state: *mut std::os::raw::c_void,
+ tx: *mut std::os::raw::c_void)
-> u32
{
let tx = cast_pointer!(tx,SNMPTransaction);
#[no_mangle]
pub extern "C" fn rs_snmp_state_set_tx_detect_state(
- tx: *mut libc::c_void,
- de_state: &mut core::DetectEngineState) -> libc::c_int
+ tx: *mut std::os::raw::c_void,
+ de_state: &mut core::DetectEngineState) -> std::os::raw::c_int
{
let tx = cast_pointer!(tx,SNMPTransaction);
tx.de_state = Some(de_state);
#[no_mangle]
pub extern "C" fn rs_snmp_state_get_tx_detect_state(
- tx: *mut libc::c_void)
+ tx: *mut std::os::raw::c_void)
-> *mut core::DetectEngineState
{
let tx = cast_pointer!(tx,SNMPTransaction);
#[no_mangle]
-pub extern "C" fn rs_snmp_state_get_events(state: *mut libc::c_void,
- tx_id: u64)
- -> *mut core::AppLayerDecoderEvents
+pub extern "C" fn rs_snmp_state_get_events(tx: *mut std::os::raw::c_void)
+ -> *mut core::AppLayerDecoderEvents
{
- let state = cast_pointer!(state,SNMPState);
- match state.get_tx_by_id(tx_id) {
- Some(tx) => tx.events,
- _ => std::ptr::null_mut(),
- }
+ let tx = cast_pointer!(tx, SNMPTransaction);
+ return tx.events;
}
#[no_mangle]
-pub extern "C" fn rs_snmp_state_get_event_info(event_name: *const libc::c_char,
- event_id: *mut libc::c_int,
+pub extern "C" fn rs_snmp_state_get_event_info(event_name: *const std::os::raw::c_char,
+ event_id: *mut std::os::raw::c_int,
event_type: *mut core::AppLayerEventType)
- -> libc::c_int
+ -> std::os::raw::c_int
{
if event_name == std::ptr::null() { return -1; }
let c_event_name: &CStr = unsafe { CStr::from_ptr(event_name) };
};
unsafe{
*event_type = core::APP_LAYER_EVENT_TYPE_TRANSACTION;
- *event_id = event as libc::c_int;
+ *event_id = event as std::os::raw::c_int;
};
0
}
#[no_mangle]
pub extern "C" fn rs_snmp_get_tx_iterator(_ipproto: u8,
_alproto: AppProto,
- alstate: *mut libc::c_void,
+ alstate: *mut std::os::raw::c_void,
min_tx_id: u64,
_max_tx_id: u64,
istate: &mut u64) -> applayer::AppLayerGetTxIterTuple
pub unsafe extern "C" fn rs_register_snmp_parser() {
let default_port = CString::new("161").unwrap();
let mut parser = RustParser {
- name : PARSER_NAME.as_ptr() as *const libc::c_char,
+ name : PARSER_NAME.as_ptr() as *const std::os::raw::c_char,
default_port : default_port.as_ptr(),
ipproto : core::IPPROTO_UDP,
probe_ts : rs_snmp_probing_parser,