suricata
detect-engine-port.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int DetectPortParse (const DetectEngineCtx *, DetectPort **head, const char *str)
 Function for parsing port strings. More...
 
DetectPortDetectPortCopySingle (DetectEngineCtx *, DetectPort *)
 Function that return a copy of DetectPort src sigs. More...
 
int DetectPortInsert (DetectEngineCtx *, DetectPort **, DetectPort *)
 function for inserting a port group object. This also makes sure SigGroupContainer lists are handled correctly. More...
 
void DetectPortCleanupList (const DetectEngineCtx *de_ctx, DetectPort *head)
 Free a DetectPort list and each of its members. More...
 
DetectPortDetectPortLookupGroup (DetectPort *dp, uint16_t port)
 Function that find the group matching address in a group head. More...
 
bool DetectPortListsAreEqual (DetectPort *list1, DetectPort *list2)
 Checks if two port group lists are equal. More...
 
void DetectPortPrint (DetectPort *)
 Helper function that print the DetectPort info. More...
 
void DetectPortPrintList (DetectPort *head)
 Helper function used to print the list of ports present in this DetectPort list. More...
 
int DetectPortCmp (DetectPort *, DetectPort *)
 Function that compare port groups. More...
 
void DetectPortFree (const DetectEngineCtx *de_ctx, DetectPort *)
 Free a DetectPort and its members. More...
 
int DetectPortTestConfVars (void)
 
DetectPortDetectPortHashLookup (DetectEngineCtx *de_ctx, DetectPort *dp)
 Used to lookup a DetectPort hash from the detection engine context DetectPort hash table. More...
 
void DetectPortHashFree (DetectEngineCtx *de_ctx)
 Frees the hash table - DetectEngineCtx->sgh_hash_table, allocated by DetectPortInit() function. More...
 
int DetectPortHashAdd (DetectEngineCtx *de_ctx, DetectPort *dp)
 Adds a DetectPort to the detection engine context DetectPort hash table. More...
 
int DetectPortHashInit (DetectEngineCtx *de_ctx)
 Initializes the hash table in the detection engine context to hold the DetectPort hash. More...
 
void DetectPortTests (void)
 

Detailed Description

Function Documentation

void DetectPortCleanupList ( const DetectEngineCtx de_ctx,
DetectPort head 
)

Free a DetectPort list and each of its members.

Parameters
headPointer to the DetectPort list head

Definition at line 120 of file detect-engine-port.c.

References DetectPortFree(), DetectPort_::next, and next.

Referenced by AppLayerProtoDetectPPRegister(), DecodeVXLANEnabledForPort(), DetectEngineCtxFree(), DetectPortHashFree(), DetectPortListsAreEqual(), DetectPortParse(), DetectPortTestConfVars(), DetectSetupParseRegexes(), PortParse(), SigAddressCleanupStage1(), and SigFree().

Here is the call graph for this function:

Here is the caller graph for this function:

int DetectPortCmp ( DetectPort a,
DetectPort b 
)

Function that compare port groups.

Parameters
apointer to DetectPort "a"
bpointer to DetectPort "b"
Return values
PORT_XX(Port enum value, XX is EQ, ES, EB, LE, etc)
PORT_ERon error

Definition at line 550 of file detect-engine-port.c.

References BUG_ON, DetectPort_::flags, DetectPort_::port, DetectPort_::port2, PORT_EB, PORT_EQ, PORT_ER, PORT_ES, PORT_FLAG_ANY, PORT_GE, PORT_GT, PORT_LE, and PORT_LT.

Referenced by DetectPortHashFree(), DetectPortInsert(), DetectPortListsAreEqual(), and DetectSetupParseRegexes().

Here is the caller graph for this function:

DetectPort* DetectPortCopySingle ( DetectEngineCtx de_ctx,
DetectPort src 
)

Function that return a copy of DetectPort src sigs.

Parameters
de_ctxPointer to the current Detection Engine Context
srcPointer to a DetectPort group to copy
Return values
Pointerto a DetectPort instance (copy of src)
NULLon error

Definition at line 606 of file detect-engine-port.c.

References dst, DetectPort_::port, DetectPort_::port2, DetectPort_::sh, and SigGroupHeadCopySigs().

Referenced by DetectPortListsAreEqual(), and PacketCreateMask().

Here is the call graph for this function:

Here is the caller graph for this function:

void DetectPortFree ( const DetectEngineCtx de_ctx,
DetectPort dp 
)

Free a DetectPort and its members.

Parameters
dpPointer to the DetectPort that has to be freed.

Definition at line 79 of file detect-engine-port.c.

References DetectPort_::flags, PORT_SIGGROUPHEAD_COPY, SCFree, DetectPort_::sh, and SigGroupHeadFree().

Referenced by CreateGroupedPortList(), DetectPortCleanupList(), DetectPortHashFree(), DetectPortInsert(), DetectPortIsValidRange(), and DetectPortListsAreEqual().

Here is the call graph for this function:

Here is the caller graph for this function:

int DetectPortHashAdd ( DetectEngineCtx de_ctx,
DetectPort dp 
)

Adds a DetectPort to the detection engine context DetectPort hash table.

Parameters
de_ctxPointer to the detection engine context.
dpPointer to the DetectPort.
Return values
ret0 on Successfully adding the DetectPort; -1 on failure.

Definition at line 1438 of file detect-engine-port.c.

