mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-09-21 13:34:59 +02:00
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:
parent
c3dd2e3d9e
commit
d5e11f21cc
6
changes/doxygen_fixes
Normal file
6
changes/doxygen_fixes
Normal 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.
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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)
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* See LICENSE for licensing information */
|
||||
|
||||
/**
|
||||
* \file guardnodes.h
|
||||
* \file entrynodes.h
|
||||
* \brief Header file for circuitbuild.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
|
||||
|
@ -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 */
|
||||
|
21
src/or/or.h
21
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 ***************************/
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user