修复发送日志初始化失败的BUG
This commit is contained in:
@@ -17,6 +17,7 @@ typedef enum _tld_type
|
|||||||
TLD_TYPE_LONG=1,
|
TLD_TYPE_LONG=1,
|
||||||
TLD_TYPE_STRING,
|
TLD_TYPE_STRING,
|
||||||
TLD_TYPE_FILE,
|
TLD_TYPE_FILE,
|
||||||
|
TLD_TYPE_TOPIC,
|
||||||
TLD_TYPE_MAX
|
TLD_TYPE_MAX
|
||||||
}TLD_TYPE;
|
}TLD_TYPE;
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ struct tsg_log_instance_t *g_tsg_log_instance;
|
|||||||
const id2field_t tld_type[TLD_TYPE_MAX]={{TLD_TYPE_UNKNOWN, TLD_TYPE_UNKNOWN, "UNKOWN"},
|
const id2field_t tld_type[TLD_TYPE_MAX]={{TLD_TYPE_UNKNOWN, TLD_TYPE_UNKNOWN, "UNKOWN"},
|
||||||
{TLD_TYPE_LONG, TLD_TYPE_LONG, "LONG"},
|
{TLD_TYPE_LONG, TLD_TYPE_LONG, "LONG"},
|
||||||
{TLD_TYPE_STRING, TLD_TYPE_STRING, "STRING"},
|
{TLD_TYPE_STRING, TLD_TYPE_STRING, "STRING"},
|
||||||
{TLD_TYPE_FILE, TLD_TYPE_FILE, "FILE"}
|
{TLD_TYPE_FILE, TLD_TYPE_FILE, "FILE"},
|
||||||
|
{TLD_TYPE_TOPIC, TLD_TYPE_TOPIC, "TOPIC"}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern "C" int MESA_get_dev_ipv4(const char *device, int *ip_add);
|
extern "C" int MESA_get_dev_ipv4(const char *device, int *ip_add);
|
||||||
@@ -303,7 +304,7 @@ int load_log_common_field(const char *filename, id2field_t *id2field, id2field_t
|
|||||||
ret=sscanf(line, "%s %s %d", type_name, field_name, &id);
|
ret=sscanf(line, "%s %s %d", type_name, field_name, &id);
|
||||||
assert(ret==3 && id<LOG_COMMON_MAX);
|
assert(ret==3 && id<LOG_COMMON_MAX);
|
||||||
|
|
||||||
for(i=0; i<LOG_COMMON_MAX; i++)
|
for(i=0; i<TLD_TYPE_MAX; i++)
|
||||||
{
|
{
|
||||||
if((strncasecmp(tld_type[i].name, type_name, strlen(tld_type[i].name)))==0)
|
if((strncasecmp(tld_type[i].name, type_name, strlen(tld_type[i].name)))==0)
|
||||||
{
|
{
|
||||||
@@ -316,12 +317,22 @@ int load_log_common_field(const char *filename, id2field_t *id2field, id2field_t
|
|||||||
id2field[id].id = id;
|
id2field[id].id = id;
|
||||||
memcpy(id2field[id].name, field_name, strlen(field_name));
|
memcpy(id2field[id].name, field_name, strlen(field_name));
|
||||||
break;
|
break;
|
||||||
default:
|
case TLD_TYPE_TOPIC:
|
||||||
if((strncasecmp("TOPIC", type_name, strlen("TOPIC")))==0)
|
if(_service2topic==NULL)
|
||||||
{
|
{
|
||||||
if(_service2topic==NULL)
|
_service2topic=(id2field_t *)calloc(1, sizeof(id2field_t)*(id+1));
|
||||||
|
_service2topic[id].type = TLD_TYPE_MAX;
|
||||||
|
_service2topic[id].id = id;
|
||||||
|
memcpy(_service2topic[id].name, field_name, strlen(field_name));
|
||||||
|
|
||||||
|
*max_service=id+1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(*max_service<=id)
|
||||||
{
|
{
|
||||||
_service2topic=(id2field_t *)calloc(1, sizeof(id2field_t)*(id+1));
|
_service2topic=(id2field_t *)realloc(_service2topic, sizeof(id2field_t)*(id+1));
|
||||||
|
memset(&_service2topic[id], 0, sizeof(id2field_t));
|
||||||
_service2topic[id].type = TLD_TYPE_MAX;
|
_service2topic[id].type = TLD_TYPE_MAX;
|
||||||
_service2topic[id].id = id;
|
_service2topic[id].id = id;
|
||||||
memcpy(_service2topic[id].name, field_name, strlen(field_name));
|
memcpy(_service2topic[id].name, field_name, strlen(field_name));
|
||||||
@@ -330,27 +341,15 @@ int load_log_common_field(const char *filename, id2field_t *id2field, id2field_t
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(*max_service<=id)
|
memset(&_service2topic[id], 0, sizeof(id2field_t));
|
||||||
{
|
_service2topic[id].type = TLD_TYPE_MAX;
|
||||||
_service2topic=(id2field_t *)realloc(_service2topic, sizeof(id2field_t)*(id+1));
|
_service2topic[id].id = id;
|
||||||
memset(&_service2topic[id], 0, sizeof(id2field_t));
|
memcpy(_service2topic[id].name, field_name, strlen(field_name));
|
||||||
_service2topic[id].type = TLD_TYPE_MAX;
|
|
||||||
_service2topic[id].id = id;
|
|
||||||
memcpy(_service2topic[id].name, field_name, strlen(field_name));
|
|
||||||
|
|
||||||
*max_service=id+1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
memset(&_service2topic[id], 0, sizeof(id2field_t));
|
|
||||||
_service2topic[id].type = TLD_TYPE_MAX;
|
|
||||||
_service2topic[id].id = id;
|
|
||||||
memcpy(_service2topic[id].name, field_name, strlen(field_name));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user