Browse Source

Fix a failing unit test.

When we stopped looking at the "protocols" variable directly, we
broke the hs_service/build_update_descriptors test, since it didn't
actually update any of the flags.

The fix here is to call summarize_protover_flags() from that test,
and to expose summarize_protover_flags() as "STATIC" from
routerparse.c.
Nick Mathewson 6 years ago
parent
commit
3d937043c2
3 changed files with 8 additions and 5 deletions
  1. 1 5
      src/or/routerparse.c
  2. 4 0
      src/or/routerparse.h
  3. 3 0
      src/test/test_hs_service.c

+ 1 - 5
src/or/routerparse.c

@@ -379,10 +379,6 @@ static int check_signature_token(const char *digest,
                                  int flags,
                                  const char *doctype);
 
-static void summarize_protover_flags(protover_summary_flags_t *out,
-                                     const char *protocols,
-                                     const char *version);
-
 #undef DEBUG_AREA_ALLOC
 
 #ifdef DEBUG_AREA_ALLOC
@@ -2544,7 +2540,7 @@ routerstatus_parse_guardfraction(const char *guardfraction_str,
 /** Summarize the protocols listed in <b>protocols</b> into <b>out</b>,
  * falling back or correcting them based on <b>version</b> as appropriate.
  */
-static void
+STATIC void
 summarize_protover_flags(protover_summary_flags_t *out,
                          const char *protocols,
                          const char *version)

+ 4 - 0
src/or/routerparse.h

@@ -133,6 +133,10 @@ MOCK_DECL(STATIC int, router_compute_hash_final,(char *digest,
                            digest_algorithm_t alg));
 MOCK_DECL(STATIC int, signed_digest_equals,
           (const uint8_t *d1, const uint8_t *d2, size_t len));
+
+STATIC void summarize_protover_flags(protover_summary_flags_t *out,
+                                     const char *protocols,
+                                     const char *version);
 #endif /* defined(ROUTERPARSE_PRIVATE) */
 
 #define ED_DESC_SIGNATURE_PREFIX "Tor router descriptor signature v1"

+ 3 - 0
src/test/test_hs_service.c

@@ -20,6 +20,7 @@
 #define STATEFILE_PRIVATE
 #define TOR_CHANNEL_INTERNAL_
 #define HS_CLIENT_PRIVATE
+#define ROUTERPARSE_PRIVATE
 
 #include "test.h"
 #include "test_helpers.h"
@@ -37,6 +38,7 @@
 #include "networkstatus.h"
 #include "nodelist.h"
 #include "relay.h"
+#include "routerparse.h"
 
 #include "hs_common.h"
 #include "hs_config.h"
@@ -1210,6 +1212,7 @@ test_build_update_descriptors(void *arg)
     /* Ugly yes but we never free the "ri" object so this just makes things
      * easier. */
     ri.protocol_list = (char *) "HSDir=1-2 LinkAuth=3";
+    summarize_protover_flags(&ri.pv, ri.protocol_list, NULL);
     ret = curve25519_secret_key_generate(&curve25519_secret_key, 0);
     tt_int_op(ret, OP_EQ, 0);
     ri.onion_curve25519_pkey =