References DetectEngineCtx_::dport_hash_table, and HashListTableAdd().

Referenced by PacketCreateMask().

Here is the call graph for this function:

Here is the caller graph for this function:

int DetectPortHashInit ( DetectEngineCtx de_ctx)

Initializes the hash table in the detection engine context to hold the DetectPort hash.

Parameters
de_ctxPointer to the detection engine context.
Return values
0On success.
-1On failure.

Definition at line 1418 of file detect-engine-port.c.

References DetectEngineCtx_::dport_hash_table, and HashListTableInit().

Referenced by PacketCreateMask().

Here is the call graph for this function:

Here is the caller graph for this function:

DetectPort* DetectPortHashLookup ( DetectEngineCtx de_ctx,
DetectPort dp 
)

Used to lookup a DetectPort hash from the detection engine context DetectPort hash table.

Parameters
de_ctxPointer to the detection engine context.
sghPointer to the DetectPort.
Return values
rsghOn success a pointer to the DetectPort if the DetectPort is found in the hash table; NULL on failure.

Definition at line 1454 of file detect-engine-port.c.

References DetectEngineCtx_::dport_hash_table, HashListTableLookup(), SCEnter, and SCReturnPtr.

Referenced by PacketCreateMask().

Here is the call graph for this function:

Here is the caller graph for this function:

int DetectPortInsert ( DetectEngineCtx de_ctx,
DetectPort **  head,
DetectPort new 
)

function for inserting a port group object. This also makes sure SigGroupContainer lists are handled correctly.

Parameters
de_ctxPointer to the current detection engine context
headPointer to the DetectPort list head
dpDetectPort to search in the DetectPort list
Return values
1inserted
0not inserted, memory of new is freed
-1error
Todo:
rewrite to avoid recursive calls

Definition at line 149 of file detect-engine-port.c.

References BUG_ON, DetectPortCmp(), DetectPortFree(), DetectPortInsert(), DetectPortPrint(), DetectPort_::next, DetectPort_::port, DetectPort_::port2, PORT_EB, PORT_EQ, PORT_ER, PORT_ES, PORT_GE, PORT_GT, PORT_LE, PORT_LT, DetectPort_::prev, SCLogDebug, SCLogDebugEnabled(), DetectPort_::sh, SigGroupHeadClearSigs(), and SigGroupHeadCopySigs().

Referenced by DetectPortHashFree(), DetectPortInsert(), DetectPortListsAreEqual(), and PacketCreateMask().

Here is the call graph for this function:

Here is the caller graph for this function:

bool DetectPortListsAreEqual ( DetectPort list1,
DetectPort list2 
)
DetectPort* DetectPortLookupGroup ( DetectPort dp,
uint16_t  port 
)

Function that find the group matching address in a group head.

Parameters
dpPointer to DetectPort group where we try to find the group
portport to search/lookup
Return values
Pointerto the DetectPort group of our port if it matched
NULLif port is not in the list

Definition at line 669 of file detect-engine-port.c.

References DetectPort_::next.

Referenced by DetectPortHashFree(), IPOnlyMatchPacket(), and SigMatchSignaturesGetSgh().

Here is the caller graph for this function:

int DetectPortParse ( const DetectEngineCtx de_ctx,
DetectPort **  head,
const char *  str 
)

Function for parsing port strings.

Parameters
headPointer to the head of the DetectPort group list
strPointer to the port string
Return values
0on success
-1on error

Definition at line 1231 of file detect-engine-port.c.

References DetectPortCleanupList(), and SCLogDebug.

Referenced by AppLayerProtoDetectPPRegister(), CreateGroupedPortList(), DecodeVXLANEnabledForPort(), DetectEngineCtxFree(), DetectPortHashFree(), DetectSetupParseRegexes(), and SigMatchListSMBelongsTo().

Here is the call graph for this function:

Here is the caller graph for this function:

void DetectPortPrint ( DetectPort dp)

Helper function that print the DetectPort info.

Return values
none

Definition at line 646 of file detect-engine-port.c.

References DetectPort_::flags, DetectPort_::port, DetectPort_::port2, PORT_FLAG_ANY, and SCLogDebug.

Referenced by CreateGroupedPortList(), DetectPortHashFree(), DetectPortInsert(), DetectPortListsAreEqual(), DetectPortPrintList(), and DetectSetupParseRegexes().

Here is the caller graph for this function:

void DetectPortPrintList ( DetectPort head)

Helper function used to print the list of ports present in this DetectPort list.

Parameters
headPointer to the DetectPort list head

Definition at line 99 of file detect-engine-port.c.

References DetectPortPrint(), DetectPort_::next, and SCLogDebug.

Referenced by CreateGroupedPortList().

Here is the call graph for this function:

Here is the caller graph for this function:

int DetectPortTestConfVars ( void  )

Definition at line 1157 of file detect-engine-port.c.

References CleanVariableResolveList(), ConfGetNode(), DetectPortCleanupList(), ConfNode_::name, next, SC_ERR_INVALID_YAML_CONF_ENTRY, SCLogDebug, SCLogError, TAILQ_FOREACH, TAILQ_HEAD_INITIALIZER, and ConfNode_::val.

Referenced by PostRunDeinit().

Here is the call graph for this function:

Here is the caller graph for this function:

void DetectPortTests ( void  )

Definition at line 2435 of file detect-engine-port.c.

References UtRegisterTest().

Here is the call graph for this function: