summaryrefslogtreecommitdiff
path: root/src/or/or.h
diff options
context:
space:
mode:
authorAndrea Shepard <andrea@torproject.org>2013-06-13 20:49:01 -0700
committerAndrea Shepard <andrea@torproject.org>2013-06-13 21:53:36 -0700
commit418c2845d03bf425ac2a0a9758b89e151dc3b9aa (patch)
tree44170de4ef1eecae952e9c9278120023006aafe9 /src/or/or.h
parent72f775e18416300bd230f5784dc779db6138537b (diff)
downloadtor-418c2845d03bf425ac2a0a9758b89e151dc3b9aa.tar.gz
tor-418c2845d03bf425ac2a0a9758b89e151dc3b9aa.zip
Don't queue more cells as a middle relay than the spec allows to be in flight
Diffstat (limited to 'src/or/or.h')
-rw-r--r--src/or/or.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/or/or.h b/src/or/or.h
index ab5e3aaad9..36b67789e3 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -541,6 +541,8 @@ typedef enum {
#define CIRCUIT_PURPOSE_IS_ESTABLISHED_REND(p) \
((p) == CIRCUIT_PURPOSE_C_REND_JOINED || \
(p) == CIRCUIT_PURPOSE_S_REND_JOINED)
+/** True iff the circuit_t c is actually an or_circuit_t */
+#define CIRCUIT_IS_ORCIRC(c) (((circuit_t *)(c))->magic == OR_CIRCUIT_MAGIC)
/** How many circuits do we want simultaneously in-progress to handle
* a given stream? */
@@ -818,6 +820,12 @@ typedef enum {
/** Amount to increment a stream window when we get a stream SENDME. */
#define STREAMWINDOW_INCREMENT 50
+/** Maximum number of queued cells on a circuit for which we are the
+ * midpoint before we give up and kill it. This must be >= circwindow
+ * to avoid killing innocent circuits.
+ */
+#define ORCIRC_MAX_MIDDLE_CELLS (11*(CIRCWINDOW_START_MAX)/10)
+
/* Cell commands. These values are defined in tor-spec.txt. */
#define CELL_PADDING 0
#define CELL_CREATE 1