Browse Source

MT#55283 properly output stat strings

Change-Id: Icbbd7963c51af999bf4f2f043eb04c5aa8e59cf0
pull/1614/head
Richard Fuchs 3 years ago
parent
commit
b5a20bdb91
3 changed files with 13 additions and 9 deletions
  1. +2
    -0
      daemon/mqtt.c
  2. +10
    -9
      daemon/statistics.c
  3. +1
    -0
      include/statistics.h

+ 2
- 0
daemon/mqtt.c View File

@ -479,6 +479,8 @@ static void mqtt_global_stats(JsonBuilder *json) {
json_builder_add_int_value(json, m->int_value);
else if (m->is_double)
json_builder_add_double_value(json, m->double_value);
else if (m->value_raw)
json_builder_add_string_value(json, m->value_raw);
else
json_builder_add_string_value(json, m->value_short);
}


+ 10
- 9
daemon/statistics.c View File

@ -227,6 +227,9 @@ static void add_metric(GQueue *ret, const char *label, const char *desc, const c
va_start(ap, fmt2);
m->value_short = g_strdup_vprintf(fmt1, ap);
va_end(ap);
if (m->value_short[0] == '"' && m->value_short[1] != '\0'
&& m->value_short[strlen(m->value_short)-1] == '"')
m->value_raw = g_strndup(m->value_short + 1, strlen(m->value_short) - 2);
}
if (fmt2) {
va_start(ap, fmt2);
@ -714,6 +717,7 @@ static void free_stats_metric(void *p) {
g_free(m->label);
g_free(m->value_long);
g_free(m->value_short);
g_free(m->value_raw);
g_free(m->prom_label);
g_slice_free1(sizeof(*m), m);
}
@ -762,15 +766,12 @@ const char *statistics_ng(bencode_item_t *input, bencode_item_t *output) {
if (m->is_int)
bencode_dictionary_add_integer(dict, bencode_strdup(buf, m->label),
m->int_value);
else {
size_t len = strlen(m->value_short);
if (len >= 2 && m->value_short[0] == '"' && m->value_short[len-1] == '"')
bencode_dictionary_add(dict, bencode_strdup(buf, m->label),
bencode_string_len_dup(buf, m->value_short+1, len-2));
else
bencode_dictionary_add_string_dup(dict, bencode_strdup(buf, m->label),
m->value_short);
}
else if (m->value_raw)
bencode_dictionary_add_string_dup(dict, bencode_strdup(buf, m->label),
m->value_raw);
else
bencode_dictionary_add_string_dup(dict, bencode_strdup(buf, m->label),
m->value_short);
continue;
}


+ 1
- 0
include/statistics.h View File

@ -92,6 +92,7 @@ struct stats_metric {
char *descr;
char *value_short;
char *value_long;
char *value_raw;
int64_t int_value;
double double_value;
int is_bracket;


Loading…
Cancel
Save