mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-09-21 13:34:59 +02:00
Extract microdesc_t into its own header.
This commit is contained in:
parent
def1f20e1f
commit
9d6276bca8
@ -70,6 +70,7 @@
|
||||
#include "node_st.h"
|
||||
#include "or_circuit_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
#include "microdesc_st.h"
|
||||
#include "routerstatus_st.h"
|
||||
|
||||
static channel_t * channel_connect_for_circuit(const tor_addr_t *addr,
|
||||
|
@ -90,6 +90,7 @@
|
||||
#include "or_connection_st.h"
|
||||
#include "or_circuit_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
#include "microdesc_st.h"
|
||||
#include "rend_authorized_client_st.h"
|
||||
#include "rend_encoded_v2_service_descriptor_st.h"
|
||||
#include "rend_service_descriptor_st.h"
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "authority_cert_st.h"
|
||||
#include "dir_server_st.h"
|
||||
#include "document_signature_st.h"
|
||||
#include "microdesc_st.h"
|
||||
#include "networkstatus_st.h"
|
||||
#include "networkstatus_voter_info_st.h"
|
||||
#include "node_st.h"
|
||||
|
@ -38,6 +38,7 @@
|
||||
|
||||
#include "dir_connection_st.h"
|
||||
#include "extrainfo_st.h"
|
||||
#include "microdesc_st.h"
|
||||
#include "node_st.h"
|
||||
#include "routerlist_st.h"
|
||||
#include "tor_version_st.h"
|
||||
|
@ -250,6 +250,7 @@ ORHEADERS = \
|
||||
src/or/listener_connection_st.h \
|
||||
src/or/main.h \
|
||||
src/or/microdesc.h \
|
||||
src/or/microdesc_st.h \
|
||||
src/or/networkstatus.h \
|
||||
src/or/networkstatus_st.h \
|
||||
src/or/networkstatus_sr_info_st.h \
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "routerlist.h"
|
||||
#include "routerparse.h"
|
||||
|
||||
#include "microdesc_st.h"
|
||||
#include "networkstatus_st.h"
|
||||
#include "node_st.h"
|
||||
#include "routerstatus_st.h"
|
||||
|
71
src/or/microdesc_st.h
Normal file
71
src/or/microdesc_st.h
Normal file
@ -0,0 +1,71 @@
|
||||
/* 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 MICRODESC_ST_H
|
||||
#define MICRODESC_ST_H
|
||||
|
||||
/** A microdescriptor is the smallest amount of information needed to build a
|
||||
* circuit through a router. They are generated by the directory authorities,
|
||||
* using information from the uploaded routerinfo documents. They are not
|
||||
* self-signed, but are rather authenticated by having their hash in a signed
|
||||
* networkstatus document. */
|
||||
struct microdesc_t {
|
||||
/** Hashtable node, used to look up the microdesc by its digest. */
|
||||
HT_ENTRY(microdesc_t) node;
|
||||
|
||||
/* Cache information */
|
||||
|
||||
/** When was this microdescriptor last listed in a consensus document?
|
||||
* Once a microdesc has been unlisted long enough, we can drop it.
|
||||
*/
|
||||
time_t last_listed;
|
||||
/** Where is this microdescriptor currently stored? */
|
||||
saved_location_bitfield_t saved_location : 3;
|
||||
/** If true, do not attempt to cache this microdescriptor on disk. */
|
||||
unsigned int no_save : 1;
|
||||
/** If true, this microdesc has an entry in the microdesc_map */
|
||||
unsigned int held_in_map : 1;
|
||||
/** Reference count: how many node_ts have a reference to this microdesc? */
|
||||
unsigned int held_by_nodes;
|
||||
|
||||
/** If saved_location == SAVED_IN_CACHE, this field holds the offset of the
|
||||
* microdescriptor in the cache. */
|
||||
off_t off;
|
||||
|
||||
/* The string containing the microdesc. */
|
||||
|
||||
/** A pointer to the encoded body of the microdescriptor. If the
|
||||
* saved_location is SAVED_IN_CACHE, then the body is a pointer into an
|
||||
* mmap'd region. Otherwise, it is a malloc'd string. The string might not
|
||||
* be NUL-terminated; take the length from <b>bodylen</b>. */
|
||||
char *body;
|
||||
/** The length of the microdescriptor in <b>body</b>. */
|
||||
size_t bodylen;
|
||||
/** A SHA256-digest of the microdescriptor. */
|
||||
char digest[DIGEST256_LEN];
|
||||
|
||||
/* Fields in the microdescriptor. */
|
||||
|
||||
/** As routerinfo_t.onion_pkey */
|
||||
crypto_pk_t *onion_pkey;
|
||||
/** As routerinfo_t.onion_curve25519_pkey */
|
||||
curve25519_public_key_t *onion_curve25519_pkey;
|
||||
/** Ed25519 identity key, if included. */
|
||||
ed25519_public_key_t *ed25519_identity_pkey;
|
||||
/** As routerinfo_t.ipv6_addr */
|
||||
tor_addr_t ipv6_addr;
|
||||
/** As routerinfo_t.ipv6_orport */
|
||||
uint16_t ipv6_orport;
|
||||
/** As routerinfo_t.family */
|
||||
smartlist_t *family;
|
||||
/** IPv4 exit policy summary */
|
||||
short_policy_t *exit_policy;
|
||||
/** IPv6 exit policy summary */
|
||||
short_policy_t *ipv6_exit_policy;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -69,6 +69,7 @@
|
||||
#include "dirauth/mode.h"
|
||||
|
||||
#include "dir_server_st.h"
|
||||
#include "microdesc_st.h"
|
||||
#include "networkstatus_st.h"
|
||||
#include "node_st.h"
|
||||
#include "routerlist_st.h"
|
||||
|
62
src/or/or.h
62
src/or/or.h
@ -1715,67 +1715,7 @@ typedef struct short_policy_t {
|
||||
short_policy_entry_t entries[FLEXIBLE_ARRAY_MEMBER];
|
||||
} short_policy_t;
|
||||
|
||||
/** A microdescriptor is the smallest amount of information needed to build a
|
||||
* circuit through a router. They are generated by the directory authorities,
|
||||
* using information from the uploaded routerinfo documents. They are not
|
||||
* self-signed, but are rather authenticated by having their hash in a signed
|
||||
* networkstatus document. */
|
||||
typedef struct microdesc_t {
|
||||
/** Hashtable node, used to look up the microdesc by its digest. */
|
||||
HT_ENTRY(microdesc_t) node;
|
||||
|
||||
/* Cache information */
|
||||
|
||||
/** When was this microdescriptor last listed in a consensus document?
|
||||
* Once a microdesc has been unlisted long enough, we can drop it.
|
||||
*/
|
||||
time_t last_listed;
|
||||
/** Where is this microdescriptor currently stored? */
|
||||
saved_location_bitfield_t saved_location : 3;
|
||||
/** If true, do not attempt to cache this microdescriptor on disk. */
|
||||
unsigned int no_save : 1;
|
||||
/** If true, this microdesc has an entry in the microdesc_map */
|
||||
unsigned int held_in_map : 1;
|
||||
/** Reference count: how many node_ts have a reference to this microdesc? */
|
||||
unsigned int held_by_nodes;
|
||||
|
||||
/** If saved_location == SAVED_IN_CACHE, this field holds the offset of the
|
||||
* microdescriptor in the cache. */
|
||||
off_t off;
|
||||
|
||||
/* The string containing the microdesc. */
|
||||
|
||||
/** A pointer to the encoded body of the microdescriptor. If the
|
||||
* saved_location is SAVED_IN_CACHE, then the body is a pointer into an
|
||||
* mmap'd region. Otherwise, it is a malloc'd string. The string might not
|
||||
* be NUL-terminated; take the length from <b>bodylen</b>. */
|
||||
char *body;
|
||||
/** The length of the microdescriptor in <b>body</b>. */
|
||||
size_t bodylen;
|
||||
/** A SHA256-digest of the microdescriptor. */
|
||||
char digest[DIGEST256_LEN];
|
||||
|
||||
/* Fields in the microdescriptor. */
|
||||
|
||||
/** As routerinfo_t.onion_pkey */
|
||||
crypto_pk_t *onion_pkey;
|
||||
/** As routerinfo_t.onion_curve25519_pkey */
|
||||
curve25519_public_key_t *onion_curve25519_pkey;
|
||||
/** Ed25519 identity key, if included. */
|
||||
ed25519_public_key_t *ed25519_identity_pkey;
|
||||
/** As routerinfo_t.ipv6_addr */
|
||||
tor_addr_t ipv6_addr;
|
||||
/** As routerinfo_t.ipv6_orport */
|
||||
uint16_t ipv6_orport;
|
||||
/** As routerinfo_t.family */
|
||||
smartlist_t *family;
|
||||
/** IPv4 exit policy summary */
|
||||
short_policy_t *exit_policy;
|
||||
/** IPv6 exit policy summary */
|
||||
short_policy_t *ipv6_exit_policy;
|
||||
|
||||
} microdesc_t;
|
||||
|
||||
typedef struct microdesc_t microdesc_t;
|
||||
typedef struct node_t node_t;
|
||||
typedef struct vote_microdesc_hash_t vote_microdesc_hash_t;
|
||||
typedef struct vote_routerstatus_t vote_routerstatus_t;
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "ht.h"
|
||||
|
||||
#include "dir_server_st.h"
|
||||
#include "microdesc_st.h"
|
||||
#include "node_st.h"
|
||||
#include "port_cfg_st.h"
|
||||
#include "routerstatus_st.h"
|
||||
|
@ -84,6 +84,7 @@
|
||||
#include "authority_cert_st.h"
|
||||
#include "document_signature_st.h"
|
||||
#include "extrainfo_st.h"
|
||||
#include "microdesc_st.h"
|
||||
#include "networkstatus_st.h"
|
||||
#include "networkstatus_voter_info_st.h"
|
||||
#include "ns_detached_signatures_st.h"
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "routerlist.h"
|
||||
#include "torcert.h"
|
||||
|
||||
#include "microdesc_st.h"
|
||||
#include "networkstatus_st.h"
|
||||
#include "routerstatus_st.h"
|
||||
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "microdesc_st.h"
|
||||
#include "networkstatus_st.h"
|
||||
#include "node_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "util.h"
|
||||
#include "voting_schedule.h"
|
||||
|
||||
#include "microdesc_st.h"
|
||||
#include "networkstatus_st.h"
|
||||
#include "node_st.h"
|
||||
#include "routerstatus_st.h"
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "routerparse.h"
|
||||
#include "torcert.h"
|
||||
|
||||
#include "microdesc_st.h"
|
||||
#include "networkstatus_st.h"
|
||||
#include "routerstatus_st.h"
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "nodelist.h"
|
||||
#include "torcert.h"
|
||||
|
||||
#include "microdesc_st.h"
|
||||
#include "networkstatus_st.h"
|
||||
#include "node_st.h"
|
||||
#include "routerstatus_st.h"
|
||||
|
Loading…
Reference in New Issue
Block a user