diff options
author | Nick Mathewson <nickm@torproject.org> | 2008-07-23 15:58:30 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2008-07-23 15:58:30 +0000 |
commit | 2748afe60961596791bceb842dce2385c5b4db7e (patch) | |
tree | e3538b4e13a1a62d607faba062cc21f158017f56 /src/or | |
parent | 15b2b8bd69ff30a85c2364bcc528090b36aa9286 (diff) | |
download | tor-2748afe60961596791bceb842dce2385c5b4db7e.tar tor-2748afe60961596791bceb842dce2385c5b4db7e.tar.gz |
r17322@aud-055: nickm | 2008-07-23 16:50:50 +0200
Make circid_t and streamid_t get used instead of uint16_t; it is possible we will soon want to make circid_t change to uint32_t.
svn:r16155
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/circuitbuild.c | 10 | ||||
-rw-r--r-- | src/or/circuitlist.c | 20 | ||||
-rw-r--r-- | src/or/connection_edge.c | 6 | ||||
-rw-r--r-- | src/or/connection_or.c | 2 | ||||
-rw-r--r-- | src/or/cpuworker.c | 6 | ||||
-rw-r--r-- | src/or/or.h | 39 |
6 files changed, 43 insertions, 40 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 1b08637e6..89a03b855 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -69,12 +69,12 @@ static time_t start_of_month(time_t when); * * Return it, or 0 if can't get a unique circ_id. */ -static uint16_t +static circid_t get_unique_circ_id_by_conn(or_connection_t *conn) { - uint16_t test_circ_id; - uint16_t attempts=0; - uint16_t high_bit; + circid_t test_circ_id; + circid_t attempts=0; + circid_t high_bit; tor_assert(conn); if (conn->circ_id_type == CIRC_ID_TYPE_NEITHER) { @@ -488,7 +488,7 @@ circuit_deliver_create_cell(circuit_t *circ, uint8_t cell_type, const char *payload) { cell_t cell; - uint16_t id; + circid_t id; tor_assert(circ); tor_assert(circ->n_conn); diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index e592485fc..25cafb9e6 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -34,7 +34,7 @@ static void circuit_free_cpath_node(crypt_path_t *victim); typedef struct orconn_circid_circuit_map_t { HT_ENTRY(orconn_circid_circuit_map_t) node; or_connection_t *or_conn; - uint16_t circ_id; + circid_t circ_id; circuit_t *circuit; } orconn_circid_circuit_map_t; @@ -53,7 +53,7 @@ _orconn_circid_entries_eq(orconn_circid_circuit_map_t *a, static INLINE unsigned int _orconn_circid_entry_hash(orconn_circid_circuit_map_t *a) { - return (((unsigned)a->circ_id)<<16) ^ (unsigned)(uintptr_t)(a->or_conn); + return (((unsigned)a->circ_id)<<8) ^ (unsigned)(uintptr_t)(a->or_conn); } /** Map from [orconn,circid] to circuit. */ @@ -80,13 +80,13 @@ orconn_circid_circuit_map_t *_last_circid_orconn_ent = NULL; * XXX "active" isn't an arg anymore */ static void circuit_set_circid_orconn_helper(circuit_t *circ, int direction, - uint16_t id, + circid_t id, or_connection_t *conn) { orconn_circid_circuit_map_t search; orconn_circid_circuit_map_t *found; or_connection_t *old_conn, **conn_ptr; - uint16_t old_id, *circid_ptr; + circid_t old_id, *circid_ptr; int was_active, make_active; if (direction == CELL_DIRECTION_OUT) { @@ -159,7 +159,7 @@ circuit_set_circid_orconn_helper(circuit_t *circ, int direction, * with the corresponding circuit ID, and add the circuit as appropriate * to the (orconn,id)-\>circuit map. */ void -circuit_set_p_circid_orconn(or_circuit_t *circ, uint16_t id, +circuit_set_p_circid_orconn(or_circuit_t *circ, circid_t id, or_connection_t *conn) { circuit_set_circid_orconn_helper(TO_CIRCUIT(circ), CELL_DIRECTION_IN, @@ -173,7 +173,7 @@ circuit_set_p_circid_orconn(or_circuit_t *circ, uint16_t id, * with the corresponding circuit ID, and add the circuit as appropriate * to the (orconn,id)-\>circuit map. */ void -circuit_set_n_circid_orconn(circuit_t *circ, uint16_t id, +circuit_set_n_circid_orconn(circuit_t *circ, circid_t id, or_connection_t *conn) { circuit_set_circid_orconn_helper(circ, CELL_DIRECTION_OUT, id, conn); @@ -356,7 +356,7 @@ origin_circuit_new(void) /** Allocate a new or_circuit_t, connected to <b>p_conn</b> as * <b>p_circ_id</b>. If <b>p_conn</b> is NULL, the circuit is unattached. */ or_circuit_t * -or_circuit_new(uint16_t p_circ_id, or_connection_t *p_conn) +or_circuit_new(circid_t p_circ_id, or_connection_t *p_conn) { /* CircIDs */ or_circuit_t *circ; @@ -603,7 +603,7 @@ circuit_get_by_global_id(uint32_t id) * Return NULL if no such circuit exists. */ static INLINE circuit_t * -circuit_get_by_circid_orconn_impl(uint16_t circ_id, or_connection_t *conn) +circuit_get_by_circid_orconn_impl(circid_t circ_id, or_connection_t *conn) { orconn_circid_circuit_map_t search; orconn_circid_circuit_map_t *found; @@ -652,7 +652,7 @@ circuit_get_by_circid_orconn_impl(uint16_t circ_id, or_connection_t *conn) * Return NULL if no such circuit exists. */ circuit_t * -circuit_get_by_circid_orconn(uint16_t circ_id, or_connection_t *conn) +circuit_get_by_circid_orconn(circid_t circ_id, or_connection_t *conn) { circuit_t *circ = circuit_get_by_circid_orconn_impl(circ_id, conn); if (!circ || circ->marked_for_close) @@ -664,7 +664,7 @@ circuit_get_by_circid_orconn(uint16_t circ_id, or_connection_t *conn) /** Return true iff the circuit ID <b>circ_id</b> is currently used by a * circuit, marked or not, on <b>conn</b>. */ int -circuit_id_in_use_on_orconn(uint16_t circ_id, or_connection_t *conn) +circuit_id_in_use_on_orconn(circid_t circ_id, or_connection_t *conn) { return circuit_get_by_circid_orconn_impl(circ_id, conn) != NULL; } diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index aee22eb0c..5b1b5b824 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -153,7 +153,7 @@ connection_edge_process_inbuf(edge_connection_t *conn, int package_partial) * Mark it for close and return 0. */ int -connection_edge_destroy(uint16_t circ_id, edge_connection_t *conn) +connection_edge_destroy(circid_t circ_id, edge_connection_t *conn) { if (!conn->_base.marked_for_close) { log_info(LD_EDGE, @@ -1944,11 +1944,11 @@ connection_ap_process_natd(edge_connection_t *conn) /** Iterate over the two bytes of stream_id until we get one that is not * already in use; return it. Return 0 if can't get a unique stream_id. */ -static uint16_t +static streamid_t get_unique_stream_id_by_circ(origin_circuit_t *circ) { edge_connection_t *tmpconn; - uint16_t test_stream_id; + streamid_t test_stream_id; uint32_t attempts=0; again: diff --git a/src/or/connection_or.c b/src/or/connection_or.c index b9bc5f40a..0ed957eb6 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -1016,7 +1016,7 @@ connection_or_process_cells_from_inbuf(or_connection_t *conn) * Return 0. */ int -connection_or_send_destroy(uint16_t circ_id, or_connection_t *conn, int reason) +connection_or_send_destroy(circid_t circ_id, or_connection_t *conn, int reason) { cell_t cell; diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c index 50446f190..e56d2787f 100644 --- a/src/or/cpuworker.c +++ b/src/or/cpuworker.c @@ -63,7 +63,7 @@ connection_cpu_finished_flushing(connection_t *conn) /** Pack addr,port,and circ_id; set *tag to the result. (See note on * cpuworker_main for wire format.) */ static void -tag_pack(char *tag, uint32_t addr, uint16_t port, uint16_t circ_id) +tag_pack(char *tag, uint32_t addr, uint16_t port, circid_t circ_id) { *(uint32_t *)tag = addr; *(uint16_t *)(tag+4) = port; @@ -73,7 +73,7 @@ tag_pack(char *tag, uint32_t addr, uint16_t port, uint16_t circ_id) /** Unpack <b>tag</b> into addr, port, and circ_id. */ static void -tag_unpack(const char *tag, uint32_t *addr, uint16_t *port, uint16_t *circ_id) +tag_unpack(const char *tag, uint32_t *addr, uint16_t *port, circid_t *circ_id) { struct in_addr in; char addrbuf[INET_NTOA_BUF_LEN]; @@ -137,7 +137,7 @@ connection_cpu_process_inbuf(connection_t *conn) char buf[LEN_ONION_RESPONSE]; uint32_t addr; uint16_t port; - uint16_t circ_id; + circid_t circ_id; or_connection_t *p_conn; circuit_t *circ; diff --git a/src/or/or.h b/src/or/or.h index 6274dd091..f8ee695fa 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -717,10 +717,15 @@ typedef enum { /** Largest number of bytes that can fit in a relay cell payload. */ #define RELAY_PAYLOAD_SIZE (CELL_PAYLOAD_SIZE-RELAY_HEADER_SIZE) +/** Identifies a circuit on an or_connection */ +typedef uint16_t circid_t; +/** Identifies a stream on a circuit */ +typedef uint16_t streamid_t; + /** Parsed onion routing cell. All communication between nodes * is via cells. */ typedef struct cell_t { - uint16_t circ_id; /**< Circuit which received the cell. */ + circid_t circ_id; /**< Circuit which received the cell. */ uint8_t command; /**< Type of the cell: one of CELL_PADDING, CELL_CREATE, * CELL_DESTROY, etc */ char payload[CELL_PAYLOAD_SIZE]; /**< Cell body. */ @@ -729,7 +734,7 @@ typedef struct cell_t { /** Parsed variable-length onion routing cell. */ typedef struct var_cell_t { uint8_t command; - uint16_t circ_id; + circid_t circ_id; uint16_t payload_len; char payload[1]; } var_cell_t; @@ -752,7 +757,7 @@ typedef struct cell_queue_t { typedef struct { uint8_t command; /**< The end-to-end relay command. */ uint16_t recognized; /**< Used to tell whether cell is for us. */ - uint16_t stream_id; /**< Which stream is this cell associated with? */ + streamid_t stream_id; /**< Which stream is this cell associated with? */ char integrity[4]; /**< Used to tell whether cell is corrupted. */ uint16_t length; /**< How long is the payload body? */ } relay_header_t; @@ -932,7 +937,7 @@ typedef struct or_connection_t { unsigned int is_canonical:1; uint8_t link_proto; /**< What protocol version are we using? 0 for * "none negotiated yet." */ - uint16_t next_circ_id; /**< Which circ_id do we try to use next on + circid_t next_circ_id; /**< Which circ_id do we try to use next on * this connection? This is always in the * range 0..1<<15-1. */ @@ -983,8 +988,8 @@ typedef struct edge_connection_t { uint32_t address_ttl; /**< TTL for address-to-addr mapping on exit * connection. Exit connections only. */ - uint16_t stream_id; /**< The stream ID used for this edge connection on its - * circuit */ + streamid_t stream_id; /**< The stream ID used for this edge connection on its + * circuit */ /** The reason why this connection is closing; passed to the controller. */ uint16_t end_reason; @@ -1737,8 +1742,6 @@ typedef struct { #define ORIGIN_CIRCUIT_MAGIC 0x35315243u #define OR_CIRCUIT_MAGIC 0x98ABC04Fu -typedef uint16_t circid_t; - /** * A circuit is a path over the onion routing * network. Applications can connect to one end of the circuit, and can @@ -1773,7 +1776,7 @@ typedef struct circuit_t { /** The identity hash of n_conn. */ char n_conn_id_digest[DIGEST_LEN]; /** The circuit_id used in the next (forward) hop of this circuit. */ - uint16_t n_circ_id; + circid_t n_circ_id; /** The port for the OR that is next in this circuit. */ uint16_t n_port; /** The IPv4 address of the OR that is next in this circuit. */ @@ -1874,7 +1877,7 @@ typedef struct origin_circuit_t { /** The next stream_id that will be tried when we're attempting to * construct a new AP stream originating at this circuit. */ - uint16_t next_stream_id; + streamid_t next_stream_id; /** Quasi-global identifier for this circuit; used for control.c */ /* XXXX NM This can get re-used after 2**32 circuits. */ @@ -2608,17 +2611,17 @@ void entry_guards_free_all(void); circuit_t * _circuit_get_global_list(void); const char *circuit_state_to_string(int state); void circuit_dump_by_conn(connection_t *conn, int severity); -void circuit_set_p_circid_orconn(or_circuit_t *circ, uint16_t id, +void circuit_set_p_circid_orconn(or_circuit_t *circ, circid_t id, or_connection_t *conn); -void circuit_set_n_circid_orconn(circuit_t *circ, uint16_t id, +void circuit_set_n_circid_orconn(circuit_t *circ, circid_t id, or_connection_t *conn); void circuit_set_state(circuit_t *circ, uint8_t state); void circuit_close_all_marked(void); origin_circuit_t *origin_circuit_new(void); -or_circuit_t *or_circuit_new(uint16_t p_circ_id, or_connection_t *p_conn); -circuit_t *circuit_get_by_circid_orconn(uint16_t circ_id, +or_circuit_t *or_circuit_new(circid_t p_circ_id, or_connection_t *p_conn); +circuit_t *circuit_get_by_circid_orconn(circid_t circ_id, or_connection_t *conn); -int circuit_id_in_use_on_orconn(uint16_t circ_id, or_connection_t *conn); +int circuit_id_in_use_on_orconn(circid_t circ_id, or_connection_t *conn); circuit_t *circuit_get_by_edge_conn(edge_connection_t *conn); void circuit_unlink_all_from_or_conn(or_connection_t *conn, int reason); origin_circuit_t *circuit_get_by_global_id(uint32_t id); @@ -2845,7 +2848,7 @@ void _connection_mark_unattached_ap(edge_connection_t *conn, int endreason, int connection_edge_reached_eof(edge_connection_t *conn); int connection_edge_process_inbuf(edge_connection_t *conn, int package_partial); -int connection_edge_destroy(uint16_t circ_id, edge_connection_t *conn); +int connection_edge_destroy(circid_t circ_id, edge_connection_t *conn); int connection_edge_end(edge_connection_t *conn, char reason); int connection_edge_end_errno(edge_connection_t *conn); int connection_edge_finished_flushing(edge_connection_t *conn); @@ -2941,7 +2944,7 @@ void connection_or_write_cell_to_buf(const cell_t *cell, or_connection_t *conn); void connection_or_write_var_cell_to_buf(const var_cell_t *cell, or_connection_t *conn); -int connection_or_send_destroy(uint16_t circ_id, or_connection_t *conn, +int connection_or_send_destroy(circid_t circ_id, or_connection_t *conn, int reason); int connection_or_send_netinfo(or_connection_t *conn); int connection_or_send_cert(or_connection_t *conn); @@ -3640,7 +3643,7 @@ int circuit_receive_relay_cell(cell_t *cell, circuit_t *circ, void relay_header_pack(char *dest, const relay_header_t *src); void relay_header_unpack(relay_header_t *dest, const char *src); -int relay_send_command_from_edge(uint16_t stream_id, circuit_t *circ, +int relay_send_command_from_edge(streamid_t stream_id, circuit_t *circ, uint8_t relay_command, const char *payload, size_t payload_len, crypt_path_t *cpath_layer); int connection_edge_send_command(edge_connection_t *fromconn, |