From 207fcb35d1123cc918b8787e55e3a7e5d60aa0c5 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Thu, 17 Jun 2004 21:11:09 +0000 Subject: tweaks and bugfix on resolve/resolved code svn:r1980 --- src/or/buffers.c | 3 --- src/or/connection_edge.c | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/or/buffers.c b/src/or/buffers.c index 855443dd3..407b5f5a1 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -409,9 +409,6 @@ int fetch_from_buf_http(buf_t *buf, return 1; } -#define SOCKS_COMMAND_CONNECT 0x01 -#define SOCKS_COMMAND_RESOLVE 0xF0 - /** There is a (possibly incomplete) socks handshake on buf, of one * of the forms * - socks4: "socksheader username\\0" diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 20a9341a8..15dbe9a28 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -372,13 +372,15 @@ static int connection_ap_handshake_process_socks(connection_t *conn) { } /* else socks handshake is done, continue processing */ if (socks->command == SOCKS_COMMAND_RESOLVE) { + uint32_t answer; /* Reply to resolves immediately if we can. */ if (strlen(socks->address) > RELAY_PAYLOAD_SIZE) { connection_ap_handshake_socks_resolved(conn,RESOLVED_TYPE_ERROR,0,NULL); conn->socks_request->has_finished = 1; connection_mark_for_close(conn); + return 0; } - uint32_t answer = htonl(client_dns_lookup_entry(socks->address)); + answer = htonl(client_dns_lookup_entry(socks->address)); if (answer) { connection_ap_handshake_socks_resolved(conn,RESOLVED_TYPE_IPV4,4, (char*)&answer); -- cgit v1.2.3