if (hsd == NULL)
return -1;
- if ((hsd->log_flags & HTTP_LOG_GZIP_DATA) && (g_file_data.len > 0 ))
+ if ((hsd->log_flags & HTTP_LOG_GZIP_DATA) && ( get_file_data().len > 0 ))
return 0;
else
return -1;
{
if (!IsGzipData(flow))
{
- *buf = g_file_data.data;
- *len = g_file_data.len;
+ DataPointer& gzip = get_file_data();
+
+ *buf = gzip.data;
+ *len = gzip.len;
*type = EVENT_INFO_GZIP_DATA;
return 1;
}
if (hsd == NULL)
return -1;
- if ((hsd->log_flags & HTTP_LOG_JSNORM_DATA) && (g_file_data.len > 0 ))
+ if ((hsd->log_flags & HTTP_LOG_JSNORM_DATA) && ( get_file_data().len > 0 ))
return 0;
else
return -1;
{
if (!IsJSNormData(flow))
{
- *buf = g_file_data.data;
- *len = g_file_data.len;
+ DataPointer& js = get_file_data();
+
+ *buf = js.data;
+ *len = js.len;
*type = EVENT_INFO_JSNORM_DATA;
return 1;
}
THREAD_LOCAL bool do_detect;
THREAD_LOCAL bool do_detect_content;
+SO_PUBLIC void DisableDetect()
+{ do_detect_content = false; }
+
+SO_PUBLIC void DisableInspection()
+{ do_detect = do_detect_content = false; }
+
static THREAD_LOCAL char check_tags_flag;
static int CheckTagging(Packet*);
struct ProfileStats;
-extern SO_PUBLIC THREAD_LOCAL bool do_detect;
-extern SO_PUBLIC THREAD_LOCAL bool do_detect_content;
+extern THREAD_LOCAL bool do_detect;
+extern THREAD_LOCAL bool do_detect_content;
extern THREAD_LOCAL ProfileStats eventqPerfStats;
extern THREAD_LOCAL ProfileStats detectPerfStats;
// don't eval content rules
// non-content rules are still evaluated
-inline void DisableDetect()
-{
- do_detect_content = false;
-}
+SO_PUBLIC void DisableDetect();
// don't want to do any detection with rules
// (no content and no non-content)
-inline void DisableInspection()
-{
- do_detect = do_detect_content = false;
-}
+SO_PUBLIC void DisableInspection();
#endif
static THREAD_LOCAL TextLog* tlog = NULL;
static THREAD_LOCAL unsigned nEvents = 0;
+SO_PUBLIC DataPointer& get_file_data()
+{ return g_file_data; }
+
+SO_PUBLIC void set_file_data(uint8_t* p, unsigned n)
+{
+ g_file_data.data = p;
+ g_file_data.len = n;
+}
+
static void LogBuffer(const char* s, const uint8_t* p, unsigned n)
{
char hex[(3*LOG_CHARS)+1];
unsigned len;
};
-extern SO_PUBLIC THREAD_LOCAL DataPointer g_file_data;
+extern THREAD_LOCAL DataPointer g_file_data;
#define SetDetectLimit(pktPtr, altLen) \
{ \
#define IsLimitedDetect(pktPtr) (pktPtr->packet_flags & PKT_HTTP_DECODE)
-inline void set_file_data(uint8_t* p, unsigned n)
-{
- g_file_data.data = p;
- g_file_data.len = n;
-}
+SO_PUBLIC DataPointer& get_file_data();
+SO_PUBLIC void set_file_data(uint8_t*, unsigned);
// FIXIT-L event trace should be placed in its own files
void EventTrace_Init();
}
inline void DetectReset()
-{
- g_file_data.len = 0;
-}
+{ set_file_data(nullptr, 0); }
#endif
{
Profile profile(fileDataPerfStats);
- uint8_t* data = g_file_data.data;
- uint16_t len = g_file_data.len;
+ DataPointer& dp = get_file_data();
- if ( !data || !len )
+ if ( !dp.data || !dp.len )
return DETECTION_OPTION_NO_MATCH;
- c.set(s_name, data, len);
+ c.set(s_name, dp.data, dp.len);
return DETECTION_OPTION_MATCH;
}
{
LogCharData(log, (const char*)p->data, p->dsize);
- if ( g_file_data.len > 0 )
+ DataPointer& fdata = get_file_data();
+
+ if ( fdata.len > 0 )
{
TextLog_Print(log, "%s\n", "File data");
- LogCharData(log, (const char*)g_file_data.data, g_file_data.len);
+ LogCharData(log, (const char*)fdata.data, fdata.len);
}
}
else
detect_data.print(output, "Detect data");
get_classic_buffer(HTTP_BUFFER_CLIENT_BODY, 0, 0).print(output,
HttpApi::classic_buffer_names[HTTP_BUFFER_CLIENT_BODY-1]);
- if (g_file_data.len > 0)
+
+ DataPointer& body = get_file_data();
+ if (body.len > 0)
{
- Field(g_file_data.len, g_file_data.data).print(output, "file_data");
+ Field(body.len, body.data).print(output, "file_data");
}
HttpMsgSection::print_section_wrapup(output);
}