[tor-commits] [tor/master] Fix warnings from doxygen

nickm at torproject.org nickm at torproject.org
Tue Mar 25 15:28:27 UTC 2014


commit d5e11f21cc98f4e42b05bdddb9e3316072ec0bef
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Mar 25 11:16:18 2014 -0400

    Fix warnings from doxygen
    
    Most of these are simple.  The only nontrivial part is that our
    pattern for using ENUM_BF was confusing doxygen by making declarations
    that didn't look like declarations.
---
 changes/doxygen_fixes  |    6 ++++
 src/common/address.c   |    6 ++--
 src/common/crypto.c    |    2 +-
 src/common/crypto.h    |    1 +
 src/common/tortls.c    |    3 +-
 src/common/util.c      |    6 ++--
 src/or/addressmap.c    |    2 +-
 src/or/channel.h       |   84 ++++++++++++++++++++++++------------------------
 src/or/connection_or.c |    2 +-
 src/or/entrynodes.h    |    2 +-
 src/or/geoip.c         |    2 +-
 src/or/main.c          |   46 +++++++++++++-------------
 src/or/or.h            |   21 ++++++++----
 13 files changed, 99 insertions(+), 84 deletions(-)

diff --git a/changes/doxygen_fixes b/changes/doxygen_fixes
new file mode 100644
index 0000000..a9add9d
--- /dev/null
+++ b/changes/doxygen_fixes
@@ -0,0 +1,6 @@
+  o Documentation:
+    - Resolve warnings from Doxygen.
+
+  o Code simplification and refactoring:
+    - Change our use of the ENUM_BF macro to avoid declarations that
+      confuse Doxygen.
diff --git a/src/common/address.c b/src/common/address.c
index 69049fa..3ecc11b 100644
--- a/src/common/address.c
+++ b/src/common/address.c
@@ -182,7 +182,7 @@ tor_addr_make_unspec(tor_addr_t *a)
   a->family = AF_UNSPEC;
 }
 
-/** Set address <a>a</b> to the null address in address family <b>family</b>.
+/** Set address <b>a</b> to the null address in address family <b>family</b>.
  * The null address for AF_INET is 0.0.0.0.  The null address for AF_INET6 is
  * [::].  AF_UNSPEC is all null. */
 void
@@ -1463,8 +1463,8 @@ is_internal_IP(uint32_t ip, int for_listening)
  * allocated string holding the address portion and *<b>port_out</b>
  * to the port.
  *
- * Don't do DNS lookups and don't allow domain names in the <ip> field.
- * Don't accept <b>addrport</b> of the form "<ip>" or "<ip>:0".
+ * Don't do DNS lookups and don't allow domain names in the "ip" field.
+ * Don't accept <b>addrport</b> of the form "ip" or "ip:0".
  *
  * Return 0 on success, -1 on failure. */
 int
diff --git a/src/common/crypto.c b/src/common/crypto.c
index f357934..8a4ffb6 100644
--- a/src/common/crypto.c
+++ b/src/common/crypto.c
@@ -1594,7 +1594,7 @@ struct crypto_digest_t {
     SHA256_CTX sha2; /**< state for SHA256 */
   } d; /**< State for the digest we're using.  Only one member of the
         * union is usable, depending on the value of <b>algorithm</b>. */
-  ENUM_BF(digest_algorithm_t) algorithm : 8; /**< Which algorithm is in use? */
+  digest_algorithm_bitfield_t algorithm : 8; /**< Which algorithm is in use? */
 };
 
 /** Allocate and return a new digest object to compute SHA1 digests.
diff --git a/src/common/crypto.h b/src/common/crypto.h
index 4f0f1c1..aa4271a 100644
--- a/src/common/crypto.h
+++ b/src/common/crypto.h
@@ -89,6 +89,7 @@ typedef enum {
   DIGEST_SHA256 = 1,
 } digest_algorithm_t;
 #define  N_DIGEST_ALGORITHMS (DIGEST_SHA256+1)
+#define digest_algorithm_bitfield_t ENUM_BF(digest_algorithm_t)
 
 /** A set of all the digests we know how to compute, taken on a single
  * string.  Any digests that are shorter than 256 bits are right-padded
diff --git a/src/common/tortls.c b/src/common/tortls.c
index 315a767..8defab2 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -149,6 +149,7 @@ typedef enum {
     TOR_TLS_ST_SENTCLOSE, TOR_TLS_ST_CLOSED, TOR_TLS_ST_RENEGOTIATE,
     TOR_TLS_ST_BUFFEREVENT
 } tor_tls_state_t;
+#define tor_tls_state_bitfield_t ENUM_BF(tor_tls_state_t)
 
 /** Holds a SSL object and its associated data.  Members are only
  * accessed from within tortls.c.
@@ -159,7 +160,7 @@ struct tor_tls_t {
   SSL *ssl; /**< An OpenSSL SSL object. */
   int socket; /**< The underlying file descriptor for this TLS connection. */
   char *address; /**< An address to log when describing this connection. */
