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);