If we are not using BEGIN_DIR cells, don't attempt to contact hidden service directories with non-open dir port.

svn:r16960
This commit is contained in:
Karsten Loesing 2008-09-24 22:29:22 +00:00
parent 7f805aca2b
commit 9a7098487b
2 changed files with 10 additions and 2 deletions

View File

@ -56,6 +56,8 @@ Changes in version 0.2.1.6-alpha - 2008-09-xx
port 80, we would previously reject the connection. Now, we assume
the user knows what they were asking for. Fixes bug 752. Bugfix
on 0.0.9rc5. Diagnosed by BarkerJr.
- If we are not using BEGIN_DIR cells, don't attempt to contact hidden
service directories with non-open dir port. Bugfix on 0.2.0.10-alpha.
o Minor features:
- Update to the "September 1 2008" ip-to-country file.

View File

@ -4918,6 +4918,7 @@ hid_serv_get_responsible_directories(smartlist_t *responsible_dirs,
{
int start, found, n_added = 0, i;
networkstatus_t *c = networkstatus_get_latest_consensus();
int use_begindir = get_options()->TunnelDirConns;
if (!c || !smartlist_len(c->routerstatus_list)) {
log_warn(LD_REND, "We don't have a consensus, so we can't perform v2 "
"rendezvous operations.");
@ -4930,9 +4931,14 @@ hid_serv_get_responsible_directories(smartlist_t *responsible_dirs,
do {
routerstatus_t *r = smartlist_get(c->routerstatus_list, i);
if (r->is_hs_dir) {
smartlist_add(responsible_dirs, r);
if (r->dir_port || use_begindir)
smartlist_add(responsible_dirs, r);
else
log_info(LD_REND, "Not adding router '%s' to list of responsible "
"hidden service directories, because we have no way of "
"reaching it.", r->nickname);
if (++n_added == REND_NUMBER_OF_CONSECUTIVE_REPLICAS)
return 0;
break;
}
if (++i == smartlist_len(c->routerstatus_list))
i = 0;