// 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 ,
mdns: add mdns parser, logger and detection
The mDNS support is based heavily on the DNS support, reusing the
existing DNS parser where possible. This meant adding variations on
DNS, as mDNS is a little different. Mainly being that *all* mDNS
traffic is to_server, yet there is still the concept of request and
responses.
Keywords added are:
- mdns.queries.rrname
- mdns.answers.rrname
- mdns.additionals.rrname
- mdns.authorities.rrname
- mdns.response.rrname
They are mostly in-line with the DNS keywords, except
mdns.answers.rdata which is a better than that mdns.response.rrname,
as its actually looking at the rdata, and not rrnames.
mDNS has its own logger that differs from the DNS logger:
- No grouped logging
- In answers/additionals/authorities, the rdata is logged in a field
that is named after the rdata type. For example, "txt" data is no
longer logged in the "rdata" field, but instead a "txt" field. We
currently already did this in DNS for fields that were not a single
buffer, like SOA, SRV, etc. So this makes things more consistent. And
gives query like semantics that the "grouped" object was trying to
provide.
- Types are logged in lower case ("txt" instead of "TXT")
- Flags are logged as an array: "flags": ["aa", "z"]
Ticket: #3952
2 months ago
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 ; 8 usize ] ;
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 ;
}