aboutsummaryrefslogtreecommitdiff
path: root/src/feature/stats/rephist.c
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2022-10-27 10:46:54 -0400
committerDavid Goulet <dgoulet@torproject.org>2022-10-27 10:46:54 -0400
commitfff2b92682222c960e2cd4455e8264bcd5d406fb (patch)
tree1156ee5377c1a4a5c78b42cf5fdd7c6dea8a7cce /src/feature/stats/rephist.c
parent5f548f05d2c5e18833358ae05b78ad3c3c673636 (diff)
parenta1c40c8511b841db773e82bd8024ef3581262900 (diff)
downloadtor-fff2b92682222c960e2cd4455e8264bcd5d406fb.tar.gz
tor-fff2b92682222c960e2cd4455e8264bcd5d406fb.zip
Merge branch 'maint-0.4.7'
Diffstat (limited to 'src/feature/stats/rephist.c')
-rw-r--r--src/feature/stats/rephist.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/feature/stats/rephist.c b/src/feature/stats/rephist.c
index 553a7f953e..3dcc53fd07 100644
--- a/src/feature/stats/rephist.c
+++ b/src/feature/stats/rephist.c
@@ -1639,6 +1639,51 @@ rep_hist_note_exit_stream_opened(uint16_t port)
log_debug(LD_HIST, "Opened exit stream to port %d", port);
}
+/*** Exit streams statistics ***/
+
+/** Number of BEGIN streams seen. */
+static uint64_t streams_begin_seen;
+/** Number of BEGIN_DIR streams seen. */
+static uint64_t streams_begindir_seen;
+/** Number of RESOLVE streams seen. */
+static uint64_t streams_resolve_seen;
+
+/** Note a stream as seen for the given relay command. */
+void
+rep_hist_note_exit_stream(unsigned int cmd)
+{
+ switch (cmd) {
+ case RELAY_COMMAND_BEGIN:
+ streams_begin_seen++;
+ break;
+ case RELAY_COMMAND_BEGIN_DIR:
+ streams_begindir_seen++;
+ break;
+ case RELAY_COMMAND_RESOLVE:
+ streams_resolve_seen++;
+ break;
+ default:
+ tor_assert_nonfatal_unreached_once();
+ break;
+ }
+}
+
+/** Return number of stream seen for the given command. */
+uint64_t
+rep_hist_get_exit_stream_seen(unsigned int cmd)
+{
+ switch (cmd) {
+ case RELAY_COMMAND_BEGIN:
+ return streams_begin_seen;
+ case RELAY_COMMAND_BEGIN_DIR:
+ return streams_begindir_seen;
+ case RELAY_COMMAND_RESOLVE:
+ return streams_resolve_seen;
+ default:
+ return 0;
+ }
+}
+
/******* Connections statistics *******/
#define CONN_DIRECTION_INITIATED 0