commit 4d1771cfff7117da3f3b2d9a304755d966613372
Author: Damian Johnson <[email protected]>
Date: Mon May 11 12:37:39 2015 -0700
Stop waiting for HS publication when it fails
Our create_ephemeral_hidden_service()'s await_publication option didn't
account
for all requests failing.
---
stem/control.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/stem/control.py b/stem/control.py
index fc86909..44a0b7d 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -2673,16 +2673,21 @@ class Controller(BaseController):
# to just guess that if it's for the same hidden service authority then
# it's what we're looking for.
- authorities_uploaded_to = []
+ directories_uploaded_to, failures = [], []
try:
while True:
event = hs_desc_queue.get()
if event.action == stem.HSDescAction.UPLOAD and event.address ==
response.service_id:
- authorities_uploaded_to.append(event.directory_fingerprint)
- elif event.action == stem.HSDescAction.UPLOADED and
event.directory_fingerprint in authorities_uploaded_to:
+ directories_uploaded_to.append(event.directory_fingerprint)
+ elif event.action == stem.HSDescAction.UPLOADED and
event.directory_fingerprint in directories_uploaded_to:
break # successfully uploaded to a HS authority... maybe
+ elif event.action == stem.HSDescAction.FAILED and
event.directory_fingerprint in directories_uploaded_to:
+ failures.append('%s (%s)' % (event.directory_fingerprint,
event.reason))
+
+ if len(directories_uploaded_to) == len(failures):
+ raise stem.OperationFailed(message = 'Failed to upload our
hidden service descriptor to %s' % ', '.join(failures))
finally:
self.remove_event_listener(hs_desc_listener)
_______________________________________________
tor-commits mailing list
[email protected]
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits