[tor-commits] [tor/master] Pull a couple more enums from or.h

nickm at torproject.org nickm at torproject.org
Tue Jul 3 15:11:30 UTC 2018


commit f75357ec355e4e716321417e562526ce77f4f931
Author: Nick Mathewson <nickm at torproject.org>
Date:   Sun Jul 1 14:44:04 2018 -0400

    Pull a couple more enums from or.h
---
 src/or/circpathbias.h      |  3 +-
 src/or/crypt_path_st.h     | 14 +++++++++
 src/or/desc_store_st.h     |  7 ++++-
 src/or/or.h                | 77 ++--------------------------------------------
 src/or/origin_circuit_st.h | 57 +++++++++++++++++++++++++++++++++-
 5 files changed, 79 insertions(+), 79 deletions(-)

diff --git a/src/or/circpathbias.h b/src/or/circpathbias.h
index 09162c40e..c99d1277b 100644
--- a/src/or/circpathbias.h
+++ b/src/or/circpathbias.h
@@ -23,7 +23,6 @@ int pathbias_check_probe_response(circuit_t *circ, const cell_t *cell);
 void pathbias_count_use_attempt(origin_circuit_t *circ);
 void pathbias_mark_use_success(origin_circuit_t *circ);
 void pathbias_mark_use_rollback(origin_circuit_t *circ);
-const char *pathbias_state_to_string(path_state_t state);
+const char *pathbias_state_to_string(enum path_state_t state);
 
 #endif /* !defined(TOR_CIRCPATHBIAS_H) */
-
diff --git a/src/or/crypt_path_st.h b/src/or/crypt_path_st.h
index 7d38c7375..0fde1fab0 100644
--- a/src/or/crypt_path_st.h
+++ b/src/or/crypt_path_st.h
@@ -10,6 +10,20 @@
 #include "or/relay_crypto_st.h"
 struct crypto_dh_t;
 
