Browse Source

Implement channel_set_cmux_policy_everywhere()

Andrea Shepard 11 years ago
parent
commit
8afe41b481
2 changed files with 19 additions and 0 deletions
  1. 16 0
      src/or/channel.c
  2. 3 0
      src/or/channel.h

+ 16 - 0
src/or/channel.c

@@ -2695,6 +2695,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
  *

+ 3 - 0
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 */