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.
This commit is contained in:
Nick Mathewson 2014-03-25 11:16:18 -04:00
parent c3dd2e3d9e
commit d5e11f21cc
13 changed files with 99 additions and 84 deletions

6
changes/doxygen_fixes Normal file
View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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 */

View File

@ -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.

View File

@ -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;

View File

@ -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;
};

View File

@ -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)

View File

@ -5,7 +5,7 @@
/* See LICENSE for licensing information */
/**
* \file guardnodes.h
* \file entrynodes.h
* \brief Header file for circuitbuild.c.
**/

View File

@ -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

View File

@ -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 */

View File

@ -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 ***************************/