[tor-commits] [tor/master] Extract microdesc_t into its own header.

nickm at torproject.org nickm at torproject.org
Mon Jun 18 18:18:43 UTC 2018


commit 9d6276bca895101d5e76be52300b982b95284c69
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Jun 15 14:38:30 2018 -0400

    Extract microdesc_t into its own header.
---
 src/or/circuitbuild.c       |  1 +
 src/or/control.c            |  1 +
 src/or/dirauth/dirvote.c    |  1 +
 src/or/dirserv.c            |  1 +
 src/or/include.am           |  1 +
 src/or/microdesc.c          |  1 +
 src/or/microdesc_st.h       | 71 +++++++++++++++++++++++++++++++++++++++++++++
 src/or/nodelist.c           |  1 +
 src/or/or.h                 | 62 +--------------------------------------
 src/or/policies.c           |  1 +
 src/or/routerparse.c        |  1 +
 src/test/test_address_set.c |  1 +
 src/test/test_entrynodes.c  |  1 +
 src/test/test_hs_common.c   |  1 +
 src/test/test_microdesc.c   |  1 +
 src/test/test_nodelist.c    |  1 +
 16 files changed, 86 insertions(+), 61 deletions(-)

diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 4944a70ce..b871bd10c 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -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,
diff --git a/src/or/control.c b/src/or/control.c
index c1d14b7a4..642d38774 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -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"
diff --git a/src/or/dirauth/dirvote.c b/src/or/dirauth/dirvote.c
index 29134868c..73fa07bfe 100644
--- a/src/or/dirauth/dirvote.c
+++ b/src/or/dirauth/dirvote.c
@@ -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"
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index b76fa25d6..8cfccda61 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -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"
diff --git a/src/or/include.am b/src/or/include.am
index 602b811be..564af4ba4 100644
--- a/src/or/include.am
+++ b/src/or/include.am
@@ -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		\
diff --git a/src/or/microdesc.c b/src/or/microdesc.c
index f125cf405..a194fb3b0 100644
--- a/src/or/microdesc.c
+++ b/src/or/microdesc.c
@@ -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"
diff --git a/src/or/microdesc_st.h b/src/or/microdesc_st.h
new file mode 100644
index 000000000..f10a9ed7f
--- /dev/null
+++ b/src/or/microdesc_st.h
@@ -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
+
diff --git a/src/or/nodelist.c b/src/or/nodelist.c
index b542fd516..91d100336 100644
--- a/src/or/nodelist.c
+++ b/src/or/nodelist.c
@@ -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"
diff --git a/src/or/or.h b/src/or/or.h
index 0d564b1e2..40d7dfee3 100644
--- a/src/or/or.h
+++ b/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;
diff --git a/src/or/policies.c b/src/or/policies.c
index 0c1e3497e..07cf12387 100644
--- a/src/or/policies.c
+++ b/src/or/policies.c
@@ -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"
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index 7a19460df..dee4220b6 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -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"
diff --git a/src/test/test_address_set.c b/src/test/test_address_set.c
index a704e6fb3..efc4d4e8a 100644
--- a/src/test/test_address_set.c
+++ b/src/test/test_address_set.c
@@ -10,6 +10,7 @@
 #include "routerlist.h"
 #include "torcert.h"
 
+#include "microdesc_st.h"
 #include "networkstatus_st.h"
 #include "routerstatus_st.h"
 
diff --git a/src/test/test_entrynodes.c b/src/test/test_entrynodes.c
index d16af591d..6a93921f9 100644
--- a/src/test/test_entrynodes.c
+++ b/src/test/test_entrynodes.c
@@ -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"
diff --git a/src/test/test_hs_common.c b/src/test/test_hs_common.c
index ea5fb4979..342626bcc 100644
--- a/src/test/test_hs_common.c
+++ b/src/test/test_hs_common.c
@@ -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"
diff --git a/src/test/test_microdesc.c b/src/test/test_microdesc.c
index 1fdac0924..593089335 100644
--- a/src/test/test_microdesc.c
+++ b/src/test/test_microdesc.c
@@ -13,6 +13,7 @@
 #include "routerparse.h"
 #include "torcert.h"
 
+#include "microdesc_st.h"
 #include "networkstatus_st.h"
 #include "routerstatus_st.h"
 
diff --git a/src/test/test_nodelist.c b/src/test/test_nodelist.c
index 018f109e5..e41557ed3 100644
--- a/src/test/test_nodelist.c
+++ b/src/test/test_nodelist.c
@@ -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"





More information about the tor-commits mailing list