create version
This commit is contained in:
54
CMakeLists.txt
Normal file
54
CMakeLists.txt
Normal file
@@ -0,0 +1,54 @@
|
||||
cmake_minimum_required (VERSION 2.8)
|
||||
|
||||
project(tsg_master)
|
||||
|
||||
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||
include(Version)
|
||||
|
||||
set(CMAKE_MACOSX_RPATH 0)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
||||
|
||||
include_directories(${PROJECT_SOURCE_DIR}/inc/)
|
||||
include_directories(/opt/MESA/include/)
|
||||
|
||||
option(ENABLE_WARNING_ALL "Enable all optional warnings which are desirable for normal code" TRUE)
|
||||
option(ENABLE_SANITIZE_ADDRESS "Enable AddressSanitizer" FALSE)
|
||||
option(ENABLE_SANITIZE_THREAD "Enable ThreadSanitizer" FALSE)
|
||||
|
||||
if(ENABLE_SANITIZE_ADDRESS)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
|
||||
elseif(ENABLE_SANITIZE_THREAD)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread -fno-omit-frame-pointer")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread -fno-omit-frame-pointer")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
|
||||
endif()
|
||||
|
||||
add_subdirectory (src)
|
||||
|
||||
set(CONFLIST /plug/platform/conflist_platform.inf)
|
||||
file(WRITE ${PROJECT_SOURCE_DIR}/install.sh "#!/bin/sh\r\n")
|
||||
file(APPEND ${PROJECT_SOURCE_DIR}/install.sh "DST=\${RPM_INSTALL_PREFIX}\r\n")
|
||||
file(APPEND ${PROJECT_SOURCE_DIR}/install.sh "mkdir -p \${DST}/plug/platform/\r\n")
|
||||
file(APPEND ${PROJECT_SOURCE_DIR}/install.sh "touch \${DST}${CONFLIST}\r\n")
|
||||
file(APPEND ${PROJECT_SOURCE_DIR}/install.sh "if [[ -z `grep -rn 'tsg_master.inf' \${DST}${CONFLIST}` ]];then\r\n")
|
||||
file(APPEND ${PROJECT_SOURCE_DIR}/install.sh "echo './plug/platform/tsg_master/tsg_master.inf' >> \${DST}/plug/platform/conflist_platform.inf\r\nfi\r\n")
|
||||
SET(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/install.sh")
|
||||
|
||||
file(WRITE ${PROJECT_SOURCE_DIR}/uninstall.sh "#!/bin/sh\r\n")
|
||||
file(APPEND ${PROJECT_SOURCE_DIR}/uninstall.sh "DST=\${RPM_INSTALL_PREFIX}\r\n")
|
||||
file(APPEND ${PROJECT_SOURCE_DIR}/uninstall.sh "mkdir -p \${DST}/plug/platform/\r\n")
|
||||
file(APPEND ${PROJECT_SOURCE_DIR}/uninstall.sh "sed -i '/tsg_master/d' \${DST}/plug/platform/conflist_platform.inf\r\n")
|
||||
SET(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/uninstall.sh")
|
||||
|
||||
install(FILES inc/soq_sendlog.h DESTINATION /opt/MESA/include/soq)
|
||||
install(FILES inc/soq_types.h DESTINATION /opt/MESA/include/soq)
|
||||
install(FILES inc/t1_public.h DESTINATION /opt/MESA/include/soq)
|
||||
install(FILES inc/t2_public.h DESTINATION /opt/MESA/include/soq)
|
||||
install(FILES ddp/inc/ddp.h DESTINATION /opt/MESA/include/soq)
|
||||
|
||||
include(Package)
|
||||
1268
autorevision.sh
Normal file
1268
autorevision.sh
Normal file
File diff suppressed because it is too large
Load Diff
41
cmake/Package.cmake
Normal file
41
cmake/Package.cmake
Normal file
@@ -0,0 +1,41 @@
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}-debug")
|
||||
else()
|
||||
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
|
||||
endif()
|
||||
|
||||
message(STATUS "Package: ${CPACK_PACKAGE_NAME}")
|
||||
|
||||
set(CPACK_PACKAGE_VECDOR "MESA")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}.${VERSION_BUILD}")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
set(CPACK_COMPONENTS_ALL devel)
|
||||
set(CPACK_RPM_PACKAGE_DEBUG 1)
|
||||
set(CPACK_RPM_COMPONENT_INSTALL OFF)
|
||||
set(CPACK_RPM_DEVEL_FILE_NAME "${PROJECT_NAME}-devel.rpm")
|
||||
set(CPACK_RPM_DEVEL_DEBUGINFO_FILE_NAME "${PROJECT_NAME}-devel-debuginfo.rpm")
|
||||
|
||||
# RPM Build
|
||||
set(CPACK_GENERATOR "RPM")
|
||||
set(CPACK_RPM_AUTO_GENERATED_FILE_NAME ON)
|
||||
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
||||
set(CPACK_RPM_PACKAGE_VENDOR "MESA")
|
||||
set(CPACK_RPM_PACKAGE_AUTOREQPROV "no")
|
||||
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
|
||||
set(CPACK_RPM_DEBUGINFO_PACKAGE ON)
|
||||
|
||||
|
||||
set(CPACK_BUILD_SOURCE_DIRS "${CMAKE_SOURCE_DIR}")
|
||||
|
||||
# Must uninstall the debug package before install release package
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CPACK_RPM_PACKAGE_CONFLICTS "${PROJECT_NAME}-debug")
|
||||
else()
|
||||
set(CPACK_RPM_PACKAGE_CONFLICTS ${PROJECT_NAME})
|
||||
# set(CPACK_STRIP_FILES TRUE)
|
||||
endif()
|
||||
|
||||
include(CPack)
|
||||
53
cmake/Version.cmake
Normal file
53
cmake/Version.cmake
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
# Using autorevision.sh to generate version information
|
||||
|
||||
set(__SOURCE_AUTORESIVISION ${CMAKE_SOURCE_DIR}/autorevision.sh)
|
||||
set(__AUTORESIVISION ${CMAKE_BINARY_DIR}/autorevision.sh)
|
||||
set(__VERSION_CACHE ${CMAKE_SOURCE_DIR}/version.txt)
|
||||
set(__VERSION_CONFIG ${CMAKE_BINARY_DIR}/version.cmake)
|
||||
|
||||
file(COPY ${__SOURCE_AUTORESIVISION} DESTINATION ${CMAKE_BINARY_DIR}
|
||||
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
|
||||
WORLD_READ WORLD_EXECUTE)
|
||||
|
||||
# execute autorevision.sh to generate version information
|
||||
execute_process(COMMAND ${__AUTORESIVISION} -t cmake -o ${__VERSION_CACHE}
|
||||
OUTPUT_FILE ${__VERSION_CONFIG} ERROR_QUIET)
|
||||
include(${__VERSION_CONFIG})
|
||||
|
||||
# extract major, minor, patch version from git tag
|
||||
string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VCS_TAG}")
|
||||
string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${VCS_TAG}")
|
||||
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${VCS_TAG}")
|
||||
|
||||
if(NOT VERSION_MAJOR)
|
||||
set(VERSION_MAJOR 1)
|
||||
endif()
|
||||
|
||||
if(NOT VERSION_MINOR)
|
||||
set(VERSION_MINOR 0)
|
||||
endif()
|
||||
|
||||
if(NOT VERSION_PATCH)
|
||||
set(VERSION_PATCH 0)
|
||||
endif()
|
||||
|
||||
set(VERSION "${VERSION_MAJOR}_${VERSION_MINOR}_${VERSION_PATCH}")
|
||||
set(VERSION_BUILD "${VCS_SHORT_HASH}")
|
||||
|
||||
# print information
|
||||
message(STATUS "Version: ${VERSION}-${VERSION_BUILD}")
|
||||
|
||||
if(NOT DEFINE_GIT_VERSION)
|
||||
option(DEFINE_GIT_VERSION "Set DEFINE_GIT_VERSION to OFF" OFF)
|
||||
|
||||
set(GIT_VERSION
|
||||
"${VERSION}-${CMAKE_BUILD_TYPE}-${VERSION_BUILD}-${VCS_BRANCH}-${VCS_TAG}-${VCS_DATE}")
|
||||
string(REGEX REPLACE "[-:+/\\.]" "_" GIT_VERSION ${GIT_VERSION})
|
||||
|
||||
if(DEFINE_GIT_VERSION)
|
||||
add_definitions(-DGIT_VERSION=${GIT_VERSION})
|
||||
option(DEFINE_GIT_VERSION "Set DEFINE_GIT_VERSION to OFF" ON)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
1
inc/tsg_entry.h
Normal file
1
inc/tsg_entry.h
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
131
inc/tsg_log_id.h
Normal file
131
inc/tsg_log_id.h
Normal file
@@ -0,0 +1,131 @@
|
||||
#ifndef __TSG_CABOT_LOG_ID_H__
|
||||
#define __TSG_CABOT_LOG_ID_H__
|
||||
|
||||
#define CABOT_LOG_OPT_POLICY_ID 1
|
||||
#define CABOT_LOG_OPT_POLICY_SERVICE 2
|
||||
#define CABOT_LOG_OPT_POLICY_ACTION 3
|
||||
#define CABOT_LOG_OPT_START_TIME 4
|
||||
#define CABOT_LOG_OPT_END_TIME 5
|
||||
#define CABOT_LOG_OPT_L4_PROTOCL 6
|
||||
#define CABOT_LOG_OPT_ADDRESS_TYPE 7
|
||||
#define CABOT_LOG_OPT_SERVER_IP 8
|
||||
#define CABOT_LOG_OPT_CLIENT_IP 9
|
||||
#define CABOT_LOG_OPT_SERVER_PORT 10
|
||||
#define CABOT_LOG_OPT_CLIENT_PORT 11
|
||||
#define CABOT_LOG_OPT_STREAM_DIR 12
|
||||
#define CABOT_LOG_OPT_ADDRESS_LIST 13
|
||||
|
||||
#define CABOT_LOG_OPT_ENTRANCE_ID 14
|
||||
#define CABOT_LOG_OPT_DEVICE_ID 15
|
||||
#define CABOT_LOG_OPT_LINK_ID 16
|
||||
#define CABOT_LOG_OPT_ISP 17
|
||||
#define CABOT_LOG_OPT_ENCAPSULATION 18
|
||||
#define CABOT_LOG_OPT_DIRECTION 19
|
||||
#define CABOT_LOG_OPT_SLED_IP 20
|
||||
|
||||
#define CABOT_LOG_OPT_USER_TAGS 21
|
||||
#define CABOT_LOG_OPT_USER_REGION 22
|
||||
#define CABOT_LOG_OPT_APP_ID 23
|
||||
#define CABOT_LOG_OPT_PROTOCIL_ID 24
|
||||
#define CABOT_LOG_OPT_C2S_PKT_NUM 25
|
||||
#define CABOT_LOG_OPT_S2C_PKT_NUM 26
|
||||
#define CABOT_LOG_OPT_C2S_BYTE_NUM 27
|
||||
#define CABOT_LOG_OPT_S2C_BYTE_NUM 28
|
||||
#define CABOT_LOG_OPT_CON_DURATION_MS 29
|
||||
#define CABOT_LOG_OPT_CON_LATENCY_MS 30
|
||||
#define CABOT_LOG_OPT_STREAM_TRACE_ID 31
|
||||
|
||||
#define CABOT_LOG_OPT_HTTP_URL 32
|
||||
#define CABOT_LOG_OPT_HTTP_REQUEST_LINE 33
|
||||
#define CABOT_LOG_OPT_HTTP_RESPONSE_LINE 34
|
||||
#define CABOT_LOG_OPT_HTTP_REQUEST_HEADER 35
|
||||
#define CABOT_LOG_OPT_HTTP_RESPONSE_HEADER 36
|
||||
#define CABOT_LOG_OPT_HTTP_REQUEST_BODY 37
|
||||
#define CABOT_LOG_OPT_HTTP_RESPONSE_BODY 38
|
||||
#define CABOT_LOG_OPT_HTTP_C2S_ISN 39
|
||||
#define CABOT_LOG_OPT_HTTP_PROXY_FLAG 40
|
||||
#define CABOT_LOG_OPT_HTTP_SEQUENCE 41
|
||||
#define CABOT_LOG_OPT_HTTP_SNAPSHOT 42
|
||||
#define CABOT_LOG_OPT_HTTP_COOKIE 43
|
||||
#define CABOT_LOG_OPT_HTTP_REFERER 44
|
||||
#define CABOT_LOG_OPT_HTTP_USER_AGENT 45
|
||||
#define CABOT_LOG_OPT_HTTP_CONTENT_LENGTH 46
|
||||
#define CABOT_LOG_OPT_HTTP_CONTENT_TYPE 47
|
||||
#define CABOT_LOG_OPT_HTTP_SET_COOKIE 48
|
||||
|
||||
|
||||
#define CABOT_LOG_OPT_MAIL_PROTOCOL 51
|
||||
#define CABOT_LOG_OPT_MAIL_SENDER 52
|
||||
#define CABOT_LOG_OPT_MAIL_RECEIVER 53
|
||||
#define CABOT_LOG_OPT_MAIL_SUBJECT 54
|
||||
#define CABOT_LOG_OPT_MAIL_CONTENT 55
|
||||
#define CABOT_LOG_OPT_MAIL_ATTACHMENT_NAME 56
|
||||
#define CABOT_LOG_OPT_MAIL_ATTACHMENT_CONTENT 57
|
||||
#define CABOT_LOG_OPT_MAIL_EML_FILE 58
|
||||
#define CABOT_LOG_OPT_MAIL_SNAPSHOT 59
|
||||
|
||||
|
||||
#define CABOT_LOG_OPT_DNS_MESSAGE_ID 61
|
||||
#define CABOT_LOG_OPT_DNS_QR 62
|
||||
#define CABOT_LOG_OPT_DNS_OPCODE 63
|
||||
#define CABOT_LOG_OPT_DNS_AA 64
|
||||
#define CABOT_LOG_OPT_DNS_TC 65
|
||||
#define CABOT_LOG_OPT_DNS_RD 66
|
||||
#define CABOT_LOG_OPT_DNS_RA 67
|
||||
#define CABOT_LOG_OPT_DNS_RCODE 68
|
||||
#define CABOT_LOG_OPT_DNS_QDCOUNT 69
|
||||
#define CABOT_LOG_OPT_DNS_ANCOUNT 70
|
||||
#define CABOT_LOG_OPT_DNS_NSCOUNT 71
|
||||
#define CABOT_LOG_OPT_DNS_ARCOUNT 72
|
||||
#define CABOT_LOG_OPT_DNS_QNAME 73
|
||||
#define CABOT_LOG_OPT_DNS_QTYPE 74
|
||||
#define CABOT_LOG_OPT_DNS_QCLASS 75
|
||||
#define CABOT_LOG_OPT_DNS_CNAME 76
|
||||
#define CABOT_LOG_OPT_DNS_SUB 77
|
||||
#define CABOT_LOG_OPT_DNS_RR 78
|
||||
|
||||
|
||||
#define CABOT_LOG_OPT_SSL_VERSION 81
|
||||
#define CABOT_LOG_OPT_SSL_SNI 82
|
||||
#define CABOT_LOG_OPT_SSL_SAN 83
|
||||
#define CABOT_LOG_OPT_SSL_CN 84
|
||||
|
||||
#define CABOT_LOG_OPT_FTP_URL 88
|
||||
#define CABOT_LOG_OPT_FTP_CONTENT 89
|
||||
|
||||
#define CABOT_LOG_OPT_VOIP_CALLING_ACCOUNT 90
|
||||
#define CABOT_LOG_OPT_VOIP_CALLED_ACCOUNT 91
|
||||
#define CABOT_LOG_OPT_VOIP_CALLING_NUMBER 92
|
||||
#define CABOT_LOG_OPT_VOIP_CALLED_NUMBER 93
|
||||
|
||||
#define CABOT_LOG_OPT_BGP_PACKET_TYPE 100
|
||||
#define CABOT_LOG_OPT_BGP_AS_NUM 101
|
||||
#define CABOT_LOG_OPT_BGP_ROUTE 102
|
||||
|
||||
#define CABOT_LOG_OPT_RADIUS_PACKET_TYPE 112
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCOUNT 113
|
||||
#define CABOT_LOG_OPT_RADIUS_CALLBACK_NUMBER 114
|
||||
#define CABOT_LOG_OPT_RADIUS_CALLBACK_ID 115
|
||||
#define CABOT_LOG_OPT_RADIUS_CALLED_STATION_ID 116
|
||||
#define CABOT_LOG_OPT_RADIUS_CALLING_STATION_ID 117
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCT_SESSION_ID 118
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCT_MULTI_SESSION_ID 119
|
||||
#define CABOT_LOG_OPT_RADIUS_NAS_IP_ADDRESS 120
|
||||
#define CABOT_LOG_OPT_RADIUS_FRAMED_IP_ADDRESS 121
|
||||
#define CABOT_LOG_OPT_RADIUS_FRAMED_IP_NETMASK 122
|
||||
#define CABOT_LOG_OPT_RADIUS_SERVICE_TYPE 123
|
||||
#define CABOT_LOG_OPT_RADIUS_FRAMED_MTU 124
|
||||
#define CABOT_LOG_OPT_RADIUS_SESSION_TIMEOUT 125
|
||||
#define CABOT_LOG_OPT_RADIUS_IDLE_TIMEOUT 126
|
||||
#define CABOT_LOG_OPT_RADIUS_TERMINATION_CATION 127
|
||||
#define CABOT_LOG_OPT_RADIUS_PROXY_STATE 128
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCT_STATUS_TYPE 129
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCT_INPUT_OCTETS 130
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCT_INPUT_PACKETS 131
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCT_OUTPUT_OCTETS 132
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCT_OUTPUT_PACKETS 133
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCT_TERMINATE_CAUSE 134
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCT_LINK_COUNT 135
|
||||
#define CABOT_LOG_OPT_RADIUS_ACCT_INTERIM_INTERVAL 136
|
||||
|
||||
#endif
|
||||
38
inc/tsg_rule.h
Normal file
38
inc/tsg_rule.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#ifndef __TSG_RULE_H__
|
||||
#define __TSG_RULE_H__
|
||||
|
||||
#include <MESA/Maat_rule.h>
|
||||
#include "tsg_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
|
||||
typedef enum _PULL_RESULT_TYPE
|
||||
{
|
||||
PULL_KNI_RESULT,
|
||||
PULL_FW_RESULT
|
||||
}PULL_RESULT_TYPE;
|
||||
|
||||
extern Maat_feather_t g_tsg_maat_feather;
|
||||
|
||||
|
||||
int tsg_scan_nesting_addr(Maat_feather_t maat_feather, const struct streaminfo *a_stream, tsg_protocol_t proto, scan_status_t *mid, Maat_rule_t*result, int result_num);
|
||||
|
||||
//return 0 if failed, return >0 on success;
|
||||
int tsg_pull_policy_result(PULL_RESULT_TYPE pull_result_type, Maat_rule_t *result, int result_num);
|
||||
|
||||
//return -1 if failed, return 0 on success;
|
||||
int tsg_shared_table_init(const char *conffile, Maat_feather_t maat_feather, void *logger);
|
||||
|
||||
//return -1 if failed, return 0 on success;
|
||||
int tsg_scan_shared_policy(Maat_feather_t maat_feather, void *pkt, int pkt_len, Maat_rule_t *result, int result_num, scan_status_t *mid, void *logger, int thread_seq);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
35
inc/tsg_send_log.h
Normal file
35
inc/tsg_send_log.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#ifndef __TSG_SEND_LOG_H__
|
||||
#define __TSG_SEND_LOG_H__
|
||||
|
||||
#include <MESA/Maat_rule.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
|
||||
struct _opt_unit_t
|
||||
{
|
||||
int opt_type;
|
||||
int opt_len;
|
||||
char *opt_value;
|
||||
};
|
||||
|
||||
typedef struct _tsg_log
|
||||
{
|
||||
int result_num;
|
||||
Maat_rule_t *result;
|
||||
struct streaminfo *a_stream;
|
||||
}tsg_log_t;
|
||||
|
||||
|
||||
int tsg_sendlog_init(char *filename);
|
||||
void tsg_send_log(const tsg_log_t* log_msg, struct _opt_unit_t* log_opt, int opt_num, int thread_id);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
109
inc/tsg_types.h
Normal file
109
inc/tsg_types.h
Normal file
@@ -0,0 +1,109 @@
|
||||
#ifndef __TSG_TYPES_H__
|
||||
#define __TSG_TYPES_H__
|
||||
|
||||
typedef enum _tsg_opt
|
||||
{
|
||||
LOG_OPT_HTTP_URL=1,
|
||||
LOG_OPT_HTTP_HOST,
|
||||
LOG_OPT_HTTP_REQUEST_LINE,
|
||||
LOG_OPT_HTTP_RESPONSE_LINE,
|
||||
LOG_OPT_HTTP_REQUEST_HEADER,
|
||||
LOG_OPT_HTTP_RESPONSE_HEADER,
|
||||
LOG_OPT_HTTP_REQUEST_BODY,
|
||||
LOG_OPT_HTTP_RESPONSE_BODY,
|
||||
LOG_OPT_HTTP_PROXY_FLAG,
|
||||
LOG_OPT_HTTP_SEQUENCE,
|
||||
LOG_OPT_HTTP_SNAPSHOT,
|
||||
LOG_OPT_HTTP_COOKIE,
|
||||
LOG_OPT_HTTP_REFERER,
|
||||
LOG_OPT_HTTP_USER_AGENT,
|
||||
LOG_OPT_HTTP_CONTENT_LENGTH,
|
||||
LOG_OPT_HTTP_CONTENT_TYPE,
|
||||
LOG_OPT_HTTP_SET_COOKIE,
|
||||
LOG_OPT_HTTP_VERSION,
|
||||
|
||||
LOG_OPT_MAIL_PROTOCOL_TYPE,
|
||||
LOG_OPT_MAIL_SENDER,
|
||||
LOG_OPT_MAIL_RECEIVER,
|
||||
LOG_OPT_MAIL_SUBJECT,
|
||||
LOG_OPT_MAIL_CONTENT,
|
||||
LOG_OPT_MAIL_ATTACHMENT_NAME,
|
||||
LOG_OPT_MAIL_ATTACHMENT_CONTENT,
|
||||
LOG_OPT_MAIL_EML_FILE,
|
||||
LOG_OPT_MAIL_SNAPSHOT,
|
||||
LOG_OPT_MAIL_SUBJECT_CHARSET,
|
||||
|
||||
LOG_OPT_DNS_MESSAGE_ID,
|
||||
LOG_OPT_DNS_QR,
|
||||
LOG_OPT_DNS_OPCODE,
|
||||
LOG_OPT_DNS_AA,
|
||||
LOG_OPT_DNS_TC,
|
||||
LOG_OPT_DNS_RD,
|
||||
LOG_OPT_DNS_RA,
|
||||
LOG_OPT_DNS_RCODE,
|
||||
LOG_OPT_DNS_QDCOUNT,
|
||||
LOG_OPT_DNS_ANCOUNT,
|
||||
LOG_OPT_DNS_NSCOUNT,
|
||||
LOG_OPT_DNS_ARCOUNT,
|
||||
LOG_OPT_DNS_QNAME,
|
||||
LOG_OPT_DNS_QTYPE,
|
||||
LOG_OPT_DNS_QCLASS,
|
||||
LOG_OPT_DNS_CNAME,
|
||||
LOG_OPT_DNS_SUB,
|
||||
LOG_OPT_DNS_RR,
|
||||
|
||||
LOG_OPT_SSL_VERSION,
|
||||
LOG_OPT_SSL_SNI,
|
||||
LOG_OPT_SSL_SAN,
|
||||
LOG_OPT_SSL_CN,
|
||||
LOG_OPT_SSL_PINNINGST,
|
||||
LOG_OPT_SSL_INTERCEPT_STATE,
|
||||
LOG_OPT_SSL_SERVER_SIDE_LATENCY,
|
||||
LOG_OPT_SSL_CLINET_SIDE_LATENCY,
|
||||
LOG_OPT_SSL_SERVER_SIDE_VERSION,
|
||||
LOG_OPT_SSL_CLIENT_SIDE_VERSION,
|
||||
LOG_OPT_SSL_CERT_VERIFY,
|
||||
LOG_OPT_SSL_ERROR,
|
||||
LOG_OPT_SSL_CON_LATENCY_MS,
|
||||
|
||||
LOG_OPT_FTP_URL,
|
||||
LOG_OPT_FTP_CONTENT,
|
||||
|
||||
LOG_OPT_BGP_TYPE,
|
||||
LOG_OPT_BGP_AS_NUM,
|
||||
LOG_OPT_BGP_ROUTE,
|
||||
|
||||
LOG_OPT_VOIP_CALLING_ACCOUNT,
|
||||
LOG_OPT_VOIP_CALLED_ACCOUNT,
|
||||
LOG_OPT_VOIP_CALLING_NUMBER,
|
||||
LOG_OPT_VOIP_CALLED_NUMBER,
|
||||
|
||||
LOG_OPT_RADIUS_PACKET_TYPE,
|
||||
LOG_OPT_RADIUS_NAS_IP,
|
||||
LOG_OPT_RADIUS_FRAMED_IP,
|
||||
LOG_OPT_RADIUS_ACCOUNT,
|
||||
LOG_OPT_RADIUS_SEESION_TIMEOUT,
|
||||
LOG_OPT_RADIUS_IDLE_TIMEOUT,
|
||||
LOG_OPT_RADIUS_ACCT_STATUS_TYPE,
|
||||
LOG_OPT_RADIUS_ACCT_TERMINATE_CAUSE,
|
||||
LOG_OPT_MAX
|
||||
}tsg_opt_t;
|
||||
|
||||
typedef enum _tsg_protocol
|
||||
{
|
||||
PROTO_IPv4,
|
||||
PROTO_IPv6,
|
||||
PROTO_TCP,
|
||||
PROTO_UDP,
|
||||
PROTO_HTTP,
|
||||
PROTO_MAIL,
|
||||
PROTO_DNS,
|
||||
PROTO_FTP,
|
||||
PROTO_SSL,
|
||||
PROTO_SIP,
|
||||
PROTO_BGP,
|
||||
PROTO_STREAMING_MEDIA,
|
||||
PROTO_MAX
|
||||
}tsg_protocol_t;
|
||||
|
||||
#endif
|
||||
20
src/CMakeLists.txt
Normal file
20
src/CMakeLists.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
add_definitions(-fPIC)
|
||||
|
||||
set(SRC tsg_entry.cpp tsg_rule.cpp tsg_send_log.cpp)
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/inc)
|
||||
include_directories(/opt/MESA/include/MESA/)
|
||||
|
||||
set(TSG_MASTER_DEPEND_DYN_LIB MESA_handle_logger MESA_prof_load maatframe pthread MESA_field_stat2)
|
||||
|
||||
set(CMAKE_INSTALL_PREFIX /home/mesasoft/sapp_run)
|
||||
|
||||
add_library(tsg_master SHARED ${SRC})
|
||||
set_target_properties(tsg_master PROPERTIES LINK_FLAGS "-Wl,--version-script=${PROJECT_SOURCE_DIR}/src/version.map")
|
||||
target_link_libraries(tsg_master ${TSG_MASTER_DEPEND_DYN_LIB})
|
||||
set_target_properties(tsg_master PROPERTIES PREFIX "")
|
||||
|
||||
install(TARGETS tsg_master DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/platform/tsg_master)
|
||||
install(FILES ../bin/tsg_master.inf DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/platform/tsg_master)
|
||||
6
src/tsg_entry.cpp
Normal file
6
src/tsg_entry.cpp
Normal file
@@ -0,0 +1,6 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
char TSG_MASTER_VERSION_20191112=0;
|
||||
|
||||
18
src/tsg_rule.cpp
Normal file
18
src/tsg_rule.cpp
Normal file
@@ -0,0 +1,18 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "tsg_rule.h"
|
||||
|
||||
extern Maat_feather_t g_tsg_maat_feather;
|
||||
|
||||
int tsg_pull_policy_result(PULL_RESULT_TYPE pull_result_type, Maat_rule_t*result, int result_num)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int tsg_scan_nesting_addr(Maat_feather_t maat_feather, struct streaminfo *a_stream, tsg_protocol_t proto, scan_status_t *mid, Maat_rule_t*result, int result_num)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
110
src/tsg_send_log.cpp
Normal file
110
src/tsg_send_log.cpp
Normal file
@@ -0,0 +1,110 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <net/if.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <MESA/stream.h>
|
||||
#include <MESA/cabot_send_log.h>
|
||||
#include <MESA/MESA_prof_load.h>
|
||||
#include <MESA/MESA_handle_logger.h>
|
||||
|
||||
#include "tsg_types.h"
|
||||
#include "tsg_send_log.h"
|
||||
#include "tsg_send_log_internal.h"
|
||||
|
||||
tsg_logger_info_t tsg_logger_info;
|
||||
|
||||
static unsigned int get_ip_by_eth_name(const char *ifname)
|
||||
{
|
||||
int sockfd;
|
||||
struct ifreq ifr;
|
||||
unsigned int ip;
|
||||
|
||||
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
if (-1 == sockfd) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
strcpy(ifr.ifr_name,ifname);
|
||||
if (ioctl(sockfd, SIOCGIFADDR, &ifr) < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
ip = ((struct sockaddr_in*)&(ifr.ifr_addr))->sin_addr.s_addr;
|
||||
close(sockfd);
|
||||
return ip;
|
||||
|
||||
error:
|
||||
close(sockfd);
|
||||
return INADDR_NONE;
|
||||
}
|
||||
|
||||
int steaminfo2opt()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int tsg_sendlog_init(char *filename)
|
||||
{
|
||||
int ret=0;
|
||||
unsigned int local_ip_nr=0;
|
||||
char nic_name[32];
|
||||
|
||||
memset(&tsg_logger_info, 0, sizeof(tsg_logger_info));
|
||||
|
||||
MESA_load_profile_int_def(filename, "TSG_LOG", "MODE",&(tsg_logger_info.mode), 0);
|
||||
MESA_load_profile_string_def(filename, "TSG_LOG", "FIELD_FILE", tsg_logger_info.field_file, sizeof(tsg_logger_info.field_file), NULL);
|
||||
MESA_load_profile_string_def(filename, "TSG_LOG", "BROKER_LIST", tsg_logger_info.broker_list, sizeof(tsg_logger_info.broker_list), NULL);
|
||||
|
||||
MESA_load_profile_int_def(filename, "TSG_LOG", "LEVEL",&(tsg_logger_info.level), 30);
|
||||
MESA_load_profile_string_def(filename, "TSG_LOG", "LOG_PATH", tsg_logger_info.log_path, sizeof(tsg_logger_info.log_path), NULL);
|
||||
|
||||
tsg_logger_info.logger=MESA_create_runtime_log_handle(tsg_logger_info.log_path, tsg_logger_info.level);
|
||||
if(tsg_logger_info.logger==NULL)
|
||||
{
|
||||
printf("MESA_create_runtime_log_handle failed ..., path: %s level: %d", tsg_logger_info.log_path, tsg_logger_info.level);
|
||||
return -1;
|
||||
}
|
||||
|
||||
tsg_logger_info.cabot_handle=cabot_sendlog_create();
|
||||
cabot_sendlog_set(tsg_logger_info.cabot_handle, SENDLOG_MODE,(void *)&(tsg_logger_info.mode));
|
||||
cabot_sendlog_set(tsg_logger_info.cabot_handle, CONFIG_FILE,(void *)tsg_logger_info.field_file);
|
||||
cabot_sendlog_set(tsg_logger_info.cabot_handle, BROKER_LIST,(void *)&(tsg_logger_info.mode));
|
||||
|
||||
ret=cabot_sendlog_init(tsg_logger_info.cabot_handle, tsg_logger_info.logger);
|
||||
if(ret<0)
|
||||
{
|
||||
MESA_handle_runtime_log(tsg_logger_info.logger, RLOG_LV_FATAL, "CABOT_INIT", "cabot_sendlog_init failed ...");
|
||||
return -2;
|
||||
}
|
||||
|
||||
MESA_load_profile_string_def(filename, "TSG_LOG", "NIC_NAME", nic_name, sizeof(nic_name), "eth0");
|
||||
local_ip_nr=get_ip_by_eth_name(nic_name);
|
||||
if(local_ip_nr==INADDR_NONE)
|
||||
{
|
||||
MESA_handle_runtime_log(tsg_logger_info.logger,RLOG_LV_FATAL, "GET_LOCAL_IP","get NIC_NAME: %s error.", nic_name);
|
||||
return -3;
|
||||
}
|
||||
inet_ntop(AF_INET,&(local_ip_nr),tsg_logger_info.local_ip_str,sizeof(tsg_logger_info.local_ip_str));
|
||||
|
||||
|
||||
//maat
|
||||
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
void tsg_send_log(const tsg_log_t* log_msg, struct _opt_unit_t* log_opt, int opt_num, int thread_id)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
17
src/tsg_send_log_internal.h
Normal file
17
src/tsg_send_log_internal.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#ifndef __TSG_SEND_LOG_INTERNAL_H__
|
||||
#define __TSG_SEND_LOG_INTERNAL_H__
|
||||
|
||||
typedef struct _tsg_logger_info
|
||||
{
|
||||
int mode;
|
||||
int level;
|
||||
void *logger;
|
||||
void *cabot_handle;
|
||||
char field_file[128];
|
||||
char broker_list[128];
|
||||
char log_path[128];
|
||||
char local_ip_str[16];
|
||||
}tsg_logger_info_t;
|
||||
|
||||
#endif
|
||||
|
||||
13
src/version.map
Normal file
13
src/version.map
Normal file
@@ -0,0 +1,13 @@
|
||||
VERS_2.4{
|
||||
global:
|
||||
extern "C++" {
|
||||
g_*;
|
||||
*TSG_MASTER_INIT*;
|
||||
*TSG_BWLIST_TCP_ENTRY*;
|
||||
*TSG_MASTER_UNLOAD*;
|
||||
*tsg_send_log*;
|
||||
*tsg_scan_nesting_addr*;
|
||||
*tsg_pull_policy_result*;
|
||||
};
|
||||
local: *;
|
||||
};
|
||||
Reference in New Issue
Block a user