From: Roger Dingledine Date: Sun, 4 Nov 2007 02:36:09 +0000 (+0000) Subject: add the other v3 dir bugfixes. my bridge is now working X-Git-Tag: tor-0.2.0.10-alpha~53 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=735498cb27b7defbdce3ade21378417534395189;p=thirdparty%2Ftor.git add the other v3 dir bugfixes. my bridge is now working again even when my datadir starts empty. phew. svn:r12372 --- diff --git a/ChangeLog b/ChangeLog index e8434aba0c..3124cdfacf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,18 @@ Changes in version 0.2.0.10-alpha - 2007-11-0? maybe in other situations too). Bugfix on 0.2.0.9-alpha; reported by Fabian Keil. + o Major bugfixes (v3 dir, bugfixes on 0.2.0.9-alpha): + - Consider replacing the current consensus when certificates arrive + that make the pending consensus valid. Previously, we were only + considering replacement when the new certs _didn't_ help. + - Fix an assert error on startup if we didn't already have the + consensus and certs cached in our datadirectory: we were caching + the consensus in consensus_waiting_for_certs but then free'ing it + right after. + - Avoid sending a request for "keys/fp" (for which we'll get a 400 Bad + Request) if we need more v3 certs but we've already got pending + requests for all of them. + o New requirements: - Drop support for OpenSSL version 0.9.6. Just about nobody was using it, it had no AES, and it hasn't seen any security patches since @@ -67,11 +79,6 @@ Changes in version 0.2.0.10-alpha - 2007-11-0? the Tor process. Patch from Marco Bonetti with tweaks from Mike Perry. - o Major bugfixes: - - Consider replace the current consensus when certificates arrive - that make the pending consensus valid. Previously, we were only - considering replacement when the new certs _didn't_ help. - o Minor bugfixes: - Refuse to start if both ORPort and UseBridges are set. Bugfix on 0.2.0.x. diff --git a/src/or/directory.c b/src/or/directory.c index 778632922f..703cb55bca 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -670,6 +670,8 @@ directory_initiate_command(const char *address, uint32_t addr, dir_port)) { case -1: connection_dir_request_failed(conn); /* retry if we want */ + /* XXX we only pass 'conn' above, not 'resource', 'payload', + * etc. So in many situations it can't retry! -RD */ connection_free(TO_CONN(conn)); return; case 1: diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 93369e157e..4aedb64cca 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -3911,7 +3911,8 @@ update_router_have_minimum_dir_info(void) if (should_delay_dir_fetches(get_options())) { log_notice(LD_DIR, "no known bridge descriptors running yet; stalling"); - strlcpy(dir_info_status, "No bridge descriptors.",sizeof(dir_info_status)); + strlcpy(dir_info_status, "No live bridge descriptors.", + sizeof(dir_info_status)); res = 0; goto done; }