diff options
author | Andrea Shepard <andrea@persephoneslair.org> | 2012-09-04 00:33:16 -0700 |
---|---|---|
committer | Andrea Shepard <andrea@torproject.org> | 2012-10-08 03:06:09 -0700 |
commit | 28f108bcceab59fcf9f27e33065f64bfdb0f159a (patch) | |
tree | 1783e99ca74fb68a9f1116274757f46c903dc2be | |
parent | 8b14db9628f0e8982e894034e86c8efdd78cff32 (diff) | |
download | tor-28f108bcceab59fcf9f27e33065f64bfdb0f159a.tar.gz tor-28f108bcceab59fcf9f27e33065f64bfdb0f159a.zip |
Use dirreq_id from channel_t when appropriate
-rw-r--r-- | src/or/channel.h | 5 | ||||
-rw-r--r-- | src/or/connection_edge.c | 4 | ||||
-rw-r--r-- | src/or/directory.c | 8 | ||||
-rw-r--r-- | src/or/geoip.c | 6 |
4 files changed, 9 insertions, 14 deletions
diff --git a/src/or/channel.h b/src/or/channel.h index 242a078532..18d9a81209 100644 --- a/src/or/channel.h +++ b/src/or/channel.h @@ -38,11 +38,6 @@ struct channel_s { */ unsigned int is_listener:1; - /** Unique ID for measuring direct network status requests;vtunneled ones - * come over a circuit_t, which has a dirreq_id field as well, but is a - * distinct namespace. */ - uint64_t dirreq_id; - /** Why did we close? */ enum { diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 9bcfca30de..834f9707ce 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -3124,7 +3124,7 @@ connection_exit_begin_conn(cell_t *cell, circuit_t *circ) /* Remember the tunneled request ID in the new edge connection, so that * we can measure download times. */ - TO_CONN(n_stream)->dirreq_id = circ->dirreq_id; + n_stream->dirreq_id = circ->dirreq_id; n_stream->_base.purpose = EXIT_PURPOSE_CONNECT; @@ -3366,7 +3366,7 @@ connection_exit_connect_dir(edge_connection_t *exitconn) /* Note that the new dir conn belongs to the same tunneled request as * the edge conn, so that we can measure download times. */ - TO_CONN(dirconn)->dirreq_id = TO_CONN(exitconn)->dirreq_id; + dirconn->dirreq_id = exitconn->dirreq_id; connection_link_connections(TO_CONN(dirconn), TO_CONN(exitconn)); diff --git a/src/or/directory.c b/src/or/directory.c index 7df91fb57e..8003444c6f 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -2855,8 +2855,8 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers, geoip_note_ns_response(act, GEOIP_SUCCESS); /* Note that a request for a network status has started, so that we * can measure the download time later on. */ - if (TO_CONN(conn)->dirreq_id) - geoip_start_dirreq(TO_CONN(conn)->dirreq_id, dlen, act, + if (conn->dirreq_id) + geoip_start_dirreq(conn->dirreq_id, dlen, act, DIRREQ_TUNNELED); else geoip_start_dirreq(TO_CONN(conn)->global_identifier, dlen, act, @@ -3529,8 +3529,8 @@ connection_dir_finished_flushing(dir_connection_t *conn) /* Note that we have finished writing the directory response. For direct * connections this means we're done, for tunneled connections its only * an intermediate step. */ - if (TO_CONN(conn)->dirreq_id) - geoip_change_dirreq_state(TO_CONN(conn)->dirreq_id, DIRREQ_TUNNELED, + if (conn->dirreq_id) + geoip_change_dirreq_state(conn->dirreq_id, DIRREQ_TUNNELED, DIRREQ_FLUSHING_DIR_CONN_FINISHED); else geoip_change_dirreq_state(TO_CONN(conn)->global_identifier, diff --git a/src/or/geoip.c b/src/or/geoip.c index 6b7cc82b82..a995f8b802 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -578,7 +578,7 @@ _c_hist_compare(const void **_a, const void **_b) * failed, the others as still running. */ #define DIRREQ_TIMEOUT (10*60) -/** Entry in a map from either conn->global_identifier for direct requests +/** Entry in a map from either chan->global_identifier for direct requests * or a unique circuit identifier for tunneled requests to request time, * response size, and completion time of a network status request. Used to * measure download times of requests to derive average client @@ -586,7 +586,7 @@ _c_hist_compare(const void **_a, const void **_b) typedef struct dirreq_map_entry_t { HT_ENTRY(dirreq_map_entry_t) node; /** Unique identifier for this network status request; this is either the - * conn->global_identifier of the dir conn (direct request) or a new + * chan->global_identifier of the dir channel (direct request) or a new * locally unique identifier of a circuit (tunneled request). This ID is * only unique among other direct or tunneled requests, respectively. */ uint64_t dirreq_id; @@ -705,7 +705,7 @@ geoip_change_dirreq_state(uint64_t dirreq_id, dirreq_type_t type, if ((type == DIRREQ_DIRECT && new_state == DIRREQ_FLUSHING_DIR_CONN_FINISHED) || (type == DIRREQ_TUNNELED && - new_state == DIRREQ_OR_CONN_BUFFER_FLUSHED)) { + new_state == DIRREQ_CHANNEL_BUFFER_FLUSHED)) { tor_gettimeofday(&ent->completion_time); ent->completed = 1; } |