Merge branch 'ip-location' into develop

# Conflicts:
#	src/tsg_entry.cpp
#	src/tsg_send_log.cpp

支持IP归属地功能
This commit is contained in:
liuxueli
2020-05-28 16:04:12 +08:00
10 changed files with 734 additions and 83 deletions

View File

@@ -6,6 +6,18 @@
#include "tsg_rule.h"
#include "tsg_statistic.h"
#if(__GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ >= 411)
#define atomic_inc(x) __sync_add_and_fetch((x),1)
#define atomic_dec(x) __sync_sub_and_fetch((x),1)
#define atomic_add(x,y) __sync_add_and_fetch((x),(y))
#define atomic_sub(x,y) __sync_sub_and_fetch((x),(y))
typedef int atomic_t;
#define ATOMIC_INIT(i) { (i) }
#define atomic_read(x) __sync_add_and_fetch((x),0)
#define atomic_set(x,y) __sync_lock_test_and_set((x),y)
#else
#include <alsa/iatomic.h>
#endif
#ifndef MIN
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
@@ -18,6 +30,12 @@ enum MASTER_TABLE{
TABLE_HTTP_HOST,
TABLE_SSL_SNI,
TABLE_EXCLUSION_SSL_SNI,
TABLE_IP_ASN,
TABLE_IP_LOCATION,
TABLE_ASN_USER_DEFINED,
TABLE_ASN_BUILT_IN,
TABLE_LOCATION_USER_DEFINED,
TABLE_LOCATION_BUILT_IN,
TABLE_MAX
};
@@ -40,6 +58,58 @@ struct _str2index
char *type;
};
struct _asn_info
{
int ref_cnt;
int addr_type;
char start_ip[40];
char end_ip[40];
char asn[40];
char organization[256];
int table_id;
};
struct _location_info
{
int ref_cnt;
int addr_type;
char start_ip[40];
char end_ip[40];
double latitude;
double longitude;
double coords;
char language[40];
char continent_abbr[256];
char continent_full[256];
char country_abbr[256];
char country_full[256];
char province_abbr[256];
char province_full[256];
char city_full[256];
char time_zone[128];
int geoname_id;
int table_id;
};
struct _subscribe_id_info
{
int ref_cnt;
int table_id;
char subscribe_id[256];
};
struct _internal_label
{
long establish_latency_ms;
struct _asn_info *client_asn;
struct _asn_info *server_asn;
struct _location_info *client_location;
struct _location_info *server_location;
struct _subscribe_id_info *client_subscribe_id;
struct _subscribe_id_info *server_subscribe_id;
};
typedef struct _policy_priority_label
{
@@ -68,7 +138,7 @@ typedef struct _tsg_para
int table_id[TABLE_MAX];
int dyn_subscribe_ip_table_id; //TSG_DYN_SUBSCRIBER_IP
int priority_project_id;
int establish_latency_project_id;
int internal_project_id;
int fs2_field_id[TSG_FS2_MAX];
char device_sn[MAX_DOAMIN_LEN/8];
char table_name[TABLE_MAX][_MAX_TABLE_NAME_LEN];
@@ -143,4 +213,9 @@ int tsg_statistic_init(const char *conffile, void *logger);
int tsg_scan_shared_policy(Maat_feather_t maat_feather, struct _identify_info *identify_info, Maat_rule_t *result, int result_num, scan_status_t *mid, int thread_seq);
void location_free_data(int table_id, MAAT_PLUGIN_EX_DATA* ad, long argl, void* argp);
void ASN_free_data(int table_id, MAAT_PLUGIN_EX_DATA* ad, long argl, void* argp);
void subscribe_id_free_data(int table_id, MAAT_PLUGIN_EX_DATA* ad, long argl, void* argp);
#endif