summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/ticket277975
-rw-r--r--src/or/nodelist.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/changes/ticket27797 b/changes/ticket27797
new file mode 100644
index 0000000000..f07e35f84c
--- /dev/null
+++ b/changes/ticket27797
@@ -0,0 +1,5 @@
+ o Minor bugfixes (node, hidden service v3):
+ - When selecting a v3 rendezvous point, not only look at the protover but
+ also if the curve25519 onion key is present. That way we avoid picking a
+ node that supports the v3 rendezvous but for which we don't have the
+ descriptor yet for the key. Fixes bug 27797; bugfix on 0.3.2.1-alpha.
diff --git a/src/or/nodelist.c b/src/or/nodelist.c
index fcd5e0220b..032e8d669f 100644
--- a/src/or/nodelist.c
+++ b/src/or/nodelist.c
@@ -1153,6 +1153,11 @@ node_supports_v3_rendezvous_point(const node_t *node)
{
tor_assert(node);
+ /* We can't use a v3 rendezvous point without the curve25519 onion pk. */
+ if (!node_get_curve25519_onion_key(node)) {
+ return 0;
+ }
+
return node_get_protover_summary_flags(node)->supports_v3_rendezvous_point;
}