Use std::os::raw instead.
[dependencies]
nom = "4.2"
-libc = "^0.2.36"
crc = "1.8"
der-parser = "1.1"
kerberos-parser = "0.2"
"u32" :"uint32_t",
"u64" :"uint64_t",
- "libc::c_void": "void",
+ "std::os::raw::c_void": "void",
"c_void": "void",
- "libc::c_char": "char",
- "libc::c_int": "int",
+ "std::os::raw::c_char": "char",
+ "std::os::raw::c_int": "int",
"c_int": "int",
- "libc::int8_t": "int8_t",
- "libc::int32_t": "int32_t",
+ "std::os::raw::int8_t": "int8_t",
+ "std::os::raw::int32_t": "int32_t",
- "libc::uint8_t": "uint8_t",
- "libc::uint16_t": "uint16_t",
- "libc::uint32_t": "uint32_t",
- "libc::uint64_t": "uint64_t",
+ "std::os::raw::uint8_t": "uint8_t",
+ "std::os::raw::uint16_t": "uint16_t",
+ "std::os::raw::uint32_t": "uint32_t",
+ "std::os::raw::uint64_t": "uint64_t",
"SuricataContext": "SuricataContext",
"SuricataFileContext": "SuricataFileContext",
* 02110-1301, USA.
*/
-extern crate libc;
use std;
#[repr(C)]
pub struct AppLayerGetTxIterTuple {
- tx_ptr: *mut libc::c_void,
+ tx_ptr: *mut std::os::raw::c_void,
tx_id: u64,
has_next: bool,
}
impl AppLayerGetTxIterTuple {
- pub fn with_values(tx_ptr: *mut libc::c_void, tx_id: u64, has_next: bool) -> AppLayerGetTxIterTuple {
+ pub fn with_values(tx_ptr: *mut std::os::raw::c_void, tx_id: u64, has_next: bool) -> AppLayerGetTxIterTuple {
AppLayerGetTxIterTuple {
tx_ptr: tx_ptr, tx_id: tx_id, has_next: has_next,
}
macro_rules!export_tx_get_detect_state {
($name:ident, $type:ty) => (
#[no_mangle]
- pub extern "C" fn $name(tx: *mut libc::c_void)
+ pub extern "C" fn $name(tx: *mut std::os::raw::c_void)
-> *mut core::DetectEngineState
{
let tx = cast_pointer!(tx, $type);
macro_rules!export_tx_set_detect_state {
($name:ident, $type:ty) => (
#[no_mangle]
- pub extern "C" fn $name(tx: *mut libc::c_void,
- de_state: &mut core::DetectEngineState) -> libc::c_int
+ pub extern "C" fn $name(tx: *mut std::os::raw::c_void,
+ de_state: &mut core::DetectEngineState) -> std::os::raw::c_int
{
let tx = cast_pointer!(tx, $type);
tx.de_state = Some(de_state);
* 02110-1301, USA.
*/
-use libc;
use std;
use json::*;
use super::template::TemplateTransaction;
}
#[no_mangle]
-pub extern "C" fn rs_template_logger_log(tx: *mut libc::c_void) -> *mut JsonT {
+pub extern "C" fn rs_template_logger_log(tx: *mut std::os::raw::c_void) -> *mut JsonT {
let tx = cast_pointer!(tx, TemplateTransaction);
match log_template(tx) {
Some(js) => js.unwrap(),
use std;
use core::{self, ALPROTO_UNKNOWN, AppProto, Flow, IPPROTO_TCP};
-use libc;
use log::*;
use std::mem::transmute;
use applayer::{self, LoggerFlags};
}
#[no_mangle]
-pub extern "C" fn rs_template_state_new() -> *mut libc::c_void {
+pub extern "C" fn rs_template_state_new() -> *mut std::os::raw::c_void {
let state = TemplateState::new();
let boxed = Box::new(state);
return unsafe { transmute(boxed) };
}
#[no_mangle]
-pub extern "C" fn rs_template_state_free(state: *mut libc::c_void) {
+pub extern "C" fn rs_template_state_free(state: *mut std::os::raw::c_void) {
// Just unbox...
let _drop: Box<TemplateState> = unsafe { transmute(state) };
}
#[no_mangle]
pub extern "C" fn rs_template_state_tx_free(
- state: *mut libc::c_void,
+ state: *mut std::os::raw::c_void,
tx_id: u64,
) {
let state = cast_pointer!(state, TemplateState);
#[no_mangle]
pub extern "C" fn rs_template_parse_request(
_flow: *const 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 eof = unsafe {
#[no_mangle]
pub extern "C" fn rs_template_parse_response(
_flow: *const 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 _eof = unsafe {
#[no_mangle]
pub extern "C" fn rs_template_state_get_tx(
- state: *mut libc::c_void,
+ 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, TemplateState);
match state.get_tx(tx_id) {
Some(tx) => {
#[no_mangle]
pub extern "C" fn rs_template_state_get_tx_count(
- state: *mut libc::c_void,
+ state: *mut std::os::raw::c_void,
) -> u64 {
let state = cast_pointer!(state, TemplateState);
return state.tx_id;
#[no_mangle]
pub extern "C" fn rs_template_state_progress_completion_status(
_direction: u8,
-) -> libc::c_int {
+) -> std::os::raw::c_int {
// This parser uses 1 to signal transaction completion status.
return 1;
}
#[no_mangle]
pub extern "C" fn rs_template_tx_get_alstate_progress(
- tx: *mut libc::c_void,
+ tx: *mut std::os::raw::c_void,
_direction: u8,
-) -> libc::c_int {
+) -> std::os::raw::c_int {
let tx = cast_pointer!(tx, TemplateTransaction);
// Transaction is done if we have a response.
#[no_mangle]
pub extern "C" fn rs_template_tx_get_logged(
- _state: *mut libc::c_void,
- tx: *mut libc::c_void,
+ _state: *mut std::os::raw::c_void,
+ tx: *mut std::os::raw::c_void,
) -> u32 {
let tx = cast_pointer!(tx, TemplateTransaction);
return tx.logged.get();
#[no_mangle]
pub extern "C" fn rs_template_tx_set_logged(
- _state: *mut libc::c_void,
- tx: *mut libc::c_void,
+ _state: *mut std::os::raw::c_void,
+ tx: *mut std::os::raw::c_void,
logged: u32,
) {
let tx = cast_pointer!(tx, TemplateTransaction);
#[no_mangle]
pub extern "C" fn rs_template_state_get_events(
- tx: *mut libc::c_void
+ tx: *mut std::os::raw::c_void
) -> *mut core::AppLayerDecoderEvents {
let tx = cast_pointer!(tx, TemplateTransaction);
return tx.events;
#[no_mangle]
pub extern "C" fn rs_template_state_get_event_info(
- _event_name: *const libc::c_char,
- _event_id: *mut libc::c_int,
+ _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 {
return -1;
}
pub extern "C" fn rs_template_state_get_tx_iterator(
_ipproto: u8,
_alproto: AppProto,
- state: *mut libc::c_void,
+ state: *mut std::os::raw::c_void,
min_tx_id: u64,
_max_tx_id: u64,
istate: &mut u64,
/// pointer to the request buffer from C for detection.
#[no_mangle]
pub extern "C" fn rs_template_get_request_buffer(
- tx: *mut libc::c_void,
+ tx: *mut std::os::raw::c_void,
buf: *mut *const u8,
len: *mut u32,
) -> u8
/// Get the response buffer for a transaction from C.
#[no_mangle]
pub extern "C" fn rs_template_get_response_buffer(
- tx: *mut libc::c_void,
+ tx: *mut std::os::raw::c_void,
buf: *mut *const u8,
len: *mut u32,
) -> u8
pub unsafe extern "C" fn rs_template_register_parser() {
let default_port = CString::new("[7000]").unwrap();
let 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: IPPROTO_TCP,
probe_ts: rs_template_probing_parser,
// This file exposes items from the core "C" code to Rust.
-extern crate libc;
-
+use std;
use filecontainer::*;
/// Opaque C types.
pub enum AppLayerDecoderEvents {}
// From app-layer-events.h
-pub type AppLayerEventType = libc::c_int;
+pub type AppLayerEventType = std::os::raw::c_int;
pub const APP_LAYER_EVENT_TYPE_TRANSACTION : i32 = 1;
pub const APP_LAYER_EVENT_TYPE_PACKET : i32 = 2;
pub const STREAM_MIDSTREAM:u8 = 0x40;
// Application layer protocol identifiers (app-layer-protos.h)
-pub type AppProto = libc::c_int;
+pub type AppProto = std::os::raw::c_int;
pub const ALPROTO_UNKNOWN : AppProto = 0;
pub static mut ALPROTO_FAILED : AppProto = 0; // updated during init
#[allow(non_snake_case)]
pub type SCLogMessageFunc =
- extern "C" fn(level: libc::c_int,
- filename: *const libc::c_char,
- line: libc::c_uint,
- function: *const libc::c_char,
- code: libc::c_int,
- message: *const libc::c_char) -> libc::c_int;
+ extern "C" fn(level: std::os::raw::c_int,
+ filename: *const std::os::raw::c_char,
+ line: std::os::raw::c_uint,
+ function: *const std::os::raw::c_char,
+ code: std::os::raw::c_int,
+ message: *const std::os::raw::c_char) -> std::os::raw::c_int;
pub type DetectEngineStateFreeFunc =
extern "C" fn(state: *mut DetectEngineState);
use core::{ALPROTO_UNKNOWN, AppProto, Flow, IPPROTO_UDP};
use core::{sc_detect_engine_state_free, sc_app_layer_decoder_events_free_events};
use dhcp::parser::*;
-use libc;
use log::*;
use parser::*;
use std;
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_tx_get_alstate_progress(_tx: *mut libc::c_void,
- _direction: u8) -> libc::c_int {
+pub extern "C" fn rs_dhcp_tx_get_alstate_progress(_tx: *mut std::os::raw::c_void,
+ _direction: u8) -> std::os::raw::c_int {
// As this is a stateless parser, simply use 1.
return 1;
}
#[no_mangle]
pub extern "C" fn rs_dhcp_state_progress_completion_status(
- _direction: u8) -> libc::c_int {
+ _direction: u8) -> std::os::raw::c_int {
// The presence of a transaction means we are complete.
return 1;
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_state_get_tx(state: *mut libc::c_void,
- tx_id: u64) -> *mut libc::c_void {
+pub extern "C" fn rs_dhcp_state_get_tx(state: *mut std::os::raw::c_void,
+ tx_id: u64) -> *mut std::os::raw::c_void {
let state = cast_pointer!(state, DHCPState);
match state.get_tx(tx_id) {
Some(tx) => {
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_state_get_tx_count(state: *mut libc::c_void) -> u64 {
+pub extern "C" fn rs_dhcp_state_get_tx_count(state: *mut std::os::raw::c_void) -> u64 {
let state = cast_pointer!(state, DHCPState);
return state.tx_id;
}
#[no_mangle]
pub extern "C" fn rs_dhcp_parse(_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 state = cast_pointer!(state, DHCPState);
let buf = build_slice!(input, input_len as usize);
#[no_mangle]
pub extern "C" fn rs_dhcp_state_tx_free(
- state: *mut libc::c_void,
+ state: *mut std::os::raw::c_void,
tx_id: u64)
{
let state = cast_pointer!(state, DHCPState);
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_state_new() -> *mut libc::c_void {
+pub extern "C" fn rs_dhcp_state_new() -> *mut std::os::raw::c_void {
let state = DHCPState::new();
let boxed = Box::new(state);
return unsafe {
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_state_free(state: *mut libc::c_void) {
+pub extern "C" fn rs_dhcp_state_free(state: *mut std::os::raw::c_void) {
// Just unbox...
let _drop: Box<DHCPState> = unsafe { transmute(state) };
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_tx_get_logged(_state: *mut libc::c_void, tx: *mut libc::c_void) -> u32 {
+pub extern "C" fn rs_dhcp_tx_get_logged(_state: *mut std::os::raw::c_void, tx: *mut std::os::raw::c_void) -> u32 {
let tx = cast_pointer!(tx, DHCPTransaction);
return tx.logged.get();
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_tx_set_logged(_state: *mut libc::c_void,
- tx: *mut libc::c_void,
+pub extern "C" fn rs_dhcp_tx_set_logged(_state: *mut std::os::raw::c_void,
+ tx: *mut std::os::raw::c_void,
logged: u32) {
let tx = cast_pointer!(tx, DHCPTransaction);
tx.logged.set(logged);
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_state_get_events(tx: *mut libc::c_void)
+pub extern "C" fn rs_dhcp_state_get_events(tx: *mut std::os::raw::c_void)
-> *mut core::AppLayerDecoderEvents
{
let tx = cast_pointer!(tx, DHCPTransaction);
#[no_mangle]
pub extern "C" fn rs_dhcp_state_get_event_info(
- event_name: *const libc::c_char,
- event_id: *mut libc::c_int,
+ 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;
};
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
}
pub extern "C" fn rs_dhcp_state_get_tx_iterator(
_ipproto: u8,
_alproto: AppProto,
- state: *mut libc::c_void,
+ state: *mut std::os::raw::c_void,
min_tx_id: u64,
_max_tx_id: u64,
istate: &mut u64)
SCLogDebug!("Registering DHCP parser.");
let ports = CString::new("[67,68]").unwrap();
let 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: ports.as_ptr(),
ipproto: IPPROTO_UDP,
probe_ts: rs_dhcp_probing_parser,
* 02110-1301, USA.
*/
-extern crate libc;
-
use std;
use std::os::raw::c_void;
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_logger_new(conf: *const c_void) -> *mut libc::c_void {
+pub extern "C" fn rs_dhcp_logger_new(conf: *const c_void) -> *mut std::os::raw::c_void {
let conf = ConfNode::wrap(conf);
let boxed = Box::new(DHCPLogger::new(conf));
return unsafe{std::mem::transmute(boxed)};
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_logger_free(logger: *mut libc::c_void) {
+pub extern "C" fn rs_dhcp_logger_free(logger: *mut std::os::raw::c_void) {
let _: Box<DHCPLogger> = unsafe{std::mem::transmute(logger)};
}
#[no_mangle]
-pub extern "C" fn rs_dhcp_logger_log(logger: *mut libc::c_void,
- tx: *mut libc::c_void) -> *mut JsonT {
+pub extern "C" fn rs_dhcp_logger_log(logger: *mut std::os::raw::c_void,
+ tx: *mut std::os::raw::c_void) -> *mut JsonT {
let logger = cast_pointer!(logger, DHCPLogger);
let tx = cast_pointer!(tx, DHCPTransaction);
match logger.log(tx) {
* 02110-1301, USA.
*/
-extern crate libc;
extern crate nom;
use std;
/// Returns *mut DNSState
#[no_mangle]
-pub extern "C" fn rs_dns_state_new() -> *mut libc::c_void {
+pub extern "C" fn rs_dns_state_new() -> *mut std::os::raw::c_void {
let state = DNSState::new();
let boxed = Box::new(state);
return unsafe{transmute(boxed)};
/// Returns *mut DNSState
#[no_mangle]
-pub extern "C" fn rs_dns_state_tcp_new() -> *mut libc::c_void {
+pub extern "C" fn rs_dns_state_tcp_new() -> *mut std::os::raw::c_void {
let state = DNSState::new_tcp();
let boxed = Box::new(state);
return unsafe{transmute(boxed)};
/// Params:
/// - state: *mut DNSState as void pointer
#[no_mangle]
-pub extern "C" fn rs_dns_state_free(state: *mut libc::c_void) {
+pub extern "C" fn rs_dns_state_free(state: *mut std::os::raw::c_void) {
// Just unbox...
let _drop: Box<DNSState> = unsafe{transmute(state)};
}
#[no_mangle]
pub extern "C" fn rs_dns_parse_request(_flow: *mut core::Flow,
state: &mut DNSState,
- _pstate: *mut libc::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *mut u8,
input_len: u32,
- _data: *mut libc::c_void)
+ _data: *mut std::os::raw::c_void)
-> i8 {
let buf = unsafe{std::slice::from_raw_parts(input, input_len as usize)};
if state.parse_request(buf) {
#[no_mangle]
pub extern "C" fn rs_dns_parse_response(_flow: *mut core::Flow,
state: &mut DNSState,
- _pstate: *mut libc::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *mut u8,
input_len: u32,
- _data: *mut libc::c_void)
+ _data: *mut std::os::raw::c_void)
-> i8 {
let buf = unsafe{std::slice::from_raw_parts(input, input_len as usize)};
if state.parse_response(buf) {
#[no_mangle]
pub extern "C" fn rs_dns_parse_request_tcp(_flow: *mut core::Flow,
state: &mut DNSState,
- _pstate: *mut libc::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *mut u8,
input_len: u32,
- _data: *mut libc::c_void)
+ _data: *mut std::os::raw::c_void)
-> i8 {
if input_len > 0 {
if input != std::ptr::null_mut() {
#[no_mangle]
pub extern "C" fn rs_dns_parse_response_tcp(_flow: *mut core::Flow,
state: &mut DNSState,
- _pstate: *mut libc::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *mut u8,
input_len: u32,
- _data: *mut libc::c_void)
+ _data: *mut std::os::raw::c_void)
-> i8 {
if input_len > 0 {
if input != std::ptr::null_mut() {
#[no_mangle]
pub extern "C" fn rs_dns_state_progress_completion_status(
_direction: u8)
- -> libc::c_int
+ -> std::os::raw::c_int
{
SCLogDebug!("rs_dns_state_progress_completion_status");
return 1;
}
#[no_mangle]
-pub extern "C" fn rs_dns_state_get_events(tx: *mut libc::c_void)
+pub extern "C" fn rs_dns_state_get_events(tx: *mut std::os::raw::c_void)
-> *mut core::AppLayerDecoderEvents
{
let tx = cast_pointer!(tx, DNSTransaction);
* 02110-1301, USA.
*/
-extern crate libc;
-
use std;
use std::string::String;
use std::collections::HashMap;
* 02110-1301, USA.
*/
-extern crate libc;
use std::ptr;
-use libc::{c_void};
+use std::os::raw::{c_void};
use log::*;
use core::*;
* The tracker does continue to follow the file.
*/
-extern crate libc;
use log::*;
use core::*;
use std::collections::HashMap;
* 02110-1301, USA.
*/
-extern crate libc;
extern crate nom;
use nom::digit;
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};
/// Returns *mut IKEV2State
#[no_mangle]
-pub extern "C" fn rs_ikev2_state_new() -> *mut libc::c_void {
+pub extern "C" fn rs_ikev2_state_new() -> *mut std::os::raw::c_void {
let state = IKEV2State::new();
let boxed = Box::new(state);
return unsafe{std::mem::transmute(boxed)};
/// Params:
/// - state: *mut IKEV2State as void pointer
#[no_mangle]
-pub extern "C" fn rs_ikev2_state_free(state: *mut libc::c_void) {
+pub extern "C" fn rs_ikev2_state_free(state: *mut std::os::raw::c_void) {
// Just unbox...
let mut ikev2_state: Box<IKEV2State> = unsafe{std::mem::transmute(state)};
ikev2_state.free();
#[no_mangle]
pub extern "C" fn rs_ikev2_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,IKEV2State);
#[no_mangle]
pub extern "C" fn rs_ikev2_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,IKEV2State);
}
#[no_mangle]
-pub extern "C" fn rs_ikev2_state_get_tx(state: *mut libc::c_void,
+pub extern "C" fn rs_ikev2_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,IKEV2State);
match state.get_tx_by_id(tx_id) {
}
#[no_mangle]
-pub extern "C" fn rs_ikev2_state_get_tx_count(state: *mut libc::c_void)
+pub extern "C" fn rs_ikev2_state_get_tx_count(state: *mut std::os::raw::c_void)
-> u64
{
let state = cast_pointer!(state,IKEV2State);
}
#[no_mangle]
-pub extern "C" fn rs_ikev2_state_tx_free(state: *mut libc::c_void,
+pub extern "C" fn rs_ikev2_state_tx_free(state: *mut std::os::raw::c_void,
tx_id: u64)
{
let state = cast_pointer!(state,IKEV2State);
#[no_mangle]
pub extern "C" fn rs_ikev2_state_progress_completion_status(
_direction: u8)
- -> libc::c_int
+ -> std::os::raw::c_int
{
return 1;
}
#[no_mangle]
-pub extern "C" fn rs_ikev2_tx_get_alstate_progress(_tx: *mut libc::c_void,
+pub extern "C" fn rs_ikev2_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_ikev2_tx_set_logged(_state: *mut libc::c_void,
- tx: *mut libc::c_void,
+pub extern "C" fn rs_ikev2_tx_set_logged(_state: *mut std::os::raw::c_void,
+ tx: *mut std::os::raw::c_void,
logged: u32)
{
let tx = cast_pointer!(tx,IKEV2Transaction);
}
#[no_mangle]
-pub extern "C" fn rs_ikev2_tx_get_logged(_state: *mut libc::c_void,
- tx: *mut libc::c_void)
+pub extern "C" fn rs_ikev2_tx_get_logged(_state: *mut std::os::raw::c_void,
+ tx: *mut std::os::raw::c_void)
-> u32
{
let tx = cast_pointer!(tx,IKEV2Transaction);
#[no_mangle]
pub extern "C" fn rs_ikev2_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,IKEV2Transaction);
tx.de_state = Some(de_state);
#[no_mangle]
pub extern "C" fn rs_ikev2_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,IKEV2Transaction);
#[no_mangle]
-pub extern "C" fn rs_ikev2_state_get_events(tx: *mut libc::c_void)
+pub extern "C" fn rs_ikev2_state_get_events(tx: *mut std::os::raw::c_void)
-> *mut core::AppLayerDecoderEvents
{
let tx = cast_pointer!(tx, IKEV2Transaction);
}
#[no_mangle]
-pub extern "C" fn rs_ikev2_state_get_event_info(event_name: *const libc::c_char,
- event_id: *mut libc::c_int,
+pub extern "C" fn rs_ikev2_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
}
pub unsafe extern "C" fn rs_register_ikev2_parser() {
let default_port = CString::new("500").unwrap();
let 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_ikev2_probing_parser,
// written by Pierre Chifflier <chifflier@wzdftpd.net>
-use libc;
use std;
use std::ffi::{CStr,CString};
use nom;
/// Returns *mut KRB5State
#[no_mangle]
-pub extern "C" fn rs_krb5_state_new() -> *mut libc::c_void {
+pub extern "C" fn rs_krb5_state_new() -> *mut std::os::raw::c_void {
let state = KRB5State::new();
let boxed = Box::new(state);
return unsafe{std::mem::transmute(boxed)};
/// Params:
/// - state: *mut KRB5State as void pointer
#[no_mangle]
-pub extern "C" fn rs_krb5_state_free(state: *mut libc::c_void) {
+pub extern "C" fn rs_krb5_state_free(state: *mut std::os::raw::c_void) {
// Just unbox...
let mut state: Box<KRB5State> = unsafe{std::mem::transmute(state)};
state.free();
}
#[no_mangle]
-pub extern "C" fn rs_krb5_state_get_tx(state: *mut libc::c_void,
+pub extern "C" fn rs_krb5_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,KRB5State);
match state.get_tx_by_id(tx_id) {
}
#[no_mangle]
-pub extern "C" fn rs_krb5_state_get_tx_count(state: *mut libc::c_void)
+pub extern "C" fn rs_krb5_state_get_tx_count(state: *mut std::os::raw::c_void)
-> u64
{
let state = cast_pointer!(state,KRB5State);
}
#[no_mangle]
-pub extern "C" fn rs_krb5_state_tx_free(state: *mut libc::c_void,
+pub extern "C" fn rs_krb5_state_tx_free(state: *mut std::os::raw::c_void,
tx_id: u64)
{
let state = cast_pointer!(state,KRB5State);
#[no_mangle]
pub extern "C" fn rs_krb5_state_progress_completion_status(
_direction: u8)
- -> libc::c_int
+ -> std::os::raw::c_int
{
return 1;
}
#[no_mangle]
-pub extern "C" fn rs_krb5_tx_get_alstate_progress(_tx: *mut libc::c_void,
+pub extern "C" fn rs_krb5_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_krb5_tx_set_logged(_state: *mut libc::c_void,
- tx: *mut libc::c_void,
+pub extern "C" fn rs_krb5_tx_set_logged(_state: *mut std::os::raw::c_void,
+ tx: *mut std::os::raw::c_void,
logged: u32)
{
let tx = cast_pointer!(tx,KRB5Transaction);
}
#[no_mangle]
-pub extern "C" fn rs_krb5_tx_get_logged(_state: *mut libc::c_void,
- tx: *mut libc::c_void)
+pub extern "C" fn rs_krb5_tx_get_logged(_state: *mut std::os::raw::c_void,
+ tx: *mut std::os::raw::c_void)
-> u32
{
let tx = cast_pointer!(tx,KRB5Transaction);
#[no_mangle]
pub extern "C" fn rs_krb5_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,KRB5Transaction);
tx.de_state = Some(de_state);
#[no_mangle]
pub extern "C" fn rs_krb5_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,KRB5Transaction);
#[no_mangle]
-pub extern "C" fn rs_krb5_state_get_events(tx: *mut libc::c_void)
+pub extern "C" fn rs_krb5_state_get_events(tx: *mut std::os::raw::c_void)
-> *mut core::AppLayerDecoderEvents
{
let tx = cast_pointer!(tx, KRB5Transaction);
}
#[no_mangle]
-pub extern "C" fn rs_krb5_state_get_event_info(event_name: *const libc::c_char,
- event_id: *mut libc::c_int,
+pub extern "C" fn rs_krb5_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_krb5_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,KRB5State);
#[no_mangle]
pub extern "C" fn rs_krb5_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,KRB5State);
#[no_mangle]
pub extern "C" fn rs_krb5_parse_request_tcp(_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 {
if input_len < 4 { return -1; }
let buf = build_slice!(input,input_len as usize);
#[no_mangle]
pub extern "C" fn rs_krb5_parse_response_tcp(_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 {
if input_len < 4 { return -1; }
let buf = build_slice!(input,input_len as usize);
pub unsafe extern "C" fn rs_register_krb5_parser() {
let default_port = CString::new("88").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_krb5_probing_parser,
#![cfg_attr(feature = "strict", deny(warnings))]
-extern crate libc;
-
#[macro_use]
extern crate nom;
* 02110-1301, USA.
*/
-extern crate libc;
-
+use std;
use std::ffi::CString;
use std::path::Path;
/// Rust unit tests).
pub fn sc_log_message(level: Level,
filename: &str,
- line: libc::c_uint,
+ line: std::os::raw::c_uint,
function: &str,
- code: libc::c_int,
- message: &str) -> libc::c_int
+ code: std::os::raw::c_int,
+ message: &str) -> std::os::raw::c_int
{
unsafe {
if let Some(c) = SC {
* 02110-1301, USA.
*/
-extern crate libc;
-
use std::string::String;
use json::*;
use nfs::types::*;
// written by Victor Julien
// TCP buffering code written by Pierre Chifflier
-extern crate libc;
use std;
use std::mem::transmute;
use std::collections::{HashMap};
/// Returns *mut NFSState
#[no_mangle]
-pub extern "C" fn rs_nfs_state_new() -> *mut libc::c_void {
+pub extern "C" fn rs_nfs_state_new() -> *mut std::os::raw::c_void {
let state = NFSState::new();
let boxed = Box::new(state);
SCLogDebug!("allocating state");
/// Params:
/// - state: *mut NFSState as void pointer
#[no_mangle]
-pub extern "C" fn rs_nfs_state_free(state: *mut libc::c_void) {
+pub extern "C" fn rs_nfs_state_free(state: *mut std::os::raw::c_void) {
// Just unbox...
SCLogDebug!("freeing state");
let mut nfs_state: Box<NFSState> = unsafe{transmute(state)};
#[no_mangle]
pub extern "C" fn rs_nfs_parse_request(_flow: *mut Flow,
state: &mut NFSState,
- _pstate: *mut libc::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *mut u8,
input_len: u32,
- _data: *mut libc::c_void)
+ _data: *mut std::os::raw::c_void)
-> i8
{
let buf = unsafe{std::slice::from_raw_parts(input, input_len as usize)};
#[no_mangle]
pub extern "C" fn rs_nfs_parse_response(_flow: *mut Flow,
state: &mut NFSState,
- _pstate: *mut libc::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *mut u8,
input_len: u32,
- _data: *mut libc::c_void)
+ _data: *mut std::os::raw::c_void)
-> i8
{
SCLogDebug!("parsing {} bytes of response data", input_len);
#[no_mangle]
pub extern "C" fn rs_nfs_parse_request_udp(_flow: *mut Flow,
state: &mut NFSState,
- _pstate: *mut libc::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *mut u8,
input_len: u32,
- _data: *mut libc::c_void)
+ _data: *mut std::os::raw::c_void)
-> i8
{
let buf = unsafe{std::slice::from_raw_parts(input, input_len as usize)};
#[no_mangle]
pub extern "C" fn rs_nfs_parse_response_udp(_flow: *mut Flow,
state: &mut NFSState,
- _pstate: *mut libc::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *mut u8,
input_len: u32,
- _data: *mut libc::c_void)
+ _data: *mut std::os::raw::c_void)
-> i8
{
SCLogDebug!("parsing {} bytes of response data", input_len);
#[no_mangle]
pub extern "C" fn rs_nfs_state_progress_completion_status(
_direction: u8)
- -> libc::c_int
+ -> std::os::raw::c_int
{
return 1;
}
}
#[no_mangle]
-pub extern "C" fn rs_nfs_state_get_events(tx: *mut libc::c_void)
+pub extern "C" fn rs_nfs_state_get_events(tx: *mut std::os::raw::c_void)
-> *mut AppLayerDecoderEvents
{
let tx = cast_pointer!(tx, NFSTransaction);
}
#[no_mangle]
-pub extern "C" fn rs_nfs_state_get_event_info_by_id(event_id: libc::c_int,
- event_name: *mut *const libc::c_char,
+pub extern "C" fn rs_nfs_state_get_event_info_by_id(event_id: std::os::raw::c_int,
+ event_name: *mut *const std::os::raw::c_char,
event_type: *mut AppLayerEventType)
-> i8
{
NFSEvent::UnsupportedVersion => { "unsupported_version\0" },
};
unsafe{
- *event_name = estr.as_ptr() as *const libc::c_char;
+ *event_name = estr.as_ptr() as *const std::os::raw::c_char;
*event_type = APP_LAYER_EVENT_TYPE_TRANSACTION;
};
0
}
}
#[no_mangle]
-pub extern "C" fn rs_nfs_state_get_event_info(event_name: *const libc::c_char,
- event_id: *mut libc::c_int,
+pub extern "C" fn rs_nfs_state_get_event_info(event_name: *const std::os::raw::c_char,
+ event_id: *mut std::os::raw::c_int,
event_type: *mut AppLayerEventType)
-> i8
{
};
unsafe{
*event_type = APP_LAYER_EVENT_TYPE_TRANSACTION;
- *event_id = event as libc::c_int;
+ *event_id = event as std::os::raw::c_int;
};
0
}
// written by Victor Julien
-extern crate libc;
-
use nom;
use nom::be_u32;
use core::{AppProto,Flow,ALPROTO_UNKNOWN,ALPROTO_FAILED};
use applayer;
use parser::*;
-use libc;
use std;
use std::ffi::{CStr,CString};
/// Returns *mut NTPState
#[no_mangle]
-pub extern "C" fn rs_ntp_state_new() -> *mut libc::c_void {
+pub extern "C" fn rs_ntp_state_new() -> *mut std::os::raw::c_void {
let state = NTPState::new();
let boxed = Box::new(state);
return unsafe{std::mem::transmute(boxed)};
/// Params:
/// - state: *mut NTPState as void pointer
#[no_mangle]
-pub extern "C" fn rs_ntp_state_free(state: *mut libc::c_void) {
+pub extern "C" fn rs_ntp_state_free(state: *mut std::os::raw::c_void) {
// Just unbox...
let mut ntp_state: Box<NTPState> = unsafe{std::mem::transmute(state)};
ntp_state.free();
#[no_mangle]
pub extern "C" fn rs_ntp_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,NTPState);
#[no_mangle]
pub extern "C" fn rs_ntp_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,NTPState);
}
#[no_mangle]
-pub extern "C" fn rs_ntp_state_get_tx(state: *mut libc::c_void,
+pub extern "C" fn rs_ntp_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,NTPState);
match state.get_tx_by_id(tx_id) {
}
#[no_mangle]
-pub extern "C" fn rs_ntp_state_get_tx_count(state: *mut libc::c_void)
+pub extern "C" fn rs_ntp_state_get_tx_count(state: *mut std::os::raw::c_void)
-> u64
{
let state = cast_pointer!(state,NTPState);
}
#[no_mangle]
-pub extern "C" fn rs_ntp_state_tx_free(state: *mut libc::c_void,
+pub extern "C" fn rs_ntp_state_tx_free(state: *mut std::os::raw::c_void,
tx_id: u64)
{
let state = cast_pointer!(state,NTPState);
#[no_mangle]
pub extern "C" fn rs_ntp_state_progress_completion_status(
_direction: u8)
- -> libc::c_int
+ -> std::os::raw::c_int
{
return 1;
}
#[no_mangle]
-pub extern "C" fn rs_ntp_tx_get_alstate_progress(_tx: *mut libc::c_void,
+pub extern "C" fn rs_ntp_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_ntp_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,NTPTransaction);
tx.de_state = Some(de_state);
#[no_mangle]
pub extern "C" fn rs_ntp_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,NTPTransaction);
#[no_mangle]
-pub extern "C" fn rs_ntp_state_get_events(tx: *mut libc::c_void)
+pub extern "C" fn rs_ntp_state_get_events(tx: *mut std::os::raw::c_void)
-> *mut core::AppLayerDecoderEvents
{
let tx = cast_pointer!(tx, NTPTransaction);
}
#[no_mangle]
-pub extern "C" fn rs_ntp_state_get_event_info(event_name: *const libc::c_char,
- event_id: *mut libc::c_int,
+pub extern "C" fn rs_ntp_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
}
pub unsafe extern "C" fn rs_register_ntp_parser() {
let default_port = CString::new("123").unwrap();
let 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 : ntp_probing_parser,
use filecontainer::FileContainer;
use applayer;
-use libc::{c_void,c_char,c_int};
+use std::os::raw::{c_void,c_char,c_int};
use applayer::{AppLayerGetTxIterTuple};
/// Rust parser declaration
*/
// written by Victor Julien
-extern crate libc;
use log::*;
* 02110-1301, USA.
*/
-extern crate libc;
-
use std;
use std::ptr;
use core::*;
* 02110-1301, USA.
*/
-extern crate libc;
-
use std::str;
use std::string::String;
use json::*;
*/
// written by Victor Julien
-extern crate libc;
+
use std;
use std::mem::transmute;
use std::str;
/// Returns *mut SMBState
#[no_mangle]
-pub extern "C" fn rs_smb_state_new() -> *mut libc::c_void {
+pub extern "C" fn rs_smb_state_new() -> *mut std::os::raw::c_void {
let state = SMBState::new();
let boxed = Box::new(state);
SCLogDebug!("allocating state");
/// Params:
/// - state: *mut SMBState as void pointer
#[no_mangle]
-pub extern "C" fn rs_smb_state_free(state: *mut libc::c_void) {
+pub extern "C" fn rs_smb_state_free(state: *mut std::os::raw::c_void) {
// Just unbox...
SCLogDebug!("freeing state");
let mut smb_state: Box<SMBState> = unsafe{transmute(state)};
#[no_mangle]
pub extern "C" fn rs_smb_parse_request_tcp(_flow: *mut Flow,
state: &mut SMBState,
- _pstate: *mut libc::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *mut u8,
input_len: u32,
- _data: *mut libc::c_void,
+ _data: *mut std::os::raw::c_void,
flags: u8)
-> i8
{
#[no_mangle]
pub extern "C" fn rs_smb_parse_response_tcp(_flow: *mut Flow,
state: &mut SMBState,
- _pstate: *mut libc::c_void,
+ _pstate: *mut std::os::raw::c_void,
input: *mut u8,
input_len: u32,
- _data: *mut libc::c_void,
+ _data: *mut std::os::raw::c_void,
flags: u8)
-> i8
{
#[no_mangle]
pub extern "C" fn rs_smb_state_progress_completion_status(
_direction: u8)
- -> libc::c_int
+ -> std::os::raw::c_int
{
return 1;
}
}
#[no_mangle]
-pub extern "C" fn rs_smb_state_get_events(tx: *mut libc::c_void)
+pub extern "C" fn rs_smb_state_get_events(tx: *mut std::os::raw::c_void)
-> *mut AppLayerDecoderEvents
{
let tx = cast_pointer!(tx, SMBTransaction);
}
#[no_mangle]
-pub extern "C" fn rs_smb_state_get_event_info(event_name: *const libc::c_char,
- event_id: *mut libc::c_int,
+pub extern "C" fn rs_smb_state_get_event_info(event_name: *const std::os::raw::c_char,
+ event_id: *mut std::os::raw::c_int,
event_type: *mut AppLayerEventType)
-> i8
{
};
unsafe {
*event_type = APP_LAYER_EVENT_TYPE_TRANSACTION;
- *event_id = event as libc::c_int;
+ *event_id = event as std::os::raw::c_int;
};
if event == -1 {
return -1;
* - check all parsers for calls on non-SUCCESS status
*/
-extern crate libc;
-
use nom;
use core::*;
// written by Clément Galland <clement.galland@epita.fr>
-extern crate libc;
-
use json::*;
use tftp::tftp::*;
// written by Clément Galland <clement.galland@epita.fr>
-extern crate libc;
extern crate nom;
use std::str;
}
#[no_mangle]
-pub extern "C" fn rs_tftp_state_alloc() -> *mut libc::c_void {
+pub extern "C" fn rs_tftp_state_alloc() -> *mut std::os::raw::c_void {
let state = TFTPState { transactions : Vec::new(), tx_id: 0, };
let boxed = Box::new(state);
return unsafe{transmute(boxed)};
}
#[no_mangle]
-pub extern "C" fn rs_tftp_state_free(state: *mut libc::c_void) {
+pub extern "C" fn rs_tftp_state_free(state: *mut std::os::raw::c_void) {
let _state : Box<TFTPState> = unsafe{transmute(state)};
}
#[no_mangle]
pub extern "C" fn rs_tftp_get_tx(state: &mut TFTPState,
- tx_id: u64) -> *mut libc::c_void {
+ tx_id: u64) -> *mut std::os::raw::c_void {
match state.get_tx_by_id(tx_id) {
Some(tx) => unsafe{std::mem::transmute(tx)},
None => std::ptr::null_mut(),