aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2010-06-01multi_socket: handles timer inaccuracy better for timeoutsDaniel Stenberg
Igor Novoseltsev reported a problem with the multi socket API and using timeouts and timers. It boiled down to a problem with libcurl's use of GetTickCount() interally to figure out the current time, while Igor's own application code used another function call. It made his app call the socket API timeout function a bit _before_ libcurl would consider the timeout to trigger, and that could easily lead to timeouts or stalls in the app. It seems GetTickCount() in general often has no better resolution than 16ms and switching to the alternative function QueryPerformanceCounter has its share of problems: http://www.virtualdub.org/blog/pivot/entry.php?id=106 We address this problem by simply having libcurl treat timers that already has occured or will occur within 40ms subject for treatment. I'm confident that there are other implementations and operating systems with similarly in accurate timer functions so it makes sense to have applied generically and I don't believe we sacrifice much by adding a 40ms inaccuracy on these timeouts.
2010-06-01fix ldap related compilation issuesYang Tse
2010-06-01fix compiler warning: enumerated type mixed with another typeYang Tse
2010-05-31fix compiler warning: enumerated type mixed with another typeYang Tse
2010-05-31smtp_authenticate: avoid compiler warningsPatrick Monnerat
2010-05-31fix compiler warning: enumerated type mixed with another typeYang Tse
2010-05-31fix compiler warning: enumerated type mixed with another typeYang Tse
2010-05-31fix compiler warning: enumerated type mixed with another typeYang Tse
2010-05-31fix compiler warning: external declaration in primary source fileYang Tse
2010-05-31update year in copyright noticeYang Tse
2010-05-29strtoofft: rename CURL_LLONG_MIN -> CURL_OFF_T_MINKamil Dudka
... and CURL_LLONG_MAX -> CURL_OFF_T_MAX
2010-05-29CURL_LLONG_MAX: avoid constant overflowKamil Dudka
... when (CURL_SIZEOF_CURL_OFF_T == 4)
2010-05-28LDAPS: list availability depending on SSL's presenceHoward Chu
2010-05-28LDAP: make it build without SSL if no such support is availableHoward Chu
of course it also goes for the case where SSL is explicitly disabled
2010-05-28lib: eliminate 'statement not reached' warningsKamil Dudka
2010-05-27openldap: fix compiler warningsHoward Chu
2010-05-27indent: some whitespace editsDaniel Stenberg
2010-05-27wildcard.c: add missing include of "setup.h"Kamil Dudka
2010-05-27wildcard.c: add missing include of "curl_memory.h"Pavel Raiskup
2010-05-27setup_once: use enum type for 'bool' on non-C99 platformsTor Arntsen
An enum will catch non-bool assignments to bool on platforms with a strict compiler, e.g MIPSPro. Signed-off-by: Kamil Dudka <kdudka@redhat.com>
2010-05-27url.c: avoid implied cast to boolKamil Dudka
2010-05-27curl_fnmatch: remove use of register keywordTor Arntsen
Using the 'register' keyword rarely improves anything with modern compilers and architectures.
2010-05-26RTMP: Fix compiler warningsJulien Chaffraix
2010-05-26OOM fixes in http_negociate.c and lib/splay.cJulien Chaffraix
Fix 2 OOM errors: a missing NULL-check in lib/http_negociate.c and a potential NULL dereferencing in lib/splay.c
2010-05-25LDAP: properly implemented as a curl_handlerHoward Chu
makes the LDAP code much cleaner, nicer and in general being a better libcurl citizen. If a new enough OpenLDAP version is detect, the new and shiny lib/openldap.c code is then used instead of the old cruft Code by Howard, minor cleanups by Daniel.
2010-05-21curl_fnmatch: Use int not bool when function returns intTor Arntsen
bool in curl internals is unsigned char and should not be used to receive return value from functions returning int - this fails when using IBM VisualAge and Tru64 compilers.
2010-05-21TFTP: send legal timeout valueDaniel Stenberg
Eric Mertens posted bug #3003705: when we made TFTP use the correct timeout option when sent to the server (fixed May 18th 2010) it became obvious that libcurl used invalid timeout values (300 by default while the RFC allows nothing above 255). While of course it is obvious that as TFTP has worked thus far without being able to set timeout at all, just removing the setting wouldn't make any difference in behavior. I decided to still keep it (but fix the problem) as it now actually allows for easier (future) customization of the timeout. (http://curl.haxx.se/bug/view.cgi?id=3003705)
2010-05-21TFTP: don't ack if wrong block num is receivedDaniel Stenberg
If an unexpected block number was received, break out of the switch loop.
2010-05-21TFTP: block id wrap bug fixDaniel Stenberg
In a normal expression, doing [unsigned short] + 1 will not wrap at 16 bits so the comparisons and outputs were done wrong. I added a macro do make sure it gets done right. Douglas Kilpatrick filed bug report #3004787 about it: http://curl.haxx.se/bug/view.cgi?id=3004787
2010-05-20Fix build warnings.Ben Greear
Signed-off-by: Ben Greear <greearb@candelatech.com>
2010-05-20setopt: Fix setting of set.is_fwrite_setBen Greear
Signed-off-by: Ben Greear <greearb@candelatech.com>
2010-05-20build: allow curl to build with Microsoft VC10Tanguy Fautre
By undefing a bunch of E* defines that VC10 has started to define but that we redefine internally to their WSA* alternatives when building for Windows.
2010-05-19lib: Fix AIX build failureTor Arntsen
2010-05-19Fixed some memory leaks in the POP3 torture testsDan Fandrich
2010-05-18Fixed a memory leak in the SMTP torture testsDan Fandrich
2010-05-18TFTP: send timeout option correctlyDaniel Stenberg
Eric Mertens posted bug report #3003005 pointing out that the libcurl TFTP code was not sending the timeout option properly to the server, and suggested a fix. (http://curl.haxx.se/bug/view.cgi?id=3003005)
2010-05-16lib: Change some CRLF line endings to LFTor Arntsen
An update had added a couple of lines with DOS line endings, and some compilers will choke on that (e.g. the Tru64 compiler).
2010-05-16ftp wildcard: a new option CURLOPT_FNMATCH_DATAKamil Dudka
2010-05-15RMTP: the version code is now rtmp awareHoward Chu
2010-05-15RTMP: fix wrong #ifdefHoward Chu
2010-05-15ftp wildcard: fix int32_t and size/group mixupsPavel Raiskup
2010-05-14OpenSSL: multi interface handshake could hangDaniel Stenberg
John-Mark Bell filed bug #3000052 that identified a problem (with an associated patch) with the OpenSSL handshake state machine when the multi interface is used: Performing an https request using a curl multi handle and using select or epoll to wait for events results in a hang. It appears that the cause is the fix for bug #2958179, which makes ossl_connect_common unconditionally return from the step 2 loop when fetching from a multi handle. When ossl_connect_step2 has completed, it updates connssl->connecting_state to ssl_connect_3. ossl_connect_common will then return to the caller, as a multi handle is in use. Eventually, the client code will call curl_multi_fdset to obtain an updated fdset to select or epoll on. For https requests, curl_multi_fdset will cause https_getsock to be called. https_getsock will only return a socket handle if the connecting_state is ssl_connect_2_reading or ssl_connect_2_writing. Therefore, the client will never obtain a valid fdset, and thus not drive the multi handle, resulting in a hang. (http://curl.haxx.se/bug/view.cgi?id=3000052)
2010-05-14follow redirect: ignore response-body on redirect even if compressedDaniel Stenberg
Sebastian V reported bug #3000056 identifying a problem with redirect following. It showed that when curl followed redirects it didn't properly ignore the response body of the 30X response if that response was using compressed Content-Encoding! (http://curl.haxx.se/bug/view.cgi?id=3000056)
2010-05-13Remove support for BSD version of PolarSSLHoi-Ho Chan
"The BSD version of PolarSSL was made for migratory purposes only and is not maintained. The GPL version of PolarSSL is actually the only actively developed version, so I would be very reluctant to use the BSD version." / Paul Bakker, PolarSSL hacker. Signed-off-by: Hoi-Ho Chan <hoiho.chan@gmail.com>
2010-05-12Added Polar SSL and RTMP files to the non-autoconf build filesDan Fandrich
I didn't bother with a few that have little hope of running the required dependent libraries.
2010-05-12Added the new ftp source files to the non-autoconf build filesDan Fandrich
2010-05-12style: minor whitespace changeDaniel Stenberg
2010-05-12FTP: WILDCARDMATCH/CHUNKING/FNMATCH addedPavel Raiskup
2010-05-12RTMP: initial support added, powered by librtmpHoward Chu
librtmp is found at http://rtmpdump.mplayerhq.hu/
2010-05-11sendrecv: make them two pairs of send/recv to properly deal with FTPSHoward Chu
FTP(S) use two connections that can be set to different recv and send functions independently, so by introducing recv+send pairs in the same manner we already have sockets/connections we can work with FTPS fine. This commit fixes the FTPS regression introduced in change d64bd82.