aboutsummaryrefslogtreecommitdiff
path: root/lib/url.c
AgeCommit message (Collapse)Author
2008-01-16Dmitry Kurochkin worked a lot on improving the HTTP Pipelining support thatDaniel Stenberg
previously had a number of flaws, perhaps most notably when an application fired up N transfers at once as then they wouldn't pipeline at all that nicely as anyone would think... Test case 530 was also updated to take the improved functionality into account.
2008-01-15Woops, partly revert my previous commit and do it slightly differently instead.Daniel Stenberg
The signalling of that a global DNS cache is wanted is done by setting the option but the setting of the internal variable that it is in use must not be done until it finally actually gets used! NOTE and WARNING: I noticed that you can't actually switch off the global dns cache with CURLOPT_DNS_USE_GLOBAL_CACHE but you couldn't do that previously either and the option is very clearly and loudly documented as DO NOTE USE so I won't bother to fix this bug now.
2008-01-15I made the torture test on test 530 go through. This was actually due toDaniel Stenberg
silly code left from when we switched to let the multi handle "hold" the dns cache when using the multi interface... Of course this only triggered when a certain function call returned error at the correct moment.
2008-01-10Georg Lippitsch brought CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA to allowDaniel Stenberg
libcurl to seek in a given input stream. This is particularly important when doing upload resumes when there's already a huge part of the file present remotely. Before, and still if this callback isn't used, libcurl will read and through away the entire file up to the point to where the resuming begins (which of course can be a slow opereration depending on file size, I/O bandwidth and more). This new function will also be preferred to get used instead of the CURLOPT_IOCTLFUNCTION for seeking back in a stream when doing multi-stage HTTP auth with POST/PUT.
2008-01-08Introducing curl_easy_pause() and new magic return codes for both the readDaniel Stenberg
and the write callbacks that now can make a connection's reading and/or writing get paused.
2008-01-06more SOCKS5_HOSTNAME adjustments from Richard AttererDaniel Stenberg
2008-01-06make sure CURLPROXY_SOCKS5_HOSTNAME is taken care of as wellDaniel Stenberg
2008-01-05Based on further discussion on curl-library, I reverted yesterday's SOCKS5Daniel Stenberg
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.
2008-01-04Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let theDaniel Stenberg
proxy do the host name resolving and only if --socks5ip (or CURLOPT_SOCKS5_RESOLVE_LOCAL) is used we resolve the host name locally and pass on the IP address only to the proxy.
2008-01-03'false' and 'true' are not built-ins on most compilers.Gisle Vanem
Use TRUE/FALSE from setup_once.h.
2008-01-02Richard Atterer brought a patch that added support for SOCKS4a proxies, whichDaniel Stenberg
is an inofficial PROXY4 variant that sends the hostname to the proxy instead of the resolved address (which is already supported by SOCKS5). --socks4a is the curl command line option for it and CURLOPT_PROXYTYPE can now be set to CURLPROXY_SOCKS4A as well.
2007-12-26Dmitry Kurochkin mentioned a flawDaniel Stenberg
(http://curl.haxx.se/mail/lib-2007-12/0252.html) in detect_proxy() which failed to set the bits.proxy variable properly when an environment variable told libcurl to use a http proxy.
2007-12-08All static functions that were previously name Curl_* something no longerDaniel Stenberg
use that prefix as we use that prefix only for library-wide internal global symbols.
2007-12-02Michal Marek introduced CURLOPT_PROXY_TRANSFER_MODE which is used to controlDaniel Stenberg
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!
2007-11-24reqdata doesn't exist anymore and the path moved to the UrlState structDaniel Stenberg
2007-11-24struct HandleData is now called struct SingleRequest, and is only for data thatDaniel Stenberg
is inited at the start of the DO action. I removed the Curl_transfer_keeper struct completely, and I had to move out a few struct members (that had to be set before DO or used after DONE) to the UrlState struct. The SingleRequest struct is accessed with SessionHandle->req. One of the biggest reasons for doing this was the bunch of duplicate struct members in HandleData and Curl_transfer_keeper since it was really messy to keep track of two variables with the same name and basically the same purpose!
2007-11-21Make the do_complete() function not get called until the DO actually isDaniel Stenberg
compelete, which bascially means when used with the multi interface
2007-11-20remove the unconditional enabling of cookies if you set a share to use!Daniel Stenberg
2007-11-15Rearranged code and changed Curl_readwrite_init() and Curl_pre_readwrite() intoDaniel Stenberg
do_init() and do_complete() which now are called first and last in the DO function. It simplified the flow in multi.c and the functions got more sensible names!
2007-11-12comment languageDaniel Stenberg
2007-11-12Bug report #1830637 (http://curl.haxx.se/bug/view.cgi?id=1830637), which wasDaniel Stenberg
forwarded from the Gentoo bug tracker by Daniel Black and was originally submitted by Robin Johnson, pointed out that libcurl would do bad memory references when it failed and bailed out before the handler thing was setup. My fix is not done like the provided patch does it, but instead I make sure that there's never any chance for a NULL pointer in that struct member.
2007-11-08Fix compiler warning: integral size mismatch in argumentYang Tse
2007-11-05removed space after if and while before the parenthesis for better source codeDaniel Stenberg
consistency
2007-10-30Fixed an OOM problem with file: URLsDan Fandrich
Moved Curl_file_connect into the protocol handler struct.
2007-10-26typecast to prevent compiler warningYang Tse
2007-10-25Don't assume there's a sessionhandle around when a connection is disconnected,Daniel Stenberg
so do the data->reqdata.current_conn assignment when we know there is an easy handle existing! Fixes the valgrind report on test 509.
2007-10-23Bug report #1812190 (http://curl.haxx.se/bug/view.cgi?id=1812190) points outDaniel Stenberg
that libcurl tried to re-use connections a bit too much when using non-SSL protocols tunneled over a HTTP proxy.
2007-10-22Michal Marek forwarded the bug reportDaniel Stenberg
https://bugzilla.novell.com/show_bug.cgi?id=332917 about a HTTP redirect to FTP that caused memory havoc. His work together with my efforts created two fixes: #1 - FTP::file was moved to struct ftp_conn, because is has to be dealt with at connection cleanup, at which time the struct HandleData could be used by another connection. Also, the unused char *urlpath member is removed from struct FTP. #2 - provide a Curl_reset_reqproto() function that frees data->reqdata.proto.* on connection setup if needed (that is if the SessionHandle was used by a different connection).
2007-10-22Bug report #1815530 (http://curl.haxx.se/bug/view.cgi?id=1815530) points outDaniel Stenberg
that specifying a proxy with a trailing slash didn't work (unless it also contained a port number).
2007-10-20We use this ZERO_NULL to avoid picky compiler warnings,Yang Tse
when assigning a NULL pointer to a function pointer var.
2007-10-20Fix compiler warning: conversion from "int" to "unsigned short" may lose ↵Yang Tse
significant bits
2007-10-18Allow CURLOPT_COPYPOSTFIELDS with explicit data size = 0Patrick Monnerat
2007-10-18Avoid a NULL pointer dereference in an OOM condition.Dan Fandrich
2007-10-17Fix overflow detection, take four. Avoiding zero size malloc.Yang Tse
2007-10-17Fix overflow detection, thanks to Patrick Monnerat detecting testYang Tse
failure condition: http://curl.haxx.se/mail/lib-2007-10/0152.html
2007-10-17We use this ZERO_NULL to avoid picky compiler warnings,Yang Tse
when assigning a NULL pointer to a function pointer var.
2007-10-16ANSI C compliant overflow checkYang Tse
2007-10-16Fixed compiler warning re: unused variable `bigsize'Dan Fandrich
2007-10-15Fix dynamic CURLOPT_POSTFIELDS bug: back to static.Patrick Monnerat
CURLOPT_COPYPOSTFIELDS option added for dynamic. Fix some OS400 features.
2007-10-15Fix LDAP compile error when LDAP is not available.Dan Fandrich
Fixed a typo in the LDAP configure code and made sure NULL is defined in a test programs that need it.
2007-10-13Made a few more functions static with the protocol handler table in place.Dan Fandrich
2007-10-12another Curl_handler fix, the #ifdefs got a bit mixed up...Daniel Stenberg
2007-10-12Fixed a few compile errors and warnings.Dan Fandrich
2007-10-12Added per-protocol callback static tables, replacing callback ptr storagePatrick Monnerat
in the connectdata structure by a single handler table ptr.
2007-10-05Michael Wallner made the CULROPT_COOKIELIST option support a new magicDaniel Stenberg
string: "FLUSH". Using that will cause libcurl to flush its cookies to the CURLOPT_COOKIEJAR file.
2007-10-03Alexey Pesternikov introduced CURLOPT_OPENSOCKETFUNCTION andDaniel Stenberg
CURLOPT_OPENSOCKETDATA to set a callback that allows an application to replace the socket() call used by libcurl. It basically allows the app to change address, protocol or whatever of the socket. (I also did some whitespace indent/cleanups in lib/url.c which kind of hides some of these changes, sorry for mixing those in.)
2007-10-03Based on a patch brought by Johnny Luong, libcurl now offersDaniel Stenberg
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 and the curl tool --hostpubmd5. They both make the SCP or SFTP connection verify the remote host's md5 checksum of the public key before doing a connect, to reduce the risk of a man-in-the-middle attack.
2007-10-02Fix compiler warningYang Tse
2007-09-27Enabled a few more gcc warnings with --enable-debug. Renamed a fewDan Fandrich
variables to avoid shadowing global declarations.
2007-09-26Philip Langdale provided the new CURLOPT_POST301 option forDaniel Stenberg
curl_easy_setopt() that alters how libcurl functions when following redirects. It makes libcurl obey the RFC2616 when a 301 response is received after a non-GET request is made. Default libcurl behaviour is to change method to GET in the subsequent request (like it does for response code 302 - because that's what many/most browsers do), but with this CURLOPT_POST301 option enabled it will do what the spec says and do the next request using the same method again. I.e keep POST after 301. The curl tool got this option as --post301 Test case 1011 and 1012 were added to verify.