aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2010-09-02Use own typedef as workaround for broken sspi.h header (f.e. Watcom).Guenter Knauf
2010-09-02Added S_ISREG define for Win32.Guenter Knauf
2010-09-01multi: fixes for timing out handlesDaniel Stenberg
Add a timeout check for handles in the state machine so that they will timeout in all states disregarding what actions that may or may not happen. Fixed a bug in socket_action introduced recently when looping over timed out handles: it wouldn't assign the 'data' variable and thus it wouldn't properly take care of handles. In the update_timer function, the code now checks if the timeout has been removed and then it tells the application. Previously it would always let the remaining timeout(s) just linger to expire later on.
2010-09-01threaded resolver: no more expire 0 callsDaniel Stenberg
Curl_expire() set to 0 expires ALL timeouts so it should only be called if we truly and really want to remove all timeouts for the handle.
2010-09-01resolve_server: simplify codeDaniel Stenberg
Make use of the helper function Curl_timeleft() instead of duplicating code.
2010-08-31multi: make sure the next timeout is used when one expiresDaniel Stenberg
Each easy handle has a list of timeouts, so as soon as the main timeout for a handle expires, we must make sure to get the next entry from the list and re-add the handle to the splay tree. This was attempted previously but was done poorly in my commit 232ad6549a68450.
2010-08-29multi: set timeouts when transfer beginsDaniel Stenberg
When a new transfer is about to start we now set the proper timeouts to expire for the multi interface if they are set for the handle. This is a follow-up bugfix to make sure that easy handles timeout properly when the times expire and the multi interface is used. This also improves curl_multi_timeout().
2010-08-25Makefile: add gopher.c file to buildDaniel Stenberg
As the VC and RISCOS makefiles don't use the .inc file
2010-08-25gopher: enable the header callback/verbosityDaniel Stenberg
2010-08-25gopher: fix memory leak and busyloopDaniel Stenberg
The fix for the busyloop really only is a temporary work-around. It causes a BLOCKING behavior which is a NO-NO. This function should rather be split up in a do and a doing piece where the pieces that aren't possible to send now will be sent in the doing function repeatedly until the entire request is sent.
2010-08-25Gopher using Curl_write; test suite (4 tests)Cameron Kaiser
2010-08-25Remove url.c testCameron Kaiser
2010-08-25Forgot gopher.h in Makefile.incCameron Kaiser
2010-08-25Gopher protocol support (initial release)Cameron Kaiser
2010-08-25http: handle trailer headers in all chunked responsesDaniel Stenberg
HTTP allows that a server sends trailing headers after all the chunks have been sent WITHOUT signalling their presence in the first response headers. The "Trailer:" header is only a SHOULD there and as we need to handle the situation even without that header I made libcurl ignore Trailer: completely. Test case 1116 was added to verify this and to make sure we handle more than one trailer header properly. Reported by: Patrick McManus Bug: http://curl.haxx.se/bug/view.cgi?id=3052450
2010-08-24multi: Fix compile warning on 64-bit systemsBen Greear
2010-08-21Curl_is_connected: use correct errnoDirk Manske
The correctly extracted errno contents were mistakenly overwritten by a newer value that wasn't the correct error value. Bug: http://curl.haxx.se/mail/lib-2010-08/0242.html
2010-08-20Added mk-ca-bundle.vbs script.Guenter Knauf
The script works exactly same as the Perl one except for one thing: when the text descriptions generated with openssl are included then the md5 fingerprints are missing; seems openssl has either a bug or a feature which prints the md5 fingerprint output to stdout instead of writing them to specified file; this script could here do the same as what the Perl scripr does (redirect stdout into file) but this makes the script take up double the time because it needs to launch cmd.exe 140 times (fo each openssl call). So I think for now we just ommit the md5 fingerprints, and see if openssl will be fixed.
2010-08-18Fixed a memory leak during OOM in the multi timeout codeDan Fandrich
2010-08-18multi: avoid sending multiple complete messagesDaniel Stenberg
I fell over this bug report that mentioned that libcurl could wrongly send more than one complete messages at the end of a transfer. Reading the code confirmed this, so I've added a new multi state to make it not happen. The mentioned bug report was made by Brad Jorsch but is (oddly enough) filed in Debian's bug tracker for the "wmweather+" tool. Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593390
2010-08-18It is sufficient to pipe stderr to NUL to get rid of the nasty messages.Guenter Knauf
2010-08-18Added SSPI build to Watcom makefile.Guenter Knauf
2010-08-16progress: callback for POSTs less than MAX_INITIAL_POST_SIZEJulien Chaffraix
Add a call to Curl_pgrsSetUploadSize in this case valided by a test case. Reported by: Никита Дорохин. Bug: http://curl.haxx.se/mail/lib-2010-04/0173.html
2010-08-16negotiation: Wrong proxy authorizationDaniel Stenberg
There's an error in http_negotiation.c where a mistake is using only userpwd even for proxy requests. Ludek provided a patch, but I decided to write the fix slightly different using his patch as inspiration. Reported by: Ludek Finstrle Bug: http://curl.haxx.se/bug/view.cgi?id=3046066
2010-08-15Syncroniszed vclean target; fixed some comments.Guenter Knauf
2010-08-15multi: use timeouts properly for MAX_RECV/SEND_SPEEDDaniel Stenberg
When detecting that the send or recv speed, the multi interface changes state to TOOFAST and previously there was no timeout set that would force a recheck but it would rely on the application to somehow call libcurl anyway. This now sets a timeout for a suitable future time to check again if the average transfer speed is then below the threshold again.
2010-08-15multi: support timeoutsDaniel Stenberg
Curl_expire() is now expanded to hold a list of timeouts for each easy handle. Only the closest in time will be the one used as the primary timeout for the handle and will be used for the splay tree (which sorts and lists all handles within the multi handle). When the main timeout has triggered/expired, the next timeout in time that is kept in the list will be moved to the main timeout position and used as the key to splay with. This way, all timeouts that are set with Curl_expire() internally will end up as a proper timeout. Previously any Curl_expire() that set a _later_ timeout than what was already set was just silently ignored and thus missed. Setting Curl_expire() with timeout 0 (zero) will cancel all previously added timeouts. Corrects known bug #62.
2010-08-15Curl_llist_insert_next: allow insertion first in the listDaniel Stenberg
When we specify the "insert after" entry as NULL, this function now inserts the new entry first in the list.
2010-08-15multi: make curl_multi_info_read perform O(1)Daniel Stenberg
Instead of looping over all attached easy handles, this now keeps a list of messages in the multi handle. It allows curl_multi_info_read() to perform O(1) no matter how many easy handles that are handled. This is of importance since this function may be polled very frequently by apps using the multi interface.
2010-08-11Added OpenSSL builds to Watcom makefiles.Guenter Knauf
2010-08-11warning: silence the compilerDaniel Stenberg
warning: conversion to 'long int' from 'time_t' may alter its value ... on win64 when time_t is 64bit and long is 32bit.
2010-08-10callbacks: acknowledge progress callback error returnsDaniel Stenberg
When the progress callback is called during the TCP connection, an error return would accidentally not abort the operation as intended but would instead be counted as a failure to connect to that particular IP and libcurl would just continue to try the next. I made singleipconnect() and trynextip() return CURLcode properly. Added bonus: it corrected the error code for bad --interface usages, like tested in test 1084 and test 1085. Reported by: Adam Light Bug: http://curl.haxx.se/mail/lib-2010-08/0105.html
2010-08-10More Watcom makefile fixes ...Guenter Knauf
Final fix (hopefully!) for dll wlink loader; prefer faster internal rm if available.
2010-08-10Fixed my wrong edit.Guenter Knauf
2010-08-10More Watcom makefile fixes.Guenter Knauf
Added the -br switch to dynamic builds which fixes the issue I saw with curl's --version output. Added debug info and symfile for debug builds to linker opts. Added DLL loader for wlink back, but this time dependend on wlink version. Patch posted to the list by malak.jiri AT gmail.com.
2010-08-10Changed test for -u switch in order to enable other wmake switches.Guenter Knauf
The var %MAKEFLAGS is only set in 3 cases: if set as environment var or as macro definition from commandline, and either with the -u or -ms switch. Since all these cases are unlikely for the average user it should be safe to only test if %MAKEFLAGS is defined; this has the benefit that now all other switches can be used again in addition to the -u which was formerly not possible.
2010-08-10llist: hide Curl_llist_initDaniel Stenberg
Curl_llist_init is never used outside of llist.c and thus it should be static. I also removed the protos for Curl_llist_insert_prev and Curl_llist_remove_next which are functions we removed from llist.c ages ago.
2010-08-10Updated lib dependency versions.Guenter Knauf
2010-08-10parse_remote_port: fix ;type= URL suffix over HTTP proxyDaniel Stenberg
Test 563 is enabled now and verifies that the combo FTP type=A URL, CURLOPT_PORT set and proxy work fine. As a bonus I managed to remove the somewhat odd FTP check in parse_remote_port() and instead converted it to a better and more generic 'slash_removed' struct field. Checking the ->protocol field isn't right since when an FTP:// URL is sent over a HTTP proxy, the protocol is HTTP but the URL was handled by the FTP code and thus slash_removed is set TRUE for this case.
2010-08-10indent: white space fixes onlyDaniel Stenberg
2010-08-08typo: remove duplicate semicolonDaniel Stenberg
2010-08-08multi: avoid a malloc() when a transfer is completeDaniel Stenberg
The struct used for storing the message for a completed transfer is now no longer allocated separatly but is kept within the main struct kept for each easy handle so that we avoid one malloc (and the subsequent free).
2010-08-07Fix to overwrite libcurl name.Guenter Knauf
2010-08-07build: allow NTLM tests to run on more build configurationsU-D5B1PQ1J\Administrador
2010-08-07Block created curlbuild.h for NetWare to avoid usage from other platforms.Guenter Knauf
2010-08-06multi_socket: set timeout for 100-continueDaniel Stenberg
When libcurl internally decided to wait for a 100-continue header, there was no call to the timeout function so there was no timeout callback called when the multi_socket API was used and thus applications became either completely wrong or at least ineffecient depending on how they handled the situation. We now set a timeout to get triggered. Reported by: Ben Darnell Bug: http://curl.haxx.se/bug/view.cgi?id=3039744
2010-08-06Some more Watcom makefile massage ...Guenter Knauf
For now removed the .autodepend directive until I've figured out which of my changes broke it again.
2010-08-05build: fix libssh2_scp_send64() availabilityYang Tse
2010-08-04build: remove unneeded cast to (void *)Yang Tse
2010-08-04SCP: send large files properly with new enough libssh2Daniel Stenberg
libssh2 1.2.6 and later handle >32bit file sizes properly even on 32bit architectures and we make sure to use that ability. Reported by: Mikael Johansson Bug: http://curl.haxx.se/mail/lib-2010-08/0052.html