aboutsummaryrefslogtreecommitdiff
path: root/lib/url.c
AgeCommit message (Collapse)Author
2008-07-31Fixed parsing of an IPv6 proxy address to support a scope identifier,Dan Fandrich
as well as IPv4 addresses in IPv6 format. Also, better handle the case of a malformatted IPv6 address (avoid empty and NULL strings).
2008-07-31Fixed a couple of problems in the IPv6 scope code. First, a host name inDan Fandrich
an URL in a Location: header didn't have the scope ID removed, so an invalid host name was used. Second, when the scope ID was removed, it also removed any port number that may have existed in the URL.
2008-07-30- Phil Blundell added the CURLOPT_SCOPE option, as well as adjusted the URLDaniel Stenberg
parser to allow numerical IPv6-addresses to be specified with the scope given, as per RFC4007 - with a percent letter that itself needs to be URL escaped. For example, for an address of fe80::1234%1 the HTTP URL is: "http://[fe80::1234%251]/"
2008-07-11indent and comment cleanup (no code change)Daniel Stenberg
2008-07-11- Daniel Fandrich found out we didn't pass on the user-agent properly whenDaniel Stenberg
doing "proxy-tunnels" with non-HTTP prototols and that was simply because the code assumed the user-agent was only needed for HTTP.
2008-07-03Introcuding a new timestamp for curl_easy_getinfo():Daniel Stenberg
CURLINFO_APPCONNECT_TIME. This is set with the "application layer" handshake/connection is completed (typically SSL, TLS or SSH). By using this you can figure out the application layer's own connect time. You can extract the time stamp using curl's -w option and the new variable named 'time_appconnect'. This feature was sponsored by Lenny Rachitsky at NeuStar.
2008-07-01CreateConnection collided with a function using the exact same name in theDaniel Stenberg
INTEGRITY RTOS, so I renamed it to create_conn. It then made sense to also rename SetupConnection to setup_conn to match it.
2008-06-30- Stephen Collyer and Tor Arntsen helped identify a flaw in the range codeDaniel Stenberg
which output the range using a signed variable where it should rather use unsigned.
2008-06-22Stopped using ranges in scanf character sequences (e.g. %[a-z]) since thatDan Fandrich
is not ANSI C, just a common extension. This caused problems on at least Open Watcom C.
2008-06-19- Dengminwen found a bug in the connection re-use function when using theDaniel Stenberg
multi interface with pipelining enabled as it would wrongly check for, detect and close "dead connections" even though that connection was already in use!
2008-06-06- Axel Tillequin and Arnaud Ebalard added support for CURLOPT_ISSUERCERT, forDaniel Stenberg
OpenSSL, NSS and GnuTLS-built libcurls.
2008-06-06- Axel Tillequin and Arnaud Ebalard added support for CURLOPT_CRLFILE, forDaniel Stenberg
OpenSSL, NSS and GnuTLS-built libcurls.
2008-04-30- To make it easier for applications that want lots of magic stuff done onDaniel Stenberg
redirections and thus cannot use CURLOPT_FOLLOWLOCATION easily, we now introduce the new CURLINFO_REDIRECT_URL option that lets applications extract the URL libcurl would've redirected to if it had been told to. This then enables the application to continue to that URL as it thinks is suitable, without having to re-implement the magic of creating the new URL from the Location: header etc. Test 1029 verifies it.
2008-04-22Added support for running on Symbian OS.Dan Fandrich
2008-04-05provide CURL_DEFAULT_PROXY_PORT set to 1080 for the default port libcurlDaniel Stenberg
assumes proxies to use
2008-04-03- Setting CURLOPT_NOBODY to FALSE will now switch the HTTP request method toDaniel Stenberg
GET simply because previously when you set CURLOPT_NOBODY to TRUE first and then FALSE you'd end up in a broken state where a HTTP request would do a HEAD by still act a lot like for a GET and hang waiting for the content etc.
2008-03-31Removed the generated ca-bundle.h file. The verbatim value of $ca andMichal Marek
$capath is known to configure, so it can be defined in config.h instead.
2008-03-25- Made setting the CURLOPT_SSL_CTX_FUNCTION option return a failure in caseDaniel Stenberg
libcurl wasn't built to use OpenSSL as that is a prerequisite for this option to function!
2008-03-20- Added --with-ca-path=DIRECTORY configure option to use an openSSL CApath byMichal Marek
default instead of a ca bundle. The configure script will also look for a ca path if no ca bundle is found and no option given. - Fixed detection of previously installed curl-ca-bundle.crt
2008-02-21assert that the *connp is a non-NULL pointer when Curl_done() is calledDaniel Stenberg
2008-02-20- Based on initial work done by Gautam Kachroo to address a bug, we now keepDaniel Stenberg
better control at the exact state of the connection's SSL status so that we know exactly when it has completed the SSL negotiation or not so that there won't be accidental re-uses of connections that are wrongly believed to be in SSL-completed-negotiate state.
2008-02-20- We no longer support setting the CURLOPT_URL option from inside a callbackDaniel Stenberg
such as the CURLOPT_SSL_CTX_FUNCTION one treat that as if it was a Location: following. The patch that introduced this feature was done for 7.11.0, but this code and functionality has been broken since about 7.15.4 (March 2006) with the introduction of non-blocking OpenSSL "connects". It was a hack to begin with and since it doesn't work and hasn't worked correctly for a long time and nobody has even noticed, I consider it a very suitable subject for plain removal. And so it was done.
2008-02-17In Curl_done() if premature is TRUE, it means this connection was said to beDaniel Stenberg
DONE before the entire request operation is complete and thus we can't know in what state it is for re-using, so we're forced to close it. In a perfect world we can add code that keep track of if we really must close it here or not, but currently we have no such detail knowledge. Jerome Muffat-Meridol helped us work this out.
2008-02-15mention that we explicitly ignore the return codeDaniel Stenberg
2008-02-03- Dmitry Kurochkin cleaned up the pipelining code and removed the need for andDaniel Stenberg
use of the "is_in_pipeline" struct field.
2008-01-31- Dmitry Kurochkin moved several struct fields from the connectdata struct toDaniel Stenberg
the SingleRequest one to make pipelining better. It is a bit tricky to keep them in the right place, to keep things related to the actual request or to the actual connection in the right place.
2008-01-29- Dmitry Kurochkin fixed Curl_done() for pipelining, as it could previouslyDaniel Stenberg
crash!
2008-01-21Dmitry Kurochkin removed the cancelled state for pipelining, as we agreedDaniel Stenberg
that it is bad anyway. Starting now, removing a handle that is in used in a pipeline will break the pipeline - it'll be set back up again but still...
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