Go to the documentation of this file.
46 static void DetectCipServiceRegisterTests(
void);
48 static int g_cip_buffer_id = 0;
64 = DetectCipServiceRegisterTests;
87 const char delims[] =
",";
109 uint8_t input[3] = { 0, 0, 0 };
112 token = strtok_r(rulestr, delims, &save);
113 while (token != NULL)
123 if (!isdigit((
int) *token))
137 if (!isdigit((
int) *token))
145 unsigned long num = atol(token);
160 sscanf(token,
"%2" SCNu8, &var);
163 token = strtok_r(NULL, delims, &save);
179 SCLogDebug(
"DetectCipServiceParse - match attribute %d",
181 SCLogDebug(
"DetectCipServiceParse - attribute %d",
216 cipserviced = DetectCipServiceParse(rulestr);
217 if (cipserviced == NULL)
225 sm->
ctx = (
void *) cipserviced;
231 if (cipserviced != NULL)
232 DetectCipServiceFree(
de_ctx, cipserviced);
254 static int DetectCipServiceParseTest01 (
void)
257 cipserviced = DetectCipServiceParse(
"7");
260 DetectCipServiceFree(NULL, cipserviced);
267 static int DetectCipServiceSignatureTest01 (
void)
280 static void DetectCipServiceRegisterTests(
void)
283 DetectCipServiceParseTest01);
285 DetectCipServiceSignatureTest01);
299 static void DetectEnipCommandRegisterTests(
void);
301 static int g_enip_buffer_id = 0;
310 =
"rules for detecting EtherNet/IP command";
317 = DetectEnipCommandRegisterTests;
344 if (!(isdigit((
int) *rulestr))) {
345 SCLogError(
"invalid ENIP command %s", rulestr);
386 enipcmdd = DetectEnipCommandParse(rulestr);
387 if (enipcmdd == NULL)
395 sm->
ctx = (
void *) enipcmdd;
401 if (enipcmdd != NULL)
402 DetectEnipCommandFree(
de_ctx, enipcmdd);
425 static int DetectEnipCommandParseTest01 (
void)
429 enipcmdd = DetectEnipCommandParse(
"1");
433 DetectEnipCommandFree(NULL, enipcmdd);
440 static int DetectEnipCommandSignatureTest01 (
void)
455 static void DetectEnipCommandRegisterTests(
void)
458 DetectEnipCommandParseTest01);
460 DetectEnipCommandSignatureTest01);
int DetectSignatureSetAppProto(Signature *s, AppProto alproto)
#define FAIL_IF_NULL(expr)
Fail a test if expression evaluates to NULL.
void SigMatchAppendSMToList(Signature *s, SigMatch *new, const int list)
Append a SigMatch to the list type.
void(* Free)(DetectEngineCtx *, void *)
void UtRegisterTest(const char *name, int(*TestFn)(void))
Register unit test.
main detection engine ctx
int StringParseUint16(uint16_t *res, int base, size_t len, const char *str)
void DetectEngineCtxFree(DetectEngineCtx *)
Free a DetectEngineCtx::
Signature * DetectEngineAppendSig(DetectEngineCtx *, const char *)
Parse and append a Signature into the Detection Engine Context signature list.
#define SIG_FLAG_TOCLIENT
int(* Setup)(DetectEngineCtx *, Signature *, const char *)
#define FAIL_IF_NOT(expr)
Fail a test if expression evaluates to false.
int DetectBufferTypeGetByName(const char *name)
#define MAX_CIP_ATTRIBUTE
#define SIG_FLAG_TOSERVER
#define PASS
Pass the test.
void DetectAppLayerInspectEngineRegister2(const char *name, AppProto alproto, uint32_t dir, int progress, InspectEngineFuncPtr2 Callback2, InspectionBufferGetDataPtr GetData)
register inspect engine at start up time
#define SCReturnPtr(x, type)
int(* Match)(DetectEngineThreadCtx *, Packet *, const Signature *, const SigMatchCtx *)
SigMatch * SigMatchAlloc(void)
#define FAIL_IF(expr)
Fail a test if expression evaluates to true.
void DetectCipServiceRegister(void)
Registration function for cip_service: keyword.
SigTableElmt sigmatch_table[DETECT_TBLSIZE]
uint8_t DetectEngineInspectCIP(DetectEngineCtx *de_ctx, DetectEngineThreadCtx *det_ctx, const struct DetectEngineAppInspectionEngine_ *engine, const Signature *s, Flow *f, uint8_t flags, void *alstate, void *txv, uint64_t tx_id)
Do the content inspection & validation for a signature.
void DetectEnipCommandRegister(void)
Registration function for enip_command: keyword.
uint8_t DetectEngineInspectENIP(DetectEngineCtx *de_ctx, DetectEngineThreadCtx *det_ctx, const struct DetectEngineAppInspectionEngine_ *engine, const Signature *s, Flow *f, uint8_t flags, void *alstate, void *txv, uint64_t tx_id)
Do the content inspection & validation for a signature.
#define SCLogError(...)
Macro used to log ERROR messages.
a single match condition for a signature
DetectEngineCtx * DetectEngineCtxInit(void)
void(* RegisterTests)(void)