Have find_intro_circuit return non-open circs

svn:r1600
This commit is contained in:
Nick Mathewson 2004-04-13 01:15:06 +00:00
parent 88950f4ac2
commit 9cd163f6ff

View File

@ -623,9 +623,9 @@ rend_service_rendezvous_is_ready(circuit_t *circuit)
* Manage introduction points
******/
/* Return the introduction circuit ending at 'router' for the service
* whose public key is 'pk_digest'. Return NULL if no such service is
* found.
/* Return the (possibly non-open) introduction circuit ending at
* 'router' for the service whose public key is 'pk_digest'. Return
* NULL if no such service is found.
*/
static circuit_t *
find_intro_circuit(routerinfo_t *router, const char *pk_digest)
@ -635,8 +635,8 @@ find_intro_circuit(routerinfo_t *router, const char *pk_digest)
while ((circ = circuit_get_next_by_pk_and_purpose(circ,pk_digest,
CIRCUIT_PURPOSE_S_INTRO))) {
assert(circ->cpath);
if (circ->cpath->prev->addr == router->addr &&
circ->cpath->prev->port == router->or_port) {
if (circ->build_state->chosen_exit &&
!strcasecmp(circ->build_state->chosen_exit, router->nickname)) {
return circ;
}
}
@ -645,8 +645,8 @@ find_intro_circuit(routerinfo_t *router, const char *pk_digest)
while ((circ = circuit_get_next_by_pk_and_purpose(circ,pk_digest,
CIRCUIT_PURPOSE_S_ESTABLISH_INTRO))) {
assert(circ->cpath);
if (circ->cpath->prev->addr == router->addr &&
circ->cpath->prev->port == router->or_port) {
if (circ->build_state->chosen_exit &&
!strcasecmp(circ->build_state->chosen_exit, router->nickname)) {
return circ;
}
}