Based on further discussion on curl-library, I reverted yesterday's SOCKS5

code to instead introduce support for a new proxy type called
CURLPROXY_SOCKS5_HOSTNAME that is used to send the host name to the proxy
instead of IP address and there's thus no longer any need for a new
curl_easy_setopt() option.

The default SOCKS5 proxy is again back to sending the IP address to the
proxy.  The new curl command line option for enabling sending host name to a
SOCKS5 proxy is now --socks5-hostname.
This commit is contained in:
Daniel Stenberg 2008-01-05 22:04:18 +00:00
parent 65008a4e55
commit b430576436
9 changed files with 35 additions and 47 deletions

View file

@ -390,7 +390,7 @@ CURLcode Curl_SOCKS5(const char *proxy_name,
curl_socket_t sock = conn->sock[sockindex];
struct SessionHandle *data = conn->data;
long timeout;
bool socks5_resolve_local = data->set.socks5_resolve_local;
bool socks5_resolve_local = data->set.proxytype == CURLPROXY_SOCKS5;
const size_t hostname_len = strlen(hostname);
int packetsize = 0;

View file

@ -2054,14 +2054,6 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
}
break;
case CURLOPT_SOCKS5_RESOLVE_LOCAL:
/*
* Enable or disable using of SOCKS5 proxy server to resolve domain names
* instead of using platform API like gethostbyname_r etc
*/
data->set.socks5_resolve_local = (bool)(0 != va_arg(param, long));
break;
default:
/* unknown tag and its companion, just ignore: */
result = CURLE_FAILED_INIT; /* correct this */

View file

@ -1441,9 +1441,6 @@ struct UserDefined {
long new_directory_perms; /* Permissions to use when creating remote dirs */
bool proxy_transfer_mode; /* set transfer mode (;type=<a|i>) when doing FTP
via an HTTP proxy */
bool socks5_resolve_local; /* resolve host names locally even if a SOCKS5
proxy in use. Valid only if CURLOPT_PROXYTYPE
== CURLPROXY_SOCKS5, otherwise ignored. */
char *str[STRING_LAST]; /* array of strings, pointing to allocated memory */
};