aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorteor <teor2345@gmail.com>2017-03-02 15:55:33 +1100
committerNick Mathewson <nickm@torproject.org>2017-03-04 23:15:55 -0500
commit684778e705b0e873e61a4befc4f1017db795cc66 (patch)
tree6f440ddaa9d41036cabd9b3a3e388be485e0c3a6
parent3e2d06bd3d574eb47ec27edcc6832ed9678e7863 (diff)
downloadtor-684778e705b0e873e61a4befc4f1017db795cc66.tar.gz
tor-684778e705b0e873e61a4befc4f1017db795cc66.zip
Simplify hidden service descriptor creation
Use an existing flag to check if an introduction point is established. Cleanup after 21596. Fixes bug 21599; bugfix on 0.2.7.2-alpha.
-rw-r--r--changes/bug215994
-rw-r--r--src/or/rendservice.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/changes/bug21599 b/changes/bug21599
new file mode 100644
index 0000000000..fe0f21a740
--- /dev/null
+++ b/changes/bug21599
@@ -0,0 +1,4 @@
+ o Minor bugfixes (hidden services):
+ - Simplify hidden service descriptor creation by using an existing flag
+ to check if an introduction point is established.
+ Fixes bug 21599; bugfix on 0.2.7.2-alpha.
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index c23d45cf34..51558990d8 100644
--- a/src/or/rendservice.c
+++ b/src/or/rendservice.c
@@ -1035,7 +1035,6 @@ static void
rend_service_update_descriptor(rend_service_t *service)
{
rend_service_descriptor_t *d;
- origin_circuit_t *circ;
int i;
rend_service_descriptor_free(service->desc);
@@ -1056,9 +1055,10 @@ rend_service_update_descriptor(rend_service_t *service)
/* This intro point won't be listed in the descriptor... */
intro_svc->listed_in_last_desc = 0;
- circ = find_intro_circuit(intro_svc, service->pk_digest);
- if (!circ || circ->base_.purpose != CIRCUIT_PURPOSE_S_INTRO) {
- /* This intro point's circuit isn't finished yet. Don't list it. */
+ /* circuit_established is set in rend_service_intro_established(), and
+ * checked every second in rend_consider_services_intro_points(), so it's
+ * safe to use it here */
+ if (!intro_svc->circuit_established) {
continue;
}