patch: router.exit -> localhost.router.exit
Geoffrey Goodell
goodell at cassandra.eecs.harvard.edu
Mon May 9 07:13:20 UTC 2005
Probably, MAX_SOCKS_ADDR_LEN could be replaced with 10.
Geoff
On Mon, May 09, 2005 at 02:56:12AM -0400, Geoffrey Goodell wrote:
> 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) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.torproject.org/pipermail/tor-dev/attachments/20050509/bcc8397a/attachment.pgp>
More information about the tor-dev
mailing list