Here's another bug report. [No patch this time, I'm afraid. :-( ] When we try to use 0.2.3.0 as an exit, circuit construction succeeds, but stream creation fails almost all the time. The failure is in connection_edge.c, here:
if (or_circ && or_circ->p_conn && !options->AllowSingleHopExits && (or_circ->is_first_hop || (!connection_or_digest_is_known_relay( or_circ->p_conn->identity_digest) && should_refuse_unknown_exits(options)))) { Almost always (on both a PlanetLab test network and the live Tor network), or_circ->p_conn->identity_digest is just a bunch of NULs, so connection_or_digest_is_known_relay naturally returns false. Weirdly, I've seen it *not* fail once or twice, but I can't replicate the non-failure. Commenting out the body of the if makes the problem go away, but of course it removes the single-hop protection. Any ideas? Thanks, - Ian