Commit b4305764 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

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.
parent 65008a4e
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -6,6 +6,17 @@

                                  Changelog

Daniel S (5 Jan 2008)
- 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.

Daniel S (4 Jan 2008)
- Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let the
  proxy do the host name resolving and only if --socks5ip (or
+2 −3
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ Curl and libcurl 7.17.2

 Public curl releases:         103
 Command line options:         125
 curl_easy_setopt() options:   149
 curl_easy_setopt() options:   148
 Public functions in libcurl:  55
 Public web site mirrors:      42
 Known libcurl bindings:       36
@@ -15,7 +15,7 @@ This release includes the following changes:
 o --no-keep-alive was added, since starting now curl is doing connections with
   keep-alive enabled by default
 o --socks4a added (proxy type CURLPROXY_SOCKS4A for libcurl)
 o --socks5ip added (CURLOPT_SOCKS5_RESOLVE_LOCAL for libcurl)
 o --socks5-hostname added (CURLPROXY_SOCKS5_HOSTNAME for libcurl)

This release includes the following bugfixes:

@@ -44,7 +44,6 @@ This release includes the following bugfixes:
 o bad connection re-use check with environment variable-activated proxy use
 o --libcurl now generates a return statement as well
 o socklen_t is no longer used in the public includes
 o SOCKS5 uses now let the proxy resolve the host names by default

This release includes the following known bugs:

+5 −5
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
.\" * $Id$
.\" **************************************************************************
.\"
.TH curl 1 "20 Nov 2007" "Curl 7.17.2" "Curl Manual"
.TH curl 1 "5 Jan 2008" "Curl 7.17.2" "Curl Manual"
.SH NAME
curl \- transfer a URL
.SH SYNOPSIS
@@ -1083,10 +1083,10 @@ This option overrides any previous use of \fI-x/--proxy\fP, as they are
mutually exclusive.

If this option is used several times, the last one will be used.
.IP "--socks5 <host[:port]>"
.IP "--socks5-hostname <host[:port]>"
Use the specified SOCKS5 proxy (and let the proxy resolve the host name). If
the port number is not specified, it is assumed at port 1080. (Added in
7.11.1)
7.17.2)

This option overrides any previous use of \fI-x/--proxy\fP, as they are
mutually exclusive.
@@ -1094,9 +1094,9 @@ mutually exclusive.
If this option is used several times, the last one will be used. (This option
was previously wrongly documented and used as --socks without the number
appended.)
.IP "--socks5ip <host[:port]>"
.IP "--socks5 <host[:port]>"
Use the specified SOCKS5 proxy - but resolve the host name locally. If the
port number is not specified, it is assumed at port 1080. (Added in 7.17.2)
port number is not specified, it is assumed at port 1080.

This option overrides any previous use of \fI-x/--proxy\fP, as they are
mutually exclusive.
+4 −5
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
.\" * $Id$
.\" **************************************************************************
.\"
.TH curl_easy_setopt 3 "4 Jan 2008" "libcurl 7.17.2" "libcurl Manual"
.TH curl_easy_setopt 3 "5 Jan 2008" "libcurl 7.17.2" "libcurl Manual"
.SH NAME
curl_easy_setopt \- set options for a curl easy handle
.SH SYNOPSIS
@@ -431,10 +431,9 @@ specified in the proxy string \fICURLOPT_PROXY\fP.
.IP CURLOPT_PROXYTYPE
Pass a long with this option to set type of the proxy. Available options for
this are \fICURLPROXY_HTTP\fP, \fICURLPROXY_SOCKS4\fP (added in 7.15.2),
\fICURLPROXY_SOCKS5\fP and \fICURLPROXY_SOCKS4A\fP (added in 7.17.2). The HTTP
type is default. (Added in 7.10)

See also \fIURLOPT_SOCKS5_RESOLVE_LOCAL\fP.
\fICURLPROXY_SOCKS5\fP, \fICURLPROXY_SOCKS4A\fP (added in 7.17.2) and
\fICURLPROXY_SOCKS5_HOSTNAME\fP (added in 7.17.2). The HTTP type is
default. (Added in 7.10)
.IP CURLOPT_HTTPPROXYTUNNEL
Set the parameter to non-zero to get the library to tunnel all operations
through a given HTTP proxy. There is a big difference between using a proxy
+4 −6
Original line number Diff line number Diff line
@@ -499,7 +499,10 @@ typedef enum {
  CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already
                           in 7.10 */
  CURLPROXY_SOCKS5 = 5, /* added in 7.10 */
  CURLPROXY_SOCKS4A = 6 /* added in 7.17.2 */
  CURLPROXY_SOCKS4A = 6, /* added in 7.17.2 */
  CURLPROXY_SOCKS5_HOSTNAME = 7 /* Use the SOCKS5 protocol but pass along the
                                   host name rather than the IP address. added
                                   in 7.17.2 */
} curl_proxytype;  /* this enum was added in 7.10 */

#define CURLAUTH_NONE         0       /* nothing */
@@ -1172,11 +1175,6 @@ typedef enum {
  /* set transfer mode (;type=<a|i>) when doing FTP via an HTTP proxy */
  CINIT(PROXY_TRANSFER_MODE, LONG, 166),

  /* Set using of SOCKS5 to resolve host names locally instead of sending them
     to the proxy to let it resolve them. Valid only if CURLOPT_PROXYTYPE ==
     CURLPROXY_SOCKS5, otherwise ignored. */
  CINIT(SOCKS5_RESOLVE_LOCAL, LONG, 167),

  CURLOPT_LASTENTRY /* the last unused */
} CURLoption;

Loading