diff --git a/README.md b/README.md
index 5046bbfd..b4803dcd 100644
--- a/README.md
+++ b/README.md
@@ -2,18 +2,20 @@ Natural Selection Visual Studio 2010 Rebuild
============================================
What does work:
-1.) Both DLLs can be compiled
-2.) client.dll is working but needs libpng12.dll in hl folder
+- 1.) Both DLLs can be compiled
+- 2.) client.dll is working but needs libpng12.dll in hl folder
+- 3.) ns.dll is working too thanks to lib-no-sll
-What does not work:
-1.) Sadly the server --> "Host_Error: Couldn't get DLL API from ...ns.dll"
Additional Includes:
-1.) libpng
-2.) zlib
-3.) libcurl
+- 1.) libpng
+- 2.) zlib
+- 3.) libcurl
+To do:
+- fix ns bugs hud,fps...
+- build a linux client
Half Life 1 SDK LICENSE
diff --git a/main/source/Natural_Selection.opensdf b/main/source/Natural_Selection.opensdf
deleted file mode 100644
index aec47377..00000000
Binary files a/main/source/Natural_Selection.opensdf and /dev/null differ
diff --git a/main/source/Natural_Selection.sdf b/main/source/Natural_Selection.sdf
index 438340f2..ae5b4196 100644
Binary files a/main/source/Natural_Selection.sdf and b/main/source/Natural_Selection.sdf differ
diff --git a/main/source/Natural_Selection.sln b/main/source/Natural_Selection.sln
index 27faa16f..ca0d94f5 100644
--- a/main/source/Natural_Selection.sln
+++ b/main/source/Natural_Selection.sln
@@ -1,8 +1,8 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C++ Express 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cl_dll.dll", "cl_dll\cl_dll.vcxproj", "{AC16D18F-1308-80D7-EF83-F84B72CA0A1D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cl_dll.dll", "cl_dll\cl_dll.vcxproj", "{A3AC8049-E5F7-6D5F-47F9-76B45DB1D54A}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ns.dll", "dlls\hl.vcxproj", "{BFD7A4D2-76E7-E0E5-5A77-32A65153CF0D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ns.dll", "dlls\hl.vcxproj", "{B793156F-E439-A5B7-AF1E-E95BAB312F44}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -12,18 +12,18 @@ Global
Playtest|Win32 = Playtest|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {AC16D18F-1308-80D7-EF83-F84B72CA0A1D}.Developer - debug|Win32.ActiveCfg = Developer - debug|Win32
- {AC16D18F-1308-80D7-EF83-F84B72CA0A1D}.Developer - release|Win32.ActiveCfg = Developer - release|Win32
- {AC16D18F-1308-80D7-EF83-F84B72CA0A1D}.Playtest - balance disabled|Win32.ActiveCfg = Playtest - balance disabled|Win32
- {AC16D18F-1308-80D7-EF83-F84B72CA0A1D}.Playtest - balance disabled|Win32.Build.0 = Playtest - balance disabled|Win32
- {AC16D18F-1308-80D7-EF83-F84B72CA0A1D}.Playtest|Win32.ActiveCfg = Playtest|Win32
- {AC16D18F-1308-80D7-EF83-F84B72CA0A1D}.Playtest|Win32.Build.0 = Playtest|Win32
- {BFD7A4D2-76E7-E0E5-5A77-32A65153CF0D}.Developer - debug|Win32.ActiveCfg = Developer - debug|Win32
- {BFD7A4D2-76E7-E0E5-5A77-32A65153CF0D}.Developer - release|Win32.ActiveCfg = Developer - release|Win32
- {BFD7A4D2-76E7-E0E5-5A77-32A65153CF0D}.Playtest - balance disabled|Win32.ActiveCfg = Playtest - balance disabled|Win32
- {BFD7A4D2-76E7-E0E5-5A77-32A65153CF0D}.Playtest - balance disabled|Win32.Build.0 = Playtest - balance disabled|Win32
- {BFD7A4D2-76E7-E0E5-5A77-32A65153CF0D}.Playtest|Win32.ActiveCfg = Playtest|Win32
- {BFD7A4D2-76E7-E0E5-5A77-32A65153CF0D}.Playtest|Win32.Build.0 = Playtest|Win32
+ {A3AC8049-E5F7-6D5F-47F9-76B45DB1D54A}.Developer - debug|Win32.ActiveCfg = Developer - debug|Win32
+ {A3AC8049-E5F7-6D5F-47F9-76B45DB1D54A}.Developer - release|Win32.ActiveCfg = Developer - release|Win32
+ {A3AC8049-E5F7-6D5F-47F9-76B45DB1D54A}.Playtest - balance disabled|Win32.ActiveCfg = Playtest - balance disabled|Win32
+ {A3AC8049-E5F7-6D5F-47F9-76B45DB1D54A}.Playtest - balance disabled|Win32.Build.0 = Playtest - balance disabled|Win32
+ {A3AC8049-E5F7-6D5F-47F9-76B45DB1D54A}.Playtest|Win32.ActiveCfg = Playtest|Win32
+ {A3AC8049-E5F7-6D5F-47F9-76B45DB1D54A}.Playtest|Win32.Build.0 = Playtest|Win32
+ {B793156F-E439-A5B7-AF1E-E95BAB312F44}.Developer - debug|Win32.ActiveCfg = Developer - debug|Win32
+ {B793156F-E439-A5B7-AF1E-E95BAB312F44}.Developer - release|Win32.ActiveCfg = Developer - release|Win32
+ {B793156F-E439-A5B7-AF1E-E95BAB312F44}.Playtest - balance disabled|Win32.ActiveCfg = Playtest - balance disabled|Win32
+ {B793156F-E439-A5B7-AF1E-E95BAB312F44}.Playtest - balance disabled|Win32.Build.0 = Playtest - balance disabled|Win32
+ {B793156F-E439-A5B7-AF1E-E95BAB312F44}.Playtest|Win32.ActiveCfg = Playtest|Win32
+ {B793156F-E439-A5B7-AF1E-E95BAB312F44}.Playtest|Win32.Build.0 = Playtest|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/main/source/Natural_Selection.suo b/main/source/Natural_Selection.suo
index c5ae92c0..1a422aee 100644
Binary files a/main/source/Natural_Selection.suo and b/main/source/Natural_Selection.suo differ
diff --git a/main/source/cl_dll/Playtest/cl_dll.dll.lastbuildstate b/main/source/cl_dll/Playtest/cl_dll.dll.lastbuildstate
new file mode 100644
index 00000000..e2362f57
--- /dev/null
+++ b/main/source/cl_dll/Playtest/cl_dll.dll.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100
+Playtest|Win32|C:\Users\fabian\Documents\projects\NS\main\source\|
diff --git a/main/source/cl_dll/Playtest/cl_dll.exp b/main/source/cl_dll/Playtest/cl_dll.exp
new file mode 100644
index 00000000..ec48560a
Binary files /dev/null and b/main/source/cl_dll/Playtest/cl_dll.exp differ
diff --git a/main/source/cl_dll/Playtest/cl_dll.lib b/main/source/cl_dll/Playtest/cl_dll.lib
new file mode 100644
index 00000000..f62f39ff
Binary files /dev/null and b/main/source/cl_dll/Playtest/cl_dll.lib differ
diff --git a/main/source/cl_dll/Playtest/client.dll.intermediate.manifest b/main/source/cl_dll/Playtest/client.dll.intermediate.manifest
new file mode 100644
index 00000000..ecea6f7f
--- /dev/null
+++ b/main/source/cl_dll/Playtest/client.dll.intermediate.manifest
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/main/source/cl_dll/cl_dll.vcxproj b/main/source/cl_dll/cl_dll.vcxproj
index 700dbfb0..54d30dc1 100644
--- a/main/source/cl_dll/cl_dll.vcxproj
+++ b/main/source/cl_dll/cl_dll.vcxproj
@@ -71,7 +71,7 @@
V:\temp\$(ProjectName)\$(Configuration)\
V:\temp\$(ProjectName)\$(Configuration)\
$(TargetPath)%3b*.obj%3b*.ilk%3b*.pdb%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.bat
- ..\..\..\..\..\..\..\Program Files %28x86%29\Steam\SteamApps\common\Half-Life\ns\cl_dlls
+ ..\..\..\..\..\..\..\..\Program Files %28x86%29\Steam\SteamApps\common\Half-Life\ns\cl_dlls
$(Configuration)\
$(TargetPath)%3b*.obj%3b*.ilk%3b*.pdb%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.bat
$(SolutionDir)$(Configuration)\
@@ -195,7 +195,7 @@
Full
AnySuitable
true
- $(SolutionDir);$(SolutionDir)\particles;$(SolutionDir)\includes\lpng1251;$(SolutionDir)\includes\zlib-1.2.8;$(SolutionDir)\includes\fmod\inc;$(SolutionDir)\..\..\..\halflife\utils\vgui\include
+ $(SolutionDir);$(SolutionDir)\particles;$(SolutionDir)\includes\lpng1251;$(SolutionDir)\includes\zlib-1.2.8;$(SolutionDir)\includes\fmod\inc;C:\Users\fabian\Documents\projects\NS\main\source\includes\vgui\include
NDEBUG;WIN32;_WINDOWS;AVH_CLIENT;USE_OLDAUTH
true
true
@@ -220,7 +220,7 @@
winmm.lib;ws2_32.lib;particles.lib;vgui.lib;zlib.lib;libpng.lib;wsock32.lib;%(AdditionalDependencies)
true
- $(SolutionDir)\..\..\..\halflife\utils\vgui\lib\win32_vc6;$(SolutionDir)\particles\Release;$(SolutionDir)\includes\lpng1251;$(SolutionDir)\includes\zlib-1.2.8;%(AdditionalLibraryDirectories)
+ $(SolutionDir)\particles\Release;$(SolutionDir)\includes\lpng1251;$(SolutionDir)\includes\zlib-1.2.8;$(SolutionDir)\includes\vgui\lib\win32_vc6;%(AdditionalLibraryDirectories)
%(IgnoreSpecificDefaultLibraries)
diff --git a/main/source/dlls/Playtest/ns.dll.intermediate.manifest b/main/source/dlls/Playtest/ns.dll.intermediate.manifest
new file mode 100644
index 00000000..ecea6f7f
--- /dev/null
+++ b/main/source/dlls/Playtest/ns.dll.intermediate.manifest
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/main/source/dlls/Playtest/ns.dll.lastbuildstate b/main/source/dlls/Playtest/ns.dll.lastbuildstate
new file mode 100644
index 00000000..e2362f57
--- /dev/null
+++ b/main/source/dlls/Playtest/ns.dll.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100
+Playtest|Win32|C:\Users\fabian\Documents\projects\NS\main\source\|
diff --git a/main/source/dlls/Playtest/vc100.idb b/main/source/dlls/Playtest/vc100.idb
new file mode 100644
index 00000000..0cd170d9
Binary files /dev/null and b/main/source/dlls/Playtest/vc100.idb differ
diff --git a/main/source/dlls/hl.vcxproj b/main/source/dlls/hl.vcxproj
index ad1ac4fe..ffdc109a 100644
--- a/main/source/dlls/hl.vcxproj
+++ b/main/source/dlls/hl.vcxproj
@@ -34,6 +34,7 @@
DynamicLibrary
false
+ MultiByte
DynamicLibrary
@@ -67,7 +68,7 @@
V:\temp\$(ProjectName)\$(Configuration)\
V:\temp\$(ProjectName)\$(Configuration)\
true
- ..\..\..\..\..\..\..\Program Files %28x86%29\Steam\SteamApps\common\Half-Life\ns\dlls
+ ..\..\..\..\..\..\..\..\Program Files %28x86%29\Steam\SteamApps\common\Half-Life\ns\dlls
$(Configuration)\
false
$(SolutionDir)$(Configuration)\
@@ -183,7 +184,7 @@
Full
AnySuitable
true
- $(SolutionDir);$(SolutionDir)\includes\libcurl-7.19.3\include\curl;$(SolutionDir)\includes\lua\include;$(SolutionDir)\particles\;%(AdditionalIncludeDirectories)
+ $(SolutionDir);$(SolutionDir)\includes\lua\include;$(SolutionDir)\particles\;$(SolutionDir)\includes\vgui\include;$(SolutionDir)\includes\libcurl-7.18-nossl\include\curl;%(AdditionalIncludeDirectories)
NDEBUG;WIN32;_WINDOWS;QUIVER;VOXEL;QUAKE2;VALVE_DLL;AVH_SERVER;AVH_NO_NEXUS;USE_OLDAUTH
true
true
@@ -202,7 +203,7 @@
Default
- winmm.lib;ws2_32.lib;particles.lib;lua5.1.lib;curllib_static.lib;ssleay32.lib;libeay32.lib;openldap.lib;%(AdditionalDependencies)
+ winmm.lib;ws2_32.lib;particles.lib;lua5.1.lib;libcurl.lib;%(AdditionalDependencies)
true
gdi32.lib user32.lib;%(IgnoreSpecificDefaultLibraries)
.\hl.def
@@ -214,7 +215,7 @@
false
false
/NODEFAULTLIB:LIBCMT %(AdditionalOptions)
- $(SolutionDir)\includes\libcurl-7.19.3\lib\Release;$(SolutionDir)\includes\libcurl-7.19.3\;$(SolutionDir)\includes\lua\lib;$(SolutionDir)\particles\Release;%(AdditionalLibraryDirectories)
+ $(SolutionDir)\includes\lua\lib;$(SolutionDir)\particles\Release;$(SolutionDir)\includes\libcurl-7.18-nossl\;$(SolutionDir)\includes\vgui\lib\win32_vc6;%(AdditionalLibraryDirectories)
false
false
diff --git a/main/source/includes/libcurl-7.18-nossl/CHANGES b/main/source/includes/libcurl-7.18-nossl/CHANGES
new file mode 100644
index 00000000..f71f460b
--- /dev/null
+++ b/main/source/includes/libcurl-7.18-nossl/CHANGES
@@ -0,0 +1,1792 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+ Changelog
+
+Version 7.18.0 (28 January 2008)
+
+Daniel S (27 Jan 2008)
+- Dmitry Kurochkin: In "real world" testing I found more bugs in
+ pipelining. Broken connection is not restored and we get into infinite
+ loop. It happens because of wrong is_in_pipeline values.
+
+Daniel S (26 Jan 2008)
+- Kevin Reed filed bug report #1879375
+ (http://curl.haxx.se/bug/view.cgi?id=1879375) which describes how libcurl
+ got lost in this scenario: proxy tunnel (or HTTPS over proxy), ask to do any
+ proxy authentication and the proxy replies with an auth (like NTLM) and then
+ closes the connection after that initial informational response.
+
+ libcurl would not properly re-initialize the connection to the proxy and
+ continue the auth negotiation like supposed. It does now however, as it will
+ now detect if one or more authentication methods were available and asked
+ for, and will thus retry the connection and continue from there.
+
+- I made the progress callback get called properly during proxy CONNECT.
+
+Daniel S (23 Jan 2008)
+- Igor Franchuk pointed out that CURLOPT_COOKIELIST set to "ALL" leaked
+ memory, and so did "SESS". Fixed now.
+
+Yang Tse (22 Jan 2008)
+- Check poll.h at configuration time, and use it when sys/poll.h unavailable
+
+Daniel S (22 Jan 2008)
+- Dmitry Kurochkin removed the cancelled state for pipelining, as we agreed
+ 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...
+
+Yang Tse (21 Jan 2008)
+- Disable ldap support for cygwin builds, since it breaks whole build process.
+ Fixing it will affect other platforms, so it is postponed for another release.
+
+Daniel S (18 Jan 2008)
+- Lau Hang Kin found and fixed a problem with the multi interface when doing
+ CONNECT over a proxy. curl_multi_fdset() didn't report back the socket
+ properly during that state, due to a missing case in the switch in the
+ multi_getsock() function.
+
+Yang Tse (17 Jan 2008)
+- Don't abort tests 518 and 537 when unable to raise the open-file soft limit.
+
+Daniel S (16 Jan 2008)
+- Nathan Coulter's patch that makes runtests.pl respect the PATH when figuring
+ out what valgrind to run.
+
+Yang Tse (16 Jan 2008)
+- Improved handling of out of memory in the command line tool that afected
+ data url encoded HTTP POSTs when reading it from a file.
+
+Daniel S (16 Jan 2008)
+- Dmitry Kurochkin worked a lot on improving the HTTP Pipelining support that
+ 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.
+
+- Calls to Curl_failf() are not supposed to provide a trailing newline as the
+ function itself adds that. Fixed on 50 or something strings!
+
+Daniel S (15 Jan 2008)
+- I made the torture test on test 530 go through. This was actually due to
+ 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.
+
+Daniel S (14 Jan 2008)
+- Joe Malicki filed bug report #1871269
+ (http://curl.haxx.se/bug/view.cgi?id=1871269) and we could fix his hang-
+ problem that occurred when doing a large HTTP POST request with the
+ response-body read from a callback.
+
+Daniel S (12 Jan 2008)
+- I re-arranged the curl --help output. All the options are now sorted on
+ their long option names and all descriptions are one-liners.
+
+- Eric Landes provided the patch (edited by me) that introduces the
+ --keepalive-time to curl to set the keepalive probe interval. I also took
+ the opportunity to rename the recently added no-keep-alive option to
+ no-keepalive to keep a consistent naming and to avoid getting two dashes in
+ these option names. Eric also provided an update to the man page for the new
+ option.
+
+Daniel S (11 Jan 2008)
+- Daniel Egger made CURLOPT_RANGE work on file:// URLs the very same way it
+ already worked for FTP:// URLs.
+
+- I made the curl tool switch from using CURLOPT_IOCTLFUNCTION to now use the
+ spanking new CURLOPT_SEEKFUNCTION simply to take advantage of the improved
+ performance for the upload resume cases where you want to upload the last
+ few bytes of a very large file. To implement this decently, I had to switch
+ the client code for uploading from fopen()/fread() to plain open()/read() so
+ that we can use lseek() to do >32bit seeks (as fseek() doesn't allow that)
+ on systems that offer support for that.
+
+Daniel S (10 Jan 2008)
+- Michal Marek made curl-config --libs not include /usr/lib64 in the output
+ (it already before skipped /usr/lib). /usr/lib64 is the default library
+ directory on many 64bit systems and it's unlikely that anyone would use the
+ path privately on systems where it's not.
+
+- Georg Lippitsch brought CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA to allow
+ 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.
+
+- Nikitinskit Dmitriy filed bug report #1868255
+ (http://curl.haxx.se/bug/view.cgi?id=1868255) with a patch. It identifies
+ and fixes a problem with parsing WWW-Authenticate: headers with additional
+ spaces in the line that the parser wasn't written to deal with.
+
+Daniel S (8 Jan 2008)
+- Introducing curl_easy_pause() and new magic return codes for both the read
+ and the write callbacks that now can make a connection's reading and/or
+ writing get paused.
+
+Daniel S (6 Jan 2008)
+- Jeff Johnson filed bug report #1863171
+ (http://curl.haxx.se/bug/view.cgi?id=1863171) where he pointed out that
+ libcurl's date parser didn't accept a +1300 time zone which actually is used
+ fairly often (like New Zealand's Dailight Savings Time), so I modified the
+ parser to now accept up to and including -1400 to +1400.
+
+Daniel S (5 Jan 2008)
+- Based on further discussion on curl-library, I reverted yesterday's SOCKS5
+ 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.
+
+Daniel S (4 Jan 2008)
+- Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let the
+ 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.
+
+Yang Tse (3 Jan 2008)
+- Modified test harness to allow SCP, SFTP and SOCKS4 tests to run with
+ OpenSSH 2.9.9, SunSSH 1.0 or later versions. SOCKS5 tests need OpenSSH
+ 3.7, SunSSH 1.0 or later.
+
+Daniel S (2 Jan 2008)
+- I fixed two cases of missing return code checks when handling chunked
+ decoding where a write error (or abort return from a callback) didn't stop
+ libcurl's processing.
+
+- I removed the socklen_t use from the public curl/curl.h header and instead
+ made it an unsigned int. The type was only used in the curl_sockaddr struct
+ definition (only used by the curl_opensocket_callback). On all platforms I
+ could find information about, socklen_t is 32 unsigned bits large so I don't
+ think this will break the API or ABI. The main reason for this change is of
+ course for all the platforms that don't have a socklen_t definition in their
+ headers to build fine again. Providing our own configure magic and custom
+ definition of socklen_t on those systems proved to work but was a lot of
+ cruft, code and extra magic needed - when this very small change of type
+ seems harmless and still solves the missing socklen_t problem.
+
+- Richard Atterer brought a patch that added support for SOCKS4a proxies,
+ which 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.
+
+Daniel S (1 Jan 2008)
+- Mohun Biswas pointed out that --libcurl generated a source code with an int
+ function but without a return statement. While fixing that, I also took care
+ about adding some better comments for the generated code.
+
+Daniel S (27 Dec 2007)
+- Dmitry Kurochkin mentioned a flaw
+ (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.
+
+Daniel S (26 Dec 2007)
+- In an attempt to repeat the problem in bug report #1850730
+ (http://curl.haxx.se/bug/view.cgi?id=1850730) I wrote up test case 552. The
+ test is doing a 70K POST with a read callback and an ioctl callback over a
+ proxy requiring Digest auth. The test case code is more or less identical to
+ the test recipe code provided by Spacen Jasset (who submitted the bug
+ report).
+
+Daniel S (25 Dec 2007)
+- Gary Maxwell filed bug report #1856628
+ (http://curl.haxx.se/bug/view.cgi?id=1856628) and provided a fix for the
+ (small) memory leak in the SSL session ID caching code. It happened when a
+ previous entry in the cache was re-used.
+
+Daniel Fandrich (19 Dec 2007)
+- Ensure that nroff doesn't put anything but ASCII characters into the
+ --manual text.
+
+Yang Tse (18 Dec 2007)
+- MSVC 9.0 (VS2008) does not support Windows build targets prior to WinXP,
+ and makes wrong asumptions of build target when it isn't specified. So,
+ if no build target has been defined we will target WinXP when building
+ curl/libcurl with MSVC 9.0 (VS2008).
+
+- (http://curl.haxx.se/mail/archive-2007-12/0039.html) reported and fixed
+ a file truncation problem on Windows build targets triggered when retrying
+ a download with curl.
+
+Daniel S (17 Dec 2007)
+- Mateusz Loskot pointed out that MSVC 9.0 (VS2008) has the pollfd struct and
+ defines in winsock2.h somehow differently than previous versions and that
+ curl 7.17.1 would fail to compile out of the box.
+
+Daniel S (13 Dec 2007)
+- David Wright filed bug report #1849764
+ (http://curl.haxx.se/bug/view.cgi?id=1849764) with an included fix. He
+ identified a problem for re-used connections that previously had sent
+ Expect: 100-continue and in some situations the subsequent POST (that didn't
+ use Expect:) still had the internal flag set for its use. David's fix (that
+ makes the setting of the flag in every single request unconditionally) is
+ fine and is now used!
+
+Daniel S (12 Dec 2007)
+- Gilles Blanc made the curl tool enable SO_KEEPALIVE for the connections and
+ added the --no-keep-alive option that can disable that on demand.
+
+Daniel S (9 Dec 2007)
+- Andrew Moise filed bug report #1847501
+ (http://curl.haxx.se/bug/view.cgi?id=1847501) and pointed out a memcpy()
+ that should be memmove() in the convert_lineends() function.
+
+Daniel S (8 Dec 2007)
+- Renamed all internal static functions that had Curl_ prefixes to no longer
+ have them. The Curl_ prefix is exclusively used for library internal global
+ symbols. Static functions can be named anything, except for using Curl_ or
+ curl_ prefixes. This is for consistency and for easier maintainance and
+ overview.
+
+- Cleaned up and reformatted the TODO document to look like the FAQ and
+ CONTRIBUTE, which makes nicer web pages
+
+- Added test cases 549 and 550 that test CURLOPT_PROXY_TRANSFER_MODE.
+
+- Added keywords on a bunch of test cases
+
+- Fixed an OOM problem in the curl code that would lead to fclose on a bad
+ handle and crash
+
+Daniel S (5 Dec 2007)
+- Spacen Jasset reported a problem with doing POST (with data read with a
+ callback) over a proxy when NTLM is used as auth with the proxy. The bug
+ also concerned Digest and was limited to using callback only. Spacen worked
+ with us to provide a useful patch. I added the test case 547 and 548 to
+ verify two variations of POST over proxy with NTLM.
+
+Daniel S (3 Dec 2007)
+- Ray Pekowski filed bug report #1842029
+ (http://curl.haxx.se/bug/view.cgi?id=1842029) in which he identified a
+ problem with SSL session caching that prevent it from working, and provided
+ the associated fix!
+
+- Now libcurl (built with OpenSSL) doesn't return error anymore if the remote
+ SSL-based server doesn't present a certificate when the request is told to
+ ignore certificate verification anyway.
+
+- Michal Marek introduced CURLOPT_PROXY_TRANSFER_MODE which is used to control
+ 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!
+
+Daniel S (29 Nov 2007)
+- A bug report on the curl-library list showed a HTTP Digest session going on
+ with a 700+ letter nonce. Previously libcurl only support 127 letter ones
+ and now I bumped it to 1023.
+
+- Fixed the resumed FTP upload loop to not require that the read callback
+ returns a full buffer on each invoke.
+
+Daniel S (25 Nov 2007)
+- Added test case 1015 that tests --data-urlencode in multiple ways
+
+- Fixed --data-urlencode for when no @ or = are used
+
+- Extended the user-agent buffer curl uses, since we can hit the 128 byte
+ border with plenty development libraries used. Like my current set: "curl
+ 7.17.2-CVS (i686-pc-linux-gnu) libcurl/7.17.2-CVS OpenSSL/0.9.8g
+ zlib/1.2.3.3 c-ares/1.5.2-CVS libidn/1.1 libssh2/0.19.0-CVS"
+
+Daniel S (24 Nov 2007)
+- Internal rearrangements, so that the previous struct HandleData is no more.
+ It is now known as SingleRequest and the Curl_transfer_keeper struct within
+ that was remove entirely. This has the upside that there are less duplicate
+ struct members that made it hard to see and remember what struct that was
+ used to store what data. The transfer_keeper thing was once stored on a
+ per-connection basis and then it made sense to have the duplicate info but
+ since it was moved to the SessionHandle (in 7.16.0) it just added weirdness.
+ The SingleRequest struct is used by data that only is valid for this single
+ request.
+
+Yang Tse (22 Nov 2007)
+- Provide a socklen_t definition in curl.h for Win32 API build targets
+ which don't have one.
+
+Daniel S (22 Nov 2007)
+- Alessandro Vesely helped me improve the --data-urlencode's syntax, parser
+ and documentation.
+
+Daniel S (21 Nov 2007)
+- While inspecting the Negotiate code, I noticed how the proxy auth was using
+ the same state struct as the host auth, so both could never be used at the
+ same time! I fixed it (without being able to check) to use two separate
+ structs to allow authentication using Negotiate on host and proxy
+ simultaneously.
+
+Daniel S (20 Nov 2007)
+- Emil Romanus pointed out a bug that made an easy handle get the cookie
+ engine activated when set to use a share (even if the share doesn't share
+ cookies). I fixed it.
+
+- Fixed a very long-lasting mprintf() bug that occurred when we did "%.*s%s",
+ since the second %s would then wrongly used the numerical precision argument
+ instead and crash.
+
+- Introduced --data-urlencode to the curl tool for easier url encoding of the
+ data sent in a post.
+
+Daniel S (18 Nov 2007)
+- Rob Crittenden fixed SSL connections with NSS done with the multi-interface
+
+Daniel S (17 Nov 2007)
+- Michal Marek made the test suite remember what test servers that fail to
+ start so that subsequent tries are simply skipped.
+
+- Andres Garcia made the examples build fine on Windows (mingw + msys) when
+ the lib was built staticly.
+
+Daniel S (16 Nov 2007)
+- Ates Goral identified a problem in http.c:add_buffer_send() when a debug
+ callback was used, as it could wrongly pass on a bad size for the outgoing
+ HTTP header. The bad size would be a very large value as it was a wrapped
+ size_t content. This happened when the whole HTTP request failed to get sent
+ in one single send. http://curl.haxx.se/mail/lib-2007-11/0165.html
+
+Daniel S (15 Nov 2007)
+- Fixed yet another remaining problem with doing SFTP directory listings on a
+ re-used persistent connection. Mentioned by Immanuel Gregoire on the mailing
+ list.
+
+- Michal Marek fixed the test suite to better deal with the case when the HTTP
+ ipv6 server can't run.
+
+Yang Tse (14 Nov 2007)
+- Fix a variable potential wrapping in add_buffer() when using absolutely
+ huge send buffer sizes.
+
+Daniel S (13 Nov 2007)
+- Fixed a remaining problem with doing SFTP directory listings on a re-used
+ persistent connection. Mentioned by Immanuel Gregoire on the mailing list.
+
+Daniel S (12 Nov 2007)
+- Bug report #1830637 (http://curl.haxx.se/bug/view.cgi?id=1830637), which was
+ 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.
+
+Yang Tse (10 Nov 2007)
+- Vikram Saxena (http://curl.haxx.se/mail/lib-2007-11/0096.html) pointed out
+ that the pollfd struct was being multi defined when using VS2008. This is
+ now fixed in /curl/lib/select.h
+
+Daniel S (8 Nov 2007)
+- Bug report #1823487 (http://curl.haxx.se/bug/view.cgi?id=1823487) pointed
+ out that SFTP requests didn't use persistent connections. Neither did SCP
+ ones. I gave the SSH code a good beating and now both SCP and SFTP should
+ use persistent connections fine. I also did a bunch of indent changes as
+ well as a bug fix for the "keyboard interactive" auth.
+
+Dan F (6 Nov 2007)
+- Improved telnet support by drastically reducing the number of write
+ callbacks needed to pass a buffer to the user. Instead one per byte it
+ is now as little as one per segment.
+
+Yang Tse (6 Nov 2007)
+- Bug report #1824894 (http://curl.haxx.se/bug/view.cgi?id=1824894) pointed
+ out a problem in curl.h when building C++ apps with MSVC. To fix it, the
+ inclusion of header files in curl.h is moved outside of the C++ extern "C"
+ linkage block.
+
+Daniel S (1 Nov 2007)
+- Toby Peterson patched a memory problem in the command line tool that
+ happened when a user had a home dir as an empty string. curl would then do
+ free() on a wrong area.
+
+Dan F (1 Nov 2007)
+- Fixed curl-config --features to not display libz when it wasn't used
+ due to a missing header file.
+
+Dan F (31 October 2007)
+- Fixed the output of curl-config --protocols which showed SCP and SFTP
+ always, except when --without-libssh2 was given
+
+- Added test cases 1013 and 1014 to check that curl-config --protocols and
+ curl-config --features matches the output of curl --version
+
+Dan F (30 October 2007)
+- Fixed an OOM problem with file: URLs
+
+- Moved Curl_file_connect into the protocol handler struct
+
+Dan F (29 October 2007)
+- Added test case 546 to check that subsequent FTP transfers work after a
+ failed one using the multi interface
+
+Daniel S (29 October 2007)
+- Based on one of those bug reports that are intercepted by a distro's bug
+ tracker (https://bugzilla.redhat.com/show_bug.cgi?id=316191), I now made
+ curl-config --features and --protocols show the correct output when built
+ with NSS.
+
+Version 7.17.1 (29 October 2007)
+
+Dan F (25 October 2007)
+- Added the --static-libs option to curl-config
+
+Daniel S (25 October 2007)
+- Made libcurl built with NSS possible to ignore the peer verification.
+ Previously it would fail if the ca bundle wasn't present, even if the code
+ ignored the verification results.
+
+Patrick M (25 October 2007)
+- Fixed test server to allow null bytes in binary posts.
+_ Added tests 35, 544 & 545 to check binary data posts, both static (in place)
+ and dynamic (copied).
+
+Daniel S (25 October 2007)
+- Michal Marek fixed the test script to be able to use valgrind even when the
+ lib is built shared with libtool.
+
+- Fixed a few memory leaks when the same easy handle is re-used to request
+ URLs with different protocols. FTP and TFTP related leaks. Caught thanks to
+ Dan F's new test cases.
+
+Dan F (24 October 2007)
+- Fixed the test FTP and TFTP servers to support the >10000 test number
+ notation
+
+- Added test cases 2000 through 2003 which test multiple protocols using the
+ same easy handle
+
+- Fixed the filecheck: make target to work outside the source tree
+
+Daniel S (24 October 2007)
+- Vladimir Lazarenko pointed out that we should do some 'mt' magic when
+ building with VC8 to get the "manifest" embedded to make fine stand-alone
+ binaries. The maketgz and the src/Makefile.vc6 files were adjusted
+ accordingly.
+
+Daniel S (23 October 2007)
+- Bug report #1812190 (http://curl.haxx.se/bug/view.cgi?id=1812190) points out
+ that libcurl tried to re-use connections a bit too much when using non-SSL
+ protocols tunneled over a HTTP proxy.
+
+Daniel S (22 October 2007)
+- Michal Marek forwarded the bug report
+ 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).
+
+ A long-term goal is of course to somehow get rid of how the reqdata struct
+ is used, as it is too error-prone.
+
+- Bug report #1815530 (http://curl.haxx.se/bug/view.cgi?id=1815530) points out
+ that specifying a proxy with a trailing slash didn't work (unless it also
+ contained a port number).
+
+Patrick M (15 October 2007)
+- Fixed the dynamic CURLOPT_POSTFIELDS problem: this option is now static again
+ and option CURLOPT_COPYPOSTFIELDS has been added to support dynamic mode.
+
+Patrick M (12 October 2007)
+- Added per-protocol callback static tables, replacing callback ptr storage
+ in the connectdata structure by a single handler table ptr.
+
+Dan F (11 October 2007)
+- Fixed the -l option of runtests.pl
+
+- Added support for skipping tests based on key words.
+
+Daniel S (9 October 2007)
+- Michal Marek removed the no longer existing return codes from the curl.1
+ man page.
+
+Daniel S (7 October 2007)
+- Known bug #47, which confused libcurl if doing NTLM auth over a proxy with
+ a response that was larger than 16KB is now improved slightly so that now
+ the restriction at 16KB is for the headers only and it should be a rare
+ situation where the response-headers exceed 16KB. Thus, I consider #47 fixed
+ and the header limitation is now known as known bug #48.
+
+Daniel S (5 October 2007)
+- Michael Wallner made the CULROPT_COOKIELIST option support a new magic
+ string: "FLUSH". Using that will cause libcurl to flush its cookies to the
+ CURLOPT_COOKIEJAR file.
+
+- The new file docs/libcurl/ABI describes how we view ABI breakages, soname
+ bumps and what the version number's significance to all that is.
+
+Daniel S (4 October 2007)
+- I enabled test 1009 and made the --local-port use a wide range to reduce the
+ risk of failures.
+
+- Kim Rinnewitz reported that --local-port didn't work with TFTP transfers.
+ This happened because the tftp code always uncondionally did a bind()
+ without caring if one already had been done and then it failed. I wrote a
+ test case (1009) to verify this, but it is a bit error-prone since it will
+ have to pick a fixed local port number and since the tests are run on so
+ many different hosts in different situations I'll add it in disabled state.
+
+Yang Tse (3 October 2007)
+- Fixed issue related with the use of ares_timeout() result.
+
+Daniel S (3 October 2007)
+- Alexey Pesternikov introduced CURLOPT_OPENSOCKETFUNCTION and
+ 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 renamed the CURLE_SSL_PEER_CERTIFICATE error code to
+ CURLE_PEER_FAILED_VERIFICATION (standard CURL_NO_OLDIES style), and made
+ this return code get used by the previous SSH MD5 fingerprint check in case
+ it fails.
+
+- Based on a patch brought by Johnny Luong, libcurl now offers
+ 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.
+
+Daniel S (2 October 2007)
+- libcurl now handles chunked-encoded CONNECT responses
+
+Daniel S (1 October 2007)
+- Alex Fishman reported a curl_easy_escape() problem that was made the
+ function do wrong on all input bytes that are >= 0x80 (decimal 128) due to a
+ signed / unsigned mistake in the code. I fixed it and added test case 543 to
+ verify.
+
+Daniel S (29 September 2007)
+- Immanuel Gregoire fixed a problem with persistent transfers over SFTP.
+
+Daniel S (28 September 2007)
+- Adapted the c-ares code to the API change c-ares 1.5.0 brings in the
+ notifier callback(s).
+
+Dan F (26 September 2007)
+- Enabled a few more gcc warnings with --enable-debug. Renamed a few
+ variables to avoid shadowing global declarations.
+
+Daniel S (26 September 2007)
+- Philip Langdale provided the new CURLOPT_POST301 option for
+ 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.
+
+- Max Katsev reported that when doing a libcurl FTP request with
+ CURLOPT_NOBODY enabled but not CURLOPT_HEADER, libcurl wouldn't do TYPE
+ before it does SIZE which makes it less useful. I walked over the code and
+ made it do this properly, and added test case 542 to verify it.
+
+Daniel S (24 September 2007)
+- Immanuel Gregoire fixed KNOWN_BUGS #44: --ftp-method nocwd did not handle
+ URLs ending with a slash properly (it should list the contents of that
+ directory). Test case 351 brought back and also test 1010 was added.
+
+Daniel S (21 September 2007)
+- Mark Davies fixed Negotiate authentication over proxy, and also introduced
+ the --proxy-negotiate command line option to allow a user to explicitly
+ select it.
+
+Daniel S (19 September 2007)
+- Rob Crittenden provided an NSS update with the following highlights:
+
+ o It looks for the NSS database first in the environment variable SSL_DIR,
+ then in /etc/pki/nssdb, then it initializes with no database if neither of
+ those exist.
+
+ o If the NSS PKCS#11 libnspsem.so driver is available then PEM files may be
+ loaded, including the ca-bundle. If it is not available then only
+ certificates already in the NSS database are used.
+
+ o Tries to detect whether a file or nickname is being passed in so the right
+ thing is done
+
+ o Added a bit of code to make the output more like the OpenSSL module,
+ including displaying the certificate information when connecting in
+ verbose mode
+
+ o Improved handling of certificate errors (expired, untrusted, etc)
+
+ The libnsspem.so PKCS#11 module is currently only available in Fedora
+ 8/rawhide. Work will be done soon to upstream it. The NSS module will work
+ with or without it, all that changes is the source of the certificates and
+ keys.
+
+Daniel S (18 September 2007)
+- Immanuel Gregoire pointed out that public key SSH auth failed if no
+ public/private key was specified and there was no HOME environment variable,
+ and then it didn't continue to try the other auth methods. Now it will
+ instead try to get the files id_dsa.pub and id_dsa from the current
+ directory if none of the two conditions were met.
+
+Dan F (17 September 2007)
+- Added hooks to the test suite to make it possible to test a curl running
+ on a remote host.
+
+- Changed some FTP tests to validate the format of the PORT and EPRT commands
+ sent by curl, if not the addresses themselves.
+
+Daniel S (15 September 2007)
+- Michal Marek made libcurl automatically append ";type=" when using HTTP
+ proxies for FTP urls.
+
+- Günter Knauf fixed LDAP builds in the Windows makefiles and fixed LDAPv3
+ support on Windows.
+
+Dan F (13 September 2007)
+- Added LDAPS, SCP and SFTP to curl-config --protocols. Removed and
+ fixed some AC_SUBST configure entries.
+
+Version 7.17.0 (13 September 2007)
+
+Daniel S (12 September 2007)
+- Bug report #1792649 (http://curl.haxx.se/bug/view.cgi?id=1792649) pointed
+ out a problem with doing an empty upload over FTP on a re-used connection.
+ I added test case 541 to reproduce it and to verify the fix.
+
+- I noticed while writing test 541 that the FTP code wrongly did a CWD on the
+ second transfer as it didn't store and remember the "" path from the
+ previous transfer so it would instead CWD to the entry path as stored. This
+ worked, but did a superfluous command. Thus, test case 541 now also verifies
+ this fix.
+
+Dan F (5 September 2007)
+- Added test case 1007 to test permission problem when uploading with TFTP
+ (to validate bug #1790403).
+
+- TFTP now reports the "not defined" TFTP error code 0 as an error,
+ not success.
+
+Daniel S (5 September 2007)
+- Continued the work on a fix for #1779054
+ (http://curl.haxx.se/bug/view.cgi?id=1779054). My previous fix from August
+ 24 was not complete (either) but could accidentally "forget" parts of a
+ server response which led to faulty server response time-out errors.
+
+Dan F (5 September 2007)
+- Minix doesn't support getsockopt on UDP sockets or send/recv on TCP
+ sockets.
+
+Dan F (31 August 2007)
+- Made some of the error strings returned by the *strerror functions more
+ generic, and more consistent with each other.
+
+- Renamed the curl_ftpssl enum to curl_usessl and its enumerated constants,
+ creating macros for backward compatibility:
+
+ CURLFTPSSL_NONE => CURLUSESSL_NONE
+ CURLFTPSSL_TRY => CURLUSESSL_TRY
+ CURLFTPSSL_CONTROL => CURLUSESSL_CONTROL
+ CURLFTPSSL_ALL => CURLUSESSL_ALL
+ CURLFTPSSL_LAST => CURLUSESSL_LAST
+
+Dan F (30 August 2007)
+- Renamed several libcurl error codes and options to make them more general
+ and allow reuse by multiple protocols. Several unused error codes were
+ removed. In all cases, macros were added to preserve source (and binary)
+ compatibility with the old names. These macros are subject to removal at
+ a future date, but probably not before 2009. An application can be
+ tested to see if it is using any obsolete code by compiling it with the
+ CURL_NO_OLDIES macro defined.
+
+ The following unused error codes were removed:
+
+ CURLE_BAD_CALLING_ORDER
+ CURLE_BAD_PASSWORD_ENTERED
+ CURLE_FTP_CANT_RECONNECT
+ CURLE_FTP_COULDNT_GET_SIZE
+ CURLE_FTP_COULDNT_SET_ASCII
+ CURLE_FTP_USER_PASSWORD_INCORRECT
+ CURLE_FTP_WEIRD_USER_REPLY
+ CURLE_FTP_WRITE_ERROR
+ CURLE_LIBRARY_NOT_FOUND
+ CURLE_MALFORMAT_USER
+ CURLE_OBSOLETE
+ CURLE_SHARE_IN_USE
+ CURLE_URL_MALFORMAT_USER
+
+ The following error codes were renamed:
+
+ CURLE_FTP_ACCESS_DENIED => CURLE_REMOTE_ACCESS_DENIED
+ CURLE_FTP_COULDNT_SET_BINARY => CURLE_FTP_COULDNT_SET_TYPE
+ CURLE_FTP_SSL_FAILED => CURLE_USE_SSL_FAILED
+ CURLE_FTP_QUOTE_ERROR => CURLE_QUOTE_ERROR
+ CURLE_TFTP_DISKFULL => CURLE_REMOTE_DISK_FULL
+ CURLE_TFTP_EXISTS => CURLE_REMOTE_FILE_EXISTS
+ CURLE_HTTP_RANGE_ERROR => CURLE_RANGE_ERROR
+
+ The following options were renamed:
+
+ CURLOPT_SSLKEYPASSWD => CURLOPT_KEYPASSWD
+ CURLOPT_FTPAPPEND => CURLOPT_APPEND
+ CURLOPT_FTPLISTONLY => CURLOPT_DIRLISTONLY
+ CURLOPT_FTP_SSL => CURLOPT_USE_SSL
+
+ A few more changes will take place with the next SONAME bump of the
+ library. These are documented in docs/TODO
+
+- Documented some newer error codes in libcurl-error(3)
+
+- Added more accurate error code returns from SFTP operations. Added test
+ case 615 to test an SFTP upload failure.
+
+Dan F (28 August 2007)
+- Some minor internal type and const changes based on a splint scan.
+
+Daniel S (24 August 2007)
+- Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed
+ out that libcurl didn't deal with large responses from server commands, when
+ the single response was consisting of multiple lines but of a total size of
+ 16KB or more. Dan Fandrich improved the ftp test script and provided test
+ case 1006 to repeat the problem, and I fixed the code to make sure this new
+ test case runs fine.
+
+Patrick M (23 August 2007)
+- OS/400 port: new files lib/config-os400.h lib/setup-os400.h packages/OS400/*.
+ See packages/OS400/README.OS400.
+
+Daniel S (23 August 2007)
+- Bug report #1779751 (http://curl.haxx.se/bug/view.cgi?id=1779751) pointed
+ out that doing first a file:// upload and then an FTP upload crashed libcurl
+ or at best caused furious valgrind complaints. Fixed now!
+
+Daniel S (22 August 2007)
+- Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed
+ out that libcurl didn't deal with very long (>16K) FTP server response lines
+ properly. Starting now, libcurl will chop them off (thus the client app will
+ not get the full line) but survive and deal with them fine otherwise. Test
+ case 1003 was added to verify this.
+
+Daniel S (20 August 2007)
+- Based on a patch by Christian Vogt, the FTP code now sets the upcoming
+ download transfer size much earlier to be possible to get read with
+ CURLINFO_CONTENT_LENGTH_DOWNLOAD as soon as possible. This is very much in a
+ similar spirit to the HTTP size change from August 11 2007.
+
+Daniel S (18 August 2007)
+- Robson Braga Araujo filed bug report #1776232
+ (http://curl.haxx.se/bug/view.cgi?id=1776232) about libcurl calling
+ Curl_client_write(), passing on a const string that the caller may not
+ modify and yet it does (on some platforms).
+
+- Robson Braga Araujo filed bug report #1776235
+ (http://curl.haxx.se/bug/view.cgi?id=1776235) about ftp requests with NOBODY
+ on a directory would do a "SIZE (null)" request. This is now fixed and test
+ case 1000 was added to verify.
+
+Daniel S (17 August 2007)
+- Song Ma provided a patch that cures a problem libcurl has when doing resume
+ HTTP PUT using Digest authentication. Test case 5320 and 5322 were also
+ added to verify the functionality.
+
+Daniel S (14 August 2007)
+- Andrew Wansink provided an NTLM bugfix: in the case the server sets the flag
+ NTLMFLAG_NEGOTIATE_UNICODE, we need to filter it off because libcurl doesn't
+ UNICODE encode the strings it packs into the NTLM authenticate packet.
+
+Daniel S (11 August 2007)
+- Allen Pulsifer provided a patch that makes libcurl set the expected download
+ size earlier when doing HTTP downloads, so that applications and the
+ progress meter etc know get the info earlier in the flow than before.
+
+- Patrick Monnerat modified the LDAP code and approach in curl. Starting now,
+ the configure script checks for openldap and friends and we link with those
+ libs just like we link all other third party libraries, and we no longer
+ dlopen() those libraries. Our private header file lib/ldap.h was renamed to
+ lib/curl_ldap.h due to this. I set a tag in CVS (curl-7_17_0-preldapfix)
+ just before this commit, just in case.
+
+Dan F (8 August 2007)
+- Song Ma noted a zlib memory leak in the illegal compressed header
+ countermeasures code path.
+
+Daniel S (4 August 2007)
+- Patrick Monnerat fixed curl_easy_escape() and curlx_strtoll() to work on
+ non-ASCII systems.
+
+Daniel S (3 August 2007)
+- I cut out support for libssh2 versions older than 0.16 to make our code a
+ lot simpler, and to avoid getting trouble with the LIBSSH2_APINO define
+ that 1) didn't work properly since it was >32 bits and 2) is removed in
+ libssh2 0.16...
+
+Daniel S (2 August 2007)
+- Scott Cantor filed bug report #1766320
+ (http://curl.haxx.se/bug/view.cgi?id=1766320) pointing out that the libcurl
+ code accessed two curl_easy_setopt() options (CURLOPT_DNS_CACHE_TIMEOUT and
+ CURLOPT_DNS_USE_GLOBAL_CACHE) as ints even though they're documented to be
+ passed in as longs, and that makes a difference on 64 bit architectures.
+
+- Dmitriy Sergeyev reported a regression: resumed file:// transfers broke
+ after 7.16.2. This is much due to the different treatment file:// gets
+ internally, but now I added test 231 to make it less likely to happen again
+ without us noticing!
+
+Daniel S (1 August 2007)
+- Patrick Monnerat and I modified libcurl so that now it *copies* all strings
+ passed to it with curl_easy_setopt()! Previously it has always just refered
+ to the data, forcing the user to keep the data around until libcurl is done
+ with it. That is now history and libcurl will instead clone the given
+ strings and keep private copies. This is also part of Patrick Monnerat's
+ OS/400 port.
+
+ Due to this being a somewhat interesting change API wise, I've decided to
+ bump the version of the upcoming release to 7.17.0. Older applications will
+ of course not notice this change nor do they have to care, but new
+ applications can be written to take advantage of this.
+
+- Greg Morse reported a problem with POSTing using ANYAUTH to a server
+ requiring NTLM, and he provided test code and a test server and we worked
+ out a bug fix. We failed to count sent body data at times, which then caused
+ internal confusions when libcurl tried to send the rest of the data in order
+ to maintain the same connection alive.
+
+Daniel S (31 July 2007)
+- Peter O'Gorman pointed out (and fixed) that the non-blocking check in
+ configure made libcurl use blocking sockets on AIX 4 and 5, while that
+ wasn't the intention.
+
+Daniel S (29 July 2007)
+- Jayesh A Shah filed bug report #1759542
+ (http://curl.haxx.se/bug/view.cgi?id=1759542) identifying a rather serious
+ problem with FTPS: libcurl closed the data connection socket and then later
+ in the flow it would call the SSL layer to do SSL shutdown which then would
+ use a socket that had already been closed - so if the application had opened
+ a new one in the mean time, libcurl could send gibberish that way! I worked
+ with Greg Zavertnik to properly diagnose and fix this. The fix affects code
+ for all SSL libraries we support, but it has only been truly verified to
+ work fine for the OpenSSL version. The others have only been code reviewed.
+
+Daniel S (23 July 2007)
+- Implemented the parts of Patrick Monnerat's OS/400 patch that introduces
+ support for the OS/400 Secure Sockets Layer library.
+
+Dan F (23 July 2007)
+- Implemented only the parts of Patrick Monnerat's OS/400 patch that renamed
+ some few internal identifiers to avoid conflicts, which could be useful on
+ other platforms.
+
+Daniel S (22 July 2007)
+- HTTP Digest bug fix by Chris Flerackers:
+
+ Scenario
+
+ - Perfoming a POST request with body
+ - With authentication (only Digest)
+ - Re-using a connection
+
+ libcurl would send a HTTP POST with an Authorization header but without
+ body. Our server would return 400 Bad Request in that case (because
+ authentication passed, but the body was empty).
+
+ Cause
+
+ 1) http_digest.c -> Curl_output_digest
+ - Updates allocptr.userpwd/allocptr.proxyuserpwd *only* if d->nonce is
+ filled in (and no errors)
+ - authp->done = TRUE if d->nonce is filled in
+ 2) http.c -> Curl_http
+ - *Always* uses allocptr.userpwd/allocptr.proxyuserpwd if not NULL
+ 3) http.c -> Curl_http, Curl_http_output_auth
+
+ So what happens is that Curl_output_digest cannot yet update the
+ Authorization header (allocptr.userpwd) which results in authhost->done=0 ->
+ authhost->multi=1 -> conn->bits.authneg = TRUE. The body is not
+ added. *However*, allocptr.userpwd is still used when building the request
+
+- Added test case 354 that makes a simple FTP retrieval without password, which
+ verifies the bug fix in #1757328.
+
+Daniel S (21 July 2007)
+- To allow more flexibility in FTP test cases, I've removed the enforced states
+ from the test server code as they served no real purpose. The test server
+ is here to serve for the test cases, not to attempt to function as a real
+ server! While at it, I modified test case 141 to better test and verify
+ curl -I on a single FTP file.
+
+Daniel S (20 July 2007)
+- James Housley fixed the SFTP PWD command to work.
+
+- Ralf S. Engelschall filed bug report #1757328
+ (http://curl.haxx.se/bug/view.cgi?id=1757328) and submitted a patch. It
+ turns out we broke login to FTP servers that don't require (nor understand)
+ PASS after the USER command. The breakage was done as part of the krb5
+ commit so a krb-using person needs to verify that the current version now
+ works or if we need to fix it (in a different way of course).
+
+Dan F (17 July 2007)
+- Fixed test cases 613 and 614 by improving the log postprocessor to handle
+ a new directory listing format that newer libssh2's can provide. This
+ is probably NOT sufficient to handle all directory listing formats that
+ server's can provide, and should be revisited.
+
+Daniel S (17 July 2007)
+- Daniel Johnson fixed a bug in how libssh2_session_last_error() was used, in
+ two places.
+
+- Jofell Gallardo posted a libcurl log using FTP that exposed a bug which made
+ a control connection that was deemed "dead" to yet be re-used in a following
+ request.
+
+Daniel S (13 July 2007)
+- Colin Hogben filed bug report #1750274
+ (http://curl.haxx.se/bug/view.cgi?id=1750274) and submitted a patch for the
+ case where libcurl did a connect attempt to a non-listening port and didn't
+ provide a human readable error string back.
+
+- Daniel Cater fixes:
+ 1 - made 'make vc8' work on windows.
+ 2 - made libcurl itself built with CURL_NO_OLDIES defined (which doesn't
+ define the symbols for backwards source compatibility)
+ 3 - updated libcurl-errors.3
+ 4 - added CURL_DISABLE_TFTP to docs/INSTALL
+
+Daniel S (12 July 2007)
+- Made the krb5 code build with Heimdal's GSSAPI lib.
+
+Dan F (12 July 2007)
+- Compile most of the example apps in docs/examples when doing a 'make check'.
+ Fixed some compile warnings and errors in those examples.
+
+- Removed the example program ftp3rdparty.c since libcurl doesn't support
+ 3rd party FTP transfers any longer.
+
+Daniel S (12 July 2007)
+- Shmulik Regev found an (albeit rare) case where the proxy CONNECT operation
+ could in fact get stuck in an endless loop.
+
+- Made CURLOPT_SSL_VERIFYHOST set to 1 acts as described in the documentation:
+ fail to connect if there is no Common Name field found in the remote cert.
+ We should deprecate the support for this set to 1 anyway soon, since the
+ feature is pointless and most likely never really used by anyone.
+
+Daniel S (11 July 2007)
+- Shmulik Regev fixed a bug with transfer-encoding skipping during the 407
+ error pages for proxy authentication.
+
+- Giancarlo Formicuccia reported and fixed a problem with a closed connection
+ to a proxy during CONNECT auth negotiation.
+
+Dan F (10 July 2007)
+- Fixed a curl memory leak reported by Song Ma with a modified version
+ of the patch he suggested. Added his test case as test289 to verify.
+
+- Force the time zone to GMT in the cookie tests in case the user is
+ using one of the so-called 'right' time zones that take into account
+ leap seconds, which causes the tests to fail (as reported by
+ Daniel Black in bug report #1745964).
+
+Version 7.16.4 (10 July 2007)
+
+Daniel S (10 July 2007)
+- Kees Cook notified us about a security flaw
+ (http://curl.haxx.se/docs/adv_20070710.html) in which libcurl failed to
+ properly reject some outdated or not yet valid server certificates when
+ built with GnuTLS. Kees also provided the patch.
+
+James H (5 July 2007)
+- Gavrie Philipson provided a patch that will use a more specific error
+ message for an scp:// upload failure. If libssh2 has his matching
+ patch, then the error message return by the server will be used instead
+ of a more generic error.
+
+Daniel S (1 July 2007)
+- Thomas J. Moore provided a patch that introduces Kerberos5 support in
+ libcurl. This also makes the options change name to --krb (from --krb4) and
+ CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still
+
+- Song Ma helped me verify and extend a fix for doing FTP over a SOCKS4/5
+ proxy.
+
+Daniel S (27 June 2007)
+- James Housley: Add two new options for the SFTP/SCP/FILE protocols:
+ CURLOPT_NEW_FILE_PERMS and CURLOPT_NEW_DIRECTORY_PERMS. These control the
+ premissions for files and directories created on the remote
+ server. CURLOPT_NEW_FILE_PERMS defaults to 0644 and
+ CURLOPT_NEW_DIRECTORY_PERMS defaults to 0755
+
+- I corrected the 10-at-a-time.c example and applied a patch for it by James
+ Bursa.
+
+Daniel S (26 June 2007)
+- Robert Iakobashvili re-arranged the internal hash code to work with a custom
+ hash function for different hashes, and also expanded the default size for
+ the socket hash table used in multi handles to greatly enhance speed when
+ very many connections are added and the socket API is used.
+
+- James Housley made the CURLOPT_FTPLISTONLY mode work for SFTP directory
+ listings as well
+
+Daniel S (25 June 2007)
+- Adjusted how libcurl treats HTTP 1.1 responses without content-lenth or
+ chunked encoding (that also lacks "Connection: close"). It now simply
+ assumes that the connection WILL be closed to signal the end, as that is how
+ RFC2616 section 4.4 point #5 says we should behave.
+
+Version 7.16.3 (25 June 2007)
+
+Daniel S (23 June 2007)
+- As reported by "Tro" in http://curl.haxx.se/mail/lib-2007-06/0161.html and
+ http://curl.haxx.se/mail/lib-2007-06/0238.html, libcurl didn't properly do
+ no-body requests on FTP files on re-used connections properly, or at least
+ it didn't provide the info back in the header callback properly in the
+ subsequent requests.
+
+Daniel S (21 June 2007)
+- Gerrit Bruchhäuser pointed out a warning that the Intel(R) Thread Checker
+ tool reports and it was indeed a legitimate one and it is one fixed. It was
+ a use of a share without doing the proper locking first.
+
+Daniel S (20 June 2007)
+- Adam Piggott filed bug report #1740263
+ (http://curl.haxx.se/bug/view.cgi?id=1740263). Adam discovered that when
+ getting a large amount of URLs with curl, they were fetched slower and
+ slower... which turned out to be because the --libcurl data collecting which
+ wrongly always was enabled, but no longer is...
+
+Daniel S (18 June 2007)
+- Robson Braga Araujo filed bug report #1739100
+ (http://curl.haxx.se/bug/view.cgi?id=1739100) that mentioned that libcurl
+ could not actually list the contents of the root directory of a given FTP
+ server if the login directory isn't root. I fixed the problem and added
+ three test cases (one is disabled for now since I identified KNOWN_BUGS #44,
+ we cannot use --ftp-method nocwd and list ftp directories).
+
+Daniel S (14 June 2007)
+- Shmulik Regev:
+
+ I've encountered (and hopefully fixed) a problem involving proxy CONNECT
+ requests and easy handles state management. The problem isn't simple to
+ reproduce since it depends on socket state. It only manifests itself when
+ working with non-blocking sockets.
+
+ Here is the scenario:
+
+ 1. in multi_runsingle the easy handle is in the CURLM_STATE_WAITCONNECT and
+ calls Curl_protocol_connect
+
+ 2. in Curl_proxyCONNECT, line 1247, if the socket isn't ready the function
+ returns and conn->bits.tunnel_connecting is TRUE
+
+ 3. when the call to Curl_protocol_connect returns the protocol_connect flag
+ is false and the easy state is changed to CURLM_STATE_PROTOCONNECT which
+ isn't correct if a proxy is used. Rather CURLM_STATE_WAITPROXYCONNECT
+ should be used.
+
+ I discovered this while performing an HTTPS request through a proxy (squid)
+ on my local network. The problem caused openssl to fail as it read the proxy
+ response to the CONNECT call ('HTTP/1.0 Established') rather than the SSL
+ handshake (the exact openssl error was 'wrong ssl version' but this isn't
+ very important)
+
+- Dave Vasilevsky filed bug report #1736875
+ (http://curl.haxx.se/bug/view.cgi?id=1736875) almost simultanouesly as Dan
+ Fandrich mentioned a related build problem on the libcurl mailing list:
+ http://curl.haxx.se/mail/lib-2007-06/0131.html. Both problems had the same
+ reason: the definitions of the POLL* defines and the pollfd struct in the
+ libcurl code was depending on HAVE_POLL instead of HAVE_SYS_POLL_H.
+
+Daniel S (13 June 2007)
+- Tom Regner provided a patch and worked together with James Housley, so now
+ CURLOPT_FTP_CREATE_MISSING_DIRS works for SFTP connections as well as FTP
+ ones.
+
+- Rich Rauenzahn filed bug report #1733119
+ (http://curl.haxx.se/bug/view.cgi?id=1733119) and we collaborated on the
+ fix. The problem is that for 64bit HPUX builds, several socket-related
+ functions would still assume int (32 bit) arguments and not socklen_t (64
+ bit) ones.
+
+Daniel S (12 June 2007)
+- James Housley brought his revamped SSH code that is state-machine driven to
+ really take advantage of the now totally non-blocking libssh2 (in CVS).
+
+Dan F (8 June 2007)
+- Incorporated Daniel Black's test706 and test707 SOCKS test cases.
+
+- Fixed a few problems when starting the SOCKS server.
+
+- Reverted some recent changes to runtests.pl that weren't compatible with
+ perl 5.0.
+
+- Fixed the test harness so that it actually kills the ssh being used as
+ the SOCKS server.
+
+Daniel S (6 June 2007)
+- -s/--silent can now be used to toggle off the silence again if used a second
+ time.
+
+Daniel S (5 June 2007)
+- Added Daniel Black's work that adds the first few SOCKS test cases. I also
+ fixed two minor SOCKS problems to make the test cases run fine.
+
+Daniel S (31 May 2007)
+- Feng Tu made (lib)curl support "upload" resuming work for file:// URLs.
+
+Daniel S (30 May 2007)
+- I modified the 10-at-a-time.c example to transfer 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.
+
+ Extra note: starting now we require c-ares 1.4.0 for asynchronous name
+ resolves.
+
+- Added CURLMOPT_MAXCONNECTS which is a curl_multi_setopt() option for setting
+ the maximum size of the connection cache maximum size of the multi handle.
+
+Daniel S (27 May 2007)
+- When working with a problem Stefan Becker had, I found an off-by-one buffer
+ overwrite in Curl_select(). While fixing it, I also improved its performance
+ somewhat by changing calloc to malloc and breaking out of a loop earlier
+ (when possible).
+
+Daniel S (25 May 2007)
+- Rob Crittenden fixed bug #1705802
+ (http://curl.haxx.se/bug/view.cgi?id=1705802), which was filed by Daniel
+ Black identifying several FTP-SSL test cases fail when we build libcurl with
+ NSS for TLS/SSL. Listed as #42 in KNOWN_BUGS.
+
+Daniel S (24 May 2007)
+- Song Ma filed bug report #1724016
+ (http://curl.haxx.se/bug/view.cgi?id=1724016) noticing that downloading
+ glob-ranges for TFTP was broken in CVS. Fixed now.
+
+- 'mytx' in bug report #1723194 (http://curl.haxx.se/bug/view.cgi?id=1723194)
+ pointed out that the warnf() function in the curl tool didn't properly deal
+ with the cases when excessively long words were used in the string to chop
+ up.
+
+Daniel S (22 May 2007)
+- Andre Guibert de Bruet fixed a memory leak in the function that verifies the
+ peer's name in the SSL certificate when built for OpenSSL. The leak happens
+ for libcurls with CURL_DOES_CONVERSIONS enabled that fail to convert the CN
+ name from UTF8. He also fixed a leak when PKCS #12 parsing failed.
+
+Daniel S (18 May 2007)
+- Feng Tu reported that curl -w did wrong on TFTP transfers in bug report
+ #1715394 (http://curl.haxx.se/bug/view.cgi?id=1715394), and the
+ transfer-related info "variables" were indeed overwritten with zeroes
+ wrongly and have now been adjusted. The upload size still isn't accurate.
+
+Daniel S (17 May 2007)
+- Feng Tu pointed out a division by zero error in the TFTP connect timeout
+ code for timeouts less than five seconds, and also provided a fix for it.
+ Bug report #1715392 (http://curl.haxx.se/bug/view.cgi?id=1715392)
+
+Dan F (16 May 2007)
+- Added support for compiling under Minix 3.1.3 using ACK.
+
+Dan F (14 May 2007)
+- Added SFTP directory listing test case 613.
+
+- Added support for quote commands before a transfer using SFTP and test
+ case 614.
+
+- Changed the post-quote commands to occur after the transferred file is
+ closed.
+
+- Allow SFTP quote commands chmod, chown, chgrp to set a value of 0.
+
+Dan F (9 May 2007)
+- Kristian Gunstone fixed a problem where overwriting an uploaded file with
+ sftp didn't truncate it first, which would corrupt the file if the new
+ file was shorter than the old.
+
+Dan F (8 May 2007)
+- Added FTPS test cases 406 and 407
+
+Daniel S (8 May 2007)
+- CURLE_FTP_COULDNT_STOR_FILE is now known as CURLE_UPLOAD_FAILED. This is
+ because I just made SCP uploads return this value if the file size of
+ the upload file isn't given with CURLOPT_INFILESIZE*. Docs updated to
+ reflect this news, and a define for the old name was added to the public
+ header file.
+
+Daniel S (7 May 2007)
+- James Bursa fixed a bug in the multi handle code that made the connection
+ cache grow a bit too much, beyond the normal 4 * easy_handles.
+
+Daniel S (2 May 2007)
+- Anders Gustafsson remarked that requiring CURLOPT_HTTP_VERSION set to 1.0
+ when CURLOPT_HTTP200ALIASES is used to avoid the problem mentioned below is
+ not very nice if the client wants to be able to use _either_ a HTTP 1.1
+ server or one within the aliases list... so starting now, libcurl will
+ simply consider 200-alias matches the to be HTTP 1.0 compliant.
+
+- Tobias Rundström reported a problem they experienced with xmms2 and recent
+ libcurls, which turned out to be the 25-nov-2006 change which treats HTTP
+ responses without Content-Length or chunked encoding as without bodies. We
+ now added the conditional that the above mentioned response is only without
+ body if the response is HTTP 1.1.
+
+- Jeff Pohlmeyer improved the hiperfifo.c example to use the
+ CURLMOPT_TIMERFUNCTION callback option.
+
+- Set the timeout for easy handles to expire really soon after addition or
+ when CURLM_CALL_MULTI_PERFORM is returned from curl_multi_socket*/perform,
+ to make applications using only curl_multi_socket() to properly function
+ when adding easy handles "on the fly". Bug report and test app provided by
+ Michael Wallner.
+
+Dan F (30 April 2007)
+- Improved the test harness to allow running test servers on other than
+ the default port numbers, allowing more than one test suite to run
+ simultaneously on the same host.
+
+Daniel S (28 April 2007)
+- Peter O'Gorman fixed libcurl to not init GnuTLS as early as we did before,
+ since it then inits libgcrypt and libgcrypt is being evil and EXITS the
+ application if it fails to get a fine random seed. That's really not a nice
+ thing to do by a library.
+
+- 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.
+
+Daniel S (26 April 2007)
+- Peter O'Gorman found a problem with SCP downloads when the downloaded file
+ was 16385 bytes (16K+1) and it turned out we didn't properly always "suck
+ out" all data from libssh2. The effect being that libcurl would hang on the
+ socket waiting for data when libssh2 had in fact already read it all...
+
+Dan F (25 April 2007)
+- Added support in runtests.pl for "!n" test numbers to disable individual
+ tests. Changed -t to only keep log files around when -k is specified,
+ to have the same behaviour as without -t.
+
+Daniel S (25 April 2007)
+- Sonia Subramanian brought our attention to a problem that happens if you set
+ the CURLOPT_RESUME_FROM or CURLOPT_RANGE options and an existing connection
+ in the connection cache is closed to make room for the new one when you call
+ curl_easy_perform(). It would then wrongly free range-related data in the
+ connection close funtion.
+
+Yang Tse (25 April 2007)
+- Steve Little fixed compilation on VMS 64-bit mode
+
+Daniel S (24 April 2007)
+- Robert Iakobashvili made the 'master_buffer' get allocated first once it is
+ can/will be used as it then makes the common cases save 16KB of data for each
+ easy handle that isn't used for pipelining.
+
+Dan F (23 April 2007)
+- Added support to the test harness.
+
+- Added tests 610-612 to test more SFTP post-quote commands.
+
+Daniel S (22 April 2007)
+- Song Ma's warning if -r/--range is given with a "bad" range, also noted in
+ the man page now.
+
+- Daniel Black filed bug #1705177
+ (http://curl.haxx.se/bug/view.cgi?id=1705177) where --without-ssl
+ --with-gnutl outputs a warning about SSL not being enabled even though GnuTLS
+ was found and used.
+
+Daniel S (21 April 2007)
+- Daniel Black filed bug #1704675
+ (http://curl.haxx.se/bug/view.cgi?id=1704675) identifying a double-free
+ problem in the SSL-dealing layer, telling GnuTLS to free NULL credentials on
+ closedown after a failure and a bad #ifdef for NSS when closing down SSL.
+
+Yang Tse (20 April 2007)
+- Save one call to curlx_tvnow(), which calls gettimeofday(), in each of
+ Curl_socket_ready(), Curl_poll() and Curl_select() when these are called
+ with a zero timeout or a timeout value indicating a blocking call should
+ be performed.
+
+Daniel S (18 April 2007)
+- James Housley made SFTP uploads use libssh2's non-blocking API
+
+- Prevent the internal progress meter from updating more frequently than once
+ per second.
+
+Dan F (17 April 2007)
+- Added test cases 296, 297 and 298 to test --ftp-method handling
+
+Daniel S (16 April 2007)
+- Robert Iakobashvil added curl_multi_socket_action() to libcurl, which is a
+ function that deprecates the curl_multi_socket() function. Using the new
+ function the application tell libcurl what action that was found in the
+ socket that it passes in. This gives a significant performance boost as it
+ allows libcurl to avoid a call to poll()/select() for every call to
+ curl_multi_socket*().
+
+ I added a define in the public curl/multi.h header file that will make your
+ existing application automatically use curl_multi_socket_action() instead of
+ curl_multi_socket() when you recompile. But of course you'll get better
+ performance if you adjust your code manually and actually pass in the
+ correct action bitmask to this function.
+
+Daniel S (14 April 2007)
+- Jay Austin added "DH PARAMETERS" to the stunnel.pem certificate for the test
+ suite to make stunnel run better in some (most?) environments.
+
+Dan F (13 April 2007)
+- Added test cases 294 and 295 to test --ftp-account handling
+
+- Improved handling of out of memory in ftp.
+
+Yang Tse (13 April 2007)
+- Fix test case 534 which started to fail 2007-04-13 due to the existance
+ of a new host on the net with the same silly domain the test was using
+ for a host which was supposed not to exist.
+
+Daniel S (12 April 2007)
+- Song Ma found a memory leak in the if2ip code if you pass in an interface
+ name longer than the name field of the ifreq struct (typically 6 bytes), as
+ then it wouldn't close the used dummy socket. Bug #1698974
+ (http://curl.haxx.se/bug/view.cgi?id=1698974)
+
+Version 7.16.2 (11 April 2007)
+
+Yang Tse (10 April 2007)
+- Ravi Pratap provided some fixes for HTTP pipelining
+
+- configure script will ignore --enable-sspi option for non-native Windows.
+
+Daniel S (9 April 2007)
+- Nick Zitzmann did ssh.c cleanups
+
+Daniel S (3 April 2007)
+- Rob Jones fixed better #ifdef'ing for a bunch of #include lines.
+
+Daniel S (2 April 2007)
+- Nick Zitzmann made the CURLOPT_POSTQUOTE option work for SFTP as well. The
+ accepted commands are as follows:
+
+ chgrp (gid) (path)
+ Changes the group ID of the file or directory at (path) to (gid). (gid)
+ must be a number.
+
+ chmod (perms) (path)
+ Changes the permissions of the file or directory at (path) to
+ (perms). (perms) must be a number in the format used by the chmod Unix
+ command.
+
+ chown (uid) (path)
+ Changes the user ID of the file or directory at (path) to (uid). (uid)
+ must be a number.
+
+ ln (source) (dest)
+ Creates a symbolic link at (dest) that points to the file located at
+ (source).
+
+ mkdir (path)
+ Creates a new directory at (path).
+
+ rename (source) (dest)
+ Moves the file or directory at (source) to (dest).
+
+ rm (path)
+ Deletes the file located at (path).
+
+ rmdir (path)
+ Deletes the directory located at (path). This command will raise an error
+ if the directory is not empty.
+
+ symlink (source) (dest)
+ Same as ln.
+
+Daniel S (1 April 2007)
+- Robert Iakobashvili made curl_multi_remove_handle() a lot faster when many
+ easy handles are added to a multi handle, by avoiding the looping over all
+ the handles to find which one to remove.
+
+- Matt Kraai provided a patch that makes curl build on QNX 6 fine again.
+
+Daniel S (31 March 2007)
+- Fixed several minor issues detected by the coverity.com scanner.
+
+- "Pixel" fixed a problem that appeared when you used -f with user+password
+ embedded in the URL.
+
+Dan F (29 March 2007)
+- Don't tear down the ftp connection if the maximum filesize was exceeded
+ and added tests 290 and 291 to check.
+
+- Added ftps upload and SSL required tests 401 and 402.
+
+- Send an EOF message before closing an SCP channel, as recommended by
+ RFC4254. Enable libssh2 tracing when ssh debugging is turned on.
+
+Yang Tse (27 March 2007)
+- Internal function Curl_select() renamed to Curl_socket_ready()
+
+ 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.
+
+Daniel S (25 March 2007)
+- Daniel Johnson fixed multi code to traverse the easy handle list properly.
+ A left-over bug from the February 21 fix.
+
+Dan F (23 March 2007)
+- Added --pubkey option to curl and made --key also work for SCP/SFTP,
+ plus made --pass work on an SSH private key as well.
+
+- Changed the test harness to attempt to gracefully shut down servers
+ before resorting to the kill -9 hammer.
+
+- Added test harness infrastructure to support scp/sftp tests, using
+ OpenSSH as the server.
+
+- Fixed a memory leak when specifying a proxy with a file: URL.
+
+Yang Tse (20 March 2007)
+- Fixed: When a signal was caught awaiting for an event using Curl_select()
+ or Curl_poll() with a non-zero timeout both functions would restart the
+ specified timeout. This could even lead to the extreme case that if a
+ signal arrived with a frecuency lower to the specified timeout neither
+ function would ever exit.
+
+ Added experimental symbol definition check CURL_ACKNOWLEDGE_EINTR in
+ Curl_select() and Curl_poll(). When compiled with CURL_ACKNOWLEDGE_EINTR
+ defined both functions will return as soon as a signal is caught. Use it
+ at your own risk, all calls to these functions in the library should be
+ revisited and checked before fully supporting this feature.
+
+Yang Tse (19 March 2007)
+- Bryan Henderson fixed the progress function so that it can get called more
+ frequently allowing same calling frecuency for the client progress callback.
+
+Dan F (15 March 2007)
+- Various memory leaks plugged and NULL pointer fixes made in the ssh code.
+
+Daniel (15 March 2007)
+- Nick made the curl tool accept globbing ranges that only is one number, i.e
+ you can now use [1-1] without curl complaining.
+
+Daniel (10 March 2007)
+- Eygene Ryabinkin:
+
+ The problem is the following: when we're calling Curl_done and it decides to
+ keep the connection opened ('left intact'), then the caller is not notified
+ that the connection was done via the NULLifying of the pointer, so some easy
+ handle is keeping the pointer to this connection.
+
+ Later ConnectionExists can select such connection for reuse even if we're
+ not pipelining: pipeLen is zero, so the (pipeLen > 0 && !canPipeline) is
+ false and we can reuse this connection for another easy handle. But thus the
+ connection will be shared between two easy handles if the handle that wants
+ to take the ownership is not the same as was not notified of the connection
+ was done in Curl_done. And when some of these easy handles will get their
+ connection really freed the another one will still keep the pointer.
+
+ My fix was rather trivial: I just added the NULLification to the 'else'
+ branch in the Curl_done. My tests with Git and ElectricFence showed no
+ problems both for HTTP pulling and cloning. Repository size is about 250 Mb,
+ so it was a considerable amount of Curl's work.
+
+Dan F (9 March 2007)
+- Updated the test harness to add a new "crypto" feature check and updated the
+ appropriate test case to use it. For now, this is treated the same as the
+ "SSL" feature because curl doesn't list it separately.
+
+Daniel (9 March 2007)
+- Robert Iakobashvili fixed CURLOPT_INTERFACE for IPv6.
+
+- Robert A. Monat improved the maketgz and VC6/8 generating to set the correct
+ machine type too.
+
+- Justin Fletcher fixed a file descriptor leak in the curl tool when trying to
+ upload a file it couldn't open. Bug #1676581
+ (http://curl.haxx.se/bug/view.cgi?id=1676581)
+
+Dan F (9 March 2007)
+- Updated the test harness to check for protocol support before running each
+ test, fixing KNOWN_BUGS #11.
+
+Dan F (7 March 2007)
+- Reintroduced (after a 3 year hiatus) an FTPS test case (400) into the test
+ harness. It is very limited as it supports only ftps:// URLs with
+ --ftp-ssl-control specified, which implicitly encrypts the control
+ channel but not the data channels. That allows stunnel to be used with
+ an unmodified ftp server in exactly the same way that the test https
+ server is set up.
+
+Dan F (7 March 2007)
+- Honour --ftp-ssl-control on ftps:// URLs to allow encrypted control and
+ unencrypted data connections.
+
+Dan F (6 March 2007)
+- Fixed a couple of improper pointer uses detected by valgrind in test
+ cases 181 & 216.
+
+Daniel (2 March 2007)
+- Robert A. Monat and Shmulik Regev helped out to fix the new */Makefile.vc8
+ makefiles that are included in the source release archives, generated from
+ the Makefile.vc6 files by the maketgz script. I also modified the root
+ Makefile to have a VC variable that defaults to vc6 but can be overridden to
+ allow it to be used for vc8 as well. Like this:
+
+ nmake VC=vc8 vc
+
+Daniel (27 February 2007)
+- Hang Kin Lau found and fixed: When I use libcurl to connect to an https
+ server through a proxy and have the remote https server port set using the
+ CURLOPT_PORT option, protocol gets reset to http from https after the first
+ request.
+
+ User defined URL was modified internally by libcurl and subsequent reuse of
+ the easy handle may lead to connection using a different protocol (if not
+ originally http).
+
+ I found that libcurl hardcoded the protocol to "http" when it tries to
+ regenerate the URL if CURLOPT_PORT is set. I tried to fix the problem as
+ follows and it's working fine so far
+
+Daniel (25 February 2007)
+- Adam D. Moss made the HTTP CONNECT procedure less blocking when used from
+ the multi interface. Note that it still does a part of the connection in a
+ blocking manner.
+
+Daniel (23 February 2007)
+- Added warning outputs if the command line uses more than one of the options
+ -v, --trace and --trace-ascii, since it could really confuse the user.
+ Clarified this fact in the man page.
+
+Daniel (21 February 2007)
+- Ravi Pratap provided work on libcurl making pipelining more robust and
+ fixing some bugs:
+ o Don't mix GET and POST requests in a pipeline
+ o Fix the order in which requests are dispatched from the pipeline
+ o Fixed several curl bugs with pipelining when the server is returning
+ chunked encoding:
+ * Added states to chunked parsing for final CRLF
+ * Rewind buffer after parsing chunk with data remaining
+ * Moved chunked header initializing to a spot just before receiving
+ headers
+
+Daniel (20 February 2007)
+- Linus Nielsen Feltzing changed the CURLOPT_FTP_SSL_CCC option to handle
+ active and passive CCC shutdown and added the --ftp-ssl-ccc-mode command
+ line option.
+
+Daniel (19 February 2007)
+- Ian Turner fixed the libcurl.m4 macro's support for --with-libcurl.
+
+- Shmulik Regev found a memory leak in re-used HTTPS connections, at least
+ when the multi interface was used.
+
+- Robson Braga Araujo made passive FTP transfers work with SOCKS (both 4 and
+ 5).
+
+Daniel (18 February 2007)
+- Jeff Pohlmeyer identified two problems: first a rather obscure problem with
+ the multi interface and connection re-use that could make a
+ curl_multi_remove_handle() ruin a pointer in another handle.
+
+ The second problem was less of an actual problem but more of minor quirk:
+ the re-using of connections wasn't properly checking if the connection was
+ marked for closure.
+
+Daniel (16 February 2007)
+- Duncan Mac-Vicar Prett and Michal Marek reported problems with resetting
+ CURLOPT_RANGE back to no range on an easy handle when using FTP.
+
+Dan F (14 February 2007)
+- Fixed curl-config --libs so it doesn't list unnecessary libraries (and
+ therefore introduce unnecessary dependencies) when it's not needed.
+ Also, don't bother adding a library path of /usr/lib
+
+Daniel (13 February 2007)
+- The default password for anonymous FTP connections is now changed to be
+ "ftp@example.com".
+
+- Robert A. Monat made libcurl build fine with VC2005 - it doesn't have
+ gmtime_r() like the older VC versions. He also made use of some machine-
+ specific defines to differentiate the "OS" define.
+
+Daniel (12 February 2007)
+- Rob Crittenden added support for NSS (Network Security Service) for the
+ SSL/TLS layer. http://www.mozilla.org/projects/security/pki/nss/
+
+ This is the fourth supported library for TLS/SSL that libcurl supports!
+
+- Shmulik Regev fixed so that the final CRLF of HTTP response headers are sent
+ to the debug callback.
+
+- Shmulik Regev added CURLOPT_HTTP_CONTENT_DECODING and
+ CURLOPT_HTTP_TRANSFER_DECODING that if set to zero will disable libcurl's
+ internal decoding of content or transfer encoded content. This may be
+ preferable in cases where you use libcurl for proxy purposes or similar. The
+ command line tool got a --raw option to disable both at once.
+
+- release tarballs made with maketgz will from now on have a LIBCURL_TIMESTAMP
+ define set to hold the exact date and time of when the tarball was built, as
+ a human readable string using the UTC time zone.
+
+- Jeff Pohlmeyer fixed a flaw in curl_multi_add_handle() when adding a handle
+ that has an easy handle present in the "closure" list pending closure.
+
+Daniel (6 February 2007)
+- Regular file downloads wiht SFTP and SCP are now done using the non-blocking
+ API of libssh2, if the libssh2 headers seem to support them. This will make
+ SCP and SFTP much more responsive and better libcurl citizens when used with
+ the multi interface etc.
+
+Daniel (5 February 2007)
+- Michael Wallner added support for CURLOPT_TIMEOUT_MS and
+ CURLOPT_CONNECTTIMEOUT_MS that, as their names suggest, do the timeouts with
+ millisecond resolution. The only restriction to that is the alarm()
+ (sometimes) used to abort name resolves as that uses full seconds. I fixed
+ the FTP response timeout part of the patch.
+
+ Internally we now count and keep the timeouts in milliseconds but it also
+ means we multiply set timeouts with 1000. The effect of this is that no
+ timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which
+ equals 24.86 days. We probably couldn't before either since the code did
+ *1000 on the timeout values on several places already.
+
+Daniel (3 February 2007)
+- Yang Tse fixed the cookie expiry date in several test cases that started to
+ fail since they used "1 feb 2007"...
+
+- Manfred Schwarb reported that socks5 support was broken and help us pinpoint
+ the problem. The code now tries harder to use httproxy and proxy where
+ apppropriate, as not all proxies are HTTP...
+
+Version 7.16.1 (29 January 2007)
+
+Daniel (29 January 2007)
+- Michael Wallner reported that when doing a CONNECT with a custom User-Agent
+ header, you got _two_ User-Agent headers in the CONNECT request...! Added
+ test case 287 to verify the fix.
+
+Daniel (28 January 2007)
+- curl_easy_reset() now resets the CA bundle path correctly.
+
+- David McCreedy fixed the Curl command line tool for HTTP on non-ASCII
+ platforms.
+
+Daniel (25 January 2007)
+- Added the --libcurl [file] option to curl. Append this option to any
+ ordinary curl command line, and you will get a libcurl-using source code
+ written to the file that does the equivalent operation of what your command
+ line operation does!
+
+Dan F (24 January 2007)
+- Fixed a dangling pointer problem that prevented the http_proxy environment
+ variable from being properly used in many cases (and caused test case 63
+ to fail).
+
+Daniel (23 January 2007)
+- David McCreedy did NTLM changes mainly for non-ASCII platforms:
+
+ #1
+ There's a compilation error in http_ntlm.c if USE_NTLM2SESSION is NOT
+ defined. I noticed this while testing various configurations. Line 867 of
+ the current http_ntlm.c is a closing bracket for an if/else pair that only
+ gets compiled in if USE_NTLM2SESSION is defined. But this closing bracket
+ wasn't in an #ifdef so the code fails to compile unless USE_NTLM2SESSION was
+ defined. Lines 198 and 140 of my patch wraps that closing bracket in an
+ #ifdef USE_NTLM2SESSION.
+
+ #2
+ I noticed several picky compiler warnings when DEBUG_ME is defined. I've
+ fixed them with casting. By the way, DEBUG_ME was a huge help in
+ understanding this code.
+
+ #3
+ Hopefully the last non-ASCII conversion patch for libcurl in a while. I
+ changed the "NTLMSSP" literal to hex since this signature must always be in
+ ASCII.
+
+ Conversion code was strategically added where necessary. And the
+ Curl_base64_encode calls were changed so the binary "blobs" http_ntlm.c
+ creates are NOT translated on non-ASCII platforms.
+
+Dan F (22 January 2007)
+- Converted (most of) the test data files into genuine XML. A handful still
+ are not, due mainly to the lack of support for XML character entities
+ (e.g. & => & ). This will make it easier to validate test files using
+ tools like xmllint, as well as to edit and view them using XML tools.
+
+Daniel (16 January 2007)
+- Armel Asselin improved libcurl to behave a lot better when an easy handle
+ doing an FTP transfer is removed from a multi handle before completion. The
+ fix also fixed the "alive counter" to be correct on "premature removal" for
+ all protocols.
+
+Dan F (16 January 2007)
+- Fixed a small memory leak in tftp uploads discovered by curl's memory leak
+ detector. Also changed tftp downloads to URL-unescape the downloaded
+ file name.
+
+Daniel (14 January 2007)
+- David McCreedy provided libcurl changes for doing HTTP communication on
+ non-ASCII platforms. It does add some complexity, most notably with more
+ #ifdefs, but I want to see this supported added and I can't see how we can
+ add it without the extra stuff added.
+
+- Setting CURLOPT_COOKIELIST to "ALL" when no cookies at all was present,
+ libcurl would crash when trying to read a NULL pointer.
+
+Daniel (12 January 2007)
+- Toby Peterson found a nasty bug that prevented (lib)curl from properly
+ downloading (most) things that were larger than 4GB on 32 bit systems. Matt
+ Witherspoon helped as narrow down the problem.
+
+Daniel (5 January 2007)
+- Linus Nielsen Feltzing introduced the --ftp-ssl-ccc command line option to
+ curl that uses the new CURLOPT_FTP_SSL_CCC option in libcurl. If enabled, it
+ will make libcurl shutdown SSL/TLS after the authentication is done on a
+ FTP-SSL operation.
+
+Daniel (4 January 2007)
+- David McCreedy made changes to allow base64 encoding/decoding to work on
+ non-ASCII platforms.
+
+Daniel (3 January 2007)
+- Matt Witherspoon fixed the flaw which made libcurl 7.16.0 always store
+ downloaded data in two buffers, just to be able to deal with a special HTTP
+ pipelining case. That is now only activated for pipelined transfers. In
+ Matt's case, it showed as a considerable performance difference,
+
+Daniel (2 January 2007)
+- Victor Snezhko helped us fix bug report #1603712
+ (http://curl.haxx.se/bug/view.cgi?id=1603712) (known bug #36) --limit-rate
+ (CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE) are broken
+ on Windows (since 7.16.0, but that's when they were introduced as previous
+ to that the limiting logic was made in the application only and not in the
+ library). It was actually also broken on select()-based systems (as apposed
+ to poll()) but we haven't had any such reports. We now use select(), Sleep()
+ or delay() properly to sleep a while without waiting for anything input or
+ output when the rate limiting is activated with the easy interface.
+
+- Modified libcurl.pc.in to use Libs.private for the libs libcurl itself needs
+ to get built static. It has been mentioned before and was again brought to
+ our attention by Nathanael Nerode who filed debian bug report #405226
+ (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=405226).
+
diff --git a/main/source/includes/libcurl-7.18-nossl/COPYING b/main/source/includes/libcurl-7.18-nossl/COPYING
new file mode 100644
index 00000000..8680f460
--- /dev/null
+++ b/main/source/includes/libcurl-7.18-nossl/COPYING
@@ -0,0 +1,21 @@
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1996 - 2008, Daniel Stenberg, .
+
+All rights reserved.
+
+Permission to use, copy, modify, and distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
+NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization of the copyright holder.
diff --git a/main/source/includes/libcurl-7.19.3/README b/main/source/includes/libcurl-7.18-nossl/README
similarity index 84%
rename from main/source/includes/libcurl-7.19.3/README
rename to main/source/includes/libcurl-7.18-nossl/README
index adf4b36b..db69d40f 100644
--- a/main/source/includes/libcurl-7.19.3/README
+++ b/main/source/includes/libcurl-7.18-nossl/README
@@ -20,6 +20,9 @@ README
Study the COPYING file for distribution terms and similar. If you distribute
curl binaries or other binaries that involve libcurl, you might enjoy the
LICENSE-MIXING document.
+
+ ! This version of libcurl requires zlib1.dll (zLib 1.2.3), available at
+ http://gnuwin32.sourceforge.net/packages/zlib.htm to work !
CONTACT
@@ -30,9 +33,10 @@ CONTACT
WEB SITE
- Visit the curl web site for the latest news and downloads:
+ Visit the curl web site or mirrors for the latest news and downloads:
- http://curl.haxx.se/
+ Sweden http://curl.haxx.se/
+ Mirrors http://curlm.haxx.se/
CVS
diff --git a/main/source/includes/libcurl-7.18-nossl/RELEASE-NOTES b/main/source/includes/libcurl-7.18-nossl/RELEASE-NOTES
new file mode 100644
index 00000000..21523441
--- /dev/null
+++ b/main/source/includes/libcurl-7.18-nossl/RELEASE-NOTES
@@ -0,0 +1,94 @@
+Curl and libcurl 7.18.0
+
+ Public curl releases: 103
+ Command line options: 126
+ curl_easy_setopt() options: 150
+ Public functions in libcurl: 56
+ Public web site mirrors: 43
+ Known libcurl bindings: 36
+ Contributors: 597
+
+This release includes the following changes:
+
+ o --data-urlencode
+ o CURLOPT_PROXY_TRANSFER_MODE
+ o --no-keepalive - now curl does connections with keep-alive enabled by
+ default
+ o --socks4a added (proxy type CURLPROXY_SOCKS4A for libcurl)
+ o --socks5-hostname added (CURLPROXY_SOCKS5_HOSTNAME for libcurl)
+ o curl_easy_pause()
+ o CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA
+ o --keepalive-time
+ o curl --help output was re-ordered
+
+This release includes the following bugfixes:
+
+ o curl-config --features and --protocols show the correct output when built
+ with NSS, and also when SCP, SFTP and libz are not available
+ o free problem in the curl tool for users with empty home dir
+ o curl.h version 7.17.1 problem when building C++ apps with MSVC
+ o SFTP and SCP use persistent connections
+ o segfault on bad URL
+ o variable wrapping when using absolutely huge send buffer sizes
+ o variable wrapping when using debug callback and the HTTP request wasn't sent
+ in one go
+ o SSL connections with NSS done with the multi-interface
+ o setting a share no longer activates cookies
+ o Negotiate now works on auth and proxy simultanouesly
+ o support HTTP Digest nonces up to 1023 letters
+ o resumed ftp upload no longer requires the read callback to return full
+ buffers
+ o no longer default-appends ;type= on FTP URLs thru proxies
+ o SSL session id caching
+ o POST with callback over proxy requiring NTLM or Digest
+ o Expect: 100-continue flaw on re-used connection with POSTs
+ o build fix for MSVC 9.0 (VS2008)
+ o Windows curl builds failed file truncation when retry downloading
+ o SSL session ID cache memory leak
+ o bad connection re-use check with environment variable-activated proxy use
+ o --libcurl now generates a return statement as well
+ o socklen_t is no longer used in the public includes
+ o time zone offsets from -1400 to +1400 are now accepted by the date parser
+ o allows more spaces in WWW/Proxy-Authenticate: headers
+ o curl-config --libs skips /usr/lib64
+ o range support for file:// transfers
+ o libcurl hang with huge POST request and request-body read from callback
+ o removed extra newlines from many error messages
+ o improved pipelining
+ o improved OOM handling for data url encoded HTTP POSTs when read from a file
+ o test suite could pick wrong tool(s) if more than one existed in the PATH
+ o curl_multi_fdset() failed to return socket while doing CONNECT over proxy
+ o curl_multi_remove_handle() on a handle that is in used for a pipeline now
+ break that pipeline
+ o CURLOPT_COOKIELIST memory leaks
+ o progress meter/callback during http proxy CONNECT requests
+ o auth for http proxy when the proxy closes connection after first response
+
+This release includes the following known bugs:
+
+ o see docs/KNOWN_BUGS (http://curl.haxx.se/docs/knownbugs.html)
+
+Other curl-related news:
+
+ o TclCurl 7.17.1 => http://personal1.iddeo.es/andresgarci/tclcurl/english/
+ o Ruby Curl::Multi 0.1 => http://curl-multi.rubyforge.org/
+ o curl-java 0.2.1 => http://curl.haxx.se/libcurl/java/
+
+New curl mirrors:
+
+ o http://curl.gominet.net/ is new mirror in Vizcaya, Portugal
+ o http://curl.very-clever.com/ is a new mirror in Nuremberg, Germany
+
+This release would not have looked like this without help, code, reports and
+advice from friends like these:
+
+ Dan Fandrich, Gisle Vanem, Toby Peterson, Yang Tse, Daniel Black,
+ Robin Johnson, Michal Marek, Ates Goral, Andres Garcia, Rob Crittenden,
+ Emil Romanus, Alessandro Vesely, Ray Pekowski, Spacen Jasset, Andrew Moise,
+ Gilles Blanc, David Wright, Vikram Saxena, Mateusz Loskot, Gary Maxwell,
+ Dmitry Kurochkin, Mohun Biswas, Richard Atterer, Maxim Perenesenko,
+ Daniel Egger, Jeff Johnson, Nikitinskit Dmitriy, Georg Lippitsch, Eric Landes,
+ Joe Malicki, Nathan Coulter, Lau Hang Kin, Judson Bishop, Igor Franchuk,
+ Kevin Reed
+
+ Thanks! (and sorry if I forgot to mention someone)
diff --git a/main/source/includes/libcurl-7.19.3/include/Makefile.am b/main/source/includes/libcurl-7.18-nossl/include/Makefile.am
similarity index 100%
rename from main/source/includes/libcurl-7.19.3/include/Makefile.am
rename to main/source/includes/libcurl-7.18-nossl/include/Makefile.am
diff --git a/main/source/includes/libcurl-7.19.3/include/Makefile.in b/main/source/includes/libcurl-7.18-nossl/include/Makefile.in
similarity index 94%
rename from main/source/includes/libcurl-7.19.3/include/Makefile.in
rename to main/source/includes/libcurl-7.18-nossl/include/Makefile.in
index 3bf75d47..fb0f92b5 100644
--- a/main/source/includes/libcurl-7.19.3/include/Makefile.in
+++ b/main/source/includes/libcurl-7.18-nossl/include/Makefile.in
@@ -38,21 +38,13 @@ host_triplet = @host@
subdir = include
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
- $(top_srcdir)/m4/curl-confopts.m4 \
- $(top_srcdir)/m4/curl-functions.m4 \
- $(top_srcdir)/m4/curl-override.m4 \
- $(top_srcdir)/m4/curl-reentrant.m4 \
- $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/lib/config.h \
- $(top_builddir)/src/config.h \
- $(top_builddir)/include/curl/curlbuild.h
+ $(top_builddir)/src/config.h
CONFIG_CLEAN_FILES =
depcomp =
am__depfiles_maybe =
@@ -78,6 +70,8 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+CABUNDLE_FALSE = @CABUNDLE_FALSE@
+CABUNDLE_TRUE = @CABUNDLE_TRUE@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -92,7 +86,6 @@ CURL_DISABLE_FTP = @CURL_DISABLE_FTP@
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
-CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@
CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
CURL_LIBS = @CURL_LIBS@
@@ -100,14 +93,12 @@ CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-FGREP = @FGREP@
GREP = @GREP@
HAVE_ARES = @HAVE_ARES@
HAVE_LIBZ = @HAVE_LIBZ@
@@ -121,13 +112,11 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPV6_ENABLED = @IPV6_ENABLED@
KRB4_ENABLED = @KRB4_ENABLED@
-LD = @LD@
LDFLAGS = @LDFLAGS@
LIBCURL_LIBS = @LIBCURL_LIBS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
@@ -137,22 +126,17 @@ MAKEINFO = @MAKEINFO@
MANOPT = @MANOPT@
MIMPURE_FALSE = @MIMPURE_FALSE@
MIMPURE_TRUE = @MIMPURE_TRUE@
-NM = @NM@
-NMEDIT = @NMEDIT@
NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@
NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@
NROFF = @NROFF@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH = @PATH@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKGADD_NAME = @PKGADD_NAME@
@@ -165,14 +149,10 @@ REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SONAME_BUMP_FALSE = @SONAME_BUMP_FALSE@
-SONAME_BUMP_TRUE = @SONAME_BUMP_TRUE@
SSL_ENABLED = @SSL_ENABLED@
STATICLIB_FALSE = @STATICLIB_FALSE@
STATICLIB_TRUE = @STATICLIB_TRUE@
STRIP = @STRIP@
-SUPPORT_FEATURES = @SUPPORT_FEATURES@
-SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_SERVER_LIBS = @TEST_SERVER_LIBS@
USE_GNUTLS = @USE_GNUTLS@
USE_LIBSSH2 = @USE_LIBSSH2@
@@ -184,7 +164,6 @@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
@@ -217,7 +196,6 @@ libexecdir = @libexecdir@
libext = @libext@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/main/source/includes/libcurl-7.18-nossl/include/README b/main/source/includes/libcurl-7.18-nossl/include/README
new file mode 100644
index 00000000..f8482ba6
--- /dev/null
+++ b/main/source/includes/libcurl-7.18-nossl/include/README
@@ -0,0 +1,38 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+Include files for libcurl, external users.
+
+They're all placed in the curl subdirectory here for better fit in any kind
+of environment. You should include files from here using...
+
+ #include
+
+... style and point the compiler's include path to the directory holding the
+curl subdirectory. It makes it more likely to survive future modifications.
+
+NOTE FOR LIBCURL HACKERS
+
+All the include files in this tree are written and intended to be installed on
+a system that may serve multiple platforms and multiple applications, all
+using libcurl (possibly even different libcurl installations using different
+versions). Therefore, all header files in here must obey these rules:
+
+* They cannot depend on or use configure-generated results from libcurl's or
+ curl's directories. Other applications may not run configure as (lib)curl
+ does, and using platform dependent info here may break other platforms.
+
+* We cannot assume anything else but very basic compiler features being
+ present. While libcurl requires an ANSI C compiler to build, some of the
+ earlier ANSI compilers clearly can't deal with some preprocessor operators.
+
+* Newlines must remain unix-style for older compilers' sake.
+
+* Comments must be written in the old-style /* unnested C-fashion */
+
+To figure out how to do good and portable checks for features, operating
+systems or specific hardwarare, a very good resource is Bjorn Reese's
+collection at http://predef.sf.net/
diff --git a/main/source/includes/libcurl-7.18-nossl/include/curl/Makefile.am b/main/source/includes/libcurl-7.18-nossl/include/curl/Makefile.am
new file mode 100644
index 00000000..347cf7ef
--- /dev/null
+++ b/main/source/includes/libcurl-7.18-nossl/include/curl/Makefile.am
@@ -0,0 +1,5 @@
+pkginclude_HEADERS = \
+ curl.h curlver.h easy.h mprintf.h stdcheaders.h types.h multi.h
+pkgincludedir= $(includedir)/curl
+
+CLEANFILES = *dist
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/Makefile.in b/main/source/includes/libcurl-7.18-nossl/include/curl/Makefile.in
similarity index 81%
rename from main/source/includes/libcurl-7.19.3/include/curl/Makefile.in
rename to main/source/includes/libcurl-7.18-nossl/include/curl/Makefile.in
index 65d9c0f5..486c7153 100644
--- a/main/source/includes/libcurl-7.19.3/include/curl/Makefile.in
+++ b/main/source/includes/libcurl-7.18-nossl/include/curl/Makefile.in
@@ -37,22 +37,15 @@ build_triplet = @build@
host_triplet = @host@
subdir = include/curl
DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/curlbuild.h.in
+ $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
- $(top_srcdir)/m4/curl-confopts.m4 \
- $(top_srcdir)/m4/curl-functions.m4 \
- $(top_srcdir)/m4/curl-override.m4 \
- $(top_srcdir)/m4/curl-reentrant.m4 \
- $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/lib/config.h \
- $(top_builddir)/src/config.h curlbuild.h
+ $(top_builddir)/src/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
@@ -79,6 +72,8 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+CABUNDLE_FALSE = @CABUNDLE_FALSE@
+CABUNDLE_TRUE = @CABUNDLE_TRUE@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -93,7 +88,6 @@ CURL_DISABLE_FTP = @CURL_DISABLE_FTP@
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
-CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@
CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
CURL_LIBS = @CURL_LIBS@
@@ -101,14 +95,12 @@ CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-FGREP = @FGREP@
GREP = @GREP@
HAVE_ARES = @HAVE_ARES@
HAVE_LIBZ = @HAVE_LIBZ@
@@ -122,13 +114,11 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPV6_ENABLED = @IPV6_ENABLED@
KRB4_ENABLED = @KRB4_ENABLED@
-LD = @LD@
LDFLAGS = @LDFLAGS@
LIBCURL_LIBS = @LIBCURL_LIBS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
@@ -138,22 +128,17 @@ MAKEINFO = @MAKEINFO@
MANOPT = @MANOPT@
MIMPURE_FALSE = @MIMPURE_FALSE@
MIMPURE_TRUE = @MIMPURE_TRUE@
-NM = @NM@
-NMEDIT = @NMEDIT@
NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@
NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@
NROFF = @NROFF@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH = @PATH@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKGADD_NAME = @PKGADD_NAME@
@@ -166,14 +151,10 @@ REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SONAME_BUMP_FALSE = @SONAME_BUMP_FALSE@
-SONAME_BUMP_TRUE = @SONAME_BUMP_TRUE@
SSL_ENABLED = @SSL_ENABLED@
STATICLIB_FALSE = @STATICLIB_FALSE@
STATICLIB_TRUE = @STATICLIB_TRUE@
STRIP = @STRIP@
-SUPPORT_FEATURES = @SUPPORT_FEATURES@
-SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_SERVER_LIBS = @TEST_SERVER_LIBS@
USE_GNUTLS = @USE_GNUTLS@
USE_LIBSSH2 = @USE_LIBSSH2@
@@ -185,7 +166,6 @@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
@@ -218,7 +198,6 @@ libexecdir = @libexecdir@
libext = @libext@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -232,28 +211,10 @@ subdirs = @subdirs@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
pkginclude_HEADERS = \
- curl.h curlver.h easy.h mprintf.h stdcheaders.h types.h multi.h \
- typecheck-gcc.h curlbuild.h curlrules.h
+ curl.h curlver.h easy.h mprintf.h stdcheaders.h types.h multi.h
-
-# curlbuild.h does not exist in the CVS tree. When the original libcurl
-# source code distribution archive file is created, curlbuild.h.dist is
-# renamed to curlbuild.h and included in the tarball so that it can be
-# used directly on non-configure systems.
-#
-# The distributed curlbuild.h will be overwritten on configure systems
-# when the configure script runs, with one that is suitable and specific
-# to the library being configured and built.
-#
-# curlbuild.h.in is the distributed template file from which the configure
-# script creates curlbuild.h at library configuration time, overwiting the
-# one included in the distribution archive.
-#
-# curlbuild.h.dist is not included in the source code distribution archive.
-EXTRA_DIST = curlbuild.h.in
-DISTCLEANFILES = curlbuild.h
-all: curlbuild.h
- $(MAKE) $(AM_MAKEFLAGS) all-am
+CLEANFILES = *dist
+all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@@ -286,23 +247,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-curlbuild.h: stamp-h3
- @if test ! -f $@; then \
- rm -f stamp-h3; \
- $(MAKE) stamp-h3; \
- else :; fi
-
-stamp-h3: $(srcdir)/curlbuild.h.in $(top_builddir)/config.status
- @rm -f stamp-h3
- cd $(top_builddir) && $(SHELL) ./config.status include/curl/curlbuild.h
-$(srcdir)/curlbuild.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_srcdir) && $(AUTOHEADER)
- rm -f stamp-h3
- touch $@
-
-distclean-hdr:
- -rm -f curlbuild.h stamp-h3
-
mostlyclean-libtool:
-rm -f *.lo
@@ -340,11 +284,11 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
mkid -fID $$unique
tags: TAGS
-TAGS: $(HEADERS) $(SOURCES) curlbuild.h.in $(TAGS_DEPENDENCIES) \
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) curlbuild.h.in $(LISP) $(TAGS_FILES)'; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
@@ -356,11 +300,11 @@ TAGS: $(HEADERS) $(SOURCES) curlbuild.h.in $(TAGS_DEPENDENCIES) \
$$tags $$unique; \
fi
ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) curlbuild.h.in $(TAGS_DEPENDENCIES) \
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) curlbuild.h.in $(LISP) $(TAGS_FILES)'; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
@@ -407,7 +351,7 @@ distdir: $(DISTFILES)
done
check-am: all-am
check: check-am
-all-am: Makefile $(HEADERS) curlbuild.h
+all-am: Makefile $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(pkgincludedir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
@@ -429,10 +373,10 @@ install-strip:
mostlyclean-generic:
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -443,8 +387,8 @@ clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr \
- distclean-libtool distclean-tags
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
dvi: dvi-am
@@ -485,7 +429,7 @@ ps-am:
uninstall-am: uninstall-info-am uninstall-pkgincludeHEADERS
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool ctags distclean distclean-generic distclean-hdr \
+ clean-libtool ctags distclean distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-exec install-exec-am install-info \
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/curl.h b/main/source/includes/libcurl-7.18-nossl/include/curl/curl.h
similarity index 90%
rename from main/source/includes/libcurl-7.19.3/include/curl/curl.h
rename to main/source/includes/libcurl-7.18-nossl/include/curl/curl.h
index f48727c3..c8cf4268 100644
--- a/main/source/includes/libcurl-7.19.3/include/curl/curl.h
+++ b/main/source/includes/libcurl-7.18-nossl/include/curl/curl.h
@@ -20,27 +20,20 @@
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
- * $Id: curl.h,v 1.371 2008-12-10 23:13:31 bagder Exp $
+ * $Id: curl.h,v 1.341 2008-01-10 10:30:20 bagder Exp $
***************************************************************************/
-/*
- * If you have libcurl problems, all docs and details are found here:
- * http://curl.haxx.se/libcurl/
- *
- * curl-library mailing list subscription and unsubscription web interface:
- * http://cool.haxx.se/mailman/listinfo/curl-library/
- */
+/* If you have problems, all libcurl docs and details are found here:
+ http://curl.haxx.se/libcurl/
+*/
-#include "curlver.h" /* libcurl version defines */
-#include "curlbuild.h" /* libcurl build definitions */
-#include "curlrules.h" /* libcurl rules enforcement */
+#include "curlver.h" /* the libcurl version defines */
/*
* Define WIN32 when build target is Win32 API
*/
-#if (defined(_WIN32) || defined(__WIN32__)) && \
- !defined(WIN32) && !defined(__SYMBIAN32__)
+#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
#define WIN32
#endif
@@ -69,15 +62,14 @@
/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish
libc5-based Linux systems. Only include it on system that are known to
require it! */
-#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \
- defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY)
+#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || defined(__minix)
#include
#endif
#ifndef _WIN32_WCE
#include
#endif
-#if !defined(WIN32) && !defined(__WATCOMC__)
+#ifndef __WATCOMC__
#include
#endif
#include
@@ -94,11 +86,10 @@ extern "C" {
typedef void CURL;
/*
- * Decorate exportable functions for Win32 and Symbian OS DLL linking.
+ * Decorate exportable functions for Win32 DLL linking.
* This avoids using a .def file for building libcurl.dll.
*/
-#if (defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__)) && \
- !defined(CURL_STATICLIB)
+#if (defined(WIN32) || defined(_WIN32)) && !defined(CURL_STATICLIB)
#if defined(BUILDING_LIBCURL)
#define CURL_EXTERN __declspec(dllexport)
#else
@@ -108,7 +99,7 @@ typedef void CURL;
#ifdef CURL_HIDDEN_SYMBOLS
/*
- * This definition is used to make external definitions visible in the
+ * This definition is used to make external definitions visibile in the
* shared library when symbols are hidden by default. It makes no
* difference when compiling applications whether this is set or not,
* only when compiling the library.
@@ -119,6 +110,73 @@ typedef void CURL;
#endif
#endif
+/*
+ * We want the typedef curl_off_t setup for large file support on all
+ * platforms. We also provide a CURL_FORMAT_OFF_T define to use in *printf
+ * format strings when outputting a variable of type curl_off_t.
+ *
+ * Note: "pocc -Ze" is MSVC compatibily mode and this sets _MSC_VER!
+ */
+
+#if (defined(_MSC_VER) && !defined(__POCC__)) || (defined(__LCC__) && defined(WIN32))
+/* MSVC */
+#ifdef _WIN32_WCE
+ typedef long curl_off_t;
+#define CURL_FORMAT_OFF_T "%ld"
+#else
+ typedef signed __int64 curl_off_t;
+#define CURL_FORMAT_OFF_T "%I64d"
+#endif
+#else /* (_MSC_VER && !__POCC__) || (__LCC__ && WIN32) */
+#if (defined(__GNUC__) && defined(WIN32)) || defined(__WATCOMC__)
+/* gcc on windows or Watcom */
+ typedef long long curl_off_t;
+#define CURL_FORMAT_OFF_T "%I64d"
+#else /* GCC or Watcom on Windows */
+#if defined(__ILEC400__)
+/* OS400 C compiler. */
+ typedef long long curl_off_t;
+#define CURL_FORMAT_OFF_T "%lld"
+#else /* OS400 C compiler. */
+
+/* "normal" POSIX approach, do note that this does not necessarily mean that
+ the type is >32 bits, see the SIZEOF_CURL_OFF_T define for that! */
+ typedef off_t curl_off_t;
+
+/* Check a range of defines to detect large file support. On Linux it seems
+ none of these are set by default, so if you don't explicitly switches on
+ large file support, this define will be made for "small file" support. */
+#ifndef _FILE_OFFSET_BITS
+#define _FILE_OFFSET_BITS 0 /* to prevent warnings in the check below */
+#define UNDEF_FILE_OFFSET_BITS
+#endif
+#ifndef FILESIZEBITS
+#define FILESIZEBITS 0 /* to prevent warnings in the check below */
+#define UNDEF_FILESIZEBITS
+#endif
+
+#if defined(_LARGE_FILES) || (_FILE_OFFSET_BITS > 32) || (FILESIZEBITS > 32) \
+ || defined(_LARGEFILE_SOURCE) || defined(_LARGEFILE64_SOURCE)
+ /* For now, we assume at least one of these to be set for large files to
+ work! */
+#define CURL_FORMAT_OFF_T "%lld"
+#else /* LARGE_FILE support */
+#define CURL_FORMAT_OFF_T "%ld"
+#endif
+#endif /* OS400 C compiler. */
+#endif /* GCC or Watcom on Windows */
+#endif /* (_MSC_VER && !__POCC__) || (__LCC__ && WIN32) */
+
+#ifdef UNDEF_FILE_OFFSET_BITS
+/* this was defined above for our checks, undefine it again */
+#undef _FILE_OFFSET_BITS
+#endif
+
+#ifdef UNDEF_FILESIZEBITS
+/* this was defined above for our checks, undefine it again */
+#undef FILESIZEBITS
+#endif
+
#ifndef curl_socket_typedef
/* socket typedef */
#ifdef WIN32
@@ -153,16 +211,10 @@ struct curl_httppost {
do not free in formfree */
#define HTTPPOST_BUFFER (1<<4) /* upload file from buffer */
#define HTTPPOST_PTRBUFFER (1<<5) /* upload file from pointer contents */
-#define HTTPPOST_CALLBACK (1<<6) /* upload file contents by using the
- regular read callback to get the data
- and pass the given pointer as custom
- pointer */
char *showfilename; /* The file name to show. If not set, the
actual file name will be used (if this
is a file part) */
- void *userp; /* custom pointer used for
- HTTPPOST_CALLBACK posts */
};
typedef int (*curl_progress_callback)(void *clientp,
@@ -179,7 +231,7 @@ typedef int (*curl_progress_callback)(void *clientp,
#define CURL_MAX_WRITE_SIZE 16384
#endif
/* This is a magic return code for the write callback that, when returned,
- will signal libcurl to pause receiving on the current transfer. */
+ will signal libcurl to pause receving on the current transfer. */
#define CURL_WRITEFUNC_PAUSE 0x10000001
typedef size_t (*curl_write_callback)(char *buffer,
size_t size,
@@ -194,7 +246,7 @@ typedef size_t (*curl_write_callback)(char *buffer,
#define CURL_READFUNC_PAUSE 0x10000001
typedef int (*curl_seek_callback)(void *instream,
curl_off_t offset,
- int origin); /* 'whence' */
+ int origin); /* 'whence' */
typedef size_t (*curl_read_callback)(char *buffer,
size_t size,
@@ -317,7 +369,7 @@ typedef enum {
CURLE_WRITE_ERROR, /* 23 */
CURLE_OBSOLETE24, /* 24 - NOT USED */
CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */
- CURLE_READ_ERROR, /* 26 - couldn't open/read from file */
+ CURLE_READ_ERROR, /* 26 - could open/read from file */
CURLE_OUT_OF_MEMORY, /* 27 */
/* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error
instead of a memory allocation error if CURL_DOES_CONVERSIONS
@@ -389,13 +441,6 @@ typedef enum {
CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL
connection */
- CURLE_AGAIN, /* 81 - socket is not ready for send/recv,
- wait till it's ready and try again (Added
- in 7.18.2) */
- CURLE_SSL_CRL_BADFILE, /* 82 - could not load CRL file, missing or
- wrong format (Added in 7.19.0) */
- CURLE_SSL_ISSUER_ERROR, /* 83 - Issuer check failed. (Added in
- 7.19.0) */
CURL_LAST /* never use! */
} CURLcode;
@@ -474,9 +519,8 @@ typedef enum {
#define CURLAUTH_DIGEST (1<<1) /* Digest */
#define CURLAUTH_GSSNEGOTIATE (1<<2) /* GSS-Negotiate */
#define CURLAUTH_NTLM (1<<3) /* NTLM */
-#define CURLAUTH_DIGEST_IE (1<<4) /* Digest with IE flavour */
-#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) /* all fine types set */
-#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE))
+#define CURLAUTH_ANY ~0 /* all types set */
+#define CURLAUTH_ANYSAFE (~CURLAUTH_BASIC)
#define CURLSSH_AUTH_ANY ~0 /* all types supported by the server */
#define CURLSSH_AUTH_NONE 0 /* none allowed, silly but complete */
@@ -549,6 +593,23 @@ typedef enum {
#ifdef CINIT
#undef CINIT
#endif
+/*
+ * Figure out if we can use the ## operator, which is supported by ISO/ANSI C
+ * and C++. Some compilers support it without setting __STDC__ or __cplusplus
+ * so we need to carefully check for them too. We don't use configure-checks
+ * for these since we want these headers to remain generic and working for all
+ * platforms.
+ */
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
+ defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
+ defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \
+ defined(__ILEC400__)
+ /* This compiler is believed to have an ISO compatible preprocessor */
+#define CURL_ISOCPP
+#else
+ /* This compiler is believed NOT to have an ISO compatible preprocessor */
+#undef CURL_ISOCPP
+#endif
#ifdef CURL_ISOCPP
#define CINIT(name,type,number) CURLOPT_ ## name = CURLOPTTYPE_ ## type + number
@@ -611,7 +672,7 @@ typedef enum {
/* If the CURLOPT_INFILE is used, this can be used to inform libcurl about
* how large the file being sent really is. That allows better error
- * checking and better verifies that the upload was successful. -1 means
+ * checking and better verifies that the upload was succcessful. -1 means
* unknown size.
*
* For large file support, there is also a _LARGE version of the key
@@ -623,7 +684,7 @@ typedef enum {
/* POST static input fields. */
CINIT(POSTFIELDS, OBJECTPOINT, 15),
- /* Set the referrer page (needed by some CGIs) */
+ /* Set the referer page (needed by some CGIs) */
CINIT(REFERER, OBJECTPOINT, 16),
/* Set the FTP PORT string (interface name, named or numerical IP address)
@@ -659,7 +720,7 @@ typedef enum {
/* This points to a linked list of headers, struct curl_slist kind */
CINIT(HTTPHEADER, OBJECTPOINT, 23),
- /* This points to a linked list of post entries, struct curl_httppost */
+ /* This points to a linked list of post entries, struct HttpPost */
CINIT(HTTPPOST, OBJECTPOINT, 24),
/* name of the file keeping your private SSL-certificate */
@@ -682,7 +743,7 @@ typedef enum {
"cookie awareness" */
CINIT(COOKIEFILE, OBJECTPOINT, 31),
- /* What version to specifically try to use.
+ /* What version to specifly try to use.
See CURL_SSLVERSION defines below. */
CINIT(SSLVERSION, LONG, 32),
@@ -743,7 +804,7 @@ typedef enum {
/* Data passed to the progress callback */
CINIT(PROGRESSDATA, OBJECTPOINT, 57),
- /* We want the referrer field set automatically when following locations */
+ /* We want the referer field set automatically when following locations */
CINIT(AUTOREFERER, LONG, 58),
/* Port of the proxy, can be set in the proxy string as well with:
@@ -840,7 +901,7 @@ typedef enum {
CURL_HTTP_VERSION* enums set below. */
CINIT(HTTP_VERSION, LONG, 84),
- /* Specifically switch on or off the FTP engine's use of the EPSV command. By
+ /* Specificly switch on or off the FTP engine's use of the EPSV command. By
default, that one will always be attempted before the more traditional
PASV command. */
CINIT(FTP_USE_EPSV, LONG, 85),
@@ -910,11 +971,11 @@ typedef enum {
CINIT(HTTP200ALIASES, OBJECTPOINT, 104),
/* Continue to send authentication (user+password) when following locations,
- even when hostname changed. This can potentially send off the name
+ even when hostname changed. This can potentionally send off the name
and password to whatever host the server decides. */
CINIT(UNRESTRICTED_AUTH, LONG, 105),
- /* Specifically switch on or off the FTP engine's use of the EPRT command ( it
+ /* Specificly switch on or off the FTP engine's use of the EPRT command ( it
also disables the LPRT attempt). By default, those ones will always be
attempted before the good old traditional PORT command. */
CINIT(FTP_USE_EPRT, LONG, 106),
@@ -1095,7 +1156,7 @@ typedef enum {
CINIT(CONNECTTIMEOUT_MS, LONG, 156),
/* set to zero to disable the libcurl's decoding and thus pass the raw body
- data to the application even when it is encoded/compressed */
+ data to the appliction even when it is encoded/compressed */
CINIT(HTTP_TRANSFER_DECODING, LONG, 157),
CINIT(HTTP_CONTENT_DECODING, LONG, 158),
@@ -1104,9 +1165,8 @@ typedef enum {
CINIT(NEW_FILE_PERMS, LONG, 159),
CINIT(NEW_DIRECTORY_PERMS, LONG, 160),
- /* Set the behaviour of POST when redirecting. Values must be set to one
- of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */
- CINIT(POSTREDIR, LONG, 161),
+ /* Obey RFC 2616/10.3.2 and keep POSTs as POSTs after a 301 */
+ CINIT(POST301, LONG, 161),
/* used by scp/sftp to verify the host's public key */
CINIT(SSH_HOST_PUBLIC_KEY_MD5, OBJECTPOINT, 162),
@@ -1128,28 +1188,6 @@ typedef enum {
CINIT(SEEKFUNCTION, FUNCTIONPOINT, 167),
CINIT(SEEKDATA, OBJECTPOINT, 168),
- /* CRL file */
- CINIT(CRLFILE, OBJECTPOINT, 169),
-
- /* Issuer certificate */
- CINIT(ISSUERCERT, OBJECTPOINT, 170),
-
- /* (IPv6) Address scope */
- CINIT(ADDRESS_SCOPE, LONG, 171),
-
- /* Collect certificate chain info and allow it to get retrievable with
- CURLINFO_CERTINFO after the transfer is complete. (Unfortunately) only
- working with OpenSSL-powered builds. */
- CINIT(CERTINFO, LONG, 172),
-
- /* "name" and "pwd" to use when fetching. */
- CINIT(USERNAME, OBJECTPOINT, 173),
- CINIT(PASSWORD, OBJECTPOINT, 174),
-
- /* "name" and "pwd" to use with Proxy when fetching. */
- CINIT(PROXYUSERNAME, OBJECTPOINT, 175),
- CINIT(PROXYPASSWORD, OBJECTPOINT, 176),
-
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
@@ -1157,11 +1195,6 @@ typedef enum {
the obsolete stuff removed! */
/* Backwards compatibility with older names */
-/* These are scheduled to disappear by 2011 */
-
-/* This was added in version 7.19.1 */
-#define CURLOPT_POST301 CURLOPT_POSTREDIR
-
/* These are scheduled to disappear by 2009 */
/* The following were added in 7.17.0 */
@@ -1226,14 +1259,6 @@ enum {
CURL_SSLVERSION_LAST /* never use, keep last */
};
-/* symbols to use with CURLOPT_POSTREDIR.
- CURL_REDIR_POST_301 and CURL_REDIR_POST_302 can be bitwise ORed so that
- CURL_REDIR_POST_301 | CURL_REDIR_POST_302 == CURL_REDIR_POST_ALL */
-
-#define CURL_REDIR_GET_ALL 0
-#define CURL_REDIR_POST_301 1
-#define CURL_REDIR_POST_302 2
-#define CURL_REDIR_POST_ALL (CURL_REDIR_POST_301|CURL_REDIR_POST_302)
typedef enum {
CURL_TIMECOND_NONE,
@@ -1288,9 +1313,7 @@ typedef enum {
CFINIT(END),
CFINIT(OBSOLETE2),
- CFINIT(STREAM),
-
- CURLFORM_LASTENTRY /* the last unused */
+ CURLFORM_LASTENTRY /* the last unusued */
} CURLformoption;
#undef CFINIT /* done */
@@ -1312,7 +1335,7 @@ struct curl_forms {
* CURL_FORMADD_MEMORY if the allocation of a FormInfo struct failed
* CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used
* CURL_FORMADD_INCOMPLETE if the some FormInfo is not complete (or error)
- * CURL_FORMADD_MEMORY if a curl_httppost struct cannot be allocated
+ * CURL_FORMADD_MEMORY if a HttpPost struct cannot be allocated
* CURL_FORMADD_MEMORY if some allocation for string copying failed.
* CURL_FORMADD_ILLEGAL_ARRAY if an illegal option is used in an array
*
@@ -1336,7 +1359,7 @@ typedef enum {
*
* DESCRIPTION
*
- * Pretty advanced function for building multi-part formposts. Each invoke
+ * Pretty advanved function for building multi-part formposts. Each invoke
* adds one part that together construct a full post. Then use
* CURLOPT_HTTPPOST to send it off to libcurl.
*/
@@ -1346,11 +1369,9 @@ CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost,
/*
* callback function for curl_formget()
- * The void *arg pointer will be the one passed as second argument to
- * curl_formget().
+ * The void *arg pointer will be the one passed as second argument to curl_formget().
* The character buffer passed to it must not be freed.
- * Should return the buffer length passed to it as the argument "len" on
- * success.
+ * Should return the buffer length passed to it as the argument "len" on success.
*/
typedef size_t (*curl_formget_callback)(void *arg, const char *buf, size_t len);
@@ -1519,15 +1540,6 @@ CURL_EXTERN void curl_slist_free_all(struct curl_slist *);
*/
CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused);
-/* info about the certificate chain, only for OpenSSL builds. Asked
- for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */
-struct curl_certinfo {
- int num_of_certs; /* number of certificates with information */
- struct curl_slist **certinfo; /* for each index in this array, there's a
- linked list with textual information in the
- format "name: value" */
-};
-
#define CURLINFO_STRING 0x100000
#define CURLINFO_LONG 0x200000
#define CURLINFO_DOUBLE 0x300000
@@ -1567,13 +1579,9 @@ typedef enum {
CURLINFO_COOKIELIST = CURLINFO_SLIST + 28,
CURLINFO_LASTSOCKET = CURLINFO_LONG + 29,
CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30,
- CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31,
- CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32,
- CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33,
- CURLINFO_CERTINFO = CURLINFO_SLIST + 34,
/* Fill in new entries below here! */
- CURLINFO_LASTONE = 34
+ CURLINFO_LASTONE = 30
} CURLINFO;
/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as
@@ -1606,7 +1614,7 @@ typedef enum {
/* Different data locks for a single share */
typedef enum {
CURL_LOCK_DATA_NONE = 0,
- /* CURL_LOCK_DATA_SHARE is used internally to say that
+ /* CURL_LOCK_DATA_SHARE is used internaly to say that
* the locking is just made to change the internal state of the share
* itself.
*/
@@ -1648,7 +1656,7 @@ typedef enum {
typedef enum {
CURLSHOPT_NONE, /* don't use */
CURLSHOPT_SHARE, /* specify a data type to share */
- CURLSHOPT_UNSHARE, /* specify which data type to stop sharing */
+ CURLSHOPT_UNSHARE, /* specify shich data type to stop sharing */
CURLSHOPT_LOCKFUNC, /* pass in a 'curl_lock_function' pointer */
CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */
CURLSHOPT_USERDATA, /* pass in a user data pointer used in the lock/unlock
@@ -1673,7 +1681,7 @@ typedef enum {
} CURLversion;
/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by
- basically all programs ever that want to get version information. It is
+ basicly all programs ever, that want to get version information. It is
meant to be a built-in version number for what kind of struct the caller
expects. If the struct ever changes, we redefine the NOW to another enum
from above. */
@@ -1783,21 +1791,4 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);
#include "easy.h" /* nothing in curl is fun without the easy stuff */
#include "multi.h"
-/* the typechecker doesn't work in C++ (yet) */
-#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \
- ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \
- !defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK)
-#include "typecheck-gcc.h"
-#else
-#if defined(__STDC__) && (__STDC__ >= 1)
-/* This preprocessor magic that replaces a call with the exact same call is
- only done to make sure application authors pass exactly three arguments
- to these functions. */
-#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param)
-#define curl_easy_getinfo(handle,info,arg) curl_easy_getinfo(handle,info,arg)
-#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param)
-#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param)
-#endif /* __STDC__ >= 1 */
-#endif /* gcc >= 4.3 && !__cplusplus */
-
#endif /* __CURL_CURL_H */
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/curlver.h b/main/source/includes/libcurl-7.18-nossl/include/curl/curlver.h
similarity index 86%
rename from main/source/includes/libcurl-7.19.3/include/curl/curlver.h
rename to main/source/includes/libcurl-7.18-nossl/include/curl/curlver.h
index 66e5a20a..80d83ebe 100644
--- a/main/source/includes/libcurl-7.19.3/include/curl/curlver.h
+++ b/main/source/includes/libcurl-7.18-nossl/include/curl/curlver.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al.
+ * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -20,24 +20,24 @@
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
- * $Id: curlver.h,v 1.44 2009-01-17 14:56:33 gknauf Exp $
+ * $Id: curlver.h,v 1.35 2008-01-24 14:05:56 gknauf Exp $
***************************************************************************/
/* This header file contains nothing but libcurl version info, generated by
a script at release-time. This was made its own header file in 7.11.2 */
/* This is the global package copyright */
-#define LIBCURL_COPYRIGHT "1996 - 2009 Daniel Stenberg, ."
+#define LIBCURL_COPYRIGHT "1996 - 2008 Daniel Stenberg, ."
/* This is the version number of the libcurl package from which this header
file origins: */
-#define LIBCURL_VERSION "7.19.3"
+#define LIBCURL_VERSION "7.18.0"
/* The numeric version number is also available "in parts" by using these
defines: */
#define LIBCURL_VERSION_MAJOR 7
-#define LIBCURL_VERSION_MINOR 19
-#define LIBCURL_VERSION_PATCH 3
+#define LIBCURL_VERSION_MINOR 18
+#define LIBCURL_VERSION_PATCH 0
/* This is the numeric version of the libcurl version number, meant for easier
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
@@ -54,7 +54,7 @@
and it is always a greater number in a more recent release. It makes
comparisons with greater than and less than work.
*/
-#define LIBCURL_VERSION_NUM 0x071303
+#define LIBCURL_VERSION_NUM 0x071200
/*
* This is the date and time when the full source package was created. The
@@ -65,6 +65,6 @@
*
* "Mon Feb 12 11:35:33 UTC 2007"
*/
-#define LIBCURL_TIMESTAMP "Mon Jan 19 09:59:36 UTC 2009"
+#define LIBCURL_TIMESTAMP "Mon Jan 28 17:28:54 UTC 2008"
#endif /* __CURL_CURLVER_H */
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/easy.h b/main/source/includes/libcurl-7.18-nossl/include/curl/easy.h
similarity index 79%
rename from main/source/includes/libcurl-7.19.3/include/curl/easy.h
rename to main/source/includes/libcurl-7.18-nossl/include/curl/easy.h
index 40449c3e..b5867200 100644
--- a/main/source/includes/libcurl-7.19.3/include/curl/easy.h
+++ b/main/source/includes/libcurl-7.18-nossl/include/curl/easy.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al.
+ * Copyright (C) 1998 - 2004, Daniel Stenberg, , et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
- * $Id: easy.h,v 1.14 2008-05-12 21:43:28 bagder Exp $
+ * $Id: easy.h,v 1.13 2004/11/09 14:02:58 giva Exp $
***************************************************************************/
#ifdef __cplusplus
extern "C" {
@@ -74,28 +74,6 @@ CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl);
*/
CURL_EXTERN void curl_easy_reset(CURL *curl);
-/*
- * NAME curl_easy_recv()
- *
- * DESCRIPTION
- *
- * Receives data from the connected socket. Use after successful
- * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
- */
-CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen,
- size_t *n);
-
-/*
- * NAME curl_easy_send()
- *
- * DESCRIPTION
- *
- * Sends data over the connected socket. Use after successful
- * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
- */
-CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer,
- size_t buflen, size_t *n);
-
#ifdef __cplusplus
}
#endif
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/mprintf.h b/main/source/includes/libcurl-7.18-nossl/include/curl/mprintf.h
similarity index 89%
rename from main/source/includes/libcurl-7.19.3/include/curl/mprintf.h
rename to main/source/includes/libcurl-7.18-nossl/include/curl/mprintf.h
index d7202de1..cf265232 100644
--- a/main/source/includes/libcurl-7.19.3/include/curl/mprintf.h
+++ b/main/source/includes/libcurl-7.18-nossl/include/curl/mprintf.h
@@ -20,7 +20,7 @@
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
- * $Id: mprintf.h,v 1.16 2008-05-20 10:21:50 patrickm Exp $
+ * $Id: mprintf.h,v 1.15 2007-08-07 12:44:38 patrickm Exp $
***************************************************************************/
#include
@@ -35,13 +35,11 @@ extern "C" {
CURL_EXTERN int curl_mprintf(const char *format, ...);
CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...);
CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...);
-CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength,
- const char *format, ...);
+CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, const char *format, ...);
CURL_EXTERN int curl_mvprintf(const char *format, va_list args);
CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args);
CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args);
-CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength,
- const char *format, va_list args);
+CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, const char *format, va_list args);
CURL_EXTERN char *curl_maprintf(const char *format, ...);
CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args);
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/multi.h b/main/source/includes/libcurl-7.18-nossl/include/curl/multi.h
similarity index 98%
rename from main/source/includes/libcurl-7.19.3/include/curl/multi.h
rename to main/source/includes/libcurl-7.18-nossl/include/curl/multi.h
index 153f7721..eada5e7a 100644
--- a/main/source/includes/libcurl-7.19.3/include/curl/multi.h
+++ b/main/source/includes/libcurl-7.18-nossl/include/curl/multi.h
@@ -20,7 +20,7 @@
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
- * $Id: multi.h,v 1.45 2008-05-20 10:21:50 patrickm Exp $
+ * $Id: multi.h,v 1.44 2007-05-30 20:04:44 bagder Exp $
***************************************************************************/
/*
This is an "external" header file. Don't give away any internals here!
@@ -283,7 +283,7 @@ CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle,
#undef CINIT /* re-using the same name as in curl.h */
#ifdef CURL_ISOCPP
-#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num
+#define CINIT(name,type,number) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + number
#else
/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
#define LONG CURLOPTTYPE_LONG
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/stdcheaders.h b/main/source/includes/libcurl-7.18-nossl/include/curl/stdcheaders.h
similarity index 100%
rename from main/source/includes/libcurl-7.19.3/include/curl/stdcheaders.h
rename to main/source/includes/libcurl-7.18-nossl/include/curl/stdcheaders.h
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/types.h b/main/source/includes/libcurl-7.18-nossl/include/curl/types.h
similarity index 100%
rename from main/source/includes/libcurl-7.19.3/include/curl/types.h
rename to main/source/includes/libcurl-7.18-nossl/include/curl/types.h
diff --git a/main/source/includes/libcurl-7.18-nossl/libcurl.exp b/main/source/includes/libcurl-7.18-nossl/libcurl.exp
new file mode 100644
index 00000000..20848d6f
Binary files /dev/null and b/main/source/includes/libcurl-7.18-nossl/libcurl.exp differ
diff --git a/main/source/includes/libcurl-7.18-nossl/libcurl.lib b/main/source/includes/libcurl-7.18-nossl/libcurl.lib
new file mode 100644
index 00000000..38b6b574
Binary files /dev/null and b/main/source/includes/libcurl-7.18-nossl/libcurl.lib differ
diff --git a/main/source/includes/libcurl-7.19.3/CHANGES b/main/source/includes/libcurl-7.19.3/CHANGES
deleted file mode 100644
index 4a514738..00000000
--- a/main/source/includes/libcurl-7.19.3/CHANGES
+++ /dev/null
@@ -1,2065 +0,0 @@
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
-
- Changelog
-
-Version 7.19.3 (19 January 2009)
-
-Daniel Stenberg (16 Jan 2009)
-- Andrew de los Reyes fixed curlbuild.h for "generic" gcc builds on PPC, both
- 32 bit and 64 bit.
-
-Daniel Stenberg (15 Jan 2009)
-- Tim Ansell fixed a compiler warning in lib/cookie.c
-
-Daniel Stenberg (14 Jan 2009)
-- Grant Erickson fixed timeouts for TFTP such that specifying a
- connect-timeout, a max-time or both options work correctly and as expected
- by passing the correct boolean value to Curl_timeleft via the
- 'duringconnect' parameter.
-
- With this small change, curl TFTP now behaves as expected (and likely as
- originally-designed):
-
- 1) For non-existent or unreachable dotted IP addresses:
-
- a) With no options, follows the default curl 300s timeout...
- b) With --connect-timeout only, follows that value...
- c) With --max-time only, follows that value...
- d) With both --connect-timeout and --max-time, follows the smaller value...
-
- and times out with a "curl: (7) Couldn't connect to server" error.
-
- 2) For transfers to/from a valid host:
-
- a) With no options, follows default curl 300s timeout for the
- first XRQ/DATA/ACK transaction and the default TFTP 3600s
- timeout for the remainder of the transfer...
-
- b) With --connect-time only, follows that value for the
- first XRQ/DATA/ACK transaction and the default TFTP 3600s
- timeout for the remainder of the transfer...
-
- c) With --max-time only, follows that value for the first
- XRQ/DATA/ACK transaction and for the remainder of the
- transfer...
-
- d) With both --connect-timeout and --max-time, follows the former
- for the first XRQ/DATA/ACK transaction and the latter for the
- remainder of the transfer...
-
- and times out with a "curl: (28) Timeout was reached" error as
- appropriate.
-
-Daniel Stenberg (13 Jan 2009)
-- Michael Wallner fixed a NULL pointer deref when calling
- curl_easy_setup(curl, CURLOPT_COOKIELIST, "SESS") on a CURL handle with no
- cookies data.
-
-- Stefan Teleman brought a patch to fix the default curlbuild.h file for the
- SunPro compilers.
-
-Daniel Stenberg (12 Jan 2009)
-- Based on bug report #2498665 (http://curl.haxx.se/bug/view.cgi?id=2498665)
- by Daniel Black, I've now added magic to the configure script that makes it
- use pkg-config to detect gnutls details as well if the existing method
- (using libgnutls-config) fails. While doing this, I cleaned up and unified
- the pkg-config usage when detecting openssl and nss as well.
-
-Daniel Stenberg (11 Jan 2009)
-- Karl Moerder brought the patch that creates vc9 Makefiles, and I made
- 'maketgz' now use the actual makefile targets to do the VC8 and VC9
- makefiles.
-
-Daniel Stenberg (10 Jan 2009)
-- Emil Romanus fixed:
-
- When using the multi interface over HTTP and the server returns a Location
- header, the running easy handle will get stuck in the CURLM_STATE_PERFORM
- state, leaving the external event loop stuck waiting for data from the
- ingoing socket (when using the curl_multi_socket_action stuff). While this
- bug was pretty hard to find, it seems to require only a one-line fix. The
- break statement on line 1374 in multi.c caused the function to skip the call
- to multistate().
-
- How to reproduce this bug? Well, that's another question. evhiperfifo.c in
- the examples directory chokes on this bug only _sometimes_, probably
- depending on how fast the URLs are added. One way of testing the bug out is
- writing to hiper.fifo from more than one source at the same time.
-
-Daniel Fandrich (7 Jan 2009)
-- Unified much of the SessionHandle initialization done in Curl_open() and
- curl_easy_reset() by creating Curl_init_userdefined(). This had the side
- effect of fixing curl_easy_reset() so it now also resets
- CURLOPT_FTP_FILEMETHOD and CURLOPT_SSL_SESSIONID_CACHE
-
-Daniel Stenberg (7 Jan 2009)
-- Rob Crittenden did once again provide an NSS update:
-
- I have to jump through a few hoops now with the NSS library initialization
- since another part of an application may have already initialized NSS by the
- time Curl gets invoked. This patch is more careful to only shutdown the NSS
- library if Curl did the initialization.
-
- It also adds in a bit of code to set the default ciphers if the app that
- call NSS_Init* did not call NSS_SetDomesticPolicy() or set specific
- ciphers. One might argue that this lets other application developers get
- lazy and/or they aren't using the NSS API correctly, and you'd be right.
- But still, this will avoid terribly difficult-to-trace crashes and is
- generally helpful.
-
-Daniel Stenberg (1 Jan 2009)
-- 'reconf' is removed since we rather have users use 'buildconf'
-
-Daniel Stenberg (31 Dec 2008)
-- Bas Mevissen reported http://curl.haxx.se/bug/view.cgi?id=2479030 pointing
- out that 'reconf' didn't properly point out the m4 subdirectory when running
- aclocal.
-
-Daniel Stenberg (29 Dec 2008)
- - Phil Lisiecki filed bug report #2413067
- (http://curl.haxx.se/bug/view.cgi?id=2413067) that identified a problem that
- would cause libcurl to mark a DNS cache entry "in use" eternally if the
- subsequence TCP connect failed. It would thus never get pruned and refreshed
- as it should've been.
-
- Phil provided his own patch to this problem that while it seemed to work
- wasn't complete and thus I wrote my own fix to the problem.
-
-Daniel Stenberg (28 Dec 2008)
-- Peter Korsgaard fixed building libcurl with "configure --with-ssl
- --disable-verbose".
-
-- Anthony Bryan fixed more language and spelling flaws in man pages.
-
-Daniel Stenberg (22 Dec 2008)
-- Given a recent enough libssh2, libcurl can now seek/resume with SFTP even
- on file indexes beyond 2 or 4GB.
-
-- Anthony Bryan provided a set of patches that cleaned up manual language,
- corrected spellings and more.
-
-Daniel Stenberg (20 Dec 2008)
-- Igor Novoseltsev fixed a bad situation for the multi_socket() API when doing
- pipelining, as libcurl could then easily get confused and A) work on the
- handle that was not "first in queue" on a pipeline, or even B) tell the app
- to REMOVE a socket while it was in use by a second handle in a pipeline. Both
- errors caused hanging or stalling applications.
-
-Daniel Stenberg (19 Dec 2008)
-- curl_multi_timeout() could return a timeout value of 0 even though nothing
- was actually ready to get done, as the internal time resolution is higher
- than the returned millisecond timer. Therefore it could cause applications
- running on fast processors to do short bursts of busy-loops.
- curl_multi_timeout() will now only return 0 if the timeout is actually
- alreay triggered.
-
-- Using the libssh2 0.19 function libssh2_session_block_directions(), libcurl
- now has an improved ability to do right when the multi interface (both
- "regular" and multi_socket) is used for SCP and SFTP transfers. This should
- result in (much) less busy-loop situations and thus less CPU usage with no
- speed loss.
-
-Daniel Stenberg (17 Dec 2008)
-- SCP and SFTP with the multi interface had the same flaw: the 'DONE'
- operation didn't complete properly if the EAGAIN equivalent was returned but
- libcurl would simply continue with a half-completed close operation
- performed. This ruined persistent connection re-use and cause some
- SSH-protocol errors in general. The correction is unfortunately adding a
- blocking function - doing it entirely non-blocking should be considered for
- a better fix.
-
-Gisle Vanem (16 Dec 2008)
-- Added the possibility to use the Watt-32 tcp/ip stack under Windows.
- The change simply involved adding a USE_WATT32 section in the
- config-win32.h files (under ./lib and ./src). This section disables
- the use of any Winsock headers.
-
-Daniel Stenberg (16 Dec 2008)
-- libssh2_sftp_last_error() was wrongly used at some places in libcurl which
- made libcurl sometimes not properly abort problematic SFTP transfers.
-
-Daniel Stenberg (12 Dec 2008)
-- More work with Igor Novoseltsev to first fix the remaining stuff for
- removing easy handles from multi handles when the easy handle is/was within
- a HTTP pipeline. His bug report #2351653
- (http://curl.haxx.se/bug/view.cgi?id=2351653) was also related and was
- eventually fixed by a patch by Igor himself.
-
-Yang Tse (12 Dec 2008)
-- Patrick Monnerat fixed a build regression, introduced in 7.19.2, affecting
- OS/400 compilations with IPv6 enabled.
-
-Daniel Stenberg (12 Dec 2008)
-- Mark Karpeles filed bug report #2416182 titled "crash in ConnectionExists
- when using duphandle+curl_mutli"
- (http://curl.haxx.se/bug/view.cgi?id=2416182) which showed that
- curl_easy_duphandle() wrongly also copied the pointer to the connection
- cache, which was plain wrong and caused a segfault if the handle would be
- used in a different multi handle than the handle it was duplicated from.
-
-Daniel Stenberg (11 Dec 2008)
-- Keshav Krity found out that libcurl failed to deal with dotted IPv6
- addresses if they were very long (>39 letters) due to a too strict address
- validity parser. It now accepts addresses up to 45 bytes long.
-
-Daniel Stenberg (11 Dec 2008)
-- Internet Explorer had a broken HTTP digest authentication before v7 and
- there are servers "out there" that relies on the client doing this broken
- Digest authentication. Apache even comes with an option to work with such
- broken clients.
-
- The difference is only for URLs that contain a query-part (a '?'-letter and
- text to the right of it).
-
- libcurl now supports this quirk, and you enable it by setting the
- CURLAUTH_DIGEST_IE bit in the bitmask you pass to the CURLOPT_HTTPAUTH or
- CURLOPT_PROXYAUTH options. They are thus individually controlled to server
- and proxy.
-
- (note that there's no way to activate this with the curl tool yet)
-
-Daniel Fandrich (9 Dec 2008)
-- Added test cases 1089 and 1090 to test --write-out after a redirect to
- test a report that the size didn't work, but these test cases pass.
-
-- Documented CURLOPT_CONNECT_ONLY as being useful only on HTTP URLs.
-
-Daniel Stenberg (9 Dec 2008)
-- Ken Hirsch simplified how libcurl does FTPS: now it doesn't assume any
- particular state for the control connection like it did before for implicit
- FTPS (libcurl assumed such control connections to be encrypted while some
- FTPS servers such as FileZilla assumes such connections to be clear
- mode). Use the CURLOPT_USE_SSL option to set your desired level.
-
-Daniel Stenberg (8 Dec 2008)
-- Fred Machado posted about a weird FTP problem on the curl-users list and when
- researching it, it turned out he got a 550 response back from a SIZE command
- and then I fell over the text in RFC3659 that says:
-
- The presence of the 550 error response to a SIZE command MUST NOT be taken
- by the client as an indication that the file cannot be transferred in the
- current MODE and TYPE.
-
- In other words: the change I did on September 30th 2008 and that has been
- included in the last two releases were a regression and a bad idea. We MUST
- NOT take a 550 response from SIZE as a hint that the file doesn't exist.
-
-- Christian Krause filed bug #2221237
- (http://curl.haxx.se/bug/view.cgi?id=2221237) that identified an infinite
- loop during GSS authentication given some specific conditions. With his
- patience and great feedback I managed to narrow down the problem and
- eventually fix it although I can't test any of this myself!
-
-Daniel Fandrich (3 Dec 2008)
-- Fixed the getifaddrs version of Curl_if2ip to work on systems without IPv6
- support (e.g. Minix)
-
-Daniel Stenberg (3 Dec 2008)
-- Igor Novoseltsev filed bug #2351645
- (http://curl.haxx.se/bug/view.cgi?id=2351645) that identified a problem with
- the multi interface that occured if you removed an easy handle while in
- progress and the handle was used in a HTTP pipeline.
-
-- Pawel Kierski pointed out a mistake in the cookie code that could lead to a
- bad fclose() after a fatal error had occured.
- (http://curl.haxx.se/bug/view.cgi?id=2382219)
-
-Daniel Fandrich (25 Nov 2008)
-- If a HTTP request is Basic and num is already >=1000, the HTTP test
- server adds 1 to num to get the data section to return. This allows
- testing authentication negotiations using the Basic authentication
- method.
-
-- Added tests 1087 and 1088 to test Basic authentication on a redirect
- with and without --location-trusted
-
-Daniel Stenberg (24 Nov 2008)
-- Based on a patch by Vlad Grachov, libcurl now uses a new libssh2 0.19
- function when built to support SCP and SFTP that helps the library to know
- in which direction a particular libssh2 operation would return EAGAIN so
- that libcurl knows what socket conditions to wait for before trying the
- function call again. Previously (and still when using libssh2 0.18 or
- earlier), libcurl will busy-loop in this situation when the easy interface
- is used!
-
-Daniel Fandrich (20 Nov 2008)
-- Automatically detect OpenBSD's CA cert bundle.
-
-Daniel Stenberg (19 Nov 2008)
-- I removed the default use of "Pragma: no-cache" from libcurl when a proxy is
- used. It has been used since forever but it was never a good idea to use
- unless explicitly asked for.
-
-- Josef Wolf's extension that allows a $TESTDIR/gdbinit$testnum file that when
- you use runtests.pl -g, will be sourced by gdb to allow additional fancy or
- whatever you see fit
-
-- Christian Krause reported and fixed a memory leak that would occur with HTTP
- GSS/kerberos authentication (http://curl.haxx.se/bug/view.cgi?id=2284386)
-
-- Andreas Wurf and Markus Koetter helped me analyze a problem that Andreas got
- when uploading files to a single FTP server using multiple easy handle
- handles with the multi interface. Occasionally a handle would stall in
- mysterious ways.
-
- The problem turned out to be a side-effect of the ConnectionExists()
- function's eagerness to re-use a handle for HTTP pipelining so it would
- select it even if already being in use, due to an inadequate check for its
- chances of being used for pipelnining.
-
-Daniel Fandrich (17 Nov 2008)
-- Added more compiler warning options for gcc 4.3
-
-Yang Tse (17 Nov 2008)
-- Fix a remaining problem in the inet_pton() runtime configure check. And
- fix internal Curl_inet_pton() failures to reject certain malformed literals.
-
-- Make configure script check if ioctl with the SIOCGIFADDR command can be
- used, and define HAVE_IOCTL_SIOCGIFADDR if appropriate.
-
-Daniel Stenberg (16 Nov 2008)
-- Christian Krause fixed a build failure when building with gss support
- enabled and FTP disabled.
-
-- Added check for NULL returns from strdup() in src/main.c and lib/formdata.c
- - reported by Jim Meyering also prevent buffer overflow on MSDOS when you do
- for example -O on a url with a file name part longer than PATH_MAX letters
-
-- lib/nss.c fixes based on the report by Jim Meyering: I went over and added
- checks for return codes for all calls to malloc and strdup that were
- missing. I also changed a few malloc(13) to use arrays on the stack and a
- few malloc(PATH_MAX) to instead use aprintf() to lower memory use.
-
-- I fixed a memory leak in Curl_nss_connect() when CURLOPT_ISSUERCERT is
- in use.
-
-Daniel Fandrich (14 Nov 2008)
-- Added .xml as one of the few common file extensions known by the multipart
- form generator.
-
-- Added some #ifdefs around header files and change the EAGAIN test to
- fix compilation on Cell (reported by Jeff Curley).
-
-Yang Tse (14 Nov 2008)
-- Fixed several configure script issues affecting checks for inet_ntoa_r(),
- inet_ntop(), inet_pton(), getifaddrs(), fcntl() and getaddrinfo().
-
-Yang Tse (13 Nov 2008)
-- Refactored configure script detection of functions used to set sockets into
- non-blocking mode, and decouple function detection from function capability.
-
-Version 7.19.2 (13 November 2008)
-
-Michal Marek (13 Nov 2008)
-- Fixed a potential data loss in Curl_client_write() when the transfer is
- paused.
-
-Daniel Stenberg (11 Nov 2008)
-- Rainer Canavan filed bug #2255627
- (http://curl.haxx.se/bug/view.cgi?id=2255627) which pointed out that a
- program using libcurl's multi interface to download a HTTPS page with a
- libcurl built powered by OpenSSL, would easily get silly and instead hand
- over SSL details as data instead of the actual HTTP headers and body. This
- happened because libcurl would consider the connection handshake done too
- early. This problem was introduced at September 22nd 2008 with my fix of the
- bug #2107377
-
- The correct fix is now instead done within the GnuTLS-handling code, as both
- the OpenSSL and the NSS code already deal with this situation in similar
- fashion. I added test case 560 in an attempt to verify this fix, but
- unfortunately it didn't trigger it even before this fix!
-
-Yang Tse (11 Nov 2008)
-- Related with bug #2230535 (http://curl.haxx.se/bug/view.cgi?id=2230535)
- Daniel Fandrich noticed that curl_addrinfo was also missing in the build
- process of other four non-configure platforms. Added now.
-
-Daniel Fandrich (7 Nov 2008)
-- The getifaddrs() version of Curl_if2ip() crashed when used on a Linux
- system with a TEQL load-balancing device configured, which doesn't
- have an address. Thanks to Adam Sampson for spotting this (bug #2234923).
-
-Yang Tse (6 Nov 2008)
-- Merged existing IPv4 and IPv6 Curl_ip2addr functions into a single one
- which now also takes a protocol address family argument.
-
-- Bug #2230535 (http://curl.haxx.se/bug/view.cgi?id=2230535) pointed out a
- problem with MSVC 6 makefile that caused a build failure. It was noted that
- the curl_addrinfo.obj reference was missing. I took the opportunity to sort
- the list in which this was missing. Issue submitted by John Wilkinson.
-
-Version 7.19.1 (5 November 2008)
-
-Daniel Stenberg (4 Nov 2008)
-- CURLINFO_FILETIME now works for file:// transfers as well
-
-Daniel Stenberg (3 Nov 2008)
-- Bug #2218480 (http://curl.haxx.se/bug/view.cgi?id=2218480) pointed out a
- problem with my CURLINFO_PRIMARY_IP fix from October 7th that caused a NULL
- pointer read. I also took the opportunity to clean up this logic (storing of
- the connection's IP address) somewhat as we had it stored in two different
- places and ways previously and they are now unified.
-
-Yang Tse (3 Nov 2008)
-- Fix undersized IPv6 address internal buffer. IPv6 address strings longer
- than 35 characters would be truncated.
-
-Daniel Stenberg (2 Nov 2008)
-- Daniel Johnson reported and fixed:
-
- When c-ares isn't enabled, libcurl by default calls getaddrinfo with family
- set to PF_UNSPEC which causes getaddrinfo to return all available addresses,
- both IPv4 and IPv6. Libcurl then tries each one until it can connect. If the
- net connection doesn't support IPv6, libcurl can still fall back to IPv4.
-
- However, since c-ares doesn't support PF_UNSPEC, when it's used it defaults
- to using family=PF_INET6 and therefore only returns IPv6 addresses when AAAA
- records are available, even if IPv4 addresses are also available. The effect
- is that since my ISP doesn't do IPv6, libcurl can't connect at all to a site
- that has AAAA records. It will work if I explicitly use CURL_IPRESOLVE_V4 or
- --ipv4 with the curl tool. I discovered this when curl would fail to connect
- to seemingly random sites. It turns out they weren't random, they were sites
- with AAAA records.
-
- So now libcurl defaults to PF_INET... until c-ares has been tought to offer
- both.
-
-Yang Tse (31 Oct 2008)
-- Tests 558 and 559 are stabilized. These two tests were initially introduced
- to aid in the location of a seg-fault which was only triggered on non-debug
- builds done with the icc 9.1 Intel compiler. Test 558 does not trigger the
- problem, but test 559 does trigger it. As of today, it isn't yet absolutely
- clear if it is a compiler optimizer issue or a memory corruption one.
-
-Yang Tse (30 Oct 2008)
-- Use our Curl_addrinfo structure definition to handle address info data even
- when a system addrinfo struct is available. Provide and use a wrapper around
- systems getaddrinfo function, Curl_getaddrinfo_ex which returns a pointer to
- a list of dynamically allocated Curl_addrinfo structs.
-
- Configure will check freeaddrinfo and getaddrinfo functions and define
- preprocessor symbols HAVE_FREEADDRINFO and HAVE_GETADDRINFO when appropriate.
-
-Daniel Fandrich (29 Oct 2008)
-- Fixed a bug that caused a few bytes of garbage to be sent after a
- curl_easy_pause() during a chunky upload. Reported by Steve Roskowski.
-
-Daniel Fandrich (28 Oct 2008)
-- Changed the "resolve" test precheck program to verify that an IPv6 socket
- can be created before resolving the IPv6 name. In the context of running
- a test, it doesn't make sense to run an IPv6 test when a host is resolvable
- but IPv6 isn't usable. This should fix failures of test 1085 on hosts with
- library and DNS support for IPv6 but where actual use of IPv6 has been
- administratively disabled.
-
-Daniel Fandrich (24 Oct 2008)
-- Added experimental support for zlib and OpenSSL on Symbian OS.
-
-Daniel Fandrich (21 Oct 2008)
-- Fixed some problems with SFTP range support to fix test cases 634 through
- 637.
-
-Daniel Fandrich (17 Oct 2008)
-- Fixed a compile error reported by Albert Chin on AIX and IRIX when using
- GTLS.
-
-Daniel Stenberg (16 Oct 2008)
-- Igor Novoseltsev added CURLOPT_PROXYUSER and CURLOPT_PROXYPASSWORD that then
- make CURLOPT_PROXYUSERPWD sort of deprecated. The primary motive for adding
- these new options is that they have no problems with the colon separator
- that the CURLOPT_PROXYUSERPWD option does.
-
-Daniel Stenberg (15 Oct 2008)
-- Pascal Terjan filed bug #2154627
- (http://curl.haxx.se/bug/view.cgi?id=2154627) which pointed out that libcurl
- uses strcasecmp() in multiple places where it causes failures when the
- Turkish locale is used. This is because 'i' and 'I' isn't the same letter so
- strcasecmp() on those letters are different in Turkish than in English (or
- just about all other languages). I thus introduced a totally new internal
- function in libcurl (called Curl_raw_equal) for doing case insentive
- comparisons for english-(ascii?) style strings that thus will make "file"
- and "FILE" match even if the Turkish locale is selected.
-
-Daniel Fandrich (15 Oct 2008)
-- A command is considered to have failed if it returns a non-zero
- return code. This way, if the precheck command can't be run at all for
- whatever reason, it's treated as a precheck failure which causes the
- test to be skipped.
-
-Daniel Stenberg (15 Oct 2008)
-- John Wilkinson filed bug #2155496
- (http://curl.haxx.se/bug/view.cgi?id=2155496) pointing out an error case
- without a proper human-readable error message. When a read callback returns
- a too large value (like when trying to return a negative number) it would
- trigger and the generic error message then makes the proplem slightly
- different to track down. I've added an error message for this now.
-
-Daniel Fandrich (9 Oct 2008)
-- Fixed the --interface option to work with IPv6 connections on glibc
- systems supporting getifaddrs(). Also fixed a problem where an IPv6
- address could be chosen instead of an IPv4 one for --interface when it
- involved a name lookup.
-
-Daniel Fandrich (8 Oct 2008)
-- Added tests 1082 through 1085 to test symbolic --interface parameters
-
-- Added tests 633 through 637 to test the new file range support for SFTP.
- All but the first test cause an infinite loop or other failure and so
- are added to DISABLED.
-
-Daniel Stenberg (8 Oct 2008)
-- John Wilkinson filed bug #2152270
- (http://curl.haxx.se/bug/view.cgi?id=2152270) which identified and fixed a
- CURLINFO_REDIRECT_URL memory leak and an additional wrong-doing:
-
- Any subsequent transfer with a redirect leaks memory, eventually crashing
- the process potentially.
-
- Any subsequent transfer WITHOUT a redirect causes the most recent redirect
- that DID occur on some previous transfer to still be reported.
-
-- Igor Novoseltsev filed bug #2111613
- (http://curl.haxx.se/bug/view.cgi?id=2111613) that eventually identified a
- flaw in how the multi_socket interface in some cases missed to call the
- timeout callback when easy interfaces are removed and added within the same
- millisecond.
-
-- Igor Novoseltsev brought a patch that introduced two new options to
- curl_easy_setopt: CURLOPT_USERNAME and CURLOPT_PASSWORD that sort of
- deprecates the good old CURLOPT_USERPWD since they allow applications to set
- the user name and password independently and perhaps more importantly allow
- both to contain colon(s) which CURLOPT_USERPWD doesn't fully support.
-
-Daniel Fandrich (7 Oct 2008)
-- Changed the handling of read/write errors in Curl_perform() to allow a
- a fresh connection to be made in such cases and the request retransmitted.
- This should fix test case 160. Added test case 1079 in an attempt to
- test a similar connection dropping scenario, but as a race condition, it's
- hard to test reliably.
-
-- Created test cases 1080 and 1081 to reproduce a problem of
- CURLINFO_REDIRECT_URL leaking memory and returning incorrect results when
- two URLs are requested. Reported by vmpdemo in bug #2152270
-
-Daniel Stenberg (7 Oct 2008)
-- Fixed CURLINFO_PRIMARY_IP: When libcurl created a connection to host A then
- the app re-used the handle to do a connection to host B and then again
- re-used the handle to host A, it would not update the info with host A's IP
- address (due to the connection being re-used) but it would instead report
- the info from host B.
-
-Yang Tse (7 Oct 2008)
-- Added --enable-optimize configure option to enable and disable compiler
- optimizations to allow decoupled setting from --enable-debug.
-
-Yang Tse (2 Oct 2008)
-- Added --enable-warnings configure option to enable and disable strict
- compiler warnings to allow decoupled setting from --enable-debug.
-
- runtests.pl will now run with picky compiler warnings enabled unless
- explicitly disabled.
-
-Daniel Fandrich (1 Oct 2008)
-- "make clean" now cleans out the docs and tests directories, too.
-
-Daniel Stenberg (30 Sep 2008)
-- The libcurl FTP code now returns CURLE_REMOTE_FILE_NOT_FOUND error when SIZE
- gets a 550 response back for the cases where a download (or NOBODY) is
- wanted. It still allows a 550 as response if the SIZE is used as part of an
- upload process (like if resuming an upload is requested and the file isn't
- there before the upload). I also modified the FTP test server and a few test
- cases accordingly to match this modified behavior.
-
-Daniel Stenberg (29 Sep 2008)
-- Daniel Egger provided a patch that allows you to disable proxy support in
- libcurl to somewhat reduce the size of the binary. Run configure
- --disable-proxy.
-
-Daniel Fandrich (29 Sep 2008)
-- Moved all signal-based name resolution timeout handling into a single new
- Curl_resolv_timeout function to reduce coupling.
-
-Daniel Stenberg (29 Sep 2008)
-- Ian Lynagh provided a patch that now makes CURLOPT_RANGE work fine for SFTP
- downloads!
-
-- Maxim Ivanov filed bug report #2107803
- (http://curl.haxx.se/bug/view.cgi?id=2107803) "no CURLINFO_REDIRECT_URL in
- multi mode" together with a patch that fixed the problem.
-
-Daniel Stenberg (25 Sep 2008)
-- Emanuele Bovisio submitted bug report #2126435. We fixed the HTTP Digest
- auth code to not behave badly when getting a blank realm with
- realm="". http://curl.haxx.se/bug/view.cgi?id=2126435
-
-Daniel Fandrich (23 Sep 2008)
-- Make sure not to dereference the wrong UrlState proto union member when
- switching from one protocol to another in a single request (e.g.
- redirecting from HTTP to FTP as in test 1055) by resetting
- state.expect100header before every request.
-
-Daniel Stenberg (23 Sep 2008)
-- Introducing Jamie Lokier's function for date to epoch conversion used in the
- date parser function. This makes our function less dependent on system-
- provided functions and instead we do all the magic ourselves. We also no
- longer depend on the TZ environment variable. Switching to our own converter
- has some side-effect and they are noted here for future reference (taken
- from a mail by mr Lokier):
-
- time_t is not measured in seconds in the ANSI C standard - or even counted
- uniformly - weird platforms can use other numeric representations of dates
- in time_t - hence the difftime() function.
-
- On POSIX time_t is measured in UTC seconds, which means not including leap
- seconds. But it's mentioned in a few places that some old POSIX-ish
- environments include leap seconds in their time_t counts...
-
- I'm pretty sure [the new implementation is] correct on anything truly POSIX.
- And it's obviously a lot less dependent on platform quirks and corner cases
- in many ways than the mktime() version.
-
-- Rob Crittenden brought a patch to "add some locking for thread-safety to NSS
- implementation".
-
-Daniel Stenberg (22 Sep 2008)
-- Made the SOCKS code use the new Curl_read_plain() function to fix the bug
- Markus Moeller reported: http://curl.haxx.se/mail/archive-2008-09/0016.html
-
-- recv() errors other than those equal to EAGAIN now cause proper
- CURLE_RECV_ERROR to get returned. This made test case 160 fail so I've now
- disabled it until we can figure out another way to exercise that logic.
-
-- Michael Goffioul filed bug report #2107377 "Problem with multi + GnuTLS +
- proxy" (http://curl.haxx.se/bug/view.cgi?id=2107377) that showed how a multi
- interface using program didn't work when built with GnuTLS and a CONNECT
- request was done over a proxy (basically test 502 over a proxy to a HTTPS
- site). It turned out the ssl connect function would get called twice which
- caused the second call to fail.
-
-Daniel Fandrich (22 Sep 2008)
-- Fixed test 539 to handle an out of memory condition that shows up now
- that memdebug.h is included in the test programs.
-
-Yang Tse (20 Sep 2008)
-- Fix regression in configure script which affected OpenSSL builds on MSYS.
-
-Yang Tse (19 Sep 2008)
-- configure script now checks availability of the alarm() function.
-
-Daniel Fandrich (18 Sep 2008)
-- Don't bother to install a SIGALRM handler unless alarm() is available.
- Also, leave the existing SIGALRM handler alone if the timeout is too small
- to handle.
-
-Daniel Fandrich (17 Sep 2008)
-- Removed reference to curl-ca-bundle.crt in the host verification failure
- error message.
-
-Yang Tse (17 Sep 2008)
-- Improve configure detection of gethostname(), localtime_r(), strstr(),
- getservbyport_r(), gethostbyaddr_r() and gethostbyname_r().
-
-Yang Tse (14 Sep 2008)
-- Improve configure detection of strcasecmp(), strcasestr(), strcmpi(),
- stricmp(), strlcat(), strncasecmp(), strncmpi() and strnicmp().
-
-Yang Tse (13 Sep 2008)
-- Disable tracking of fdopen() calls in the low-level memory leak tracking
- code when fdopen() is not available, to avoid compiler error.
-
-Yang Tse (12 Sep 2008)
-- Further adjust detection of strerror_r() in the configure process, and
- ensure that errno is not modified inside Curl_strerror().
-
-Yang Tse (10 Sep 2008)
-- Improve detection of gmtime_r(), strtoll(), sigaction(), strtok_r(),
- strdup() and ftruncate() in the configure process.
-
-Daniel Fandrich (9 Sep 2008)
-- Mike Revi discovered some swapped speed switches documented in the curl man
- page.
-
-- Checked in some documentation and code improvements and fixes that I
- discovered in the FreeBSD ports system.
-
-Daniel Stenberg (8 Sep 2008)
-- Dmitry Kurochkin patched a problem: I have found bug in pipelining through
- proxy. I have a transparent proxy. When running with http_proxy environment
- variable not set my test completes fine (it goes through transparent
- proxy). When I set http_proxy variable my test hangs after the first
- downloaded is complete. Looks like the second handle never gets out from
- WAITDO state.
-
- The fix: It makes checkPendPipeline move 1 handler from pend pipe to send
- pipe if pipelining is not supported by server but there are no handles in
- send and recv pipes.
-
-- Stefan Krause pointed out that libcurl would wrongly send away cookies to
- sites in cases where the cookie clearly has a very old expiry date. The
- condition was simply that libcurl's date parser would fail to convert the
- date and it would then count as a (timed-based) match. Starting now, a
- missed date due to an unsupported date format or date range will now cause
- the cookie to not match.
-
-Daniel Fandrich (5 Sep 2008)
-- Improved the logic that decides whether to use HTTP 1.1 features or not in a
- request. Setting a specific version with CURLOPT_HTTP_VERSION overrides
- all other checks, but otherwise, a 1.0 request will be made if the server
- is known to support only 1.0 because it previously responded so and the
- connection was kept alive, or a response to a previous request on this handle
- came back as 1.0. The latter could take place in cases like redirection or
- authentication where several requests have to be made before the operation
- is complete. If any one of the servers in a redirection chain supports only
- 1.0, then remaining requests will be sent in 1.0 mode.
-
-- Detect cases where an upload must be sent chunked and the server supports
- only HTTP 1.0 and return CURLE_UPLOAD_FAILED.
-
-Daniel Stenberg (5 Sep 2008)
-- Martin Drasar provided the CURLOPT_POSTREDIR patch. It renames
- CURLOPT_POST301 (but adds a define for backwards compatibility for you who
- don't define CURL_NO_OLDIES). This option allows you to now also change the
- libcurl behavior for a HTTP response 302 after a POST to not use GET in the
- subsequent request (when CURLOPT_FOLLOWLOCATION is enabled). I edited the
- patch somewhat before commit. The curl tool got a matching --post302
- option. Test case 1076 was added to verify this.
-
-- Introducing CURLOPT_CERTINFO and the corresponding CURLINFO_CERTINFO. By
- enabling this feature with CURLOPT_CERTINFO for a request using SSL (HTTPS
- or FTPS), libcurl will gather lots of server certificate info and that info
- can then get extracted by a client after the request has completed with
- curl_easy_getinfo()'s CURLINFO_CERTINFO option. Linus Nielsen Feltzing
- helped me test and smoothen out this feature.
-
- Unfortunately, this feature currently only works with libcurl built to use
- OpenSSL.
-
- This feature was sponsored by networking4all.com - thanks!
-
-- Dmitriy Sergeyev pointed out that curl_easy_pause() didn't unpause properly
- during certain conditions. I also changed this code to use realloc() based
- on Daniel Fandrich's suggestion.
-
-Guenter Knauf (4 Sep 2008)
-- MingW32 non-configure builds are now largefile feature enabled by default.
- NetWare LIBC builds are also now largefile feature enabled by default.
-
-Yang Tse (4 Sep 2008)
-- Several fixes related with print formatting string directives.
-
-Daniel Fandrich (3 Sep 2008)
-- Search for the FreeBSD CA cert file /usr/local/share/certs/ca-root.crt
-
-Daniel Fandrich (2 Sep 2008)
-- Fixed an out of memory problem that caused torture test failures in tests
- 706 and 707.
-
-Daniel Stenberg (2 Sep 2008)
-- Keith Mok added supported_protocols and supported_features to the pkg-config
- file for libcurl, and while doing that fix he unified with curl-config.in
- how the supported protocols and features are extracted and used, so both those
- tools should now always be synced.
-
-Version 7.19.0 (1 September 2008)
-
-Daniel Fandrich (29 Aug 2008)
-- Added tests 1071 through 1074 to test automatic downgrading from HTTP 1.1
- to HTTP 1.0 upon receiving a response from the HTTP server. Tests 1072
- and 1073 are similar to test 1069 in that they involve the impossible
- scenario of sending chunked data to a HTTP 1.0 server. All these fail
- and are added to DISABLED.
-
-- Added test 1075 to test --anyauth with Basic authentication.
-
-Daniel Stenberg (29 Aug 2008)
-- When libcurl was doing a HTTP POST and the server would respond with
- "Connection: close" and actually close the connection after the
- response-body, libcurl could still have outstanding data to send and it
- would not properly notice this and stop sending. This caused weirdness and
- sad faces. http://curl.haxx.se/bug/view.cgi?id=2080222
-
- Note that there are still reasons to consider libcurl's behavior when
- getting a >= 400 response code while sending data, as Craig Perras' note
- "http upload: how to stop on error" specifies:
- http://curl.haxx.se/mail/archive-2008-08/0138.html
-
-Daniel Stenberg (28 Aug 2008)
-- Dengminwen reported that libcurl would lock a (cookie) share twice (without
- an unlock in between) for a certain case and that in fact works when using
- regular windows mutexes but not with pthreads'! Locks should of course not
- get locked again so this is now fixed.
- http://curl.haxx.se/mail/lib-2008-08/0422.html
-
-- I'm abandoning the system with the web site mirrors (but keeping download
- files bing mirrored) and thus I've changed the URL in the cookiejar header
- to no longer use curlm.haxx.se but instead use the main site curl.haxx.se
-
-Daniel Fandrich (27 Aug 2008)
-- Fixed test case 1065 by changing the handling of CURLOPT_UPLOAD to set
- the HTTP method to GET (or HEAD) when given a value of 0.
-
-- Added test cases 1068 and 1069 to test a simple HTTP PUT from stdin. Test
- case 1069 fails in a similar manner to test 1065 so is added to DISABLED.
-
-Yang Tse (27 Aug 2008)
-- Fix generation of MS VC6 .dsp file to make it support compilation of either
- dynamic (DLL) or static (LIB) libcurl libraries in debug and release modes.
-
-Daniel Fandrich (26 Aug 2008)
-- Fixed out of memory problems that caused torture test failures in tests
- 1021 and 1067.
-
-Yang Tse (26 Aug 2008)
-- Added check and symbol definition for WIN32 file API usage in configure,
- supporting configure's --disable-largefile option for WIN32 targets also.
-
-- Non-configure systems which do not use config-win32.h configuration file,
- and want to use the WIN32 file API, must define USE_WIN32_LARGE_FILES or
- USE_WIN32_SMALL_FILES as appropriate in their own configuration files.
-
-Daniel Stenberg (23 Aug 2008)
-- Running 'make ca-firefox' in the root build dir will now run the new
- firefox-db2pem.sh conversion script that converts a local Firefox db of ca
- certs into PEM format, suitable for use with a OpenSSL or GnuTLS built
- libcurl.
-
-- Constantine Sapuntzakis fixed a bug when doing proxy CONNECT with the multi
- interface, and the proxy would send Connection: close during the
- authentication phase. http://curl.haxx.se/bug/view.cgi?id=2069047
-
-Daniel Fandrich (22 Aug 2008)
-- Fixed a problem when --dump-header - was given with more than one URL,
- which caused an error when the second header was dumped due to stdout
- being closed. Added test case 1066 to verify. Also fixed a potential
- problem where a closed file descriptor might be used for an upload
- when more than one URL is given.
-
-Yang Tse (22 Aug 2008)
-- Improved libcurl's internal curl_m*printf() functions integral data type
- size and signedness handling.
-
-- Internal adjustments to better select/differentiate when large/small file
- support is provided using WIN32 functions directly.
-
-Daniel Fandrich (20 Aug 2008)
-- Added an edited version of Vincent Le Normand's documentation of SFTP quote
- commands to the man pages.
-
-Daniel Stenberg (20 Aug 2008)
-- Phil Pellouchoud pointed out that the windows version of libcurl had a
- memory leak because it never called the OpenSSL function
- CRYPTO_cleanup_all_ex_data() as it was supposed to. This was because of a
- missing define in config-win32.h!
-
-Gisle Vanem (18 Aug 2008)
-- Updated lib/Makefile.Watcom with the option to use c-ares (USE_ARES=1).
-
-Yang Tse (18 Aug 2008)
-- Added test case 557 to verify libcurl's internal curl_m*printf() functions
- formatting functionality when handling signed and unsigned longs, as well as
- our curl_off_t data type.
-
-Yang Tse (17 Aug 2008)
-- OpenSSl enabled NetWare builds are changed to use the 'openssl' subdirectory
- when including the OpenSSL header files. This is the recommended setting, this
- prevents the undesired inclusion of header files with the same name as those
- of OpenSSL but which do not belong to the OpenSSL package. The visible change
- from previously released libcurl versions is that now OpenSSl enabled NetWare
- builds also define USE_OPENSSL in config files, and that OpenSSL header files
- must be located in a subdirectory named 'openssl'.
-
-Yang Tse (16 Aug 2008)
-- Library internal only C preprocessor macros FORMAT_OFF_T and FORMAT_OFF_TU
- remain in use as internal curl_off_t print formatting strings for the internal
- *printf functions which still cannot handle print formatting string directives
- such as "I64d", "I64u", and others available on MSVC, MinGW, Intel's ICC, and
- other DOS/Windows compilers.
-
-Daniel Fandrich (15 Aug 2008)
-- Added test case 1063 to test invalid long file ranges with file: URLs and
- 1064 to test multiple http PUTs.
-
-- Added test case 1065 to test a PUT with a single file but two URLs. This
- was discovered to be problematic while investigating an incident reported by
- Von back in May. curl in this case doesn't include a Content-Length: or
- Transfer-Encoding: chunked header which is illegal. This test case is
- added to DISABLED until a solution is found.
-
-Yang Tse (15 Aug 2008)
-- C preprocessor macros used internally and equally available externally which
- aid in the use of the curl_off_t data type are named: CURL_FORMAT_CURL_OFF_T,
- CURL_FORMAT_CURL_OFF_TU, CURL_SIZEOF_CURL_OFF_T, CURL_SUFFIX_CURL_OFF_T,
- CURL_SUFFIX_CURL_OFF_TU, CURL_OFF_T_C and CURL_OFF_TU_C.
-
-Yang Tse (13 Aug 2008)
-- The size of long is a build time characteristic and as such it is now recorded
- in curlbuild.h as CURL_SIZEOF_LONG. Definition now done from configure process
- and in CVS curlbuild.h.dist for non-configure systems.
-
-Daniel Fandrich (12 Aug 2008)
-- Fixed a buffer overflow problem in Curl_proxyCONNECT that could occur
- when a server responded with long headers and data. Luckily, the buffer
- overflowed into another unused buffer, so no actual harm was done.
- Added test cases 1060 and 1061 to verify.
-
-Daniel Stenberg (12 Aug 2008)
-- Andy Tsouladze fixed runtests.pl to not attempt to execute the stunnel
- _directory_ if that happened to appear in the path!
-
-Yang Tse (12 Aug 2008)
-- Added macros for minimum-width signed and unsigned curl_off_t integer
- constants CURL_OFF_T_C and CURL_OFF_TU_C. The clever double helper macro
- used internally to provide its functionality is thanks to Lars Nilsson.
-
-Daniel Fandrich (11 Aug 2008)
-- Fixed a boundary condition error in ftp_readresp() whereby a non-terminal
- line of a multiline FTP response whose last byte landed exactly at the end
- of the BUFSIZE-length buffer would be treated as the terminal response
- line. The following response code read in would then actually be the
- end of the previous response line, and all responses from then on would
- correspond to the wrong command. Test case 1062 verifies this.
-
-- Stop closing a never-opened ftp socket.
-
-Daniel Stenberg (11 Aug 2008)
-- Constantine Sapuntzakis filed bug report #2042430
- (http://curl.haxx.se/bug/view.cgi?id=2042430) with a patch. "NTLM Windows
- SSPI code is not thread safe". This was due to libcurl using static
- variables to tell wether to load the necessary SSPI DLL, but now the loading
- has been moved to the more suitable curl_global_init() call.
-
-- Constantine Sapuntzakis filed bug report #2042440
- (http://curl.haxx.se/bug/view.cgi?id=2042440) with a patch. He identified a
- problem when using NTLM over a proxy but the end-point does Basic, and then
- libcurl would do wrong when the host sent "Connection: close" as the proxy's
- NTLM state was erroneously cleared.
-
-Yang Tse (11 Aug 2008)
-- Added missing signed and unsigned curl_off_t integer constant suffixes for
- internal and external use. CURL_SUFFIX_CURL_OFF_T, CURL_SUFFIX_CURL_OFF_TU.
-
-Daniel Fandrich (7 Aug 2008)
-- Fixed an uninitialized variable in multi_runsingle() that could cause a
- request to prematurely end.
-
-- Added test1059 to test the FTP proxy tunnel problem fixed July 11.
-
-Yang Tse (7 Aug 2008)
-- Added curlbuild.h and curlrules.h header files to libcurl's public headers.
- File curlbuild.h is a generated file on configure-capable systems. This is
- a first step towards configure-based info in public headers. Currently only
- used to provide support for a curl_off_t data type which is not gated to
- off_t. Further details are documented inside these mentioned header files.
-
-- Fix CURL_CHECK_DEF so that when the expansion of the preprocessor symbol
- results in a set of double-quoted strings, this macro will now return an
- expansion which consists of a single double-quoted string as the result of
- concatenating all of them.
-
-- Skip data type check in DO_CURL_OFF_T_CHECK macro when argument is empty.
-
-- Adjusted testcurl.pl to copy checked out curlbuild.h.dist as curlbuild.h
- for non-configure targets when the host system doesn't run buildconf.bat.
-
-- Prevent buildconf from removing 'Makefile' and 'missing' files. This would
- blow away our CVS checked files 'missing' and 'hiper/Makefile'.
-
-- Remove adjustment done to testcurl.pl to verify if change introduced by
- Guenter Knauf in lib/Makefile.netware is enough to get the netware autobuilds
- going again.
-
-Yang Tse (5 Aug 2008)
-- Changes done to buildconf script. Validate that autom4te and autoconf, as
- well as aclocal and automake, versions match. Improve removal of previous
- run generated files. Remove verbose debug logging of aclocal on Solaris.
-
-Daniel Stenberg (5 Aug 2008)
-- Yehoshua Hershberg found a problem that would make libcurl re-use a
- connection with the multi interface even if a previous use of it caused a
- CURLE_PEER_FAILED_VERIFICATION to get returned. I now make sure that failed
- SSL connections properly close the connections.
-
-Daniel Stenberg (4 Aug 2008)
-- Test cases 1051, 1052 and 1055 were added by Daniel Fandrich on July 30 and
- proved how PUT and POST with a redirect could lead to a "hang" due to the
- data stream not being rewound properly when it had to in order to get sent
- properly (again) to the subsequent URL. This is now fixed and these test
- cases are no longer disabled.
-
-Yang Tse (4 Aug 2008)
-- Autoconf 2.62 has changed the behaviour of the AC_AIX macro which we use.
- Prior versions of autoconf defined _ALL_SOURCE if _AIX was defined. 2.62
- version of AC_AIX defines _ALL_SOURCE and other four preprocessor symbols
- no matter if the system is AIX or not. To keep the traditional behaviour,
- and an uniform one across autoconf versions AC_AIX is replaced with our
- own internal macro CURL_CHECK_AIX_ALL_SOURCE.
-
-Daniel Stenberg (4 Aug 2008)
-- Test case 1041 (added by Daniel Fandrich July 14th) proved a bug where PUT
- with -C - sent garbage in the Content-Range: header. I fixed this problem by
- making sure libcurl always sets the size of the _entire_ upload if an app
- attemps to do resumed uploads since libcurl simply cannot know the size of
- what is currently at the server end. Test 1041 is no longer disabled.
-
-Yang Tse (2 Aug 2008)
-- No longer test availability of the gdi32 library, nor use it for linking, even
- when we have been doing this since revision 1.47 of configure.ac 4 years and
- 5 months ago when cross-compiling a Windows target. We actually don't use any
- function from the Windows GDI (Graphics Device Interface) related with drawing
- or graphics-related operations.
-
-Daniel Fandrich (1 Aug 2008)
-- Added support for --append on SFTP uploads. Unfortunately, OpenSSH doesn't
- support this so it goes untested.
-
-Yang Tse (1 Aug 2008)
-- Configure process now checks if the preprocessor _REENTRANT symbol is already
- defined. If it isn't currently defined a set of checks are performed to test
- if its definition is required to make visible to the compiler a set of *_r
- functions. Finally, if _REENTRANT is already defined or needed it takes care
- of making adjustments necessary to ensure that it is defined equally for the
- configure process tests and generated config file.
-
-- Removed definition of CURL_CHECK_WORKING_RESOLVER from acinclude.m4 it has
- not been in use since revision 1.81 of configure.in 6 years, 9 months ago.
-
-Daniel Fandrich (31 Jul 2008)
-- Fixed parsing of an IPv6 proxy address to support a scope identifier,
- as well as IPv4 addresses in IPv6 format. Also, better handle the case
- of a malformatted IPv6 address (avoid empty and NULL strings).
-
-- Fixed a problem with any FTP URL or any URLs containing an IPv6 address
- being mangled when passed to proxies when CURLOPT_PORT is also set
- (reported by Pramod Sharma).
-
-- User names embedded in proxy URLs without a password were parsed
- incorrectly--the host name is treated as part of the user name and the
- port number becomes the password. This can be observed in test 279
- (was KNOWN_ISSUE #54).
-
-Daniel Stenberg (30 Jul 2008)
-- Phil Blundell added the CURLOPT_ADDRESS_SCOPE option, as well as adjusted
- the URL 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]/"
-
-- PHP's bug report #43158 (http://bugs.php.net/bug.php?id=43158) identifies a
- true bug in libcurl built with OpenSSL. It made curl_easy_getinfo() more or
- less always return 0 for CURLINFO_SSL_VERIFYRESULT because the function that
- would set it to something non-zero would return before the assign in almost
- all error cases. The internal variable is now set to non-zero from the start
- of the function only to get cleared later on if things work out fine.
-
-- Made the curl tool's -w option support the %{ssl_verify_result} variable
-
-Daniel Fandrich (30 Jul 2008)
-- Added test cases 1052 through 1055 to test uploading data from files
- during redirects. Test cases 1052 and 1055 show problems (maybe the same
- root cause as 1051) and are disabled.
-
-- Fixed a couple of buffer overflows in the MS-DOS port of the curl tool.
-
-Daniel Fandrich (29 Jul 2008)
-- Fixed --use-ascii to properly convert text files on Symbian OS, MS-DOS
- and OS/2.
-
-- Added test case 1051 to test Location: following with PUT, as reported
- by Ben Sutcliffe. The test when run manually shows a problem in curl
- so it's disabled.
-
-Daniel Fandrich (28 Jul 2008)
-- Fixed display of the interface bind address in the trace output when it's
- an IPv6 address.
-
-- Added test cases 1045 through 1049 as simple tests of --interface using the
- localhost interface.
-
-- Added test case 1050 to test --ftp-port with an IPv6 address
-
-Daniel Stenberg (26 Jul 2008)
-- David Bau filed bug report #2026240 "CURL_READFUNC_PAUSE leads to buffer
- overrun" (http://curl.haxx.se/bug/view.cgi?id=2026240) identifying two
- problems, and providing the fix for them:
-
- - CURL_READFUNC_PAUSE did in fact not pause the _sending_ of data that it is
- designed for but paused _receiving_ of data!
-
- - libcurl didn't internally set the read counter to zero when this return
- code was detected, which would potentially lead to junk getting sent to
- the server.
-
-Daniel Fandrich (26 Jul 2008)
-- Added test 1044 to test large file support in ftp with -I.
-
-- Eliminate a unnecessary socket creation in Curl_getaddrinfo for an IPv4
- address in an IPv6 capable libcurl.
-
-- Added feature in runtests.pl to select tests based on key word.
-
-Daniel Fandrich (23 Jul 2008)
-- Changed the long logfile elision code in runtests.pl to properly handle
- lines ending in \r.
-
-- Changed references to TRUE and FALSE in the curl_easy_setopt man page to
- 1 and zero, respectively, since TRUE and FALSE aren't part of the
- libcurl API.
-
-Daniel Stenberg (23 Jul 2008)
-- I went over the curl_easy_setopt man page and replaced most references to
- non-zero with the fixed value of 1. We should strive at making options
- support '1' for enabling them mentioned explicitly, as that then will allow
- us for to extend them in the future without breaking older programs.
-
- Possibly we should even introduce a fancy define to use instead of '1' all
- over...
-
-Yang Tse (21 Jul 2008)
-- Use the sreadfrom() wrapper to replace recvfrom() in our code.
-
-Yang Tse (20 Jul 2008)
-- when recvfrom prototype uses a void pointer for arguments 2, 5 or 6 this will
- now cause the definition, as appropriate, of RECVFROM_TYPE_ARG2_IS_VOID,
- RECVFROM_TYPE_ARG5_IS_VOID or RECVFROM_TYPE_ARG6_IS_VOID.
-
-Yang Tse (17 Jul 2008)
-- RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined
- to the data type pointed by its respective argument and not the pointer type.
-
-Yang Tse (16 Jul 2008)
-- Configure process now checks availability of recvfrom() socket function and
- finds out its return type and the types of its arguments. Added definitions
- for non-configure systems config files, and introduced macro sreadfrom which
- will be used on udp sockets as a recvfrom() wrapper.
-
-Yang Tse (15 Jul 2008)
-- Added description/comment to include paths used in several Makefile.am files.
- Added automake option nostdinc to test servers makefile and modified libcurl
- external headers include path for libtest programs.
-
-Daniel Fandrich (14 Jul 2008)
-- Added test1040 through test1043 to test -C - on HTTP. Test 1041 failed so
- it's added to DISABLED.
-
-Yang Tse (14 Jul 2008)
-- HTTP_ONLY definition check in lib/setup.h is now done once that configuration
- file has been included. In this way if symbol is defined in the config file
- it will no longer be ignored. Removed inclusion of remaining system header
- files from configuration files. Moved _REENTRANT definition up/earlier in
- lib/setup.h
-
-Yang Tse (11 Jul 2008)
-- Added missing multiple header inclusion prevention definition for header
- file content_encoding.h
-
-Daniel Fandrich (11 Jul 2008)
-- Fixed test 553 to pass the torture test.
-
-Daniel Stenberg (11 Jul 2008)
-- Daniel Fandrich found out we didn't pass on the user-agent properly when
- doing "proxy-tunnels" with non-HTTP prototols and that was simply because
- the code assumed the user-agent was only needed for HTTP.
-
-Daniel Fandrich (10 Jul 2008)
-- Changed slightly the SFTP quote commands chmod, chown and chgrp to only
- set the attribute that has changed instead of all possible ones. Hopefully,
- this will solve the "Permission denied" problem that Nagarajan Sreenivasan
- reported when setting some modes, but regardless, it saves a protocol
- round trip in the chmod case.
-
-- Added test cases 1038 and 1039 to test Adrian Kreher's report that ftp
- uploads with -C - didn't resume properly, but the tests pass.
-
-Yang Tse (10 Jul 2008)
-- Peter Lamberg filed bug report #2015126: "poll gives WSAEINVAL when POLLPRI
- is set in fdset.events" (http://curl.haxx.se/bug/view.cgi?id=2015126) which
- exactly pinpointed the problem only triggered on Windows Vista, provided
- reference to docs and also a fix. There is much work behind Peter Lamberg's
- excellent bug report. Thank You!
-
-Daniel Fandrich (9 Jul 2008)
-- Added tests 1036 and 1037 to verify resumed ftp downloads with -C -
-
-Daniel Stenberg (9 Jul 2008)
-- Andreas Schuldei improved Phil Blundell's patch for IPv6 using c-ares, and I
- edited it slightly. Now you should be able to use IPv6 addresses fine even
- with libcurl built to use c-ares.
-
-Daniel Fandrich (9 Jul 2008)
-- Fixed an OOM handling problem that cause test 11 to fail the torture test.
-
-Daniel Fandrich (8 Jul 2008)
-- Fixed test 554 to pass the torture test.
-
-Daniel Fandrich (7 Jul 2008)
-- Added test cases 1034 & 1035 to test IDN name conversion failures.
-
-Daniel Stenberg (7 Jul 2008)
-- Scott Barrett provided a test case for a segfault in the FTP code and the
- fix for it. It occured when you did a FTP transfer using
- CURLFTPMETHOD_SINGLECWD and then did another one on the same easy handle but
- switched to CURLFTPMETHOD_NOCWD. Due to the "dir depth" variable not being
- cleared properly. Scott's test case is now known as test 539 and it
- verifies the fix.
-
-Daniel Stenberg (3 Jul 2008)
-- Phil Blundell provided a fix for libcurl's treatment of unexpected 1xx
- response codes. Previously libcurl would hang on such occurances. I added
- test case 1033 to verify.
-
-- Introcuding a new timestamp for curl_easy_getinfo():
- CURLINFO_APPCONNECT_TIME. This is set with the "application layer"
- handshake/connection is completed. Which typically is SSL, TLS or SSH and 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.
-
-Daniel Fandrich (2 Jul 2008)
-- Support Open Watcom C on Linux (as well as Windows).
-
-Yang Tse (2 Jul 2008)
-- The previously committed fix for bug report #1999181 prevented using the
- monotonic clock on any system without an always supported POSIX compliant
- implementation. Now the POSIX compliant configuration check is removed and
- will fallback to gettimeofday when the monotonic clock is unavailable at
- run-time.
-
-- The configure process will now halt when sed, grep, egrep or ar programs
- can not be found among the directories in PATH variable.
-
-Daniel Stenberg (1 Jul 2008)
-- Rolland Dudemaine provided fixes to get libcurl to build for the INTEGRITY
- operating system.
-
-Daniel Stenberg (30 Jun 2008)
-- Made the internal printf() support %llu properly to print unsigned long longs.
-
-- Stephen Collyer and Tor Arntsen helped identify a flaw in the range code
- which output the range using a signed variable where it should rather use
- unsigned.
-
-Yang Tse (29 Jun 2008)
-- John Lightsey filed bug report #1999181: "CLOCK_MONOTONIC always fails on
- some systems" (http://curl.haxx.se/bug/view.cgi?id=1999181). The problem was
- that the configure script did not use the _POSIX_MONOTONIC_CLOCK feature test
- macro when checking monotonic clock availability. This is now fixed and the
- monotonic clock will not be used unless the feature test macro is defined
- with a value greater than zero indicating always supported.
-
-Daniel Fandrich (25 Jun 2008)
-- Honour --stderr with the -v option.
-
-- Fixed a file handle leak in the command line client if more than one
- --stderr option was given.
-
-Daniel Stenberg (22 Jun 2008)
-- Eduard Bloch filed the debian bug report #487567
- (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487567) pointing out that
- libcurl used Content-Range: instead of Range when doing a range request with
- --head (CURLOPT_NOBODY). This is now fixed and test case 1032 was added to
- verify.
-
-Daniel Fandrich (21 Jun 2008)
-- Stopped using ranges in scanf character sequences (e.g. %[a-z]) since that
- is not ANSI C, just a common extension. This caused problems on
- at least Open Watcom C.
-
-Yang Tse (20 Jun 2008)
-- Modified configuration script to actually verify if the compiler is good
- enough at detecting compilation errors or at least it has been properly
- configured to do so. Configuration heavily depends on this capability, so
- if this compiler sanity check fails the configuration process will now fail.
-
-Daniel Stenberg (20 Jun 2008)
-- Phil Pellouchoud found a case where libcurl built with NSS failed to
- handshake with a SSLv2 server, and it turned out to be because it didn't
- recognize the cipher named "rc4-md5". In our list that cipher was named
- plainly "rc4". I've now added rc4-md5 to work as an alias as Phil reported
- that it made things work for him again.
-
-- Hans-Jurgen May pointed out that trying SCP or SFTP over a SOCKS proxy
- crashed libcurl. This is now addressed by making sure we use "plain send"
- internally when doing the socks handshake instead of the Curl_write()
- function which is designed to use the "target" protocol. That's then SCP or
- SFTP in this case. I also took the opportunity and cleaned up some ssh-
- related #ifdefs in the code for readability.
-
-Daniel Stenberg (19 Jun 2008)
-- Christopher Palow fixed a curl_multi_socket() issue which previously caused
- libcurl to not tell the app properly when a socket was closed (when the name
- resolve done by c-ares is completed) and then immediately re-created and put
- to use again (for the actual connection). Since the closure will make the
- "watch status" get lost in several event-based systems libcurl will need to
- tell the app about this close/re-create case.
-
-- Dengminwen found a bug in the connection re-use function when using the
- multi interface with pipelining enabled as it would wrongly check for,
- detect and close "dead connections" even though that connection was already
- in use!
-
-Daniel Fandrich (18 Jun 2008)
-- Added SSH failure test cases 628-632
-
-- Fixed a memory leak in the command-line tool that caused a valgrind error.
-
-Daniel Stenberg (18 Jun 2008)
-- Rob Crittenden brought a fix for the NSS layer that makes libcurl no longer
- always fire up a new connection rather than using the existing one when the
- multi interface is used. Original bug report:
- https://bugzilla.redhat.com/show_bug.cgi?id=450140
-
-Yang Tse (18 Jun 2008)
-- Internal configure script improvement. No longer break out of shell "for"
- statements from inside AC_FOO_IFELSE macros, otherwise temporary macro files
- are not properly removed.
-
-Daniel Fandrich (12 Jun 2008)
-- Fixed curl-config --ca which wasn't being exported by configure.
-
-Daniel Stenberg (11 Jun 2008)
-- I did a cleanup of the internal generic SSL layer and how the various SSL
- libraries are supported. Starting now, each underlying SSL library support
- code does a set of defines for the 16 functions the generic layer (sslgen.c)
- uses (all these new function defines use the prefix "curlssl_"). This
- greatly simplified the generic layer in readability by involving much less
- #ifdefs and other preprocessor stuff and should make it easier for people to
- make libcurl work with new SSL libraries.
-
- Hopefully I can later on document these 16 functions somewhat as well.
-
- I also made most of the internal SSL-dependent functions (using Curl_ssl_
- prefix) #defined to nothing when no SSL support is requested - previously
- they would unnecessarily call mostly empty functions.
-
- I've built libcurl with OpenSSL and GnuTLS and without SSL to test this and
- I've also tried building with NSS but the NSS support is a mystery to me and
- I failed to build libcurl with the NSS libraries I have installed. We really
- should A) improve our configure script to detect unsuitable NSS versions
- already at configure time and B) document our requirements better for the
- SSL libraries.
-
-Daniel Stenberg (10 Jun 2008)
-- I made the OpenSSL code build again with OpenSSL 0.9.6. The CRLFILE
- functionality killed it due to its unconditional use of
- X509_STORE_set_flags...
-
-Daniel Stenberg (8 Jun 2008)
-- Due to the three new libcurl changes and the massive command line option
- change I decided we'll mark it by bumping the next release number to 7.19.0!
-
-- curl the tool now deals with its command line options somewhat differently!
- All boolean options (such as -O, -I, -v etc), both short and long versions,
- now always switch on/enable the option named. Using the same option multiple
- times thus make no difference. To switch off one of those options, you need
- to use the long version of the option and type --no-OPTION. Like to disable
- verbose mode you use --no-verbose!
-
-- Added --remote-name-all to curl, which if used changes the default for all
- given URLs to be dealt with as if -O is used. So if you want to disable that
- for a specific URL after --remote-name-all has been used, you muse use -o -
- or --no-remote-name.
-
-Daniel Stenberg (6 Jun 2008)
-- Axel Tillequin and Arnaud Ebalard added support for CURLOPT_ISSUERCERT, for
- OpenSSL, NSS and GnuTLS-built libcurls.
-
-- Axel Tillequin and Arnaud Ebalard added support for CURLOPT_CRLFILE, for
- OpenSSL, NSS and GnuTLS-built libcurls.
-
-- Added CURLINFO_PRIMARY_IP as a new information retrievable with
- curl_easy_getinfo. It returns a pointer to a string with the most recently
- used IP address. Modified test case 500 to also verify this feature. The
- implementing of this feature was sponsored by Lenny Rachitsky at NeuStar.
-
-Version 7.18.2 (4 June 2008)
-
-Daniel Fandrich (3 Jun 2008)
-- Fixed a problem where telnet data would be lost if an EWOULDBLOCK
- condition were encountered.
-
-Marty Kuhrt (1 Jun 2008)
-- Updated main.c to return CURLE_OK if PARAM_HELP_REQUESTED was returned
- from getparameter instead of CURLE_FAILED_INIT. No point in returning
- an error if --help or --version were requested.
-
-Daniel Stenberg (28 May 2008)
-- Emil Romanus found a problem and helped me repeat it. It occured when using
- the curl_multi_socket() API with HTTP pipelining enabled and could lead to
- the pipeline basically stalling for a very long period of time until it took
- off again.
-
-- Jeff Weber reported memory leaks with aborted SCP and SFTP transfers and
- provided excellent repeat recipes. I fixed the cases I managed to reproduce
- but Jeff still got some (SCP) problems even after these fixes:
- http://curl.haxx.se/mail/lib-2008-05/0342.html
-
-Daniel Stenberg (26 May 2008)
-- Bug report #1973352 (http://curl.haxx.se/bug/view.cgi?id=1973352) identified
- how the HTTP redirect following code didn't properly follow to a new URL if
- the new url was but a query string such as "Location: ?moo=foo". Test case
- 1031 was added to verify this fix.
-
-- Andreas Faerber and Scott McCreary made (lib)curl build for the Haiku OS.
-
-Yang Tse (26 May 2008)
-- David Rosenstrauch reported that header files spnegohelp.h and
- openssl/objects.h were needed to compile SPNEGO support.
-
-Daniel Fandrich (22 May 2008)
-- Made sure to pass longs in to curl_easy_setopt where necessary in the
- example programs and libtest code.
-
-Daniel Stenberg (19 May 2008)
-- When trying to repeat a multi interface problem I fell over a few multi
- interface problems:
-
- o with pipelining disabled, the state should never be set to WAITDO but
- rather go straight to DO
-
- o we had multiple states for which the internal function returned no socket
- at all to wait for, with the effect that libcurl calls the socket callback
- (when curl_multi_socket() is used) with REMOVE prematurely (as it would be
- added again within very shortly)
-
- o when in DO and DOING states, the HTTP and HTTPS protocol handler functions
- didn't return that the socket should be waited for writing, but instead it
- was treated as if no socket was needing monitoring so again REMOVE was
- called prematurely.
-
-Daniel Stenberg (13 May 2008)
-- Added test case 556 that uses curl_easy_send() and curl_easy_recv()
-
-Daniel Stenberg (9 May 2008)
-- Introducing curl_easy_send() and curl_easy_recv(). They can be used to send
- and receive data over a connection previously setup with curl_easy_perform()
- and its CURLOPT_CONNECT_ONLY option. The sendrecv.c example was added to
- show how they can be used.
-
-Yang Tse (9 May 2008)
-- Internal time differences now use monotonic time source if available.
- This also implies the removal of the winmm.lib dependency for WIN32.
-
-Daniel Stenberg (9 May 2008)
-- Stefan Krause reported a busy-looping case when using the multi interface
- and doing CONNECT to a proxy. The app would then busy-loop until the proxy
- completed its response.
-
-Michal Marek (9 May 2008)
-- Make Curl_write and it's callees accept a const pointer, in preparation
- of tetetest's patch for curl_easy_send()
-
-Daniel Stenberg (7 May 2008)
-- Liam Healy filed the debian bug report #480044
- (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=480044) identifying a
- segfault when using krb5 ftp, but the krb4 code had the same problem.
-
-Yang Tse (7 May 2008)
-- Christopher Palow provided the patch (edited by me) that introduces the
- use of microsecond resolution keys for internal splay trees.
-
-Daniel Stenberg (4 May 2008)
-- Yuriy Sosov pointed out a configure fix for detecting c-ares when that is
- built debug-enabled.
-
-Daniel Stenberg (3 May 2008)
-- Ben Van Hof filed bug report #1945240: "libcurl sometimes sends body twice
- when using CURL_AUTH_ANY" (http://curl.haxx.se/bug/view.cgi?id=1945240).
- The problem was that when libcurl rewound a stream meant for upload when it
- would prepare for a second request, it could accidentally continue the
- sending of the rewound data on the first request instead of on the second.
- Ben also provided test case 1030 that verifies this fix.
-
-Daniel Stenberg (3 May 2008)
-- Jean-Francois Bertrand reported a libcurl crash with CURLOPT_TCP_NODELAY
- since libcurl used getprotobyname() and that isn't thread-safe. We now
- switched to use IPPROTO_TCP unconditionally, but perhaps the proper fix is
- to detect the thread-safe version of the function and use that.
- http://curl.haxx.se/mail/lib-2008-05/0011.html
-
-Daniel Stenberg (1 May 2008)
-- Bart Whiteley provided a patch that made libcurl work properly when an app
- uses the CURLOPT_OPENSOCKETFUNCTION callback to create a unix domain socket
- to a http server.
-
-Daniel Stenberg (29 Apr 2008)
-- To make it easier for applications that want lots of magic stuff done on
- 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.
-
-Yang Tse (29 Apr 2008)
-- Improved easy interface resolving timeout handling in c-ares enabled builds
-
-Daniel Fandrich (28 Apr 2008)
-- Added test 1028 to test an HTTP redirect to a FTP URL.
-
-Daniel Stenberg (28 Apr 2008)
-- Norbert Frese filed bug report #1951588: "Problem with curlftpfs and
- libcurl" (http://curl.haxx.se/bug/view.cgi?id=1951588) which seems to be an
- identical report to what Denis Golovan reported in
- http://curl.haxx.se/mail/lib-2008-02/0108.html The FTP code didn't reset the
- user/password pointers properly even though there might've been a new
- struct/cconnection getting used.
-
-Daniel Stenberg (26 Apr 2008)
-- Reverted back to use automake 1.9.6 in the next release (from automake
- 1.10.1) since it *still* suffers from Solaris-related bugs. Our previous
- automake 1.10 problem was reported in bug #1701360
- (http://curl.haxx.se/bug/view.cgi?id=1701360) and this recent problem was
- bug #1944825 (http://curl.haxx.se/bug/view.cgi?id=1944825). I have not
- personally approached the automake team about either one of these but I
- figure we need a Solaris 10 guy to do it!
-
-Yang Tse (25 Apr 2008)
-- Added 'timeout' and 'delay' attributes support for the test harness
- subsection.
-
-Daniel Fandrich (24 Apr 2008)
-- Made --stderr able to redirect all stderr messages.
-
-Yang Tse (23 Apr 2008)
-- Improve synchronization between test harness runtests.pl script
- and test harness servers to minimize risk of false test failures.
-
-Daniel Fandrich (22 Apr 2008)
-- Added support for running on Symbian OS.
-
-Daniel Fandrich (18 Apr 2008)
-- Added test cases 1026 and 1027 to do some rudimentary tests on the --manual
- and --help options.
-
-Michal Marek (14 Apr 2008)
-- allow disabling the typechecker by defining CURL_DISABLE_TYPECHECK, as
- discussed in http://curl.haxx.se/mail/lib-2008-04/0291.html
-
-Daniel Stenberg (14 Apr 2008)
-- Stefan Krause reported a case where the OpenSSL handshake phase wasn't
- properly acknowledging the timeout values, like if you pulled the network
- plug in the midst of it.
-
-- Andre Guibert de Bruet fixed a second case of not checking the malloc()
- return code in the Negotiate code.
-
-- Sandor Feldi reported bug #1942022
- (http://curl.haxx.se/bug/view.cgi?id=1942022) pointing out a mistake in the
- lib/Makefile.vc[68] makefiles' release-ssl-dll target.
-
-- Brock Noland reported that curl behaved differently depending on which order
- you used -i and -I.
-
-Daniel Stenberg (12 Apr 2008)
-- Andre Guibert de Bruet found and fixed a case where malloc() was called but
- was not checked for a NULL return, in the Negotiate code.
-
-Daniel Fandrich (9 Apr 2008)
-- Added test cases 1024 & 1025 to test a scenario similar to the one reported
- by Ben Combee where libcurl would send the wrong cookie to a redirected
- server. libcurl was doing the right thing in these test cases.
-
-Michal Marek (7 Apr 2008)
-- Fix the MIT / Heimdal check for good:
- Define HAVE_GSSMIT if are
- available, otherwise define HAVE_GSSHEIMDAL if is available.
-
- Only define GSS_C_NT_HOSTBASED_SERVICE to gss_nt_service_name if
- GSS_C_NT_HOSTBASED_SERVICE isn't declared by the gssapi headers. This should
- avoid breakage in case we wrongly recognize Heimdal as MIT again.
-
-Daniel Stenberg (5 Apr 2008)
-- Alexey Simak fixed curl_easy_reset() to reset the max redirect limit properly
-
-- Based on the Debian bug report #474224 that complained about the FTP error
- message when libcurl doesn't get a 220 back immediately on connect, I now
- changed it to be more specific on what the problem is. Also worth noticing:
- while the bug report contains an example where the response is:
-
- 421 There are too many connected users, please try again later
-
- we cannot assume that the error message will always be this readable nor
- that it fits within a particular boundary etc.
-
-Daniel Fandrich (3 Apr 2008)
-- Added test627 to test SFTP with CURLOPT_NOBODY
-
-Daniel Stenberg (3 Apr 2008)
-- Setting CURLOPT_NOBODY to FALSE will now switch the HTTP request method to
- 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.
-
-- Scott Barrett added support for CURLOPT_NOBODY over SFTP
-
-Daniel Fandrich (3 Apr 2008)
-- Made sure that curl_global_init is called in all the multithreaded
- example programs.
-
-Michal Marek (31 Mar 2008)
-- Removed the generated ca-bundle.h file. The verbatim value of $ca and
- $capath is known to configure, so it can be defined in config.h instead.
-
-Daniel Stenberg (31 Mar 2008)
-- Added CURLFORM_STREAM as a supported option to curl_formadd() to allow an
- application to provide data for a multipart with the read callback. Note
- that the size needs to be provided with CURLFORM_CONTENTSLENGTH when the
- stream option is used. This feature is verified by the new test case
- 554. This feature was sponsored by Xponaut.
-
-Daniel Fandrich (30 Mar 2008)
-- Changed the makefile so the doc/examples/ programs are never built in a
- normal build/install (only with the 'make check' target), so that a
- build failure in the examples isn't fatal.
-
-Version 7.18.1 (30 March 2008)
-
-Daniel Stenberg (28 Mar 2008)
-- Stephen Collyer pointed out that configure --with-libssh2 without a given
- path didn't work properly.
-
-Daniel Stenberg (27 Mar 2008)
-- As found out and reported by Dan Petitt, libcurl didn't show progress/call
- the progress callback for the first (potentially huge) piece of body data
- sent together with the POST request headers in the initial send().
-
-Daniel Stenberg (25 Mar 2008)
-- Made setting the CURLOPT_SSL_CTX_FUNCTION option return a failure in case
- libcurl wasn't built to use OpenSSL as that is a prerequisite for this
- option to function!
-
-Daniel Stenberg (22 Mar 2008)
-- Fixed the problem with doing a zero byte SCP transfer, verified with test
- case 617 (which was added by Daniel Fandrich 5 Mar 2008).
-
-Daniel Fandrich (20 Mar 2008)
-- Fixed a problem where curl-config --protocols could erroneously show LDAPS
- support when curl didn't even have regular LDAP support. It looks like
- this could happen when the --enable-ldaps configure switch is given but
- configure couldn't find the LDAP headers or libraries.
-
-Michal Marek (20 Mar 2008)
-- Added --with-ca-path=DIRECTORY configure option to use an openSSL CApath by
- 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
-
-Daniel Fandrich (18 Mar 2008)
-- Added test 626 to reproduce an infinite loop when given an invalid
- SFTP quote command reported by Vincent Le Normand, and fixed it.
-
-Michal Marek (18 Mar 2008)
-- Added curl_easy_getinfo typechecker.
-
-- Added macros for curl_share_setopt and curl_multi_setopt to check at least
- the correct number of arguments.
-
-Daniel Fandrich (13 Mar 2008)
-- Added tests 622-625 to test SFTP/SCP uploads. Test 625 was an attempt to
- reproduce the --ftp-create-dirs problem reported by Brian Ulm, but that
- seems to need a call curl_easy_reset() which this test case doesn't do.
-
-Daniel Stenberg (13 Mar 2008)
-- Brian Ulm figured out that if you did an SFTP upload with
- CURLOPT_FTP_CREATE_MISSING_DIRS to create a directory, and then re-used the
- handle and uploaded another file to another directory that needed to be
- created, the second upload would fail. Another case of a state variable that
- wasn't properly reset between requests.
-
-- I rewrote the 100-continue code to use a single state variable instead of
- the previous two ones. I think it made the logic somewhat clearer.
-
-Daniel Stenberg (11 Mar 2008)
-- Dmitry Popov filed bug report #1911069
- (http://curl.haxx.se/bug/view.cgi?id=1911069) that identified a race
- condition in the name resolver code when the DNS cache is shared between
- multiple easy handles, each running in simultaneous threads that could cause
- crashes.
-
-- Added a macro for curl_easy_setopt() that accepts three arguments and simply
- does nothing with them, just to make sure libcurl users always use three
- arguments to this function. Due to its use of ... for the third argument, it
- is otherwise hard to detect abuse.
-
-Michal Marek (11 Mar 2008)
-- Added a type checking macro for curl_easy_setopt(), needs gcc-4.3 and only
- works in C mode atm (http://curl.haxx.se/mail/lib-2008-02/0267.html ,
- http://curl.haxx.se/mail/lib-2008-02/0292.html )
-
-Daniel Fandrich (10 Mar 2008)
-- Added tests 618-621 to test SFTP/SCP transfers of more than one file
- (test 620 tests the just-fixed problem reported by Brian Ulm).
-
-Daniel Stenberg (9 Mar 2008)
-- Brian Ulm reported a crash when doing a second SFTP transfer on a re-used
- easy handle if curl_easy_reset() was used between them. I fixed it and Brian
- verified that it cured his problem.
-
-- Brian Ulm reported that if you first tried to download a non-existing SFTP
- file and then fetched an existing one and re-used the handle, libcurl would
- still report the second one as non-existing as well! I fixed it and Brian
- verified that it cured his problem.
-
-Michal Marek (6 Mar 2008)
-- Fix the gssapi configure check to detect newer MIT Kerberos (patch by
- Michael Calmer)
-
-Yang Tse (6 Mar 2008)
-- Fix regression on Curl_socket_ready() and Curl_poll() so that these will
- again fail on select/poll errors different than EINTR.
-
-Daniel Fandrich (5 Mar 2008)
-- Fixed the test harness so it will write out zero-length data files.
-
-- Added tests 616 and 617 to see how SFTP and SCP cope with zero-length
- files, as questioned by Mike Protts. SFTP does for me but SCP doesn't
- so test 617 is disabled for now.
-
-Daniel S (4 Mar 2008)
-- Mike Protts brought a patch that makes resumed transfers work with SFTP.
-
-Daniel S (1 Mar 2008)
-- Anatoli Tubman found and fixed a crash with Negotiate authentication used on
- a re-used connection where both requests used Negotiate.
-
-Guenter Knauf (26 Feb 2008)
-- Kaspar Brand provided a patch to support server name indication (RFC 4366).
-
-Daniel S (25 Feb 2008)
-- Kaspar Brand made GnuTLS-built libcurl properly acknowledge the option that
- forces it to prefer SSLv3.
-
-Daniel S (23 Feb 2008)
-- Sam Listopad provided a patch in feature-request #1900014
- http://curl.haxx.se/bug/feature.cgi?id=1900014 that makes libcurl (built to
- use OpenSSL) support a full chain of certificates in a given PKCS12
- certificate.
-
-Daniel S (22 Feb 2008)
-- Georg Lippitsch made the src/Makefile.vc6 makefile use the same memory model
- options as the lib/Makefile.vc6 already did.
-
-Daniel S (21 Feb 2008)
-- Zmey Petroff found a crash when libcurl accessed a NULL pointer, which
- happened if you set the connection cache size to 1 and for example failed to
- login to an FTP site. Bug report #1896698
- (http://curl.haxx.se/bug/view.cgi?id=1896698)
-
-Daniel S (20 Feb 2008)
-- Fixed test case 405 to not fail when libcurl is built with GnuTLS
-
-- Based on initial work done by Gautam Kachroo to address a bug, we now keep
- 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.
-
-- We no longer support setting the CURLOPT_URL option from inside a callback
- 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.
-
-Guenter Knauf (19 Feb 2008)
-- We do no longer support SSLv2 by default since it has known flaws.
- Kaspar Brand provided a patch for all supported SSL toolkits.
-
-Daniel Fandrich (19 Feb 2008)
-- Added test309 to test HTTP redirect to HTTPS URL
-
-Daniel S (18 Feb 2008)
-- We're no longer providing a very old ca-bundle in the curl tarball. You can
- get a fresh one downloaded and created with 'make ca-bundle' or you can get
- one from here => http://curl.haxx.se/docs/caextract.html if you want a fresh
- new one extracted from Mozilla's recent list of ca certs.
-
- The configure option --with-ca-bundle now lets you specify what file to use
- as default ca bundle for your build. If not specified, the configure script
- will check a few known standard places for a global ca cert to use.
-
-Daniel S (17 Feb 2008)
-- Jerome Muffat-Meridol helped me fix Curl_done() to close the current
- connection by force when it was called before the entire request is
- completed, simply because we can't know if the connection really can be
- re-used safely at that point.
-
-- Based on the same debugging logic, I've also made Curl_http_done() not
- return CURLE_GOT_NOTHING if called "prematurely". This should have no real
- effect to anything but the code makes more sense like this.
-
-Daniel S (15 Feb 2008)
-- Made the gnutls code path not even try to get the server cert if no peer
- verification is requested. Previously it would even return failure if gnutls
- failed to get the server cert even though no verification was asked for.
- Public server showing the problem: https://www.net222.caisse-epargne.fr
-
-- Fix my Curl_timeleft() leftover mistake in the gnutls code
-
-- Pooyan McSporran found and fixed a flaw where you first would do a normal
- http request and then you'd reuse the handle and replace the Accept: header,
- as then libcurl would send two Accept: headers!
-
-Daniel S (11 Feb 2008)
-- Yang Tse pointed out a few remaining quirks from my timeout refactoring from
- Feb 7 that didn't abort properly on timeouts. These are actually old
- problems but now they should be fixed.
-
-Yang Tse (10 Feb 2008)
-- Bug report #1888932 (http://curl.haxx.se/bug/view.cgi?id=1888932) points out
- and provides test program that demonstrates that libcurl might not set error
- description message for error CURLE_COULDNT_RESOLVE_HOST for Windows threaded
- name resolver builds. Fixed now.
-
-Daniel Fandrich (8 Feb 2008)
-- Added key words to all SSL-using tests so they can be skipped if necessary.
- Removed a few unnecessary requires SSL statements.
-
-Daniel S (8 Feb 2008)
-- Mike Hommey filed and fixed bug report #1889856
- (http://curl.haxx.se/bug/view.cgi?id=1889856): When using the gnutls ssl
- layer, cleaning-up and reinitializing curl ends up with https requests
- failing with "ASN1 parser: Element was not found" errors. Obviously a
- regression added in 7.16.3.
-
-Yang Tse (8 Feb 2008)
-- Improved test harness SCP/SFTP start up server verification, doing a real
- connection to the sftp server, authenticating and running a simple sftp
- pwd command using the test harness generated configuration and key files.
-
-Daniel S (8 Feb 2008)
-- Günter Knauf added lib/mk-ca-bundle.pl which gets the Firefox ca bundle and
- creates a suitable ca-bundle.crt file in PEM format for use with curl. The
- recommended way to run it is to use 'make ca-bundle' in the build tree root.
-
-Daniel Fandrich (7 Feb 2008)
-- Added tests 1022 and 1023 to validate output of curl-config --version and
- --vernum
-
-Daniel S (7 Feb 2008)
-- Refactored a lot of timeout code into a few functions in an attempt to make
- them all use the same (hopefully correct) logic to make it less error-prone
- and easier to introduce library-wide where it should be used.
-
-Yang Tse (6 Feb 2008)
-- Fix an issue in strdup replacement function when dealing with absolutely
- huge strings. Only systems without a standard strdup would be affected.
-
-Daniel S (3 Feb 2008)
-- Dmitry Kurochkin cleaned up the pipelining code and removed the need for and
- use of the "is_in_pipeline" struct field.
-
-- I wrote up and added the threaded-ssl.c example source code that shows how
- to do multi-threaded downloads of HTTPS files with a libcurl that is built
- with OpenSSL. It uses pthreads for the threading.
-
-Daniel S (31 Jan 2008)
-- Niklas Angebrand made the cookie support in libcurl properly deal with the
- "HttpOnly" feature introduced by Microsoft and apparently also supported by
- Firefox: http://msdn2.microsoft.com/en-us/library/ms533046.aspx . HttpOnly
- is now supported when received from servers in HTTP headers, when written to
- cookie jars and when read from existing cookie jars.
-
- I modified test case 31 and 46 to also do some basic HttpOnly testing.
-
-- Dmitry Kurochkin moved several struct fields from the connectdata struct to
- 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.
-
-Daniel S (29 Jan 2008)
-- Dmitry Kurochkin fixed Curl_done() for pipelining, as it could previously
- crash!
-
-- Michal Marek fixed minor mistake in test case 553 that prevented it from
- working on other IP-addresses or port numbers.
-
-Version 7.18.0 (28 January 2008)
-
-Daniel S (27 Jan 2008)
-- Dmitry Kurochkin: In "real world" testing I found more bugs in
- pipelining. Broken connection is not restored and we get into infinite
- loop. It happens because of wrong is_in_pipeline values.
-
-Daniel S (26 Jan 2008)
-- Kevin Reed filed bug report #1879375
- (http://curl.haxx.se/bug/view.cgi?id=1879375) which describes how libcurl
- got lost in this scenario: proxy tunnel (or HTTPS over proxy), ask to do any
- proxy authentication and the proxy replies with an auth (like NTLM) and then
- closes the connection after that initial informational response.
-
- libcurl would not properly re-initialize the connection to the proxy and
- continue the auth negotiation like supposed. It does now however, as it will
- now detect if one or more authentication methods were available and asked
- for, and will thus retry the connection and continue from there.
-
-- I made the progress callback get called properly during proxy CONNECT.
-
-Daniel S (23 Jan 2008)
-- Igor Franchuk pointed out that CURLOPT_COOKIELIST set to "ALL" leaked
- memory, and so did "SESS". Fixed now.
-
-Yang Tse (22 Jan 2008)
-- Check poll.h at configuration time, and use it when sys/poll.h unavailable
-
-Daniel S (22 Jan 2008)
-- Dmitry Kurochkin removed the cancelled state for pipelining, as we agreed
- 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...
-
-Yang Tse (21 Jan 2008)
-- Disable ldap support for cygwin builds, since it breaks whole build process.
- Fixing it will affect other platforms, so it is postponed for another release.
-
-Daniel S (18 Jan 2008)
-- Lau Hang Kin found and fixed a problem with the multi interface when doing
- CONNECT over a proxy. curl_multi_fdset() didn't report back the socket
- properly during that state, due to a missing case in the switch in the
- multi_getsock() function.
-
-Yang Tse (17 Jan 2008)
-- Don't abort tests 518 and 537 when unable to raise the open-file soft limit.
-
-Daniel S (16 Jan 2008)
-- Nathan Coulter's patch that makes runtests.pl respect the PATH when figuring
- out what valgrind to run.
-
-Yang Tse (16 Jan 2008)
-- Improved handling of out of memory in the command line tool that afected
- data url encoded HTTP POSTs when reading it from a file.
-
-Daniel S (16 Jan 2008)
-- Dmitry Kurochkin worked a lot on improving the HTTP Pipelining support that
- 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.
-
-- Calls to Curl_failf() are not supposed to provide a trailing newline as the
- function itself adds that. Fixed on 50 or something strings!
-
-Daniel S (15 Jan 2008)
-- I made the torture test on test 530 go through. This was actually due to
- 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.
-
-Daniel S (14 Jan 2008)
-- Joe Malicki filed bug report #1871269
- (http://curl.haxx.se/bug/view.cgi?id=1871269) and we could fix his hang-
- problem that occurred when doing a large HTTP POST request with the
- response-body read from a callback.
-
-Daniel S (12 Jan 2008)
-- I re-arranged the curl --help output. All the options are now sorted on
- their long option names and all descriptions are one-liners.
-
-- Eric Landes provided the patch (edited by me) that introduces the
- --keepalive-time to curl to set the keepalive probe interval. I also took
- the opportunity to rename the recently added no-keep-alive option to
- no-keepalive to keep a consistent naming and to avoid getting two dashes in
- these option names. Eric also provided an update to the man page for the new
- option.
-
-Daniel S (11 Jan 2008)
-- Daniel Egger made CURLOPT_RANGE work on file:// URLs the very same way it
- already worked for FTP:// URLs.
-
-- I made the curl tool switch from using CURLOPT_IOCTLFUNCTION to now use the
- spanking new CURLOPT_SEEKFUNCTION simply to take advantage of the improved
- performance for the upload resume cases where you want to upload the last
- few bytes of a very large file. To implement this decently, I had to switch
- the client code for uploading from fopen()/fread() to plain open()/read() so
- that we can use lseek() to do >32bit seeks (as fseek() doesn't allow that)
- on systems that offer support for that.
-
-Daniel S (10 Jan 2008)
-- Michal Marek made curl-config --libs not include /usr/lib64 in the output
- (it already before skipped /usr/lib). /usr/lib64 is the default library
- directory on many 64bit systems and it's unlikely that anyone would use the
- path privately on systems where it's not.
-
-- Georg Lippitsch brought CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA to allow
- 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.
-
-- Nikitinskit Dmitriy filed bug report #1868255
- (http://curl.haxx.se/bug/view.cgi?id=1868255) with a patch. It identifies
- and fixes a problem with parsing WWW-Authenticate: headers with additional
- spaces in the line that the parser wasn't written to deal with.
-
-Daniel S (8 Jan 2008)
-- Introducing curl_easy_pause() and new magic return codes for both the read
- and the write callbacks that now can make a connection's reading and/or
- writing get paused.
-
-Daniel S (6 Jan 2008)
-- Jeff Johnson filed bug report #1863171
- (http://curl.haxx.se/bug/view.cgi?id=1863171) where he pointed out that
- libcurl's date parser didn't accept a +1300 time zone which actually is used
- fairly often (like New Zealand's Dailight Savings Time), so I modified the
- parser to now accept up to and including -1400 to +1400.
-
-Daniel S (5 Jan 2008)
-- Based on further discussion on curl-library, I reverted yesterday's SOCKS5
- 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.
-
-Daniel S (4 Jan 2008)
-- Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let the
- 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.
-
-Yang Tse (3 Jan 2008)
-- Modified test harness to allow SCP, SFTP and SOCKS4 tests to run with
- OpenSSH 2.9.9, SunSSH 1.0 or later versions. SOCKS5 tests need OpenSSH
- 3.7, SunSSH 1.0 or later.
-
-Daniel S (2 Jan 2008)
-- I fixed two cases of missing return code checks when handling chunked
- decoding where a write error (or abort return from a callback) didn't stop
- libcurl's processing.
-
-- I removed the socklen_t use from the public curl/curl.h header and instead
- made it an unsigned int. The type was only used in the curl_sockaddr struct
- definition (only used by the curl_opensocket_callback). On all platforms I
- could find information about, socklen_t is 32 unsigned bits large so I don't
- think this will break the API or ABI. The main reason for this change is of
- course for all the platforms that don't have a socklen_t definition in their
- headers to build fine again. Providing our own configure magic and custom
- definition of socklen_t on those systems proved to work but was a lot of
- cruft, code and extra magic needed - when this very small change of type
- seems harmless and still solves the missing socklen_t problem.
-
-- Richard Atterer brought a patch that added support for SOCKS4a proxies,
- which 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.
-
-Daniel S (1 Jan 2008)
-- Mohun Biswas pointed out that --libcurl generated a source code with an int
- function but without a return statement. While fixing that, I also took care
- about adding some better comments for the generated code.
-
diff --git a/main/source/includes/libcurl-7.19.3/include/README b/main/source/includes/libcurl-7.19.3/include/README
deleted file mode 100644
index 485722e3..00000000
--- a/main/source/includes/libcurl-7.19.3/include/README
+++ /dev/null
@@ -1,55 +0,0 @@
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
-
-Include files for libcurl, external users.
-
-They're all placed in the curl subdirectory here for better fit in any kind
-of environment. You must include files from here using...
-
- #include
-
-... style and point the compiler's include path to the directory holding the
-curl subdirectory. It makes it more likely to survive future modifications.
-
-NOTE FOR LIBCURL HACKERS
-
-The following notes apply to libcurl version 7.19.0 and later.
-
-* The distributed curl/curlbuild.h file is only intended to be used on systems
- which can not run the also distributed configure script.
-
-* The distributed curlbuild.h file is generated as a copy of curlbuild.h.dist
- when the libcurl source code distribution archive file is originally created.
-
-* If you check out from CVS on a non-configure platform, you must run the
- appropriate buildconf* script to set up curlbuild.h and other local files
- before being able of compiling the library.
-
-* On systems capable of running the configure script, the configure process
- will overwrite the distributed include/curl/curlbuild.h file with one that
- is suitable and specific to the library being configured and built, which
- is generated from the include/curl/curlbuild.h.in template file.
-
-* If you intend to distribute an already compiled libcurl library you _MUST_
- also distribute along with it the generated curl/curlbuild.h which has been
- used to compile it. Otherwise the library will be of no use for the users of
- the library that you have built. It is _your_ responsability to provide this
- file. No one at the cURL project can know how you have built the library.
-
-* File curl/curlbuild.h includes platform and configuration dependant info,
- and must not be modified by anyone. Configure script generates it for you.
-
-* We cannot assume anything else but very basic compiler features being
- present. While libcurl requires an ANSI C compiler to build, some of the
- earlier ANSI compilers clearly can't deal with some preprocessor operators.
-
-* Newlines must remain unix-style for older compilers' sake.
-
-* Comments must be written in the old-style /* unnested C-fashion */
-
-To figure out how to do good and portable checks for features, operating
-systems or specific hardwarare, a very good resource is Bjorn Reese's
-collection at http://predef.sf.net/
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/Makefile.am b/main/source/includes/libcurl-7.19.3/include/curl/Makefile.am
deleted file mode 100644
index bee5c25a..00000000
--- a/main/source/includes/libcurl-7.19.3/include/curl/Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-pkginclude_HEADERS = \
- curl.h curlver.h easy.h mprintf.h stdcheaders.h types.h multi.h \
- typecheck-gcc.h curlbuild.h curlrules.h
-
-pkgincludedir= $(includedir)/curl
-
-# curlbuild.h does not exist in the CVS tree. When the original libcurl
-# source code distribution archive file is created, curlbuild.h.dist is
-# renamed to curlbuild.h and included in the tarball so that it can be
-# used directly on non-configure systems.
-#
-# The distributed curlbuild.h will be overwritten on configure systems
-# when the configure script runs, with one that is suitable and specific
-# to the library being configured and built.
-#
-# curlbuild.h.in is the distributed template file from which the configure
-# script creates curlbuild.h at library configuration time, overwiting the
-# one included in the distribution archive.
-#
-# curlbuild.h.dist is not included in the source code distribution archive.
-
-EXTRA_DIST = curlbuild.h.in
-
-DISTCLEANFILES = curlbuild.h
-
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/curlbuild.h b/main/source/includes/libcurl-7.19.3/include/curl/curlbuild.h
deleted file mode 100644
index 2b6e997a..00000000
--- a/main/source/includes/libcurl-7.19.3/include/curl/curlbuild.h
+++ /dev/null
@@ -1,528 +0,0 @@
-#ifndef __CURL_CURLBUILD_H
-#define __CURL_CURLBUILD_H
-/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
- * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
- * are also available at http://curl.haxx.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- * $Id: curlbuild.h.dist,v 1.16 2009-01-16 08:36:41 bagder Exp $
- ***************************************************************************/
-
-/* ================================================================ */
-/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */
-/* ================================================================ */
-
-/*
- * NOTE 1:
- * -------
- *
- * See file include/curl/curlbuild.h.in, run configure, and forget
- * that this file exists it is only used for non-configure systems.
- * But you can keep reading if you want ;-)
- *
- */
-
-/* ================================================================ */
-/* NOTES FOR NON-CONFIGURE SYSTEMS */
-/* ================================================================ */
-
-/*
- * NOTE 1:
- * -------
- *
- * Nothing in this file is intended to be modified or adjusted by the
- * curl library user nor by the curl library builder.
- *
- * If you think that something actually needs to be changed, adjusted
- * or fixed in this file, then, report it on the libcurl development
- * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/
- *
- * Try to keep one section per platform, compiler and architecture,
- * otherwise, if an existing section is reused for a different one and
- * later on the original is adjusted, probably the piggybacking one can
- * be adversely changed.
- *
- * In order to differentiate between platforms/compilers/architectures
- * use only compiler built in predefined preprocessor symbols.
- *
- * This header file shall only export symbols which are 'curl' or 'CURL'
- * prefixed, otherwise public name space would be polluted.
- *
- * NOTE 2:
- * -------
- *
- * For any given platform/compiler curl_off_t must be typedef'ed to a
- * 64-bit wide signed integral data type. The width of this data type
- * must remain constant and independant of any possible large file
- * support settings.
- *
- * As an exception to the above, curl_off_t shall be typedef'ed to a
- * 32-bit wide signed integral data type if there is no 64-bit type.
- *
- * As a general rule, curl_off_t shall not be mapped to off_t. This
- * rule shall only be violated if off_t is the only 64-bit data type
- * available and the size of off_t is independant of large file support
- * settings. Keep your build on the safe side avoiding an off_t gating.
- * If you have a 64-bit off_t then take for sure that another 64-bit
- * data type exists, dig deeper and you will find it.
- *
- * NOTE 3:
- * -------
- *
- * Right now you might be staring at file include/curl/curlbuild.h.dist or
- * at file include/curl/curlbuild.h, this is due to the following reason:
- * file include/curl/curlbuild.h.dist is renamed to include/curl/curlbuild.h
- * when the libcurl source code distribution archive file is created.
- *
- * File include/curl/curlbuild.h.dist is not included in the distribution
- * archive. File include/curl/curlbuild.h is not present in the CVS tree.
- *
- * The distributed include/curl/curlbuild.h file is only intended to be used
- * on systems which can not run the also distributed configure script.
- *
- * On systems capable of running the configure script, the configure process
- * will overwrite the distributed include/curl/curlbuild.h file with one that
- * is suitable and specific to the library being configured and built, which
- * is generated from the include/curl/curlbuild.h.in template file.
- *
- * If you check out from CVS on a non-configure platform, you must run the
- * appropriate buildconf* script to set up curlbuild.h and other local files.
- *
- */
-
-/* ================================================================ */
-/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */
-/* ================================================================ */
-
-#ifdef CURL_SIZEOF_LONG
-# error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined
-#endif
-
-#ifdef CURL_TYPEOF_CURL_OFF_T
-# error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined
-#endif
-
-#ifdef CURL_FORMAT_CURL_OFF_T
-# error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined
-#endif
-
-#ifdef CURL_FORMAT_CURL_OFF_TU
-# error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined
-#endif
-
-#ifdef CURL_FORMAT_OFF_T
-# error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined
-#endif
-
-#ifdef CURL_SIZEOF_CURL_OFF_T
-# error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined
-#endif
-
-#ifdef CURL_SUFFIX_CURL_OFF_T
-# error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined
-#endif
-
-#ifdef CURL_SUFFIX_CURL_OFF_TU
-# error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined
-#endif
-
-/* ================================================================ */
-/* EXTERNAL INTERFACE SETTINGS FOR NON-CONFIGURE SYSTEMS ONLY */
-/* ================================================================ */
-
-#if defined(__DJGPP__) || defined(__GO32__)
-# if defined(__DJGPP__) && (__DJGPP__ > 1)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# else
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# endif
-
-#elif defined(__SALFORDC__)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-
-#elif defined(__BORLANDC__)
-# if (__BORLANDC__ < 0x520)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# else
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T __int64
-# define CURL_FORMAT_CURL_OFF_T "I64d"
-# define CURL_FORMAT_CURL_OFF_TU "I64u"
-# define CURL_FORMAT_OFF_T "%I64d"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T i64
-# define CURL_SUFFIX_CURL_OFF_TU ui64
-# endif
-
-#elif defined(__TURBOC__)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-
-#elif defined(__WATCOMC__)
-# if defined(__386__)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T __int64
-# define CURL_FORMAT_CURL_OFF_T "I64d"
-# define CURL_FORMAT_CURL_OFF_TU "I64u"
-# define CURL_FORMAT_OFF_T "%I64d"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T i64
-# define CURL_SUFFIX_CURL_OFF_TU ui64
-# else
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# endif
-
-#elif defined(__POCC__)
-# if (__POCC__ < 280)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# elif defined(_MSC_VER)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T __int64
-# define CURL_FORMAT_CURL_OFF_T "I64d"
-# define CURL_FORMAT_CURL_OFF_TU "I64u"
-# define CURL_FORMAT_OFF_T "%I64d"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T i64
-# define CURL_SUFFIX_CURL_OFF_TU ui64
-# else
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# endif
-
-#elif defined(__LCC__)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-
-#elif defined(__SYMBIAN32__)
-# if defined(__EABI__) /* Treat all ARM compilers equally */
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# elif defined(__CW32__)
-# pragma longlong on
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# elif defined(__VC32__)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T __int64
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# endif
-
-#elif defined(__MWERKS__)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-
-#elif defined(_WIN32_WCE)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T __int64
-# define CURL_FORMAT_CURL_OFF_T "I64d"
-# define CURL_FORMAT_CURL_OFF_TU "I64u"
-# define CURL_FORMAT_OFF_T "%I64d"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T i64
-# define CURL_SUFFIX_CURL_OFF_TU ui64
-
-#elif defined(__MINGW32__)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "I64d"
-# define CURL_FORMAT_CURL_OFF_TU "I64u"
-# define CURL_FORMAT_OFF_T "%I64d"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-
-#elif defined(__VMS)
-# if defined(__alpha) || defined(__ia64)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# else
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# endif
-
-#elif defined(__OS400__)
-# if defined(__ILEC400__)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# endif
-
-#elif defined(__MVS__)
-# if defined(__IBMC__) || defined(__IBMCPP__)
-# if defined(_ILP32)
-# define CURL_SIZEOF_LONG 4
-# elif defined(_LP64)
-# define CURL_SIZEOF_LONG 8
-# endif
-# if defined(_LONG_LONG)
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# elif defined(_LP64)
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# else
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# endif
-# endif
-
-#elif defined(__370__)
-# if defined(__IBMC__) || defined(__IBMCPP__)
-# if defined(_ILP32)
-# define CURL_SIZEOF_LONG 4
-# elif defined(_LP64)
-# define CURL_SIZEOF_LONG 8
-# endif
-# if defined(_LONG_LONG)
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# elif defined(_LP64)
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# else
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# endif
-# endif
-
-/* ===================================== */
-/* SunPro Compilers */
-/* ===================================== */
-
-#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#include
-#include
-
-# define CURL_TYPEOF_CURL_OFF_T off_t
-# define CURL_SIZEOF_CURL_OFF_T 8
-# if defined(__amd64) || defined(__sparcv9)
-# define CURL_SIZEOF_LONG 8
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# else
-# define CURL_SIZEOF_LONG 4
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# endif
-
-/* ===================================== */
-/* KEEP MSVC THE PENULTIMATE ENTRY */
-/* ===================================== */
-
-#elif defined(_MSC_VER)
-# if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T __int64
-# define CURL_FORMAT_CURL_OFF_T "I64d"
-# define CURL_FORMAT_CURL_OFF_TU "I64u"
-# define CURL_FORMAT_OFF_T "%I64d"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T i64
-# define CURL_SUFFIX_CURL_OFF_TU ui64
-# else
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 4
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# endif
-
-/* ===================================== */
-/* KEEP GENERIC GCC THE LAST ENTRY */
-/* ===================================== */
-
-#elif defined(__GNUC__)
-# if defined(__i386__) || defined(__ppc__)
-# define CURL_SIZEOF_LONG 4
-# define CURL_TYPEOF_CURL_OFF_T long long
-# define CURL_FORMAT_CURL_OFF_T "lld"
-# define CURL_FORMAT_CURL_OFF_TU "llu"
-# define CURL_FORMAT_OFF_T "%lld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T LL
-# define CURL_SUFFIX_CURL_OFF_TU ULL
-# elif defined(__x86_64__) || defined(__ppc64__)
-# define CURL_SIZEOF_LONG 8
-# define CURL_TYPEOF_CURL_OFF_T long
-# define CURL_FORMAT_CURL_OFF_T "ld"
-# define CURL_FORMAT_CURL_OFF_TU "lu"
-# define CURL_FORMAT_OFF_T "%ld"
-# define CURL_SIZEOF_CURL_OFF_T 8
-# define CURL_SUFFIX_CURL_OFF_T L
-# define CURL_SUFFIX_CURL_OFF_TU UL
-# endif
-
-#else
-# error "Unknown non-configure build target!"
- Error Compilation_aborted_Unknown_non_configure_build_target
-#endif
-
-/* Data type definition of curl_off_t. */
-
-#ifdef CURL_TYPEOF_CURL_OFF_T
- typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
-#endif
-
-#endif /* __CURL_CURLBUILD_H */
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/curlbuild.h.in b/main/source/includes/libcurl-7.19.3/include/curl/curlbuild.h.in
deleted file mode 100644
index 4f8edc4d..00000000
--- a/main/source/includes/libcurl-7.19.3/include/curl/curlbuild.h.in
+++ /dev/null
@@ -1,153 +0,0 @@
-#ifndef __CURL_CURLBUILD_H
-#define __CURL_CURLBUILD_H
-/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
- * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
- * are also available at http://curl.haxx.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- * $Id: curlbuild.h.in,v 1.6 2008-08-25 13:42:53 yangtse Exp $
- ***************************************************************************/
-
-/* ================================================================ */
-/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */
-/* ================================================================ */
-
-/*
- * NOTE 1:
- * -------
- *
- * Nothing in this file is intended to be modified or adjusted by the
- * curl library user nor by the curl library builder.
- *
- * If you think that something actually needs to be changed, adjusted
- * or fixed in this file, then, report it on the libcurl development
- * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/
- *
- * This header file shall only export symbols which are 'curl' or 'CURL'
- * prefixed, otherwise public name space would be polluted.
- *
- * NOTE 2:
- * -------
- *
- * Right now you might be staring at file include/curl/curlbuild.h.in or
- * at file include/curl/curlbuild.h, this is due to the following reason:
- *
- * On systems capable of running the configure script, the configure process
- * will overwrite the distributed include/curl/curlbuild.h file with one that
- * is suitable and specific to the library being configured and built, which
- * is generated from the include/curl/curlbuild.h.in template file.
- *
- */
-
-/* ================================================================ */
-/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */
-/* ================================================================ */
-
-#ifdef CURL_SIZEOF_LONG
-# error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined
-#endif
-
-#ifdef CURL_TYPEOF_CURL_OFF_T
-# error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined
-#endif
-
-#ifdef CURL_FORMAT_CURL_OFF_T
-# error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined
-#endif
-
-#ifdef CURL_FORMAT_CURL_OFF_TU
-# error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined
-#endif
-
-#ifdef CURL_FORMAT_OFF_T
-# error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined
-#endif
-
-#ifdef CURL_SIZEOF_CURL_OFF_T
-# error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined
-#endif
-
-#ifdef CURL_SUFFIX_CURL_OFF_T
-# error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined
-#endif
-
-#ifdef CURL_SUFFIX_CURL_OFF_TU
-# error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h"
- Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined
-#endif
-
-/* ================================================================ */
-/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */
-/* ================================================================ */
-
-/* Configure process defines this to 1 when it finds out that system */
-/* header file sys/types.h must be included by the external interface. */
-#undef CURL_PULL_SYS_TYPES_H
-#ifdef CURL_PULL_SYS_TYPES_H
-# include
-#endif
-
-/* Configure process defines this to 1 when it finds out that system */
-/* header file stdint.h must be included by the external interface. */
-#undef CURL_PULL_STDINT_H
-#ifdef CURL_PULL_STDINT_H
-# include
-#endif
-
-/* Configure process defines this to 1 when it finds out that system */
-/* header file inttypes.h must be included by the external interface. */
-#undef CURL_PULL_INTTYPES_H
-#ifdef CURL_PULL_INTTYPES_H
-# include
-#endif
-
-/* The size of `long', as computed by sizeof. */
-#undef CURL_SIZEOF_LONG
-
-/* Signed integral data type used for curl_off_t. */
-#undef CURL_TYPEOF_CURL_OFF_T
-
-/* Data type definition of curl_off_t. */
-typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
-
-/* curl_off_t formatting string directive without "%" conversion specifier. */
-#undef CURL_FORMAT_CURL_OFF_T
-
-/* unsigned curl_off_t formatting string without "%" conversion specifier. */
-#undef CURL_FORMAT_CURL_OFF_TU
-
-/* curl_off_t formatting string directive with "%" conversion specifier. */
-#undef CURL_FORMAT_OFF_T
-
-/* The size of `curl_off_t', as computed by sizeof. */
-#undef CURL_SIZEOF_CURL_OFF_T
-
-/* curl_off_t constant suffix. */
-#undef CURL_SUFFIX_CURL_OFF_T
-
-/* unsigned curl_off_t constant suffix. */
-#undef CURL_SUFFIX_CURL_OFF_TU
-
-#endif /* __CURL_CURLBUILD_H */
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/curlrules.h b/main/source/includes/libcurl-7.19.3/include/curl/curlrules.h
deleted file mode 100644
index 25783ffc..00000000
--- a/main/source/includes/libcurl-7.19.3/include/curl/curlrules.h
+++ /dev/null
@@ -1,216 +0,0 @@
-#ifndef __CURL_CURLRULES_H
-#define __CURL_CURLRULES_H
-/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
- * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
- * are also available at http://curl.haxx.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- * $Id: curlrules.h,v 1.5 2008-08-25 01:18:49 yangtse Exp $
- ***************************************************************************/
-
-/* ================================================================ */
-/* COMPILE TIME SANITY CHECKS */
-/* ================================================================ */
-
-/*
- * NOTE 1:
- * -------
- *
- * All checks done in this file are intentionally placed in a public
- * header file which is pulled by curl/curl.h when an application is
- * being built using an already built libcurl library. Additionally
- * this file is also included and used when building the library.
- *
- * If compilation fails on this file it is certainly sure that the
- * problem is elsewhere. It could be a problem in the curlbuild.h
- * header file, or simply that you are using different compilation
- * settings than those used to build the library.
- *
- * Nothing in this file is intended to be modified or adjusted by the
- * curl library user nor by the curl library builder.
- *
- * Do not deactivate any check, these are done to make sure that the
- * library is properly built and used.
- *
- * You can find further help on the libcurl development mailing list:
- * http://cool.haxx.se/mailman/listinfo/curl-library/
- *
- * NOTE 2
- * ------
- *
- * Some of the following compile time checks are based on the fact
- * that the dimension of a constant array can not be a negative one.
- * In this way if the compile time verification fails, the compilation
- * will fail issuing an error. The error description wording is compiler
- * dependant but it will be quite similar to one of the following:
- *
- * "negative subscript or subscript is too large"
- * "array must have at least one element"
- * "-1 is an illegal array size"
- * "size of array is negative"
- *
- * If you are building an application which tries to use an already
- * built libcurl library and you are getting this kind of errors on
- * this file, it is a clear indication that there is a mismatch between
- * how the library was built and how you are trying to use it for your
- * application. Your already compiled or binary library provider is the
- * only one who can give you the details you need to properly use it.
- */
-
-/*
- * Verify that some macros are actually defined.
- */
-
-#ifndef CURL_SIZEOF_LONG
-# error "CURL_SIZEOF_LONG definition is missing!"
- Error Compilation_aborted_CURL_SIZEOF_LONG_is_missing
-#endif
-
-#ifndef CURL_TYPEOF_CURL_OFF_T
-# error "CURL_TYPEOF_CURL_OFF_T definition is missing!"
- Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_is_missing
-#endif
-
-#ifndef CURL_FORMAT_CURL_OFF_T
-# error "CURL_FORMAT_CURL_OFF_T definition is missing!"
- Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_is_missing
-#endif
-
-#ifndef CURL_FORMAT_CURL_OFF_TU
-# error "CURL_FORMAT_CURL_OFF_TU definition is missing!"
- Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_is_missing
-#endif
-
-#ifndef CURL_FORMAT_OFF_T
-# error "CURL_FORMAT_OFF_T definition is missing!"
- Error Compilation_aborted_CURL_FORMAT_OFF_T_is_missing
-#endif
-
-#ifndef CURL_SIZEOF_CURL_OFF_T
-# error "CURL_SIZEOF_CURL_OFF_T definition is missing!"
- Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_is_missing
-#endif
-
-#ifndef CURL_SUFFIX_CURL_OFF_T
-# error "CURL_SUFFIX_CURL_OFF_T definition is missing!"
- Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_is_missing
-#endif
-
-#ifndef CURL_SUFFIX_CURL_OFF_TU
-# error "CURL_SUFFIX_CURL_OFF_TU definition is missing!"
- Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_is_missing
-#endif
-
-/*
- * Macros private to this header file.
- */
-
-#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1
-
-#define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1
-
-/*
- * Verify that the size previously defined and expected for long
- * is the same as the one reported by sizeof() at compile time.
- */
-
-typedef char
- __curl_rule_01__
- [CurlchkszEQ(long, CURL_SIZEOF_LONG)];
-
-/*
- * Verify that the size previously defined and expected for
- * curl_off_t is actually the the same as the one reported
- * by sizeof() at compile time.
- */
-
-typedef char
- __curl_rule_02__
- [CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)];
-
-/*
- * Verify at compile time that the size of curl_off_t as reported
- * by sizeof() is greater or equal than the one reported for long
- * for the current compilation.
- */
-
-typedef char
- __curl_rule_03__
- [CurlchkszGE(curl_off_t, long)];
-
-/* ================================================================ */
-/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */
-/* ================================================================ */
-
-/*
- * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow
- * these to be visible and exported by the external libcurl interface API,
- * while also making them visible to the library internals, simply including
- * setup.h, without actually needing to include curl.h internally.
- * If some day this section would grow big enough, all this should be moved
- * to its own header file.
- */
-
-/*
- * Figure out if we can use the ## preprocessor operator, which is supported
- * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__
- * or __cplusplus so we need to carefully check for them too.
- */
-
-#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
- defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
- defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \
- defined(__ILEC400__)
- /* This compiler is believed to have an ISO compatible preprocessor */
-#define CURL_ISOCPP
-#else
- /* This compiler is believed NOT to have an ISO compatible preprocessor */
-#undef CURL_ISOCPP
-#endif
-
-/*
- * Macros for minimum-width signed and unsigned curl_off_t integer constants.
- */
-
-#ifdef CURL_ISOCPP
-# define __CURL_OFF_T_C_HELPER2(Val,Suffix) Val ## Suffix
-#else
-# define __CURL_OFF_T_C_HELPER2(Val,Suffix) Val/**/Suffix
-#endif
-#define __CURL_OFF_T_C_HELPER1(Val,Suffix) __CURL_OFF_T_C_HELPER2(Val,Suffix)
-#define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HELPER1(Val,CURL_SUFFIX_CURL_OFF_T)
-#define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HELPER1(Val,CURL_SUFFIX_CURL_OFF_TU)
-
-/*
- * Get rid of macros private to this header file.
- */
-
-#undef CurlchkszEQ
-#undef CurlchkszGE
-
-/*
- * Get rid of macros not intended to exist beyond this point.
- */
-
-#undef CURL_PULL_SYS_TYPES_H
-#undef CURL_PULL_STDINT_H
-#undef CURL_PULL_INTTYPES_H
-
-#undef CURL_TYPEOF_CURL_OFF_T
-
-#endif /* __CURL_CURLRULES_H */
diff --git a/main/source/includes/libcurl-7.19.3/include/curl/typecheck-gcc.h b/main/source/includes/libcurl-7.19.3/include/curl/typecheck-gcc.h
deleted file mode 100644
index feb7a702..00000000
--- a/main/source/includes/libcurl-7.19.3/include/curl/typecheck-gcc.h
+++ /dev/null
@@ -1,550 +0,0 @@
-#ifndef __CURL_TYPECHECK_GCC_H
-#define __CURL_TYPECHECK_GCC_H
-/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
- * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
- * are also available at http://curl.haxx.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- * $Id: typecheck-gcc.h,v 1.8 2008-10-17 03:59:02 yangtse Exp $
- ***************************************************************************/
-
-/* wraps curl_easy_setopt() with typechecking */
-
-/* To add a new kind of warning, add an
- * if(_curl_is_sometype_option(_curl_opt) && ! _curl_is_sometype(value))
- * _curl_easy_setopt_err_sometype();
- * block and define _curl_is_sometype_option, _curl_is_sometype and
- * _curl_easy_setopt_err_sometype below
- *
- * To add an option that uses the same type as an existing option, you'll just
- * need to extend the appropriate _curl_*_option macro
- */
-#define curl_easy_setopt(handle, option, value) \
-__extension__ ({ \
- __typeof__ (option) _curl_opt = option; \
- if (__builtin_constant_p(_curl_opt)) { \
- if (_curl_is_long_option(_curl_opt) && !_curl_is_long(value)) \
- _curl_easy_setopt_err_long(); \
- if (_curl_is_off_t_option(_curl_opt) && !_curl_is_off_t(value)) \
- _curl_easy_setopt_err_curl_off_t(); \
- if (_curl_is_string_option(_curl_opt) && !_curl_is_string(value)) \
- _curl_easy_setopt_err_string(); \
- if (_curl_is_write_cb_option(_curl_opt) && !_curl_is_write_cb(value)) \
- _curl_easy_setopt_err_write_callback(); \
- if ((_curl_opt) == CURLOPT_READFUNCTION && !_curl_is_read_cb(value)) \
- _curl_easy_setopt_err_read_cb(); \
- if ((_curl_opt) == CURLOPT_IOCTLFUNCTION && !_curl_is_ioctl_cb(value)) \
- _curl_easy_setopt_err_ioctl_cb(); \
- if ((_curl_opt) == CURLOPT_SOCKOPTFUNCTION && !_curl_is_sockopt_cb(value))\
- _curl_easy_setopt_err_sockopt_cb(); \
- if ((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION && \
- !_curl_is_opensocket_cb(value)) \
- _curl_easy_setopt_err_opensocket_cb(); \
- if ((_curl_opt) == CURLOPT_PROGRESSFUNCTION && \
- !_curl_is_progress_cb(value)) \
- _curl_easy_setopt_err_progress_cb(); \
- if ((_curl_opt) == CURLOPT_DEBUGFUNCTION && !_curl_is_debug_cb(value)) \
- _curl_easy_setopt_err_debug_cb(); \
- if ((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION && \
- !_curl_is_ssl_ctx_cb(value)) \
- _curl_easy_setopt_err_ssl_ctx_cb(); \
- if (_curl_is_conv_cb_option(_curl_opt) && !_curl_is_conv_cb(value)) \
- _curl_easy_setopt_err_conv_cb(); \
- if ((_curl_opt) == CURLOPT_SEEKFUNCTION && !_curl_is_seek_cb(value)) \
- _curl_easy_setopt_err_seek_cb(); \
- if (_curl_is_cb_data_option(_curl_opt) && !_curl_is_cb_data(value)) \
- _curl_easy_setopt_err_cb_data(); \
- if ((_curl_opt) == CURLOPT_ERRORBUFFER && !_curl_is_error_buffer(value)) \
- _curl_easy_setopt_err_error_buffer(); \
- if ((_curl_opt) == CURLOPT_STDERR && !_curl_is_FILE(value)) \
- _curl_easy_setopt_err_FILE(); \
- if (_curl_is_postfields_option(_curl_opt) && !_curl_is_postfields(value)) \
- _curl_easy_setopt_err_postfields(); \
- if ((_curl_opt) == CURLOPT_HTTPPOST && \
- !_curl_is_arr((value), struct curl_httppost)) \
- _curl_easy_setopt_err_curl_httpost(); \
- if (_curl_is_slist_option(_curl_opt) && \
- !_curl_is_arr((value), struct curl_slist)) \
- _curl_easy_setopt_err_curl_slist(); \
- if ((_curl_opt) == CURLOPT_SHARE && !_curl_is_ptr((value), CURLSH)) \
- _curl_easy_setopt_err_CURLSH(); \
- } \
- curl_easy_setopt(handle, _curl_opt, value); \
-})
-
-/* wraps curl_easy_getinfo() with typechecking */
-/* FIXME: don't allow const pointers */
-#define curl_easy_getinfo(handle, info, arg) \
-__extension__ ({ \
- __typeof__ (info) _curl_info = info; \
- if (__builtin_constant_p(_curl_info)) { \
- if (_curl_is_string_info(_curl_info) && !_curl_is_arr((arg), char *)) \
- _curl_easy_getinfo_err_string(); \
- if (_curl_is_long_info(_curl_info) && !_curl_is_arr((arg), long)) \
- _curl_easy_getinfo_err_long(); \
- if (_curl_is_double_info(_curl_info) && !_curl_is_arr((arg), double)) \
- _curl_easy_getinfo_err_double(); \
- if (_curl_is_slist_info(_curl_info) && \
- !_curl_is_arr((arg), struct curl_slist *)) \
- _curl_easy_getinfo_err_curl_slist(); \
- } \
- curl_easy_getinfo(handle, _curl_info, arg); \
-})
-
-/* TODO: typechecking for curl_share_setopt() and curl_multi_setopt(),
- * for now just make sure that the functions are called with three
- * arguments
- */
-#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param)
-#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param)
-
-
-/* the actual warnings, triggered by calling the _curl_easy_setopt_err*
- * functions */
-
-/* To define a new warning, use _CURL_WARNING(identifier, "message") */
-#define _CURL_WARNING(id, message) \
- static void __attribute__((warning(message))) __attribute__((unused)) \
- __attribute__((noinline)) id(void) { __asm__(""); }
-
-_CURL_WARNING(_curl_easy_setopt_err_long,
- "curl_easy_setopt expects a long argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_curl_off_t,
- "curl_easy_setopt expects a curl_off_t argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_string,
- "curl_easy_setopt expects a string (char* or char[]) argument for this option"
- )
-_CURL_WARNING(_curl_easy_setopt_err_write_callback,
- "curl_easy_setopt expects a curl_write_callback argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_read_cb,
- "curl_easy_setopt expects a curl_read_callback argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_ioctl_cb,
- "curl_easy_setopt expects a curl_ioctl_callback argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_sockopt_cb,
- "curl_easy_setopt expects a curl_sockopt_callback argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_opensocket_cb,
- "curl_easy_setopt expects a curl_opensocket_callback argument for this option"
- )
-_CURL_WARNING(_curl_easy_setopt_err_progress_cb,
- "curl_easy_setopt expects a curl_progress_callback argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_debug_cb,
- "curl_easy_setopt expects a curl_debug_callback argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_ssl_ctx_cb,
- "curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_conv_cb,
- "curl_easy_setopt expects a curl_conv_callback argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_seek_cb,
- "curl_easy_setopt expects a curl_seek_callback argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_cb_data,
- "curl_easy_setopt expects a private data pointer as argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_error_buffer,
- "curl_easy_setopt expects a char buffer of CURL_ERROR_SIZE as argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_FILE,
- "curl_easy_setopt expects a FILE* argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_postfields,
- "curl_easy_setopt expects a void* or char* argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_curl_httpost,
- "curl_easy_setopt expects a struct curl_httppost* argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_curl_slist,
- "curl_easy_setopt expects a struct curl_slist* argument for this option")
-_CURL_WARNING(_curl_easy_setopt_err_CURLSH,
- "curl_easy_setopt expects a CURLSH* argument for this option")
-
-_CURL_WARNING(_curl_easy_getinfo_err_string,
- "curl_easy_getinfo expects a pointer to char * for this info")
-_CURL_WARNING(_curl_easy_getinfo_err_long,
- "curl_easy_getinfo expects a pointer to long for this info")
-_CURL_WARNING(_curl_easy_getinfo_err_double,
- "curl_easy_getinfo expects a pointer to double for this info")
-_CURL_WARNING(_curl_easy_getinfo_err_curl_slist,
- "curl_easy_getinfo expects a pointer to struct curl_slist * for this info")
-
-/* groups of curl_easy_setops options that take the same type of argument */
-
-/* To add a new option to one of the groups, just add
- * (option) == CURLOPT_SOMETHING
- * to the or-expression. If the option takes a long or curl_off_t, you don't
- * have to do anything
- */
-
-/* evaluates to true if option takes a long argument */
-#define _curl_is_long_option(option) \
- (0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT)
-
-#define _curl_is_off_t_option(option) \
- ((option) > CURLOPTTYPE_OFF_T)
-
-/* evaluates to true if option takes a char* argument */
-#define _curl_is_string_option(option) \
- ((option) == CURLOPT_URL || \
- (option) == CURLOPT_PROXY || \
- (option) == CURLOPT_INTERFACE || \
- (option) == CURLOPT_NETRC_FILE || \
- (option) == CURLOPT_USERPWD || \
- (option) == CURLOPT_USERNAME || \
- (option) == CURLOPT_PASSWORD || \
- (option) == CURLOPT_PROXYUSERPWD || \
- (option) == CURLOPT_PROXYUSERNAME || \
- (option) == CURLOPT_PROXYPASSWORD || \
- (option) == CURLOPT_ENCODING || \
- (option) == CURLOPT_REFERER || \
- (option) == CURLOPT_USERAGENT || \
- (option) == CURLOPT_COOKIE || \
- (option) == CURLOPT_COOKIEFILE || \
- (option) == CURLOPT_COOKIEJAR || \
- (option) == CURLOPT_COOKIELIST || \
- (option) == CURLOPT_FTPPORT || \
- (option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \
- (option) == CURLOPT_FTP_ACCOUNT || \
- (option) == CURLOPT_RANGE || \
- (option) == CURLOPT_CUSTOMREQUEST || \
- (option) == CURLOPT_SSLCERT || \
- (option) == CURLOPT_SSLCERTTYPE || \
- (option) == CURLOPT_SSLKEY || \
- (option) == CURLOPT_SSLKEYTYPE || \
- (option) == CURLOPT_KEYPASSWD || \
- (option) == CURLOPT_SSLENGINE || \
- (option) == CURLOPT_CAINFO || \
- (option) == CURLOPT_CAPATH || \
- (option) == CURLOPT_RANDOM_FILE || \
- (option) == CURLOPT_EGDSOCKET || \
- (option) == CURLOPT_SSL_CIPHER_LIST || \
- (option) == CURLOPT_KRBLEVEL || \
- (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \
- (option) == CURLOPT_SSH_PUBLIC_KEYFILE || \
- (option) == CURLOPT_SSH_PRIVATE_KEYFILE || \
- (option) == CURLOPT_CRLFILE || \
- (option) == CURLOPT_ISSUERCERT || \
- 0)
-
-/* evaluates to true if option takes a curl_write_callback argument */
-#define _curl_is_write_cb_option(option) \
- ((option) == CURLOPT_HEADERFUNCTION || \
- (option) == CURLOPT_WRITEFUNCTION)
-
-/* evaluates to true if option takes a curl_conv_callback argument */
-#define _curl_is_conv_cb_option(option) \
- ((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \
- (option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \
- (option) == CURLOPT_CONV_FROM_UTF8_FUNCTION)
-
-/* evaluates to true if option takes a data argument to pass to a callback */
-#define _curl_is_cb_data_option(option) \
- ((option) == CURLOPT_WRITEDATA || \
- (option) == CURLOPT_READDATA || \
- (option) == CURLOPT_IOCTLDATA || \
- (option) == CURLOPT_SOCKOPTDATA || \
- (option) == CURLOPT_OPENSOCKETDATA || \
- (option) == CURLOPT_PROGRESSDATA || \
- (option) == CURLOPT_WRITEHEADER || \
- (option) == CURLOPT_DEBUGDATA || \
- (option) == CURLOPT_SSL_CTX_DATA || \
- (option) == CURLOPT_SEEKDATA || \
- (option) == CURLOPT_PRIVATE || \
- 0)
-
-/* evaluates to true if option takes a POST data argument (void* or char*) */
-#define _curl_is_postfields_option(option) \
- ((option) == CURLOPT_POSTFIELDS || \
- (option) == CURLOPT_COPYPOSTFIELDS || \
- 0)
-
-/* evaluates to true if option takes a struct curl_slist * argument */
-#define _curl_is_slist_option(option) \
- ((option) == CURLOPT_HTTPHEADER || \
- (option) == CURLOPT_HTTP200ALIASES || \
- (option) == CURLOPT_QUOTE || \
- (option) == CURLOPT_POSTQUOTE || \
- (option) == CURLOPT_PREQUOTE || \
- (option) == CURLOPT_TELNETOPTIONS || \
- 0)
-
-/* groups of curl_easy_getinfo infos that take the same type of argument */
-
-/* evaluates to true if info expects a pointer to char * argument */
-#define _curl_is_string_info(info) \
- (CURLINFO_STRING < (info) && (info) < CURLINFO_LONG)
-
-/* evaluates to true if info expects a pointer to long argument */
-#define _curl_is_long_info(info) \
- (CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE)
-
-/* evaluates to true if info expects a pointer to double argument */
-#define _curl_is_double_info(info) \
- (CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST)
-
-/* true if info expects a pointer to struct curl_slist * argument */
-#define _curl_is_slist_info(info) \
- (CURLINFO_SLIST < (info))
-
-
-/* typecheck helpers -- check whether given expression has requested type*/
-
-/* For pointers, you can use the _curl_is_ptr/_curl_is_arr macros,
- * otherwise define a new macro. Search for __builtin_types_compatible_p
- * in the GCC manual.
- * NOTE: these macros MUST NOT EVALUATE their arguments! The argument is
- * the actual expression passed to the curl_easy_setopt macro. This
- * means that you can only apply the sizeof and __typeof__ operators, no
- * == or whatsoever.
- */
-
-/* XXX: should evaluate to true iff expr is a pointer */
-#define _curl_is_any_ptr(expr) \
- (sizeof(expr) == sizeof(void*))
-
-/* evaluates to true if expr is NULL */
-/* XXX: must not evaluate expr, so this check is not accurate */
-#define _curl_is_NULL(expr) \
- (__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL)))
-
-/* evaluates to true if expr is type*, const type* or NULL */
-#define _curl_is_ptr(expr, type) \
- (_curl_is_NULL(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), type *) || \
- __builtin_types_compatible_p(__typeof__(expr), const type *))
-
-/* evaluates to true if expr is one of type[], type*, NULL or const type* */
-#define _curl_is_arr(expr, type) \
- (_curl_is_ptr((expr), type) || \
- __builtin_types_compatible_p(__typeof__(expr), type []))
-
-/* evaluates to true if expr is a string */
-#define _curl_is_string(expr) \
- (_curl_is_arr((expr), char) || \
- _curl_is_arr((expr), signed char) || \
- _curl_is_arr((expr), unsigned char))
-
-/* evaluates to true if expr is a long (no matter the signedness)
- * XXX: for now, int is also accepted (and therefore short and char, which
- * are promoted to int when passed to a variadic function) */
-#define _curl_is_long(expr) \
- (__builtin_types_compatible_p(__typeof__(expr), long) || \
- __builtin_types_compatible_p(__typeof__(expr), signed long) || \
- __builtin_types_compatible_p(__typeof__(expr), unsigned long) || \
- __builtin_types_compatible_p(__typeof__(expr), int) || \
- __builtin_types_compatible_p(__typeof__(expr), signed int) || \
- __builtin_types_compatible_p(__typeof__(expr), unsigned int) || \
- __builtin_types_compatible_p(__typeof__(expr), short) || \
- __builtin_types_compatible_p(__typeof__(expr), signed short) || \
- __builtin_types_compatible_p(__typeof__(expr), unsigned short) || \
- __builtin_types_compatible_p(__typeof__(expr), char) || \
- __builtin_types_compatible_p(__typeof__(expr), signed char) || \
- __builtin_types_compatible_p(__typeof__(expr), unsigned char))
-
-/* evaluates to true if expr is of type curl_off_t */
-#define _curl_is_off_t(expr) \
- (__builtin_types_compatible_p(__typeof__(expr), curl_off_t))
-
-/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */
-/* XXX: also check size of an char[] array? */
-#define _curl_is_error_buffer(expr) \
- (__builtin_types_compatible_p(__typeof__(expr), char *) || \
- __builtin_types_compatible_p(__typeof__(expr), char[]))
-
-/* evaluates to true if expr is of type (const) void* or (const) FILE* */
-#if 0
-#define _curl_is_cb_data(expr) \
- (_curl_is_ptr((expr), void) || \
- _curl_is_ptr((expr), FILE))
-#else /* be less strict */
-#define _curl_is_cb_data(expr) \
- _curl_is_any_ptr(expr)
-#endif
-
-/* evaluates to true if expr is of type FILE* */
-#define _curl_is_FILE(expr) \
- (__builtin_types_compatible_p(__typeof__(expr), FILE *))
-
-/* evaluates to true if expr can be passed as POST data (void* or char*) */
-#define _curl_is_postfields(expr) \
- (_curl_is_ptr((expr), void) || \
- _curl_is_arr((expr), char))
-
-/* FIXME: the whole callback checking is messy...
- * The idea is to tolerate char vs. void and const vs. not const
- * pointers in arguments at least
- */
-/* helper: __builtin_types_compatible_p distinguishes between functions and
- * function pointers, hide it */
-#define _curl_callback_compatible(func, type) \
- (__builtin_types_compatible_p(__typeof__(func), type) || \
- __builtin_types_compatible_p(__typeof__(func), type*))
-
-/* evaluates to true if expr is of type curl_read_callback or "similar" */
-#define _curl_is_read_cb(expr) \
- (_curl_is_NULL(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), __typeof__(fread)) || \
- __builtin_types_compatible_p(__typeof__(expr), curl_read_callback) || \
- _curl_callback_compatible((expr), _curl_read_callback1) || \
- _curl_callback_compatible((expr), _curl_read_callback2) || \
- _curl_callback_compatible((expr), _curl_read_callback3) || \
- _curl_callback_compatible((expr), _curl_read_callback4) || \
- _curl_callback_compatible((expr), _curl_read_callback5) || \
- _curl_callback_compatible((expr), _curl_read_callback6))
-typedef size_t (_curl_read_callback1)(char *, size_t, size_t, void*);
-typedef size_t (_curl_read_callback2)(char *, size_t, size_t, const void*);
-typedef size_t (_curl_read_callback3)(char *, size_t, size_t, FILE*);
-typedef size_t (_curl_read_callback4)(void *, size_t, size_t, void*);
-typedef size_t (_curl_read_callback5)(void *, size_t, size_t, const void*);
-typedef size_t (_curl_read_callback6)(void *, size_t, size_t, FILE*);
-
-/* evaluates to true if expr is of type curl_write_callback or "similar" */
-#define _curl_is_write_cb(expr) \
- (_curl_is_read_cb(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), __typeof__(fwrite)) || \
- __builtin_types_compatible_p(__typeof__(expr), curl_write_callback) || \
- _curl_callback_compatible((expr), _curl_write_callback1) || \
- _curl_callback_compatible((expr), _curl_write_callback2) || \
- _curl_callback_compatible((expr), _curl_write_callback3) || \
- _curl_callback_compatible((expr), _curl_write_callback4) || \
- _curl_callback_compatible((expr), _curl_write_callback5) || \
- _curl_callback_compatible((expr), _curl_write_callback6))
-typedef size_t (_curl_write_callback1)(const char *, size_t, size_t, void*);
-typedef size_t (_curl_write_callback2)(const char *, size_t, size_t,
- const void*);
-typedef size_t (_curl_write_callback3)(const char *, size_t, size_t, FILE*);
-typedef size_t (_curl_write_callback4)(const void *, size_t, size_t, void*);
-typedef size_t (_curl_write_callback5)(const void *, size_t, size_t,
- const void*);
-typedef size_t (_curl_write_callback6)(const void *, size_t, size_t, FILE*);
-
-/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */
-#define _curl_is_ioctl_cb(expr) \
- (_curl_is_NULL(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), curl_ioctl_callback) || \
- _curl_callback_compatible((expr), _curl_ioctl_callback1) || \
- _curl_callback_compatible((expr), _curl_ioctl_callback2) || \
- _curl_callback_compatible((expr), _curl_ioctl_callback3) || \
- _curl_callback_compatible((expr), _curl_ioctl_callback4))
-typedef curlioerr (_curl_ioctl_callback1)(CURL *, int, void*);
-typedef curlioerr (_curl_ioctl_callback2)(CURL *, int, const void*);
-typedef curlioerr (_curl_ioctl_callback3)(CURL *, curliocmd, void*);
-typedef curlioerr (_curl_ioctl_callback4)(CURL *, curliocmd, const void*);
-
-/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */
-#define _curl_is_sockopt_cb(expr) \
- (_curl_is_NULL(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), curl_sockopt_callback) || \
- _curl_callback_compatible((expr), _curl_sockopt_callback1) || \
- _curl_callback_compatible((expr), _curl_sockopt_callback2))
-typedef int (_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype);
-typedef int (_curl_sockopt_callback2)(const void *, curl_socket_t,
- curlsocktype);
-
-/* evaluates to true if expr is of type curl_opensocket_callback or "similar" */
-#define _curl_is_opensocket_cb(expr) \
- (_curl_is_NULL(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), curl_opensocket_callback) ||\
- _curl_callback_compatible((expr), _curl_opensocket_callback1) || \
- _curl_callback_compatible((expr), _curl_opensocket_callback2) || \
- _curl_callback_compatible((expr), _curl_opensocket_callback3) || \
- _curl_callback_compatible((expr), _curl_opensocket_callback4))
-typedef curl_socket_t (_curl_opensocket_callback1)
- (void *, curlsocktype, struct curl_sockaddr *);
-typedef curl_socket_t (_curl_opensocket_callback2)
- (void *, curlsocktype, const struct curl_sockaddr *);
-typedef curl_socket_t (_curl_opensocket_callback3)
- (const void *, curlsocktype, struct curl_sockaddr *);
-typedef curl_socket_t (_curl_opensocket_callback4)
- (const void *, curlsocktype, const struct curl_sockaddr *);
-
-/* evaluates to true if expr is of type curl_progress_callback or "similar" */
-#define _curl_is_progress_cb(expr) \
- (_curl_is_NULL(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), curl_progress_callback) || \
- _curl_callback_compatible((expr), _curl_progress_callback1) || \
- _curl_callback_compatible((expr), _curl_progress_callback2))
-typedef int (_curl_progress_callback1)(void *,
- double, double, double, double);
-typedef int (_curl_progress_callback2)(const void *,
- double, double, double, double);
-
-/* evaluates to true if expr is of type curl_debug_callback or "similar" */
-#define _curl_is_debug_cb(expr) \
- (_curl_is_NULL(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), curl_debug_callback) || \
- _curl_callback_compatible((expr), _curl_debug_callback1) || \
- _curl_callback_compatible((expr), _curl_debug_callback2) || \
- _curl_callback_compatible((expr), _curl_debug_callback3) || \
- _curl_callback_compatible((expr), _curl_debug_callback4))
-typedef int (_curl_debug_callback1) (CURL *,
- curl_infotype, char *, size_t, void *);
-typedef int (_curl_debug_callback2) (CURL *,
- curl_infotype, char *, size_t, const void *);
-typedef int (_curl_debug_callback3) (CURL *,
- curl_infotype, const char *, size_t, void *);
-typedef int (_curl_debug_callback4) (CURL *,
- curl_infotype, const char *, size_t, const void *);
-
-/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */
-/* this is getting even messier... */
-#define _curl_is_ssl_ctx_cb(expr) \
- (_curl_is_NULL(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), curl_ssl_ctx_callback) || \
- _curl_callback_compatible((expr), _curl_ssl_ctx_callback1) || \
- _curl_callback_compatible((expr), _curl_ssl_ctx_callback2) || \
- _curl_callback_compatible((expr), _curl_ssl_ctx_callback3) || \
- _curl_callback_compatible((expr), _curl_ssl_ctx_callback4) || \
- _curl_callback_compatible((expr), _curl_ssl_ctx_callback5) || \
- _curl_callback_compatible((expr), _curl_ssl_ctx_callback6) || \
- _curl_callback_compatible((expr), _curl_ssl_ctx_callback7) || \
- _curl_callback_compatible((expr), _curl_ssl_ctx_callback8))
-typedef CURLcode (_curl_ssl_ctx_callback1)(CURL *, void *, void *);
-typedef CURLcode (_curl_ssl_ctx_callback2)(CURL *, void *, const void *);
-typedef CURLcode (_curl_ssl_ctx_callback3)(CURL *, const void *, void *);
-typedef CURLcode (_curl_ssl_ctx_callback4)(CURL *, const void *, const void *);
-#ifdef HEADER_SSL_H
-/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX
- * this will of course break if we're included before OpenSSL headers...
- */
-typedef CURLcode (_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *);
-typedef CURLcode (_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *);
-typedef CURLcode (_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *);
-typedef CURLcode (_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, const void *);
-#else
-typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5;
-typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6;
-typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7;
-typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8;
-#endif
-
-/* evaluates to true if expr is of type curl_conv_callback or "similar" */
-#define _curl_is_conv_cb(expr) \
- (_curl_is_NULL(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), curl_conv_callback) || \
- _curl_callback_compatible((expr), _curl_conv_callback1) || \
- _curl_callback_compatible((expr), _curl_conv_callback2) || \
- _curl_callback_compatible((expr), _curl_conv_callback3) || \
- _curl_callback_compatible((expr), _curl_conv_callback4))
-typedef CURLcode (*_curl_conv_callback1)(char *, size_t length);
-typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length);
-typedef CURLcode (*_curl_conv_callback3)(void *, size_t length);
-typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length);
-
-/* evaluates to true if expr is of type curl_seek_callback or "similar" */
-#define _curl_is_seek_cb(expr) \
- (_curl_is_NULL(expr) || \
- __builtin_types_compatible_p(__typeof__(expr), curl_seek_callback) || \
- _curl_callback_compatible((expr), _curl_seek_callback1) || \
- _curl_callback_compatible((expr), _curl_seek_callback2))
-typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int);
-typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int);
-
-
-#endif /* __CURL_TYPECHECK_GCC_H */
diff --git a/main/source/includes/libcurl-7.19.3/lib/Debug/curllib.lib b/main/source/includes/libcurl-7.19.3/lib/Debug/curllib.lib
deleted file mode 100644
index e22c2ce7..00000000
Binary files a/main/source/includes/libcurl-7.19.3/lib/Debug/curllib.lib and /dev/null differ
diff --git a/main/source/includes/libcurl-7.19.3/lib/Debug/curllib_static.lib b/main/source/includes/libcurl-7.19.3/lib/Debug/curllib_static.lib
deleted file mode 100644
index 309a1839..00000000
Binary files a/main/source/includes/libcurl-7.19.3/lib/Debug/curllib_static.lib and /dev/null differ
diff --git a/main/source/includes/libcurl-7.19.3/lib/Release/curllib.lib b/main/source/includes/libcurl-7.19.3/lib/Release/curllib.lib
deleted file mode 100644
index ee453c45..00000000
Binary files a/main/source/includes/libcurl-7.19.3/lib/Release/curllib.lib and /dev/null differ
diff --git a/main/source/includes/libcurl-7.19.3/lib/Release/curllib_static.lib b/main/source/includes/libcurl-7.19.3/lib/Release/curllib_static.lib
deleted file mode 100644
index c4721ea3..00000000
Binary files a/main/source/includes/libcurl-7.19.3/lib/Release/curllib_static.lib and /dev/null differ
diff --git a/main/source/includes/libcurl-7.19.3/libcurl_imp.lib b/main/source/includes/libcurl-7.19.3/libcurl_imp.lib
deleted file mode 100644
index ee453c45..00000000
Binary files a/main/source/includes/libcurl-7.19.3/libcurl_imp.lib and /dev/null differ
diff --git a/main/source/includes/libcurl-7.19.3/libeay32.lib b/main/source/includes/libcurl-7.19.3/libeay32.lib
deleted file mode 100644
index 8b62ac76..00000000
Binary files a/main/source/includes/libcurl-7.19.3/libeay32.lib and /dev/null differ
diff --git a/main/source/includes/libcurl-7.19.3/openldap.lib b/main/source/includes/libcurl-7.19.3/openldap.lib
deleted file mode 100644
index 8488d334..00000000
Binary files a/main/source/includes/libcurl-7.19.3/openldap.lib and /dev/null differ
diff --git a/main/source/includes/libcurl-7.19.3/ssleay32.lib b/main/source/includes/libcurl-7.19.3/ssleay32.lib
deleted file mode 100644
index 8d87f47e..00000000
Binary files a/main/source/includes/libcurl-7.19.3/ssleay32.lib and /dev/null differ
diff --git a/main/source/includes/vgui/include/VGUI.h b/main/source/includes/vgui/include/VGUI.h
new file mode 100644
index 00000000..0dff607a
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI.h
@@ -0,0 +1,108 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_H
+#define VGUI_H
+
+//If you are going to add stuff to the vgui core...
+//
+//Keep it simple.
+//
+//Never put code in a header.
+//
+//The name of the class is the name of the the file
+//
+//Each class gets its own .cpp file for its definition and a .h for its header. Helper
+//classes can be used but only within the .cpp and not referenceable from anywhere else.
+//
+//Don't add unneeded files. Keep the API clean.
+//
+//No platform specific code in vgui\lib-src\vgui dir. Code in vgui\lib-src\vgui should
+//only include from vgui\include or standard C includes. ie, if I see windows.h included
+//anywhere but vgui\lib-src\win32 I will hunt you down and kill you. Don't give me any crap
+//that mfc is platform inspecific.
+//
+//Always use <> and not "" for includes
+//
+//Use minimum dependencies in headers. Don't include another header if you can get away
+//with forward declaring (which is usually the case)
+//
+//No macros in headers. They are tools of satan. This also means no use of DEFINEs, use enum
+//
+//Minimize global functions
+//
+//No global variables.
+//
+//Panel is getting pretty plump, try and avoid adding junk to it if you can
+
+//TODO: Look and Feel support
+// add Panel::setPaintProxy, if _paintProxy exists, it calls _paintProxy->paint
+// instead of Panel::paint. Components should implement their painting in a seperate
+// plugin class. Perhaps to encourage this, Panel::paint should just go away completely
+// The other option is to have Panel have the interface Paintable
+// class Paintable
+// {
+// public:
+// virtual void paint()=0;
+// };
+// Then a component can implement its paint in the class itself and then call
+// setPaintProxy(this). If this is the case _paintProxy->paint should always be called
+// and never Panel::paint from within paintTraverse
+//TODO: Figure out the 'Valve' Look and Feel and implement that instead of a the Java one
+//TODO: Determine ownership policy for Borders, Layouts, etc..
+//TODO: tooltips support
+//TODO: ComboKey (hot key support)
+//TODO: add Background.cpp, remove paintBackground from all components
+// Panel implements setBackground, Panel::paintBackground calls _background->paintBackground
+// similiar to the way Border works.
+//TODO: Builtin components should never overide paintBackground, only paint
+//TODO: All protected members should be converted to private
+//TODO: All member variables should be moved to the top of the class prototype
+//TODO: All private methods should be prepended with private
+//TODO: Use of word internal in method names is not consistent and confusing
+//TODO: Cleanup so bullshit publics are properly named, maybe even figure out
+// a naming convention for them
+//TODO: Breakup InputSignal into logical pieces
+//TODO: Button is in a state of disarray, it should have ButtonModel support
+//TODO: get rid of all the stupid strdup laziness, convert to vgui_strdup
+//TODO: actually figure out policy on String and implement it consistently
+//TODO: implement createLayoutInfo for other Layouts than need it
+//TODO: BorderLayout should have option for a null LayoutInfo defaulting to center
+//TODO: SurfaceBase should go away, put it in Surface
+//TODO: ActionSignals and other Signals should just set a flag when they fire.
+// then App can come along later and fire all the signals
+//TODO: Change all method naming to starting with a capital letter.
+
+#ifdef _WIN32
+# define VGUIAPI __declspec( dllexport )
+#else
+# define VGUIAPI __attribute__ ((visibility("default")))
+#include // size_t define
+#endif
+
+#define null 0L
+
+typedef unsigned char uchar;
+typedef unsigned short ushort;
+typedef unsigned int uint;
+typedef unsigned long ulong;
+
+namespace vgui
+{
+
+VGUIAPI void vgui_setMalloc(void *(*malloc)(size_t size) );
+VGUIAPI void vgui_setFree(void (*free)(void* memblock));
+VGUIAPI void vgui_strcpy(char* dst,int dstLen,const char* src);
+VGUIAPI char* vgui_strdup(const char* src);
+VGUIAPI int vgui_printf(const char* format,...);
+VGUIAPI int vgui_dprintf(const char* format,...);
+VGUIAPI int vgui_dprintf2(const char* format,...);
+
+}
+
+#endif
+
diff --git a/main/source/includes/vgui/include/VGUI_ActionSignal.h b/main/source/includes/vgui/include/VGUI_ActionSignal.h
new file mode 100644
index 00000000..372ad2b9
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_ActionSignal.h
@@ -0,0 +1,84 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_ACTIONSIGNAL_H
+#define VGUI_ACTIONSIGNAL_H
+
+#include
+
+/*
+
+TODO: maybe try something like this..
+
+class VGUIAPI ActionSignal
+{
+};
+
+class VGUIAPI ActionSignalSimple : public ActionSignal
+{
+public:
+ virtual void actionPerformed(Panel* panel)=0;
+};
+
+class VGUIAPI ActionSignalInt : public ActionSignal
+{
+public:
+ virtual void actionPerformed(int value,Panel* panel)=0;
+};
+
+
+DefaultButtonModel would implement:
+
+virtual void addActionSignal(ActionSignal* s)
+{
+ if(s!=null)
+ {
+ _actionSignalDar.putElement(s);
+ }
+}
+
+virtual void fireActionSignal()
+{
+ for(int i=0;i<_actionSignalDar.getCount();i++)
+ {
+ ActionSignal* signal=_actionSignalDar[i];
+
+ ActionSignalSimple* ss=dynamic_cast(signal);
+ if(ss!=null)
+ {
+ ss->actionPerformed(this);
+ }
+
+ ActionSignalCommand* si=dynamic_cast(signal);
+ if(si!=null)
+ {
+ si->actionPerformed(_intValue,this);
+ }
+ }
+}
+
+
+*/
+
+#include
+
+namespace vgui
+{
+
+class Panel;
+
+class VGUIAPI ActionSignal
+{
+public:
+ virtual void actionPerformed(Panel* panel)=0;
+};
+
+}
+
+#endif
+
+
diff --git a/main/source/includes/vgui/include/VGUI_App.h b/main/source/includes/vgui/include/VGUI_App.h
new file mode 100644
index 00000000..b655f928
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_App.h
@@ -0,0 +1,130 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_APP_H
+#define VGUI_APP_H
+
+#include
+#include
+#include
+#include
+#include
+
+namespace vgui
+{
+
+class Panel;
+class TickSignal;
+class Scheme;
+class TickSignal;
+class SurfaceBase;
+
+class VGUIAPI App
+{
+public:
+ App();
+ App(bool externalMain);
+public:
+ static App* getInstance();
+ //TODO: the public and public bullshit are all messed up, need to organize
+ //TODO: actually all of the access needs to be properly thought out while you are at it
+public:
+ virtual void start();
+ virtual void stop();
+ virtual void externalTick();
+ virtual bool wasMousePressed(MouseCode code,Panel* panel);
+ virtual bool wasMouseDoublePressed(MouseCode code,Panel* panel);
+ virtual bool isMouseDown(MouseCode code,Panel* panel);
+ virtual bool wasMouseReleased(MouseCode code,Panel* panel);
+ virtual bool wasKeyPressed(KeyCode code,Panel* panel);
+ virtual bool isKeyDown(KeyCode code,Panel* panel);
+ virtual bool wasKeyTyped(KeyCode code,Panel* panel);
+ virtual bool wasKeyReleased(KeyCode code,Panel* panel);
+ virtual void addTickSignal(TickSignal* s);
+ virtual void setCursorPos(int x,int y);
+ virtual void getCursorPos(int& x,int& y);
+ virtual void setMouseCapture(Panel* panel);
+ virtual void setMouseArena(int x0,int y0,int x1,int y1,bool enabled);
+ virtual void setMouseArena(Panel* panel);
+ virtual void requestFocus(Panel* panel);
+ virtual Panel* getFocus();
+ virtual void repaintAll();
+ virtual void setScheme(Scheme* scheme);
+ virtual Scheme* getScheme();
+ virtual void enableBuildMode();
+ virtual long getTimeMillis();
+ virtual char getKeyCodeChar(KeyCode code,bool shifted);
+ virtual void getKeyCodeText(KeyCode code,char* buf,int buflen);
+ virtual int getClipboardTextCount();
+ virtual void setClipboardText(const char* text,int textLen);
+ virtual int getClipboardText(int offset,char* buf,int bufLen);
+ virtual void reset();
+ virtual void internalSetMouseArena(int x0,int y0,int x1,int y1,bool enabled);
+ virtual bool setRegistryString(const char* key,const char* value);
+ virtual bool getRegistryString(const char* key,char* value,int valueLen);
+ virtual bool setRegistryInteger(const char* key,int value);
+ virtual bool getRegistryInteger(const char* key,int& value);
+ virtual void setCursorOveride(Cursor* cursor);
+ virtual Cursor* getCursorOveride();
+ virtual void setMinimumTickMillisInterval(int interval);
+public: //bullshit public stuff
+ virtual void main(int argc,char* argv[])=0;
+ virtual void run();
+ virtual void internalCursorMoved(int x,int y,SurfaceBase* surfaceBase); //expects input in surface space
+ virtual void internalMousePressed(MouseCode code,SurfaceBase* surfaceBase);
+ virtual void internalMouseDoublePressed(MouseCode code,SurfaceBase* surfaceBase);
+ virtual void internalMouseReleased(MouseCode code,SurfaceBase* surfaceBase);
+ virtual void internalMouseWheeled(int delta,SurfaceBase* surfaceBase);
+ virtual void internalKeyPressed(KeyCode code,SurfaceBase* surfaceBase);
+ virtual void internalKeyTyped(KeyCode code,SurfaceBase* surfaceBase);
+ virtual void internalKeyReleased(KeyCode code,SurfaceBase* surfaceBase);
+private:
+ virtual void init();
+ virtual void updateMouseFocus(int x,int y,SurfaceBase* surfaceBase);
+ virtual void setMouseFocus(Panel* newMouseFocus);
+protected:
+ virtual void surfaceBaseCreated(SurfaceBase* surfaceBase);
+ virtual void surfaceBaseDeleted(SurfaceBase* surfaceBase);
+ virtual void platTick();
+ virtual void internalTick();
+protected:
+ static App* _instance;
+protected:
+ bool _running;
+ bool _externalMain;
+ Dar _surfaceBaseDar;
+ Panel* _keyFocus;
+ Panel* _oldMouseFocus;
+ Panel* _mouseFocus;
+ Panel* _mouseCapture;
+ Panel* _wantedKeyFocus;
+ bool _mousePressed[MOUSE_LAST];
+ bool _mouseDoublePressed[MOUSE_LAST];
+ bool _mouseDown[MOUSE_LAST];
+ bool _mouseReleased[MOUSE_LAST];
+ bool _keyPressed[KEY_LAST];
+ bool _keyTyped[KEY_LAST];
+ bool _keyDown[KEY_LAST];
+ bool _keyReleased[KEY_LAST];
+ Dar _tickSignalDar;
+ Scheme* _scheme;
+ bool _buildMode;
+ bool _wantedBuildMode;
+ Panel* _mouseArenaPanel;
+ Cursor* _cursor[Cursor::dc_last];
+ Cursor* _cursorOveride;
+private:
+ long _nextTickMillis;
+ long _minimumTickMillisInterval;
+ friend class SurfaceBase;
+};
+}
+
+#endif
+
+
+
diff --git a/main/source/includes/vgui/include/VGUI_Bitmap.h b/main/source/includes/vgui/include/VGUI_Bitmap.h
new file mode 100644
index 00000000..7d23e395
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_Bitmap.h
@@ -0,0 +1,37 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_BITMAP_H
+#define VGUI_BITMAP_H
+
+#include
+#include
+
+namespace vgui
+{
+
+class Panel;
+
+class VGUIAPI Bitmap : public Image
+{
+private:
+ int _id;
+ bool _uploaded;
+public:
+ Bitmap();
+protected:
+ virtual void setSize(int wide,int tall);
+ virtual void setRGBA(int x,int y,uchar r,uchar g,uchar b,uchar a);
+public:
+ virtual void paint(Panel* panel);
+protected:
+ uchar* _rgba;
+};
+
+}
+
+#endif
\ No newline at end of file
diff --git a/main/source/includes/vgui/include/VGUI_BitmapTGA.h b/main/source/includes/vgui/include/VGUI_BitmapTGA.h
new file mode 100644
index 00000000..c0def710
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_BitmapTGA.h
@@ -0,0 +1,29 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_BITMAPTGA_H
+#define VGUI_BITMAPTGA_H
+
+#include
+
+namespace vgui
+{
+
+class Panel;
+class InputStream;
+
+class VGUIAPI BitmapTGA : public Bitmap
+{
+public:
+ BitmapTGA(InputStream* is,bool invertAlpha);
+private:
+ virtual bool loadTGA(InputStream* is,bool invertAlpha);
+};
+
+}
+
+#endif
\ No newline at end of file
diff --git a/main/source/includes/vgui/include/VGUI_Border.h b/main/source/includes/vgui/include/VGUI_Border.h
new file mode 100644
index 00000000..6ad137e6
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_Border.h
@@ -0,0 +1,45 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_BORDER_H
+#define VGUI_BORDER_H
+
+#include
+#include
+
+//TODO: all borders should be titled
+
+namespace vgui
+{
+
+class Panel;
+
+class VGUIAPI Border : public Image
+{
+public:
+ Border();
+ Border(int left,int top,int right,int bottom);
+public:
+ virtual void setInset(int left,int top,int right,int bottom);
+ virtual void getInset(int& left,int& top,int& right,int& bottom);
+protected:
+ virtual void drawFilledRect(int x0,int y0,int x1,int y1);
+ virtual void drawOutlinedRect(int x0,int y0,int x1,int y1);
+ virtual void drawSetTextPos(int x,int y);
+ virtual void drawPrintText(int x,int y,const char* str,int strlen);
+ virtual void drawPrintChar(int x,int y,char ch);
+protected:
+ int _inset[4];
+private:
+ Panel* _panel;
+friend class Panel;
+friend class BorderPair;
+};
+
+}
+
+#endif
\ No newline at end of file
diff --git a/main/source/includes/vgui/include/VGUI_BorderLayout.h b/main/source/includes/vgui/include/VGUI_BorderLayout.h
new file mode 100644
index 00000000..564d58ac
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_BorderLayout.h
@@ -0,0 +1,46 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_BORDERLAYOUT_H
+#define VGUI_BORDERLAYOUT_H
+
+#include
+#include
+
+namespace vgui
+{
+
+class LayoutInfo;
+
+class VGUIAPI BorderLayout : public Layout
+{
+public:
+ enum Alignment
+ {
+ a_center=0,
+ a_north,
+ a_south,
+ a_east,
+ a_west,
+ };
+private:
+ int _inset;
+public:
+ BorderLayout(int inset);
+public:
+ virtual void performLayout(Panel* panel);
+ virtual LayoutInfo* createLayoutInfo(Alignment alignment);
+};
+
+}
+
+#endif
+
+
+
+
+
diff --git a/main/source/includes/vgui/include/VGUI_BorderPair.h b/main/source/includes/vgui/include/VGUI_BorderPair.h
new file mode 100644
index 00000000..273193c4
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_BorderPair.h
@@ -0,0 +1,33 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_BORDERPAIR_H
+#define VGUI_BORDERPAIR_H
+
+#include
+#include
+
+namespace vgui
+{
+
+class Panel;
+
+class VGUIAPI BorderPair : public Border
+{
+public:
+ BorderPair(Border* border0,Border* border1);
+public:
+ virtual void doPaint(Panel* panel);
+protected:
+ virtual void paint(Panel* panel);
+protected:
+ Border* _border[2];
+};
+
+}
+
+#endif
\ No newline at end of file
diff --git a/main/source/includes/vgui/include/VGUI_BuildGroup.h b/main/source/includes/vgui/include/VGUI_BuildGroup.h
new file mode 100644
index 00000000..678e5c50
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_BuildGroup.h
@@ -0,0 +1,68 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_BUILDGROUP_H
+#define VGUI_BUILDGROUP_H
+
+#include
+#include
+#include
+#include
+
+namespace vgui
+{
+
+enum KeyCode;
+enum MouseCode;
+class Panel;
+class Cursor;
+class ChangeSignal;
+
+class VGUIAPI BuildGroup
+{
+private:
+ bool _enabled;
+ int _snapX;
+ int _snapY;
+ Cursor* _cursor_sizenwse;
+ Cursor* _cursor_sizenesw;
+ Cursor* _cursor_sizewe;
+ Cursor* _cursor_sizens;
+ Cursor* _cursor_sizeall;
+ bool _dragging;
+ MouseCode _dragMouseCode;
+ int _dragStartPanelPos[2];
+ int _dragStartCursorPos[2];
+ Panel* _currentPanel;
+ Dar _currentPanelChangeSignalDar;
+ Dar _panelDar;
+ Dar _panelNameDar;
+public:
+ BuildGroup();
+public:
+ virtual void setEnabled(bool state);
+ virtual bool isEnabled();
+ virtual void addCurrentPanelChangeSignal(ChangeSignal* s);
+ virtual Panel* getCurrentPanel();
+ virtual void copyPropertiesToClipboard();
+private:
+ virtual void applySnap(Panel* panel);
+ virtual void fireCurrentPanelChangeSignal();
+protected:
+ friend class Panel;
+ virtual void panelAdded(Panel* panel,const char* panelName);
+ virtual void cursorMoved(int x,int y,Panel* panel);
+ virtual void mousePressed(MouseCode code,Panel* panel);
+ virtual void mouseReleased(MouseCode code,Panel* panel);
+ virtual void mouseDoublePressed(MouseCode code,Panel* panel);
+ virtual void keyTyped(KeyCode code,Panel* panel);
+ virtual Cursor* getCursor(Panel* panel);
+};
+
+}
+
+#endif
\ No newline at end of file
diff --git a/main/source/includes/vgui/include/VGUI_Button.h b/main/source/includes/vgui/include/VGUI_Button.h
new file mode 100644
index 00000000..dbd4e07a
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_Button.h
@@ -0,0 +1,61 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_BUTTON_H
+#define VGUI_BUTTON_H
+
+#include
+#include
+#include
+
+namespace vgui
+{
+
+enum MouseCode;
+class ButtonController;
+class ButtonGroup;
+class ActionSignal;
+
+//TODO: Button should be derived from an AbstractButton
+class VGUIAPI Button : public Label
+{
+public:
+ Button(const char* text,int x,int y,int wide,int tall);
+ Button(const char* text,int x,int y);
+private:
+ void init();
+public:
+ virtual void setSelected(bool state);
+ virtual void setSelectedDirect(bool state);
+ virtual void setArmed(bool state);
+ virtual bool isSelected();
+ virtual void doClick();
+ virtual void addActionSignal(ActionSignal* s);
+ virtual void setButtonGroup(ButtonGroup* buttonGroup);
+ virtual bool isArmed();
+ virtual void setButtonBorderEnabled(bool state);
+ virtual void setMouseClickEnabled(MouseCode code,bool state);
+ virtual bool isMouseClickEnabled(MouseCode code);
+ virtual void fireActionSignal();
+ virtual Panel* createPropertyPanel();
+protected:
+ virtual void setButtonController(ButtonController* _buttonController);
+ virtual void paintBackground();
+protected:
+ char* _text;
+ bool _armed;
+ bool _selected;
+ bool _buttonBorderEnabled;
+ Dar _actionSignalDar;
+ int _mouseClickMask;
+ ButtonGroup* _buttonGroup;
+ ButtonController* _buttonController;
+};
+
+}
+
+#endif
\ No newline at end of file
diff --git a/main/source/includes/vgui/include/VGUI_ButtonController.h b/main/source/includes/vgui/include/VGUI_ButtonController.h
new file mode 100644
index 00000000..6099609c
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_ButtonController.h
@@ -0,0 +1,27 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_BUTTONCONTROLLER_H
+#define VGUI_BUTTONCONTROLLER_H
+
+#include
+
+namespace vgui
+{
+
+class Button;
+
+class VGUIAPI ButtonController
+{
+public:
+ virtual void addSignals(Button* button)=0;
+ virtual void removeSignals(Button* button)=0;
+};
+
+}
+
+#endif
diff --git a/main/source/includes/vgui/include/VGUI_ButtonGroup.h b/main/source/includes/vgui/include/VGUI_ButtonGroup.h
new file mode 100644
index 00000000..57c3d8f0
--- /dev/null
+++ b/main/source/includes/vgui/include/VGUI_ButtonGroup.h
@@ -0,0 +1,30 @@
+//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef VGUI_BUTTONGROUP_H
+#define VGUI_BUTTONGROUP_H
+
+#include
+#include
+
+namespace vgui
+{
+
+class Button;
+
+class VGUIAPI ButtonGroup
+{
+public:
+ virtual void addButton(Button* button);
+ virtual void setSelected(Button* button);
+protected:
+ Dar