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?
This commit is contained in:
Nick Mathewson
2010-04-12 18:12:49 -04:00
parent 8aec982f91
commit 311aca5a34
3 changed files with 34 additions and 8 deletions
+4 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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;
}