From 2a2cee9e517986ac81b6e9d057be617a21ac7c2e Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Tue, 18 Sep 2007 23:48:39 +0000 Subject: [PATCH] Start using the v2 intro format for hidden service connections. Now clients specify their chosen rendezvous point by identity digest rather than by (potentially ambiguous) nickname. This change could speed up hidden service connections dramatically. svn:r11499 --- ChangeLog | 4 ++++ doc/spec/rend-spec.txt | 7 ++++--- src/or/rendcommon.c | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5d6cde8a10..5ee0658cda 100644 --- a/ChangeLog +++ b/ChangeLog @@ -34,6 +34,10 @@ Changes in version 0.2.0.7-alpha - 2007-??-?? o Major bugfixes: - Fix possible segfaults in functions called from rend_process_relay_cell(). + - Start using the v2 intro format for hidden service connections. Now + clients specify their chosen rendezvous point by identity digest + rather than by (potentially ambiguous) nickname. This change could + speed up hidden service connections dramatically. o Minor bugfixes: - When generating information telling us how to extend to a given diff --git a/doc/spec/rend-spec.txt b/doc/spec/rend-spec.txt index 2e92d4c64b..2fbb36a3aa 100644 --- a/doc/spec/rend-spec.txt +++ b/doc/spec/rend-spec.txt @@ -361,9 +361,10 @@ $Id$ 20+42+16+20+20+128=246 bytes, and the version 1 and version 2 introduction formats have other sizes. - As of Tor 0.2.0.6-alpha, clients only generate the v0 introduction - format, whereas hidden services have understoodd and accepted v0, - v1, and v2 since 0.1.1.x. + Through Tor 0.2.0.6-alpha, clients only generated the v0 introduction + format, whereas hidden services have understood and accepted v0, + v1, and v2 since 0.1.1.x. As of Tor 0.2.0.7-alpha, clients switched + to using the v2 intro format. 1.8.1. Other introduction formats we don't use. diff --git a/src/or/rendcommon.c b/src/or/rendcommon.c index cbd12e802c..e7b975a68b 100644 --- a/src/or/rendcommon.c +++ b/src/or/rendcommon.c @@ -109,7 +109,7 @@ rend_parse_service_descriptor(const char *str, size_t len) if (end-cp < 4) goto truncated; result->timestamp = (time_t) ntohl(get_uint32(cp)); cp += 4; - result->protocols = 1; + result->protocols = 1<<2; /* always use intro format 2 */ if (end-cp < 2) goto truncated; result->n_intro_points = ntohs(get_uint16(cp)); cp += 2;