aboutsummaryrefslogtreecommitdiff
path: root/src/or/or.h
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-02-13 14:49:15 -0500
committerNick Mathewson <nickm@torproject.org>2014-02-13 14:49:15 -0500
commitecf61e924d5807420aaeee8620dc83f3b952d77f (patch)
tree9d8c1578138951755c8a7ed2d1c876eb364c9245 /src/or/or.h
parent745434d29a92da682f4c8d8fa70a563862e80ae7 (diff)
parent8b9a2cb68b290e550695124d7ef0511225b451d5 (diff)
downloadtor-ecf61e924d5807420aaeee8620dc83f3b952d77f.tar
tor-ecf61e924d5807420aaeee8620dc83f3b952d77f.tar.gz
Merge remote-tracking branch 'public/bug9841_024_v2' into bug9841_025
Conflicts: src/or/circuitlist.c
Diffstat (limited to 'src/or/or.h')
-rw-r--r--src/or/or.h33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/or/or.h b/src/or/or.h
index cc4e5ed9d..7c44c7dd8 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -3177,20 +3177,8 @@ typedef struct or_circuit_t {
* is not marked for close. */
struct or_circuit_t *rend_splice;
-#if REND_COOKIE_LEN >= DIGEST_LEN
-#define REND_TOKEN_LEN REND_COOKIE_LEN
-#else
-#define REND_TOKEN_LEN DIGEST_LEN
-#endif
+ struct or_circuit_rendinfo_s *rendinfo;
- /** A hash of location-hidden service's PK if purpose is INTRO_POINT, or a
- * rendezvous cookie if purpose is REND_POINT_WAITING. Filled with zeroes
- * otherwise.
- * ???? move to a subtype or adjunct structure? Wastes 20 bytes. -NM
- */
- char rend_token[REND_TOKEN_LEN];
-
- /* ???? move to a subtype or adjunct structure? Wastes 20 bytes -NM */
/** Stores KH for the handshake. */
char rend_circ_nonce[DIGEST_LEN];/* KH in tor-spec.txt */
@@ -3217,6 +3205,25 @@ typedef struct or_circuit_t {
uint32_t max_middle_cells;
} or_circuit_t;
+typedef struct or_circuit_rendinfo_s {
+
+#if REND_COOKIE_LEN != DIGEST_LEN
+#error "The REND_TOKEN_LEN macro assumes REND_COOKIE_LEN == DIGEST_LEN"
+#endif
+#define REND_TOKEN_LEN DIGEST_LEN
+
+ /** A hash of location-hidden service's PK if purpose is INTRO_POINT, or a
+ * rendezvous cookie if purpose is REND_POINT_WAITING. Filled with zeroes
+ * otherwise.
+ */
+ char rend_token[REND_TOKEN_LEN];
+
+ /** True if this is a rendezvous point circuit; false if this is an
+ * introduction point. */
+ unsigned is_rend_circ;
+
+} or_circuit_rendinfo_t;
+
/** Convert a circuit subtype to a circuit_t. */
#define TO_CIRCUIT(x) (&((x)->base_))