Please consider this patch, which provides the following functionality: If a user specifies router.exit, then rather than rejecting the connection, try to connect to 127.0.0.1 on the specified exit node. Geoff
Only in or: .or.h.swp Only in or: CVS diff -u or/connection_edge.c or.patch/connection_edge.c --- or/connection_edge.c 2005-05-07 01:55:06.000000000 -0400 +++ or.patch/connection_edge.c 2005-05-09 02:46:58.000000000 -0400 @@ -914,14 +914,18 @@ if (addresstype == EXIT_HOSTNAME) { /* .exit -- modify conn to specify the exit node. */ char *s = strrchr(socks->address,'.'); - if (!s || s[1] == '\0') { - log_fn(LOG_WARN,"Malformed exit address '%s'. Refusing.", - safe_str(socks->address)); - connection_mark_unattached_ap(conn, END_STREAM_REASON_TORPROTOCOL); - return -1; + if (s) { + if (s[1] == '\0') { + log_fn(LOG_WARN,"Malformed exit address '%s'. Refusing.", + safe_str(socks->address)); + connection_mark_unattached_ap(conn, END_STREAM_REASON_TORPROTOCOL); + return -1; + } + conn->chosen_exit_name = tor_strdup(s+1); + *s = 0; + } else { + strncpy(socks->address, "127.0.0.1", MAX_SOCKS_ADDR_LEN); } - conn->chosen_exit_name = tor_strdup(s+1); - *s = 0; } if (addresstype != ONION_HOSTNAME) {
Attachment:
signature.asc
Description: Digital signature