The DynamicEngineData structure defines the interface a detection engine uses to interact with snort itself. This includes functions for logging messages, errors, fatal errors, and debugging info as well as a means to register and check flowbits. It also includes a location to store rule-stubs for dynamic rules that are loaded, and it provides access to the normalized http and alternate data buffers. It is defined in sf_dynamic_engine.h as:
typedef struct _DynamicEngineData { int version; u_int8_t *altBuffer; UriInfo *uriBuffers[MAX_URIINFOS]; RegisterRule ruleRegister; RegisterBit flowbitRegister; CheckFlowbit flowbitCheck; DetectAsn1 asn1Detect; LogMsgFunc logMsg; LogMsgFunc errMsg; LogMsgFunc fatalMsg; char *dataDumpDirectory; GetPreprocRuleOptFuncs getPreprocOptFuncs; SetRuleData setRuleData; GetRuleData getRuleData; DebugMsgFunc debugMsg; #ifdef HAVE_WCHAR_H DebugWideMsgFunc debugWideMsg; #endif char **debugMsgFile; int *debugMsgLine; PCRECompileFunc pcreCompile; PCREStudyFunc pcreStudy; PCREExecFunc pcreExec; } DynamicEngineData;