Switch most uses of *_by_addr_port to *_by_identity_digest

svn:r1997
This commit is contained in:
Nick Mathewson 2004-07-01 23:13:04 +00:00
parent e1ba0c4663
commit cbab134bd9
5 changed files with 16 additions and 9 deletions

View File

@ -77,7 +77,7 @@ void circuit_log_path(int severity, circuit_t *circ) {
hop=circ->cpath; hop=circ->cpath;
do { do {
s = buf + strlen(buf); s = buf + strlen(buf);
router = router_get_by_addr_port(hop->addr,hop->port); router = router_get_by_digest(hop->identity_digest);
if(router) { if(router) {
snprintf(s, sizeof(buf) - (s - buf), "%s(%s) ", snprintf(s, sizeof(buf) - (s - buf), "%s(%s) ",
router->nickname, states[hop->state]); router->nickname, states[hop->state]);
@ -115,7 +115,7 @@ void circuit_rep_hist_note_result(circuit_t *circ) {
prev_nickname = options.Nickname; prev_nickname = options.Nickname;
} }
do { do {
router = router_get_by_addr_port(hop->addr,hop->port); router = router_get_by_digest(hop->identity_digest);
if (router) { if (router) {
if (prev_nickname) { if (prev_nickname) {
if (hop->state == CPATH_STATE_OPEN) if (hop->state == CPATH_STATE_OPEN)
@ -218,7 +218,8 @@ circuit_t *circuit_establish_circuit(uint8_t purpose,
log_fn(LOG_DEBUG,"Looking for firsthop '%s:%u'", log_fn(LOG_DEBUG,"Looking for firsthop '%s:%u'",
firsthop->address,firsthop->or_port); firsthop->address,firsthop->or_port);
n_conn = connection_twin_get_by_addr_port(firsthop->addr,firsthop->or_port); n_conn = connection_get_by_identity_digest(firsthop->identity_digest,
CONN_TYPE_OR);
if(!n_conn || n_conn->state != OR_CONN_STATE_OPEN) { /* not currently connected */ if(!n_conn || n_conn->state != OR_CONN_STATE_OPEN) { /* not currently connected */
circ->n_addr = firsthop->addr; circ->n_addr = firsthop->addr;
circ->n_port = firsthop->or_port; circ->n_port = firsthop->or_port;
@ -954,7 +955,8 @@ static int count_acceptable_routers(smartlist_t *routers) {
goto next_i_loop; goto next_i_loop;
} }
if(options.ORPort) { if(options.ORPort) {
conn = connection_exact_get_by_addr_port(r->addr, r->or_port); conn = connection_get_by_identity_digest(r->identity_digest,
CONN_TYPE_OR);
if(!conn || conn->type != CONN_TYPE_OR || conn->state != OR_CONN_STATE_OPEN) { if(!conn || conn->type != CONN_TYPE_OR || conn->state != OR_CONN_STATE_OPEN) {
log_fn(LOG_DEBUG,"Nope, %d is not connected.",i); log_fn(LOG_DEBUG,"Nope, %d is not connected.",i);
goto next_i_loop; goto next_i_loop;
@ -1090,7 +1092,7 @@ onion_extend_cpath(crypt_path_t **head_ptr, cpath_build_state_t
remove_twins_from_smartlist(sl,router_get_by_nickname(state->chosen_exit)); remove_twins_from_smartlist(sl,router_get_by_nickname(state->chosen_exit));
remove_twins_from_smartlist(sl,router_get_my_routerinfo()); remove_twins_from_smartlist(sl,router_get_my_routerinfo());
for (i = 0, cpath = *head_ptr; i < cur_len; ++i, cpath=cpath->next) { for (i = 0, cpath = *head_ptr; i < cur_len; ++i, cpath=cpath->next) {
r = router_get_by_addr_port(cpath->addr, cpath->port); r = router_get_by_digest(cpath->identity_digest);
tor_assert(r); tor_assert(r);
remove_twins_from_smartlist(sl,r); remove_twins_from_smartlist(sl,r);
} }

View File

@ -160,7 +160,8 @@ connection_t *connection_or_connect(routerinfo_t *router) {
/* this function should never be called if we're already connected to router, but */ /* this function should never be called if we're already connected to router, but */
/* check first to be sure */ /* check first to be sure */
conn = connection_exact_get_by_addr_port(router->addr,router->or_port); conn = connection_get_by_identity_digest(router->identity_digest,
CONN_TYPE_OR);
if(conn) if(conn)
return conn; return conn;
@ -304,7 +305,7 @@ connection_tls_finish_handshake(connection_t *conn) {
return -1; return -1;
} }
} else { } else {
if((c=connection_exact_get_by_addr_port(router->addr,router->or_port))) { if((c=connection_get_by_identity_digest(router->identity_digest, CONN_TYPE_OR))) {
log_fn(LOG_INFO,"Router %s is already connected on fd %d. Dropping fd %d.", router->nickname, c->s, conn->s); log_fn(LOG_INFO,"Router %s is already connected on fd %d. Dropping fd %d.", router->nickname, c->s, conn->s);
return -1; return -1;
} }

View File

@ -132,6 +132,8 @@ int connection_cpu_process_inbuf(connection_t *conn) {
/* parse out the circ it was talking about */ /* parse out the circ it was talking about */
tag_unpack(buf, &addr, &port, &circ_id); tag_unpack(buf, &addr, &port, &circ_id);
circ = NULL; circ = NULL;
/* XXXX This is actually right: we want a specific port here in
* case there are multiple connections. */
p_conn = connection_exact_get_by_addr_port(addr,port); p_conn = connection_exact_get_by_addr_port(addr,port);
if(p_conn) if(p_conn)
circ = circuit_get_by_circ_id_conn(circ_id, p_conn); circ = circuit_get_by_circ_id_conn(circ_id, p_conn);

View File

@ -317,7 +317,8 @@ void router_retry_connections(void) {
router = smartlist_get(rl->routers, i); router = smartlist_get(rl->routers, i);
if(router_is_me(router)) if(router_is_me(router))
continue; continue;
if(!connection_exact_get_by_addr_port(router->addr,router->or_port)) { if(!connection_get_by_identity_digest(router->identity_digest,
CONN_TYPE_OR)) {
/* not in the list */ /* not in the list */
log_fn(LOG_DEBUG,"connecting to OR %s:%u.",router->address,router->or_port); log_fn(LOG_DEBUG,"connecting to OR %s:%u.",router->address,router->or_port);
connection_or_connect(router); connection_or_connect(router);

View File

@ -147,7 +147,8 @@ void router_add_running_routers_to_smartlist(smartlist_t *sl) {
router = smartlist_get(routerlist->routers, i); router = smartlist_get(routerlist->routers, i);
if(router->is_running && if(router->is_running &&
(!options.ORPort || (!options.ORPort ||
connection_twin_get_by_addr_port(router->addr, router->or_port) )) connection_get_by_identity_digest(router->identity_digest,
CONN_TYPE_OR)))
smartlist_add(sl, router); smartlist_add(sl, router);
} }
} }