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 _buttonDar; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_ChangeSignal.h b/main/source/includes/vgui/include/VGUI_ChangeSignal.h new file mode 100644 index 00000000..169a8dbc --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_ChangeSignal.h @@ -0,0 +1,26 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_CHANGESIGNAL_H +#define VGUI_CHANGESIGNAL_H + +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI ChangeSignal +{ +public: + virtual void valueChanged(Panel* panel)=0; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_CheckButton.h b/main/source/includes/vgui/include/VGUI_CheckButton.h new file mode 100644 index 00000000..22c320fd --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_CheckButton.h @@ -0,0 +1,28 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_CHECKBUTTON_H +#define VGUI_CHECKBUTTON_H + +#include +#include + +namespace vgui +{ + +class VGUIAPI CheckButton : public ToggleButton +{ +public: + CheckButton(const char* text,int x,int y,int wide,int tall); + CheckButton(const char* text,int x,int y); +protected: + virtual void paintBackground(); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_Color.h b/main/source/includes/vgui/include/VGUI_Color.h new file mode 100644 index 00000000..e69d5e0f --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Color.h @@ -0,0 +1,44 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_COLOR_H +#define VGUI_COLOR_H + +#include +#include + +//TODO: rename getColor(r,g,b,a) to getRGBA(r,g,b,a) +//TODO: rename setColor(r,g,b,a) to setRGBA(r,g,b,a) +//TODO: rename getColor(sc) to getSchemeColor(sc) +//TODO: rename setColor(sc) to setSchemeColor(sc) + +namespace vgui +{ + +class VGUIAPI Color +{ +private: + uchar _color[4]; + Scheme::SchemeColor _schemeColor; +public: + Color(); + Color(int r,int g,int b,int a); + Color(Scheme::SchemeColor sc); +private: + virtual void init(); +public: + virtual void setColor(int r,int g,int b,int a); + virtual void setColor(Scheme::SchemeColor sc); + virtual void getColor(int& r,int& g,int& b,int& a); + virtual void getColor(Scheme::SchemeColor& sc); + virtual int operator[](int index); +}; + +} + + +#endif diff --git a/main/source/includes/vgui/include/VGUI_ComboKey.h b/main/source/includes/vgui/include/VGUI_ComboKey.h new file mode 100644 index 00000000..6ea2488d --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_ComboKey.h @@ -0,0 +1,34 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_COMBOKEY_H +#define VGUI_COMBOKEY_H + +#include + +namespace vgui +{ + +enum KeyCode; + +class ComboKey +{ +public: + ComboKey(KeyCode code,KeyCode modifier); +public: + bool isTwoCombo(KeyCode code,KeyCode modifier); +protected: + bool check(KeyCode code); +protected: + KeyCode _keyCode[2]; +friend class Panel; +}; + +} + + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_ConfigWizard.h b/main/source/includes/vgui/include/VGUI_ConfigWizard.h new file mode 100644 index 00000000..157d3485 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_ConfigWizard.h @@ -0,0 +1,40 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_CONFIGWIZARD_H +#define VGUI_CONFIGWIZARD_H + +#include +#include + +namespace vgui +{ + +class TreeFolder; +class Panel; +class Button; + +class VGUIAPI ConfigWizard : public Panel +{ +public: + ConfigWizard(int x,int y,int wide,int tall); +public: + virtual void setSize(int wide,int tall); + virtual Panel* getClient(); + virtual TreeFolder* getFolder(); +protected: + TreeFolder* _treeFolder; + Panel* _client; + Button* _okButton; + Button* _cancelButton; + Button* _applyButton; + Button* _helpButton; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_Cursor.h b/main/source/includes/vgui/include/VGUI_Cursor.h new file mode 100644 index 00000000..0e57646b --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Cursor.h @@ -0,0 +1,57 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_CURSOR_H +#define VGUI_CURSOR_H + +#include + +namespace vgui +{ + +class Bitmap; + +class VGUIAPI Cursor +{ +public: + enum DefaultCursor + { + dc_user, + dc_none, + dc_arrow, + dc_ibeam, + dc_hourglass, + dc_crosshair, + dc_up, + dc_sizenwse, + dc_sizenesw, + dc_sizewe, + dc_sizens, + dc_sizeall, + dc_no, + dc_hand, + dc_last, + }; +private: + int _hotspot[2]; + Bitmap* _bitmap; + DefaultCursor _dc; +public: + Cursor(DefaultCursor dc); + Cursor(Bitmap* bitmap,int hotspotX,int hotspotY); +public: + virtual void getHotspot(int& x,int& y); +private: + virtual void privateInit(Bitmap* bitmap,int hotspotX,int hotspotY); +public: + virtual Bitmap* getBitmap(); + virtual DefaultCursor getDefaultCursor(); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_Dar.h b/main/source/includes/vgui/include/VGUI_Dar.h new file mode 100644 index 00000000..6f8eb513 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Dar.h @@ -0,0 +1,194 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_DAR_H +#define VGUI_DAR_H + +#include +#include +#include + + + +namespace vgui +{ + +//Simple lightweight dynamic array implementation +template class VGUIAPI Dar +{ +public: + Dar() + { + _count=0; + _capacity=0; + _data=null; + ensureCapacity(4); + } + Dar(int initialCapacity) + { + _count=0; + _capacity=0; + _data=null; + ensureCapacity(initialCapacity); + } +public: + void ensureCapacity(int wantedCapacity) + { + if(wantedCapacity<=_capacity){return;} + + //double capacity until it is >= wantedCapacity + //this could be done with math, but iterative is just so much more fun + int newCapacity=_capacity; + if(newCapacity==0){newCapacity=1;} + while(newCapacity_capacity)) + { + return; + } + _count=count; + } + int getCount() + { + return _count; + } + void addElement(ELEMTYPE elem) + { + ensureCapacity(_count+1); + _data[_count]=elem; + _count++; + } + bool hasElement(ELEMTYPE elem) + { + for(int i=0;i<_count;i++) + { + if(_data[i]==elem) + { + return true; + } + } + return false; + } + void putElement(ELEMTYPE elem) + { + if(hasElement(elem)) + { + return; + } + addElement(elem); + } + void insertElementAt(ELEMTYPE elem,int index) + { + if((index<0)||(index>_count)) + { + return; + } + if((index==_count)||(_count==0)) + { + addElement(elem); + } + else + { + addElement(elem); //just to make sure it is big enough + for(int i=_count-1;i>index;i--) + { + _data[i]=_data[i-1]; + } + _data[index]=elem; + } + } + void setElementAt(ELEMTYPE elem,int index) + { + if((index<0)||(index>=_count)) + { + return; + } + _data[index]=elem; + } + void removeElementAt(int index) + { + if((index<0)||(index>=_count)) + { + return; + } + + //slide everything to the right of index, left one. + for(int i=index;i<(_count-1);i++) + { + _data[i]=_data[i+1]; + } + _count--; + } + void removeElement(ELEMTYPE elem) + { + for(int i=0;i<_count;i++) + { + if(_data[i]==elem) + { + removeElementAt(i); + break; + } + } + } + void removeAll() + { + _count=0; + } + ELEMTYPE operator[](int index) + { + if((index<0)||(index>=_count)) + { + return null; + } + return _data[index]; + } +protected: + int _count; + int _capacity; + ELEMTYPE* _data; +}; + +#ifdef _WIN32 +//forward referencing all the template types used so they get exported +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar*>; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +template class VGUIAPI Dar; +#endif + +} + + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_DataInputStream.h b/main/source/includes/vgui/include/VGUI_DataInputStream.h new file mode 100644 index 00000000..eeb14bf0 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_DataInputStream.h @@ -0,0 +1,49 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_DATAINPUTSTREAM_H +#define VGUI_DATAINPUTSTREAM_H + +#include +#include + +namespace vgui +{ + +class VGUIAPI DataInputStream : virtual public InputStream +{ +private: + InputStream* _is; +public: + DataInputStream(InputStream* is); +public: + virtual void seekStart(bool& success); + virtual void seekRelative(int count,bool& success); + virtual void seekEnd(bool& success); + virtual int getAvailable(bool& success); + //virtual uchar readUChar(bool& success); + virtual void readUChar(uchar* buf,int count,bool& success); + virtual void close(bool& success); + virtual void close(); +public: + virtual bool readBool(bool& success); + virtual char readChar(bool& success); + virtual uchar readUChar(bool& success); + virtual short readShort(bool& success); + virtual ushort readUShort(bool& success); + virtual int readInt(bool& success); + virtual uint readUInt(bool& success); + virtual long readLong(bool& success); + virtual ulong readULong(bool& success); + virtual float readFloat(bool& success); + virtual double readDouble(bool& success); + virtual void readLine(char* buf,int bufLen,bool& success); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_Desktop.h b/main/source/includes/vgui/include/VGUI_Desktop.h new file mode 100644 index 00000000..2a4ddd16 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Desktop.h @@ -0,0 +1,42 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_DESKTOP_H +#define VGUI_DESKTOP_H + +#include +#include +#include + +namespace vgui +{ + +class DesktopIcon; +class TaskBar; + +class VGUIAPI Desktop : public Panel +{ +public: + Desktop(int x,int y,int wide,int tall); +public: + virtual void setSize(int wide,int tall); + virtual void iconActivated(DesktopIcon* icon); + virtual void addIcon(DesktopIcon* icon); + virtual void arrangeIcons(); + virtual Panel* getBackground(); + virtual Panel* getForeground(); +protected: + Panel* _background; + Panel* _foreground; + TaskBar* _taskBar; + Dar _desktopIconDar; + int _cascade[2]; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_DesktopIcon.h b/main/source/includes/vgui/include/VGUI_DesktopIcon.h new file mode 100644 index 00000000..18aaa835 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_DesktopIcon.h @@ -0,0 +1,41 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_DESKTOPICON_H +#define VGUI_DESKTOPICON_H + +#include +#include + +namespace vgui +{ + +class MiniApp; +class Image; +class Desktop; + +class VGUIAPI DesktopIcon : public Panel +{ +public: + DesktopIcon(MiniApp* miniApp,Image* image); +public: + virtual void doActivate(); + virtual void setImage(Image* image); +public: //bullshit public + virtual void setDesktop(Desktop* desktop); + virtual MiniApp* getMiniApp(); +protected: + virtual void paintBackground(); +protected: + Desktop* _desktop; + MiniApp* _miniApp; + Image* _image; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_EditPanel.h b/main/source/includes/vgui/include/VGUI_EditPanel.h new file mode 100644 index 00000000..dd43ccd8 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_EditPanel.h @@ -0,0 +1,65 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_EDITPANEL_H +#define VGUI_EDITPANEL_H + +#include +#include +#include + +namespace vgui +{ + +class Font; + +class VGUIAPI EditPanel : public Panel +{ +public: + EditPanel(int x,int y,int wide,int tall); +public: + virtual void doCursorUp(); + virtual void doCursorDown(); + virtual void doCursorLeft(); + virtual void doCursorRight(); + virtual void doCursorToStartOfLine(); + virtual void doCursorToEndOfLine(); + virtual void doCursorInsertChar(char ch); + virtual void doCursorBackspace(); + virtual void doCursorNewLine(); + virtual void doCursorDelete(); + virtual void doCursorPrintf(char* format,...); + virtual int getLineCount(); + virtual int getVisibleLineCount(); + virtual void setCursorBlink(bool state); + virtual void setFont(Font* font); + virtual void getText(int lineIndex, int offset,char* buf,int bufLen); + +public: //bullshit public + void getCursorBlink(bool& blink,int& nextBlinkTime); +protected: + virtual void paintBackground(); + virtual void paint(); + virtual void addLine(); + virtual Dar* getLine(int lineIndex); + virtual void setChar(Dar* lineDar,int x,char ch,char fill); + virtual void setChar(Dar* lineDar,int x,char ch); + virtual void shiftLineLeft(Dar* lineDar,int x,int count); + virtual void shiftLineRight(Dar* lineDar,int x,int count); +private: + virtual int spatialCharOffsetBetweenTwoLines(Dar* srcDar,Dar* dstDar,int x); +protected: + Dar*> _lineDarDar; + int _cursor[2]; + bool _cursorBlink; + int _cursorNextBlinkTime; + Font* _font; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_EtchedBorder.h b/main/source/includes/vgui/include/VGUI_EtchedBorder.h new file mode 100644 index 00000000..75d3a74d --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_EtchedBorder.h @@ -0,0 +1,29 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_ETCHEDBORDER_H +#define VGUI_ETCHEDBORDER_H + +#include +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI EtchedBorder : public Border +{ +public: + EtchedBorder(); +protected: + virtual void paint(Panel* panel); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_FileInputStream.h b/main/source/includes/vgui/include/VGUI_FileInputStream.h new file mode 100644 index 00000000..0df38202 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_FileInputStream.h @@ -0,0 +1,38 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_FILEINPUTSTREAM_H +#define VGUI_FILEINPUTSTREAM_H + +//TODO : figure out how to get stdio out of here, I think std namespace is broken for FILE for forward declaring does not work in vc6 + +#include +#include + +namespace vgui +{ + +class VGUIAPI FileInputStream : public InputStream +{ +private: + FILE* _fp; +public: + FileInputStream(const char* fileName,bool textMode); +public: + virtual void seekStart(bool& success); + virtual void seekRelative(int count,bool& success); + virtual void seekEnd(bool& success); + virtual int getAvailable(bool& success); + virtual uchar readUChar(bool& success); + virtual void readUChar(uchar* buf,int count,bool& success); + virtual void close(bool& success); + virtual void close(); +}; + +} + +#endif diff --git a/main/source/includes/vgui/include/VGUI_FlowLayout.h b/main/source/includes/vgui/include/VGUI_FlowLayout.h new file mode 100644 index 00000000..850becb3 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_FlowLayout.h @@ -0,0 +1,29 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_FLOWLAYOUT_H +#define VGUI_FLOWLAYOUT_H + +#include +#include + +namespace vgui +{ + +class VGUIAPI FlowLayout : public Layout +{ +private: + int _hgap; +public: + FlowLayout(int hgap); +public: + virtual void performLayout(Panel* panel); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_FocusChangeSignal.h b/main/source/includes/vgui/include/VGUI_FocusChangeSignal.h new file mode 100644 index 00000000..d19babdb --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_FocusChangeSignal.h @@ -0,0 +1,26 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_FOCUSCHANGESIGNAL_H +#define VGUI_FOCUSCHANGESIGNAL_H + +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI FocusChangeSignal +{ +public: + virtual void focusChanged(bool lost,Panel* panel)=0; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_FocusNavGroup.h b/main/source/includes/vgui/include/VGUI_FocusNavGroup.h new file mode 100644 index 00000000..706b3750 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_FocusNavGroup.h @@ -0,0 +1,35 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_FOCUSNAVGROUP_H +#define VGUI_FOCUSNAVGROUP_H + +#include +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI FocusNavGroup +{ +public: + FocusNavGroup(); +protected: + virtual void addPanel(Panel* panel); + virtual void requestFocusPrev(); + virtual void requestFocusNext(); + virtual void setCurrentPanel(Panel* panel); +protected: + Dar _panelDar; + int _currentIndex; +friend class Panel; +}; +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_Font.h b/main/source/includes/vgui/include/VGUI_Font.h new file mode 100644 index 00000000..73eb4e25 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Font.h @@ -0,0 +1,51 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_FONT_H +#define VGUI_FONT_H + +#include + +namespace vgui +{ + +class BaseFontPlat; + +//TODO: cursors and fonts should work like gl binds +class VGUIAPI Font + { + public: + Font(const char* name,int tall,int wide,float rotation,int weight,bool italic,bool underline,bool strikeout,bool symbol); + // If pFileData is non-NULL, then it will try to load the 32-bit (RLE) TGA file. If that fails, + // it will create the font using the specified parameters. + // pUniqueName should be set if pFileData and fileDataLen are set so it can determine if a font is already loaded. + Font(const char* name,void *pFileData,int fileDataLen, int tall,int wide,float rotation,int weight,bool italic,bool underline,bool strikeout,bool symbol); + private: + virtual void init(const char* name,void *pFileData,int fileDataLen, int tall,int wide,float rotation,int weight,bool italic,bool underline,bool strikeout,bool symbol); + public: + BaseFontPlat* getPlat(); + virtual void getCharRGBA(int ch,int rgbaX,int rgbaY,int rgbaWide,int rgbaTall,uchar* rgba); + virtual void getCharABCwide(int ch,int& a,int& b,int& c); + virtual void getTextSize(const char* text,int& wide,int& tall); + virtual int getTall(); +#ifndef _WIN32 + virtual int getWide(); +#endif + virtual int getId(); + protected: + char* _name; + BaseFontPlat* _plat; + int _id; + friend class Surface; + }; + + +void Font_Reset(); + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_Frame.h b/main/source/includes/vgui/include/VGUI_Frame.h new file mode 100644 index 00000000..d839f7cc --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Frame.h @@ -0,0 +1,73 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_FRAME_H +#define VGUI_FRAME_H + +#include +#include +#include + +namespace vgui +{ + +class Button; +class FrameSignal; + +class VGUIAPI Frame : public Panel + { + public: + Frame(int x,int y,int wide,int tall); + public: + virtual void setSize(int wide,int tall); + virtual void setInternal(bool state); + virtual void paintBackground(); + virtual bool isInternal(); + virtual Panel* getClient(); + virtual void setTitle(const char* title); + virtual void getTitle(char* buf,int bufLen); + virtual void setMoveable(bool state); + virtual void setSizeable(bool state); + virtual bool isMoveable(); + virtual bool isSizeable(); + virtual void addFrameSignal(FrameSignal* s); + virtual void setVisible(bool state); + virtual void setMenuButtonVisible(bool state); + virtual void setTrayButtonVisible(bool state); + virtual void setMinimizeButtonVisible(bool state); + virtual void setMaximizeButtonVisible(bool state); + virtual void setCloseButtonVisible(bool state); + public: //bullshit public + virtual void fireClosingSignal(); + virtual void fireMinimizingSignal(); + protected: + char* _title; + bool _internal; + bool _sizeable; + bool _moveable; + Panel* _topGrip; + Panel* _bottomGrip; + Panel* _leftGrip; + Panel* _rightGrip; + Panel* _topLeftGrip; + Panel* _topRightGrip; + Panel* _bottomLeftGrip; + Panel* _bottomRightGrip; + Panel* _captionGrip; + Panel* _client; + Button* _trayButton; + Button* _minimizeButton; + Button* _maximizeButton; + Button* _closeButton; + Button* _menuButton; + Dar _frameSignalDar; + Frame* _resizeable; + }; + +} + +#endif diff --git a/main/source/includes/vgui/include/VGUI_FrameSignal.h b/main/source/includes/vgui/include/VGUI_FrameSignal.h new file mode 100644 index 00000000..2098702e --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_FrameSignal.h @@ -0,0 +1,27 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_FRAMESIGNAL_H +#define VGUI_FRAMESIGNAL_H + +#include + +namespace vgui +{ + +class Frame; + +class VGUIAPI FrameSignal +{ +public: + virtual void closing(Frame* frame)=0; + virtual void minimizing(Frame* frame,bool toTray)=0; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_GridLayout.h b/main/source/includes/vgui/include/VGUI_GridLayout.h new file mode 100644 index 00000000..902fff42 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_GridLayout.h @@ -0,0 +1,30 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_GRIDLAYOUT_H +#define VGUI_GRIDLAYOUT_H + +#include +#include + +namespace vgui +{ + +/* +class VGUIAPI GridLayout : public Layout +{ +public: + GridLayout(int rows,int cols,int hgap,int vgap); +protected: + int _rows; + int _cols; +}; +*/ + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_HeaderPanel.h b/main/source/includes/vgui/include/VGUI_HeaderPanel.h new file mode 100644 index 00000000..0f584fc1 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_HeaderPanel.h @@ -0,0 +1,65 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_HEADERPANEL_H +#define VGUI_HEADERPANEL_H + +#include +#include +#include +#include + +namespace vgui +{ + +enum MouseCode; +class ChangeSignal; + +class VGUIAPI HeaderPanel : public Panel +{ + +private: + + Dar _sliderPanelDar; + Dar _sectionPanelDar; + Dar _changeSignalDar; + Panel* _sectionLayer; + int _sliderWide; + bool _dragging; + int _dragSliderIndex; + int _dragSliderStartPos; + int _dragSliderStartX; + +public: + + HeaderPanel(int x,int y,int wide,int tall); + +protected: + + virtual void performLayout(); + +public: + + virtual void addSectionPanel(Panel* panel); + virtual void setSliderPos(int sliderIndex,int pos); + virtual int getSectionCount(); + virtual void getSectionExtents(int sectionIndex,int& x0,int& x1); + virtual void addChangeSignal(ChangeSignal* s); + +public: //bullshit public + + virtual void fireChangeSignal(); + virtual void privateCursorMoved(int x,int y,Panel* panel); + virtual void privateMousePressed(MouseCode code,Panel* panel); + virtual void privateMouseReleased(MouseCode code,Panel* panel); + +}; + +} + +#endif + diff --git a/main/source/includes/vgui/include/VGUI_Image.h b/main/source/includes/vgui/include/VGUI_Image.h new file mode 100644 index 00000000..01cb0074 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Image.h @@ -0,0 +1,62 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_IMAGE_H +#define VGUI_IMAGE_H + +#include +#include +#include + +//TODO:: needs concept of insets + +namespace vgui +{ + +class Panel; + +class VGUIAPI Image +{ +friend class Panel; +private: + int _pos[2]; + int _size[2]; + Panel* _panel; + Color _color; +public: + Image(); +public: + virtual void setPos(int x,int y); + virtual void getPos(int& x,int& y); + virtual void getSize(int& wide,int& tall); + virtual void setColor(Color color); + virtual void getColor(Color& color); +protected: + virtual void setSize(int wide,int tall); + virtual void drawSetColor(Scheme::SchemeColor sc); + virtual void drawSetColor(int r,int g,int b,int a); + virtual void drawFilledRect(int x0,int y0,int x1,int y1); + virtual void drawOutlinedRect(int x0,int y0,int x1,int y1); + virtual void drawSetTextFont(Scheme::SchemeFont sf); + virtual void drawSetTextFont(Font* font); + virtual void drawSetTextColor(Scheme::SchemeColor sc); + virtual void drawSetTextColor(int r,int g,int b,int a); + virtual void drawSetTextPos(int x,int y); + virtual void drawPrintText(const char* str,int strlen); + virtual void drawPrintText(int x,int y,const char* str,int strlen); + virtual void drawPrintChar(char ch); + virtual void drawPrintChar(int x,int y,char ch); + virtual void drawSetTextureRGBA(int id,const char* rgba,int wide,int tall); + virtual void drawSetTexture(int id); + virtual void drawTexturedRect(int x0,int y0,int x1,int y1); + virtual void paint(Panel* panel); +public: + virtual void doPaint(Panel* panel); +}; +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_ImagePanel.h b/main/source/includes/vgui/include/VGUI_ImagePanel.h new file mode 100644 index 00000000..cdbe3154 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_ImagePanel.h @@ -0,0 +1,38 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_IMAGEPANEL_H +#define VGUI_IMAGEPANEL_H + +#include +#include + +namespace vgui +{ + +class Image; + +class VGUIAPI ImagePanel : public Panel +{ +public: + inline ImagePanel() + { + _image=null; + } + + ImagePanel(Image* image); +public: + virtual void setImage(Image* image); +protected: + virtual void paintBackground(); +protected: + Image* _image; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_InputSignal.h b/main/source/includes/vgui/include/VGUI_InputSignal.h new file mode 100644 index 00000000..0ceb2563 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_InputSignal.h @@ -0,0 +1,39 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_INPUTSIGNAL_H +#define VGUI_INPUTSIGNAL_H + +#include + +namespace vgui +{ + +enum MouseCode; +enum KeyCode; +class Panel; + +//these are lumped into one for simplicity sake right now +class VGUIAPI InputSignal +{ +public: + virtual void cursorMoved(int x,int y,Panel* panel)=0; + virtual void cursorEntered(Panel* panel)=0; + virtual void cursorExited(Panel* panel)=0; + virtual void mousePressed(MouseCode code,Panel* panel)=0; + virtual void mouseDoublePressed(MouseCode code,Panel* panel)=0; + virtual void mouseReleased(MouseCode code,Panel* panel)=0; + virtual void mouseWheeled(int delta,Panel* panel)=0; + virtual void keyPressed(KeyCode code,Panel* panel)=0; + virtual void keyTyped(KeyCode code,Panel* panel)=0; + virtual void keyReleased(KeyCode code,Panel* panel)=0; + virtual void keyFocusTicked(Panel* panel)=0; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_InputStream.h b/main/source/includes/vgui/include/VGUI_InputStream.h new file mode 100644 index 00000000..9c3395fb --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_InputStream.h @@ -0,0 +1,30 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_FILE_H +#define VGUI_FILE_H + +#include + +namespace vgui +{ + +class VGUIAPI InputStream +{ +public: + virtual void seekStart(bool& success)=0; + virtual void seekRelative(int count,bool& success)=0; + virtual void seekEnd(bool& success)=0; + virtual int getAvailable(bool& success)=0; + virtual uchar readUChar(bool& success)=0; + virtual void readUChar(uchar* buf,int count,bool& success)=0; + virtual void close(bool& success)=0; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_IntChangeSignal.h b/main/source/includes/vgui/include/VGUI_IntChangeSignal.h new file mode 100644 index 00000000..f44cff13 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_IntChangeSignal.h @@ -0,0 +1,26 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_INTCHANGESIGNAL_H +#define VGUI_INTCHANGESIGNAL_H + +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI IntChangeSignal +{ +public: + virtual void intChanged(int value,Panel* panel)=0; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_IntLabel.h b/main/source/includes/vgui/include/VGUI_IntLabel.h new file mode 100644 index 00000000..b778f117 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_IntLabel.h @@ -0,0 +1,35 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_INTLABEL_H +#define VGUI_INTLABEL_H + +#include +#include +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI IntLabel : public Label , public IntChangeSignal +{ +public: + IntLabel(int value,int x,int y,int wide,int tall); +public: + virtual void setValue(int value); + virtual void intChanged(int value,Panel* panel); +protected: + virtual void paintBackground(); +protected: + int _value; +}; + +} + +#endif diff --git a/main/source/includes/vgui/include/VGUI_KeyCode.h b/main/source/includes/vgui/include/VGUI_KeyCode.h new file mode 100644 index 00000000..afd97055 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_KeyCode.h @@ -0,0 +1,126 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_KEYCODE_H +#define VGUI_KEYCODE_H + +#include + +namespace vgui +{ +enum VGUIAPI KeyCode +{ + KEY_0=0, + KEY_1, + KEY_2, + KEY_3, + KEY_4, + KEY_5, + KEY_6, + KEY_7, + KEY_8, + KEY_9, + KEY_A, + KEY_B, + KEY_C, + KEY_D, + KEY_E, + KEY_F, + KEY_G, + KEY_H, + KEY_I, + KEY_J, + KEY_K, + KEY_L, + KEY_M, + KEY_N, + KEY_O, + KEY_P, + KEY_Q, + KEY_R, + KEY_S, + KEY_T, + KEY_U, + KEY_V, + KEY_W, + KEY_X, + KEY_Y, + KEY_Z, + KEY_PAD_0, + KEY_PAD_1, + KEY_PAD_2, + KEY_PAD_3, + KEY_PAD_4, + KEY_PAD_5, + KEY_PAD_6, + KEY_PAD_7, + KEY_PAD_8, + KEY_PAD_9, + KEY_PAD_DIVIDE, + KEY_PAD_MULTIPLY, + KEY_PAD_MINUS, + KEY_PAD_PLUS, + KEY_PAD_ENTER, + KEY_PAD_DECIMAL, + KEY_LBRACKET, + KEY_RBRACKET, + KEY_SEMICOLON, + KEY_APOSTROPHE, + KEY_BACKQUOTE, + KEY_COMMA, + KEY_PERIOD, + KEY_SLASH, + KEY_BACKSLASH, + KEY_MINUS, + KEY_EQUAL, + KEY_ENTER, + KEY_SPACE, + KEY_BACKSPACE, + KEY_TAB, + KEY_CAPSLOCK, + KEY_NUMLOCK, + KEY_ESCAPE, + KEY_SCROLLLOCK, + KEY_INSERT, + KEY_DELETE, + KEY_HOME, + KEY_END, + KEY_PAGEUP, + KEY_PAGEDOWN, + KEY_BREAK, + KEY_LSHIFT, + KEY_RSHIFT, + KEY_LALT, + KEY_RALT, + KEY_LCONTROL, + KEY_RCONTROL, + KEY_LWIN, + KEY_RWIN, + KEY_APP, + KEY_UP, + KEY_LEFT, + KEY_DOWN, + KEY_RIGHT, + KEY_F1, + KEY_F2, + KEY_F3, + KEY_F4, + KEY_F5, + KEY_F6, + KEY_F7, + KEY_F8, + KEY_F9, + KEY_F10, + KEY_F11, + KEY_F12, + KEY_LAST, +}; +} + + +#endif + diff --git a/main/source/includes/vgui/include/VGUI_Label.h b/main/source/includes/vgui/include/VGUI_Label.h new file mode 100644 index 00000000..f1ae9cfa --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Label.h @@ -0,0 +1,81 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_LABEL_H +#define VGUI_LABEL_H + +#include +#include +#include +#include + +//TODO: this should use a TextImage for the text + +namespace vgui +{ + +class Panel; +class TextImage; + +class VGUIAPI Label : public Panel +{ +public: + enum Alignment + { + a_northwest=0, + a_north, + a_northeast, + a_west, + a_center, + a_east, + a_southwest, + a_south, + a_southeast, + }; +public: + Label(int textBufferLen,const char* text,int x,int y,int wide,int tall); + Label(const char* text,int x,int y,int wide,int tall); + Label(const char* text,int x,int y); + Label(const char* text); + + inline Label() : Panel(0,0,10,10) + { + init(1,"",true); + } +private: + void init(int textBufferLen,const char* text,bool textFitted); +public: + virtual void setImage(Image* image); + virtual void setText(int textBufferLen,const char* text); + virtual void setText(const char* format,...); + virtual void setFont(Scheme::SchemeFont schemeFont); + virtual void setFont(Font* font); + virtual void getTextSize(int& wide,int& tall); + virtual void getContentSize(int& wide,int& tall); + virtual void setTextAlignment(Alignment alignment); + virtual void setContentAlignment(Alignment alignment); + virtual Panel* createPropertyPanel(); + virtual void setFgColor(int r,int g,int b,int a); + virtual void setFgColor(vgui::Scheme::SchemeColor sc); + virtual void setContentFitted(bool state); +protected: + virtual void computeAlignment(int& tx0,int& ty0,int& tx1,int& ty1,int& ix0,int& iy0,int& ix1,int& iy1,int& minX,int& minY,int& maxX,int& maxY); + virtual void paint(); + virtual void recomputeMinimumSize(); +protected: + bool _textEnabled; + bool _imageEnabled; + bool _contentFitted; + Alignment _textAlignment; + Alignment _contentAlignment; + TextImage* _textImage; + Image* _image; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_Layout.h b/main/source/includes/vgui/include/VGUI_Layout.h new file mode 100644 index 00000000..5a750737 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Layout.h @@ -0,0 +1,31 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_LAYOUT_H +#define VGUI_LAYOUT_H + +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI Layout +{ +//private: +// Panel* _panel; +public: + Layout(); +public: + //virtual void setPanel(Panel* panel); //called by Panel::setLayout + virtual void performLayout(Panel* panel); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_LayoutInfo.h b/main/source/includes/vgui/include/VGUI_LayoutInfo.h new file mode 100644 index 00000000..bc3f17b7 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_LayoutInfo.h @@ -0,0 +1,21 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_LAYOUTINFO_H +#define VGUI_LAYOUTINFO_H + +namespace vgui +{ + +class VGUIAPI LayoutInfo +{ + virtual LayoutInfo* getThis()=0; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_LineBorder.h b/main/source/includes/vgui/include/VGUI_LineBorder.h new file mode 100644 index 00000000..4e102eac --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_LineBorder.h @@ -0,0 +1,39 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_LINEBORDER_H +#define VGUI_LINEBORDER_H + +#include +#include +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI LineBorder : public Border +{ +private: + Color _color; +public: + LineBorder(); + LineBorder(int thickness); + LineBorder(Color color); + LineBorder(int thickness,Color color); + + inline void setLineColor(int r, int g, int b, int a) {_color = Color(r,g,b,a);} +private: + virtual void init(int thickness,Color color); +protected: + virtual void paint(Panel* panel); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_ListPanel.h b/main/source/includes/vgui/include/VGUI_ListPanel.h new file mode 100644 index 00000000..732c91df --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_ListPanel.h @@ -0,0 +1,40 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_LISTPANEL_H +#define VGUI_LISTPANEL_H + +#include +#include + +namespace vgui +{ + +class ScrollBar; + +//TODO: make a ScrollPanel and use a constrained one for _vpanel in ListPanel +class VGUIAPI ListPanel : public Panel +{ +public: + ListPanel(int x,int y,int wide,int tall); +public: + virtual void setSize(int wide,int tall); + virtual void addString(const char* str); + virtual void addItem(Panel* panel); + virtual void setPixelScroll(int value); + virtual void translatePixelScroll(int delta); +protected: + virtual void performLayout(); + virtual void paintBackground(); +protected: + Panel* _vpanel; + ScrollBar* _scroll; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_LoweredBorder.h b/main/source/includes/vgui/include/VGUI_LoweredBorder.h new file mode 100644 index 00000000..25a9d9db --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_LoweredBorder.h @@ -0,0 +1,29 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_LOWEREDBORDER_H +#define VGUI_LOWEREDBORDER_H + +#include +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI LoweredBorder : public Border +{ +public: + LoweredBorder(); +protected: + virtual void paint(Panel* panel); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_Menu.h b/main/source/includes/vgui/include/VGUI_Menu.h new file mode 100644 index 00000000..3c822a73 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Menu.h @@ -0,0 +1,30 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_MENU_H +#define VGUI_MENU_H + +#include +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI Menu : public Panel +{ +public: + Menu(int x,int y,int wide,int tall); + Menu(int wide,int tall); +public: + virtual void addMenuItem(Panel* panel); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_MenuItem.h b/main/source/includes/vgui/include/VGUI_MenuItem.h new file mode 100644 index 00000000..aab4ebf3 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_MenuItem.h @@ -0,0 +1,30 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_MENUITEM_H +#define VGUI_MENUITEM_H + +#include +#include + +namespace vgui +{ + +class Menu; + +class VGUIAPI MenuItem : public Button +{ +public: + MenuItem(const char* text); + MenuItem(const char* text,Menu* subMenu); +protected: + Menu* _subMenu; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_MenuSeparator.h b/main/source/includes/vgui/include/VGUI_MenuSeparator.h new file mode 100644 index 00000000..42b3d1b5 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_MenuSeparator.h @@ -0,0 +1,27 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_MENUSEPARATOR_H +#define VGUI_MENUSEPARATOR_H + +#include +#include + +namespace vgui +{ + +class VGUIAPI MenuSeparator : public Label +{ +public: + MenuSeparator(const char* text); +protected: + virtual void paintBackground(); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_MessageBox.h b/main/source/includes/vgui/include/VGUI_MessageBox.h new file mode 100644 index 00000000..6596b470 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_MessageBox.h @@ -0,0 +1,53 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_MESSAGEBOX_H +#define VGUI_MESSAGEBOX_H + +#include +#include +#include + + +namespace vgui +{ + +class Label; +class Button; +class ActionSignal; + +class VGUIAPI MessageBox : public Frame +{ + +private: + + Label* _messageLabel; + Button* _okButton; + Dar _actionSignalDar; + +public: + + MessageBox(const char* title,const char* text,int x,int y); + +protected: + + virtual void performLayout(); + +public: + + virtual void addActionSignal(ActionSignal* s); + virtual void fireActionSignal(); + +}; + +} + + + + + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_MiniApp.h b/main/source/includes/vgui/include/VGUI_MiniApp.h new file mode 100644 index 00000000..39ce4fd9 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_MiniApp.h @@ -0,0 +1,33 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_MINIAPP_H +#define VGUI_MINIAPP_H + +#include + +namespace vgui +{ + +class Frame; + +class VGUIAPI MiniApp +{ +public: + MiniApp(); +public: + virtual void getName(char* buf,int bufLen); + virtual Frame* createInstance()=0; +protected: + virtual void setName(const char* name); +protected: + char* _name; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_MouseCode.h b/main/source/includes/vgui/include/VGUI_MouseCode.h new file mode 100644 index 00000000..b0811c75 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_MouseCode.h @@ -0,0 +1,24 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_MOUSECODE_H +#define VGUI_MOUSECODE_H + +#include + +namespace vgui +{ +enum VGUIAPI MouseCode +{ + MOUSE_LEFT=0, + MOUSE_RIGHT, + MOUSE_MIDDLE, + MOUSE_LAST, +}; +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_Panel.h b/main/source/includes/vgui/include/VGUI_Panel.h new file mode 100644 index 00000000..16841aeb --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Panel.h @@ -0,0 +1,228 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_PANEL_H +#define VGUI_PANEL_H + + +/* + +TODO: + +Maybe have the border know who they are added to. +A border can only be added to 1 thing, and will be +removed from the other. That way they can actually +be memory managed. Also do Layout's this way too. + +TODO: + outlinedRect should have a thickness arg + +*/ + + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace vgui +{ + +enum KeyCode; +enum MouseCode; +class SurfaceBase; +class FocusChangeSignal; +class InputSignal; +class Cursor; +class Layout; +class FocusNavGroup; +class Border; +class Font; +class BuildGroup; +class App; +class LayoutInfo; + +class VGUIAPI Panel +{ +public: + Panel(); + Panel(int x,int y,int wide,int tall); +private: + void init(int x,int y,int wide,int tall); +public: + virtual void setPos(int x,int y); + virtual void getPos(int& x,int& y); + virtual void setSize(int wide,int tall); + virtual void getSize(int& wide,int& tall); + virtual void setBounds(int x,int y,int wide,int tall); + virtual void getBounds(int& x,int& y,int& wide,int& tall); + virtual int getWide(); + virtual int getTall(); + virtual Panel* getParent(); + virtual void setVisible(bool state); + virtual bool isVisible(); + virtual bool isVisibleUp(); + virtual void repaint(); + virtual void repaintAll(); + virtual void getAbsExtents(int& x0,int& y0,int& x1,int& y1); + virtual void getClipRect(int& x0,int& y0,int& x1,int& y1); + virtual void setParent(Panel* newParent); + virtual void addChild(Panel* child); + virtual void insertChildAt(Panel* child,int index); + virtual void removeChild(Panel* child); + virtual bool wasMousePressed(MouseCode code); + virtual bool wasMouseDoublePressed(MouseCode code); + virtual bool isMouseDown(MouseCode code); + virtual bool wasMouseReleased(MouseCode code); + virtual bool wasKeyPressed(KeyCode code); + virtual bool isKeyDown(KeyCode code); + virtual bool wasKeyTyped(KeyCode code); + virtual bool wasKeyReleased(KeyCode code); + virtual void addInputSignal(InputSignal* s); + virtual void removeInputSignal(InputSignal* s); + virtual void addRepaintSignal(RepaintSignal* s); + virtual void removeRepaintSignal(RepaintSignal* s); + virtual bool isWithin(int x,int y); //in screen space + virtual Panel* isWithinTraverse(int x,int y); + virtual void localToScreen(int& x,int& y); + virtual void screenToLocal(int& x,int& y); + virtual void setCursor(Cursor* cursor); + virtual void setCursor(Scheme::SchemeCursor scu); + virtual Cursor* getCursor(); + virtual void setMinimumSize(int wide,int tall); + virtual void getMinimumSize(int& wide,int& tall); + virtual void requestFocus(); + virtual bool hasFocus(); + virtual int getChildCount(); + virtual Panel* getChild(int index); + virtual void setLayout(Layout* layout); + virtual void invalidateLayout(bool layoutNow); + virtual void setFocusNavGroup(FocusNavGroup* focusNavGroup); + virtual void requestFocusPrev(); + virtual void requestFocusNext(); + virtual void addFocusChangeSignal(FocusChangeSignal* s); + virtual bool isAutoFocusNavEnabled(); + virtual void setAutoFocusNavEnabled(bool state); + virtual void setBorder(Border* border); + virtual void setPaintBorderEnabled(bool state); + virtual void setPaintBackgroundEnabled(bool state); + virtual void setPaintEnabled(bool state); + virtual void getInset(int& left,int& top,int& right,int& bottom); + virtual void getPaintSize(int& wide,int& tall); + virtual void setPreferredSize(int wide,int tall); + virtual void getPreferredSize(int& wide,int& tall); + virtual SurfaceBase* getSurfaceBase(); + virtual bool isEnabled(); + virtual void setEnabled(bool state); + virtual void setBuildGroup(BuildGroup* buildGroup,const char* panelPersistanceName); + virtual bool isBuildGroupEnabled(); + virtual void removeAllChildren(); + virtual void repaintParent(); + virtual Panel* createPropertyPanel(); + virtual void getPersistanceText(char* buf,int bufLen); + virtual void applyPersistanceText(const char* buf); + virtual void setFgColor(Scheme::SchemeColor sc); + virtual void setBgColor(Scheme::SchemeColor sc); + virtual void setFgColor(int r,int g,int b,int a); + virtual void setBgColor(int r,int g,int b,int a); + virtual void getFgColor(int& r,int& g,int& b,int& a); + virtual void getBgColor(int& r,int& g,int& b,int& a); + virtual void setBgColor(Color color); + virtual void setFgColor(Color color); + virtual void getBgColor(Color& color); + virtual void getFgColor(Color& color); + virtual void setAsMouseCapture(bool state); + virtual void setAsMouseArena(bool state); + virtual App* getApp(); + virtual void getVirtualSize(int& wide,int& tall); + virtual void setLayoutInfo(LayoutInfo* layoutInfo); + virtual LayoutInfo* getLayoutInfo(); + virtual bool isCursorNone(); +public: //bullshit public + virtual void solveTraverse(); + virtual void paintTraverse(); + virtual void setSurfaceBaseTraverse(SurfaceBase* surfaceBase); +protected: + virtual void performLayout(); + virtual void internalPerformLayout(); + virtual void drawSetColor(Scheme::SchemeColor sc); + virtual void drawSetColor(int r,int g,int b,int a); + virtual void drawFilledRect(int x0,int y0,int x1,int y1); + virtual void drawOutlinedRect(int x0,int y0,int x1,int y1); + virtual void drawSetTextFont(Scheme::SchemeFont sf); + virtual void drawSetTextFont(Font* font); + virtual void drawSetTextColor(Scheme::SchemeColor sc); + virtual void drawSetTextColor(int r,int g,int b,int a); + virtual void drawSetTextPos(int x,int y); + virtual void drawPrintText(const char* str,int strlen); + virtual void drawPrintText(int x,int y,const char* str,int strlen); + virtual void drawPrintChar(char ch); + virtual void drawPrintChar(int x,int y,char ch); + virtual void drawSetTextureRGBA(int id,const char* rgba,int wide,int tall); + virtual void drawSetTexture(int id); + virtual void drawTexturedRect(int x0,int y0,int x1,int y1); + virtual void solve(); + virtual void paintTraverse(bool repaint); + virtual void paintBackground(); + virtual void paint(); + virtual void paintBuildOverlay(); + virtual void internalCursorMoved(int x,int y); + virtual void internalCursorEntered(); + virtual void internalCursorExited(); + virtual void internalMousePressed(MouseCode code); + virtual void internalMouseDoublePressed(MouseCode code); + virtual void internalMouseReleased(MouseCode code); + virtual void internalMouseWheeled(int delta); + virtual void internalKeyPressed(KeyCode code); + virtual void internalKeyTyped(KeyCode code); + virtual void internalKeyReleased(KeyCode code); + virtual void internalKeyFocusTicked(); + virtual void internalFocusChanged(bool lost); + virtual void internalSetCursor(); +protected: + int _pos[2]; + int _size[2]; + int _loc[2]; + int _minimumSize[2]; + int _preferredSize[2]; + Dar _childDar; + Panel* _parent; + SurfaceBase* _surfaceBase; + Dar _inputSignalDar; + Dar _repaintSignalDar; + int _clipRect[4]; + Cursor* _cursor; + Scheme::SchemeCursor _schemeCursor; + bool _visible; + Layout* _layout; + bool _needsLayout; + FocusNavGroup* _focusNavGroup; + Dar _focusChangeSignalDar; + bool _autoFocusNavEnabled; + Border* _border; +private: + bool _needsRepaint; + bool _enabled; + BuildGroup* _buildGroup; + Color _fgColor; + Color _bgColor; + LayoutInfo* _layoutInfo; + bool _paintBorderEnabled; + bool _paintBackgroundEnabled; + bool _paintEnabled; +friend class Panel; +friend class App; +friend class SurfaceBase; +friend class Image; +}; +} + +#endif diff --git a/main/source/includes/vgui/include/VGUI_Point.h b/main/source/includes/vgui/include/VGUI_Point.h new file mode 100644 index 00000000..deb585e3 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Point.h @@ -0,0 +1,117 @@ +//========= Copyright © 1996-2001, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_Point_H +#define VGUI_Point_H +#ifdef _WIN32 +#pragma once +#endif + +#include + +namespace vgui +{ + +//----------------------------------------------------------------------------- +// Purpose: Basic handler for a Points in 2 dimensions +// This class is fully inline +//----------------------------------------------------------------------------- +class Point +{ +public: + // constructors + Point() + { + SetPoint(0, 0); + } + Point(int x,int y) + { + SetPoint(x,y); + } + + void SetPoint(int x1, int y1) + { + x=x1; + y=y1; + } + + void GetPoint(int& x1,int& y1) const + { + x1 = x; + y1 = y; + + } + + bool operator == (Point &rhs) const + { + return ( x == rhs.x && y==rhs.y); + } + +private: + int x,y; +}; + +} + +#endif // VGUI_Point_H + + + +//## class Point +//## Point is a class to handle Points in VGUI. + +//## // The default Point is (0,0,0,0) +//## Point() +//## +//## // A Point may be created with x,yvalues. +//## Point(int x,int y) +//## +//## // Set the x,y components of the Point. +//## void SetPoint(int x1, int y1) +//## +//## // Get the position of the Point +//## void GetPoint(int& x1,int& y1) const +//## +//## // Point classes can be set equal to each other. +//## bool operator == (Point &rhs) const +//## +//## +//##
+//## +//## +//## Point() +//## Description: Default constructor. The default Point is (0,0,0,0) +//## +//## +//## Point(int x,int y) +//## Description: +//## A Point may be created with a x,y position. +//## Arguments: +//## x - x position (horizontal axis) (0-65535) +//## y - y position (vertical axis) (0-65535) +//## +//## +//## void SetPoint(int x1, int x1) +//## Description: +//## Set the position of the Point. +//## Arguments: +//## x - x position (horizontal axis) (0-65535) +//## y - y position (vertical axis) (0-65535) +//## +//## +//## void GetPoint(int& x1,int& y1) const +//## Description: +//## Get the x,y components of a Point +//## Arguments: +//## x - x position (horizontal axis) (0-65535) +//## y - y position (vertical axis) (0-65535) +//## +//## bool operator == (Point &rhs) const +//## Description: +//## Point classes can be set equal to each other. +//## +//## diff --git a/main/source/includes/vgui/include/VGUI_PopupMenu.h b/main/source/includes/vgui/include/VGUI_PopupMenu.h new file mode 100644 index 00000000..93c1384f --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_PopupMenu.h @@ -0,0 +1,30 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_POPUPMENU_H +#define VGUI_POPUPMENU_H + +#include +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI PopupMenu : public Menu +{ +public: + PopupMenu(int x,int y,int wide,int tall); + PopupMenu(int wide,int tall); +public: + virtual void showModal(Panel* panel); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_ProgressBar.h b/main/source/includes/vgui/include/VGUI_ProgressBar.h new file mode 100644 index 00000000..98e8ab4d --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_ProgressBar.h @@ -0,0 +1,33 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_PROGRESSBAR_H +#define VGUI_PROGRESSBAR_H + +#include +#include + +namespace vgui +{ + +class VGUIAPI ProgressBar : public Panel +{ +private: + int _segmentCount; + float _progress; +public: + ProgressBar(int segmentCount); +protected: + virtual void paintBackground(); +public: + virtual void setProgress(float progress); + virtual int getSegmentCount(); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_RadioButton.h b/main/source/includes/vgui/include/VGUI_RadioButton.h new file mode 100644 index 00000000..a2bffcaa --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_RadioButton.h @@ -0,0 +1,29 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_RADIOBUTTON_H +#define VGUI_RADIOBUTTON_H + +#include +#include + +namespace vgui +{ + +class VGUIAPI RadioButton : public ToggleButton +{ +public: + RadioButton(const char* text,int x,int y,int wide,int tall); + RadioButton(const char* text,int x,int y); +protected: + virtual void paintBackground(); +}; + +} + +#endif + diff --git a/main/source/includes/vgui/include/VGUI_RaisedBorder.h b/main/source/includes/vgui/include/VGUI_RaisedBorder.h new file mode 100644 index 00000000..57faef69 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_RaisedBorder.h @@ -0,0 +1,29 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_RAISEDBORDER_H +#define VGUI_RAISEDBORDER_H + +#include +#include + +namespace vgui +{ + +class Panel; + +class VGUIAPI RaisedBorder : public Border +{ +public: + RaisedBorder(); +protected: + virtual void paint(Panel* panel); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_RepaintSignal.h b/main/source/includes/vgui/include/VGUI_RepaintSignal.h new file mode 100644 index 00000000..ccef9cfd --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_RepaintSignal.h @@ -0,0 +1,26 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_REPAINTSIGNAL_H +#define VGUI_REPAINTSIGNAL_H + + + +namespace vgui +{ +class Panel; + +class RepaintSignal +{ +public: + virtual void panelRepainted(Panel* panel)=0; +}; + +} + + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_Scheme.h b/main/source/includes/vgui/include/VGUI_Scheme.h new file mode 100644 index 00000000..86c8076c --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Scheme.h @@ -0,0 +1,82 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_SCHEME_H +#define VGUI_SCHEME_H + +#include + + +namespace vgui +{ + +class Font; +class Cursor; + +class VGUIAPI Scheme +{ +public: + enum SchemeColor + { + sc_user=0, + sc_black, + sc_white, + sc_primary1, + sc_primary2, + sc_primary3, + sc_secondary1, + sc_secondary2, + sc_secondary3, + sc_last, + }; + enum SchemeFont + { + sf_user=0, + sf_primary1, + sf_primary2, + sf_primary3, + sf_secondary1, + sf_last, + }; + enum SchemeCursor + { + scu_user=0, + scu_none, + scu_arrow, + scu_ibeam, + scu_hourglass, + scu_crosshair, + scu_up, + scu_sizenwse, + scu_sizenesw, + scu_sizewe, + scu_sizens, + scu_sizeall, + scu_no, + scu_hand, + scu_last, + }; +public: + Scheme(); +public: + virtual void setColor(SchemeColor sc,int r,int g,int b,int a); + virtual void getColor(SchemeColor sc,int& r,int& g,int& b,int& a); + virtual void setFont(SchemeFont sf,Font* font); + virtual Font* getFont(SchemeFont sf); + virtual void setCursor(SchemeCursor sc,Cursor* cursor); + virtual Cursor* getCursor(SchemeCursor sc); +protected: + int _color[sc_last][4]; + Font* _font[sf_last]; + Cursor* _cursor[scu_last]; + friend class Panel; + friend class Canvas; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_ScrollBar.h b/main/source/includes/vgui/include/VGUI_ScrollBar.h new file mode 100644 index 00000000..45789e19 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_ScrollBar.h @@ -0,0 +1,56 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_SCROLLBAR_H +#define VGUI_SCROLLBAR_H + +#include +#include +#include + +namespace vgui +{ + +class IntChangeSignal; +class Button; +class Slider; + +class VGUIAPI ScrollBar : public Panel +{ +public: + ScrollBar(int x,int y,int wide,int tall,bool vertical); +public: + virtual void setValue(int value); + virtual int getValue(); + virtual void addIntChangeSignal(IntChangeSignal* s); + virtual void setRange(int min,int max); + virtual void setRangeWindow(int rangeWindow); + virtual void setRangeWindowEnabled(bool state); + virtual void setSize(int wide,int tall); + virtual bool isVertical(); + virtual bool hasFullRange(); + virtual void setButton(Button* button,int index); + virtual Button* getButton(int index); + virtual void setSlider(Slider* slider); + virtual Slider* getSlider(); + virtual void doButtonPressed(int buttonIndex); + virtual void setButtonPressedScrollValue(int value); + virtual void validate(); +public: //bullshit public + virtual void fireIntChangeSignal(); +protected: + virtual void performLayout(); +protected: + Button* _button[2]; + Slider* _slider; + Dar _intChangeSignalDar; + int _buttonPressedScrollValue; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_ScrollPanel.h b/main/source/includes/vgui/include/VGUI_ScrollPanel.h new file mode 100644 index 00000000..f12fc2b1 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_ScrollPanel.h @@ -0,0 +1,55 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_SCROLLPANEL_H +#define VGUI_SCROLLPANEL_H + +#include +#include + +//NOTE: You need to call validate anytime you change a scrollbar + +namespace vgui +{ + +class ScrollBar; + +class VGUIAPI ScrollPanel : public Panel +{ +private: + Panel* _clientClip; + Panel* _client; + ScrollBar* _horizontalScrollBar; + ScrollBar* _verticalScrollBar; + bool _autoVisible[2]; +public: + ScrollPanel(int x,int y,int wide,int tall); +protected: + virtual void setSize(int wide,int tall); +public: + virtual void setScrollBarVisible(bool horizontal,bool vertical); + virtual void setScrollBarAutoVisible(bool horizontal,bool vertical); + virtual Panel* getClient(); + virtual Panel* getClientClip(); + virtual void setScrollValue(int horizontal,int vertical); + virtual void getScrollValue(int& horizontal,int& vertical); + virtual void recomputeClientSize(); + virtual ScrollBar* getHorizontalScrollBar(); + virtual ScrollBar* getVerticalScrollBar(); + virtual void validate(); +public: //bullshit public + virtual void recomputeScroll(); +}; + +} + + + + + + +#endif diff --git a/main/source/includes/vgui/include/VGUI_Slider.h b/main/source/includes/vgui/include/VGUI_Slider.h new file mode 100644 index 00000000..176e90f7 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Slider.h @@ -0,0 +1,69 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_SLIDER_H +#define VGUI_SLIDER_H + +#include +#include +#include + +namespace vgui +{ + +enum MouseCode; +class IntChangeSignal; + +class VGUIAPI Slider : public Panel +{ +private: + bool _vertical; + bool _dragging; + int _nobPos[2]; + int _nobDragStartPos[2]; + int _dragStartPos[2]; + Dar _intChangeSignalDar; + int _range[2]; + int _value; + int _rangeWindow; + bool _rangeWindowEnabled; + int _buttonOffset; +public: + Slider(int x,int y,int wide,int tall,bool vertical); +public: + virtual void setValue(int value); + virtual int getValue(); + virtual bool isVertical(); + virtual void addIntChangeSignal(IntChangeSignal* s); + virtual void setRange(int min,int max); + virtual void getRange(int& min,int& max); + virtual void setRangeWindow(int rangeWindow); + virtual void setRangeWindowEnabled(bool state); + virtual void setSize(int wide,int tall); + virtual void getNobPos(int& min, int& max); + virtual bool hasFullRange(); + virtual void setButtonOffset(int buttonOffset); +private: + virtual void recomputeNobPosFromValue(); + virtual void recomputeValueFromNobPos(); +public: //bullshit public + virtual void privateCursorMoved(int x,int y,Panel* panel); + virtual void privateMousePressed(MouseCode code,Panel* panel); + virtual void privateMouseReleased(MouseCode code,Panel* panel); +protected: + virtual void fireIntChangeSignal(); + virtual void paintBackground(); +}; + +} + +#endif + + + + + diff --git a/main/source/includes/vgui/include/VGUI_StackLayout.h b/main/source/includes/vgui/include/VGUI_StackLayout.h new file mode 100644 index 00000000..f5c2ab2f --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_StackLayout.h @@ -0,0 +1,30 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_STACKLAYOUT_H +#define VGUI_STACKLAYOUT_H + +#include +#include + +namespace vgui +{ + +class VGUIAPI StackLayout : public Layout +{ +private: + int _vgap; + bool _fitWide; +public: + StackLayout(int vgap,bool fitWide); +public: + virtual void performLayout(Panel* panel); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_String.h b/main/source/includes/vgui/include/VGUI_String.h new file mode 100644 index 00000000..b359984f --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_String.h @@ -0,0 +1,61 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_STRING_H +#define VGUI_STRING_H + +#include + + +namespace vgui +{ + +class VGUIAPI String +{ + +friend class String; + +private: + + char* _text; + +public: + + String(); + String(const char* text); + String(const String& src); + +public: + + ~String(); + +private: + + int getCount(const char* text); + +public: + + int getCount(); + String operator+(String text); + String operator+(const char* text); + bool operator==(String text); + bool operator==(const char* text); + char operator[](int index); + const char* getChars(); + +public: + + static void test(); + +}; + + +} + + +#endif + diff --git a/main/source/includes/vgui/include/VGUI_Surface.h b/main/source/includes/vgui/include/VGUI_Surface.h new file mode 100644 index 00000000..b10ba6ab --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_Surface.h @@ -0,0 +1,68 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_SURFACE_H +#define VGUI_SURFACE_H + +#include +#include +#include + +namespace vgui +{ + +class Panel; +class Cursor; + +class VGUIAPI Surface : public SurfaceBase +{ +public: + Surface(Panel* embeddedPanel); +public: + virtual void setTitle(const char* title); + virtual bool setFullscreenMode(int wide,int tall,int bpp); + virtual void setWindowedMode(); + virtual void setAsTopMost(bool state); + virtual int getModeInfoCount(); + virtual void createPopup(Panel* embeddedPanel); + virtual bool hasFocus(); + virtual bool isWithin(int x,int y); + virtual void GetMousePos( int &x, int &y ); +protected: + virtual int createNewTextureID(void); + virtual void drawSetColor(int r,int g,int b,int a); + virtual void drawFilledRect(int x0,int y0,int x1,int y1); + virtual void drawOutlinedRect(int x0,int y0,int x1,int y1); + virtual void drawSetTextFont(Font* font); + virtual void drawSetTextColor(int r,int g,int b,int a); + virtual void drawSetTextPos(int x,int y); + virtual void drawPrintText(const char* text,int textLen); + virtual void drawSetTextureRGBA(int id,const char* rgba,int wide,int tall); + virtual void drawSetTexture(int id); + virtual void drawTexturedRect(int x0,int y0,int x1,int y1); + virtual void invalidate(Panel *panel); + virtual bool createPlat(); + virtual bool recreateContext(); + virtual void enableMouseCapture(bool state); + virtual void setCursor(Cursor* cursor); + virtual void swapBuffers(); + virtual void pushMakeCurrent(Panel* panel,bool useInsets); + virtual void popMakeCurrent(Panel* panel); + virtual void applyChanges(); +protected: + class SurfacePlat* _plat; + bool _needsSwap; + Panel* _embeddedPanel; + Dar _modeInfoDar; + friend class App; + friend class Panel; +}; + +} + +#endif + diff --git a/main/source/includes/vgui/include/VGUI_SurfaceBase.h b/main/source/includes/vgui/include/VGUI_SurfaceBase.h new file mode 100644 index 00000000..ee51a95f --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_SurfaceBase.h @@ -0,0 +1,82 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_SURFACEBASE_H +#define VGUI_SURFACEBASE_H + +#include +#include + +namespace vgui +{ + +class Panel; +class Cursor; +class Font; +class App; +class ImagePanel; + +class VGUIAPI SurfaceBase +{ +public: + SurfaceBase(Panel* embeddedPanel); +protected: + ~SurfaceBase(); +public: + virtual Panel* getPanel(); + virtual void requestSwap(); + virtual void resetModeInfo(); + virtual int getModeInfoCount(); + virtual bool getModeInfo(int mode,int& wide,int& tall,int& bpp); + virtual App* getApp(); + virtual void setEmulatedCursorVisible(bool state); + virtual void setEmulatedCursorPos(int x,int y); +public: + virtual void setTitle(const char* title)=0; + virtual bool setFullscreenMode(int wide,int tall,int bpp)=0; + virtual void setWindowedMode()=0; + virtual void setAsTopMost(bool state)=0; + virtual void createPopup(Panel* embeddedPanel)=0; + virtual bool hasFocus()=0; + virtual bool isWithin(int x,int y)=0; + virtual int createNewTextureID(void)=0; + virtual void GetMousePos( int &x, int &y ) = 0; +protected: + virtual void addModeInfo(int wide,int tall,int bpp); +protected: + virtual void drawSetColor(int r,int g,int b,int a)=0; + virtual void drawFilledRect(int x0,int y0,int x1,int y1)=0; + virtual void drawOutlinedRect(int x0,int y0,int x1,int y1)=0; + virtual void drawSetTextFont(Font* font)=0; + virtual void drawSetTextColor(int r,int g,int b,int a)=0; + virtual void drawSetTextPos(int x,int y)=0; + virtual void drawPrintText(const char* text,int textLen)=0; + virtual void drawSetTextureRGBA(int id,const char* rgba,int wide,int tall)=0; + virtual void drawSetTexture(int id)=0; + virtual void drawTexturedRect(int x0,int y0,int x1,int y1)=0; + virtual void invalidate(Panel *panel)=0; + virtual void enableMouseCapture(bool state)=0; + virtual void setCursor(Cursor* cursor)=0; + virtual void swapBuffers()=0; + virtual void pushMakeCurrent(Panel* panel,bool useInsets)=0; + virtual void popMakeCurrent(Panel* panel)=0; + virtual void applyChanges()=0; +protected: + bool _needsSwap; + App* _app; + Panel* _embeddedPanel; + Dar _modeInfoDar; + ImagePanel* _emulatedCursor; + Cursor* _currentCursor; +friend class App; +friend class Panel; +}; + +} + +#endif + diff --git a/main/source/includes/vgui/include/VGUI_SurfaceGL.h b/main/source/includes/vgui/include/VGUI_SurfaceGL.h new file mode 100644 index 00000000..c6bacae0 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_SurfaceGL.h @@ -0,0 +1,98 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_SURFACEGL_H +#define VGUI_SURFACEGL_H + +//macros borrowed from GLUT to get rid of win32 dependent junk in gl headers +#ifdef _WIN32 +# ifndef APIENTRY +# define VGUI_APIENTRY_DEFINED +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif +# ifndef CALLBACK +# define VGUI_CALLBACK_DEFINED +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif +# ifndef WINGDIAPI +# define VGUI_WINGDIAPI_DEFINED +# define WINGDIAPI __declspec(dllimport) +# endif +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# pragma comment(lib,"opengl32.lib") +#endif + +#include +#include + +#ifdef VGUI_APIENTRY_DEFINED +# undef VGUI_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef VGUI_CALLBACK_DEFINED +# undef VGUI_CALLBACK_DEFINED +# undef CALLBACK +#endif + +#ifdef VGUI_WINGDIAPI_DEFINED +# undef VGUI_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + + + +#include +#include +#include + +namespace vgui +{ + +class VGUIAPI SurfaceGL : public Surface +{ +public: + SurfaceGL(Panel* embeddedPanel); +public: + virtual void createPopup(Panel* embeddedPanel); +protected: + virtual bool recreateContext(); + virtual void pushMakeCurrent(Panel* panel,bool useInsets); + virtual void popMakeCurrent(Panel* panel); + virtual void makeCurrent(); + virtual void swapBuffers(); + virtual void setColor(int r,int g,int b); + virtual void filledRect(int x0,int y0,int x1,int y1); + virtual void outlinedRect(int x0,int y0,int x1,int y1); + virtual void setTextFont(Font* font); + virtual void setTextColor(int r,int g,int b); + virtual void setDrawPos(int x,int y); + virtual void printText(const char* str,int strlen); + virtual void setTextureRGBA(int id,const char* rgba,int wide,int tall); + virtual void setTexture(int id); + virtual void texturedRect(int x0,int y0,int x1,int y1); +protected: + int _drawPos[2]; + uchar _drawColor[3]; + uchar _drawTextColor[3]; +}; + +} + +#endif + diff --git a/main/source/includes/vgui/include/VGUI_TabPanel.h b/main/source/includes/vgui/include/VGUI_TabPanel.h new file mode 100644 index 00000000..5cc35161 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_TabPanel.h @@ -0,0 +1,49 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_TABPANEL_H +#define VGUI_TABPANEL_H + +#include +#include + +namespace vgui +{ + +class ButtonGroup; + +class VGUIAPI TabPanel : public Panel +{ +public: + enum TabPlacement + { + tp_top=0, + tp_bottom, + tp_left, + tp_right, + }; +public: + TabPanel(int x,int y,int wide,int tall); +public: + virtual Panel* addTab(const char* text); + virtual void setSelectedTab(Panel* tab); + virtual void setSize(int wide,int tall); +protected: + virtual void recomputeLayoutTop(); + virtual void recomputeLayout(); +protected: + TabPlacement _tabPlacement; + Panel* _tabArea; + Panel* _clientArea; + Panel* _selectedTab; + Panel* _selectedPanel; + ButtonGroup* _buttonGroup; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_TablePanel.h b/main/source/includes/vgui/include/VGUI_TablePanel.h new file mode 100644 index 00000000..0c5eac2a --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_TablePanel.h @@ -0,0 +1,71 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_TABLEPANEL_H +#define VGUI_TABLEPANEL_H + +#include +#include +#include + +namespace vgui +{ + +class HeaderPanel; + +class VGUIAPI TablePanel : public Panel +{ +friend class FooVGuiTablePanelHandler; +private: + vgui::Dar _columnDar; + bool _gridVisible[2]; + int _gridWide; + int _gridTall; + int _selectedCell[2]; + int _mouseOverCell[2]; + int _editableCell[2]; + Panel* _fakeInputPanel; + bool _columnSelectionEnabled; + bool _rowSelectionEnabled; + bool _cellSelectionEnabled; + Panel* _editableCellPanel; + int _virtualSize[2]; + bool _cellEditingEnabled; +public: + TablePanel(int x,int y,int wide,int tall,int columnCount); +public: + virtual void setCellEditingEnabled(bool state); + virtual void setColumnCount(int columnCount); + virtual void setGridVisible(bool horizontal,bool vertical); + virtual void setGridSize(int gridWide,int gridTall); + virtual int getColumnCount(); + virtual void setColumnExtents(int column,int x0,int x1); + virtual void setSelectedCell(int column,int row); + virtual void getSelectedCell(int& column,int& row); + virtual void setHeaderPanel(HeaderPanel* header); + virtual void setColumnSelectionEnabled(bool state); + virtual void setRowSelectionEnabled(bool state); + virtual void setCellSectionEnabled(bool state); + virtual void setEditableCell(int column,int row); + virtual void stopCellEditing(); + virtual void getVirtualSize(int& wide,int& tall); + virtual int getRowCount()=0; + virtual int getCellTall(int row)=0; + virtual Panel* getCellRenderer(int column,int row,bool columnSelected,bool rowSelected,bool cellSelected)=0; + virtual Panel* startCellEditing(int column,int row)=0; +protected: + virtual void paint(); + virtual Panel* isWithinTraverse(int x,int y); +private: + virtual void privateMousePressed(MouseCode code,Panel* panel); + virtual void privateMouseDoublePressed(MouseCode code,Panel* panel); + virtual void privateKeyTyped(KeyCode code,Panel* panel); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_TaskBar.h b/main/source/includes/vgui/include/VGUI_TaskBar.h new file mode 100644 index 00000000..0300236e --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_TaskBar.h @@ -0,0 +1,37 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_TASKBAR_H +#define VGUI_TASKBAR_H + +#include +#include +#include + +namespace vgui +{ + +class Frame; +class Button; + +class VGUIAPI TaskBar : public Panel +{ +public: + TaskBar(int x,int y,int wide,int tall); +public: + virtual void addFrame(Frame* frame); +protected: + virtual void performLayout(); +protected: + Dar _frameDar; + Dar _taskButtonDar; + Panel* _tray; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_TextEntry.h b/main/source/includes/vgui/include/VGUI_TextEntry.h new file mode 100644 index 00000000..09b13aa7 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_TextEntry.h @@ -0,0 +1,80 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_TEXTENTRY_H +#define VGUI_TEXTENTRY_H + +#include +#include +#include + +namespace vgui +{ + +enum MouseCode; +enum KeyCode; +class ActionSignal; + +class VGUIAPI TextEntry : public Panel , public InputSignal +{ +public: + TextEntry(const char* text,int x,int y,int wide,int tall); +public: + virtual void setText(const char* text,int textLen); + virtual void getText(int offset,char* buf,int bufLen); + virtual void resetCursorBlink(); + virtual void doGotoLeft(); + virtual void doGotoRight(); + virtual void doGotoFirstOfLine(); + virtual void doGotoEndOfLine(); + virtual void doInsertChar(char ch); + virtual void doBackspace(); + virtual void doDelete(); + virtual void doSelectNone(); + virtual void doCopySelected(); + virtual void doPaste(); + virtual void doPasteSelected(); + virtual void doDeleteSelected(); + virtual void addActionSignal(ActionSignal* s); + virtual void setFont(Font* font); + virtual void setTextHidden(bool bHideText); +protected: + virtual void paintBackground(); + virtual void setCharAt(char ch,int index); +protected: + virtual void fireActionSignal(); + virtual bool getSelectedRange(int& cx0,int& cx1); + virtual bool getSelectedPixelRange(int& cx0,int& cx1); + virtual int cursorToPixelSpace(int cursorPos); + virtual void selectCheck(); +protected: //InputSignal + virtual void cursorMoved(int x,int y,Panel* panel); + virtual void cursorEntered(Panel* panel); + virtual void cursorExited(Panel* panel); + virtual void mousePressed(MouseCode code,Panel* panel); + virtual void mouseDoublePressed(MouseCode code,Panel* panel); + virtual void mouseReleased(MouseCode code,Panel* panel); + virtual void mouseWheeled(int delta,Panel* panel); + virtual void keyPressed(KeyCode code,Panel* panel); + virtual void keyTyped(KeyCode code,Panel* panel); + virtual void keyReleased(KeyCode code,Panel* panel); + virtual void keyFocusTicked(Panel* panel); +protected: + Dar _lineDar; + int _cursorPos; + bool _cursorBlink; + bool _hideText; + long _cursorNextBlinkTime; + int _cursorBlinkRate; + int _select[2]; + Dar _actionSignalDar; + Font* _font; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_TextGrid.h b/main/source/includes/vgui/include/VGUI_TextGrid.h new file mode 100644 index 00000000..c2bde17d --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_TextGrid.h @@ -0,0 +1,42 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_TEXTGRID_H +#define VGUI_TEXTGRID_H + +#include +#include +#include + +namespace vgui +{ + +class VGUIAPI TextGrid : public Panel +{ +public: + TextGrid(int gridWide,int gridTall,int x,int y,int wide,int tall); +public: + virtual void setGridSize(int wide,int tall); + virtual void newLine(); + virtual void setXY(int x,int y); + //virtual void setBgColor(int r,int g,int b); + //virtual void setFgColor(int r,int g,int b); + virtual int vprintf(const char* format,va_list argList); + virtual int printf(const char* format,...); +protected: + virtual void paintBackground(); +protected: + int _xy[2]; + int _bgColor[3]; + int _fgColor[3]; + char* _grid; //[_gridSize[0]*_gridSize[1]*7] ch,br,bg,bb,fr,fg,fb + int _gridSize[2]; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_TextImage.h b/main/source/includes/vgui/include/VGUI_TextImage.h new file mode 100644 index 00000000..c17c6990 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_TextImage.h @@ -0,0 +1,58 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_TEXTIMAGE_H +#define VGUI_TEXTIMAGE_H + +#include +#include +#include + + +//TODO: need to add wrapping flag instead of being arbitrary about when wrapping and auto-resizing actually happens +// This is probably why you are having problems if you had text in a constructor and then changed the font + +namespace vgui +{ + +class Panel; +class Font; +class App; + +class VGUIAPI TextImage : public Image +{ +private: + char* _text; + int _textBufferLen; + vgui::Scheme::SchemeFont _schemeFont; + vgui::Font* _font; + int _textColor[4]; + vgui::Scheme::SchemeColor _textSchemeColor; +public: + TextImage(int textBufferLen,const char* text); + TextImage(const char* text); +private: + virtual void init(int textBufferLen,const char* text); +public: + virtual void getTextSize(int& wide,int& tall); + virtual void getTextSizeWrapped(int& wide,int& tall); + virtual Font* getFont(); + virtual void setText(int textBufferLen,const char* text); + virtual void setText(const char* text); + virtual void setFont(vgui::Scheme::SchemeFont schemeFont); + virtual void setFont(vgui::Font* font); + virtual void setSize(int wide,int tall); +protected: + virtual void paint(Panel* panel); +}; + +} + +#endif + + + diff --git a/main/source/includes/vgui/include/VGUI_TextPanel.h b/main/source/includes/vgui/include/VGUI_TextPanel.h new file mode 100644 index 00000000..858fb254 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_TextPanel.h @@ -0,0 +1,46 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_TEXTPANEL_H +#define VGUI_TEXTPANEL_H + +#include +#include +#include + +//NOTE : If you are having trouble with this class, your problem is probably in TextImage + +namespace vgui +{ + +class TextImage; +class Font; + +class VGUIAPI TextPanel : public Panel +{ +private: + TextImage* _textImage; +public: + TextPanel(const char* text,int x,int y,int wide,int tall); +public: + virtual void setText(const char* text); + virtual void setFont(vgui::Scheme::SchemeFont schemeFont); + virtual void setFont(vgui::Font* font); + virtual void setSize(int wide,int tall); + virtual void setFgColor(int r,int g,int b,int a); + virtual void setFgColor(Scheme::SchemeColor sc); + virtual TextImage* getTextImage(); +protected: + virtual void paint(); +}; + +} + +#endif + + + diff --git a/main/source/includes/vgui/include/VGUI_TickSignal.h b/main/source/includes/vgui/include/VGUI_TickSignal.h new file mode 100644 index 00000000..54ae2e14 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_TickSignal.h @@ -0,0 +1,22 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_TICKSIGNAL_H +#define VGUI_TICKSIGNAL_H + +#include + +namespace vgui +{ +class VGUIAPI TickSignal + { + public: + virtual void ticked()=0; + }; +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_ToggleButton.h b/main/source/includes/vgui/include/VGUI_ToggleButton.h new file mode 100644 index 00000000..1d854d51 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_ToggleButton.h @@ -0,0 +1,26 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_TOGGLEBUTTON_H +#define VGUI_TOGGLEBUTTON_H + +#include +#include + +namespace vgui +{ + +class VGUIAPI ToggleButton : public Button +{ +public: + ToggleButton(const char* text,int x,int y,int wide,int tall); + ToggleButton(const char* text,int x,int y); +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_TreeFolder.h b/main/source/includes/vgui/include/VGUI_TreeFolder.h new file mode 100644 index 00000000..53bc8494 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_TreeFolder.h @@ -0,0 +1,36 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_TREEFOLDER_H +#define VGUI_TREEFOLDER_H + +#include +#include + +namespace vgui +{ + +class VGUIAPI TreeFolder : public Panel +{ +public: + TreeFolder(const char* name); + TreeFolder(const char* name,int x,int y); +protected: + virtual void init(const char* name); +public: + virtual void setOpenedTraverse(bool state); + virtual void setOpened(bool state); + virtual bool isOpened(); +protected: + virtual void paintBackground(); +protected: + bool _opened; +}; + +} + +#endif \ No newline at end of file diff --git a/main/source/includes/vgui/include/VGUI_WizardPanel.h b/main/source/includes/vgui/include/VGUI_WizardPanel.h new file mode 100644 index 00000000..8a86f681 --- /dev/null +++ b/main/source/includes/vgui/include/VGUI_WizardPanel.h @@ -0,0 +1,147 @@ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_WIZARDPANEL_H +#define VGUI_WIZARDPANEL_H + +#include +#include +#include + +namespace vgui +{ + +class ActionSignal; + +class VGUIAPI WizardPanel : public Panel +{ + +public: + + class VGUIAPI WizardPage : public Panel + { + + friend class WizardPanel; + + private: + + WizardPage* _backWizardPage; + WizardPage* _nextWizardPage; + bool _backButtonEnabled; + bool _nextButtonEnabled; + bool _finishedButtonEnabled; + bool _cancelButtonEnabled; + bool _backButtonVisible; + bool _nextButtonVisible; + bool _finishedButtonVisible; + bool _cancelButtonVisible; + char* _backButtonText; + char* _nextButtonText; + char* _finishedButtonText; + char* _cancelButtonText; + Dar _switchingToBackPageSignalDar; + Dar _switchingToNextPageSignalDar; + char* _title; + Panel* _wantedFocus; + + private: + + virtual void fireSwitchingToBackPageSignals(); + virtual void fireSwitchingToNextPageSignals(); + virtual void init(); + + public: + + WizardPage(); + WizardPage(int wide,int tall); + + public: + + virtual void setBackWizardPage(WizardPage* backWizardPage); + virtual void setNextWizardPage(WizardPage* nextWizardPage); + virtual WizardPage* getBackWizardPage(); + virtual WizardPage* getNextWizardPage(); + + virtual bool isBackButtonEnabled(); + virtual bool isNextButtonEnabled(); + virtual bool isFinishedButtonEnabled(); + virtual bool isCancelButtonEnabled(); + virtual void setBackButtonEnabled(bool state); + virtual void setNextButtonEnabled(bool state); + virtual void setFinishedButtonEnabled(bool state); + virtual void setCancelButtonEnabled(bool state); + + virtual bool isBackButtonVisible(); + virtual bool isNextButtonVisible(); + virtual bool isFinishedButtonVisible(); + virtual bool isCancelButtonVisible(); + virtual void setBackButtonVisible(bool state); + virtual void setNextButtonVisible(bool state); + virtual void setFinishedButtonVisible(bool state); + virtual void setCancelButtonVisible(bool state); + + virtual void getBackButtonText(char* text,int textLen); + virtual void getNextButtonText(char* text,int textLen); + virtual void getFinishedButtonText(char* text,int textLen); + virtual void getCancelButtonText(char* text,int textLen); + virtual void setBackButtonText(const char* text); + virtual void setNextButtonText(const char* text); + virtual void setFinishedButtonText(const char* text); + virtual void setCancelButtonText(const char* text); + + virtual void setWantedFocus(Panel* panel); + virtual Panel* getWantedFocus(); + + virtual void addSwitchingToBackPageSignal(ActionSignal* s); + virtual void addSwitchingToNextPageSignal(ActionSignal* s); + + virtual void setTitle(const char* title); + virtual void getTitle(char* buf,int bufLen); + + }; + +private: + + Button* _backButton; + Button* _nextButton; + Button* _finishedButton; + Button* _cancelButton; + WizardPage* _currentWizardPage; + Dar _pageChangedActionSignalDar; + +private: + + virtual void fireFinishedActionSignal(); + virtual void fireCancelledActionSignal(); + virtual void firePageChangedActionSignal(); + +protected: + + virtual void performLayout(); + +public: + + WizardPanel(int x,int y,int wide,int tall); + +public: + + virtual void setCurrentWizardPage(WizardPage* currentWizardPage); + virtual void addFinishedActionSignal(ActionSignal* s); + virtual void addCancelledActionSignal(ActionSignal* s); + virtual void addPageChangedActionSignal(ActionSignal* s); + virtual void doBack(); + virtual void doNext(); + virtual void getCurrentWizardPageTitle(char* buf,int bufLen); + virtual WizardPage* getCurrentWizardPage(); + +}; + +} + + +#endif + diff --git a/main/source/includes/vgui/lib/win32_vc6/vgui.lib b/main/source/includes/vgui/lib/win32_vc6/vgui.lib new file mode 100644 index 00000000..671afa6c Binary files /dev/null and b/main/source/includes/vgui/lib/win32_vc6/vgui.lib differ diff --git a/main/source/ipch/hl-c3c34f2f/releasehl/hl-e0597f0b.ipch b/main/source/ipch/hl-90a4307c/releasehl/hl-e0597f0b.ipch similarity index 79% rename from main/source/ipch/hl-c3c34f2f/releasehl/hl-e0597f0b.ipch rename to main/source/ipch/hl-90a4307c/releasehl/hl-e0597f0b.ipch index 91b73e6e..362db128 100644 Binary files a/main/source/ipch/hl-c3c34f2f/releasehl/hl-e0597f0b.ipch and b/main/source/ipch/hl-90a4307c/releasehl/hl-e0597f0b.ipch differ diff --git a/main/source/ipch/hl-c3c34f2f/debughl/hl-c0315651.ipch b/main/source/ipch/hl-c3c34f2f/debughl/hl-c0315651.ipch deleted file mode 100644 index 4071e7ab..00000000 Binary files a/main/source/ipch/hl-c3c34f2f/debughl/hl-c0315651.ipch and /dev/null differ diff --git a/main/source/mod/AvHNexusServer.h b/main/source/mod/AvHNexusServer.h index d848a49b..dfea3b61 100644 --- a/main/source/mod/AvHNexusServer.h +++ b/main/source/mod/AvHNexusServer.h @@ -1,4 +1,3 @@ -#if 0 #ifndef AVHNEXUSSERVER_H #define AVHNEXUSSERVER_H @@ -30,5 +29,4 @@ namespace AvHNexus void shutdown(void); } -#endif #endif \ No newline at end of file