aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Shepard <andrea@torproject.org>2012-10-01 20:05:03 -0700
committerAndrea Shepard <andrea@torproject.org>2012-10-10 00:44:46 -0700
commit8afe41b481caa984fa6b4a0fbbf626d4cd22ce59 (patch)
treed5bfc3e58d1c1b369fffa9fe0e0916ff66ae4904
parent13972aee78542f654bcbbdaf09a49df9fed75738 (diff)
downloadtor-8afe41b481caa984fa6b4a0fbbf626d4cd22ce59.tar
tor-8afe41b481caa984fa6b4a0fbbf626d4cd22ce59.tar.gz
Implement channel_set_cmux_policy_everywhere()
-rw-r--r--src/or/channel.c16
-rw-r--r--src/or/channel.h3
2 files changed, 19 insertions, 0 deletions
diff --git a/src/or/channel.c b/src/or/channel.c
index 4ad5bf15f..880fa63ca 100644
--- a/src/or/channel.c
+++ b/src/or/channel.c
@@ -2696,6 +2696,22 @@ channel_listener_dumpstats(int severity)
}
/**
+ * Set the cmux policy on all active channels
+ */
+
+void
+channel_set_cmux_policy_everywhere(circuitmux_policy_t *pol)
+{
+ if (!active_channels) return;
+
+ SMARTLIST_FOREACH_BEGIN(active_channels, channel_t *, curr) {
+ if (curr->cmux) {
+ circuitmux_set_policy(curr->cmux, pol);
+ }
+ } SMARTLIST_FOREACH_END(curr);
+}
+
+/**
* Clean up channels
*
* This gets called periodically from run_scheduled_events() in main.c;
diff --git a/src/or/channel.h b/src/or/channel.h
index 4d3db41ce..cb9835a9f 100644
--- a/src/or/channel.h
+++ b/src/or/channel.h
@@ -291,6 +291,9 @@ void channel_free_all(void);
void channel_dumpstats(int severity);
void channel_listener_dumpstats(int severity);
+/* Set the cmux policy on all active channels */
+void channel_set_cmux_policy_everywhere(circuitmux_policy_t *pol);
+
#ifdef _TOR_CHANNEL_INTERNAL
/* Channel operations for subclasses and internal use only */