From 9f61d9238ce81444b988137508436255f275051d Mon Sep 17 00:00:00 2001 From: David Goulet Date: Wed, 17 Feb 2021 09:54:05 -0500 Subject: [PATCH] metrics: Handle the connection finished flushing event Turns out, we forgot to add the METRICS connection type fo the finished flushing handler. Fixes #40295 Signed-off-by: David Goulet --- changes/ticket40295 | 3 +++ src/core/mainloop/connection.c | 2 ++ src/feature/metrics/metrics.c | 9 +++++++++ src/feature/metrics/metrics.h | 1 + 4 files changed, 15 insertions(+) create mode 100644 changes/ticket40295 diff --git a/changes/ticket40295 b/changes/ticket40295 new file mode 100644 index 0000000000..e6dba80120 --- /dev/null +++ b/changes/ticket40295 @@ -0,0 +1,3 @@ + o Minor bugfixes (metrics port): + - Fix a BUG() on the MetricsPort for an internal missing handler. Fixes bug + 40295; bugfix on 0.4.5.1-alpha. diff --git a/src/core/mainloop/connection.c b/src/core/mainloop/connection.c index 85cdec6e1e..ada542629a 100644 --- a/src/core/mainloop/connection.c +++ b/src/core/mainloop/connection.c @@ -5187,6 +5187,8 @@ connection_finished_flushing(connection_t *conn) return connection_dir_finished_flushing(TO_DIR_CONN(conn)); case CONN_TYPE_CONTROL: return connection_control_finished_flushing(TO_CONTROL_CONN(conn)); + case CONN_TYPE_METRICS: + return metrics_connection_finished_flushing(conn); default: log_err(LD_BUG,"got unexpected conn type %d.", conn->type); tor_fragile_assert(); diff --git a/src/feature/metrics/metrics.c b/src/feature/metrics/metrics.c index 7a77ab1104..9a72fe7145 100644 --- a/src/feature/metrics/metrics.c +++ b/src/feature/metrics/metrics.c @@ -258,6 +258,15 @@ metrics_connection_reached_eof(connection_t *conn) return 0; } +/** Called when conn has no more bytes left on its outbuf. Return 0 indicating + * success. */ +int +metrics_connection_finished_flushing(connection_t *conn) +{ + tor_assert(conn); + return 0; +} + /** Initialize the subsystem. */ void metrics_init(void) diff --git a/src/feature/metrics/metrics.h b/src/feature/metrics/metrics.h index 858722de59..e072519d10 100644 --- a/src/feature/metrics/metrics.h +++ b/src/feature/metrics/metrics.h @@ -28,6 +28,7 @@ buf_t *metrics_get_output(const metrics_format_t fmt); /* Connection. */ int metrics_connection_process_inbuf(struct connection_t *conn); int metrics_connection_reached_eof(struct connection_t *conn); +int metrics_connection_finished_flushing(struct connection_t *conn); /* Configuration. */ int metrics_parse_ports(or_options_t *options, smartlist_t *ports, -- 2.11.4.GIT