#include #include #include #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); }