if (*full_message == '\n') {
full_message++;
}
-
+
/* parse list of fields, if any */
if (strncmp(full_message, "LOG_FIELDS", 10) == 0) {
if (switch_event_create_brackets(full_message+10, '[', ']', ',', &log_fields, &parsed_full_message, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) {
-
+
switch_event_header_t *hp;
for (hp = log_fields->headers; hp; hp = hp->next) {
- if (strncmp(hp->name, "@#", 2) == 0) {
- field_name = switch_mprintf("_%s", hp->name + 2);
- cJSON_AddItemToObject(gelf, field_name, cJSON_CreateNumber(strtod(hp->value, NULL)));
- } else {
- field_name = switch_mprintf("_%s", hp->name);
- cJSON_AddItemToObject(gelf, field_name, cJSON_CreateString(hp->value));
+ if (!zstr(hp->name) && !zstr(hp->value)) {
+ if (strncmp(hp->name, "@#", 2) == 0) {
+ field_name = switch_mprintf("_%s", hp->name + 2);
+ cJSON_AddItemToObject(gelf, field_name, cJSON_CreateNumber(strtod(hp->value, NULL)));
+ } else {
+ field_name = switch_mprintf("_%s", hp->name);
+ cJSON_AddItemToObject(gelf, field_name, cJSON_CreateString(hp->value));
+ }
+ free(field_name);
}
- free(field_name);
}
-
+
switch_event_destroy(&log_fields);
full_message = parsed_full_message;
}
gelf_text = cJSON_PrintUnformatted(gelf);
cJSON_Delete(gelf);
- if (parsed_full_message != NULL) {
- free(parsed_full_message);
- }
+ switch_safe_free(parsed_full_message);
return gelf_text;
}