Browse Source

Log bandwidth_weight_rule_t as a string, not an integer.

I'm adding this because I can never remember what stuff like 'rule 3'
means.  That's the one where if somebody goes limp or taps out, the
fight is over, right?
Nick Mathewson 14 years ago
parent
commit
311aca5a34
3 changed files with 34 additions and 8 deletions
  1. 4 1
      src/or/or.h
  2. 21 0
      src/or/reasons.c
  3. 9 7
      src/or/routerlist.c

+ 4 - 1
src/or/or.h

@@ -4493,6 +4493,9 @@ const char *circuit_end_reason_to_control_string(int reason);
 const char *socks4_response_code_to_string(uint8_t code);
 const char *socks5_response_code_to_string(uint8_t code);
 
+enum bandwidth_weight_rule_t;
+const char *bandwidth_weight_rule_to_string(enum bandwidth_weight_rule_t rule);
+
 /********************************* relay.c ***************************/
 
 extern uint64_t stats_n_relay_cells_relayed;
@@ -4963,7 +4966,7 @@ uint32_t router_get_advertised_bandwidth_capped(routerinfo_t *router);
 
 /** Possible ways to weight routers when choosing one randomly.  See
  * routerlist_sl_choose_by_bandwidth() for more information.*/
-typedef enum {
+typedef enum bandwidth_weight_rule_t {
   NO_WEIGHTING, WEIGHT_FOR_EXIT, WEIGHT_FOR_MID, WEIGHT_FOR_GUARD,
   WEIGHT_FOR_DIR
 } bandwidth_weight_rule_t;

+ 21 - 0
src/or/reasons.c

@@ -372,3 +372,24 @@ socks5_response_code_to_string(uint8_t code)
   }
 }
 
+/** Return a string corresponding to a bandwidht_weight_rule_t */
+const char *
+bandwidth_weight_rule_to_string(bandwidth_weight_rule_t rule)
+{
+  switch (rule)
+    {
+    case NO_WEIGHTING:
+      return "no weighting";
+    case WEIGHT_FOR_EXIT:
+      return "weight as exit";
+    case WEIGHT_FOR_MID:
+      return "weight as middle node";
+    case WEIGHT_FOR_GUARD:
+      return "weight as guard";
+    case WEIGHT_FOR_DIR:
+      return "weight as directory";
+    default:
+      return "unknown rule";
+  }
+}
+

+ 9 - 7
src/or/routerlist.c

@@ -1577,7 +1577,8 @@ smartlist_choose_by_bandwidth_weights(smartlist_t *sl,
   if (smartlist_len(sl) == 0) {
     log_info(LD_CIRC,
              "Empty routerlist passed in to consensus weight node "
-             "selection for rule %d", rule);
+             "selection for rule %s",
+             bandwidth_weight_rule_to_string(rule));
     return NULL;
   }
 
@@ -1695,15 +1696,16 @@ smartlist_choose_by_bandwidth_weights(smartlist_t *sl,
     weighted_bw += weight*this_bw;
   }
 
-  log_debug(LD_CIRC, "Choosing node for rule %d based on weights "
-            "Wg=%lf Wm=%lf We=%lf Wd=%lf with total bw %lf", rule,
+  log_debug(LD_CIRC, "Choosing node for rule %s based on weights "
+            "Wg=%lf Wm=%lf We=%lf Wd=%lf with total bw %lf",
+            bandwidth_weight_rule_to_string(rule),
             Wg, Wm, We, Wd, weighted_bw);
 
   /* If there is no bandwidth, choose at random */
   if (DBL_TO_U64(weighted_bw) == 0) {
     log_warn(LD_CIRC,
-             "Weighted bandwidth is %lf in node selection for rule %d",
-             weighted_bw, rule);
+             "Weighted bandwidth is %lf in node selection for rule %s",
+             weighted_bw, bandwidth_weight_rule_to_string(rule));
     tor_free(bandwidths);
     return smartlist_choose(sl);
   }
@@ -1783,8 +1785,8 @@ smartlist_choose_by_bandwidth(smartlist_t *sl, bandwidth_weight_rule_t rule,
 
   if (smartlist_len(sl) == 0) {
     log_info(LD_CIRC,
-             "Empty routerlist passed in to old node selection for rule %d",
-             rule);
+             "Empty routerlist passed in to old node selection for rule %s",
+             bandwidth_weight_rule_to_string(rule));
     return NULL;
   }