summaryrefslogtreecommitdiffstats
path: root/src/rust-context.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 17:39:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 17:39:49 +0000
commita0aa2307322cd47bbf416810ac0292925e03be87 (patch)
tree37076262a026c4b48c8a0e84f44ff9187556ca35 /src/rust-context.h
parentInitial commit. (diff)
downloadsuricata-a0aa2307322cd47bbf416810ac0292925e03be87.tar.xz
suricata-a0aa2307322cd47bbf416810ac0292925e03be87.zip
Adding upstream version 1:7.0.3.upstream/1%7.0.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/rust-context.h')
-rw-r--r--src/rust-context.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/rust-context.h b/src/rust-context.h
new file mode 100644
index 0000000..ba99ac6
--- /dev/null
+++ b/src/rust-context.h
@@ -0,0 +1,77 @@
+/* Copyright (C) 2017 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.
+ */
+
+#ifndef __RUST_CONTEXT_H__
+#define __RUST_CONTEXT_H__
+
+#include "flow.h"
+#include "detect.h"
+#include "detect-engine-state.h" //DetectEngineState
+
+#include "app-layer-krb5.h" //KRB5State, KRB5Transaction
+#include "app-layer-ike.h" //IKEState, IKETransaction
+#include "app-layer-ntp.h" //NTPState, NTPTransaction
+#include "app-layer-snmp.h" //SNMPState, SNMPTransaction
+#include "app-layer-tftp.h" //TFTPState, TFTPTransaction
+
+#include "util-debug.h"
+#include "util-file.h"
+
+// hack for include orders cf SCSha256
+typedef struct HttpRangeContainerBlock HttpRangeContainerBlock;
+
+struct AppLayerParser;
+
+typedef struct SuricataContext_ {
+ SCError (*SCLogMessage)(const SCLogLevel, const char *, const unsigned int, const char *,
+ const char *, const char *message);
+ void (*DetectEngineStateFree)(DetectEngineState *);
+ void (*AppLayerDecoderEventsSetEventRaw)(AppLayerDecoderEvents **,
+ uint8_t);
+ void (*AppLayerDecoderEventsFreeEvents)(AppLayerDecoderEvents **);
+ void (*AppLayerParserTriggerRawStreamReassembly)(Flow *, int direction);
+
+ void (*HttpRangeFreeBlock)(HttpRangeContainerBlock *);
+ bool (*HTPFileCloseHandleRange)(const StreamingBufferConfig *sbcfg, FileContainer *,
+ const uint16_t, HttpRangeContainerBlock *, const uint8_t *, uint32_t);
+
+ int (*FileOpenFileWithId)(FileContainer *, const StreamingBufferConfig *,
+ uint32_t track_id, const uint8_t *name, uint16_t name_len,
+ const uint8_t *data, uint32_t data_len, uint16_t flags);
+ int (*FileCloseFileById)(FileContainer *, const StreamingBufferConfig *, uint32_t track_id,
+ const uint8_t *data, uint32_t data_len, uint16_t flags);
+ int (*FileAppendDataById)(FileContainer *, const StreamingBufferConfig *, uint32_t track_id,
+ const uint8_t *data, uint32_t data_len);
+ int (*FileAppendGAPById)(FileContainer *, const StreamingBufferConfig *, uint32_t track_id,
+ const uint8_t *data, uint32_t data_len);
+ void (*FileContainerRecycle)(FileContainer *ffc, const StreamingBufferConfig *);
+
+ int (*AppLayerRegisterParser)(const struct AppLayerParser *p, AppProto alproto);
+
+} SuricataContext;
+
+extern const SuricataContext suricata_context;
+
+typedef struct SuricataFileContext_ {
+
+ const StreamingBufferConfig *sbcfg;
+
+} SuricataFileContext;
+
+const SuricataContext *SCGetContext(void);
+
+#endif /* !__RUST_CONTEXT_H__ */