+#define CRYPT_PATH_MAGIC 0x70127012u
+
+struct fast_handshake_state_t;
+struct ntor_handshake_state_t;
+struct crypto_dh_t;
+struct onion_handshake_state_t {
+  uint16_t tag;
+  union {
+    struct fast_handshake_state_t *fast;
+    struct crypto_dh_t *tap;
+    struct ntor_handshake_state_t *ntor;
+  } u;
+};
+
 /** Holds accounting information for a single step in the layered encryption
  * performed by a circuit.  Used only at the client edge of a circuit. */
 struct crypt_path_t {
diff --git a/src/or/desc_store_st.h b/src/or/desc_store_st.h
index c070e354c..168a83b23 100644
--- a/src/or/desc_store_st.h
+++ b/src/or/desc_store_st.h
@@ -7,6 +7,12 @@
 #ifndef DESC_STORE_ST_H
 #define DESC_STORE_ST_H
 
+/** Allowable types of desc_store_t. */
+typedef enum store_type_t {
+  ROUTER_STORE = 0,
+  EXTRAINFO_STORE = 1
+} store_type_t;
+
 /** A 'store' is a set of descriptors saved on disk, with accompanying
  * journal, mmaped as needed, rebuilt as needed. */
 struct desc_store_t {
@@ -31,4 +37,3 @@ struct desc_store_t {
 };
 
 #endif
-
diff --git a/src/or/or.h b/src/or/or.h
index c38b8d750..1221084af 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -862,13 +862,6 @@ typedef enum {
 
 typedef struct networkstatus_t networkstatus_t;
 typedef struct ns_detached_signatures_t ns_detached_signatures_t;
-
-/** Allowable types of desc_store_t. */
-typedef enum store_type_t {
-  ROUTER_STORE = 0,
-  EXTRAINFO_STORE = 1
-} store_type_t;
-
 typedef struct desc_store_t desc_store_t;
 typedef struct routerlist_t routerlist_t;
 typedef struct extend_info_t extend_info_t;
@@ -897,24 +890,12 @@ typedef enum {
 
 #define ALL_DIRINFO ((dirinfo_type_t)((1<<7)-1))
 
-#define CRYPT_PATH_MAGIC 0x70127012u
-
-struct fast_handshake_state_t;
-struct ntor_handshake_state_t;
-struct crypto_dh_t;
 #define ONION_HANDSHAKE_TYPE_TAP  0x0000
 #define ONION_HANDSHAKE_TYPE_FAST 0x0001
 #define ONION_HANDSHAKE_TYPE_NTOR 0x0002
 #define MAX_ONION_HANDSHAKE_TYPE 0x0002
-typedef struct {
-  uint16_t tag;
-  union {
-    struct fast_handshake_state_t *fast;
-    struct crypto_dh_t *tap;
-    struct ntor_handshake_state_t *ntor;
-  } u;
-} onion_handshake_state_t;
 
+typedef struct onion_handshake_state_t onion_handshake_state_t;
 typedef struct relay_crypto_t relay_crypto_t;
 typedef struct crypt_path_t crypt_path_t;
 typedef struct crypt_path_reference_t crypt_path_reference_t;
@@ -946,61 +927,7 @@ typedef struct or_circuit_t or_circuit_t;
  * circuit. */
 #define MAX_RELAY_EARLY_CELLS_PER_CIRCUIT 8
 
-/**
- * Describes the circuit building process in simplified terms based
- * on the path bias accounting state for a circuit.
- *
- * NOTE: These state values are enumerated in the order for which we
- * expect circuits to transition through them. If you add states,
- * you need to preserve this overall ordering. The various pathbias
- * state transition and accounting functions (pathbias_mark_* and
- * pathbias_count_*) contain ordinal comparisons to enforce proper
- * state transitions for corrections.
- *
- * This state machine and the associated logic was created to prevent
- * miscounting due to unknown cases of circuit reuse. See also tickets
- * #6475 and #7802.
- */
-typedef enum {
-    /** This circuit is "new". It has not yet completed a first hop
-     * or been counted by the path bias code. */
-    PATH_STATE_NEW_CIRC = 0,
-    /** This circuit has completed one/two hops, and has been counted by
-     * the path bias logic. */
-    PATH_STATE_BUILD_ATTEMPTED = 1,
-    /** This circuit has been completely built */
-    PATH_STATE_BUILD_SUCCEEDED = 2,
-    /** Did we try to attach any SOCKS streams or hidserv introductions to
-      * this circuit?
-      *
-      * Note: If we ever implement end-to-end stream timing through test
-      * stream probes (#5707), we must *not* set this for those probes
-      * (or any other automatic streams) because the adversary could
-      * just tag at a later point.
-      */
-    PATH_STATE_USE_ATTEMPTED = 3,
-    /** Did any SOCKS streams or hidserv introductions actually succeed on
-      * this circuit?
-      *
-      * If any streams detatch/fail from this circuit, the code transitions
-      * the circuit back to PATH_STATE_USE_ATTEMPTED to ensure we probe. See
-      * pathbias_mark_use_rollback() for that.
-      */
-    PATH_STATE_USE_SUCCEEDED = 4,
-
-    /**
-     * This is a special state to indicate that we got a corrupted
-     * relay cell on a circuit and we don't intend to probe it.
-     */
-    PATH_STATE_USE_FAILED = 5,
-
-    /**
-     * This is a special state to indicate that we already counted
-     * the circuit. Used to guard against potential state machine
-     * violations.
-     */
-    PATH_STATE_ALREADY_COUNTED = 6,
-} path_state_t;
+typedef enum path_state_t path_state_t;
 #define path_state_bitfield_t ENUM_BF(path_state_t)
 
 #if REND_COOKIE_LEN != DIGEST_LEN
diff --git a/src/or/origin_circuit_st.h b/src/or/origin_circuit_st.h
index fa41214d4..b885725ed 100644
--- a/src/or/origin_circuit_st.h
+++ b/src/or/origin_circuit_st.h
@@ -13,6 +13,62 @@
 
 struct onion_queue_t;
 
+/**
+ * Describes the circuit building process in simplified terms based
+ * on the path bias accounting state for a circuit.
+ *
+ * NOTE: These state values are enumerated in the order for which we
+ * expect circuits to transition through them. If you add states,
+ * you need to preserve this overall ordering. The various pathbias
+ * state transition and accounting functions (pathbias_mark_* and
+ * pathbias_count_*) contain ordinal comparisons to enforce proper
+ * state transitions for corrections.
+ *
+ * This state machine and the associated logic was created to prevent
+ * miscounting due to unknown cases of circuit reuse. See also tickets
+ * #6475 and #7802.
+ */
+enum path_state_t {
+    /** This circuit is "new". It has not yet completed a first hop
+     * or been counted by the path bias code. */
+    PATH_STATE_NEW_CIRC = 0,
+    /** This circuit has completed one/two hops, and has been counted by
+     * the path bias logic. */
+    PATH_STATE_BUILD_ATTEMPTED = 1,
+    /** This circuit has been completely built */
+    PATH_STATE_BUILD_SUCCEEDED = 2,
+    /** Did we try to attach any SOCKS streams or hidserv introductions to
+      * this circuit?
+      *
+      * Note: If we ever implement end-to-end stream timing through test
+      * stream probes (#5707), we must *not* set this for those probes
+      * (or any other automatic streams) because the adversary could
+      * just tag at a later point.
+      */
+    PATH_STATE_USE_ATTEMPTED = 3,
+    /** Did any SOCKS streams or hidserv introductions actually succeed on
+      * this circuit?
+      *
+      * If any streams detatch/fail from this circuit, the code transitions
+      * the circuit back to PATH_STATE_USE_ATTEMPTED to ensure we probe. See
+      * pathbias_mark_use_rollback() for that.
+      */
+    PATH_STATE_USE_SUCCEEDED = 4,
+
+    /**
+     * This is a special state to indicate that we got a corrupted
+     * relay cell on a circuit and we don't intend to probe it.
+     */
+    PATH_STATE_USE_FAILED = 5,
+
+    /**
+     * This is a special state to indicate that we already counted
+     * the circuit. Used to guard against potential state machine
+     * violations.
+     */
+    PATH_STATE_ALREADY_COUNTED = 6,
+};
+
 /** An origin_circuit_t holds data necessary to build and use a circuit.
  */
 struct origin_circuit_t {
@@ -232,4 +288,3 @@ struct origin_circuit_t {
 };
 
 #endif
-





More information about the tor-commits mailing list