Browse Source

Extract rend_service_descriptor_t into its own header.

Nick Mathewson 5 years ago
parent
commit
22e9c64738

+ 1 - 0
src/or/control.c

@@ -87,6 +87,7 @@
 #include "or_connection_st.h"
 #include "or_circuit_st.h"
 #include "origin_circuit_st.h"
+#include "rend_service_descriptor_st.h"
 
 #ifndef _WIN32
 #include <pwd.h>

+ 1 - 0
src/or/directory.c

@@ -56,6 +56,7 @@
 #include "dir_connection_st.h"
 #include "dir_server_st.h"
 #include "entry_connection_st.h"
+#include "rend_service_descriptor_st.h"
 
 /**
  * \file directory.c

+ 1 - 0
src/or/include.am

@@ -279,6 +279,7 @@ ORHEADERS = \
 	src/or/rendcommon.h				\
 	src/or/rendmid.h				\
 	src/or/rendservice.h				\
+	src/or/rend_service_descriptor_st.h		\
 	src/or/rephist.h				\
 	src/or/replaycache.h				\
 	src/or/router.h					\

+ 1 - 22
src/or/or.h

@@ -4145,28 +4145,7 @@ typedef struct rend_intro_point_t {
   unsigned int circuit_established:1;
 } rend_intro_point_t;
 
-#define REND_PROTOCOL_VERSION_BITMASK_WIDTH 16
-
-/** Information used to connect to a hidden service.  Used on both the
- * service side and the client side. */
-typedef struct rend_service_descriptor_t {
-  crypto_pk_t *pk; /**< This service's public key. */
-  int version; /**< Version of the descriptor format: 0 or 2. */
-  time_t timestamp; /**< Time when the descriptor was generated. */
-  /** Bitmask: which introduce/rendezvous protocols are supported?
-   * (We allow bits '0', '1', '2' and '3' to be set.) */
-  unsigned protocols : REND_PROTOCOL_VERSION_BITMASK_WIDTH;
-  /** List of the service's introduction points.  Elements are removed if
-   * introduction attempts fail. */
-  smartlist_t *intro_nodes;
-  /** Has descriptor been uploaded to all hidden service directories? */
-  int all_uploads_performed;
-  /** List of hidden service directories to which an upload request for
-   * this descriptor could be sent. Smartlist exists only when at least one
-   * of the previous upload requests failed (otherwise it's not important
-   * to know which uploads succeeded and which not). */
-  smartlist_t *successful_uploads;
-} rend_service_descriptor_t;
+typedef struct rend_service_descriptor_t rend_service_descriptor_t;
 
 /********************************* routerlist.c ***************************/
 

+ 34 - 0
src/or/rend_service_descriptor_st.h

@@ -0,0 +1,34 @@
+/* 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 REND_SERVICE_DESCRIPTOR_ST_H
+#define REND_SERVICE_DESCRIPTOR_ST_H
+
+#define REND_PROTOCOL_VERSION_BITMASK_WIDTH 16
+
+/** Information used to connect to a hidden service.  Used on both the
+ * service side and the client side. */
+struct rend_service_descriptor_t {
+  crypto_pk_t *pk; /**< This service's public key. */
+  int version; /**< Version of the descriptor format: 0 or 2. */
+  time_t timestamp; /**< Time when the descriptor was generated. */
+  /** Bitmask: which introduce/rendezvous protocols are supported?
+   * (We allow bits '0', '1', '2' and '3' to be set.) */
+  unsigned protocols : REND_PROTOCOL_VERSION_BITMASK_WIDTH;
+  /** List of the service's introduction points.  Elements are removed if
+   * introduction attempts fail. */
+  smartlist_t *intro_nodes;
+  /** Has descriptor been uploaded to all hidden service directories? */
+  int all_uploads_performed;
+  /** List of hidden service directories to which an upload request for
+   * this descriptor could be sent. Smartlist exists only when at least one
+   * of the previous upload requests failed (otherwise it's not important
+   * to know which uploads succeeded and which not). */
+  smartlist_t *successful_uploads;
+};
+
+#endif
+

+ 2 - 0
src/or/rendcache.c

@@ -15,6 +15,8 @@
 #include "routerparse.h"
 #include "rendcommon.h"
 
+#include "rend_service_descriptor_st.h"
+
 /** Map from service id (as generated by rend_get_service_id) to
  * rend_cache_entry_t. */
 STATIC strmap_t *rend_cache = NULL;

+ 1 - 0
src/or/rendclient.c

@@ -38,6 +38,7 @@
 #include "dir_connection_st.h"
 #include "entry_connection_st.h"
 #include "origin_circuit_st.h"
+#include "rend_service_descriptor_st.h"
 
 static extend_info_t *rend_client_get_random_intro_impl(
                           const rend_cache_entry_t *rend_query,

+ 1 - 0
src/or/rendcommon.c

@@ -34,6 +34,7 @@
 #include "cpath_build_state_st.h"
 #include "crypt_path_st.h"
 #include "origin_circuit_st.h"
+#include "rend_service_descriptor_st.h"
 
 /** Return 0 if one and two are the same service ids, else -1 or 1 */
 int

+ 1 - 0
src/or/rendservice.c

@@ -41,6 +41,7 @@
 #include "crypt_path_reference_st.h"
 #include "edge_connection_st.h"
 #include "origin_circuit_st.h"
+#include "rend_service_descriptor_st.h"
 
 struct rend_service_t;
 static origin_circuit_t *find_intro_circuit(rend_intro_point_t *intro,

+ 4 - 3
src/or/routerparse.c

@@ -79,13 +79,14 @@
 #include "torcert.h"
 #include "voting_schedule.h"
 
-#undef log
-#include <math.h>
-
 #include "dirauth/dirvote.h"
 
+#include "rend_service_descriptor_st.h"
 #include "tor_version_st.h"
 
+#undef log
+#include <math.h>
+
 /****************************************************************************/
 
 /** List of tokens recognized in router descriptors */

+ 3 - 0
src/test/fuzz/fuzz_iptsv2.c

@@ -4,6 +4,9 @@
 #include "or.h"
 #include "routerparse.h"
 #include "rendcommon.h"
+
+#include "rend_service_descriptor_st.h"
+
 #include "fuzzing.h"
 
 static void

+ 2 - 0
src/test/rend_test_helpers.c

@@ -7,6 +7,8 @@
 #include "rendcommon.h"
 #include "rend_test_helpers.h"
 
+#include "rend_service_descriptor_st.h"
+
 void
 generate_desc(int time_diff, rend_encoded_v2_service_descriptor_t **desc,
               char **service_id, int intro_points)

+ 1 - 0
src/test/test.c

@@ -63,6 +63,7 @@ double fabs(double x);
 #include "crypto_curve25519.h"
 
 #include "or_circuit_st.h"
+#include "rend_service_descriptor_st.h"
 
 /** Run unit tests for the onion handshake code. */
 static void

+ 3 - 0
src/test/test_rendcache.c

@@ -11,6 +11,9 @@
 #include "routerlist.h"
 #include "config.h"
 #include "hs_common.h"
+
+#include "rend_service_descriptor_st.h"
+
 #include "rend_test_helpers.h"
 #include "log_test_helpers.h"