diff options
| author | liuxueli <[email protected]> | 2024-11-27 10:27:34 +0000 |
|---|---|---|
| committer | liuxueli <[email protected]> | 2024-11-27 10:27:34 +0000 |
| commit | ad02793073353103ccccf3fab1afdd6cc30946d5 (patch) | |
| tree | b7d8bf1fad5567ccf830daa8ba6c64927b738a85 /scanner/session_based_scanner.c | |
| parent | 38307ed232012dcbd44bd95167b8f37c7186d1fb (diff) | |
scanner and security enforcer rebase developdev-scanner
Diffstat (limited to 'scanner/session_based_scanner.c')
| -rw-r--r-- | scanner/session_based_scanner.c | 72 |
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 |
