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.
This commit is contained in:
Nick Mathewson 2018-01-31 14:06:37 -05:00
parent bbf2d9cf6b
commit 3d937043c2
3 changed files with 8 additions and 5 deletions

View File

@ -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)

View File

@ -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"

View File

@ -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 =