exitrouter = router_get_by_addr_port(circ->cpath->prev->addr, circ->cpath->prev->port);
else /* not open */
exitrouter = router_get_by_nickname(circ->build_state->chosen_exit);
- if(!exitrouter || connection_ap_can_use_exit(conn, exitrouter) < 0) {
+ if(!exitrouter || connection_ap_can_use_exit(conn, exitrouter) == ADDR_POLICY_REJECTED) {
/* can't exit from this router */
continue;
}
for(circ=global_circuitlist;circ;circ = circ->next) {
if(circ->cpath && circ->state != CIRCUIT_STATE_OPEN) {
exitrouter = router_get_by_nickname(circ->build_state->chosen_exit);
- if(exitrouter && connection_ap_can_use_exit(conn, exitrouter) >= 0)
+ if(exitrouter && connection_ap_can_use_exit(conn, exitrouter) != ADDR_POLICY_REJECTED)
if(++num >= MIN_CIRCUITS_HANDLING_STREAM)
return 1;
}
void connection_exit_connect(connection_t *conn) {
unsigned char connected_payload[4];
- if(router_compare_to_my_exit_policy(conn) < 0) {
+ if(router_compare_to_my_exit_policy(conn) == ADDR_POLICY_REJECTED) {
log_fn(LOG_INFO,"%s:%d failed exit policy. Closing.", conn->address, conn->port);
if(connection_edge_end(conn, END_STREAM_REASON_EXITPOLICY, NULL) < 0)
log_fn(LOG_WARN,"1: I called connection_edge_end redundantly.");
continue; /* Skip everything but APs in CIRCUIT_WAIT */
switch (connection_ap_can_use_exit(carray[j], dir->routers[i]))
{
- case -1:
+ case ADDR_POLICY_REJECTED:
log_fn(LOG_DEBUG,"%s (index %d) would reject this stream.",
dir->routers[i]->nickname, i);
break; /* would be rejected; try next connection */
- case 0:
- case 1:
+ case ADDR_POLICY_ACCEPTED:
+ case ADDR_POLICY_UNKNOWN:
++n_supported[i];
log_fn(LOG_DEBUG,"%s is supported. n_supported[%d] now %d.",
dir->routers[i]->nickname, i, n_supported[i]);
way we can't get a 'maybe' below. */
return router_compare_addr_to_exit_policy(conn->addr, conn->port,
- desc_routerinfo->exit_policy) == ADDR_POLICY_ACCEPTED;
+ desc_routerinfo->exit_policy);
}