mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
tweaks and bugfix on resolve/resolved code
svn:r1980
This commit is contained in:
@@ -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 <b>buf</b>, of one
|
||||
* of the forms
|
||||
* - socks4: "socksheader username\\0"
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user