aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Kadianakis <desnacked@riseup.net>2021-02-19 13:25:47 +0200
committerGeorge Kadianakis <desnacked@riseup.net>2021-02-19 13:25:47 +0200
commitcf1f03fe1d2a3b6e500ef1bf716976d6c2d9f192 (patch)
treebba503726d24311d23c245360cd6207c6cff33fc
parente8cce1058c06e8f1bec486c9e49bc2e81243b672 (diff)
parent9f61d9238ce81444b988137508436255f275051d (diff)
downloadtor-cf1f03fe1d2a3b6e500ef1bf716976d6c2d9f192.tar.gz
tor-cf1f03fe1d2a3b6e500ef1bf716976d6c2d9f192.zip
Merge remote-tracking branch 'tor-gitlab/mr/308'
-rw-r--r--changes/ticket402953
-rw-r--r--src/core/mainloop/connection.c2
-rw-r--r--src/feature/metrics/metrics.c9
-rw-r--r--src/feature/metrics/metrics.h1
4 files changed, 15 insertions, 0 deletions
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 5370ad899a..f90872ec22 100644
--- a/src/core/mainloop/connection.c
+++ b/src/core/mainloop/connection.c
@@ -5180,6 +5180,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,