create version

This commit is contained in:
liuxueli
2019-11-12 13:35:19 +08:00
commit 28fe2d3053
15 changed files with 1914 additions and 0 deletions

54
CMakeLists.txt Normal file
View 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

File diff suppressed because it is too large Load Diff

41
cmake/Package.cmake Normal file
View 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
View 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
View File

@@ -0,0 +1 @@

131
inc/tsg_log_id.h Normal file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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)
{
}

View 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
View 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: *;
};