diff --git a/bin/tsg_static_tableinfo.conf b/bin/tsg_static_tableinfo.conf index e73a70a..6a40ae0 100644 --- a/bin/tsg_static_tableinfo.conf +++ b/bin/tsg_static_tableinfo.conf @@ -93,4 +93,5 @@ 79 TSG_SECURITY_TUNNEL virtual TSG_OBJ_TUNNEL_ID -- 80 TSG_OBJ_FLAG flag -- 81 TSG_SECURITY_FLAG virtual TSG_OBJ_FLAG -- -82 TRAFFIC_SHAPING_PROFILE plugin {"key":1,"valid":7} \ No newline at end of file +82 TRAFFIC_SHAPING_PROFILE plugin {"key":1,"valid":7} +83 T_VSYS_INFO plugin {"key":1,"valid":3} diff --git a/ctest/CMakeLists.txt b/ctest/CMakeLists.txt index 1179b3b..cf8a9d9 100644 --- a/ctest/CMakeLists.txt +++ b/ctest/CMakeLists.txt @@ -10,10 +10,10 @@ add_test(NAME COPY_GTEST_PROTO_CONF COMMAND sh -c "cp -r ${CMAKE_SOURCE_DIR}/bin add_test(NAME COPY_GTEST_TABLEINFO COMMAND sh -c "cp -r ${CMAKE_SOURCE_DIR}/bin/tsg_static_tableinfo.conf ${CMAKE_BINARY_DIR}/testing/tsgconf/") add_test(NAME COPY_GTEST_MAAT_RULE COMMAND sh -c "cp -r ${CMAKE_SOURCE_DIR}/test/bin/gtest_maat.json ${CMAKE_BINARY_DIR}/testing/tsgconf/tsg_maat.json") -add_test(NAME COPY_GTEST_RULE_BIN COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/test/src/gtest_rule ${CMAKE_BINARY_DIR}/testing/") +#add_test(NAME COPY_GTEST_RULE_BIN COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/test/src/gtest_rule ${CMAKE_BINARY_DIR}/testing/") add_test(NAME COPY_GTEST_MASTER_BIN COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/test/src/gtest_master ${CMAKE_BINARY_DIR}/testing/") set(GTEST_RUN_DIR ${CMAKE_BINARY_DIR}/testing) -add_test(NAME GTEST_RULE COMMAND gtest_rule WORKING_DIRECTORY ${GTEST_RUN_DIR}) +#add_test(NAME GTEST_RULE COMMAND gtest_rule WORKING_DIRECTORY ${GTEST_RUN_DIR}) add_test(NAME GTEST_MASTER COMMAND gtest_master WORKING_DIRECTORY ${GTEST_RUN_DIR}) diff --git a/src/tsg_rule.cpp b/src/tsg_rule.cpp index ac6381b..416082f 100644 --- a/src/tsg_rule.cpp +++ b/src/tsg_rule.cpp @@ -1597,6 +1597,19 @@ void mirrored_profile_free(int table_id, MAAT_PLUGIN_EX_DATA* ad, long argl, voi } } +void session_log_profile_new(int table_id, const char* key, const char* table_line, MAAT_PLUGIN_EX_DATA* ad, long argl, void *argp) +{ + g_tsg_para.session_record_switch=tsg_get_column_integer_value(table_line, 2); +} + +void session_log_profile_dup(int table_id, MAAT_PLUGIN_EX_DATA *to, MAAT_PLUGIN_EX_DATA *from, long argl, void *argp) +{ +} + +void session_log_profile_free(int table_id, MAAT_PLUGIN_EX_DATA* ad, long argl, void *argp) +{ +} + void tunnel_catalog_new(int table_id, const char* key, const char* table_line, MAAT_PLUGIN_EX_DATA* ad, long argl, void *argp) { struct tunnel_catalog *t_catalog=(struct tunnel_catalog *)calloc(sizeof(struct tunnel_catalog), 1); @@ -1898,6 +1911,7 @@ int tsg_rule_init(const char* conffile, void *logger) MESA_load_profile_string_def(conffile, "MAAT", "TUNNEL_LABEL_TABLE", g_tsg_para.table_name[TABLE_TUNNEL_LABEL], MAX_TABLE_NAME_LEN, "TSG_TUNNEL_LABEL"); MESA_load_profile_string_def(conffile, "MAAT", "SESSION_FLAG_TABLE", g_tsg_para.table_name[TABLE_SESSION_FLAGS], MAX_TABLE_NAME_LEN, "TSG_SECURITY_FLAG"); + MESA_load_profile_string_def(conffile, "MAAT", "SESSION_RECORD_TABLE", g_tsg_para.table_name[TABLE_SESSION_LOG], MAX_TABLE_NAME_LEN, "T_VSYS_INFO"); MESA_load_profile_int_def(conffile, "MAAT","LOG_LEVEL", &log_level, 30); MESA_load_profile_string_def(conffile, "MAAT", "LOG_PATH", log_path, sizeof(log_path), "./tsglog/maat/tsg_maat.log"); @@ -2079,6 +2093,21 @@ int tsg_rule_init(const char* conffile, void *logger) return -1; } + ret=Maat_plugin_EX_register(g_tsg_maat_feather, + g_tsg_para.table_id[TABLE_SESSION_LOG], + session_log_profile_new, + session_log_profile_free, + session_log_profile_dup, + NULL, + 0, + NULL); + + if(ret<0) + { + MESA_handle_runtime_log(g_tsg_para.maat_logger, RLOG_LV_FATAL, "REGISTER_TABLE", "Maat_plugin_EX_register failed, table_name: %s", g_tsg_para.table_name[TABLE_SESSION_LOG]); + return -1; + } + ret=Maat_bool_plugin_EX_register(g_tsg_maat_feather, g_tsg_para.table_id[TABLE_TUNNEL_CATALOG], tunnel_catalog_new, @@ -3450,4 +3479,3 @@ int tsg_fetch_hited_security_result(struct Maat_rule_t *hited_result, int hited_ return result_cnt; } - diff --git a/src/tsg_send_log.cpp b/src/tsg_send_log.cpp index 8cec5f7..0414626 100644 --- a/src/tsg_send_log.cpp +++ b/src/tsg_send_log.cpp @@ -2083,6 +2083,11 @@ int send_log(struct tsg_log_instance_t *_instance, struct TLD_handle_t *_handle, int fs_id=0,ret=0,repeat_cnt=0; int policy_id[MAX_RESULT_NUM]={0}; + if(g_tsg_para.session_record_switch==0 && (p_result[0].service_id==2 || p_result[0].service_id==6 || p_result[0].service_id==7)) + { + return 0; + } + for(int i=0;i -g_tsg_para_t g_tsg_para; -struct id2field g_tsg_proto_name2id[PROTO_MAX]={{PROTO_UNKONWN, 0, "unknown"}, - {PROTO_IPv4, 0, "IPV4"}, - {PROTO_IPv6, 0, "IPV6"}, - {PROTO_TCP, 0, "TCP"}, - {PROTO_UDP, 0, "UDP"}, - {PROTO_HTTP, 0, "HTTP"}, - {PROTO_MAIL, 0, "MAIL"}, - {PROTO_DNS, 0, "DNS"}, - {PROTO_FTP, 0, "FTP"}, - {PROTO_SSL, 0, "SSL"}, - {PROTO_SIP, 0, "SIP"}, - {PROTO_BGP, 0, "BGP"}, - {PROTO_STREAMING_MEDIA, 0, "STREAMING_MEDIA"}, - {PROTO_QUIC, 0, "QUIC"}, - {PROTO_SSH, 0, "SSH"}, - {PROTO_SMTP, 0, "SMTP"}, - {PROTO_IMAP, 0, "IMAP"}, - {PROTO_POP3, 0, "POP3"}, - {PROTO_RTP, 0, "RTP"}, - {PROTO_APP, 0, "BASE"}, - {PROTO_L2TP, 0, "L2TP"}, - {PROTO_PPTP, 0, "PPTP"}, - {PROTO_STRATUM, 0, "Stratum"}, - {PROTO_RDP, 0, "RDP"}, - {PROTO_DTLS, 0, "DTLS"} - }; - -int app_identify_result_cb(const struct streaminfo *a_stream, int bridge_id, void *data) -{ - return 0; -} - -int session_flags_identify_result_cb(const struct streaminfo *a_stream, int bridge_id, void *data) -{ - return 0; -} - -unsigned int tsg_l7_protocol_name2id(const char *l7_protocol_name) -{ - return 0; -} - -void set_session_attribute_label(const struct streaminfo *a_stream, enum TSG_ATTRIBUTE_TYPE type, void *value, int value_len, int thread_seq) -{ -} - -int tsg_get_umts_user_info(const struct streaminfo *a_stream, struct umts_user_info **user_info) -{ - return 0; -} - - TEST(MasterTest, SetVlan) { //int ret=set_vlan(NULL, NULL, NULL, 0, NULL, LOG_COMMON_TUNNELS_VLAN_SRC_ID);