From 33ae3f4b5c5bffd8ab6fae34f90b0bd5b0fa0ce5 Mon Sep 17 00:00:00 2001 From: Sebastian Hahn Date: Fri, 20 Aug 2010 07:39:03 +0200 Subject: [PATCH] Allow clients to use relays as bridges --- changes/bug1776_v3 | 3 +++ src/or/routerlist.c | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 changes/bug1776_v3 diff --git a/changes/bug1776_v3 b/changes/bug1776_v3 new file mode 100644 index 0000000000..18d51856ee --- /dev/null +++ b/changes/bug1776_v3 @@ -0,0 +1,3 @@ + o Minor bugfixes: + - Really allow clients to use relays as bridges. Fixes bug 1776; + bugfix on 0.2.2.15-alpha. diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 8808f56db9..c393e0768e 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -3159,8 +3159,10 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg, /* If we have this descriptor already and the new descriptor is a bridge * descriptor, replace it. If we had a bridge descriptor before and the * new one is not a bridge descriptor, don't replace it. */ - if (old_router && (!routerinfo_is_a_configured_bridge(router) || - routerinfo_is_a_configured_bridge(old_router))) { + tor_assert(old_router); + if (! (routerinfo_is_a_configured_bridge(router) && + (router->purpose == ROUTER_PURPOSE_BRIDGE || + old_router->purpose != ROUTER_PURPOSE_BRIDGE))) { log_info(LD_DIR, "Dropping descriptor that we already have for router '%s'", router->nickname);