-  ENUM_BF(tor_tls_state_t) state : 3; /**< The current SSL state,
+  tor_tls_state_bitfield_t state : 3; /**< The current SSL state,
                                        * depending on which operations
                                        * have completed successfully. */
   unsigned int isServer:1; /**< True iff this is a server-side connection */
diff --git a/src/common/util.c b/src/common/util.c
index 3c2f664..a0adb15 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -898,8 +898,8 @@ tor_digest_is_zero(const char *digest)
   return tor_memeq(digest, ZERO_DIGEST, DIGEST_LEN);
 }
 
-/** Return true if <b>string</b> is a valid '<key>=[<value>]' string.
- *  <value> is optional, to indicate the empty string. Log at logging
+/** Return true if <b>string</b> is a valid 'key=[value]' string.
+ *  "value" is optional, to indicate the empty string. Log at logging
  *  <b>severity</b> if something ugly happens. */
 int
 string_is_key_value(int severity, const char *string)
@@ -3026,7 +3026,7 @@ tor_vsscanf(const char *buf, const char *pattern, va_list ap)
 /** Minimal sscanf replacement: parse <b>buf</b> according to <b>pattern</b>
  * and store the results in the corresponding argument fields.  Differs from
  * sscanf in that:
- * <ul><li>It only handles %u, %lu, %x, %lx, %<NUM>s, %d, %ld, %lf, and %c.
+ * <ul><li>It only handles %u, %lu, %x, %lx, %[NUM]s, %d, %ld, %lf, and %c.
  *     <li>It only handles decimal inputs for %lf. (12.3, not 1.23e1)
  *     <li>It does not handle arbitrarily long widths.
  *     <li>Numbers do not consume any space characters.
diff --git a/src/or/addressmap.c b/src/or/addressmap.c
index 9bc79bd..998770a 100644
--- a/src/or/addressmap.c
+++ b/src/or/addressmap.c
@@ -45,7 +45,7 @@
 typedef struct {
   char *new_address;
   time_t expires;
-  ENUM_BF(addressmap_entry_source_t) source:3;
+  addressmap_entry_source_bitfield_t source:3;
   unsigned src_wildcard:1;
   unsigned dst_wildcard:1;
   short num_resolve_failures;
diff --git a/src/or/channel.h b/src/or/channel.h
index 7e3f5ad..7ec222d 100644
--- a/src/or/channel.h
+++ b/src/or/channel.h
@@ -21,7 +21,7 @@ struct cell_queue_entry_s;
 TOR_SIMPLEQ_HEAD(chan_cell_queue, cell_queue_entry_s) incoming_queue;
 typedef struct chan_cell_queue chan_cell_queue_t;
 
-/*
+/**
  * Channel struct; see the channel_t typedef in or.h.  A channel is an
  * abstract interface for the OR-to-OR connection, similar to connection_or_t,
  * but without the strong coupling to the underlying TLS implementation.  They
@@ -31,18 +31,18 @@ typedef struct chan_cell_queue chan_cell_queue_t;
  */
 
 struct channel_s {
-  /* Magic number for type-checking cast macros */
+  /** Magic number for type-checking cast macros */
   uint32_t magic;
 
-  /* Current channel state */
+  /** Current channel state */
   channel_state_t state;
 
-  /* Globally unique ID number for a channel over the lifetime of a Tor
+  /** Globally unique ID number for a channel over the lifetime of a Tor
    * process.
    */
   uint64_t global_identifier;
 
-  /* Should we expect to see this channel in the channel lists? */
+  /** Should we expect to see this channel in the channel lists? */
   unsigned char registered:1;
 
   /** has this channel ever been open? */
@@ -57,28 +57,28 @@ struct channel_s {
     CHANNEL_CLOSE_FOR_ERROR
   } reason_for_closing;
 
-  /* Timestamps for both cell channels and listeners */
+  /** Timestamps for both cell channels and listeners */
   time_t timestamp_created; /* Channel created */
   time_t timestamp_active; /* Any activity */
 
   /* Methods implemented by the lower layer */
 
-  /* Free a channel */
+  /** Free a channel */
   void (*free)(channel_t *);
-  /* Close an open channel */
+  /** Close an open channel */
   void (*close)(channel_t *);
-  /* Describe the transport subclass for this channel */
+  /** Describe the transport subclass for this channel */
   const char * (*describe_transport)(channel_t *);
-  /* Optional method to dump transport-specific statistics on the channel */
+  /** Optional method to dump transport-specific statistics on the channel */
   void (*dumpstats)(channel_t *, int);
 
-  /* Registered handlers for incoming cells */
+  /** Registered handlers for incoming cells */
   channel_cell_handler_fn_ptr cell_handler;
   channel_var_cell_handler_fn_ptr var_cell_handler;
 
   /* Methods implemented by the lower layer */
 
-  /*
+  /**
    * Ask the underlying transport what the remote endpoint address is, in
    * a tor_addr_t.  This is optional and subclasses may leave this NULL.
    * If they implement it, they should write the address out to the
@@ -90,75 +90,75 @@ struct channel_s {
 
 #define GRD_FLAG_ORIGINAL 1
 #define GRD_FLAG_ADDR_ONLY 2
-  /*
+  /**
    * Get a text description of the remote endpoint; canonicalized if the flag
    * GRD_FLAG_ORIGINAL is not set, or the one we originally connected
    * to/received from if it is.  If GRD_FLAG_ADDR_ONLY is set, we return only
    * the original address.
    */
   const char * (*get_remote_descr)(channel_t *, int);
-  /* Check if the lower layer has queued writes */
+  /** Check if the lower layer has queued writes */
   int (*has_queued_writes)(channel_t *);
-  /*
+  /**
    * If the second param is zero, ask the lower layer if this is
    * 'canonical', for a transport-specific definition of canonical; if
    * it is 1, ask if the answer to the preceding query is safe to rely
    * on.
    */
   int (*is_canonical)(channel_t *, int);
-  /* Check if this channel matches a specified extend_info_t */
+  /** Check if this channel matches a specified extend_info_t */
   int (*matches_extend_info)(channel_t *, extend_info_t *);
-  /* Check if this channel matches a target address when extending */
+  /** Check if this channel matches a target address when extending */
   int (*matches_target)(channel_t *, const tor_addr_t *);
-  /* Write a cell to an open channel */
+  /** Write a cell to an open channel */
   int (*write_cell)(channel_t *, cell_t *);
-   /* Write a packed cell to an open channel */
+  /** Write a packed cell to an open channel */
   int (*write_packed_cell)(channel_t *, packed_cell_t *);
-  /* Write a variable-length cell to an open channel */
+  /** Write a variable-length cell to an open channel */
   int (*write_var_cell)(channel_t *, var_cell_t *);
 
-  /*
+  /**
    * Hash of the public RSA key for the other side's identity key, or
    * zeroes if the other side hasn't shown us a valid identity key.
    */
   char identity_digest[DIGEST_LEN];
-  /* Nickname of the OR on the other side, or NULL if none. */
+  /** Nickname of the OR on the other side, or NULL if none. */
   char *nickname;
 
-  /*
+  /**
    * Linked list of channels with the same identity digest, for the
    * digest->channel map
    */
   TOR_LIST_ENTRY(channel_s) next_with_same_id;
 
-  /* List of incoming cells to handle */
+  /** List of incoming cells to handle */
   chan_cell_queue_t incoming_queue;
 
-  /* List of queued outgoing cells */
+  /** List of queued outgoing cells */
   chan_cell_queue_t outgoing_queue;
 
-  /* Circuit mux for circuits sending on this channel */
+  /** Circuit mux for circuits sending on this channel */
   circuitmux_t *cmux;
 
-  /* Circuit ID generation stuff for use by circuitbuild.c */
+  /** Circuit ID generation stuff for use by circuitbuild.c */
 
-  /*
+  /**
    * When we send CREATE cells along this connection, which half of the
    * space should we use?
    */
-  ENUM_BF(circ_id_type_t) circ_id_type:2;
+  circ_id_type_bitfield_t circ_id_type:2;
   /** DOCDOC*/
   unsigned wide_circ_ids:1;
-  /*
+  /**
    * Which circ_id do we try to use next on this connection?  This is
    * always in the range 0..1<<15-1.
    */
   circid_t next_circ_id;
 
-  /* For how many circuits are we n_chan?  What about p_chan? */
+  /** For how many circuits are we n_chan?  What about p_chan? */
   unsigned int num_n_circuits, num_p_circuits;
 
-  /*
+  /**
    * True iff this channel shouldn't get any new circs attached to it,
    * because the connection is too old, or because there's a better one.
    * More generally, this flag is used to note an unhealthy connection;
@@ -210,7 +210,7 @@ struct channel_listener_s {
    */
   uint64_t global_identifier;
 
-  /* Should we expect to see this channel in the channel lists? */
+  /** Should we expect to see this channel in the channel lists? */
   unsigned char registered:1;
 
   /** Why did we close?
@@ -222,31 +222,31 @@ struct channel_listener_s {
     CHANNEL_LISTENER_CLOSE_FOR_ERROR
   } reason_for_closing;
 
-  /* Timestamps for both cell channels and listeners */
+  /** Timestamps for both cell channels and listeners */
   time_t timestamp_created; /* Channel created */
   time_t timestamp_active; /* Any activity */
 
   /* Methods implemented by the lower layer */
 
-  /* Free a channel */
+  /** Free a channel */
   void (*free)(channel_listener_t *);
-  /* Close an open channel */
+  /** Close an open channel */
   void (*close)(channel_listener_t *);
-  /* Describe the transport subclass for this channel */
+  /** Describe the transport subclass for this channel */
   const char * (*describe_transport)(channel_listener_t *);
-  /* Optional method to dump transport-specific statistics on the channel */
+  /** Optional method to dump transport-specific statistics on the channel */
   void (*dumpstats)(channel_listener_t *, int);
 
-  /* Registered listen handler to call on incoming connection */
+  /** Registered listen handler to call on incoming connection */
   channel_listener_fn_ptr listener;
 
-  /* List of pending incoming connections */
+  /** List of pending incoming connections */
   smartlist_t *incoming_list;
 
-  /* Timestamps for listeners */
+  /** Timestamps for listeners */
   time_t timestamp_accepted;
 
-  /* Counters for listeners */
+  /** Counters for listeners */
   uint64_t n_accepted;
 };
 
