[tor-commits] [tor/master] Implement circuitmux_is_circuit_active(), circuitmux_num_cells_for_circuit(), circuitmux_num_cells(), circuitmux_num_active_circuits() and circuitmux_num_circuits() in circuitmux.c

andrea at torproject.org andrea at torproject.org
Thu Oct 11 02:05:23 UTC 2012


commit 9da04141e23505074d6867e579fea130bbb00964
Author: Andrea Shepard <andrea at torproject.org>
Date:   Wed Sep 26 12:56:30 2012 -0700

    Implement circuitmux_is_circuit_active(), circuitmux_num_cells_for_circuit(), circuitmux_num_cells(), circuitmux_num_active_circuits() and circuitmux_num_circuits() in circuitmux.c
---
 src/or/circuitmux.c |   85 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 85 insertions(+), 0 deletions(-)

diff --git a/src/or/circuitmux.c b/src/or/circuitmux.c
index f6cdbf1..c640294 100644
--- a/src/or/circuitmux.c
+++ b/src/or/circuitmux.c
@@ -315,6 +315,91 @@ circuitmux_is_circuit_attached(circuitmux_t *cmux, circuit_t *circ)
   return (hashent != NULL);
 }
 
+/**
+ * Query whether a circuit is active on a circuitmux
+ */
+
+int
+circuitmux_is_circuit_active(circuitmux_t *cmux, circuit_t *circ)
+{
+  chanid_circid_muxinfo_t *hashent = NULL;
+  int is_active = 0;
+
+  tor_assert(cmux);
+  tor_assert(circ);
+
+  /* Look if it's in the circuit map */
+  hashent = circuitmux_find_map_entry(cmux, circ);
+  if (hashent) {
+    /* Check the number of cells on this circuit */
+    is_active = (hashent->muxinfo.cell_count > 0);
+  }
+  /* else not attached, so not active */
+
+  return is_active;
+}
+
+/**
+ * Query number of available cells for a circuit on a circuitmux
+ */
+
+unsigned int
+circuitmux_num_cells_for_circuit(circuitmux_t *cmux, circuit_t *circ)
+{
+  chanid_circid_muxinfo_t *hashent = NULL;
+  unsigned int n_cells = 0;
+
+  tor_assert(cmux);
+  tor_assert(circ);
+
+  /* Look if it's in the circuit map */
+  hashent = circuitmux_find_map_entry(cmux, circ);
+  if (hashent) {
+    /* Just get the cell count for this circuit */
+    n_cells = hashent->muxinfo.cell_count;
+  }
+  /* else not attached, so 0 cells */
+
+  return n_cells;
+}
+
+
+/**
+ * Query total number of available cells on a circuitmux
+ */
+
+unsigned int
+circuitmux_num_cells(circuitmux_t *cmux)
+{
+  tor_assert(cmux);
+
+  return cmux->n_cells;
+}
+
+/**
+ * Query total number of circuits active on a circuitmux
+ */
+
+unsigned int
+circuitmux_num_active_circuits(circuitmux_t *cmux)
+{
+  tor_assert(cmux);
+
+  return cmux->n_active_circuits;
+}
+
+/**
+ * Query total number of circuits attached to a circuitmux
+ */
+
+unsigned int
+circuitmux_num_circuits(circuitmux_t *cmux)
+{
+  tor_assert(cmux);
+
+  return cmux->n_circuits;
+}
+
 /*
  * Functions for circuit code to call to update circuit status
  */





More information about the tor-commits mailing list