turn MAX_REND_FAILURES into a function

no actual changes in behavior
This commit is contained in:
Roger Dingledine 2018-01-19 02:38:07 -05:00
parent a15eb9ff43
commit cc5a9e9667
1 changed files with 16 additions and 8 deletions

View File

@ -108,13 +108,18 @@ struct rend_service_port_config_s {
/** Don't try to build more than this many circuits before giving up
* for a while.*/
#define MAX_INTRO_CIRCS_PER_PERIOD 10
/** How many times will a hidden service operator attempt to connect to
* a requested rendezvous point before giving up? */
#define MAX_REND_FAILURES 1
/** How many seconds should we spend trying to connect to a requested
* rendezvous point before giving up? */
#define MAX_REND_TIMEOUT 30
/** How many times will a hidden service operator attempt to connect to
* a requested rendezvous point before giving up? */
static int
get_max_rend_failures(void)
{
return 1;
}
/* Hidden service directory file names:
* new file names should be added to rend_service_add_filenames_to_list()
* for sandboxing purposes. */
@ -2028,7 +2033,8 @@ rend_service_receive_introduction(origin_circuit_t *circuit,
/* Launch a circuit to the client's chosen rendezvous point.
*/
for (i=0;i<MAX_REND_FAILURES;i++) {
int max_rend_failures=get_max_rend_failures();
for (i=0;i<max_rend_failures;i++) {
int flags = CIRCLAUNCH_NEED_CAPACITY | CIRCLAUNCH_IS_INTERNAL;
if (circ_needs_uptime) flags |= CIRCLAUNCH_NEED_UPTIME;
/* A Single Onion Service only uses a direct connection if its
@ -2930,11 +2936,13 @@ rend_service_relaunch_rendezvous(origin_circuit_t *oldcirc)
}
oldcirc->hs_service_side_rend_circ_has_been_relaunched = 1;
/* We check failure_count >= MAX_REND_FAILURES-1 below rather than
* failure_count >= MAX_REND_FAILURES, because we increment the failure
* count for our current failure *after* this clause. */
/* We check failure_count >= get_max_rend_failures()-1 below, and the -1
* is because we increment the failure count for our current failure
* *after* this clause. */
int max_rend_failures = get_max_rend_failures() - 1;
if (!oldcirc->build_state ||
oldcirc->build_state->failure_count >= MAX_REND_FAILURES-1 ||
oldcirc->build_state->failure_count >= max_rend_failures ||
oldcirc->build_state->expiry_time < time(NULL)) {
log_info(LD_REND,
"Attempt to build circuit to %s for rendezvous has failed "