diff --git a/src/or/connection_or.c b/src/or/connection_or.c
index f7a48ec..04ad2cc 100644
--- a/src/or/connection_or.c
+++ b/src/or/connection_or.c
@@ -215,7 +215,7 @@ connection_or_clear_ext_or_id_map(void)
   orconn_ext_or_id_map = NULL;
 }
 
-/** Creates an Extended ORPort identifier for <b>conn<b/> and deposits
+/** Creates an Extended ORPort identifier for <b>conn</b> and deposits
  *  it into the global list of identifiers. */
 void
 connection_or_set_ext_or_identifier(or_connection_t *conn)
diff --git a/src/or/entrynodes.h b/src/or/entrynodes.h
index 73ac017..e229f3b 100644
--- a/src/or/entrynodes.h
+++ b/src/or/entrynodes.h
@@ -5,7 +5,7 @@
 /* See LICENSE for licensing information */
 
 /**
- * \file guardnodes.h
+ * \file entrynodes.h
  * \brief Header file for circuitbuild.c.
  **/
 
diff --git a/src/or/geoip.c b/src/or/geoip.c
index 2e39fe0..f722bac 100644
--- a/src/or/geoip.c
+++ b/src/or/geoip.c
@@ -812,7 +812,7 @@ char *
 geoip_get_transport_history(void)
 {
   unsigned granularity = IP_GRANULARITY;
-  /** String hash table <name of transport> -> <number of users>. */
+  /** String hash table (name of transport) -> (number of users). */
   strmap_t *transport_counts = strmap_new();
 
   /** Smartlist that contains copies of the names of the transports
diff --git a/src/or/main.c b/src/or/main.c
index 7294c89..d1e48ba 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -1196,7 +1196,7 @@ run_scheduled_events(time_t now)
   int i;
   int have_dir_info;
 
-  /** 0. See if we've been asked to shut down and our timeout has
+  /* 0. See if we've been asked to shut down and our timeout has
    * expired; or if our bandwidth limits are exhausted and we
    * should hibernate; or if it's time to wake up from hibernation.
    */
@@ -1213,7 +1213,7 @@ run_scheduled_events(time_t now)
   /* 0c. If we've deferred log messages for the controller, handle them now */
   flush_pending_log_callbacks();
 
-  /** 1a. Every MIN_ONION_KEY_LIFETIME seconds, rotate the onion keys,
+  /* 1a. Every MIN_ONION_KEY_LIFETIME seconds, rotate the onion keys,
    *  shut down and restart all cpuworkers, and update the directory if
    *  necessary.
    */
@@ -1247,7 +1247,7 @@ run_scheduled_events(time_t now)
   if (options->UseBridges)
     fetch_bridge_descriptors(options, now);
 
-  /** 1b. Every MAX_SSL_KEY_LIFETIME_INTERNAL seconds, we change our
+  /* 1b. Every MAX_SSL_KEY_LIFETIME_INTERNAL seconds, we change our
    * TLS context. */
   if (!last_rotated_x509_certificate)
     last_rotated_x509_certificate = now;
@@ -1273,7 +1273,7 @@ run_scheduled_events(time_t now)
     time_to_add_entropy = now + ENTROPY_INTERVAL;
   }
 
