Daniel Stenberg
4c663ba9a8
When transferring 500 downloads in parallel with a c-ares enabled build only
...
to find that it crashed miserably, and this was due to some select()isms left
in the code. This was due to API restrictions in c-ares 1.3.x, but with the
upcoming c-ares 1.4.0 this is no longer the case so now libcurl runs much
better with c-ares and the multi interface with > 1024 file descriptors in
use.
2007-05-31 11:34:32 +00:00
Daniel Stenberg
f611f42dcf
Frank Hempel fixed a curl_easy_duphandle() crash on a handle that had
...
been removed from a multi handle, and then fixed another flaw that prevented
curl_easy_duphandle() to work even after the first fix - the handle was
still marked as using the multi interface.
2007-04-28 20:27:07 +00:00
Yang Tse
0e05a6329a
fix out of memory handling issue
2007-04-08 22:49:38 +00:00
Daniel Stenberg
990b15e402
Rob Jones fixed better #ifdef'ing for a bunch of #include lines.
2007-04-03 20:54:37 +00:00
Daniel Stenberg
371a25eee9
When curl_easy_duphandle() fails because it can't get or make a connection
...
cache, we must make sure not to derefence the NULL pointer...
CID 6 coverity.com scan
2007-03-31 11:28:03 +00:00
Yang Tse
eed47311f8
New Internal wrapper function Curl_select() around select (2), it
...
uses poll() when a fine poll() is available, so now libcurl can be
built without select() support at all if a fine poll() is available.
2007-03-27 18:15:26 +00:00
Yang Tse
be8a5d0aef
proper symbol definition check for all AmigaOS flavours
2007-02-28 14:45:48 +00:00
Gisle Vanem
c514a2a89a
Removed inclusion of <sys/types.h> and <sys/stat.h> in .c-files
...
since they're already included through "setup.h".
2007-02-26 04:24:26 +00:00
Yang Tse
a1d5983991
use macros ERRNO, SET_ERRNO(), SOCKERRNO and SET_SOCKERRNO() for errno handling
2007-02-16 18:19:35 +00:00
Yang Tse
49c4d9c9cd
add debug messages for initialization failures
2007-01-31 19:47:49 +00:00
Daniel Stenberg
e5adab39b1
curl_easy_reset() now resets the CA bundle path correctly
2007-01-28 12:58:13 +00:00
Daniel Stenberg
bd600fbebe
curl_easy_duphandle() sets the magic number in the new handle
2006-12-29 11:32:14 +00:00
Daniel Stenberg
bedc61ac45
- Robert Foreman provided a prime example snippet showing how libcurl would
...
get confused and not acknowledge the 'no_proxy' variable properly once it
had used the proxy and you re-used the same easy handle. I made sure the
proxy name is properly stored in the connect struct rather than the
sessionhandle/easy struct.
2006-12-22 15:04:59 +00:00
Daniel Stenberg
e4505aefd9
Jared Lundell filed bug report #1604956
...
(http://curl.haxx.se/bug/view.cgi?id=1604956 ) which identified setting
CURLOPT_MAXCONNECTS to zero caused libcurl to SIGSEGV. Starting now, libcurl
will always internally use no less than 1 entry in the connection cache.
2006-12-05 15:36:26 +00:00
Daniel Stenberg
2147284cad
James Housley brought support for SCP transfers
2006-11-02 21:56:40 +00:00
Yang Tse
5df4be1165
Check for USE_WINSOCK instead of WIN32 where the check was done
...
to verify winsock API availability.
2006-10-18 21:05:40 +00:00
Yang Tse
e150150d9f
Remove redundant __CYGWIN__ symbol check
2006-10-11 16:01:16 +00:00
Daniel Stenberg
552b963e6d
Dmitriy Sergeyev provided an example source code that crashed CVS libcurl
...
but that worked nicely in 7.15.5. I converted it into test case 532 and
fixed the problem.
2006-10-04 21:11:08 +00:00
Gisle Vanem
f7ddb39ee1
iconv-data needs to be fully reallocated (to prevent a double-free).
2006-09-09 18:23:29 +00:00
Gisle Vanem
f1ba12607a
Duplicate iconv-data too in curl_easy_duphandle().
2006-09-09 16:36:05 +00:00
Daniel Stenberg
b7eeb6e67f
Major overhaul introducing http pipelining support and shared connection
...
cache within the multi handle.
2006-09-07 21:49:20 +00:00
Gisle Vanem
4f4277d9c7
Simplified #ifdef on WIN32; the statement
...
" !defined(__GNUC__) || defined(__MINGW32__)" implies
CygWin.
2006-09-03 13:52:07 +00:00
Gisle Vanem
c7aae10300
Removed "#ifndef__WATCOMC__". Use "#ifdef HAVE_SYS_TIME_H" instead.
2006-08-30 16:17:06 +00:00
Gisle Vanem
59cf6fd4f0
Watcom lacks <sys/time.h>.
2006-08-29 18:45:55 +00:00
Gisle Vanem
ab486d1e27
Silence iconv() warnings.
2006-07-25 11:35:35 +00:00
Dan Fandrich
c6fc5a1a26
Moved strdup replacement from src/main.c into src/strdup.c so it's available
...
in libcurl as well, if necessary.
2006-07-11 17:02:06 +00:00
Daniel Stenberg
ca319f63ad
Ingmar Runge provided a source snippet that caused a crash. The reason for
...
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-07-07 22:58:06 +00:00
Daniel Stenberg
5a4b43848a
First commit of David McCreedy's EBCDIC and TPF changes.
2006-04-07 21:50:47 +00:00
Daniel Stenberg
87bcb6f377
Karl M added the CURLOPT_CONNECT_ONLY and CURLINFO_LASTSOCKET options that
...
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-02-11 22:35:16 +00:00
Daniel Stenberg
4c35a40858
Bryan Henderson turned the 'initialized' variable for curl_global_init()
...
into a counter, and thus you can now do multiple curl_global_init() and you
are then supposed to do the same amount of calls to curl_global_cleanup().
Bryan also updated the docs accordingly.
2006-01-15 23:55:53 +00:00
Daniel Stenberg
4922904991
Simplified the code within curl_easy_perform() that calls Curl_perform().
...
Pointed out by Bjorn Reese.
2005-07-17 12:44:11 +00:00
Daniel Stenberg
6e61939382
GnuTLS support added. There's now a "generic" SSL layer that we use all over
...
internally, with code provided by sslgen.c. All SSL-layer-specific code is
then written in ssluse.c (for OpenSSL) and gtls.c (for GnuTLS).
As far as possible, internals should not need to know what SSL layer that is
in use. Building with GnuTLS currently makes two test cases fail.
TODO.gnutls contains a few known outstanding issues for the GnuTLS support.
GnuTLS support is enabled with configure --with-gnutls
2005-04-07 15:27:13 +00:00
Daniel Stenberg
ab4086bc24
Updated the copyright year since changes have been this year.
2005-03-31 07:02:02 +00:00
Daniel Stenberg
61a1e3cd01
better error checking and SSL init by David Byron
2005-02-09 23:04:51 +00:00
Daniel Stenberg
91f483c591
Define CURL_MULTIEASY when building this, to use my new curl_easy_perform()
...
that uses the multi interface to run the request. It is a great testbed for
the multi interface and I believe we shall do it this way for real in the
future when we have a successor to curl_multi_fdset().
2005-01-29 22:26:38 +00:00
Daniel Stenberg
e3fa7d021e
Renamed easy.h and multi.h to easyif.h and multiif.h to make sure they don't
...
shadow our public headers with the former names.
2005-01-11 15:25:29 +00:00
Daniel Stenberg
21bb852750
Pavel Orehov reported memory problems with the multi interface in bug report
...
#1098843 . In short, a shared DNS cache was setup for a multi handle and when
the shared cache was deleted before the individual easy handles, the latter
cleanups caused read/writes to already freed memory.
2005-01-10 10:07:07 +00:00
Dan Fandrich
99befd3a15
C ensures that static variables are initialized to 0
2004-12-22 20:12:15 +00:00
Daniel Stenberg
ac269a8f68
Dan Fandrich added the --disable-cookies option to configure to build
...
libcurl without cookie support. This is mainly useful if you want to build a
minimalistic libcurl with no cookies support at all. Like for embedded
systems or similar.
2004-12-05 23:59:32 +00:00
Daniel Stenberg
59c063dfd3
Fix behaviour when passing NULL to CURLOPT_POSTFIELDS and CURLOPT_HTTPPOST.
2004-11-11 23:11:04 +00:00
Daniel Stenberg
24d47a6e07
Paul Nolan fix to make libcurl build nicely on Windows CE
2004-11-02 10:12:22 +00:00
Daniel Stenberg
95def48071
Made the dns entry remain locked while a connection to the host remains to
...
allow verbose output during this period. Bertrand Demiddelaer reported and
helped fixing.
2004-10-04 10:36:51 +00:00
Daniel Stenberg
2576ac1c76
Bertrand Demiddelaer fixed curl_easy_reset() so that it doesn't mistakingly
...
enable the progress meter.
2004-09-28 22:26:47 +00:00
Daniel Stenberg
f508f30fb6
curl_easy_reset() added. Need testing and docs. I also think we should make
...
the initial setting up the struct should use this single function to avoid
having the initialisation code at two places.
2004-07-24 21:31:01 +00:00
Daniel Stenberg
c39858aac0
Source cleanups. The major one being that we now _always_ use a Curl_addrinfo
...
linked list for name resolved data, even on hosts/systems with only IPv4
stacks as this simplifies a lot of code.
2004-06-24 07:43:48 +00:00
Daniel Stenberg
90037b85d1
Alexander Krasnostavsky's fix to make libcurl build fine with configure
...
--disable-http, which thus builds a libcurl without HTTP support.
2004-06-09 08:23:55 +00:00
Daniel Stenberg
de03f172ad
very minor format edit
2004-06-02 14:39:34 +00:00
Daniel Stenberg
dcf7310b2d
fixed curl_easy_duphandle() to properly clean up all memory if any memory
...
function fails and it returns NULL
2004-05-27 07:48:09 +00:00
Daniel Stenberg
594cb8507b
deal with input arguments as NULL
2004-05-13 15:16:10 +00:00
Daniel Stenberg
bbafb2eb27
curl_global_init_mem() allows the memory functions to be replaced.
...
memory.h is included everywhere for this.
2004-05-11 11:30:23 +00:00
Daniel Stenberg
31e9e4bb76
curl_easy_duphandle() works again with ares enabled
2004-04-29 10:58:22 +00:00
Daniel Stenberg
877f16e5a5
IDN: Gisle Vanem made the win32 version handle a missing CHARSET environment
...
and then figure it out with a suitable windows call.
2004-04-27 15:19:28 +00:00
Daniel Stenberg
d02587750c
added function headers and comments
2004-04-26 07:11:06 +00:00
Daniel Stenberg
7ea837a18c
adjusted to the new dns cache function to hide more hostip internals
2004-03-30 13:02:31 +00:00
Daniel Stenberg
256a16a8a3
if the global_init() is called from within curl_easy_init() and returns
...
an error code, we now make curl_easy_init fail and return NULL.
2004-03-15 16:28:36 +00:00
Daniel Stenberg
2479e06848
David Byron's work on making libcurl only require winsock 1.1 on Windows
...
machines.
2004-03-03 13:32:56 +00:00
Daniel Stenberg
b791e158f0
use curl_off_t instead of off_t!
2004-01-22 12:45:50 +00:00
Daniel Stenberg
36f76396ea
Diego Casorran's fixes to allow native AmigaOS builds
2004-01-13 08:35:57 +00:00
Daniel Stenberg
053f6c85ef
updated year in the copyright string
2004-01-07 09:19:33 +00:00
Daniel Stenberg
b60e0fa97e
David J Meyer's large file support.
2004-01-05 22:29:29 +00:00
Daniel Stenberg
b71ca15598
Kimmo Kinnunen fixed a crash with duphandle() when CURLDEBUG was set
2003-10-14 13:10:05 +00:00
Daniel Stenberg
749f5387c1
Gisle Vanem's IPv6-on-Windows patch applied!
2003-10-14 12:00:45 +00:00
Daniel Stenberg
52596c339b
return failure when the host cache creation fails
2003-08-14 15:02:25 +00:00
Daniel Stenberg
96e217b496
the new cookie functions that require 'data' passed in
2003-08-11 09:56:06 +00:00
Daniel Stenberg
41ae97e710
Dirk Manske's patch that introduces cookie support to the share interface.
2003-08-04 15:02:42 +00:00
Daniel Stenberg
f0278ca114
Removed #include <sys/resource.h>, as pointed out by Henry Bland we don't
...
need it.
2003-07-25 08:30:58 +00:00
Daniel Stenberg
8b23db4f4d
Peter Sylvester pointed out that curl_easy_setopt() will always (wrongly)
...
return CURLE_OK no matter what happens.
2003-04-22 21:42:39 +00:00
Daniel Stenberg
a7c72b7abf
removed the local variables for emacs and vim, use the new sample.emacs
...
way for emacs, and vim users should provide a similar non-polluting style
2003-01-29 10:14:20 +00:00
Daniel Stenberg
f26a338a54
copyright year update in the source header
2003-01-16 21:08:12 +00:00
Sterling Hughes
cfb32da198
fix bug (?) :-)
...
previously, if you called curl_easy_perform and then set the global dns
cache, the global cache wouldn't be used. I don't see this really happening
in practice, but this code allows you to do it.
2003-01-06 06:17:15 +00:00
Daniel Stenberg
7df5677b46
fixed Curl_freeaddrinfo() to only free addrinfo, and added Curl_freednsinfo()
...
for freeing single dns cache entries
2002-11-26 09:41:54 +00:00
Daniel Stenberg
ba4e69bebc
updated source code boilerplate/header
2002-09-03 11:52:59 +00:00
Daniel Stenberg
980a47b42b
support for ingoring session cookies added
2002-05-07 09:58:13 +00:00
Daniel Stenberg
8358505b6d
Now uses Curl_ as prefix for internal global symbols. curl_ should only be
...
used for "exported" globals.
2002-04-27 13:07:51 +00:00
Daniel Stenberg
974f314f57
copyright string (year) update
2002-03-19 07:54:55 +00:00
Sterling Hughes
8d7f402efb
Make cach'ing work with threads now, there are now three cases:
...
- Use a global dns cache (via setting the tentatively named,
CURLOPT_DNS_USE_GLOBAL_CACHE option to true)
- Use a per-handle dns cache, by default
- Use a pooled dns cache when in the "multi" interface
2002-01-07 20:52:32 +00:00
Daniel Stenberg
6de7dc5879
Sterling Hughes' provided initial DNS cache source code.
2002-01-03 10:22:59 +00:00
Daniel Stenberg
74d5a6fb3b
curl_easy_duphandle() now properly clones the cookie option
...
- patch by T. Bharath
2001-10-19 11:57:50 +00:00
Sterling Hughes
8e91d5de8e
looks nicer and is better compatible with older vim versions
2001-10-11 09:32:19 +00:00
Daniel Stenberg
e30dcd0501
Linus Nielsen Feltzing's telnet-for-win32 fixes
2001-09-17 14:10:38 +00:00
Daniel Stenberg
07de3c9df0
T. Bharath's patch that sets up a few necessary buffers in the duphandle()
...
function
2001-09-12 07:57:33 +00:00
Sterling Hughes
6147879837
Added formatting sections for emacs and vim
2001-09-07 04:01:32 +00:00
Daniel Stenberg
610ec27d93
first shaky and stumbling attempts at a *_duphandle() function
2001-09-05 07:24:01 +00:00
Daniel Stenberg
0ece1b5c34
Major rename and redesign of the internal "backbone" structs. Details will
...
be posted in a minute to the libcurl list.
2001-08-30 22:48:34 +00:00
Daniel Stenberg
6c2a9009e9
include getinfo.h for Curl_getinfo() proto
2001-08-17 10:19:26 +00:00
Daniel Stenberg
2a6e1ea83c
internal functions should not use 'CURL *' as arguments, I replaced them
...
with the more appropriate 'struct UrlData *' instead.
2001-08-15 06:51:37 +00:00
Daniel Stenberg
e32641d412
Added an empty win32_cleanup for non-windows systems to prevent compiler
...
warnings, changed the Curl_open() call as the second argument was never
used anyway
2001-08-14 08:19:40 +00:00
Sterling Hughes
45037a39aa
Add win32 initialization support to curl_global_init() and
...
curl_global_cleanup(). Update corresponding man pages...
Improve the logic in curl_global_cleanup() and curl_global_init() so that
they are not called twice if the application libraries have been
initialized and make sure to reset the init flags in curl_global_cleanup().
2001-07-12 01:57:28 +00:00
Sterling Hughes
e051f904f2
Test and substance patch.
...
This is my first CVS commit :), what it does:
- Makes sure that parts of the cURL library don't get initialized twice
- Makes sure that we only free what we initialize
2001-05-31 11:30:34 +00:00
Daniel Stenberg
7f295939d0
went back to the version where the flags argument to curl_global_init()
...
specify exactly what global parts to init. Thanks to Sterling Hughes really
for arguing wisely.
2001-05-31 06:06:37 +00:00
Daniel Stenberg
b541537c66
curl_global_init() support for CURL_GLOBAL_NOT_SSL
2001-05-30 08:00:29 +00:00
Daniel Stenberg
bfd89c8078
global_init() takes that flag argument
2001-05-29 07:20:31 +00:00
Daniel Stenberg
d300cf4d84
T. Bharath's comments about SSL cleanup incorporated, and the two new
...
curl_global_* functions
2001-05-28 14:12:43 +00:00
Daniel Stenberg
9cf4434ae2
Modified to use Curl_* functions instead of curl_* ones
2001-03-09 15:10:58 +00:00
Daniel Stenberg
ae0a6835bd
Transfer is now Curl_Tranfer() and transfer.h is used instead of highlevel.h
...
and download.h
2001-01-17 13:23:01 +00:00
Daniel Stenberg
24dee483e9
dual-license fix
2001-01-03 09:29:33 +00:00
Daniel Stenberg
b0274a553b
Added curl_easy_getinfo()
2000-10-02 06:27:43 +00:00
Daniel Stenberg
c9c7fcf411
Stephen Kick's interface fixes
2000-09-18 21:54:08 +00:00
Daniel Stenberg
b6e18f2f66
#include "setup.h" moved first of all includes
2000-08-24 14:26:33 +00:00
Daniel Stenberg
1ef3600a07
haxx.nu => haxx.se
2000-06-20 15:31:26 +00:00