修改日志字段,按account入partition
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_20191022=0;
|
static int NTC_RADIUS_PLUG_VERSION_20191108=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,88 +65,89 @@ error:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int get_radius_object_element(cJSON *radius_info_object, radius_header_t *radius_header, radius_body_t *radius_body)
|
int get_radius_object_element(cJSON *radius_info_object, 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 *radius_json_obj = radius_info_object;
|
||||||
|
|
||||||
cJSON_AddNumberToObject(radius_json_obj, "CODE", radius_header->code);
|
cJSON_AddNumberToObject(radius_json_obj, "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, "user_name", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_json_obj, "account", (char *)(radius_body->attribute[i].value));
|
||||||
|
*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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_ADDRESS", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_json_obj, "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_ADDRESS", (char *)(radius_body->attribute[i].value));
|
cJSON_AddStringToObject(radius_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "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_json_obj, "acct_interim_interval", *(unsigned int *)(radius_body->attribute[i].value));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
continue;
|
continue;
|
||||||
@@ -219,7 +220,7 @@ char NTC_RADIUS_PLUG_ENTRY(stSessionInfo *session_info, void **pme, int thread_s
|
|||||||
{
|
{
|
||||||
int ret=0,status=0;
|
int ret=0,status=0;
|
||||||
int config_id=0;
|
int config_id=0;
|
||||||
int payload_len=0;
|
int payload_len=0,index=0;
|
||||||
time_t cur_time;
|
time_t cur_time;
|
||||||
char *payload=NULL;
|
char *payload=NULL;
|
||||||
struct vxlan_info vinfo;
|
struct vxlan_info vinfo;
|
||||||
@@ -228,7 +229,7 @@ char NTC_RADIUS_PLUG_ENTRY(stSessionInfo *session_info, void **pme, int thread_s
|
|||||||
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);
|
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, "cfg_id", config_id);
|
||||||
cJSON_AddNumberToObject(radius_info_object, "service", g_ntc_radius_plug.service_id);
|
cJSON_AddNumberToObject(radius_info_object, "service", g_ntc_radius_plug.service_id);
|
||||||
@@ -268,7 +269,8 @@ char NTC_RADIUS_PLUG_ENTRY(stSessionInfo *session_info, void **pme, int thread_s
|
|||||||
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, NULL, 0, NULL);
|
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);
|
||||||
|
|
||||||
if(status < 0)
|
if(status < 0)
|
||||||
{
|
{
|
||||||
@@ -345,7 +347,7 @@ int NTC_RADIUS_PLUG_INIT(void)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("INIT NTC_RADIUS_PLUG SUCCESS, VERSION: %d\n", NTC_RADIUS_PLUG_VERSION_20191022);
|
printf("INIT NTC_RADIUS_PLUG SUCCESS, VERSION: %d\n", NTC_RADIUS_PLUG_VERSION_20191108);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user