]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
test/hs: Correctly convert an IPv6 intro point to an extend_info
authorteor <teor@torproject.org>
Wed, 24 Apr 2019 07:23:00 +0000 (17:23 +1000)
committerteor <teor@torproject.org>
Wed, 24 Apr 2019 07:29:14 +0000 (17:29 +1000)
Part of #23588.

src/test/test_hs_client.c

index 8362b6cbda44edbc5e3d4932195f65f2900276f2..aba0c937cc5f8ea03a3fade050f0569207e96716 100644 (file)
@@ -479,6 +479,17 @@ test_client_pick_intro(void *arg)
     SMARTLIST_FOREACH_BEGIN(desc->encrypted_data.intro_points,
                             hs_desc_intro_point_t *, ip) {
       extend_info_t *intro_ei = desc_intro_point_to_extend_info(ip);
+      /* desc_intro_point_to_extend_info() doesn't return IPv6 intro points
+       * yet, because we can't extend to them. See #24404, #24451, and #24181.
+       */
+      if (intro_ei == NULL) {
+        /* Pretend we're making a direct connection, and that we can use IPv6
+         */
+        get_options_mutable()->ClientUseIPv6 = 1;
+        intro_ei = hs_get_extend_info_from_lspecs(ip->link_specifiers,
+                                                  &ip->onion_key, 1);
+        tt_assert(tor_addr_family(&intro_ei->addr) == AF_INET6);
+      }
       tt_assert(intro_ei);
       if (intro_ei) {
         const char *ptr;