summaryrefslogtreecommitdiff
path: root/scanner/session_based_scanner.c
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2024-11-27 10:27:34 +0000
committerliuxueli <[email protected]>2024-11-27 10:27:34 +0000
commitad02793073353103ccccf3fab1afdd6cc30946d5 (patch)
treeb7d8bf1fad5567ccf830daa8ba6c64927b738a85 /scanner/session_based_scanner.c
parent38307ed232012dcbd44bd95167b8f37c7186d1fb (diff)
scanner and security enforcer rebase developdev-scanner
Diffstat (limited to 'scanner/session_based_scanner.c')
-rw-r--r--scanner/session_based_scanner.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/scanner/session_based_scanner.c b/scanner/session_based_scanner.c
new file mode 100644
index 0000000..a154b68
--- /dev/null
+++ b/scanner/session_based_scanner.c
@@ -0,0 +1,72 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "stellar/utils.h"
+#include "stellar/session.h"
+
+#include "attribute_kv.h"
+#include "session_based_scanner.h"
+
+struct session_scanner
+{
+ int exdata_idx;
+ struct scannner *scanner;
+ struct logger *logger;
+};
+
+// static void session_scanner_exdata_free(int idx __unused, void *ex_ptr, void *arg __unused)
+// {
+// if(ex_ptr==NULL)return;
+// FREE(ex_ptr);
+// }
+
+const struct utable_kv *session_scanner_get_attribute(struct session_scanner *sess_scanner, struct session *sess, enum ATTRIBUTE_KV_INDEX index)
+{
+ if(sess_scanner==NULL || sess==NULL || index>=ATTRIBUTE_KV_MAX || index<=ATTRIBUTE_KV_UNKNOWN)
+ {
+ return NULL;
+ }
+
+ return attribute_kv_get((struct attribute_kv *)session_get_exdata(sess, sess_scanner->exdata_idx), index);
+}
+
+void session_based_scanner_node_entry(struct packet *pkt __attribute__((unused)), struct module *mod __attribute__((unused)))
+{
+
+}
+
+struct session_scanner *session_scanner_new(struct scanner *scanner)
+{
+ if(scanner==NULL)
+ {
+ return NULL;
+ }
+
+ struct session_scanner *sess_scanner=CALLOC(struct session_scanner, 1);
+// sess_scanner->scanner=scanner;
+// sess_scanner->logger=module_manager_get_logger(mod_mgr);
+
+// sess_scanner->exdata_idx=session_manager_new_session_exdata_index(sess_mgr, "SCANNER_EXDATA_SESSION", session_scanner_exdata_free, NULL);
+// if(sess_scanner->exdata_idx<0)
+// {
+// STELLAR_LOG_FATAL(sess_scanner->logger, SCANNER_MODULE_NAME, "session_scanner_new failed to create exdata index");
+// goto INIT_ERROR;
+// }
+
+ return sess_scanner;
+
+// // INIT_ERROR:
+// // session_scanner_free(sess_scanner);
+// return NULL;
+}
+
+void session_scanner_free(struct session_scanner *sess_scanner)
+{
+ if(sess_scanner==NULL)
+ {
+ return ;
+ }
+
+ FREE(sess_scanner);
+} \ No newline at end of file