Commit 303beead authored by Sebastian Hahn's avatar Sebastian Hahn
Browse files

Kill warn when picking bridges without bw weight

Bridges and other relays not included in the consensus don't
necessarily have a non-zero bandwidth capacity. If all our
configured bridges had a zero bw capacity we would warn the
user. Change that.
parent 20817403
Loading
Loading
Loading
Loading

changes/bug1805

0 → 100644
+4 −0
Original line number Diff line number Diff line
  o Minor bugfixes:
    - Make sure we don't warn about not having bandwidth weights when
      choosing bridges or other relays not in the consensus. Bugfix
      on 0.2.2.10-alpha; fixes bug 1805.
+7 −3
Original line number Diff line number Diff line
@@ -1586,6 +1586,7 @@ smartlist_choose_by_bandwidth_weights(smartlist_t *sl,
  double *bandwidths;
  double tmp = 0;
  unsigned int i;
  int have_unknown = 0; /**< sl contains element not in consensus. */

  /* Can't choose exit and guard at same time */
  tor_assert(rule == NO_WEIGHTING ||
@@ -1702,6 +1703,7 @@ smartlist_choose_by_bandwidth_weights(smartlist_t *sl,
        this_bw = kb_to_bytes(rs->bandwidth);
      } else { /* bridge or other descriptor not in our consensus */
        this_bw = router_get_advertised_bandwidth_capped(router);
        have_unknown = 1;
      }
      if (router_digest_is_me(router->cache_info.identity_digest))
        is_me = 1;
@@ -1732,6 +1734,8 @@ smartlist_choose_by_bandwidth_weights(smartlist_t *sl,

  /* If there is no bandwidth, choose at random */
  if (DBL_TO_U64(weighted_bw) == 0) {
    /* Dont't warn when using bridges/relays not in the consensus */
    if (!have_unknown)
      log_warn(LD_CIRC,
               "Weighted bandwidth is %lf in node selection for rule %s",
               weighted_bw, bandwidth_weight_rule_to_string(rule));