-  /** 1c. If we have to change the accounting interval or record
+  /* 1c. If we have to change the accounting interval or record
    * bandwidth used in this accounting interval, do so. */
   if (accounting_is_enabled(options))
     accounting_run_housekeeping(now);
@@ -1286,7 +1286,7 @@ run_scheduled_events(time_t now)
     dirserv_test_reachability(now);
   }
 
-  /** 1d. Periodically, we discount older stability information so that new
+  /* 1d. Periodically, we discount older stability information so that new
    * stability info counts more, and save the stability information to disk as
    * appropriate. */
   if (time_to_downrate_stability < now)
@@ -1405,7 +1405,7 @@ run_scheduled_events(time_t now)
       dns_init();
   }
 
-  /** 2. Periodically, we consider force-uploading our descriptor
+  /* 2. Periodically, we consider force-uploading our descriptor
    * (if we've passed our internal checks). */
 
 /** How often do we check whether part of our router info has changed in a
@@ -1465,11 +1465,11 @@ run_scheduled_events(time_t now)
     update_networkstatus_downloads(now);
   }
 
-  /** 2c. Let directory voting happen. */
+  /* 2c. Let directory voting happen. */
   if (authdir_mode_v3(options))
     dirvote_act(options, now);
 
-  /** 3a. Every second, we examine pending circuits and prune the
+  /* 3a. Every second, we examine pending circuits and prune the
    *    ones which have been pending for more than a few seconds.
    *    We do this before step 4, so it can try building more if
    *    it's not comfortable with the number of available circuits.
@@ -1478,24 +1478,24 @@ run_scheduled_events(time_t now)
    * it can't, currently), we should do this more often.) */
   circuit_expire_building();
 
