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;
/** 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;
}
}
+/** 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";
+ }
+}
+
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;
}
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);
}
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;
}