Ver código fonte

Clean up my 1776 fix a bit

Sebastian notes (and I think correctly) that one of our ||s should
have been an &&, which simplifies a boolean expression to decide
whether to replace bridges.  I'm also refactoring out the negation at
the start of the expression, to make it more readable.
Nick Mathewson 15 anos atrás
pai
commit
45b500d5a6
1 arquivos alterados com 6 adições e 2 exclusões
  1. 6 2
      src/or/routerlist.c

+ 6 - 2
src/or/routerlist.c

@@ -3238,8 +3238,12 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg,
     const int was_bridge = old_router &&
       old_router->purpose == ROUTER_PURPOSE_BRIDGE;
 
-    if (! (routerinfo_is_a_configured_bridge(router) &&
-           (router->purpose == ROUTER_PURPOSE_BRIDGE || !was_bridge))) {
+    if (routerinfo_is_a_configured_bridge(router) &&
+        router->purpose == ROUTER_PURPOSE_BRIDGE &&
+        !was_bridge) {
+      log_info(LD_DIR, "Replacing non-bridge descriptor with bridge "
+               "descriptor for router '%s'", router->nickname);
+    } else {
       log_info(LD_DIR,
                "Dropping descriptor that we already have for router '%s'",
                router->nickname);