mirror of https://github.com/OISF/suricata
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
712 lines
23 KiB
Rust
712 lines
23 KiB
Rust
// This file is automatically generated. Do not edit.
|
|
|
|
pub const SC_PACKAGE_VERSION: &[u8; 14] = b"8.0.0-rc1-dev\0";
|
|
pub type __intmax_t = ::std::os::raw::c_long;
|
|
pub type intmax_t = __intmax_t;
|
|
#[repr(u32)]
|
|
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
|
|
pub enum AppProtoEnum {
|
|
ALPROTO_UNKNOWN = 0,
|
|
ALPROTO_FAILED = 1,
|
|
ALPROTO_HTTP1 = 2,
|
|
ALPROTO_FTP = 3,
|
|
ALPROTO_SMTP = 4,
|
|
ALPROTO_TLS = 5,
|
|
ALPROTO_SSH = 6,
|
|
ALPROTO_IMAP = 7,
|
|
ALPROTO_JABBER = 8,
|
|
ALPROTO_SMB = 9,
|
|
ALPROTO_DCERPC = 10,
|
|
ALPROTO_IRC = 11,
|
|
ALPROTO_DNS = 12,
|
|
ALPROTO_MODBUS = 13,
|
|
ALPROTO_ENIP = 14,
|
|
ALPROTO_DNP3 = 15,
|
|
ALPROTO_NFS = 16,
|
|
ALPROTO_NTP = 17,
|
|
ALPROTO_FTPDATA = 18,
|
|
ALPROTO_TFTP = 19,
|
|
ALPROTO_IKE = 20,
|
|
ALPROTO_KRB5 = 21,
|
|
ALPROTO_QUIC = 22,
|
|
ALPROTO_DHCP = 23,
|
|
ALPROTO_SIP = 24,
|
|
ALPROTO_RFB = 25,
|
|
ALPROTO_MQTT = 26,
|
|
ALPROTO_PGSQL = 27,
|
|
ALPROTO_TELNET = 28,
|
|
ALPROTO_WEBSOCKET = 29,
|
|
ALPROTO_LDAP = 30,
|
|
ALPROTO_DOH2 = 31,
|
|
ALPROTO_TEMPLATE = 32,
|
|
ALPROTO_RDP = 33,
|
|
ALPROTO_HTTP2 = 34,
|
|
ALPROTO_BITTORRENT_DHT = 35,
|
|
ALPROTO_POP3 = 36,
|
|
ALPROTO_MDNS = 37,
|
|
ALPROTO_HTTP = 38,
|
|
ALPROTO_MAX_STATIC = 39,
|
|
}
|
|
pub type AppProto = u16;
|
|
extern "C" {
|
|
#[doc = " \\brief Maps the ALPROTO_*, to its string equivalent.\n\n \\param alproto App layer protocol id.\n\n \\retval String equivalent for the alproto."]
|
|
pub fn AppProtoToString(alproto: AppProto) -> *const ::std::os::raw::c_char;
|
|
}
|
|
extern "C" {
|
|
pub fn AppProtoNewProtoFromString(proto_name: *const ::std::os::raw::c_char) -> AppProto;
|
|
}
|
|
extern "C" {
|
|
pub fn AppProtoRegisterProtoString(
|
|
alproto: AppProto, proto_name: *const ::std::os::raw::c_char,
|
|
);
|
|
}
|
|
pub const SC_API_VERSION: u64 = 2048;
|
|
#[doc = " Structure to define a Suricata plugin."]
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SCPlugin_ {
|
|
pub version: u64,
|
|
pub suricata_version: *const ::std::os::raw::c_char,
|
|
pub name: *const ::std::os::raw::c_char,
|
|
pub plugin_version: *const ::std::os::raw::c_char,
|
|
pub license: *const ::std::os::raw::c_char,
|
|
pub author: *const ::std::os::raw::c_char,
|
|
pub Init: ::std::option::Option<unsafe extern "C" fn()>,
|
|
}
|
|
#[doc = " Structure to define a Suricata plugin."]
|
|
pub type SCPlugin = SCPlugin_;
|
|
pub type SCPluginRegisterFunc = ::std::option::Option<unsafe extern "C" fn() -> *mut SCPlugin>;
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SCCapturePlugin_ {
|
|
pub name: *mut ::std::os::raw::c_char,
|
|
pub Init: ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
args: *const ::std::os::raw::c_char,
|
|
plugin_slot: ::std::os::raw::c_int,
|
|
receive_slot: ::std::os::raw::c_int,
|
|
decode_slot: ::std::os::raw::c_int,
|
|
),
|
|
>,
|
|
pub ThreadInit: ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
ctx: *mut ::std::os::raw::c_void,
|
|
thread_id: ::std::os::raw::c_int,
|
|
thread_ctx: *mut *mut ::std::os::raw::c_void,
|
|
) -> ::std::os::raw::c_int,
|
|
>,
|
|
pub ThreadDeinit: ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
ctx: *mut ::std::os::raw::c_void,
|
|
thread_ctx: *mut ::std::os::raw::c_void,
|
|
) -> ::std::os::raw::c_int,
|
|
>,
|
|
pub GetDefaultMode:
|
|
::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>,
|
|
pub entries: SCCapturePlugin___bindgen_ty_1,
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SCCapturePlugin___bindgen_ty_1 {
|
|
pub tqe_next: *mut SCCapturePlugin_,
|
|
pub tqe_prev: *mut *mut SCCapturePlugin_,
|
|
}
|
|
pub type SCCapturePlugin = SCCapturePlugin_;
|
|
extern "C" {
|
|
pub fn SCPluginRegisterCapture(arg1: *mut SCCapturePlugin) -> ::std::os::raw::c_int;
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SCAppLayerPlugin_ {
|
|
pub name: *const ::std::os::raw::c_char,
|
|
pub Register: ::std::option::Option<unsafe extern "C" fn()>,
|
|
pub KeywordsRegister: ::std::option::Option<unsafe extern "C" fn()>,
|
|
pub logname: *const ::std::os::raw::c_char,
|
|
pub confname: *const ::std::os::raw::c_char,
|
|
pub dir: u8,
|
|
pub Logger: ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
tx: *const ::std::os::raw::c_void,
|
|
jb: *mut ::std::os::raw::c_void,
|
|
) -> bool,
|
|
>,
|
|
}
|
|
pub type SCAppLayerPlugin = SCAppLayerPlugin_;
|
|
extern "C" {
|
|
pub fn SCPluginRegisterAppLayer(arg1: *mut SCAppLayerPlugin) -> ::std::os::raw::c_int;
|
|
}
|
|
#[repr(u32)]
|
|
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
|
|
pub enum SCOutputJsonLogDirection {
|
|
LOG_DIR_PACKET = 0,
|
|
LOG_DIR_FLOW = 1,
|
|
LOG_DIR_FLOW_TOCLIENT = 2,
|
|
LOG_DIR_FLOW_TOSERVER = 3,
|
|
}
|
|
pub type EveJsonSimpleTxLogFunc = ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
arg1: *const ::std::os::raw::c_void,
|
|
arg2: *mut ::std::os::raw::c_void,
|
|
) -> bool,
|
|
>;
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct EveJsonSimpleAppLayerLogger {
|
|
pub LogTx: EveJsonSimpleTxLogFunc,
|
|
pub name: *const ::std::os::raw::c_char,
|
|
}
|
|
extern "C" {
|
|
pub fn SCEveJsonSimpleGetLogger(alproto: AppProto) -> *mut EveJsonSimpleAppLayerLogger;
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct EveJsonTxLoggerRegistrationData {
|
|
pub confname: *const ::std::os::raw::c_char,
|
|
pub logname: *const ::std::os::raw::c_char,
|
|
pub alproto: AppProto,
|
|
pub dir: u8,
|
|
pub LogTx: EveJsonSimpleTxLogFunc,
|
|
}
|
|
extern "C" {
|
|
pub fn SCOutputEvePreRegisterLogger(
|
|
reg_data: EveJsonTxLoggerRegistrationData,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCSigTablePreRegister(
|
|
KeywordsRegister: ::std::option::Option<unsafe extern "C" fn()>,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectHelperKeywordSetCleanCString(id: u16);
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct DetectEngineCtx_ {
|
|
_unused: [u8; 0],
|
|
}
|
|
pub type DetectEngineCtx = DetectEngineCtx_;
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct Signature_ {
|
|
_unused: [u8; 0],
|
|
}
|
|
pub type Signature = Signature_;
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SigMatch_ {
|
|
_unused: [u8; 0],
|
|
}
|
|
pub type SigMatch = SigMatch_;
|
|
extern "C" {
|
|
pub fn SCDetectBufferSetActiveList(
|
|
de_ctx: *mut DetectEngineCtx, s: *mut Signature, list: ::std::os::raw::c_int,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectSignatureAddTransform(
|
|
s: *mut Signature, transform: ::std::os::raw::c_int, options: *mut ::std::os::raw::c_void,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct InspectionBuffer {
|
|
#[doc = "< active pointer, points either to ::buf or ::orig"]
|
|
pub inspect: *const u8,
|
|
pub inspect_offset: u64,
|
|
#[doc = "< size of active data. See to ::len or ::orig_len"]
|
|
pub inspect_len: u32,
|
|
#[doc = "< is initialized. ::inspect might be NULL if transform lead to 0 size"]
|
|
pub initialized: bool,
|
|
#[doc = "< DETECT_CI_FLAGS_* for use with DetectEngineContentInspection"]
|
|
pub flags: u8,
|
|
#[doc = "< how much is in use"]
|
|
pub len: u32,
|
|
pub buf: *mut u8,
|
|
#[doc = "< size of the memory allocation"]
|
|
pub size: u32,
|
|
pub orig_len: u32,
|
|
pub orig: *const u8,
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct DetectEngineThreadCtx_ {
|
|
_unused: [u8; 0],
|
|
}
|
|
pub type DetectEngineThreadCtx = DetectEngineThreadCtx_;
|
|
extern "C" {
|
|
pub fn SCInspectionBufferCheckAndExpand(
|
|
buffer: *mut InspectionBuffer, min_size: u32,
|
|
) -> *mut u8;
|
|
}
|
|
extern "C" {
|
|
pub fn SCInspectionBufferTruncate(buffer: *mut InspectionBuffer, buf_len: u32);
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct Flow_ {
|
|
_unused: [u8; 0],
|
|
}
|
|
pub type Flow = Flow_;
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SigMatchCtx_ {
|
|
_unused: [u8; 0],
|
|
}
|
|
pub type SigMatchCtx = SigMatchCtx_;
|
|
pub type InspectionMultiBufferGetDataPtr = ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
det_ctx: *mut DetectEngineThreadCtx_,
|
|
txv: *const ::std::os::raw::c_void,
|
|
flow_flags: u8,
|
|
local_id: u32,
|
|
buf: *mut *const u8,
|
|
buf_len: *mut u32,
|
|
) -> bool,
|
|
>;
|
|
pub type InspectionSingleBufferGetDataPtr = ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
txv: *const ::std::os::raw::c_void,
|
|
flow_flags: u8,
|
|
buf: *mut *const u8,
|
|
buf_len: *mut u32,
|
|
) -> bool,
|
|
>;
|
|
#[doc = " App-layer light version of SigTableElmt"]
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SCSigTableAppLiteElmt {
|
|
#[doc = " keyword name"]
|
|
pub name: *const ::std::os::raw::c_char,
|
|
#[doc = " keyword description"]
|
|
pub desc: *const ::std::os::raw::c_char,
|
|
#[doc = " keyword documentation url"]
|
|
pub url: *const ::std::os::raw::c_char,
|
|
#[doc = " flags SIGMATCH_*"]
|
|
pub flags: u16,
|
|
#[doc = " function callback to parse and setup keyword in rule"]
|
|
pub Setup: ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
arg1: *mut DetectEngineCtx,
|
|
arg2: *mut Signature,
|
|
arg3: *const ::std::os::raw::c_char,
|
|
) -> ::std::os::raw::c_int,
|
|
>,
|
|
#[doc = " function callback to free structure allocated by setup if any"]
|
|
pub Free: ::std::option::Option<
|
|
unsafe extern "C" fn(arg1: *mut DetectEngineCtx, arg2: *mut ::std::os::raw::c_void),
|
|
>,
|
|
#[doc = " function callback to match on an app-layer transaction"]
|
|
pub AppLayerTxMatch: ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
arg1: *mut DetectEngineThreadCtx,
|
|
arg2: *mut Flow,
|
|
flags: u8,
|
|
alstate: *mut ::std::os::raw::c_void,
|
|
txv: *mut ::std::os::raw::c_void,
|
|
arg3: *const Signature,
|
|
arg4: *const SigMatchCtx,
|
|
) -> ::std::os::raw::c_int,
|
|
>,
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SCTransformTableElmt {
|
|
pub name: *const ::std::os::raw::c_char,
|
|
pub desc: *const ::std::os::raw::c_char,
|
|
pub url: *const ::std::os::raw::c_char,
|
|
pub flags: u16,
|
|
pub Setup: ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
arg1: *mut DetectEngineCtx,
|
|
arg2: *mut Signature,
|
|
arg3: *const ::std::os::raw::c_char,
|
|
) -> ::std::os::raw::c_int,
|
|
>,
|
|
pub Free: ::std::option::Option<
|
|
unsafe extern "C" fn(arg1: *mut DetectEngineCtx, arg2: *mut ::std::os::raw::c_void),
|
|
>,
|
|
pub Transform: ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
arg1: *mut DetectEngineThreadCtx,
|
|
arg2: *mut InspectionBuffer,
|
|
context: *mut ::std::os::raw::c_void,
|
|
),
|
|
>,
|
|
pub TransformValidate: ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
content: *const u8,
|
|
content_len: u16,
|
|
context: *mut ::std::os::raw::c_void,
|
|
) -> bool,
|
|
>,
|
|
pub TransformId: ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
id_data: *mut *const u8,
|
|
id_length: *mut u32,
|
|
context: *mut ::std::os::raw::c_void,
|
|
),
|
|
>,
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectHelperNewKeywordId() -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectHelperKeywordRegister(kw: *const SCSigTableAppLiteElmt) -> u16;
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectHelperKeywordAliasRegister(kwid: u16, alias: *const ::std::os::raw::c_char);
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectHelperBufferRegister(
|
|
name: *const ::std::os::raw::c_char, alproto: AppProto, direction: u8,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectHelperBufferMpmRegister(
|
|
name: *const ::std::os::raw::c_char, desc: *const ::std::os::raw::c_char,
|
|
alproto: AppProto, direction: u8, GetData: InspectionSingleBufferGetDataPtr,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectHelperMultiBufferMpmRegister(
|
|
name: *const ::std::os::raw::c_char, desc: *const ::std::os::raw::c_char,
|
|
alproto: AppProto, direction: u8, GetData: InspectionMultiBufferGetDataPtr,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectHelperMultiBufferProgressMpmRegister(
|
|
name: *const ::std::os::raw::c_char, desc: *const ::std::os::raw::c_char,
|
|
alproto: AppProto, direction: u8, GetData: InspectionMultiBufferGetDataPtr,
|
|
progress: ::std::os::raw::c_int,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectHelperTransformRegister(
|
|
kw: *const SCTransformTableElmt,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCSigMatchAppendSMToList(
|
|
arg1: *mut DetectEngineCtx, arg2: *mut Signature, arg3: u16, arg4: *mut SigMatchCtx,
|
|
arg5: ::std::os::raw::c_int,
|
|
) -> *mut SigMatch;
|
|
}
|
|
extern "C" {
|
|
pub fn SCDetectSignatureSetAppProto(
|
|
s: *mut Signature, alproto: AppProto,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
#[repr(i32)]
|
|
#[doc = " \\brief The various log levels\n NOTE: when adding new level, don't forget to update SCLogMapLogLevelToSyslogLevel()\n or it may result in logging to syslog with LOG_EMERG priority."]
|
|
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
|
|
pub enum SCLogLevel {
|
|
SC_LOG_NOTSET = -1,
|
|
SC_LOG_NONE = 0,
|
|
SC_LOG_ERROR = 1,
|
|
SC_LOG_WARNING = 2,
|
|
SC_LOG_NOTICE = 3,
|
|
SC_LOG_INFO = 4,
|
|
SC_LOG_PERF = 5,
|
|
SC_LOG_CONFIG = 6,
|
|
SC_LOG_DEBUG = 7,
|
|
SC_LOG_LEVEL_MAX = 8,
|
|
}
|
|
extern "C" {
|
|
pub fn SCFatalErrorOnInitStatic(arg1: *const ::std::os::raw::c_char);
|
|
}
|
|
extern "C" {
|
|
pub fn SCLogGetLogLevel() -> SCLogLevel;
|
|
}
|
|
#[doc = " Structure of a configuration parameter."]
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SCConfNode_ {
|
|
pub name: *mut ::std::os::raw::c_char,
|
|
pub val: *mut ::std::os::raw::c_char,
|
|
pub is_seq: ::std::os::raw::c_int,
|
|
pub final_: ::std::os::raw::c_int,
|
|
pub parent: *mut SCConfNode_,
|
|
pub head: SCConfNode___bindgen_ty_1,
|
|
pub next: SCConfNode___bindgen_ty_2,
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SCConfNode___bindgen_ty_1 {
|
|
pub tqh_first: *mut SCConfNode_,
|
|
pub tqh_last: *mut *mut SCConfNode_,
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct SCConfNode___bindgen_ty_2 {
|
|
pub tqe_next: *mut SCConfNode_,
|
|
pub tqe_prev: *mut *mut SCConfNode_,
|
|
}
|
|
#[doc = " Structure of a configuration parameter."]
|
|
pub type SCConfNode = [u64; 8usize];
|
|
extern "C" {
|
|
pub fn SCConfInit();
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfDeInit();
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetRootNode() -> *mut SCConfNode;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGet(
|
|
name: *const ::std::os::raw::c_char, vptr: *mut *const ::std::os::raw::c_char,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetInt(
|
|
name: *const ::std::os::raw::c_char, val: *mut intmax_t,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetBool(
|
|
name: *const ::std::os::raw::c_char, val: *mut ::std::os::raw::c_int,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetDouble(
|
|
name: *const ::std::os::raw::c_char, val: *mut f64,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetFloat(
|
|
name: *const ::std::os::raw::c_char, val: *mut f32,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfSet(
|
|
name: *const ::std::os::raw::c_char, val: *const ::std::os::raw::c_char,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfSetFromString(
|
|
input: *const ::std::os::raw::c_char, final_: ::std::os::raw::c_int,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfSetFinal(
|
|
name: *const ::std::os::raw::c_char, val: *const ::std::os::raw::c_char,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfDump();
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeDump(node: *const SCConfNode, prefix: *const ::std::os::raw::c_char);
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeNew() -> *mut SCConfNode;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeFree(arg1: *mut SCConfNode);
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetNode(key: *const ::std::os::raw::c_char) -> *mut SCConfNode;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfCreateContextBackup();
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfRestoreContextBackup();
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeLookupChild(
|
|
node: *const SCConfNode, key: *const ::std::os::raw::c_char,
|
|
) -> *mut SCConfNode;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeLookupChildValue(
|
|
node: *const SCConfNode, key: *const ::std::os::raw::c_char,
|
|
) -> *const ::std::os::raw::c_char;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeRemove(arg1: *mut SCConfNode);
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfRegisterTests();
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeChildValueIsTrue(
|
|
node: *const SCConfNode, key: *const ::std::os::raw::c_char,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfValIsTrue(val: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfValIsFalse(val: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodePrune(node: *mut SCConfNode);
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfRemove(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeHasChildren(node: *const SCConfNode) -> bool;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetChildWithDefault(
|
|
base: *const SCConfNode, dflt: *const SCConfNode, name: *const ::std::os::raw::c_char,
|
|
) -> *mut SCConfNode;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeLookupKeyValue(
|
|
base: *const SCConfNode, key: *const ::std::os::raw::c_char,
|
|
value: *const ::std::os::raw::c_char,
|
|
) -> *mut SCConfNode;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetChildValue(
|
|
base: *const SCConfNode, name: *const ::std::os::raw::c_char,
|
|
vptr: *mut *const ::std::os::raw::c_char,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetChildValueInt(
|
|
base: *const SCConfNode, name: *const ::std::os::raw::c_char, val: *mut intmax_t,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetChildValueBool(
|
|
base: *const SCConfNode, name: *const ::std::os::raw::c_char,
|
|
val: *mut ::std::os::raw::c_int,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetChildValueWithDefault(
|
|
base: *const SCConfNode, dflt: *const SCConfNode, name: *const ::std::os::raw::c_char,
|
|
vptr: *mut *const ::std::os::raw::c_char,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetChildValueIntWithDefault(
|
|
base: *const SCConfNode, dflt: *const SCConfNode, name: *const ::std::os::raw::c_char,
|
|
val: *mut intmax_t,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetChildValueBoolWithDefault(
|
|
base: *const SCConfNode, dflt: *const SCConfNode, name: *const ::std::os::raw::c_char,
|
|
val: *mut ::std::os::raw::c_int,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeIsSequence(node: *const SCConfNode) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfSetIfaceNode(
|
|
ifaces_node_name: *const ::std::os::raw::c_char, iface: *const ::std::os::raw::c_char,
|
|
) -> *mut SCConfNode;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfSetRootAndDefaultNodes(
|
|
ifaces_node_name: *const ::std::os::raw::c_char, iface: *const ::std::os::raw::c_char,
|
|
if_root: *mut *mut SCConfNode, if_default: *mut *mut SCConfNode,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfNodeGetNodeOrCreate(
|
|
parent: *mut SCConfNode, name: *const ::std::os::raw::c_char, final_: ::std::os::raw::c_int,
|
|
) -> *mut SCConfNode;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetFirstNode(parent: *const SCConfNode) -> *mut SCConfNode;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetNextNode(node: *const SCConfNode) -> *mut SCConfNode;
|
|
}
|
|
extern "C" {
|
|
pub fn SCConfGetValueNode(node: *const SCConfNode) -> *const ::std::os::raw::c_char;
|
|
}
|
|
pub type ProbingParserFPtr = ::std::option::Option<
|
|
unsafe extern "C" fn(
|
|
f: *const Flow,
|
|
flags: u8,
|
|
input: *const u8,
|
|
input_len: u32,
|
|
rdir: *mut u8,
|
|
) -> AppProto,
|
|
>;
|
|
extern "C" {
|
|
#[doc = " PP registration"]
|
|
pub fn SCAppLayerProtoDetectPPRegister(
|
|
ipproto: u8, portstr: *const ::std::os::raw::c_char, alproto: AppProto, min_depth: u16,
|
|
max_depth: u16, direction: u8, ProbingParser1: ProbingParserFPtr,
|
|
ProbingParser2: ProbingParserFPtr,
|
|
);
|
|
}
|
|
extern "C" {
|
|
#[doc = " \\retval bool 0 if no config was found, 1 if config was found"]
|
|
pub fn SCAppLayerProtoDetectPPParseConfPorts(
|
|
ipproto_name: *const ::std::os::raw::c_char, ipproto: u8,
|
|
alproto_name: *const ::std::os::raw::c_char, alproto: AppProto, min_depth: u16,
|
|
max_depth: u16, ProbingParserTs: ProbingParserFPtr, ProbingParserTc: ProbingParserFPtr,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
#[doc = " \\brief Registers a case-sensitive pattern for protocol detection."]
|
|
pub fn SCAppLayerProtoDetectPMRegisterPatternCS(
|
|
ipproto: u8, alproto: AppProto, pattern: *const ::std::os::raw::c_char, depth: u16,
|
|
offset: u16, direction: u8,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCAppLayerProtoDetectPMRegisterPatternCSwPP(
|
|
ipproto: u8, alproto: AppProto, pattern: *const ::std::os::raw::c_char, depth: u16,
|
|
offset: u16, direction: u8, PPFunc: ProbingParserFPtr, pp_min_depth: u16,
|
|
pp_max_depth: u16,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
#[doc = " \\brief Registers a case-insensitive pattern for protocol detection."]
|
|
pub fn SCAppLayerProtoDetectPMRegisterPatternCI(
|
|
ipproto: u8, alproto: AppProto, pattern: *const ::std::os::raw::c_char, depth: u16,
|
|
offset: u16, direction: u8,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
pub fn SCAppLayerRequestProtocolTLSUpgrade(f: *mut Flow) -> bool;
|
|
}
|
|
extern "C" {
|
|
pub fn SCAppLayerForceProtocolChange(f: *mut Flow, new_proto: AppProto);
|
|
}
|
|
extern "C" {
|
|
#[doc = " \\brief Given a protocol name, checks if proto detection is enabled in\n the conf file.\n\n \\param alproto Name of the app layer protocol.\n\n \\retval 1 If enabled.\n \\retval 0 If disabled."]
|
|
pub fn SCAppLayerProtoDetectConfProtoDetectionEnabled(
|
|
ipproto: *const ::std::os::raw::c_char, alproto: *const ::std::os::raw::c_char,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
extern "C" {
|
|
#[doc = " \\brief Given a protocol name, checks if proto detection is enabled in\n the conf file.\n\n \\param alproto Name of the app layer protocol.\n \\param default_enabled enable by default if not in the configuration file\n\n \\retval 1 If enabled.\n \\retval 0 If disabled."]
|
|
pub fn SCAppLayerProtoDetectConfProtoDetectionEnabledDefault(
|
|
ipproto: *const ::std::os::raw::c_char, alproto: *const ::std::os::raw::c_char,
|
|
default_enabled: bool,
|
|
) -> ::std::os::raw::c_int;
|
|
}
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct AppLayerParserState_ {
|
|
_unused: [u8; 0],
|
|
}
|
|
pub type AppLayerParserState = AppLayerParserState_;
|
|
extern "C" {
|
|
pub fn SCAppLayerParserRegisterParserAcceptableDataDirection(
|
|
ipproto: u8, alproto: AppProto, direction: u8,
|
|
);
|
|
}
|
|
extern "C" {
|
|
pub fn SCAppLayerParserSetStreamDepth(ipproto: u8, alproto: AppProto, stream_depth: u32);
|
|
}
|
|
extern "C" {
|
|
pub fn SCAppLayerParserStateSetFlag(pstate: *mut AppLayerParserState, flag: u16);
|
|
}
|
|
extern "C" {
|
|
pub fn SCAppLayerParserStateIssetFlag(pstate: *mut AppLayerParserState, flag: u16) -> u16;
|
|
}
|