tor/src
David Goulet 1125a4876b Reuse intro points that failed but are still valid
There is a case where if the introduction circuit fails but the node is
still in the consensus, we clean up the intro point and choose an other one.
This commit fixes that by trying to reuse the existing intro point with a
maximum value of retry.

A retry_nodes list is added to rend_services_introduce() and when we remove
an invalid intro points that fits the use case mentionned before, we add the
node to the retry list instead of removing it. Then, we retry on them before
creating new ones.

This means that the requirement to remove an intro point changes from "if no
intro circuit" to "if no intro circuit then if no node OR we've reached our
maximum circuit creation count".

For now, the maximum retries is set to 3 which it completely arbitrary. It
should also at some point be tied to the work done on detecting if our
network is down or not.

Fixes #8239

Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-07-09 12:02:11 -04:00
..
common Fix some compilation issues. 2015-06-27 14:27:00 -04:00
config Merge remote-tracking branch 'origin/maint-0.2.5' into maint-0.2.6 2015-06-25 11:43:17 -04:00
ext Whoops; fix linux build again 2015-06-27 22:41:39 -04:00
or Reuse intro points that failed but are still valid 2015-07-09 12:02:11 -04:00
test Merge remote-tracking branch 'origin/maint-0.2.6' 2015-06-25 10:41:15 -04:00
tools Merge branch 'bug16034_no_more_openssl_098_squashed' 2015-05-20 15:33:22 -04:00
trunnel Update trunnel code. 2015-05-28 12:44:52 -04:00
win32 Bump version to 0.2.7.1-alpha-dev 2015-05-12 11:54:06 -04:00
include.am Use trunnel for crypto_pwbox encoding/decoding. 2014-09-25 11:58:14 -04:00