aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/suricata/src/util-debug-filters.h
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/suricata/src/util-debug-filters.h')
-rw-r--r--framework/src/suricata/src/util-debug-filters.h136
1 files changed, 136 insertions, 0 deletions
diff --git a/framework/src/suricata/src/util-debug-filters.h b/framework/src/suricata/src/util-debug-filters.h
new file mode 100644
index 00000000..bbbcf9af
--- /dev/null
+++ b/framework/src/suricata/src/util-debug-filters.h
@@ -0,0 +1,136 @@
+/* Copyright (C) 2007-2010 Open Information Security Foundation
+ *
+ * You can copy, redistribute or modify this Program under the terms of
+ * the GNU General Public License version 2 as published by the Free
+ * Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
+/**
+ * \file
+ *
+ * \author Anoop Saldanha <anoopsaldanha@gmail.com>
+ */
+
+#ifndef __DEBUG_FILTERS_H__
+#define __DEBUG_FILTERS_H__
+
+#include <pthread.h>
+#include "threads.h"
+#include "util-mem.h"
+
+/**
+ * \brief Enum that holds the different kinds of filters available
+ */
+enum {
+ SC_LOG_FILTER_BL = 0,
+ SC_LOG_FILTER_WL = 1,
+ SC_LOG_FILTER_MAX = 2,
+};
+
+/**
+ * \brief Structure used to hold the line_no details of a FG filter
+ */
+typedef struct SCLogFGFilterLine_ {
+ int line;
+
+ struct SCLogFGFilterLine_ *next;
+} SCLogFGFilterLine;
+
+/**
+ * \brief structure used to hold the function details of a FG filter
+ */
+typedef struct SCLogFGFilterFunc_ {
+ char *func;
+ SCLogFGFilterLine *line;
+
+ struct SCLogFGFilterFunc_ *next;
+} SCLogFGFilterFunc;
+
+/**
+ * \brief Structure used to hold FG filters. Encapsulates filename details,
+ * func details, which inturn encapsulates the line_no details
+ */
+typedef struct SCLogFGFilterFile_ {
+ char *file;
+ SCLogFGFilterFunc *func;
+
+ struct SCLogFGFilterFile_ *next;
+} SCLogFGFilterFile;
+
+/**
+ * \brief Structure used to hold the thread_list used by FD filters
+ */
+typedef struct SCLogFDFilterThreadList_ {
+ int entered;
+ pthread_t t;
+// pid_t t;
+
+ struct SCLogFDFilterThreadList_ *next;
+} SCLogFDFilterThreadList;
+
+/**
+ * \brief Structure that holds the FD filters
+ */
+typedef struct SCLogFDFilter_ {
+ char *func;
+
+ struct SCLogFDFilter_ *next;
+} SCLogFDFilter;
+
+
+extern int sc_log_fg_filters_present;
+
+extern int sc_log_fd_filters_present;
+
+
+int SCLogAddFGFilterWL(const char *, const char *, int);
+
+int SCLogAddFGFilterBL(const char *, const char *, int);
+
+int SCLogMatchFGFilterBL(const char *, const char *, int);
+
+int SCLogMatchFGFilterWL(const char *, const char *, int);
+
+void SCLogReleaseFGFilters(void);
+
+int SCLogAddFDFilter(const char *);
+
+int SCLogPrintFDFilters(void);
+
+void SCLogReleaseFDFilters(void);
+
+int SCLogRemoveFDFilter(const char *);
+
+int SCLogCheckFDFilterEntry(const char *);
+
+void SCLogCheckFDFilterExit(const char *);
+
+int SCLogMatchFDFilter(const char *);
+
+int SCLogPrintFGFilters(void);
+
+void SCLogAddToFGFFileList(SCLogFGFilterFile *,
+ const char *,
+ const char *, int,
+ int);
+
+void SCLogAddToFGFFuncList(SCLogFGFilterFile *,
+ SCLogFGFilterFunc *,
+ const char *, int);
+
+void SCLogAddToFGFLineList(SCLogFGFilterFunc *,
+ SCLogFGFilterLine *,
+ int);
+
+void SCLogReleaseFDFilter(SCLogFDFilter *);
+#endif /* __DEBUG_H__ */