diff --git a/src/threads.h b/src/threads.h index 3f8f109aab..a9942b9746 100644 --- a/src/threads.h +++ b/src/threads.h @@ -27,6 +27,8 @@ #ifndef __THREADS_H__ #define __THREADS_H__ +#include "suricata-common.h" + #ifndef THREAD_NAME_LEN #define THREAD_NAME_LEN 16 #endif diff --git a/src/util-error.c b/src/util-error.c index 67c714cbec..754e750d38 100644 --- a/src/util-error.c +++ b/src/util-error.c @@ -28,6 +28,7 @@ #include "util-error.h" +thread_local SCError sc_errno = SC_OK; #define CASE_CODE(E) case E: return #E /** @@ -41,6 +42,10 @@ const char * SCErrorToString(SCError err) { switch (err) { CASE_CODE (SC_OK); + + CASE_CODE(SC_ENOMEM); + CASE_CODE(SC_EINVAL); + CASE_CODE (SC_ERR_MEM_ALLOC); CASE_CODE (SC_ERR_ACTION_ORDER); CASE_CODE (SC_ERR_PCRE_MATCH); diff --git a/src/util-error.h b/src/util-error.h index 8c3c7f341f..0615d2ce74 100644 --- a/src/util-error.h +++ b/src/util-error.h @@ -24,10 +24,13 @@ #ifndef __ERROR_H__ #define __ERROR_H__ - /* different error types */ typedef enum { SC_OK, + + SC_ENOMEM, + SC_EINVAL, + SC_ERR_MEM_ALLOC, SC_ERR_PCRE_MATCH, SC_ERR_ACTION_ORDER, @@ -391,5 +394,8 @@ typedef enum { const char *SCErrorToString(SCError); +#include "threads.h" + +extern thread_local SCError sc_errno; #endif /* __ERROR_H__ */