mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-25 07:07:52 +01:00
Split vote_{microdesc_hash,routerstatus}_t into their own headers
This commit is contained in:
parent
d2942d127d
commit
72d2fd83d8
14 changed files with 86 additions and 39 deletions
|
@ -25,6 +25,8 @@
|
||||||
#include "dircollate.h"
|
#include "dircollate.h"
|
||||||
#include "dirvote.h"
|
#include "dirvote.h"
|
||||||
|
|
||||||
|
#include "vote_routerstatus_st.h"
|
||||||
|
|
||||||
static void dircollator_collate_by_ed25519(dircollator_t *dc);
|
static void dircollator_collate_by_ed25519(dircollator_t *dc);
|
||||||
|
|
||||||
/** Hashtable entry mapping a pair of digests (actually an ed25519 key and an
|
/** Hashtable entry mapping a pair of digests (actually an ed25519 key and an
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
#include "dir_server_st.h"
|
#include "dir_server_st.h"
|
||||||
#include "node_st.h"
|
#include "node_st.h"
|
||||||
|
#include "vote_microdesc_hash_st.h"
|
||||||
|
#include "vote_routerstatus_st.h"
|
||||||
#include "vote_timing_st.h"
|
#include "vote_timing_st.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
#include "dir_connection_st.h"
|
#include "dir_connection_st.h"
|
||||||
#include "node_st.h"
|
#include "node_st.h"
|
||||||
#include "tor_version_st.h"
|
#include "tor_version_st.h"
|
||||||
|
#include "vote_routerstatus_st.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file dirserv.c
|
* \file dirserv.c
|
||||||
|
|
|
@ -301,6 +301,8 @@ ORHEADERS = \
|
||||||
src/or/torcert.h \
|
src/or/torcert.h \
|
||||||
src/or/tor_api_internal.h \
|
src/or/tor_api_internal.h \
|
||||||
src/or/tor_version_st.h \
|
src/or/tor_version_st.h \
|
||||||
|
src/or/vote_microdesc_hash_st.h \
|
||||||
|
src/or/vote_routerstatus_st.h \
|
||||||
src/or/vote_timing_st.h \
|
src/or/vote_timing_st.h \
|
||||||
src/or/voting_schedule.h
|
src/or/voting_schedule.h
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,8 @@
|
||||||
#include "dir_connection_st.h"
|
#include "dir_connection_st.h"
|
||||||
#include "dir_server_st.h"
|
#include "dir_server_st.h"
|
||||||
#include "node_st.h"
|
#include "node_st.h"
|
||||||
|
#include "vote_microdesc_hash_st.h"
|
||||||
|
#include "vote_routerstatus_st.h"
|
||||||
|
|
||||||
/** Most recently received and validated v3 "ns"-flavored consensus network
|
/** Most recently received and validated v3 "ns"-flavored consensus network
|
||||||
* status. */
|
* status. */
|
||||||
|
|
41
src/or/or.h
41
src/or/or.h
|
@ -1858,45 +1858,8 @@ typedef struct microdesc_t {
|
||||||
} microdesc_t;
|
} microdesc_t;
|
||||||
|
|
||||||
typedef struct node_t node_t;
|
typedef struct node_t node_t;
|
||||||
|
typedef struct vote_microdesc_hash_t vote_microdesc_hash_t;
|
||||||
/** Linked list of microdesc hash lines for a single router in a directory
|
typedef struct vote_routerstatus_t vote_routerstatus_t;
|
||||||
* vote.
|
|
||||||
*/
|
|
||||||
typedef struct vote_microdesc_hash_t {
|
|
||||||
/** Next element in the list, or NULL. */
|
|
||||||
struct vote_microdesc_hash_t *next;
|
|
||||||
/** The raw contents of the microdesc hash line, from the "m" through the
|
|
||||||
* newline. */
|
|
||||||
char *microdesc_hash_line;
|
|
||||||
} vote_microdesc_hash_t;
|
|
||||||
|
|
||||||
/** The claim about a single router, made in a vote. */
|
|
||||||
typedef struct vote_routerstatus_t {
|
|
||||||
routerstatus_t status; /**< Underlying 'status' object for this router.
|
|
||||||
* Flags are redundant. */
|
|
||||||
/** How many known-flags are allowed in a vote? This is the width of
|
|
||||||
* the flags field of vote_routerstatus_t */
|
|
||||||
#define MAX_KNOWN_FLAGS_IN_VOTE 64
|
|
||||||
uint64_t flags; /**< Bit-field for all recognized flags; index into
|
|
||||||
* networkstatus_t.known_flags. */
|
|
||||||
char *version; /**< The version that the authority says this router is
|
|
||||||
* running. */
|
|
||||||
char *protocols; /**< The protocols that this authority says this router
|
|
||||||
* provides. */
|
|
||||||
unsigned int has_measured_bw:1; /**< The vote had a measured bw */
|
|
||||||
/** True iff the vote included an entry for ed25519 ID, or included
|
|
||||||
* "id ed25519 none" to indicate that there was no ed25519 ID. */
|
|
||||||
unsigned int has_ed25519_listing:1;
|
|
||||||
/** True if the Ed25519 listing here is the consensus-opinion for the
|
|
||||||
* Ed25519 listing; false if there was no consensus on Ed25519 key status,
|
|
||||||
* or if this VRS doesn't reflect it. */
|
|
||||||
unsigned int ed25519_reflects_consensus:1;
|
|
||||||
uint32_t measured_bw_kb; /**< Measured bandwidth (capacity) of the router */
|
|
||||||
/** The hash or hashes that the authority claims this microdesc has. */
|
|
||||||
vote_microdesc_hash_t *microdesc;
|
|
||||||
/** Ed25519 identity for this router, or zero if it has none. */
|
|
||||||
uint8_t ed25519_id[ED25519_PUBKEY_LEN];
|
|
||||||
} vote_routerstatus_t;
|
|
||||||
|
|
||||||
/** A signature of some document by an authority. */
|
/** A signature of some document by an authority. */
|
||||||
typedef struct document_signature_t {
|
typedef struct document_signature_t {
|
||||||
|
|
|
@ -128,6 +128,7 @@
|
||||||
#include "dir_connection_st.h"
|
#include "dir_connection_st.h"
|
||||||
#include "dir_server_st.h"
|
#include "dir_server_st.h"
|
||||||
#include "node_st.h"
|
#include "node_st.h"
|
||||||
|
#include "vote_routerstatus_st.h"
|
||||||
|
|
||||||
// #define DEBUG_ROUTERLIST
|
// #define DEBUG_ROUTERLIST
|
||||||
|
|
||||||
|
|
|
@ -85,6 +85,8 @@
|
||||||
#include "rend_intro_point_st.h"
|
#include "rend_intro_point_st.h"
|
||||||
#include "rend_service_descriptor_st.h"
|
#include "rend_service_descriptor_st.h"
|
||||||
#include "tor_version_st.h"
|
#include "tor_version_st.h"
|
||||||
|
#include "vote_microdesc_hash_st.h"
|
||||||
|
#include "vote_routerstatus_st.h"
|
||||||
|
|
||||||
#undef log
|
#undef log
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
22
src/or/vote_microdesc_hash_st.h
Normal file
22
src/or/vote_microdesc_hash_st.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
/* Copyright (c) 2001 Matej Pfajfar.
|
||||||
|
* Copyright (c) 2001-2004, Roger Dingledine.
|
||||||
|
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
|
||||||
|
* Copyright (c) 2007-2017, The Tor Project, Inc. */
|
||||||
|
/* See LICENSE for licensing information */
|
||||||
|
|
||||||
|
#ifndef VOTE_MICRODESC_HASH_ST_H
|
||||||
|
#define VOTE_MICRODESC_HASH_ST_H
|
||||||
|
|
||||||
|
/** Linked list of microdesc hash lines for a single router in a directory
|
||||||
|
* vote.
|
||||||
|
*/
|
||||||
|
struct vote_microdesc_hash_t {
|
||||||
|
/** Next element in the list, or NULL. */
|
||||||
|
struct vote_microdesc_hash_t *next;
|
||||||
|
/** The raw contents of the microdesc hash line, from the "m" through the
|
||||||
|
* newline. */
|
||||||
|
char *microdesc_hash_line;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
39
src/or/vote_routerstatus_st.h
Normal file
39
src/or/vote_routerstatus_st.h
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
/* Copyright (c) 2001 Matej Pfajfar.
|
||||||
|
* Copyright (c) 2001-2004, Roger Dingledine.
|
||||||
|
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
|
||||||
|
* Copyright (c) 2007-2017, The Tor Project, Inc. */
|
||||||
|
/* See LICENSE for licensing information */
|
||||||
|
|
||||||
|
#ifndef VOTE_ROUTERSTATUS_ST_H
|
||||||
|
#define VOTE_ROUTERSTATUS_ST_H
|
||||||
|
|
||||||
|
/** The claim about a single router, made in a vote. */
|
||||||
|
struct vote_routerstatus_t {
|
||||||
|
routerstatus_t status; /**< Underlying 'status' object for this router.
|
||||||
|
* Flags are redundant. */
|
||||||
|
/** How many known-flags are allowed in a vote? This is the width of
|
||||||
|
* the flags field of vote_routerstatus_t */
|
||||||
|
#define MAX_KNOWN_FLAGS_IN_VOTE 64
|
||||||
|
uint64_t flags; /**< Bit-field for all recognized flags; index into
|
||||||
|
* networkstatus_t.known_flags. */
|
||||||
|
char *version; /**< The version that the authority says this router is
|
||||||
|
* running. */
|
||||||
|
char *protocols; /**< The protocols that this authority says this router
|
||||||
|
* provides. */
|
||||||
|
unsigned int has_measured_bw:1; /**< The vote had a measured bw */
|
||||||
|
/** True iff the vote included an entry for ed25519 ID, or included
|
||||||
|
* "id ed25519 none" to indicate that there was no ed25519 ID. */
|
||||||
|
unsigned int has_ed25519_listing:1;
|
||||||
|
/** True if the Ed25519 listing here is the consensus-opinion for the
|
||||||
|
* Ed25519 listing; false if there was no consensus on Ed25519 key status,
|
||||||
|
* or if this VRS doesn't reflect it. */
|
||||||
|
unsigned int ed25519_reflects_consensus:1;
|
||||||
|
uint32_t measured_bw_kb; /**< Measured bandwidth (capacity) of the router */
|
||||||
|
/** The hash or hashes that the authority claims this microdesc has. */
|
||||||
|
vote_microdesc_hash_t *microdesc;
|
||||||
|
/** Ed25519 identity for this router, or zero if it has none. */
|
||||||
|
uint8_t ed25519_id[ED25519_PUBKEY_LEN];
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
#include "memarea.h"
|
#include "memarea.h"
|
||||||
#include "microdesc.h"
|
#include "microdesc.h"
|
||||||
#include "networkstatus.h"
|
#include "networkstatus.h"
|
||||||
|
|
||||||
|
#include "vote_routerstatus_st.h"
|
||||||
|
|
||||||
#include "fuzzing.h"
|
#include "fuzzing.h"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -47,6 +47,8 @@
|
||||||
|
|
||||||
#include "port_cfg_st.h"
|
#include "port_cfg_st.h"
|
||||||
#include "tor_version_st.h"
|
#include "tor_version_st.h"
|
||||||
|
#include "vote_microdesc_hash_st.h"
|
||||||
|
#include "vote_routerstatus_st.h"
|
||||||
|
|
||||||
#define NS_MODULE dir
|
#define NS_MODULE dir
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,9 @@
|
||||||
#include "test_dir_common.h"
|
#include "test_dir_common.h"
|
||||||
#include "voting_schedule.h"
|
#include "voting_schedule.h"
|
||||||
|
|
||||||
|
#include "vote_microdesc_hash_st.h"
|
||||||
|
#include "vote_routerstatus_st.h"
|
||||||
|
|
||||||
void dir_common_setup_vote(networkstatus_t **vote, time_t now);
|
void dir_common_setup_vote(networkstatus_t **vote, time_t now);
|
||||||
networkstatus_t * dir_common_add_rs_and_parse(networkstatus_t *vote,
|
networkstatus_t * dir_common_add_rs_and_parse(networkstatus_t *vote,
|
||||||
networkstatus_t **vote_out,
|
networkstatus_t **vote_out,
|
||||||
|
|
|
@ -15,6 +15,9 @@
|
||||||
#include "routerparse.h"
|
#include "routerparse.h"
|
||||||
#include "networkstatus.h"
|
#include "networkstatus.h"
|
||||||
|
|
||||||
|
#include "vote_microdesc_hash_st.h"
|
||||||
|
#include "vote_routerstatus_st.h"
|
||||||
|
|
||||||
#include "test.h"
|
#include "test.h"
|
||||||
#include "test_helpers.h"
|
#include "test_helpers.h"
|
||||||
#include "log_test_helpers.h"
|
#include "log_test_helpers.h"
|
||||||
|
|
Loading…
Add table
Reference in a new issue