-  /** 3b. Also look at pending streams and prune the ones that 'began'
+  /* 3b. Also look at pending streams and prune the ones that 'began'
    *     a long time ago but haven't gotten a 'connected' yet.
    *     Do this before step 4, so we can put them back into pending
    *     state to be picked up by the new circuit.
    */
   connection_ap_expire_beginning();
 
-  /** 3c. And expire connections that we've held open for too long.
+  /* 3c. And expire connections that we've held open for too long.
    */
   connection_expire_held_open();
 
-  /** 3d. And every 60 seconds, we relaunch listeners if any died. */
+  /* 3d. And every 60 seconds, we relaunch listeners if any died. */
   if (!net_is_disabled() && time_to_check_listeners < now) {
     retry_all_listeners(NULL, NULL, 0);
     time_to_check_listeners = now+60;
   }
 
-  /** 4. Every second, we try a new circuit if there are no valid
+  /* 4. Every second, we try a new circuit if there are no valid
    *    circuits. Every NewCircuitPeriod seconds, we expire circuits
    *    that became dirty more than MaxCircuitDirtiness seconds ago,
    *    and we make a new circ if there are no clean circuits.
@@ -1508,7 +1508,7 @@ run_scheduled_events(time_t now)
   if (now % 10 == 5)
     circuit_expire_old_circuits_serverside(now);
 
-  /** 5. We do housekeeping for each connection... */
+  /* 5. We do housekeeping for each connection... */
   connection_or_set_bad_connections(NULL, 0);
   for (i=0;i<smartlist_len(connection_array);i++) {
     run_connection_housekeeping(i, now);
@@ -1528,30 +1528,30 @@ run_scheduled_events(time_t now)
     time_to_shrink_memory = now + MEM_SHRINK_INTERVAL;
   }
 
