]> git.sven.stormbind.net Git - sven/tclcurl.git/blob - Cambios TclCurl.txt
releasing version 7.19.6-2
[sven/tclcurl.git] / Cambios TclCurl.txt
1 - All the quote options (CURLOPT_QUOTE, CURLOPT_POSTQUOTE and\r
2   CURLOPT_PREQUOTE) now accept a preceeding asterisk before the command to\r
3   send when using FTP, as a sign that libcurl shall simply ignore the response\r
4   from the server instead of treating it as an error. Not treating a 400+ FTP\r
5   response code as an error means that failed commands will not abort the\r
6   chain of commands, nor will they cause the connection to get disconnected.\r
7 \r
8 SOLO DOCS\r
9 \r
10 - Added CURLOPT_SSH_KNOWNHOSTS, CURLOPT_SSH_KEYFUNCTION, CURLOPT_SSH_KEYDATA.\r
11   They introduce known_host support for SSH keys to libcurl. See docs for\r
12   details. Note that this feature depends on a new enough libssh2 version, to\r
13   be supported in libssh2 1.2 and later (or current git repo at this time).\r
14 \r
15 HECHO\r
16 \r
17 - David Kierznowski notified us about a security flaw\r
18   (http://curl.haxx.se/docs/adv_20090303.html also known as CVE-2009-0037) in\r
19   which previous libcurl versions (by design) can be tricked to access an\r
20   arbitrary local/different file instead of a remote one when\r
21   CURLOPT_FOLLOWLOCATION is enabled. This flaw is now fixed in this release\r
22   together this the addition of two new setopt options for controlling this\r
23   new behavior:\r
24 \r
25   o CURLOPT_REDIR_PROTOCOLS controls what protocols libcurl is allowed to\r
26   follow to when CURLOPT_FOLLOWLOCATION is enabled. By default, this option\r
27   excludes the FILE and SCP protocols and thus you nee to explicitly allow\r
28   them in your app if you really want that behavior.\r
29 \r
30   o CURLOPT_PROTOCOLS controls what protocol(s) libcurl is allowed to fetch\r
31   using the primary URL option. This is useful if you want to allow a user or\r
32   other outsiders control what URL to pass to libcurl and yet not allow all\r
33   protocols libcurl may have been built to support.\r
34 \r
35 HECHO\r
36 \r
37 - After a bug reported by James Cheng I've made curl_easy_getinfo() for\r
38   CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD return\r
39   -1 if the sizes aren't know. Previously these returned 0, make it impossible\r
40   to detect the difference between actually zero and unknown.\r
41 \r
42 SOLO DOC\r
43 \r
44 - FTP downloads (i.e.: RETR) ending with code 550 now return error\r
45   CURLE_REMOTE_FILE_NOT_FOUND instead of CURLE_FTP_COULDNT_RETR_FILE.\r
46 \r
47 SOLO DOC\r
48 \r
49 - CURLOPT_FTP_CREATE_MISSING_DIRS can now be set to 2 in addition to 1 for\r
50   plain FTP connections, and it will then allow MKD to fail once and retry the\r
51   CWD afterwards. This is especially useful if you're doing many simultanoes\r
52   connections against the same server and they all have this option enabled,\r
53   as then CWD may first fail but then another connection does MKD before this\r
54   connection and thus MKD fails but trying CWD works! The numbers can\r
55   (should?) now be set with the convenience enums now called\r
56   CURLFTP_CREATE_DIR and CURLFTP_CREATE_DIR_RETRY.\r
57 \r
58   Tests has proven that if you're making an application that uploads a set of\r
59   files to an ftp server, you will get a noticable gain in speed if you're\r
60   using multiple connections and this option will be then be very useful.\r
61 \r
62 SOLO DOC\r
63 \r
64 - CURLINFO_CONDITION_UNMET was added to allow an application to get to know if\r
65   the condition in the previous request was unmet. This is typically a time\r
66   condition set with CURLOPT_TIMECONDITION and was previously not possible to\r
67   reliably figure out. From bug report #2565128\r
68   (http://curl.haxx.se/bug/view.cgi?id=2565128) filed by Jocelyn Jaubert.\r
69 \r
70 HECHO\r
71 \r
72 - Markus Moeller introduced tw onew options to libcurl:\r
73   CURLOPT_SOCKS5_GSSAPI_SERVICE and CURLOPT_SOCKS5_GSSAPI_NEC to allow libcurl\r
74   to do GSS-style authentication with SOCKS5 proxies. The curl tool got the\r
75   options called --socks5-gssapi-service and --socks5-gssapi-nec to enable\r
76   these.\r
77 \r
78 HECHO\r
79 \r
80 - Chad Monroe provided the new CURLOPT_TFTP_BLKSIZE option that allows an app\r
81   to set desired block size to use for TFTP transfers instead of the default\r
82   512 bytes.\r
83 \r
84 HECHO\r
85 \r
86 - Internet Explorer had a broken HTTP digest authentication before v7 and\r
87   there are servers "out there" that relies on the client doing this broken\r
88   Digest authentication. Apache even comes with an option to work with such\r
89   broken clients.\r
90 \r
91   The difference is only for URLs that contain a query-part (a '?'-letter and\r
92   text to the right of it).\r
93 \r
94   libcurl now supports this quirk, and you enable it by setting the\r
95   CURLAUTH_DIGEST_IE bit in the bitmask you pass to the CURLOPT_HTTPAUTH or\r
96   CURLOPT_PROXYAUTH options. They are thus individually controlled to server\r
97   and proxy.\r
98 \r
99 HECHO\r
100 \r
101 - Igor Novoseltsev added CURLOPT_PROXYUSER and CURLOPT_PROXYPASSWORD that then\r
102   make CURLOPT_PROXYUSERPWD sort of deprecated. The primary motive for adding\r
103   these new options is that they have no problems with the colon separator\r
104   that the CURLOPT_PROXYUSERPWD option does.\r
105 \r
106 HECHO\r
107 \r
108 - Igor Novoseltsev brought a patch that introduced two new options to\r
109   curl_easy_setopt: CURLOPT_USERNAME and CURLOPT_PASSWORD that sort of\r
110   deprecates the good old CURLOPT_USERPWD since they allow applications to set\r
111   the user name and password independently and perhaps more importantly allow\r
112   both to contain colon(s) which CURLOPT_USERPWD doesn't fully support.\r
113 \r
114 HECHO\r
115 \r
116 - The libcurl FTP code now returns CURLE_REMOTE_FILE_NOT_FOUND error when SIZE\r
117   gets a 550 response back for the cases where a download (or NOBODY) is\r
118   wanted. It still allows a 550 as response if the SIZE is used as part of an\r
119   upload process (like if resuming an upload is requested and the file isn't\r
120   there before the upload). I also modified the FTP test server and a few test\r
121   cases accordingly to match this modified behavior.\r
122 \r
123 NADA\r
124 \r
125 - Martin Drasar provided the CURLOPT_POSTREDIR patch. It renames\r
126   CURLOPT_POST301 (but adds a define for backwards compatibility for you who\r
127   don't define CURL_NO_OLDIES). This option allows you to now also change the\r
128   libcurl behavior for a HTTP response 302 after a POST to not use GET in the\r
129   subsequent request (when CURLOPT_FOLLOWLOCATION is enabled). I edited the\r
130   patch somewhat before commit. The curl tool got a matching --post302\r
131   option. Test case 1076 was added to verify this.\r
132 \r
133 HECHO\r
134 \r
135 - Introducing CURLOPT_CERTINFO and the corresponding CURLINFO_CERTINFO. By\r
136   enabling this feature with CURLOPT_CERTINFO for a request using SSL (HTTPS\r
137   or FTPS), libcurl will gather lots of server certificate info and that info\r
138   can then get extracted by a client after the request has completed with\r
139   curl_easy_getinfo()'s CURLINFO_CERTINFO option. Linus Nielsen Feltzing\r
140   helped me test and smoothen out this feature.\r
141 \r
142   Unfortunately, this feature currently only works with libcurl built to use\r
143   OpenSSL.\r
144 \r
145   This feature was sponsored by networking4all.com - thanks!\r
146 \r
147 HECHO\r
148 \r