aboutsummaryrefslogtreecommitdiff
path: root/lib/url.c
AgeCommit message (Collapse)Author
2006-08-29David McCreedy added CURLOPT_SOCKOPTFUNCTION and CURLOPT_SOCKOPTDATA toDaniel Stenberg
allow applications to set their own socket options.
2006-08-19Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPEDaniel Stenberg
command on subsequent requests on a re-used connection unless it has to.
2006-07-31Silence warning: empty body in an if-statementYang Tse
2006-07-25Dan Nelson added the CURLOPT_FTP_ALTERNATIVE_TO_USER libcurl option and curlDaniel Stenberg
tool option named --ftp-alternative-to-user. It provides a mean to send a particular command if the normal USER/PASS approach fails.
2006-07-24Fix typo.Gisle Vanem
2006-07-21Use calloc() instead.Gisle Vanem
2006-07-19Fix compiler warningsYang Tse
2006-07-17Fix compiler warning "enumerated type mixed with another type"Yang Tse
2006-07-14David McCreedy fixed a flaw where the CRLF counter wasn't properly clearedDaniel Stenberg
for FTP ASCII transfers.
2006-07-07Ingmar Runge provided a source snippet that caused a crash. The reason forDaniel Stenberg
the crash was that libcurl internally was a bit confused about who owned the DNS cache at all times so if you created an easy handle that uses a shared DNS cache and added that to a multi handle it would crash. Now we keep more careful internal track of exactly what kind of DNS cache each easy handle uses: None, Private (allocated for and used only by this single handle), Shared (points to a cache held by a shared object), Global (points to the global cache) or Multi (points to the cache within the multi handle that is automatically shared between all easy handles that are added with private caches).
2006-06-22Peter Silva introduced CURLOPT_MAX_SEND_SPEED_LARGE andDaniel Stenberg
CURLOPT_MAX_RECV_SPEED_LARGE that limit tha maximum rate libcurl is allowed to send or receive data. This kind of adds the the command line tool's option --limit-rate to the library. The rate limiting logic in the curl app is now removed and is instead provided by libcurl itself. Transfer rate limiting will now also work for -d and -F, which it didn't before.
2006-06-08Brian Dessent's fixes for cygwin buildsDaniel Stenberg
2006-05-26long/int cleanup to silence picky compiler warningsDaniel Stenberg
2006-05-24Michael Wallner provided a patch that allows "SESS" to be set withDaniel Stenberg
CURLOPT_COOKIELIST, which then makes all session cookies get cleared. (slightly edited by me, and the re-indent in cookie.c was also done by me)
2006-04-10First curl_multi_socket() commit. Should primarily be considered as an internalDaniel Stenberg
code rearrange to fit the future better.
2006-04-07First commit of David McCreedy's EBCDIC and TPF changes.Daniel Stenberg
2006-04-07added typedefed function pointers and typecast the NULL assignments in anDaniel Stenberg
attempt to silence picky compilers when assigning data pointers to a function pointer variable
2006-03-21Xavier Bouchoux made the SSL connection non-blocking for the multi interfaceDaniel Stenberg
(when using OpenSSL).
2006-03-07Markus Koetter filed debian bug report #355715 which identified a problemDaniel Stenberg
with the multi interface and multi-part formposts. The fix from February 22nd could make the Curl_done() function get called twice on the same connection and it was not designed for that and thus tried to call free() on an already freed memory area!
2006-02-24Added user ID support to SOCKS4.Dan Fandrich
2006-02-23Fixed a few more comment typos.Dan Fandrich
2006-02-23Peter Su's SOCKS4 fixDaniel Stenberg
2006-02-23Lots of work and analysis by "xbx___" in bug #1431750Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=1431750) helped me identify and fix two different but related bugs: 1) Removing an easy handle from a multi handle before the transfer is done could leave a connection in the connection cache for that handle that is in a state that isn't suitable for re-use. A subsequent re-use could then read from a NULL pointer and segfault. 2) When an easy handle was removed from the multi handle, there could be an outstanding c-ares DNS name resolve request. When the response arrived, it caused havoc since the connection struct it "belonged" to could've been freed already. Now Curl_done() is called when an easy handle is removed from a multi handle pre-maturely (that is, before the transfer was complteted). Curl_done() also makes sure to cancel all (if any) outstanding c-ares requests.
2006-02-22Fixed some spelling errors in comments, and extraneous \n in failf logs.Dan Fandrich
2006-02-21Peter Su added support for SOCKS4 proxies. Enable this by setting the proxyDaniel Stenberg
type to the already provided type CURLPROXY_SOCKS4. I added a --socks4 option that works like the current --socks5 option but instead use the socks4 protocol.
2006-02-16Added some clarifying commentsDaniel Stenberg
2006-02-11Karl M added the CURLOPT_CONNECT_ONLY and CURLINFO_LASTSOCKET options thatDaniel Stenberg
an app can use to let libcurl only connect to a remote host and then extract the socket from libcurl. libcurl will then not attempt to do any transfer at all after the connect is done.
2006-01-30Added CURLOPT_LOCALPORT and CURLOPT_LOCALPORTRANGE to libcurl. Set with theDaniel Stenberg
curl tool with --local-port. Plain and simply set the range of ports to bind the local end of connections to. Implemented on to popular demand. Not extensively tested. Please let me know how it works.
2006-01-19Duane Cathey was one of our friends who reported that curl -P [IP]Daniel Stenberg
(CURLOPT_FTPPORT) didn't work for ipv6-enabed curls if the IP wasn't a "native" IP while it works fine for ipv6-disabled builds! In the process of fixing this, I removed the support for LPRT since I can't think of many reasons to keep doing it and asking on the mailing list didn't reveal anyone else that could either. The code that sends EPRT and PORT is now also a lot simpler than before (IMHO).
2006-01-16David Shaw finally removed all traces of Gopher and we are now officiallyDaniel Stenberg
not supporting it. It hasn't been functioning for years anyway, so this is just finally stating what already was true. And a cleanup at the same time.
2005-12-20explain tld_check_name()Daniel Stenberg
2005-12-16Jean Jacques Drouin pointed out that you could only have a user name orDaniel Stenberg
password of 127 bytes or less embedded in a URL, where actually the code uses a 255 byte buffer for it! Modified now to use the full buffer size.
2005-12-067.15.1 with the now to be announced security flaw fixedDaniel Stenberg
2005-11-30cast the va_arg() assignment to ftp_filemethod properlyDaniel Stenberg
2005-11-28new experimental "ftp method" codeDaniel Stenberg
2005-10-27Nis Jorgensen filed bug report #1338648Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=1338648) which really is more of a feature request, but anyway. It pointed out that --max-redirs did not allow it to be set to 0, which then would return an error code on the first Location: found. Based on Nis' patch, now libcurl supports CURLOPT_MAXREDIRS set to 0, or -1 for infinity. Added test case 274 to verify.
2005-10-21"Ofer" reported a problem when libcurl re-used a connection and failed to doDaniel Stenberg
it, it could then accidentally actually crash. Presumably, this concerns FTP connections. http://curl.haxx.se/bug/view.cgi?id=1330310
2005-09-29Starting now, the verbose text that goes like "About to connect() to" willDaniel Stenberg
now contain the word "proxy" is the hostname is in fact a proxy. This will help users detect situations when they mistakenly use a proxy.
2005-09-16keep 'socktype' in the connectdata struct and make sure we use that for allDaniel Stenberg
protocol sockets even if the resolved address may say otherwise
2005-09-04Added FTP_SKIP_PASV_IP and --ftp-skip-pasv-ipDaniel Stenberg
2005-09-02John Kelly added TFTP support to libcurl. A bunch of new error codes wasDaniel Stenberg
added. TODO: add them to docs. add TFTP server to test suite. add TFTP to list of protocols whereever those are mentioned.
2005-08-24Toby Peterson added CURLOPT_IGNORE_CONTENT_LENGTH to the library, accessibleDaniel Stenberg
from the command line tool with --ignore-content-length. This will make it easier to download files from Apache 1.x (and similar) servers that are still having problems serving files larger than 2 or 4 GB. When this option is enabled, curl will simply have to wait for the server to close the connection to signal end of transfer. I wrote test case 269 that runs a simple test that this works.
2005-08-17- Jeff Pohlmeyer found out that if you ask libcurl to load a cookiefile (withDaniel Stenberg
CURLOPT_COOKIEFILE), add a cookie (with CURLOPT_COOKIELIST), tell it to write the result to a given cookie jar and then never actually call curl_easy_perform() - the given file(s) to read was never read but the output file was written and thus it caused a "funny" result. - While doing some tests for the bug above, I noticed that Firefox generates large numbers (for the expire time) in the cookies.txt file and libcurl didn't treat them properly. Now it does.
2005-08-07Jon Grubbs filed bug report #1249962 which identified a problem with NTLM on aDaniel Stenberg
HTTP proxy if an FTP URL was given. libcurl now properly switches to pure HTTP internally when an HTTP proxy is used, even for FTP URLs. The problem would also occur with other multi-pass auth methods.
2005-08-07Don't prevent FTPS:// through a http proxy, as we cannot know if it works orDaniel Stenberg
not!
2005-07-28reset the numcookies counter too (I missed it in the previous commit)Daniel Stenberg
2005-07-28now strdups the cookielist inpointer before passed on, as the cookie functionDaniel Stenberg
modifies it
2005-07-27If any of the options CURLOPT_HTTPGET, CURLOPT_POST and CURLOPT_HTTPPOST isDaniel Stenberg
set to 1, CURLOPT_NOBODY will now automatically be set to 0.
2005-07-27Peteris Krumins added CURLOPT_COOKIELIST and CURLINFO_COOKIELIST, which is aDaniel Stenberg
simple interface to extracting and setting cookies in libcurl's internal "cookie jar". See the new cookie_interface.c example code.
2005-07-17Simplified the code within curl_easy_perform() that calls Curl_perform().Daniel Stenberg
Pointed out by Bjorn Reese.