调整日志字段
This commit is contained in:
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
#include "ntc_radius_plug.h"
|
#include "ntc_radius_plug.h"
|
||||||
|
|
||||||
static int NTC_RADIUS_PLUG_VERSION_20191108=0;
|
static int NTC_RADIUS_PLUG_VERSION_20191206=0;
|
||||||
const char *config_file="t1conf/main.conf";
|
const char *config_file="t1conf/main.conf";
|
||||||
g_ntc_radius_plug_t g_ntc_radius_plug;
|
g_ntc_radius_plug_t g_ntc_radius_plug;
|
||||||
|
|
||||||
@@ -65,89 +65,96 @@ error:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int get_radius_object_element(cJSON *radius_info_object, radius_header_t *radius_header, radius_body_t *radius_body, int *account_index)
|
int get_radius_object_element(cJSON *radius_info_object, cJSON *radius_debug, radius_header_t *radius_header, radius_body_t *radius_body, int *account_index)
|
||||||
{
|
{
|
||||||
int i=0;
|
int i=0;
|
||||||
cJSON *radius_json_obj = radius_info_object;
|
|
||||||
|
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "packet_type", radius_header->code);
|
cJSON_AddNumberToObject(radius_debug, "radius_packet_type", radius_header->code);
|
||||||
|
cJSON_AddNumberToObject(radius_info_object, "radius_packet_type", radius_header->code);
|
||||||
|
|
||||||
for(i=0; i<radius_body->attribute_num; i++)
|
for(i=0; i<radius_body->attribute_num; i++)
|
||||||
{
|
{
|
||||||
switch(radius_body->attribute[i].type)
|
switch(radius_body->attribute[i].type)
|
||||||
{
|
{
|
||||||
case RADIUS_USER_NAME:
|
case RADIUS_USER_NAME:
|
||||||
cJSON_AddStringToObject(radius_json_obj, "account", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_debug, "radius_account", (char *)(radius_body->attribute[i].value));
|
||||||
|
cJSON_AddStringToObject(radius_info_object, "radius_account", (char *)(radius_body->attribute[i].value));
|
||||||
*account_index=i;
|
*account_index=i;
|
||||||
break;
|
break;
|
||||||
case CALLBACK_NUMBER:
|
case CALLBACK_NUMBER:
|
||||||
cJSON_AddStringToObject(radius_json_obj, "callback_number", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_debug, "radius_callback_number", (char *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case CALLBACK_ID:
|
case CALLBACK_ID:
|
||||||
cJSON_AddStringToObject(radius_json_obj, "callback_id", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_debug, "radius_callback_id", (char *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case CALLED_STATION_ID:
|
case CALLED_STATION_ID:
|
||||||
cJSON_AddStringToObject(radius_json_obj, "called_station_id", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_debug, "radius_called_station_id", (char *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case CALLING_STATION_ID:
|
case CALLING_STATION_ID:
|
||||||
cJSON_AddStringToObject(radius_json_obj, "calling_station_id", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_debug, "radius_calling_station_id", (char *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case ACCT_SESSION_ID:
|
case ACCT_SESSION_ID:
|
||||||
cJSON_AddStringToObject(radius_json_obj, "acct_session_id", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_debug, "radius_acct_session_id", (char *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case ACCT_MULTI_SESSION_ID:
|
case ACCT_MULTI_SESSION_ID:
|
||||||
cJSON_AddStringToObject(radius_json_obj, "acct_multi_session_id", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_debug, "radius_acct_multi_session_id", (char *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case NAS_IP_ADDRESS:
|
case NAS_IP_ADDRESS:
|
||||||
cJSON_AddStringToObject(radius_json_obj, "nas_ip", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_debug, "radius_nas_ip", (char *)(radius_body->attribute[i].value));
|
||||||
|
cJSON_AddStringToObject(radius_info_object, "radius_nas_ip", (char *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case FRAMED_IP_ADDRESS:
|
case FRAMED_IP_ADDRESS:
|
||||||
cJSON_AddStringToObject(radius_json_obj, "framed_ip", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_debug, "radius_framed_ip", (char *)(radius_body->attribute[i].value));
|
||||||
|
cJSON_AddStringToObject(radius_info_object, "radius_framed_ip", (char *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case FRAMED_IP_NETMASK:
|
case FRAMED_IP_NETMASK:
|
||||||
cJSON_AddStringToObject(radius_json_obj, "framed_ip_netmask", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_debug, "radius_framed_ip_netmask", (char *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case SERVICE_TYPE:
|
case SERVICE_TYPE:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "service_type", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_service_type", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case FRAMED_MTU:
|
case FRAMED_MTU:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "framed_mtu", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_framed_mtu", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case SESSION_TIMEOUT:
|
case SESSION_TIMEOUT:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "session_timeout", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_session_timeout", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
|
cJSON_AddNumberToObject(radius_info_object, "radius_session_timeout", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case IDLE_TIMEOUT:
|
case IDLE_TIMEOUT:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "idle_timeout", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_idle_timeout", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
|
cJSON_AddNumberToObject(radius_info_object, "radius_idle_timeout", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case TERMINATION_ACTION:
|
case TERMINATION_ACTION:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "termination_action", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_termination_action", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case PROXY_STATE:
|
case PROXY_STATE:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "proxy_state", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_proxy_state", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case ACCT_STATUS_TYPE:
|
case ACCT_STATUS_TYPE:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "acct_status_type", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_acct_status_type", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
|
cJSON_AddNumberToObject(radius_info_object, "radius_acct_status_type", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case ACCT_INPUT_OCTETS:
|
case ACCT_INPUT_OCTETS:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "acct_input_octets", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_acct_input_octets", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case ACCT_OUTPUT_OCTETS:
|
case ACCT_OUTPUT_OCTETS:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "acct_output_octets", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_acct_output_octets", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case ACCT_INPUT_PACKETS:
|
case ACCT_INPUT_PACKETS:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "acct_input_packets", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_acct_input_packets", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case ACCT_OUTPUT_PACKETS:
|
case ACCT_OUTPUT_PACKETS:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "acct_output_packets", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_acct_output_packets", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case ACCT_TERMINATE_CAUSE:
|
case ACCT_TERMINATE_CAUSE:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "acct_terminate_cause", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_acct_terminate_cause", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
|
cJSON_AddNumberToObject(radius_info_object, "radius_acct_terminate_cause", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case ACCT_LINK_COUNT:
|
case ACCT_LINK_COUNT:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "acct_link_count", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_acct_link_count", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
case ACCT_INTERIM_INTERVAL:
|
case ACCT_INTERIM_INTERVAL:
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "acct_interim_interval", *(unsigned int *)(radius_body->attribute[i].value));
|
cJSON_AddNumberToObject(radius_debug, "radius_acct_interim_interval", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
continue;
|
continue;
|
||||||
@@ -159,7 +166,8 @@ int get_radius_object_element(cJSON *radius_info_object, radius_header_t *radius
|
|||||||
|
|
||||||
static int streamInfo2jsonObject(cJSON *json_obj, const struct streaminfo *a_stream)
|
static int streamInfo2jsonObject(cJSON *json_obj, const struct streaminfo *a_stream)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
time_t cur_time;
|
||||||
|
int ret=0,con_duration_ms=0;
|
||||||
const char *addr_proto = NULL;
|
const char *addr_proto = NULL;
|
||||||
unsigned short tunnel_type=0;
|
unsigned short tunnel_type=0;
|
||||||
char nest_addr_buf[1024];
|
char nest_addr_buf[1024];
|
||||||
@@ -167,37 +175,64 @@ static int streamInfo2jsonObject(cJSON *json_obj, const struct streaminfo *a_str
|
|||||||
const struct layer_addr *addr=NULL;
|
const struct layer_addr *addr=NULL;
|
||||||
char src_ip_str[128] = {0}, dst_ip_str[128] = {0};
|
char src_ip_str[128] = {0}, dst_ip_str[128] = {0};
|
||||||
|
|
||||||
cJSON_AddNumberToObject(json_obj, "stream_dir", a_stream->dir);
|
cJSON_AddNumberToObject(json_obj, "common_stream_dir", a_stream->dir);
|
||||||
|
|
||||||
addr=&(a_stream->addr);
|
addr=&(a_stream->addr);
|
||||||
switch(addr->addrtype)
|
switch(addr->addrtype)
|
||||||
{
|
{
|
||||||
case ADDR_TYPE_IPV4:
|
case ADDR_TYPE_IPV4:
|
||||||
case __ADDR_TYPE_IP_PAIR_V4:
|
case __ADDR_TYPE_IP_PAIR_V4:
|
||||||
cJSON_AddNumberToObject(json_obj, "addr_type", 4);
|
cJSON_AddNumberToObject(json_obj, "common_address_type", 4);
|
||||||
inet_ntop(AF_INET, &addr->ipv4->saddr, src_ip_str, sizeof(src_ip_str));
|
inet_ntop(AF_INET, &addr->ipv4->saddr, src_ip_str, sizeof(src_ip_str));
|
||||||
inet_ntop(AF_INET, &addr->ipv4->daddr, dst_ip_str, sizeof(dst_ip_str));
|
inet_ntop(AF_INET, &addr->ipv4->daddr, dst_ip_str, sizeof(dst_ip_str));
|
||||||
cJSON_AddStringToObject(json_obj, "s_ip", src_ip_str);
|
cJSON_AddStringToObject(json_obj, "common_client_ip", src_ip_str);
|
||||||
cJSON_AddStringToObject(json_obj, "d_ip", dst_ip_str);
|
cJSON_AddStringToObject(json_obj, "common_server_ip", dst_ip_str);
|
||||||
cJSON_AddNumberToObject(json_obj, "s_port", ntohs(addr->ipv4->source));
|
cJSON_AddNumberToObject(json_obj, "common_client_port", ntohs(addr->ipv4->source));
|
||||||
cJSON_AddNumberToObject(json_obj, "d_port", ntohs(addr->ipv4->dest));
|
cJSON_AddNumberToObject(json_obj, "common_server_port", ntohs(addr->ipv4->dest));
|
||||||
break;
|
break;
|
||||||
case ADDR_TYPE_IPV6:
|
case ADDR_TYPE_IPV6:
|
||||||
case __ADDR_TYPE_IP_PAIR_V6:
|
case __ADDR_TYPE_IP_PAIR_V6:
|
||||||
cJSON_AddNumberToObject(json_obj, "addr_type", 6);
|
cJSON_AddNumberToObject(json_obj, "common_address_type", 6);
|
||||||
inet_ntop(AF_INET6, addr->ipv6->saddr, src_ip_str, sizeof(src_ip_str));
|
inet_ntop(AF_INET6, addr->ipv6->saddr, src_ip_str, sizeof(src_ip_str));
|
||||||
inet_ntop(AF_INET6, addr->ipv6->daddr, dst_ip_str, sizeof(dst_ip_str));
|
inet_ntop(AF_INET6, addr->ipv6->daddr, dst_ip_str, sizeof(dst_ip_str));
|
||||||
cJSON_AddStringToObject(json_obj, "s_ip", src_ip_str);
|
cJSON_AddStringToObject(json_obj, "common_client_ip", src_ip_str);
|
||||||
cJSON_AddStringToObject(json_obj, "d_ip", dst_ip_str);
|
cJSON_AddStringToObject(json_obj, "common_server_ip", dst_ip_str);
|
||||||
cJSON_AddNumberToObject(json_obj, "s_port", ntohs(addr->ipv6->source));
|
cJSON_AddNumberToObject(json_obj, "common_client_port", ntohs(addr->ipv6->source));
|
||||||
cJSON_AddNumberToObject(json_obj, "d_port", ntohs(addr->ipv6->dest));
|
cJSON_AddNumberToObject(json_obj, "common_server_port", ntohs(addr->ipv6->dest));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_c2s_pkt_num", a_stream->ptcpdetail->serverpktnum);
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_s2c_pkt_num", a_stream->ptcpdetail->clientpktnum);
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_c2s_byte_num", a_stream->ptcpdetail->serverbytes);
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_s2c_byte_num", a_stream->ptcpdetail->clientbytes);
|
||||||
|
|
||||||
|
cur_time = time(NULL);
|
||||||
|
if(a_stream!=NULL && a_stream->ptcpdetail!=NULL)
|
||||||
|
{
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_start_time", a_stream->ptcpdetail->createtime);
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_end_time", a_stream->ptcpdetail->lastmtime);
|
||||||
|
|
||||||
|
con_duration_ms=(a_stream->ptcpdetail->lastmtime-a_stream->ptcpdetail->createtime)*1000;
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_con_duration_ms", con_duration_ms);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
con_duration_ms=0;
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_start_time", cur_time);
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_end_time", cur_time);
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_con_duration_ms", con_duration_ms);
|
||||||
|
}
|
||||||
|
|
||||||
|
int device_id_size=sizeof(unsigned long long);
|
||||||
|
unsigned long long device_id=(unsigned long long)g_ntc_radius_plug.device_id;
|
||||||
|
MESA_get_stream_opt(a_stream, MSO_GLOBAL_STREAM_ID, (void *)&device_id, &device_id_size);
|
||||||
|
cJSON_AddNumberToObject(json_obj, "common_stream_trace_id", device_id);
|
||||||
|
|
||||||
addr_proto = layer_addr_prefix_ntop(a_stream);
|
addr_proto = layer_addr_prefix_ntop(a_stream);
|
||||||
cJSON_AddStringToObject(json_obj, "trans_proto", addr_proto);
|
cJSON_AddStringToObject(json_obj, "common_l4_protocol", addr_proto);
|
||||||
|
|
||||||
ret=MESA_get_stream_opt(a_stream, MSO_STREAM_TUNNEL_TYPE, &tunnel_type, &tunnel_type_size);
|
ret=MESA_get_stream_opt(a_stream, MSO_STREAM_TUNNEL_TYPE, &tunnel_type, &tunnel_type_size);
|
||||||
assert(ret==0);
|
assert(ret==0);
|
||||||
@@ -210,7 +245,7 @@ static int streamInfo2jsonObject(cJSON *json_obj, const struct streaminfo *a_str
|
|||||||
stream_addr_list_ntop(a_stream,nest_addr_buf, sizeof(nest_addr_buf));
|
stream_addr_list_ntop(a_stream,nest_addr_buf, sizeof(nest_addr_buf));
|
||||||
}
|
}
|
||||||
|
|
||||||
cJSON_AddStringToObject(json_obj, "addr_list", nest_addr_buf);
|
cJSON_AddStringToObject(json_obj, "common_address_list", nest_addr_buf);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -218,73 +253,50 @@ static int streamInfo2jsonObject(cJSON *json_obj, const struct streaminfo *a_str
|
|||||||
|
|
||||||
char NTC_RADIUS_PLUG_ENTRY(stSessionInfo *session_info, void **pme, int thread_seq, struct streaminfo *stream, void *a_packet)
|
char NTC_RADIUS_PLUG_ENTRY(stSessionInfo *session_info, void **pme, int thread_seq, struct streaminfo *stream, void *a_packet)
|
||||||
{
|
{
|
||||||
int ret=0,status=0;
|
int status=0;
|
||||||
int config_id=0;
|
int config_id=0;
|
||||||
int payload_len=0,index=0;
|
int payload_len=0,index=0;
|
||||||
time_t cur_time;
|
|
||||||
char *payload=NULL;
|
char *payload=NULL;
|
||||||
struct vxlan_info vinfo;
|
|
||||||
int opt_val_len = sizeof(vinfo);
|
|
||||||
radius_info_t *radius_info=(radius_info_t *)session_info->app_info;
|
radius_info_t *radius_info=(radius_info_t *)session_info->app_info;
|
||||||
cJSON *radius_info_object=cJSON_CreateObject();
|
cJSON *radius_info_object=cJSON_CreateObject();
|
||||||
|
|
||||||
streamInfo2jsonObject(radius_info_object, stream);
|
streamInfo2jsonObject(radius_info_object, stream);
|
||||||
get_radius_object_element(radius_info_object, &radius_info->header, &radius_info->body, &index);
|
|
||||||
|
|
||||||
cJSON_AddNumberToObject(radius_info_object, "cfg_id", config_id);
|
cJSON_AddNumberToObject(radius_info_object, "common_policy_id", config_id);
|
||||||
cJSON_AddNumberToObject(radius_info_object, "service", g_ntc_radius_plug.service_id);
|
cJSON_AddNumberToObject(radius_info_object, "common_service", g_ntc_radius_plug.service_id);
|
||||||
|
|
||||||
|
cJSON_AddStringToObject(radius_info_object, "common_sled_ip", g_ntc_radius_plug.local_ip);
|
||||||
|
cJSON_AddStringToObject(radius_info_object, "common_schema_type", "RADIUS");
|
||||||
|
|
||||||
|
cJSON *radius_debug=cJSON_Duplicate(radius_info_object, 1);
|
||||||
|
|
||||||
cur_time = time(NULL);
|
get_radius_object_element(radius_info_object, radius_debug, &radius_info->header, &radius_info->body, &index);
|
||||||
if(stream!=NULL && stream->ptcpdetail!=NULL)
|
|
||||||
{
|
|
||||||
cJSON_AddNumberToObject(radius_info_object, "recv_time", stream->ptcpdetail->createtime);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cJSON_AddNumberToObject(radius_info_object, "recv_time", cur_time);
|
|
||||||
}
|
|
||||||
cJSON_AddNumberToObject(radius_info_object, "found_time", cur_time);
|
|
||||||
|
|
||||||
ret = MESA_get_stream_opt(stream, MSO_STREAM_VXLAN_INFO, &vinfo, &opt_val_len);
|
|
||||||
if(ret < 0)
|
|
||||||
{
|
|
||||||
MESA_handle_runtime_log(g_ntc_radius_plug.logger, RLOG_LV_FATAL, "DNS_COLLECT_LOG", "soq log: get vxlan info error, tuple4: %s", printaddr(&stream->addr, thread_seq));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cJSON_AddNumberToObject(radius_info_object, "entrance_id", vinfo.entrance_id);
|
|
||||||
cJSON_AddNumberToObject(radius_info_object, "direction", vinfo.link_dir);
|
|
||||||
cJSON_AddNumberToObject(radius_info_object, "device_id", vinfo.dev_id);
|
|
||||||
cJSON_AddNumberToObject(radius_info_object, "encap_type", vinfo.encap_type);
|
|
||||||
cJSON_AddNumberToObject(radius_info_object, "link_id", vinfo.link_id);
|
|
||||||
|
|
||||||
cJSON_AddStringToObject(radius_info_object, "inner_smac", (char *)vinfo.inner_smac);
|
|
||||||
cJSON_AddStringToObject(radius_info_object, "inner_dmac", (char *)vinfo.inner_dmac);
|
|
||||||
}
|
|
||||||
|
|
||||||
cJSON_AddStringToObject(radius_info_object, "cap_ip", g_ntc_radius_plug.local_ip);
|
|
||||||
|
|
||||||
|
|
||||||
payload = cJSON_PrintUnformatted(radius_info_object);
|
payload = cJSON_PrintUnformatted(radius_info_object);
|
||||||
payload_len = strlen(payload);
|
payload_len = strlen(payload);
|
||||||
|
|
||||||
|
|
||||||
status = rd_kafka_produce(g_ntc_radius_plug.topic_rkt, RD_KAFKA_PARTITION_UA, RD_KAFKA_MSG_F_COPY, payload, payload_len,
|
status = rd_kafka_produce(g_ntc_radius_plug.topic_rkt, RD_KAFKA_PARTITION_UA, RD_KAFKA_MSG_F_COPY, payload, payload_len,
|
||||||
radius_info->body.attribute[index].value, radius_info->body.attribute[index].len, NULL);
|
radius_info->body.attribute[index].value, radius_info->body.attribute[index].len, NULL);
|
||||||
|
|
||||||
if(status < 0)
|
if(status < 0)
|
||||||
{
|
{
|
||||||
MESA_handle_runtime_log(g_ntc_radius_plug.logger,RLOG_LV_INFO,"sendlog", "sendlog to kafka is error, status: %d, topic: %s payload: %s", status, g_ntc_radius_plug.topic_name, payload);
|
MESA_handle_runtime_log(g_ntc_radius_plug.logger,RLOG_LV_INFO,"SEND_LOG", "sendlog to kafka is error, status: %d, topic: %s payload: %s", status, g_ntc_radius_plug.topic_name, payload);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MESA_handle_runtime_log(g_ntc_radius_plug.logger,RLOG_LV_INFO,"sendlog", "topic: %s %s", g_ntc_radius_plug.topic_name, payload);
|
MESA_handle_runtime_log(g_ntc_radius_plug.logger,RLOG_LV_INFO,"SEND_LOG", "topic: %s %s", g_ntc_radius_plug.topic_name, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
free(payload);
|
free(payload);
|
||||||
cJSON_Delete(radius_info_object);
|
cJSON_Delete(radius_info_object);
|
||||||
radius_info_object = NULL;
|
radius_info_object = NULL;
|
||||||
|
|
||||||
|
payload = cJSON_PrintUnformatted(radius_debug);
|
||||||
|
MESA_handle_runtime_log(g_ntc_radius_plug.logger,RLOG_LV_INFO, "RADIUS_DEBUG", "payload: %s", payload);
|
||||||
|
free(payload);
|
||||||
|
cJSON_Delete(radius_debug);
|
||||||
|
radius_debug = NULL;
|
||||||
|
|
||||||
return APP_STATE_GIVEME;
|
return APP_STATE_GIVEME;
|
||||||
}
|
}
|
||||||
@@ -305,6 +317,7 @@ int NTC_RADIUS_PLUG_INIT(void)
|
|||||||
MESA_load_profile_int_def(config_file, "RADIUS","LEVEL", &g_ntc_radius_plug.level, RLOG_LV_FATAL);
|
MESA_load_profile_int_def(config_file, "RADIUS","LEVEL", &g_ntc_radius_plug.level, RLOG_LV_FATAL);
|
||||||
MESA_load_profile_string_def(config_file, "RADIUS", "COLLECT_TOPIC", g_ntc_radius_plug.topic_name, sizeof(g_ntc_radius_plug.topic_name), "eth0");
|
MESA_load_profile_string_def(config_file, "RADIUS", "COLLECT_TOPIC", g_ntc_radius_plug.topic_name, sizeof(g_ntc_radius_plug.topic_name), "eth0");
|
||||||
MESA_load_profile_string_def(config_file, "RADIUS", "BROKERLIST", g_ntc_radius_plug.brokerlist, sizeof(g_ntc_radius_plug.brokerlist), "127.0.0.1:9092");
|
MESA_load_profile_string_def(config_file, "RADIUS", "BROKERLIST", g_ntc_radius_plug.brokerlist, sizeof(g_ntc_radius_plug.brokerlist), "127.0.0.1:9092");
|
||||||
|
MESA_load_profile_int_def(config_file, "RADIUS", "DEVICE_ID", &g_ntc_radius_plug.device_id, 0);
|
||||||
|
|
||||||
g_ntc_radius_plug.logger = MESA_create_runtime_log_handle(g_ntc_radius_plug.pathname, g_ntc_radius_plug.level);
|
g_ntc_radius_plug.logger = MESA_create_runtime_log_handle(g_ntc_radius_plug.pathname, g_ntc_radius_plug.level);
|
||||||
if(g_ntc_radius_plug.logger == NULL)
|
if(g_ntc_radius_plug.logger == NULL)
|
||||||
@@ -347,7 +360,7 @@ int NTC_RADIUS_PLUG_INIT(void)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("INIT NTC_RADIUS_PLUG SUCCESS, VERSION: %d\n", NTC_RADIUS_PLUG_VERSION_20191108);
|
printf("INIT NTC_RADIUS_PLUG SUCCESS, VERSION: %d\n", NTC_RADIUS_PLUG_VERSION_20191206);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ typedef struct _ntc_radius_plug
|
|||||||
{
|
{
|
||||||
int level;
|
int level;
|
||||||
int service_id;
|
int service_id;
|
||||||
|
int device_id;
|
||||||
void *logger;
|
void *logger;
|
||||||
char pathname[128];
|
char pathname[128];
|
||||||
char topic_name[128];
|
char topic_name[128];
|
||||||
|
|||||||
Reference in New Issue
Block a user