diff options
author | Nick Mathewson <nickm@torproject.org> | 2014-02-13 14:49:15 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2014-02-13 14:49:15 -0500 |
commit | ecf61e924d5807420aaeee8620dc83f3b952d77f (patch) | |
tree | 9d8c1578138951755c8a7ed2d1c876eb364c9245 /src/or/or.h | |
parent | 745434d29a92da682f4c8d8fa70a563862e80ae7 (diff) | |
parent | 8b9a2cb68b290e550695124d7ef0511225b451d5 (diff) | |
download | tor-ecf61e924d5807420aaeee8620dc83f3b952d77f.tar.gz tor-ecf61e924d5807420aaeee8620dc83f3b952d77f.zip |
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.h | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/src/or/or.h b/src/or/or.h index cc4e5ed9d8..7c44c7dd86 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_)) |