Commit 1c93e753 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Michal Marek introduced CURLOPT_PROXY_TRANSFER_MODE which is used to control

the appending of the "type=" thing on FTP URLs when they are passed to a
HTTP proxy. Some proxies just don't like that appending (which is done
unconditionally in 7.17.1), and some proxies treat binary/ascii transfers
better with the appending done!
parent 380ed8be
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -7,6 +7,13 @@
                                  Changelog


Daniel S (3 Dec 2007)
- Michal Marek introduced CURLOPT_PROXY_TRANSFER_MODE which is used to control
  the appending of the "type=" thing on FTP URLs when they are passed to a
  HTTP proxy. Some proxies just don't like that appending (which is done
  unconditionally in 7.17.1), and some proxies treat binary/ascii transfers
  better with the appending done!

Daniel S (29 Nov 2007)
- A bug report on the curl-library list showed a HTTP Digest session going on
  with a 700+ letter nonce. Previously libcurl only support 127 letter ones
+2 −1
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:         122
 curl_easy_setopt() options:   147
 curl_easy_setopt() options:   148
 Public functions in libcurl:  55
 Public web site mirrors:      42
 Known libcurl bindings:       36
@@ -11,6 +11,7 @@ Curl and libcurl 7.17.2
This release includes the following changes:
 
 o --data-urlencode was added
 o CURLOPT_PROXY_TRANSFER_MODE was added

This release includes the following bugfixes:

+7 −0
Original line number Diff line number Diff line
@@ -1064,6 +1064,13 @@ or similar.
libcurl does not do a complete ASCII conversion when doing ASCII transfers
over FTP. This is a known limitation/flaw that nobody has rectified. libcurl
simply sets the mode to ascii and performs a standard transfer.
.IP CURLOPT_PROXY_TRANSFER_MODE
Pass a long. If the value is set to 1 (one), it tells libcurl to set the
transfer mode (binary or ASCII) for FTP transfers done via an HTTP proxy, by
appending ;type=a or ;type=i to the URL. Without this setting, or it being
set to 0 (zero, the default), \fICURLOPT_TRANSFERTEXT\fP has no effect when
doing FTP via a proxy. Beware that not all proxies support this feature.
(Added in 7.17.2)
.IP CURLOPT_CRLF
Convert Unix newlines to CRLF newlines on transfers.
.IP CURLOPT_RANGE
+3 −0
Original line number Diff line number Diff line
@@ -1182,6 +1182,9 @@ typedef enum {
  /* POST volatile input fields. */
  CINIT(COPYPOSTFIELDS, OBJECTPOINT, 165),

  /* set transfer mode (;type=<a|i>) when doing FTP via an HTTP proxy */
  CINIT(PROXY_TRANSFER_MODE, LONG, 166),

  CURLOPT_LASTENTRY /* the last unused */
} CURLoption;

+16 −14
Original line number Diff line number Diff line
@@ -2122,6 +2122,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
      }
    }
    ppath = data->change.url;
    if (data->set.proxy_transfer_mode) {
      /* when doing ftp, append ;type=<a|i> if not present */
      if(checkprefix("ftp://", ppath) || checkprefix("ftps://", ppath)) {
        char *p = strstr(ppath, ";type=");
@@ -2140,6 +2141,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
                   data->set.prefer_ascii ? 'a' : 'i');
      }
    }
  }
  if(HTTPREQ_POST_FORM == httpreq) {
    /* we must build the whole darned post sequence first, so that we have
       a size of the whole shebang before we start to send it */
Loading