From: Roger Dingledine Date: Thu, 17 Jun 2004 21:11:09 +0000 (+0000) Subject: tweaks and bugfix on resolve/resolved code X-Git-Tag: debian-version-0.0.7.1-1~27 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=207fcb35d1123cc918b8787e55e3a7e5d60aa0c5;p=thirdparty%2Ftor.git tweaks and bugfix on resolve/resolved code svn:r1980 --- diff --git a/src/or/buffers.c b/src/or/buffers.c index 855443dd3f..407b5f5a1d 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 20a9341a89..15dbe9a289 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);