-  /** 6. And remove any marked circuits... */
+  /* 6. And remove any marked circuits... */
   circuit_close_all_marked();
 
-  /** 7. And upload service descriptors if necessary. */
+  /* 7. And upload service descriptors if necessary. */
   if (can_complete_circuit && !net_is_disabled()) {
     rend_consider_services_upload(now);
     rend_consider_descriptor_republication();
   }
 
-  /** 8. and blow away any connections that need to die. have to do this now,
+  /* 8. and blow away any connections that need to die. have to do this now,
    * because if we marked a conn for close and left its socket -1, then
    * we'll pass it to poll/select and bad things will happen.
    */
   close_closeable_connections();
 
-  /** 8b. And if anything in our state is ready to get flushed to disk, we
+  /* 8b. And if anything in our state is ready to get flushed to disk, we
    * flush it. */
   or_state_save(now);
 
-  /** 8c. Do channel cleanup just like for connections */
+  /* 8c. Do channel cleanup just like for connections */
   channel_run_cleanup();
   channel_listener_run_cleanup();
 
-  /** 9. and if we're an exit node, check whether our DNS is telling stories
+  /* 9. and if we're an exit node, check whether our DNS is telling stories
    * to us. */
   if (!net_is_disabled() &&
       public_server_mode(options) &&
@@ -1566,7 +1566,7 @@ run_scheduled_events(time_t now)
     }
   }
 
-  /** 10. write bridge networkstatus file to disk */
+  /* 10. write bridge networkstatus file to disk */
   if (options->BridgeAuthoritativeDir &&
       time_to_write_bridge_status_file < now) {
     networkstatus_dump_bridge_status_to_file(now);
@@ -1574,7 +1574,7 @@ run_scheduled_events(time_t now)
     time_to_write_bridge_status_file = now+BRIDGE_STATUSFILE_INTERVAL;
   }
 
-  /** 11. check the port forwarding app */
+  /* 11. check the port forwarding app */
   if (!net_is_disabled() &&
       time_to_check_port_forwarding < now &&
       options->PortForwarding &&
@@ -1592,11 +1592,11 @@ run_scheduled_events(time_t now)
     time_to_check_port_forwarding = now+PORT_FORWARDING_CHECK_INTERVAL;
   }
 
-  /** 11b. check pending unconfigured managed proxies */
+  /* 11b. check pending unconfigured managed proxies */
   if (!net_is_disabled() && pt_proxies_configuration_pending())
     pt_configure_remaining_proxies();
 
