Fix a rather serious use-count state bug.

We need to use the success count or the use count depending on the consensus
parameter.
This commit is contained in:
Mike Perry 2012-12-09 20:56:48 -08:00
parent 2dbb62f1b5
commit b75880d7b3
3 changed files with 4 additions and 3 deletions

View File

@ -1642,7 +1642,7 @@ pathbias_get_closed_count(entry_guard_t *guard)
* if it should return guard->circ_successes or * if it should return guard->circ_successes or
* guard->successful_circuits_closed. * guard->successful_circuits_closed.
*/ */
static double double
pathbias_get_success_count(entry_guard_t *guard) pathbias_get_success_count(entry_guard_t *guard)
{ {
if (pathbias_use_close_counts(get_options())) { if (pathbias_use_close_counts(get_options())) {

View File

@ -1065,8 +1065,8 @@ entry_guards_parse_state(or_state_t *state, int set, char **msg)
/* Note: We rely on the < comparison here to allow us to set a 0 /* Note: We rely on the < comparison here to allow us to set a 0
* rate and disable the feature entirely. If refactoring, don't * rate and disable the feature entirely. If refactoring, don't
* change to <= */ * change to <= */
if ((node->circ_successes/((double)node->circ_attempts) if (pathbias_get_success_count(node)/node->circ_attempts
< pathbias_get_extreme_rate(options)) && < pathbias_get_extreme_rate(options) &&
pathbias_get_dropguards(options)) { pathbias_get_dropguards(options)) {
node->path_bias_disabled = 1; node->path_bias_disabled = 1;
log_info(LD_GENERAL, log_info(LD_GENERAL,

View File

@ -112,6 +112,7 @@ int find_transport_by_bridge_addrport(const tor_addr_t *addr, uint16_t port,
int validate_pluggable_transports_config(void); int validate_pluggable_transports_config(void);
double pathbias_get_closed_count(entry_guard_t *gaurd); double pathbias_get_closed_count(entry_guard_t *gaurd);
double pathbias_get_success_count(entry_guard_t *guard);
#endif #endif