diff options
author | David Goulet <dgoulet@torproject.org> | 2022-02-03 08:30:40 -0500 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2022-02-03 08:30:40 -0500 |
commit | a08b12568eb7f1d1fb8bd34847461e0887b6981d (patch) | |
tree | a0d4354f50ba0df0ed8fb820170b3cd34a15b96a | |
parent | bc500804fde501368c8989e1118b389fa024f52e (diff) | |
parent | 3c73622f27c67eb636f19a938c5f401da8db901f (diff) | |
download | tor-a08b12568eb7f1d1fb8bd34847461e0887b6981d.tar.gz tor-a08b12568eb7f1d1fb8bd34847461e0887b6981d.zip |
Merge branch 'maint-0.4.5' into maint-0.4.6
-rw-r--r-- | changes/ticket40552 | 3 | ||||
-rw-r--r-- | src/feature/hs/hs_metrics.c | 6 | ||||
-rw-r--r-- | src/test/test_metrics.c | 4 |
3 files changed, 10 insertions, 3 deletions
diff --git a/changes/ticket40552 b/changes/ticket40552 new file mode 100644 index 0000000000..7811f3a743 --- /dev/null +++ b/changes/ticket40552 @@ -0,0 +1,3 @@ + o Minor bugfixes (MetricsPort, Prometheus): + - Add double quotes to the label values of the onion service metrics. Fixes + bug 40552; bugfix on 0.4.5.1-alpha. diff --git a/src/feature/hs/hs_metrics.c b/src/feature/hs/hs_metrics.c index e023eab90c..891029aded 100644 --- a/src/feature/hs/hs_metrics.c +++ b/src/feature/hs/hs_metrics.c @@ -32,12 +32,16 @@ port_to_str(const uint16_t port) /** Return a static buffer pointer that contains a formatted label on the form * of key=value. * + * NOTE: Important, label values MUST NOT contain double quotes else, in the + * case of Prometheus, it will fail with a malformed line because we force the + * label value to be enclosed in double quotes. + * * Subsequent call to this function invalidates the previous buffer. */ static const char * format_label(const char *key, const char *value) { static char buf[128]; - tor_snprintf(buf, sizeof(buf), "%s=%s", key, value); + tor_snprintf(buf, sizeof(buf), "%s=\"%s\"", key, value); return buf; } diff --git a/src/test/test_metrics.c b/src/test/test_metrics.c index 5068a8254b..ba1a763f0c 100644 --- a/src/test/test_metrics.c +++ b/src/test/test_metrics.c @@ -30,8 +30,8 @@ #define TEST_METRICS_ENTRY_NAME "entryA" #define TEST_METRICS_ENTRY_HELP "Description of entryA" -#define TEST_METRICS_ENTRY_LABEL_1 "label=farfadet" -#define TEST_METRICS_ENTRY_LABEL_2 "label=ponki" +#define TEST_METRICS_ENTRY_LABEL_1 "label=\"farfadet\"" +#define TEST_METRICS_ENTRY_LABEL_2 "label=\"ponki\"" static void set_metrics_port(or_options_t *options) |