-  /** 12. write the heartbeat message */
+  /* 12. write the heartbeat message */
   if (options->HeartbeatPeriod &&
       time_to_next_heartbeat <= now) {
     if (time_to_next_heartbeat) /* don't log the first heartbeat */
diff --git a/src/or/or.h b/src/or/or.h
index 800e83f..38ab176 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -196,6 +196,7 @@ typedef enum {
    * and let it use any circuit ID it wants. */
   CIRC_ID_TYPE_NEITHER=2
 } circ_id_type_t;
+#define circ_id_type_bitfield_t ENUM_BF(circ_id_type_t)
 
 #define CONN_TYPE_MIN_ 3
 /** Type for sockets listening for OR connections. */
@@ -1683,6 +1684,7 @@ typedef enum {
     DIR_SPOOL_CACHED_DIR, DIR_SPOOL_NETWORKSTATUS,
     DIR_SPOOL_MICRODESC, /* NOTE: if we add another entry, add another bit. */
 } dir_spool_source_t;
+#define dir_spool_source_bitfield_t ENUM_BF(dir_spool_source_t)
 
 /** Subtype of connection_t for an "directory connection" -- that is, an HTTP
  * connection to retrieve or serve directory material. */
@@ -1702,7 +1704,7 @@ typedef struct dir_connection_t {
    * "spooling" of directory material to the outbuf.  Otherwise, we'd have
    * to append everything to the outbuf in one enormous chunk. */
   /** What exactly are we spooling right now? */
-  ENUM_BF(dir_spool_source_t)  dir_spool_src : 3;
+  dir_spool_source_bitfield_t  dir_spool_src : 3;
 
   /** If we're fetching descriptors, what router purpose shall we assign
    * to them? */
@@ -1875,12 +1877,13 @@ typedef enum {
   ADDR_POLICY_ACCEPT=1,
   ADDR_POLICY_REJECT=2,
 } addr_policy_action_t;
+#define addr_policy_action_bitfield_t ENUM_BF(addr_policy_action_t)
 
 /** A reference-counted address policy rule. */
 typedef struct addr_policy_t {
   int refcnt; /**< Reference count */
   /** What to do when the policy matches.*/
-  ENUM_BF(addr_policy_action_t) policy_type:2;
+  addr_policy_action_bitfield_t policy_type:2;
   unsigned int is_private:1; /**< True iff this is the pseudo-address,
                               * "private". */
   unsigned int is_canonical:1; /**< True iff this policy is the canonical
@@ -1932,6 +1935,7 @@ typedef enum {
    */
   SAVED_IN_JOURNAL
 } saved_location_t;
+#define saved_location_bitfield_t ENUM_BF(saved_location_t)
 
 /** Enumeration: what kind of download schedule are we using for a given
  * object? */
@@ -1940,6 +1944,7 @@ typedef enum {
   DL_SCHED_CONSENSUS = 1,
   DL_SCHED_BRIDGE = 2,
 } download_schedule_t;
+#define download_schedule_bitfield_t ENUM_BF(download_schedule_t)
 
 /** Information about our plans for retrying downloads for a downloadable
  * object. */
@@ -1948,7 +1953,7 @@ typedef struct download_status_t {
                            * again? */
   uint8_t n_download_failures; /**< Number of failures trying to download the
                                 * most recent descriptor. */
-  ENUM_BF(download_schedule_t) schedule : 8;
+  download_schedule_bitfield_t schedule : 8;
 } download_status_t;
 
 /** If n_download_failures is this high, the download can never happen. */
@@ -2203,7 +2208,7 @@ typedef struct microdesc_t {
    */
   time_t last_listed;
   /** Where is this microdescriptor currently stored? */
-  ENUM_BF(saved_location_t) saved_location : 3;
+  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 */
@@ -2413,8 +2418,8 @@ typedef enum {
 /** A common structure to hold a v3 network status vote, or a v3 network
  * status consensus. */
 typedef struct networkstatus_t {
-  ENUM_BF(networkstatus_type_t) type : 8; /**< Vote, consensus, or opinion? */
-  ENUM_BF(consensus_flavor_t) flavor : 8; /**< If a consensus, what kind? */
+  networkstatus_type_t type; /**< Vote, consensus, or opinion? */
+  consensus_flavor_t flavor; /**< If a consensus, what kind? */
   unsigned int has_measured_bws : 1;/**< True iff this networkstatus contains
                                      * measured= bandwidth values. */
 
@@ -2933,6 +2938,7 @@ typedef enum {
      */
     PATH_STATE_ALREADY_COUNTED = 6,
 } path_state_t;
+#define path_state_bitfield_t ENUM_BF(path_state_t)
 
 /** An origin_circuit_t holds data necessary to build and use a circuit.
  */
@@ -2983,7 +2989,7 @@ typedef struct origin_circuit_t {
    * circuit building and usage accounting. See path_state_t
    * for more details.
    */
-  ENUM_BF(path_state_t) path_state : 3;
+  path_state_bitfield_t path_state : 3;
 
   /* If this flag is set, we should not consider attaching any more
    * connections to this circuit. */
@@ -4478,6 +4484,7 @@ typedef enum {
    * did this remapping happen." */
   ADDRMAPSRC_NONE
 } addressmap_entry_source_t;
+#define addressmap_entry_source_bitfield_t ENUM_BF(addressmap_entry_source_t)
 
 /********************************* control.c ***************************/
 



More information about the tor-commits mailing list