支持alert动作,发送common_sub_action日志字段
This commit is contained in:
@@ -18,6 +18,7 @@ enum TSG_ETHOD_TYPE
|
|||||||
TSG_METHOD_TYPE_REDIRECTION,
|
TSG_METHOD_TYPE_REDIRECTION,
|
||||||
TSG_METHOD_TYPE_BLOCK,
|
TSG_METHOD_TYPE_BLOCK,
|
||||||
TSG_METHOD_TYPE_RESET,
|
TSG_METHOD_TYPE_RESET,
|
||||||
|
TSG_METHOD_TYPE_ALERT,
|
||||||
TSG_METHOD_TYPE_MAX
|
TSG_METHOD_TYPE_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ const struct _str2index method2index[TSG_METHOD_TYPE_MAX]={ {TSG_METHOD_TYPE_UNK
|
|||||||
{TSG_METHOD_TYPE_DROP, 4, (char *)"drop"},
|
{TSG_METHOD_TYPE_DROP, 4, (char *)"drop"},
|
||||||
{TSG_METHOD_TYPE_REDIRECTION, 8, (char *)"redirect"},
|
{TSG_METHOD_TYPE_REDIRECTION, 8, (char *)"redirect"},
|
||||||
{TSG_METHOD_TYPE_BLOCK, 5, (char *)"block"},
|
{TSG_METHOD_TYPE_BLOCK, 5, (char *)"block"},
|
||||||
{TSG_METHOD_TYPE_RESET, 3, (char *)"rst"}
|
{TSG_METHOD_TYPE_RESET, 3, (char *)"rst"},
|
||||||
|
{TSG_METHOD_TYPE_ALERT, 5, (char *)"alert"}
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct _str2index g_tsg_proto_string[PROTO_MAX+1]={{PROTO_UNKONWN, 0, (char *)""},
|
const struct _str2index g_tsg_proto_string[PROTO_MAX+1]={{PROTO_UNKONWN, 0, (char *)""},
|
||||||
|
|||||||
@@ -129,6 +129,39 @@ char *log_field_id2name(struct tsg_log_instance_t *instance, tsg_log_field_id_t
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int set_common_sub_action(struct TLD_handle_t *handle, char *field_name, struct Maat_rule_t *p_result)
|
||||||
|
{
|
||||||
|
cJSON *item=NULL;
|
||||||
|
cJSON *object=NULL;
|
||||||
|
char *tmp_buff=NULL;
|
||||||
|
|
||||||
|
if(p_result->serv_def_len<128)
|
||||||
|
{
|
||||||
|
object=cJSON_Parse(p_result->service_defined);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tmp_buff=(char *)calloc(1, p_result->serv_def_len+1);
|
||||||
|
Maat_read_rule(g_tsg_maat_feather, p_result, MAAT_RULE_SERV_DEFINE, tmp_buff, p_result->serv_def_len);
|
||||||
|
object=cJSON_Parse(tmp_buff);
|
||||||
|
|
||||||
|
free(tmp_buff);
|
||||||
|
tmp_buff=NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(object!=NULL)
|
||||||
|
{
|
||||||
|
item=cJSON_GetObjectItem(object, "method");
|
||||||
|
TLD_append(handle, field_name, (void *)item->valuestring, TLD_TYPE_STRING);
|
||||||
|
|
||||||
|
cJSON_Delete(object);
|
||||||
|
object=NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int TLD_append_streaminfo(struct tsg_log_instance_t *instance, struct TLD_handle_t *handle, struct streaminfo *a_stream)
|
int TLD_append_streaminfo(struct tsg_log_instance_t *instance, struct TLD_handle_t *handle, struct streaminfo *a_stream)
|
||||||
{
|
{
|
||||||
int ret=0,addr_type=0;
|
int ret=0,addr_type=0;
|
||||||
@@ -472,6 +505,7 @@ int tsg_send_log(struct tsg_log_instance_t *instance, struct TLD_handle_t *handl
|
|||||||
TLD_append(_handle, _instance->id2field[LOG_COMMON_POLICY_ID].name, (void *)(long)(log_msg->result[i].config_id), TLD_TYPE_LONG);
|
TLD_append(_handle, _instance->id2field[LOG_COMMON_POLICY_ID].name, (void *)(long)(log_msg->result[i].config_id), TLD_TYPE_LONG);
|
||||||
TLD_append(_handle, _instance->id2field[LOG_COMMON_SERVICE].name, (void *)(long)(log_msg->result[i].service_id), TLD_TYPE_LONG);
|
TLD_append(_handle, _instance->id2field[LOG_COMMON_SERVICE].name, (void *)(long)(log_msg->result[i].service_id), TLD_TYPE_LONG);
|
||||||
TLD_append(_handle, _instance->id2field[LOG_COMMON_ACTION].name, (void *)(long)((unsigned char)log_msg->result[i].action), TLD_TYPE_LONG);
|
TLD_append(_handle, _instance->id2field[LOG_COMMON_ACTION].name, (void *)(long)((unsigned char)log_msg->result[i].action), TLD_TYPE_LONG);
|
||||||
|
set_common_sub_action(_handle, _instance->id2field[LOG_COMMON_SUB_ACTION].name, &(log_msg->result[i]));
|
||||||
|
|
||||||
payload = cJSON_PrintUnformatted(_handle->object);
|
payload = cJSON_PrintUnformatted(_handle->object);
|
||||||
|
|
||||||
@@ -495,6 +529,7 @@ int tsg_send_log(struct tsg_log_instance_t *instance, struct TLD_handle_t *handl
|
|||||||
TLD_delete(_handle, _instance->id2field[LOG_COMMON_POLICY_ID].name);
|
TLD_delete(_handle, _instance->id2field[LOG_COMMON_POLICY_ID].name);
|
||||||
TLD_delete(_handle, _instance->id2field[LOG_COMMON_SERVICE].name);
|
TLD_delete(_handle, _instance->id2field[LOG_COMMON_SERVICE].name);
|
||||||
TLD_delete(_handle, _instance->id2field[LOG_COMMON_ACTION].name);
|
TLD_delete(_handle, _instance->id2field[LOG_COMMON_ACTION].name);
|
||||||
|
TLD_delete(_handle, _instance->id2field[LOG_COMMON_SUB_ACTION].name);
|
||||||
TLD_delete(_handle, _instance->id2field[LOG_COMMON_ESTABLISH_LATENCY_MS].name);
|
TLD_delete(_handle, _instance->id2field[LOG_COMMON_ESTABLISH_LATENCY_MS].name);
|
||||||
|
|
||||||
FS_operate(g_tsg_para.fs2_handle, g_tsg_para.fs2_field_id[TSG_FS2_LOG], 0, FS_OP_ADD, 1);
|
FS_operate(g_tsg_para.fs2_handle, g_tsg_para.fs2_field_id[TSG_FS2_LOG], 0, FS_OP_ADD, 1);
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ typedef enum _tsg_log_field_id
|
|||||||
LOG_HTTP_HOST,
|
LOG_HTTP_HOST,
|
||||||
LOG_SSL_SNI,
|
LOG_SSL_SNI,
|
||||||
LOG_COMMON_ESTABLISH_LATENCY_MS,
|
LOG_COMMON_ESTABLISH_LATENCY_MS,
|
||||||
|
LOG_COMMON_SUB_ACTION,
|
||||||
LOG_COMMON_MAX
|
LOG_COMMON_MAX
|
||||||
}tsg_log_field_id_t;
|
}tsg_log_field_id_t;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user