diff --git a/.gitignore b/.gitignore index 1df37d1c..cfe6466d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,28 @@ *.pb.cc *.pb.h -plugin/python/protocol_pb2.py \ No newline at end of file +plugin/python/protocol_pb2.py +Makefile +*.cmake +*.so +*.so.* +*.log +libtransport_test +CMakeFiles +spectrum2 +transport_config.h +Doxyfile +moc_* +CMakeCache.txt +*.patch +*.orig +spectrum2_manager +dfrotz +spectrum2_frotz_backend +spectrum2_libcommuni_backend +spectrum2_libpurple_backend +spectrum2_skype_backend +spectrum2_smstools3_backend +spectrum2_swiften_backend +spectrum2_template_backend +spectrum2_twitter_backend +install_manifest.txt diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..f613bbc0 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "msvc-deps/curl"] + path = msvc-deps/curl + url = https://github.com/bagder/curl.git diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..5d15b386 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,10 @@ +language: cpp +sudo: required +dist: trusty +before_script: + - curl -k https://swift.im/keys/packages.key | sudo apt-key add - + - echo "deb http://swift.im/packages/ubuntu/trusty development main" | sudo tee -a /etc/apt/sources.list + - sudo apt-get update -qq + - sudo apt-get install -y --force-yes libswiften-dev libprotobuf-dev protobuf-compiler pidgin-dev liblog4cxx10-dev libpopt-dev libboost-dev libboost-signals-dev libboost-system-dev libboost-thread-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev libboost-date-time-dev libcppunit-dev +script: + - mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTS=ON .. && make libtransport_test && ./src/libtransport_test diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b7ae408..efcb79a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,6 @@ option(ENABLE_SMSTOOLS3 "Build SMSTools3 plugin" ON) option(ENABLE_SKYPE "Build Skype plugin" ON) option(ENABLE_SWIFTEN "Build Swiften plugin" ON) option(ENABLE_TWITTER "Build Twitter plugin" ON) -option(ENABLE_YAHOO2 "Build Libyahoo2 plugin" ON) option(ENABLE_DOCS "Build Docs" ON) # option(ENABLE_LOG "Build with logging using Log4cxx" ON) @@ -77,7 +76,6 @@ if(NOT SWIFTEN_FOUND) endif() # FIND BOOST -set(Boost_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") if (WIN32) set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) @@ -115,6 +113,7 @@ endif() # FIND SQLITE3 if (ENABLE_SQLITE3) if (MSVC) + set(SQLITE3_FOUND 1) ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/msvc-deps) else() if (WIN32) @@ -219,10 +218,6 @@ set(dbus_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(dbus) endif() -# if(ENABLE_YAHOO2) -# set(yahoo2_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") -# find_package(yahoo2) -# endif() ####### Miscallanous ###### @@ -253,16 +248,6 @@ if(ENABLE_TESTS) endif() endif() -if (APPLE) - FIND_LIBRARY(IOKIT_FRAMEWORK IOKit) - FIND_LIBRARY(SECURITY_FRAMEWORK Security) - FIND_LIBRARY(APPKIT_FRAMEWORK AppKit) - FIND_LIBRARY(SYSTEMCONFIGURATION_FRAMEWORK SystemConfiguration) - FIND_LIBRARY(SECURITYINTERFACE_FRAMEWORK SecurityInterface) - MARK_AS_ADVANCED(IOKIT_FRAMEWORK APPKIT_FRAMEWORK SYSTEMCONFIGURATION_FRAMEWORK SECURITY_FRAMEWORK SECURITYINTERFACE_FRAMEWORK) - SET (APPLE_FRAMEWORKS ${IOKIT_FRAMEWORK} ${APPKIT_FRAMEWORK} ${SYSTEMCONFIGURATION_FRAMEWORK} ${SECURITY_FRAMEWORK} ${SECURITYINTERFACE_FRAMEWORK}) -endif() - message(" Supported features") message("-----------------------") @@ -361,7 +346,7 @@ if (PROTOBUF_FOUND) endif() if(IRC_FOUND) - ADD_DEFINITIONS(-DCOMMUNI_SHARED) + ADD_DEFINITIONS(-DIRC_SHARED) message("IRC plugin : yes") include_directories(${QT_QTNETWORK_INCLUDE_DIR}) include_directories(${IRC_INCLUDE_DIR}) @@ -405,18 +390,6 @@ if (PROTOBUF_FOUND) message("Skype plugin : no (does not run on Win32)") endif() -# if(YAHOO2_FOUND) -# message("Libyahoo2 plugin : yes") -# include_directories(${YAHOO2_INCLUDE_DIR}) -# else() - if(ENABLE_YAHOO2) - set(YAHOO2_FOUND 1) - message("Libyahoo2 plugin : yes") - else(ENABLE_YAHOO2) - message("Libyahoo2 plugin : no (user disabled)") - endif() -# endif() - if(ENABLE_SWIFTEN) message("Swiften plugin : yes") else() @@ -453,6 +426,10 @@ if (WIN32) ADD_DEFINITIONS(-DBOOST_THREAD_USE_LIB) endif() +# We cannot use boost:signals2, because Swiften does not use them, +# for now, just ignore the deprecation warning. +ADD_DEFINITIONS(-DBOOST_SIGNALS_NO_DEPRECATION_WARNING) + if(CMAKE_BUILD_TYPE MATCHES Debug) if (CMAKE_COMPILER_IS_GNUCXX) ADD_DEFINITIONS(-O0) diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..f9309ef6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM fedora:23 + +EXPOSE 5222 +VOLUME ["/etc/spectrum2/transports", "/var/lib/spectrum2"] + +RUN dnf install protobuf protobuf swiften gcc gcc-c++ make libpqxx-devel libpurple-devel protobuf-devel swiften-devel rpm-build avahi-devel boost-devel cmake cppunit-devel expat-devel libcommuni-devel libidn-devel libsqlite3x-devel log4cxx-devel mysql-devel popt-devel git libevent-devel qt-devel dbus-glib-devel libcurl-devel -y && \ + git clone git://github.com/hanzz/libtransport.git && \ + cd libtransport && \ + ./packaging/fedora/build_rpm.sh && \ + rpm -U /root/rpmbuild/RPMS/x86_64/*.rpm && \ + cp ./packaging/docker/run.sh /run.sh && \ + cd .. && \ + rm -rf libtransport && \ + rm -rf ~/rpmbuild && \ + rm -rf /usr/share/locale/* && \ + rm -rf /usr/share/doc/* && \ + dnf remove protobuf-devel swiften-devel gcc gcc-c++ libpqxx-devel libevent-devel qt-devel dbus-glib-devel libpurple-devel make rpm-build avahi-devel boost-devel cmake cppunit-devel expat-devel libcommuni-devel libidn-devel libsqlite3x-devel log4cxx-devel mysql-devel popt-devel libcurl-devel spectrum2-debuginfo yum perl -y && \ + dnf clean all -y + +CMD "/run.sh" diff --git a/README b/README.md similarity index 78% rename from README rename to README.md index cd912fb4..62248d23 100644 --- a/README +++ b/README.md @@ -1,3 +1,5 @@ +[![Build Status](https://travis-ci.org/hanzz/libtransport.png?branch=master)](https://travis-ci.org/hanzz/libtransport) + Spectrum is an XMPP transport/gateway. It allows XMPP users to communicate with their friends who are using one of the supported networks. It supports a wide range of different networks such as ICQ, XMPP (Jabber, GTalk), AIM, MSN, diff --git a/README.win32 b/README.win32 index ac932e72..cbcd990c 100644 --- a/README.win32 +++ b/README.win32 @@ -1,61 +1,61 @@ -Prerequisites -============= - -1. Microsoft Visual C++ 2010 Express or higher edition (http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express) -2. Git for Windows (http://code.google.com/p/msysgit/downloads/list) -3. CMake 2.8 or newer (http://www.cmake.org/cmake/resources/software.html) -4. Python 2.x for Swiften build scripts (scons) (http://www.python.org) - -Libraries -========= -3. Swiften library (http://swift.im/git/swift) -4. Boost 1.48 or newer (http://sourceforge.net/projects/boost/files/boost/1.49.0/) -5. Google ProtoBuf library (http://code.google.com/p/protobuf/downloads/list) - - -Environment -=========== - -To create spectrum build environment do: - -0. Create directory where we'll install all dependencies, e.g. C:\env-msvc-x64. -Create C:\env-msvc-x64\bin and add it to %PATH%. -Assuming you have git, python and cmake in %PATH%, -launch "Visual Studio 2010 command prompt" or -"Visual Studio 2010(x64) command prompt", depends on your target (Windows x86 or Windows x86_64). -1. unpack and build boost libraries: - - bootstrap.bat - b2.exe --without-mpi --without-python - b2.exe --without-mpi --without-python install --prefix=C:\env-msvc-x64 release - -2. clone swift repository and build it. Don't forget to point it to our env directory: - - git clone git://swift.im/swift - cd swift - echo boost_includedir="c:/env-msvc-x64/include/boost-1_49" > config.py - echo boost_libdir="c:/env-msvc-x64/lib" >> config.py - scons.bat debug=no SWIFTEN_INSTALLDIR=C:\env-msvc-x64 force_configure=1 - scons.bat debug=no SWIFTEN_INSTALLDIR=C:\env-msvc-x64 C:\env-msvc-x64 - -3. unpack and compile protobuf as described in its documentation. - -Run extract_includes.bat in vsprojects/ directory and move resulting vsprojects/include/google/ directory to our C:\env-msvc-x64\include - -Move protoc.exe to C:\env-msvc-x64\bin\ and libprotobuf.lib to C:\env-msvc-x64\lib - -4. Install gtkmm - -Download installer from https://live.gnome.org/gtkmm/MSWindows and install gtkmm into C:\env-msvc-x64\ - -5. Install libpurple headers - -Download http://www.pidgin.im/download/source/ , extract it and copy libpurple directory in C:\env-msvc-x64\include - -6. You're ready! :) Clone libtransport into C:\env-msvc-x64\libtransport (You *must* clone it into this directory, because libtransport will try to find the dependencies in ../lib and ../include) - -Compile it as: - - set CMAKE_INCLUDE_PATH=C:\env-msvc-x64\include - cmake . -G "NMake Makefiles" -DBOOST_INCLUDEDIR=../include/boost-1_49 -DBOOST_LIBRARYDIR=../lib -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=C:\env-msvc-x64 -DGIT_EXECUTABLE="c:\Program Files (x86)\git\bin\git.exe" - nmake +Prerequisites +============= + +1. Microsoft Visual C++ 2010 Express or higher edition (http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express) +2. Git for Windows (http://code.google.com/p/msysgit/downloads/list) +3. CMake 2.8 or newer (http://www.cmake.org/cmake/resources/software.html) +4. Python 2.x for Swiften build scripts (scons) (http://www.python.org) + +Libraries +========= +3. Swiften library (http://swift.im/git/swift) +4. Boost 1.48 or newer (http://sourceforge.net/projects/boost/files/boost/1.49.0/) +5. Google ProtoBuf library (http://code.google.com/p/protobuf/downloads/list) + + +Environment +=========== + +To create spectrum build environment do: + +0. Create directory where we'll install all dependencies, e.g. C:\env-msvc-x64. +Create C:\env-msvc-x64\bin and add it to %PATH%. +Assuming you have git, python and cmake in %PATH%, +launch "Visual Studio 2010 command prompt" or +"Visual Studio 2010(x64) command prompt", depends on your target (Windows x86 or Windows x86_64). +1. unpack and build boost libraries: + + bootstrap.bat + b2.exe --without-mpi --without-python + b2.exe --without-mpi --without-python install --prefix=C:\env-msvc-x64 release + +2. clone swift repository and build it. Don't forget to point it to our env directory: + + git clone git://swift.im/swift + cd swift + echo boost_includedir="c:/env-msvc-x64/include/boost-1_49" > config.py + echo boost_libdir="c:/env-msvc-x64/lib" >> config.py + scons.bat debug=no SWIFTEN_INSTALLDIR=C:\env-msvc-x64 force_configure=1 + scons.bat debug=no SWIFTEN_INSTALLDIR=C:\env-msvc-x64 C:\env-msvc-x64 + +3. unpack and compile protobuf as described in its documentation. + +Run extract_includes.bat in vsprojects/ directory and move resulting vsprojects/include/google/ directory to our C:\env-msvc-x64\include + +Move protoc.exe to C:\env-msvc-x64\bin\ and libprotobuf.lib to C:\env-msvc-x64\lib + +4. Install gtkmm + +Download installer from https://live.gnome.org/gtkmm/MSWindows and install gtkmm into C:\env-msvc-x64\ + +5. Install libpurple headers + +Download http://www.pidgin.im/download/source/ , extract it and copy libpurple directory in C:\env-msvc-x64\include + +6. You're ready! :) Clone libtransport into C:\env-msvc-x64\libtransport (You *must* clone it into this directory, because libtransport will try to find the dependencies in ../lib and ../include) + +Compile it as: + + set CMAKE_INCLUDE_PATH=C:\env-msvc-x64\include + cmake . -G "NMake Makefiles" -DBOOST_INCLUDEDIR=../include/boost-1_49 -DBOOST_LIBRARYDIR=../lib -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=C:\env-msvc-x64 -DGIT_EXECUTABLE="c:\Program Files (x86)\git\bin\git.exe" + nmake diff --git a/backends/CMakeLists.txt b/backends/CMakeLists.txt index 6bb81a77..684feaf0 100644 --- a/backends/CMakeLists.txt +++ b/backends/CMakeLists.txt @@ -22,9 +22,6 @@ if (PROTOBUF_FOUND) if(ENABLE_FROTZ) ADD_SUBDIRECTORY(frotz) endif() - if(YAHOO2_FOUND) - ADD_SUBDIRECTORY(libyahoo2) - endif() if (${LIBDBUSGLIB_FOUND}) ADD_SUBDIRECTORY(skype) endif() diff --git a/backends/frotz/CMakeLists.txt b/backends/frotz/CMakeLists.txt index f9bc283a..b4a03314 100644 --- a/backends/frotz/CMakeLists.txt +++ b/backends/frotz/CMakeLists.txt @@ -1,12 +1,12 @@ -cmake_minimum_required(VERSION 2.6) - -ADD_SUBDIRECTORY(dfrotz) - -FILE(GLOB SRC *.c *.cpp) - -ADD_EXECUTABLE(spectrum2_frotz_backend ${SRC}) - -target_link_libraries(spectrum2_frotz_backend transport pthread ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) - -INSTALL(TARGETS spectrum2_frotz_backend RUNTIME DESTINATION bin) - +cmake_minimum_required(VERSION 2.6) + +ADD_SUBDIRECTORY(dfrotz) + +FILE(GLOB SRC *.c *.cpp) + +ADD_EXECUTABLE(spectrum2_frotz_backend ${SRC}) + +target_link_libraries(spectrum2_frotz_backend transport pthread ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) + +INSTALL(TARGETS spectrum2_frotz_backend RUNTIME DESTINATION bin) + diff --git a/backends/frotz/dfrotz/CMakeLists.txt b/backends/frotz/dfrotz/CMakeLists.txt index 3c1b722a..925e8c0a 100644 --- a/backends/frotz/dfrotz/CMakeLists.txt +++ b/backends/frotz/dfrotz/CMakeLists.txt @@ -1,9 +1,9 @@ -cmake_minimum_required(VERSION 2.6) -FILE(GLOB SRC common/*.c dumb/*.c) - -ADD_EXECUTABLE(dfrotz ${SRC}) - -# target_link_libraries(dfrotz) - -INSTALL(TARGETS dfrotz RUNTIME DESTINATION bin) - +cmake_minimum_required(VERSION 2.6) +FILE(GLOB SRC common/*.c dumb/*.c) + +ADD_EXECUTABLE(dfrotz ${SRC}) + +# target_link_libraries(dfrotz) + +INSTALL(TARGETS dfrotz RUNTIME DESTINATION bin) + diff --git a/backends/frotz/main.cpp b/backends/frotz/main.cpp index 77e4d191..79aaced1 100644 --- a/backends/frotz/main.cpp +++ b/backends/frotz/main.cpp @@ -8,8 +8,8 @@ * program, but you don't have to. */ -#include "transport/config.h" -#include "transport/networkplugin.h" +#include "transport/Config.h" +#include "transport/NetworkPlugin.h" #include "Swiften/Swiften.h" #include #include "unistd.h" diff --git a/backends/libcommuni/CMakeLists.txt b/backends/libcommuni/CMakeLists.txt index 9594867c..544f9162 100644 --- a/backends/libcommuni/CMakeLists.txt +++ b/backends/libcommuni/CMakeLists.txt @@ -1,13 +1,13 @@ -cmake_minimum_required(VERSION 2.6) -FILE(GLOB SRC *.cpp) -FILE(GLOB HEADERS *.h) -QT4_WRAP_CPP(SRC ${HEADERS} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED) -ADD_EXECUTABLE(spectrum2_libcommuni_backend ${SRC}) - -if (NOT WIN32) - target_link_libraries(spectrum2_libcommuni_backend ${IRC_LIBRARY} ${QT_LIBRARIES} transport pthread) -else () - target_link_libraries(spectrum2_libcommuni_backend ${IRC_LIBRARY} ${QT_LIBRARIES} transport) -endif() -INSTALL(TARGETS spectrum2_libcommuni_backend RUNTIME DESTINATION bin) - +cmake_minimum_required(VERSION 2.6) +FILE(GLOB SRC *.cpp) +FILE(GLOB HEADERS *.h) +QT4_WRAP_CPP(SRC ${HEADERS} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED) +ADD_EXECUTABLE(spectrum2_libcommuni_backend ${SRC}) + +if (NOT WIN32) + target_link_libraries(spectrum2_libcommuni_backend ${IRC_LIBRARY} ${QT_LIBRARIES} transport pthread) +else () + target_link_libraries(spectrum2_libcommuni_backend ${IRC_LIBRARY} ${QT_LIBRARIES} transport) +endif() +INSTALL(TARGETS spectrum2_libcommuni_backend RUNTIME DESTINATION bin) + diff --git a/backends/libcommuni/ircnetworkplugin.cpp b/backends/libcommuni/ircnetworkplugin.cpp index c5f3c2cb..17981bf6 100644 --- a/backends/libcommuni/ircnetworkplugin.cpp +++ b/backends/libcommuni/ircnetworkplugin.cpp @@ -21,7 +21,7 @@ #include "ircnetworkplugin.h" #include #include -#include "transport/logging.h" +#include "transport/Logging.h" DEFINE_LOGGER(logger, "IRCNetworkPlugin"); diff --git a/backends/libcommuni/ircnetworkplugin.h b/backends/libcommuni/ircnetworkplugin.h index 2f19f1dc..df8fb65b 100644 --- a/backends/libcommuni/ircnetworkplugin.h +++ b/backends/libcommuni/ircnetworkplugin.h @@ -20,8 +20,8 @@ #pragma once #ifndef Q_MOC_RUN -#include "transport/config.h" -#include "transport/networkplugin.h" +#include "transport/Config.h" +#include "transport/NetworkPlugin.h" #include "session.h" #include #include diff --git a/backends/libcommuni/main.cpp b/backends/libcommuni/main.cpp index 423ab27c..42bc0514 100644 --- a/backends/libcommuni/main.cpp +++ b/backends/libcommuni/main.cpp @@ -18,9 +18,9 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include "transport/config.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" +#include "transport/Config.h" +#include "transport/NetworkPlugin.h" +#include "transport/Logging.h" #include "session.h" #include #include diff --git a/backends/libcommuni/session.cpp b/backends/libcommuni/session.cpp index 31ac3d54..de940a5c 100644 --- a/backends/libcommuni/session.cpp +++ b/backends/libcommuni/session.cpp @@ -23,9 +23,6 @@ #include #include #include -#if COMMUNI_VERSION < 0x020000 -#include -#endif #include "backports.h" #include "ircnetworkplugin.h" @@ -33,13 +30,13 @@ #define FROM_UTF8(WHAT) QString::fromUtf8((WHAT).c_str(), (WHAT).size()) #define TO_UTF8(WHAT) std::string((WHAT).toUtf8().data(), (WHAT).toUtf8().size()) -#include "transport/logging.h" +#include "transport/Logging.h" -DEFINE_LOGGER(logger, "IRCSession"); +DEFINE_LOGGER(logger, "IRCConnection"); static bool sentList; -MyIrcSession::MyIrcSession(const std::string &user, IRCNetworkPlugin *np, const std::string &suffix, QObject* parent) : IrcSession(parent) +MyIrcSession::MyIrcSession(const std::string &user, IRCNetworkPlugin *np, const std::string &suffix, QObject* parent) : IrcConnection(parent) { this->np = np; this->user = user; @@ -137,7 +134,7 @@ bool MyIrcSession::correctNickname(std::string &nickname) { void MyIrcSession::on_joined(IrcMessage *message) { IrcJoinMessage *m = (IrcJoinMessage *) message; - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); bool op = correctNickname(nickname); getIRCBuddy(TO_UTF8(m->channel().toLower()), nickname).setOp(op); np->handleParticipantChanged(user, nickname, TO_UTF8(m->channel().toLower()) + suffix, op, pbnetwork::STATUS_ONLINE); @@ -147,7 +144,7 @@ void MyIrcSession::on_joined(IrcMessage *message) { void MyIrcSession::on_parted(IrcMessage *message) { IrcPartMessage *m = (IrcPartMessage *) message; - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); bool op = correctNickname(nickname); removeIRCBuddy(TO_UTF8(m->channel().toLower()), nickname); LOG4CXX_INFO(logger, user << ": " << nickname << " parted " << TO_UTF8(m->channel().toLower()) + suffix); @@ -156,7 +153,7 @@ void MyIrcSession::on_parted(IrcMessage *message) { void MyIrcSession::on_quit(IrcMessage *message) { IrcQuitMessage *m = (IrcQuitMessage *) message; - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); bool op = correctNickname(nickname); for(AutoJoinMap::iterator it = m_autoJoin.begin(); it != m_autoJoin.end(); it++) { @@ -171,7 +168,7 @@ void MyIrcSession::on_quit(IrcMessage *message) { void MyIrcSession::on_nickChanged(IrcMessage *message) { IrcNickMessage *m = (IrcNickMessage *) message; - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); for(AutoJoinMap::iterator it = m_autoJoin.begin(); it != m_autoJoin.end(); it++) { @@ -214,7 +211,7 @@ void MyIrcSession::on_modeChanged(IrcMessage *message) { void MyIrcSession::on_topicChanged(IrcMessage *message) { IrcTopicMessage *m = (IrcTopicMessage *) message; - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); LOG4CXX_INFO(logger, user << ": " << nickname << " topic changed to " << TO_UTF8(m->topic())); @@ -224,14 +221,14 @@ void MyIrcSession::on_topicChanged(IrcMessage *message) { void MyIrcSession::on_messageReceived(IrcMessage *message) { IrcPrivateMessage *m = (IrcPrivateMessage *) message; if (m->isRequest()) { - QString request = m->message().split(" ", QString::SkipEmptyParts).value(0).toUpper(); + QString request = m->content().split(" ", QString::SkipEmptyParts).value(0).toUpper(); if (request == "PING" || request == "TIME" || request == "VERSION") { LOG4CXX_INFO(logger, user << ": " << TO_UTF8(request) << " received and has been answered"); return; } } - QString msg = m->message(); + QString msg = m->content(); if (m->isAction()) { msg = QString("/me ") + msg; } @@ -249,12 +246,12 @@ void MyIrcSession::on_messageReceived(IrcMessage *message) { std::string target = TO_UTF8(m->target().toLower()); LOG4CXX_INFO(logger, user << ": Message from " << target); if (target.find("#") == 0) { - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); np->handleMessage(user, target + suffix, TO_UTF8(msg), nickname, TO_UTF8(html)); } else { - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); if (m_pms.find(nickname) != m_pms.end()) { if (hasIRCBuddy(m_pms[nickname], nickname)) { @@ -393,19 +390,19 @@ void MyIrcSession::awayTimeout() { void MyIrcSession::on_noticeMessageReceived(IrcMessage *message) { IrcNoticeMessage *m = (IrcNoticeMessage *) message; - LOG4CXX_INFO(logger, user << ": NOTICE " << TO_UTF8(m->message())); + LOG4CXX_INFO(logger, user << ": NOTICE " << TO_UTF8(m->content())); - QString msg = m->message(); + QString msg = m->content(); CommuniBackport::toPlainText(msg); std::string target = TO_UTF8(m->target().toLower()); if (target.find("#") == 0) { - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); np->handleMessage(user, target + suffix, TO_UTF8(msg), nickname); } else { - std::string nickname = TO_UTF8(m->sender().name()); + std::string nickname = TO_UTF8(m->nick()); correctNickname(nickname); if (nickname.find(".") != std::string::npos) { return; diff --git a/backends/libcommuni/session.h b/backends/libcommuni/session.h index 929a84a7..18fe6891 100644 --- a/backends/libcommuni/session.h +++ b/backends/libcommuni/session.h @@ -22,8 +22,8 @@ #define SESSION_H #ifndef Q_MOC_RUN -#include -#include +#include +#include #include "Swiften/Swiften.h" #include #include @@ -33,7 +33,7 @@ using namespace Transport; class IRCNetworkPlugin; -class MyIrcSession : public IrcSession +class MyIrcSession : public IrcConnection { Q_OBJECT diff --git a/backends/libpurple/CMakeLists.txt b/backends/libpurple/CMakeLists.txt index c03795de..f31b1a72 100644 --- a/backends/libpurple/CMakeLists.txt +++ b/backends/libpurple/CMakeLists.txt @@ -1,17 +1,17 @@ -cmake_minimum_required(VERSION 2.6) -FILE(GLOB SRC *.cpp) - -ADD_EXECUTABLE(spectrum2_libpurple_backend ${SRC}) - -if(CMAKE_COMPILER_IS_GNUCXX) - if (NOT WIN32) - target_link_libraries(spectrum2_libpurple_backend ${PURPLE_LIBRARY} ${GLIB2_LIBRARIES} ${EVENT_LIBRARIES} transport-plugin pthread) - else() - target_link_libraries(spectrum2_libpurple_backend ${PURPLE_LIBRARY} ${GLIB2_LIBRARIES} ${EVENT_LIBRARIES} transport-plugin) - endif() -else() -target_link_libraries(spectrum2_libpurple_backend sqlite3 ${PURPLE_LIBRARY} ${GLIB2_LIBRARIES} ${LIBXML2_LIBRARIES} ${EVENT_LIBRARIES} transport-plugin ${PROTOBUF_LIBRARY}) -endif() - -INSTALL(TARGETS spectrum2_libpurple_backend RUNTIME DESTINATION bin) - +cmake_minimum_required(VERSION 2.6) +FILE(GLOB SRC *.cpp) + +ADD_EXECUTABLE(spectrum2_libpurple_backend ${SRC}) + +if(CMAKE_COMPILER_IS_GNUCXX) + if (NOT WIN32) + target_link_libraries(spectrum2_libpurple_backend ${PURPLE_LIBRARY} ${GLIB2_LIBRARIES} ${EVENT_LIBRARIES} transport-plugin pthread) + else() + target_link_libraries(spectrum2_libpurple_backend ${PURPLE_LIBRARY} ${GLIB2_LIBRARIES} ${EVENT_LIBRARIES} transport-plugin) + endif() +else() +target_link_libraries(spectrum2_libpurple_backend sqlite3 ${PURPLE_LIBRARY} ${GLIB2_LIBRARIES} ${LIBXML2_LIBRARIES} ${EVENT_LIBRARIES} transport-plugin ${PROTOBUF_LIBRARY}) +endif() + +INSTALL(TARGETS spectrum2_libpurple_backend RUNTIME DESTINATION bin) + diff --git a/backends/libpurple/geventloop.cpp b/backends/libpurple/geventloop.cpp index 7e299d7c..f6c3f7eb 100644 --- a/backends/libpurple/geventloop.cpp +++ b/backends/libpurple/geventloop.cpp @@ -30,7 +30,7 @@ #include "purple_defs.h" -#include "transport/logging.h" +#include "transport/Logging.h" DEFINE_LOGGER(logger, "EventLoop"); diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index 62459980..fdc30924 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -10,10 +10,9 @@ #include #include -#include "transport/networkplugin.h" -#include "transport/logging.h" -#include "transport/config.h" -#include "transport/logging.h" +#include "transport/NetworkPlugin.h" +#include "transport/Logging.h" +#include "transport/Config.h" #include "geventloop.h" // #include "valgrind/memcheck.h" @@ -518,7 +517,11 @@ class SpectrumNetworkPlugin : public NetworkPlugin { } m_vcards[user + name] = id; - if (CONFIG_BOOL(config, "backend.no_vcard_fetch") && name != purple_account_get_username_wrapped(account)) { + PurplePlugin *prpl = purple_find_prpl_wrapped(purple_account_get_protocol_id_wrapped(account)); + PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); + bool support_get_info = prpl_info && prpl_info->get_info; + + if (!support_get_info || (CONFIG_BOOL(config, "backend.no_vcard_fetch") && name != purple_account_get_username_wrapped(account))) { PurpleNotifyUserInfo *user_info = purple_notify_user_info_new_wrapped(); notify_user_info(purple_account_get_connection_wrapped(account), name.c_str(), user_info); purple_notify_user_info_destroy_wrapped(user_info); @@ -526,7 +529,6 @@ class SpectrumNetworkPlugin : public NetworkPlugin { else { serv_get_info_wrapped(purple_account_get_connection_wrapped(account), name.c_str()); } - } } @@ -635,6 +637,11 @@ class SpectrumNetworkPlugin : public NetworkPlugin { PurpleAccount *account = m_sessions[user]; if (account) { serv_send_typing_wrapped(purple_account_get_connection_wrapped(account), buddyName.c_str(), PURPLE_NOT_TYPING); + PurpleConversation *conv = purple_find_conversation_with_account_wrapped(PURPLE_CONV_TYPE_CHAT, buddyName.c_str(), account); + if (conv) { + purple_conversation_set_data_wrapped(conv, "unseen_count", 0); + purple_conversation_update_wrapped(conv, PURPLE_CONV_UPDATE_UNSEEN); + } } } diff --git a/backends/libpurple/purple_defs.h b/backends/libpurple/purple_defs.h index f62185a4..56607ea0 100644 --- a/backends/libpurple/purple_defs.h +++ b/backends/libpurple/purple_defs.h @@ -224,6 +224,12 @@ extern purple_conversation_new_wrapped_fnc purple_conversation_new_wrapped; typedef PurpleConversationType (_cdecl * purple_conversation_get_type_wrapped_fnc)(const PurpleConversation *conv); extern purple_conversation_get_type_wrapped_fnc purple_conversation_get_type_wrapped; +typedef void (_cdecl * purple_conversation_set_data_wrapped_func)(const PurpleConversation *conv, const char *key, gpointer data); +extern purple_conversation_set_data_wrapped_func purple_conversation_set_data_wrapped; + +typedef void (_cdecl * purple_conversation_update_wrapped_func)(const PurpleConversation *conv, PurpleConversationUpdateType type); +extern purple_conversation_update_wrapped_func purple_conversation_update_wrapped; + typedef void (_cdecl * purple_conv_im_send_wrapped_fnc)(PurpleConvIm *im, const char *message); extern purple_conv_im_send_wrapped_fnc purple_conv_im_send_wrapped; @@ -524,6 +530,8 @@ extern wpurple_g_io_channel_win32_new_socket_wrapped_fnc wpurple_g_io_channel_wi #define purple_find_conversation_with_account_wrapped purple_find_conversation_with_account #define purple_conversation_new_wrapped purple_conversation_new #define purple_conversation_get_type_wrapped purple_conversation_get_type +#define purple_conversation_set_data_wrapped purple_conversation_set_data +#define purple_conversation_update_wrapped purple_conversation_update #define purple_conv_im_send_wrapped purple_conv_im_send #define purple_conv_chat_send_wrapped purple_conv_chat_send #define purple_conversation_destroy_wrapped purple_conversation_destroy diff --git a/backends/libyahoo2/CMakeLists.txt b/backends/libyahoo2/CMakeLists.txt deleted file mode 100644 index 70ffe5dc..00000000 --- a/backends/libyahoo2/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -cmake_minimum_required(VERSION 2.6) - -FILE(GLOB_RECURSE SRC *.c *.cpp) - -ADD_DEFINITIONS(-DHAVE_STDINT_H=1) - -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/yahoo) - -ADD_EXECUTABLE(spectrum2_libyahoo2_backend ${SRC}) - -target_link_libraries(spectrum2_libyahoo2_backend transport pthread ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) - -INSTALL(TARGETS spectrum2_libyahoo2_backend RUNTIME DESTINATION bin) - diff --git a/backends/libyahoo2/httpfetch.cpp b/backends/libyahoo2/httpfetch.cpp deleted file mode 100644 index 8cc417cb..00000000 --- a/backends/libyahoo2/httpfetch.cpp +++ /dev/null @@ -1,163 +0,0 @@ - -#include "httpfetch.h" -#include "transport/logging.h" - -#if WIN32 -#define snprintf sprintf_s -#endif - -DEFINE_LOGGER(logger, "HTTPFetch"); - -static int url_to_host_port_path(const char *url, - char *host, int *port, char *path, int *ssl) -{ - char *urlcopy = NULL; - char *slash = NULL; - char *colon = NULL; - - /* - * http://hostname - * http://hostname/ - * http://hostname/path - * http://hostname/path:foo - * http://hostname:port - * http://hostname:port/ - * http://hostname:port/path - * http://hostname:port/path:foo - * and https:// variants of the above - */ - - if (strstr(url, "http://") == url) { - urlcopy = strdup(url + 7); - } else if (strstr(url, "https://") == url) { - urlcopy = strdup(url + 8); - *ssl = 1; - } else { - return 0; - } - - slash = strchr(urlcopy, '/'); - colon = strchr(urlcopy, ':'); - - if (!colon || (slash && slash < colon)) { - if (*ssl) - *port = 443; - else - *port = 80; - } else { - *colon = 0; - *port = atoi(colon + 1); - } - - if (!slash) { - strcpy(path, "/"); - } else { - strcpy(path, slash); - *slash = 0; - } - - strcpy(host, urlcopy); - - free(urlcopy); - - return 1; -} - -HTTPFetch::HTTPFetch(Swift::BoostIOServiceThread *ioService, Swift::ConnectionFactory *factory) : m_ioService(ioService), m_factory(factory) { - m_afterHeader = false; -} - -HTTPFetch::~HTTPFetch() { -} - -void HTTPFetch::_connected(boost::shared_ptr conn, const std::string url, bool error) { - if (error) { - _disconnected(conn); - } - else { - char host[255]; - int port = 80; - char path[255]; - int ssl = 0; - if (!url_to_host_port_path(url.c_str(), host, &port, path, &ssl)) - return; - - static char buff[2048]; - snprintf(buff, sizeof(buff), - "GET %s HTTP/1.1\r\n" - "Host: %s\r\n" - "User-Agent: Mozilla/4.5 [en] (1/1)\r\n" - "Accept: */*\r\n" - "%s" "\r\n", path, host, - "Connection: close\r\n"); - LOG4CXX_INFO(logger, "Sending " << buff << "\n"); - conn->write(Swift::createSafeByteArray(buff)); - } -} - -void HTTPFetch::_disconnected(boost::shared_ptr conn) { - conn->onConnectFinished.disconnect_all_slots(); - conn->onDisconnected.disconnect_all_slots(); - conn->onDataRead.disconnect_all_slots(); - - if (m_buffer.size() == 0) { - onURLFetched(""); - } - else { - std::string img = m_buffer.substr(m_buffer.find("\r\n\r\n") + 4); - onURLFetched(img); - } -} - -void HTTPFetch::_read(boost::shared_ptr conn, boost::shared_ptr data) { - std::string d(data->begin(), data->end()); -// std::cout << d << "\n"; - std::string img = d.substr(d.find("\r\n\r\n") + 4); - if (d.find("Location: ") == std::string::npos) { - m_buffer += d; - } - else { - d = d.substr(d.find("Location: ") + 10); - if (d.find("\r") == std::string::npos) { - d = d.substr(0, d.find("\n")); - } - else { - d = d.substr(0, d.find("\r")); - } - LOG4CXX_INFO(logger, "Next url is '" << d << "'"); - fetchURL(d); - conn->onConnectFinished.disconnect_all_slots(); - conn->onDisconnected.disconnect_all_slots(); - conn->onDataRead.disconnect_all_slots(); - } -} - -bool HTTPFetch::fetchURL(const std::string &url) { - char host[255]; - int port = 80; - char path[255]; - char buff[1024]; - int ssl = 0; - if (!url_to_host_port_path(url.c_str(), host, &port, path, &ssl)) { - LOG4CXX_ERROR(logger, "Invalid URL " << url); - return false; - } - - LOG4CXX_INFO(logger, "Connecting to " << host << ":" << port); - - boost::asio::ip::tcp::resolver resolver(*m_ioService->getIOService()); - boost::asio::ip::tcp::resolver::query query(host, ""); - boost::asio::ip::address address; - for(boost::asio::ip::tcp::resolver::iterator i = resolver.resolve(query); i != boost::asio::ip::tcp::resolver::iterator(); ++i) { - boost::asio::ip::tcp::endpoint end = *i; - address = end.address(); - break; - } - - boost::shared_ptr conn = m_factory->createConnection(); - conn->onConnectFinished.connect(boost::bind(&HTTPFetch::_connected, this, conn, url, _1)); - conn->onDisconnected.connect(boost::bind(&HTTPFetch::_disconnected, this, conn)); - conn->onDataRead.connect(boost::bind(&HTTPFetch::_read, this, conn, _1)); - conn->connect(Swift::HostAddressPort(Swift::HostAddress(address), port)); - return true; -} diff --git a/backends/libyahoo2/httpfetch.h b/backends/libyahoo2/httpfetch.h deleted file mode 100644 index 83a93b93..00000000 --- a/backends/libyahoo2/httpfetch.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once - -// Transport includes -#include "transport/config.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" - -// Swiften -#include "Swiften/Swiften.h" -#include "Swiften/TLS/OpenSSL/OpenSSLContextFactory.h" - -// Boost -#include - -using namespace boost::filesystem; -using namespace boost::program_options; -using namespace Transport; - -class HTTPFetch { - public: - HTTPFetch(Swift::BoostIOServiceThread *ioSerice, Swift::ConnectionFactory *factory); - virtual ~HTTPFetch(); - - bool fetchURL(const std::string &url); - - boost::signal onURLFetched; - - private: - void _connected(boost::shared_ptr conn, const std::string url, bool error); - void _disconnected(boost::shared_ptr conn); - void _read(boost::shared_ptr conn, boost::shared_ptr data); - - Swift::BoostIOServiceThread *m_ioService; - Swift::ConnectionFactory *m_factory; - std::string m_buffer; - bool m_afterHeader; -}; diff --git a/backends/libyahoo2/main.cpp b/backends/libyahoo2/main.cpp deleted file mode 100644 index df88ab8b..00000000 --- a/backends/libyahoo2/main.cpp +++ /dev/null @@ -1,762 +0,0 @@ -// Transport includes -#include "transport/config.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" - -// Yahoo2 -#include -#include -#include -#include -#include - -#include "yahoohandler.h" -#include "yahoolocalaccount.h" -#include "httpfetch.h" - -// Swiften -#include "Swiften/Swiften.h" -#include "Swiften/Network/TLSConnectionFactory.h" -#include "Swiften/TLS/OpenSSL/OpenSSLContextFactory.h" - -#ifndef _WIN32 -// for signal handler -#include "unistd.h" -#include "signal.h" -#include "sys/wait.h" -#include "sys/signal.h" -#endif - -// Boost -#include -using namespace boost::filesystem; -using namespace boost::program_options; -using namespace Transport; - -class YahooHandler; -class YahooLocalAccount; - -static std::string *currently_read_data; -static YahooLocalAccount *currently_writting_account; - -YahooHandler::YahooHandler(YahooLocalAccount *account, int conn_tag, int handler_tag, void *data, yahoo_input_condition cond) : - handler_tag(handler_tag), conn_tag(conn_tag), data(data), cond(cond), remove_later(false), account(account) {} - -YahooHandler::~YahooHandler() {} - -void YahooHandler::ready(std::string *buffer) { - if (cond == YAHOO_INPUT_WRITE) { - YahooLocalAccount *old = currently_writting_account; - currently_writting_account = account; - yahoo_write_ready(account->id, (void *) conn_tag, data); - currently_writting_account = old; - } - else { - if (!buffer) { - return; - } - // yahoo_read_ready calls ext_yahoo_read(...) in a loop, so we just have to choose proper buffer from which will - // that method read. We do that by static currently_read_data pointer. - currently_read_data = buffer; - // libyahoo2 reads data per 1024 bytes, so if we still have some data after the first ext_yahoo_read call, - // we have to call yahoo_read_ready again... - do { - yahoo_read_ready(account->id, (void *) conn_tag, data); - } while (currently_read_data->size() != 0); - } -} - - -typedef struct { - std::string yahoo_id; - std::string name; - int status; - int away; - std::string msg; - std::string group; -} yahoo_account; - -typedef struct { - int id; - char *label; -} yahoo_idlabel; - -typedef struct { - int id; - char *who; -} yahoo_authorize_data; - -DEFINE_LOGGER(logger, "Yahoo2"); - -// eventloop -Swift::SimpleEventLoop *loop_; - -// Plugin -class YahooPlugin; -YahooPlugin * np = NULL; - -class YahooPlugin : public NetworkPlugin { - public: - Swift::BoostNetworkFactories *m_factories; - Swift::OpenSSLContextFactory *m_sslFactory; - Swift::TLSConnectionFactory *m_tlsFactory; - Swift::BoostIOServiceThread m_boostIOServiceThread; - boost::shared_ptr m_conn; - - YahooPlugin(Config *config, Swift::SimpleEventLoop *loop, const std::string &host, int port) : NetworkPlugin() { - this->config = config; - m_factories = new Swift::BoostNetworkFactories(loop); - m_sslFactory = new Swift::OpenSSLContextFactory(); - m_tlsFactory = new Swift::TLSConnectionFactory(m_sslFactory, m_factories->getConnectionFactory()); - m_conn = m_factories->getConnectionFactory()->createConnection(); - m_conn->onDataRead.connect(boost::bind(&YahooPlugin::_handleDataRead, this, _1)); - m_conn->connect(Swift::HostAddressPort(Swift::HostAddress(host), port)); - - LOG4CXX_INFO(logger, "Starting the plugin."); - } - - // NetworkPlugin uses this method to send the data to networkplugin server - void sendData(const std::string &string) { - m_conn->write(Swift::createSafeByteArray(string)); - } - - // This method has to call handleDataRead with all received data from network plugin server - void _handleDataRead(boost::shared_ptr data) { - std::string d(data->begin(), data->end()); - handleDataRead(d); - } - - void handleLoginRequest(const std::string &user, const std::string &legacyName, const std::string &password) { - YahooLocalAccount *account = new YahooLocalAccount(user, legacyName, password); - m_users[user] = account; - m_ids[account->id] = user; - - LOG4CXX_INFO(logger, user << ": Logging in the user as " << legacyName << " with id=" << account->id); - account->login(); - } - - void handleLogoutRequest(const std::string &user, const std::string &legacyName) { - YahooLocalAccount *account = m_users[user]; - if (account) { - yahoo_logoff(account->id); - m_ids.erase(account->id); - m_users.erase(user); - delete account; - } - } - - void handleMessageSendRequest(const std::string &user, const std::string &legacyName, const std::string &message, const std::string &xhtml = "", const std::string &id = "") { - YahooLocalAccount *account = m_users[user]; - if (account) { - LOG4CXX_INFO(logger, "Sending message from " << user << " to " << legacyName << ": " << message << "."); - yahoo_send_im(account->id, NULL, legacyName.c_str(), message.c_str(), 0, 0); - _yahoo_write_ready(account); - } - } - - void handleBuddyUpdatedRequest(const std::string &user, const std::string &buddyName, const std::string &alias, const std::vector &groups) { - LOG4CXX_INFO(logger, user << ": Added buddy " << buddyName << "."); - handleBuddyChanged(user, buddyName, alias, groups, pbnetwork::STATUS_ONLINE); - } - - void _avatar_fetched(HTTPFetch *fetch, int account_id, unsigned int id, const std::string &img) { - handleVCard(m_ids[account_id], id, "", "", "", img); - delete fetch; - } - - void handleVCardRequest(const std::string &user, const std::string &legacyName, unsigned int id) { - YahooLocalAccount *account = m_users[user]; - if (!account) { - return; - } - - if (account->urls.find(legacyName) == account->urls.end()) { - return; - } - - HTTPFetch *fetch = new HTTPFetch(&m_boostIOServiceThread, m_factories->getConnectionFactory()); - fetch->onURLFetched.connect(boost::bind(&YahooPlugin::_avatar_fetched, this, fetch, account->id, id, _1)); - fetch->fetchURL(account->urls[legacyName]); - } - - void handleBuddyRemovedRequest(const std::string &user, const std::string &buddyName, const std::vector &groups) { - - } - - YahooLocalAccount *getAccount(int id) { - return m_users[m_ids[id]]; - } - - void _yahoo_remove_account(YahooLocalAccount *account) { - m_ids.erase(account->id); - m_users.erase(account->user); - delete account; - } - - void _yahoo_connect_finished(YahooLocalAccount *account, yahoo_connect_callback callback, void *data, int conn_tag, bool error) { - currently_writting_account = account; - if (error) { - LOG4CXX_ERROR(logger, account->user << ": Connection error!"); - callback(NULL, 0, data); -// np->handleDisconnected(user, 0, "Connection error."); - } - else { - LOG4CXX_INFO(logger, account->user << ": Connected"); - // We will have dangling pointer here, but we can't pass boost::shared_ptr here... - callback((void *) conn_tag, 0, data); - } - } - - void _yahoo_write_ready(YahooLocalAccount *account) { - // Find all WRITE handlers and inform that they really can write. - for (std::map::iterator it = account->handlers.begin(); it != account->handlers.end(); it++) { - if (it->second->cond == YAHOO_INPUT_WRITE && !it->second->remove_later) { - it->second->ready(); - } - } - } - - void _yahoo_data_read(YahooLocalAccount *account, int conn_tag, boost::shared_ptr data) { - std::string d(data->begin(), data->end()); - - // Find the handler that handles READing for this conn_tag - for (std::map::iterator it = account->handlers_per_conn[conn_tag].begin(); it != account->handlers_per_conn[conn_tag].end(); it++) { - if (it->second->cond == YAHOO_INPUT_READ && !it->second->remove_later) { - std::string cpy(d); - it->second->ready(&cpy); - - // Look like libyahoo2 needs to be informed it can write to socket after the read - // even we have informed it before... - _yahoo_write_ready(account); - break; - } - } - - account->removeOldHandlers(); - } - - void _yahoo_data_written(YahooLocalAccount *account, int conn_tag) { - LOG4CXX_INFO(logger, "data written"); - for (std::map::iterator it = account->handlers_per_conn[conn_tag].begin(); it != account->handlers_per_conn[conn_tag].end(); it++) { - if (it->second->cond == YAHOO_INPUT_WRITE) { - it->second->ready(); - } - } - - account->removeOldHandlers(); - } - - void _yahoo_disconnected(YahooLocalAccount *account, int conn_tag, const boost::optional &error) { - for (std::map::iterator it = account->handlers_per_conn[conn_tag].begin(); it != account->handlers_per_conn[conn_tag].end(); it++) { - if (it->second->cond == YAHOO_INPUT_READ && !it->second->remove_later) { - std::string cpy; - it->second->ready(&cpy); - _yahoo_write_ready(account); - break; - } - } - - account->removeConn(conn_tag); - } - - int _yahoo_connect_async(int id, const char *host, int port, yahoo_connect_callback callback, void *data, int use_ssl) { - YahooLocalAccount *account = getAccount(id); - if (!account) { - LOG4CXX_ERROR(logger, "Unknown account id=" << id); - return -1; - } - - boost::asio::ip::tcp::resolver resolver(*m_boostIOServiceThread.getIOService()); - boost::asio::ip::tcp::resolver::query query(host, ""); - boost::asio::ip::address address; - for(boost::asio::ip::tcp::resolver::iterator i = resolver.resolve(query); i != boost::asio::ip::tcp::resolver::iterator(); ++i) { - boost::asio::ip::tcp::endpoint end = *i; - address = end.address(); - break; - } - - LOG4CXX_INFO(logger, m_ids[id] << ": Connecting " << host << ":" << port); - int tag = account->conn_tag++; - if (use_ssl) { - account->conns[tag] = m_tlsFactory->createConnection(); - } - else { - account->conns[tag] = m_factories->getConnectionFactory()->createConnection(); - } - account->conns[tag]->onConnectFinished.connect(boost::bind(&YahooPlugin::_yahoo_connect_finished, this, account, callback, data, tag, _1)); - account->conns[tag]->onDisconnected.connect(boost::bind(&YahooPlugin::_yahoo_disconnected, this, account, tag, _1)); - account->conns[tag]->onDataRead.connect(boost::bind(&YahooPlugin::_yahoo_data_read, this, account, tag, _1)); - account->conns[tag]->onDataWritten.connect(boost::bind(&YahooPlugin::_yahoo_data_written, this, account, tag)); - account->conns[tag]->connect(Swift::HostAddressPort(Swift::HostAddress(address), port)); - return tag; - } - - private: - Config *config; - std::map m_users; - std::map m_ids; -}; - -static void spectrum_sigchld_handler(int sig) -{ - int status; - pid_t pid; - - do { - pid = waitpid(-1, &status, WNOHANG); - } while (pid != 0 && pid != (pid_t)-1); - - if ((pid == (pid_t) - 1) && (errno != ECHILD)) { - char errmsg[BUFSIZ]; - snprintf(errmsg, BUFSIZ, "Warning: waitpid() returned %d", pid); - perror(errmsg); - } -} - -static void ext_yahoo_got_conf_invite(int id, const char *me, const char *who, const char *room, const char *msg, YList *members) { -} - -static void ext_yahoo_conf_userdecline(int id, const char *me, const char *who, const char *room, const char *msg) { -} - -static void ext_yahoo_conf_userjoin(int id, const char *me, const char *who, const char *room) { -} - -static void ext_yahoo_conf_userleave(int id, const char *me, const char *who, const char *room) { -} - -static void ext_yahoo_conf_message(int id, const char *me, const char *who, const char *room, const char *msg, int utf8) { -} - -static void ext_yahoo_chat_cat_xml(int id, const char *xml) { -} - -static void ext_yahoo_chat_join(int id, const char *me, const char *room, const char * topic, YList *members, void *fd) { -} - -static void ext_yahoo_chat_userjoin(int id, const char *me, const char *room, struct yahoo_chat_member *who) { -} - -static void ext_yahoo_chat_userleave(int id, const char *me, const char *room, const char *who) { -} - -static void ext_yahoo_chat_message(int id, const char *me, const char *who, const char *room, const char *msg, int msgtype, int utf8) { -} - -static void ext_yahoo_status_changed(int id, const char *who, int stat, const char *msg, int away, int idle, int mobile) { - YahooLocalAccount *account = np->getAccount(id); - if (!account) { - return; - } - - LOG4CXX_INFO(logger, account->user << ": " << who << " status changed"); - - pbnetwork::StatusType status = pbnetwork::STATUS_NONE; - switch (stat) { - case YAHOO_STATUS_AVAILABLE: - status = pbnetwork::STATUS_ONLINE; - break; - case YAHOO_STATUS_NOTATHOME: - case YAHOO_STATUS_NOTATDESK: - case YAHOO_STATUS_NOTINOFFICE: - case YAHOO_STATUS_ONPHONE: - case YAHOO_STATUS_ONVACATION: - case YAHOO_STATUS_OUTTOLUNCH: - case YAHOO_STATUS_STEPPEDOUT: - status = pbnetwork::STATUS_AWAY; - break; - case YAHOO_STATUS_BRB: - status = pbnetwork::STATUS_XA; - break; - case YAHOO_STATUS_BUSY: - status = pbnetwork::STATUS_DND; - break; - case YAHOO_STATUS_OFFLINE: - status = pbnetwork::STATUS_NONE; - break; - default: - status = pbnetwork::STATUS_ONLINE; - break; - } - - yahoo_buddyicon_request(id, who); - np->_yahoo_write_ready(account); - - np->handleBuddyChanged(account->user, who, "", std::vector(), status, msg ? msg : ""); -} - -static void ext_yahoo_got_buddies(int id, YList * buds) { - YahooLocalAccount *account = np->getAccount(id); - if (!account) { - return; - } - - LOG4CXX_INFO(logger, account->user << ": Got buddy list"); - for(; buds; buds = buds->next) { - struct yahoo_buddy *bud = (struct yahoo_buddy *) buds->data; - - std::vector groups; - groups.push_back(bud->group); - np->handleBuddyChanged(account->user, bud->id, bud->real_name ? bud->real_name : "", groups, pbnetwork::STATUS_NONE); - } - -// yahoo_set_away(id, YAHOO_STATUS_AVAILABLE, "", 1); - np->_yahoo_write_ready(account); - np->handleConnected(account->user); -} - -static void ext_yahoo_got_ignore(int id, YList * igns) -{ -} - -static void ext_yahoo_got_buzz(int id, const char *me, const char *who, long tm) { -} - -static void ext_yahoo_got_im(int id, const char *me, const char *who, const char *msg, long tm, int stat, int utf8) { - YahooLocalAccount *account = np->getAccount(id); - if (!account) { - return; - } - - np->handleMessage(account->user, who, msg); -} - -static void ext_yahoo_rejected(int id, const char *who, const char *msg) { -} - -static void ext_yahoo_contact_added(int id, const char *myid, const char *who, const char *msg) { -} - -static void ext_yahoo_typing_notify(int id, const char* me, const char *who, int stat) { -} - -static void ext_yahoo_game_notify(int id, const char *me, const char *who, int stat, const char *msg) -{ -} - -static void ext_yahoo_mail_notify(int id, const char *from, const char *subj, int cnt) { -} - -static void ext_yahoo_got_webcam_image(int id, const char *who, const unsigned char *image, unsigned int image_size, unsigned int real_size, unsigned int timestamp) { -} - -static void ext_yahoo_webcam_viewer(int id, const char *who, int connect) { -} - -static void ext_yahoo_webcam_closed(int id, const char *who, int reason) { -} - -static void ext_yahoo_webcam_data_request(int id, int send) { -} - -static void ext_yahoo_webcam_invite(int id, const char *me, const char *from) { -} - -static void ext_yahoo_webcam_invite_reply(int id, const char *me, const char *from, int accept) { -} - -static void ext_yahoo_system_message(int id, const char *me, const char *who, const char *msg) { -} - -static void ext_yahoo_got_cookies(int id) { -} - -static void ext_yahoo_login_response(int id, int succ, const char *url) { - YahooLocalAccount *account = np->getAccount(id); - if (!account) { - return; - } - - if (succ == YAHOO_LOGIN_OK) { - account->status = yahoo_current_status(id); - // We will fire handleConnected in Got Buddy List. - return; - } - else if (succ == YAHOO_LOGIN_UNAME) { - np->handleDisconnected(account->user, 0, "Could not log into Yahoo service - username not recognised. Please verify that your username is correctly typed."); - } - else if (succ == YAHOO_LOGIN_PASSWD) { - np->handleDisconnected(account->user, 0, "Could not log into Yahoo service - password incorrect. Please verify that your password is correctly typed."); - } - else if (succ == YAHOO_LOGIN_LOCK) { - np->handleDisconnected(account->user, 0, std::string("Could not log into Yahoo service. Your account has been locked. Visit ") + url + " to reactivate it."); - } - else if (succ == YAHOO_LOGIN_DUPL) { - np->handleDisconnected(account->user, 0, "You have been logged out of the yahoo service, possibly due to a duplicate login."); - } - else if (succ == YAHOO_LOGIN_SOCK) { - np->handleDisconnected(account->user, 0, "The server closed the socket."); - } - else { - np->handleDisconnected(account->user, 0, "Could not log in, unknown reason."); - } - - np->handleLogoutRequest(account->user, ""); -} - -static void ext_yahoo_error(int id, const char *_err, int fatal, int num) { - std::string err(_err); - std::string msg("Yahoo Error: "); - msg += err + " - "; - switch(num) { - case E_UNKNOWN: - msg += "unknown error " + err; - break; - case E_CUSTOM: - msg += "custom error " + err; - break; - case E_CONFNOTAVAIL: - msg += err + " is not available for the conference"; - break; - case E_IGNOREDUP: - msg += err + " is already ignored"; - break; - case E_IGNORENONE: - msg += err +" is not in the ignore list"; - break; - case E_IGNORECONF: - msg += err + " is in buddy list - cannot ignore "; - break; - case E_SYSTEM: - msg += "system error " + err; - break; - case E_CONNECTION: - msg += err + "server connection error %s"; - break; - } - LOG4CXX_ERROR(logger, msg); - - YahooLocalAccount *account = np->getAccount(id); - if (!account) { - return; - } - - if(fatal) { - np->handleDisconnected(account->user, 0, msg); - np->handleLogoutRequest(account->user, ""); - } -} - -static int ext_yahoo_connect(const char *host, int port) { - return -1; -} - -static int ext_yahoo_add_handler(int id, void *fd, yahoo_input_condition cond, void *data) { - YahooLocalAccount *account = np->getAccount(id); - if (!account) { - return -1; - } - - int conn_tag = (unsigned long) fd; - YahooHandler *handler = new YahooHandler(account, conn_tag, account->handler_tag++, data, cond); - account->addHandler(handler); - - // We are ready to write right now, so why not... - handler->ready(); - - return handler->handler_tag; -} - -static void ext_yahoo_remove_handler(int id, int tag) { - YahooLocalAccount *account = np->getAccount(id); - if (!account) { - return; - } - - if (account->handlers.find(tag) == account->handlers.end()) { - return; - } - - YahooHandler *handler = account->handlers[tag]; - handler->remove_later = true; -} - -static int ext_yahoo_write(void *fd, char *buf, int len) { - int conn_tag = (unsigned long) fd; - YahooLocalAccount *account = currently_writting_account; - - std::string string(buf, len); - account->conns[conn_tag]->write(Swift::createSafeByteArray(string)); - - return len; -} - -static int ext_yahoo_read(void *fd, char *buf, int len) { - if (currently_read_data->size() < len) { - len = currently_read_data->size(); - } - memcpy(buf, currently_read_data->c_str(), len); - currently_read_data->erase(0, len); - return len; -} - -static void ext_yahoo_close(void *fd) { - // No need to do anything here. We close it properly in _yahoo_disconnected(...); -} - -static int ext_yahoo_connect_async(int id, const char *host, int port, yahoo_connect_callback callback, void *data, int use_ssl) { - return np->_yahoo_connect_async(id, host, port, callback, data, use_ssl); -} - -static void ext_yahoo_got_file(int id, const char *me, const char *who, const char *msg, const char *fname, unsigned long fesize, char *trid) { -} - -static void ext_yahoo_file_transfer_done(int id, int response, void *data) { -} - -static char *ext_yahoo_get_ip_addr(const char *domain) { - return NULL; -} - -static void ext_yahoo_got_ft_data(int id, const unsigned char *in, int count, void *data) { -} - -static void ext_yahoo_got_identities(int id, YList * ids) { -} - -static void ext_yahoo_chat_yahoologout(int id, const char *me) { -} - -static void ext_yahoo_chat_yahooerror(int id, const char *me) { -} - -static void ext_yahoo_got_ping(int id, const char *errormsg){ -} - -static void ext_yahoo_got_search_result(int id, int found, int start, int total, YList *contacts) { -} - -static void ext_yahoo_got_buddyicon_checksum(int id, const char *a, const char *b, int checksum) { - LOG4CXX_INFO(logger, "got buddyicon_checksum"); -} - -static void ext_yahoo_got_buddy_change_group(int id, const char *me, const char *who, const char *old_group, const char *new_group) { -} - -static void ext_yahoo_got_buddyicon(int id, const char *me, const char *who, const char *url, int checksum) { - YahooLocalAccount *account = np->getAccount(id); - if (!account) { - return; - } - - LOG4CXX_INFO(logger, account->user << ": got buddyicon of " << who); - account->urls[who] = url; -} - -static void ext_yahoo_buddyicon_uploaded(int id, const char *url) { -} - -static void ext_yahoo_got_buddyicon_request(int id, const char *me, const char *who) { - LOG4CXX_INFO(logger, "got buddyicon_request"); -} - -static int ext_yahoo_log(const char *fmt,...) -{ - static char log[8192]; - static std::string buffered; - va_list ap; - - va_start(ap, fmt); - - vsnprintf(log, 8191, fmt, ap); - buffered += log; - if (buffered.find('\n') != std::string::npos) { - buffered.erase(buffered.find('\n'), 1); - LOG4CXX_INFO(logger, buffered); - buffered.clear(); - } - fflush(stderr); - va_end(ap); - return 0; -} - -static void register_callbacks() -{ - static struct yahoo_callbacks yc; - - yc.ext_yahoo_login_response = ext_yahoo_login_response; - yc.ext_yahoo_got_buddies = ext_yahoo_got_buddies; - yc.ext_yahoo_got_ignore = ext_yahoo_got_ignore; - yc.ext_yahoo_got_identities = ext_yahoo_got_identities; - yc.ext_yahoo_got_cookies = ext_yahoo_got_cookies; - yc.ext_yahoo_status_changed = ext_yahoo_status_changed; - yc.ext_yahoo_got_im = ext_yahoo_got_im; - yc.ext_yahoo_got_buzz = ext_yahoo_got_buzz; - yc.ext_yahoo_got_conf_invite = ext_yahoo_got_conf_invite; - yc.ext_yahoo_conf_userdecline = ext_yahoo_conf_userdecline; - yc.ext_yahoo_conf_userjoin = ext_yahoo_conf_userjoin; - yc.ext_yahoo_conf_userleave = ext_yahoo_conf_userleave; - yc.ext_yahoo_conf_message = ext_yahoo_conf_message; - yc.ext_yahoo_chat_cat_xml = ext_yahoo_chat_cat_xml; - yc.ext_yahoo_chat_join = ext_yahoo_chat_join; - yc.ext_yahoo_chat_userjoin = ext_yahoo_chat_userjoin; - yc.ext_yahoo_chat_userleave = ext_yahoo_chat_userleave; - yc.ext_yahoo_chat_message = ext_yahoo_chat_message; - yc.ext_yahoo_chat_yahoologout = ext_yahoo_chat_yahoologout; - yc.ext_yahoo_chat_yahooerror = ext_yahoo_chat_yahooerror; - yc.ext_yahoo_got_webcam_image = ext_yahoo_got_webcam_image; - yc.ext_yahoo_webcam_invite = ext_yahoo_webcam_invite; - yc.ext_yahoo_webcam_invite_reply = ext_yahoo_webcam_invite_reply; - yc.ext_yahoo_webcam_closed = ext_yahoo_webcam_closed; - yc.ext_yahoo_webcam_viewer = ext_yahoo_webcam_viewer; - yc.ext_yahoo_webcam_data_request = ext_yahoo_webcam_data_request; - yc.ext_yahoo_got_file = ext_yahoo_got_file; - yc.ext_yahoo_got_ft_data = ext_yahoo_got_ft_data; - yc.ext_yahoo_get_ip_addr = ext_yahoo_get_ip_addr; - yc.ext_yahoo_file_transfer_done = ext_yahoo_file_transfer_done; - yc.ext_yahoo_contact_added = ext_yahoo_contact_added; - yc.ext_yahoo_rejected = ext_yahoo_rejected; - yc.ext_yahoo_typing_notify = ext_yahoo_typing_notify; - yc.ext_yahoo_game_notify = ext_yahoo_game_notify; - yc.ext_yahoo_mail_notify = ext_yahoo_mail_notify; - yc.ext_yahoo_got_search_result = ext_yahoo_got_search_result; - yc.ext_yahoo_system_message = ext_yahoo_system_message; - yc.ext_yahoo_error = ext_yahoo_error; - yc.ext_yahoo_log = ext_yahoo_log; - yc.ext_yahoo_add_handler = ext_yahoo_add_handler; - yc.ext_yahoo_remove_handler = ext_yahoo_remove_handler; - yc.ext_yahoo_connect = ext_yahoo_connect; - yc.ext_yahoo_connect_async = ext_yahoo_connect_async; - yc.ext_yahoo_read = ext_yahoo_read; - yc.ext_yahoo_write = ext_yahoo_write; - yc.ext_yahoo_close = ext_yahoo_close; - yc.ext_yahoo_got_buddyicon = ext_yahoo_got_buddyicon; - yc.ext_yahoo_got_buddyicon_checksum = ext_yahoo_got_buddyicon_checksum; - yc.ext_yahoo_buddyicon_uploaded = ext_yahoo_buddyicon_uploaded; - yc.ext_yahoo_got_buddyicon_request = ext_yahoo_got_buddyicon_request; - yc.ext_yahoo_got_ping = ext_yahoo_got_ping; - yc.ext_yahoo_got_buddy_change_group = ext_yahoo_got_buddy_change_group; - - yahoo_register_callbacks(&yc); -} - -int main (int argc, char* argv[]) { - std::string host; - int port; - -#ifndef _WIN32 - if (signal(SIGCHLD, spectrum_sigchld_handler) == SIG_ERR) { - std::cout << "SIGCHLD handler can't be set\n"; - return -1; - } -#endif - - std::string error; - Config *cfg = Config::createFromArgs(argc, argv, error, host, port); - if (cfg == NULL) { - std::cerr << error; - return 1; - } - - Logging::initBackendLogging(cfg); - - register_callbacks(); - yahoo_set_log_level(YAHOO_LOG_DEBUG); - - Swift::SimpleEventLoop eventLoop; - loop_ = &eventLoop; - np = new YahooPlugin(cfg, &eventLoop, host, port); - loop_->run(); - - return 0; -} diff --git a/backends/libyahoo2/sample_client.example b/backends/libyahoo2/sample_client.example deleted file mode 100644 index 78d508ce..00000000 --- a/backends/libyahoo2/sample_client.example +++ /dev/null @@ -1,1898 +0,0 @@ -/* - * sample yahoo client based on libyahoo2 - * - * libyahoo2 is available at http://libyahoo2.sourceforge.net/ - * - * $Revision: 373 $ - * $Date: 2010-06-02 13:55:25 -0700 (Wed, 02 Jun 2010) $ - * - * Copyright (C) 2002-2004, Philip S Tellis - * Copyright (C) 2009, Siddhesh Poyarekar - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#if HAVE_CONFIG_H -# include -#endif -#ifndef _WIN32 -#include -#include -#endif -#include -#ifndef _WIN32 -#include -#include -#include - -#include -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#if HAVE_UNISTD_H -#include -#endif - -/* Get these from http://libyahoo2.sourceforge.net/ */ -#include -#include -#include "yahoo_util.h" - -#ifndef _WIN32 -int fileno(FILE * stream); -#endif - -#define MAX_PREF_LEN 255 - -static char *local_host = NULL; - -static int do_mail_notify = 0; -static int do_yahoo_debug = 0; -static int ignore_system = 0; -static int do_typing_notify = 1; -static int accept_webcam_viewers = 1; -static int send_webcam_images = 0; -static int webcam_direction = YAHOO_WEBCAM_DOWNLOAD; -static time_t curTime = 0; -static time_t pingTimer = 0; -static time_t webcamTimer = 0; -static double webcamStart = 0; - -/* id of the webcam connection (needed for uploading) */ -static int webcam_id = 0; - -static int poll_loop=1; - -static void register_callbacks(); - -typedef struct { - char yahoo_id[255]; - char password[255]; - int id; - int fd; - int status; - char *msg; -} yahoo_local_account; - -typedef struct { - char yahoo_id[255]; - char name[255]; - int status; - int away; - char *msg; - char group[255]; -} yahoo_account; - -typedef struct { - int id; - char *label; -} yahoo_idlabel; - -typedef struct { - int id; - char *who; -} yahoo_authorize_data; - -yahoo_idlabel yahoo_status_codes[] = { - {YAHOO_STATUS_AVAILABLE, "Available"}, - {YAHOO_STATUS_BRB, "BRB"}, - {YAHOO_STATUS_BUSY, "Busy"}, - {YAHOO_STATUS_NOTATHOME, "Not Home"}, - {YAHOO_STATUS_NOTATDESK, "Not at Desk"}, - {YAHOO_STATUS_NOTINOFFICE, "Not in Office"}, - {YAHOO_STATUS_ONPHONE, "On Phone"}, - {YAHOO_STATUS_ONVACATION, "On Vacation"}, - {YAHOO_STATUS_OUTTOLUNCH, "Out to Lunch"}, - {YAHOO_STATUS_STEPPEDOUT, "Stepped Out"}, - {YAHOO_STATUS_INVISIBLE, "Invisible"}, - {YAHOO_STATUS_IDLE, "Idle"}, - {YAHOO_STATUS_OFFLINE, "Offline"}, - {YAHOO_STATUS_CUSTOM, "[Custom]"}, - {YPACKET_STATUS_NOTIFY, "Notify"}, - {0, NULL} -}; - -static void ext_yahoo_close(void *fd); - -char * yahoo_status_code(enum yahoo_status s) -{ - int i; - for(i=0; yahoo_status_codes[i].label; i++) - if(yahoo_status_codes[i].id == s) - return yahoo_status_codes[i].label; - return "Unknown"; -} - -#define YAHOO_DEBUGLOG ext_yahoo_log - -static int ext_yahoo_log(const char *fmt,...) -{ - va_list ap; - - va_start(ap, fmt); - - vfprintf(stderr, fmt, ap); - fflush(stderr); - va_end(ap); - return 0; -} - -#define LOG(x) if(do_yahoo_debug) { YAHOO_DEBUGLOG("%s:%d: ", __FILE__, __LINE__); \ - YAHOO_DEBUGLOG x; \ - YAHOO_DEBUGLOG("\n"); } - -#define WARNING(x) if(do_yahoo_debug) { YAHOO_DEBUGLOG("%s:%d: warning: ", __FILE__, __LINE__); \ - YAHOO_DEBUGLOG x; \ - YAHOO_DEBUGLOG("\n"); } - -#define print_message(x) { printf x; printf("\n"); } - -static yahoo_local_account * ylad = NULL; -static YList * buddies = NULL; - -static int expired(time_t timer) -{ - if (timer && curTime >= timer) - return 1; - - return 0; -} - -static void rearm(time_t *timer, int seconds) -{ - time(timer); - *timer += seconds; -} - -#ifndef _WIN32 -FILE *popen(const char *command, const char *type); -int pclose(FILE *stream); -int gethostname(char *name, size_t len); -#endif - -static char * get_local_addresses() -{ - static char addresses[1024]; - char buff[1024]; - struct hostent * hn; -#ifndef _WIN32 - char gateway[16]; - char * c; - int i; - FILE * f; - f = popen("netstat -nr", "r"); - if(!f) - goto IP_TEST_2; - while( fgets(buff, sizeof(buff), f) != NULL ) { - c = strtok( buff, " " ); - if( (strstr(c, "default") || strstr(c,"0.0.0.0") ) && - !strstr(c, "127.0.0" ) ) - break; - } - c = strtok( NULL, " " ); - pclose(f); - - strncpy(gateway,c, 16); - - - - for(i = strlen(gateway); gateway[i] != '.'; i-- ) - gateway[i] = 0; - - gateway[i] = 0; - - for(i = strlen(gateway); gateway[i] != '.'; i-- ) - gateway[i] = 0; - - f = popen("/sbin/ifconfig -a", "r"); - if(!f) - goto IP_TEST_2; - - while( fgets(buff, sizeof(buff), f) != NULL ) { - if( strstr(buff, "inet") && strstr(buff,gateway) ) - break; - } - pclose(f); - - c = strtok( buff, " " ); - c = strtok( NULL, " " ); - - strncpy ( addresses, c, sizeof(addresses) ); - c = strtok(addresses, ":" ); - strncpy ( buff, c, sizeof(buff) ); - if((c=strtok(NULL, ":"))) - strncpy( buff, c, sizeof(buff) ); - - strncpy(addresses, buff, sizeof(addresses)); - - return addresses; - - -IP_TEST_2: -#endif /* _WIN32 */ - - gethostname(buff,sizeof(buff)); - - hn = gethostbyname(buff); - if(hn) - strncpy(addresses, inet_ntoa( *((struct in_addr*)hn->h_addr)), sizeof(addresses) ); - else - addresses[0] = 0; - - return addresses; -} - -static double get_time() -{ -#ifndef _WIN32 - struct timeval ct; - gettimeofday(&ct, 0); - - /* return time in milliseconds */ - return (ct.tv_sec * 1E3 + ct.tv_usec / 1E3); -#else - return timeGetTime(); -#endif -} - -static int yahoo_ping_timeout_callback() -{ - print_message(("Sending a keep alive message")); - yahoo_keepalive(ylad->id); - rearm(&pingTimer, 600); - return 1; -} - -static int yahoo_webcam_timeout_callback(int id) -{ - static unsigned image_num = 0; - unsigned char *image = NULL; - unsigned int length = 0; - unsigned int timestamp = get_time() - webcamStart; - char fname[1024]; - FILE *f_image = NULL; - struct stat s_image; - - if (send_webcam_images) - { - sprintf(fname, "images/image_%.3d.jpc", image_num++); - if (image_num > 999) image_num = 0; - if (stat(fname, &s_image) == -1) - return -1; - length = s_image.st_size; - image = y_new0(unsigned char, length); - - if ((f_image = fopen(fname, "r")) != NULL) { - fread(image, length, 1, f_image); - fclose(f_image); - } else { - printf("Error reading from %s\n", fname); - } - } - - print_message(("Sending a webcam image (%d bytes)", length)); - yahoo_webcam_send_image(id, image, length, timestamp); - FREE(image); - rearm(&webcamTimer, 2); - return 1; -} - -YList * conferences = NULL; -typedef struct { - int id; - char * me; - char * room_name; - char * host; - YList * members; - int joined; -} conf_room; - -static const char * get_buddy_name(const char * yid) -{ - YList * b; - for (b = buddies; b; b = b->next) { - yahoo_account * ya = b->data; - if(!strcmp(yid, ya->yahoo_id)) - return ya->name&&*ya->name?ya->name:ya->yahoo_id; - } - - return yid; -} - -static conf_room * find_conf_room_by_name_and_id(int id, const char * me, const char * name) -{ - YList * l; - for(l = conferences; l; l=l->next) { - conf_room * cr = l->data; - if(cr->id == id && !strcmp(name, cr->room_name) && (me == NULL || cr->me == NULL || !strcmp(me, cr->me))) { - return cr; - } - } - - return NULL; -} - -static void ext_yahoo_got_conf_invite(int id, const char *me, const char *who, const char *room, const char *msg, YList *members) -{ - conf_room * cr = y_new0(conf_room, 1); - cr->room_name = strdup(room); - cr->me = strdup(me); - cr->host = strdup(who); - cr->members = members; - cr->id = id; - - conferences = y_list_append(conferences, cr); - - print_message(("%s has invited you [%s] to a conference: %s\n" - "with the message: %s", - who, me, room, msg)); - - for(; members; members=members->next) - print_message(("\t%s", (char *)members->data)); - -} -static void ext_yahoo_conf_userdecline(int id, const char *me, const char *who, const char *room, const char *msg) -{ - YList * l; - /* TODO: probably have to use the me arg to find the room */ - conf_room * cr = find_conf_room_by_name_and_id(id, me, room); - - if(cr) - for(l = cr->members; l; l=l->next) { - char * w = l->data; - if(!strcmp(w, who)) { - FREE(l->data); - cr->members = y_list_remove_link(cr->members, l); - y_list_free_1(l); - break; - } - } - - print_message(("%s declined the invitation from %s to %s\n" - "with the message: %s", who, me, room, msg)); -} - -static void ext_yahoo_conf_userjoin(int id, const char *me, const char *who, const char *room) -{ - conf_room * cr = find_conf_room_by_name_and_id(id, me, room); - if(cr) { - YList * l = NULL; - for(l = cr->members; l; l=l->next) { - char * w = l->data; - if(!strcmp(w, who)) - break; - } - if(!l) - cr->members = y_list_append(cr->members, strdup(who)); - } - - print_message(("%s joined the conference %s [%s]", who, room, me)); - -} - -static void ext_yahoo_conf_userleave(int id, const char *me, const char *who, const char *room) -{ - YList * l; - conf_room * cr = find_conf_room_by_name_and_id(id, me, room); - - if(cr) - for(l = cr->members; l; l=l->next) { - char * w = l->data; - if(!strcmp(w, who)) { - FREE(l->data); - cr->members = y_list_remove_link(cr->members, l); - y_list_free_1(l); - break; - } - } - - print_message(("%s left the conference %s [%s]", who, room, me)); -} - -static void ext_yahoo_conf_message(int id, const char *me, const char *who, const char *room, const char *msg, int utf8) -{ - char * umsg = (char *)msg; - - if(utf8) - umsg = y_utf8_to_str(msg); - - who = get_buddy_name(who); - - print_message(("%s (in %s [%s]): %s", who, room, me, umsg)); - - if(utf8) - FREE(umsg); -} - -static void print_chat_member(struct yahoo_chat_member *ycm) -{ - printf("%s (%s) ", ycm->id, ycm->alias); - printf(" Age: %d Sex: ", ycm->age); - if (ycm->attribs & YAHOO_CHAT_MALE) { - printf("Male"); - } else if (ycm->attribs & YAHOO_CHAT_FEMALE) { - printf("Female"); - } else { - printf("Unknown"); - } - if (ycm->attribs & YAHOO_CHAT_WEBCAM) { - printf(" with webcam"); - } - - printf(" Location: %s", ycm->location); -} - -static void ext_yahoo_chat_cat_xml(int id, const char *xml) -{ - print_message(("%s", xml)); -} - -static void ext_yahoo_chat_join(int id, const char *me, const char *room, const char * topic, YList *members, void *fd) -{ - print_message(("You [%s] have joined the chatroom %s with topic %s", me, room, topic)); - - while(members) { - YList *n = members->next; - - printf("\t"); - print_chat_member(members->data); - printf("\n"); - FREE(((struct yahoo_chat_member *)members->data)->id); - FREE(((struct yahoo_chat_member *)members->data)->alias); - FREE(((struct yahoo_chat_member *)members->data)->location); - FREE(members->data); - FREE(members); - members=n; - } -} - -static void ext_yahoo_chat_userjoin(int id, const char *me, const char *room, struct yahoo_chat_member *who) -{ - print_chat_member(who); - print_message((" joined the chatroom %s [%s]", room, me)); - FREE(who->id); - FREE(who->alias); - FREE(who->location); - FREE(who); -} - -static void ext_yahoo_chat_userleave(int id, const char *me, const char *room, const char *who) -{ - print_message(("%s left the chatroom %s [%s]", who, room, me)); -} - -static void ext_yahoo_chat_message(int id, const char *me, const char *who, const char *room, const char *msg, int msgtype, int utf8) -{ - char * umsg = (char *)msg; - char * charpos; - - if(utf8) - umsg = y_utf8_to_str(msg); - /* Remove escapes */ - charpos = umsg; - while(*charpos) { - if (*charpos == 0x1b) { - *charpos = ' '; - } - charpos++; - } - - if (msgtype == 2) { - print_message(("(in %s [%s]) %s %s", room, me, who, umsg)); - } else { - print_message(("(in %s [%s]) %s: %s", room, me, who, umsg)); - } - - if(utf8) - FREE(umsg); -} - -static void ext_yahoo_status_changed(int id, const char *who, int stat, const char *msg, int away, int idle, int mobile) -{ - yahoo_account * ya=NULL; - YList * b; - char buf[1024]; - - for(b = buddies; b; b = b->next) { - if(!strcmp(((yahoo_account *)b->data)->yahoo_id, who)) { - ya = b->data; - break; - } - } - - if (msg == NULL) { - sprintf(buf, "%s", yahoo_status_code(stat)); - } - else if (stat == YAHOO_STATUS_CUSTOM) { - sprintf(buf, "%s", msg); - } else { - sprintf(buf, "%s: %s", yahoo_status_code(stat), msg); - } - - if (away > 0) { - char away_buf[32]; - sprintf(away_buf, " away[%d]", away); - strcat(buf, away_buf); - } - - if (mobile > 0) { - char mobile_buf[32]; - sprintf(mobile_buf, " mobile[%d]", mobile); - strcat(buf, mobile_buf); - } - - if (idle > 0) { - char time_buf[32]; - sprintf(time_buf, " idle for %d:%02d:%02d", idle/3600, (idle/60)%60, idle%60); - strcat(buf, time_buf); - } - - print_message(("%s (%s) is now %s", ya?ya->name:who, who, buf)) - - if(ya) { - ya->status = stat; - ya->away = away; - if(msg) { - FREE(ya->msg); - ya->msg = strdup(msg); - } - } -} - -static void ext_yahoo_got_buddies(int id, YList * buds) -{ - while(buddies) { - FREE(buddies->data); - buddies = buddies->next; - if(buddies) - FREE(buddies->prev); - } - for(; buds; buds = buds->next) { - yahoo_account *ya = y_new0(yahoo_account, 1); - struct yahoo_buddy *bud = buds->data; - strncpy(ya->yahoo_id, bud->id, 255); - if(bud->real_name) - strncpy(ya->name, bud->real_name, 255); - strncpy(ya->group, bud->group, 255); - ya->status = YAHOO_STATUS_OFFLINE; - buddies = y_list_append(buddies, ya); - -/* print_message(("%s is %s", bud->id, bud->real_name));*/ - } -} - -static void ext_yahoo_got_ignore(int id, YList * igns) -{ -} - -static void ext_yahoo_got_buzz(int id, const char *me, const char *who, long tm) -{ - who = get_buddy_name(who); - - printf("\a"); - if(tm) { - char timestr[255]; - - strncpy(timestr, ctime((time_t *)&tm), sizeof(timestr)); - timestr[strlen(timestr) - 1] = '\0'; - - print_message(("[Offline message at %s to %s from %s]: **DING**", - timestr, me, who)) - } else - print_message(("[%s]%s: **DING**", me, who)) -} - -static void ext_yahoo_got_im(int id, const char *me, const char *who, const char *msg, long tm, int stat, int utf8) -{ - char *umsg = (char *)msg; - - if(stat == 2) { - LOG(("Error sending message from %s to %s", me, who)); - return; - } - - if(!msg) - return; - - if(utf8) - umsg = y_utf8_to_str(msg); - - who = get_buddy_name(who); - - if(tm) { - char timestr[255]; - - strncpy(timestr, ctime((time_t *)&tm), sizeof(timestr)); - timestr[strlen(timestr) - 1] = '\0'; - - print_message(("[Offline message at %s to %s from %s]: %s", - timestr, me, who, umsg)) - } else - print_message(("[%s]%s: %s", me, who, umsg)) - - if(utf8) - FREE(umsg); -} - -static void ext_yahoo_rejected(int id, const char *who, const char *msg) -{ - print_message(("%s has rejected you%s%s", who, - (msg?" with the message:\n":"."), - (msg?msg:""))); -} - -static void ext_yahoo_contact_added(int id, const char *myid, const char *who, const char *msg) -{ - char buff[1024]; - - snprintf(buff, sizeof(buff), "%s, the yahoo user %s has added you to their contact list", myid, who); - if(msg) { - strcat(buff, " with the following message:\n"); - strcat(buff, msg); - strcat(buff, "\n"); - } else { - strcat(buff, ". "); - } - strcat(buff, "Do you want to allow this [Y/N]?"); - -/* print_message((buff)); - scanf("%c", &choice); - if(choice != 'y' && choice != 'Y') - yahoo_reject_buddy(id, who, "Thanks, but no thanks."); -*/ -} - -static void ext_yahoo_typing_notify(int id, const char* me, const char *who, int stat) -{ - if(stat && do_typing_notify) - print_message(("[%s]%s is typing...", me, who)); -} - -static void ext_yahoo_game_notify(int id, const char *me, const char *who, int stat, const char *msg) -{ -} - -static void ext_yahoo_mail_notify(int id, const char *from, const char *subj, int cnt) -{ - char buff[1024] = {0}; - - if(!do_mail_notify) - return; - - if(from && subj) - snprintf(buff, sizeof(buff), - "You have new mail from %s about %s\n", - from, subj); - if(cnt) { - char buff2[100]; - snprintf(buff2, sizeof(buff2), - "You have %d message%s\n", - cnt, cnt==1?"":"s"); - strcat(buff, buff2); - } - - if(buff[0]) - print_message((buff)); -} - -static void ext_yahoo_got_webcam_image(int id, const char *who, - const unsigned char *image, unsigned int image_size, unsigned int real_size, - unsigned int timestamp) -{ - static unsigned char *cur_image = NULL; - static unsigned int cur_image_len = 0; - static unsigned int image_num = 0; - FILE* f_image; - char fname[1024]; - - /* copy image part to cur_image */ - if (real_size) - { - if (!cur_image) cur_image = y_new0(unsigned char, image_size); - memcpy(cur_image + cur_image_len, image, real_size); - cur_image_len += real_size; - } - - if (image_size == cur_image_len) - { - print_message(("Received a image update at %d (%d bytes)", - timestamp, image_size)); - - /* if we recieved an image then write it to file */ - if (image_size) - { - sprintf(fname, "images/%s_%.3d.jpc", who, image_num++); - - if ((f_image = fopen(fname, "w")) != NULL) { - fwrite(cur_image, image_size, 1, f_image); - fclose(f_image); - } else { - printf("Error writing to %s\n", fname); - } - FREE(cur_image); - cur_image_len = 0; - if (image_num > 999) image_num = 0; - } - } -} - -static void ext_yahoo_webcam_viewer(int id, const char *who, int connect) -{ - switch (connect) - { - case 0: - print_message(("%s has stopped viewing your webcam", who)); - break; - case 1: - print_message(("%s has started viewing your webcam", who)); - break; - case 2: - print_message(("%s is trying to view your webcam", who)); - yahoo_webcam_accept_viewer(id, who, accept_webcam_viewers); - break; - } -} - -static void ext_yahoo_webcam_closed(int id, const char *who, int reason) -{ - switch(reason) - { - case 1: - print_message(("%s stopped broadcasting", who)); - break; - case 2: - print_message(("%s cancelled viewing permission", who)); - break; - case 3: - print_message(("%s declines permission to view his/her webcam", who)); - break; - case 4: - print_message(("%s does not have his/her webcam online", who)); - break; - } -} - -static void ext_yahoo_webcam_data_request(int id, int send) -{ - webcam_id = id; - - if (send) { - print_message(("Got request to start sending images")); - if (!webcamTimer) - rearm(&webcamTimer, 2); - } else { - print_message(("Got request to stop sending images")); - } - send_webcam_images = send; -} - -static void ext_yahoo_webcam_invite(int id, const char *me, const char *from) -{ - print_message(("Got a webcam invitation to %s from %s", me, from)); -} - -static void ext_yahoo_webcam_invite_reply(int id, const char *me, const char *from, int accept) -{ - if(accept) { - print_message(("[%s]%s accepted webcam invitation...", me, from)); - } else { - print_message(("[%s]%s declined webcam invitation...", me, from)); - } -} - -static void ext_yahoo_system_message(int id, const char *me, const char *who, const char *msg) -{ - if(ignore_system) - return; - - print_message(("Yahoo System Message: %s", msg)); -} - -void yahoo_logout() -{ - if (ylad->id <= 0) { - return; - } - - pingTimer=0; - - while(conferences) { - YList * n = conferences->next; - conf_room * cr = conferences->data; - if(cr->joined) - yahoo_conference_logoff(ylad->id, NULL, cr->members, cr->room_name); - FREE(cr->me); - FREE(cr->room_name); - FREE(cr->host); - while(cr->members) { - YList *n = cr->members->next; - FREE(cr->members->data); - FREE(cr->members); - cr->members=n; - } - FREE(cr); - FREE(conferences); - conferences = n; - } - - yahoo_logoff(ylad->id); - yahoo_close(ylad->id); - - ylad->status = YAHOO_STATUS_OFFLINE; - ylad->id = 0; - - poll_loop=0; - - print_message(("logged_out")); -} - -static void ext_yahoo_login(yahoo_local_account * ylad, int login_mode) -{ - LOG(("ext_yahoo_login")); - - ylad->id = yahoo_init_with_attributes(ylad->yahoo_id, ylad->password, - "local_host", local_host, - "pager_port", 5050, - NULL); - ylad->status = YAHOO_STATUS_OFFLINE; - yahoo_login(ylad->id, login_mode); - -/* if (ylad->id <= 0) { - print_message(("Could not connect to Yahoo server. Please verify that you are connected to the net and the pager host and port are correctly entered.")); - return; - } -*/ - rearm(&pingTimer, 600); -} - -static void ext_yahoo_got_cookies(int id) -{ - /*yahoo_get_yab(id);*/ -} - -static void ext_yahoo_login_response(int id, int succ, const char *url) -{ - char buff[1024]; - - if(succ == YAHOO_LOGIN_OK) { - ylad->status = yahoo_current_status(id); - print_message(("logged in")); - return; - - } else if(succ == YAHOO_LOGIN_UNAME) { - - snprintf(buff, sizeof(buff), "Could not log into Yahoo service - username not recognised. Please verify that your username is correctly typed."); - } else if(succ == YAHOO_LOGIN_PASSWD) { - - snprintf(buff, sizeof(buff), "Could not log into Yahoo service - password incorrect. Please verify that your password is correctly typed."); - - } else if(succ == YAHOO_LOGIN_LOCK) { - - snprintf(buff, sizeof(buff), "Could not log into Yahoo service. Your account has been locked.\nVisit %s to reactivate it.", url); - - } else if(succ == YAHOO_LOGIN_DUPL) { - - snprintf(buff, sizeof(buff), "You have been logged out of the yahoo service, possibly due to a duplicate login."); - } else if(succ == YAHOO_LOGIN_SOCK) { - - snprintf(buff, sizeof(buff), "The server closed the socket."); - } else { - snprintf(buff, sizeof(buff), "Could not log in, unknown reason: %d.", succ); - } - - ylad->status = YAHOO_STATUS_OFFLINE; - print_message((buff)); - yahoo_logout(); - poll_loop=0; -} - -static void ext_yahoo_error(int id, const char *err, int fatal, int num) -{ - fprintf(stdout, "Yahoo Error: "); - fprintf(stdout, "%s", err); - switch(num) { - case E_UNKNOWN: - fprintf(stdout, "unknown error %s", err); - break; - case E_CUSTOM: - fprintf(stdout, "custom error %s", err); - break; - case E_CONFNOTAVAIL: - fprintf(stdout, "%s is not available for the conference", err); - break; - case E_IGNOREDUP: - fprintf(stdout, "%s is already ignored", err); - break; - case E_IGNORENONE: - fprintf(stdout, "%s is not in the ignore list", err); - break; - case E_IGNORECONF: - fprintf(stdout, "%s is in buddy list - cannot ignore ", err); - break; - case E_SYSTEM: - fprintf(stdout, "system error %s", err); - break; - case E_CONNECTION: - fprintf(stdout, "server connection error %s", err); - break; - } - fprintf(stdout, "\n"); - if(fatal) - yahoo_logout(); -} - -void yahoo_set_current_state(int yahoo_state) -{ - if (ylad->status == YAHOO_STATUS_OFFLINE && yahoo_state != YAHOO_STATUS_OFFLINE) { - ext_yahoo_login(ylad, yahoo_state); - return; - } else if (ylad->status != YAHOO_STATUS_OFFLINE && yahoo_state == YAHOO_STATUS_OFFLINE) { - yahoo_logout(); - return; - } - - ylad->status = yahoo_state; - if(yahoo_state == YAHOO_STATUS_CUSTOM) { - if(ylad->msg) - yahoo_set_away(ylad->id, yahoo_state, ylad->msg, 1); - else - yahoo_set_away(ylad->id, yahoo_state, "delta p * delta x too large", 1); - } else - yahoo_set_away(ylad->id, yahoo_state, NULL, 1); -} - -static int ext_yahoo_connect(const char *host, int port) -{ - WARNING(("This should not be used anymore. File a bug report.")); - return -1; -} - -/************************************* - * Callback handling code starts here - */ -YList *connections = NULL; -struct _conn { - int fd; - SSL *ssl; - int use_ssl; - int remove; -}; - -struct conn_handler { - struct _conn *con; - int id; - int tag; - yahoo_input_condition cond; - int remove; - void *data; -}; - -static int connection_tags=0; - -static int ext_yahoo_add_handler(int id, void *d, yahoo_input_condition cond, void *data) -{ - struct conn_handler *h = y_new0(struct conn_handler, 1); - - h->id = id; - h->tag = ++connection_tags; - h->con = d; - h->cond = cond; - h->data = data; - - LOG(("Add %d(%d) for %d, tag %d", h->con->fd, cond, id, h->tag)); - - connections = y_list_prepend(connections, h); - - return h->tag; -} - -static void ext_yahoo_remove_handler(int id, int tag) -{ - YList *l; - if (!tag) - return; - - for(l = connections; l; l = y_list_next(l)) { - struct conn_handler *c = l->data; - if(c->tag == tag) { - /* don't actually remove it, just mark it for removal */ - /* we'll remove when we start the next poll cycle */ - LOG(("Marking id:%d fd:%p tag:%d for removal", - c->id, c->con, c->tag)); - c->remove = 1; - return; - } - } -} - -static SSL *do_ssl_connect(int fd) -{ - SSL *ssl; - SSL_CTX *ctx; - - LOG(("SSL Handshake")); - - SSL_library_init (); - ctx = SSL_CTX_new(SSLv23_client_method()); - ssl = SSL_new(ctx); - SSL_CTX_free(ctx); - SSL_set_fd(ssl, fd); - - if (SSL_connect(ssl) == 1) - return ssl; - - return NULL; -} - -struct connect_callback_data { - yahoo_connect_callback callback; - void * callback_data; - int id; - int tag; -}; - -static void connect_complete(void *data, struct _conn *source, yahoo_input_condition condition) -{ - struct connect_callback_data *ccd = data; - int error, err_size = sizeof(error); - - ext_yahoo_remove_handler(0, ccd->tag); - getsockopt(source->fd, SOL_SOCKET, SO_ERROR, &error, (socklen_t *)&err_size); - - if(error) - goto err; - - LOG(("Connected fd: %d, error: %d", source->fd, error)); - - if (source->use_ssl) { - source->ssl = do_ssl_connect(source->fd); - - if (!source->ssl) { -err: - LOG(("SSL Handshake Failed!")); - ext_yahoo_close(source); - - ccd->callback(NULL, 0, ccd->callback_data); - FREE(ccd); - return; - } - } - - fcntl(source->fd, F_SETFL, O_NONBLOCK); - - ccd->callback(source, error, ccd->callback_data); - FREE(ccd); -} - -void yahoo_callback(struct conn_handler *c, yahoo_input_condition cond) -{ - int ret=1; - char buff[1024]={0}; - - if(c->id < 0) { - connect_complete(c->data, c->con, cond); - } else { - if(cond & YAHOO_INPUT_READ) - ret = yahoo_read_ready(c->id, c->con, c->data); - if(ret>0 && cond & YAHOO_INPUT_WRITE) - ret = yahoo_write_ready(c->id, c->con, c->data); - - if(ret == -1) - snprintf(buff, sizeof(buff), - "Yahoo read error (%d): %s", errno, strerror(errno)); - else if(ret == 0) - snprintf(buff, sizeof(buff), - "Yahoo read error: Server closed socket"); - - if(buff[0]) - print_message((buff)); - } -} - -static int ext_yahoo_write(void *fd, char *buf, int len) -{ - struct _conn *c = fd; - - if (c->use_ssl) - return SSL_write(c->ssl, buf, len); - else - return write(c->fd, buf, len); -} - -static int ext_yahoo_read(void *fd, char *buf, int len) -{ - struct _conn *c = fd; - - if (c->use_ssl) - return SSL_read(c->ssl, buf, len); - else - return read(c->fd, buf, len); -} - -static void ext_yahoo_close(void *fd) -{ - struct _conn *c = fd; - YList *l; - - if (c->use_ssl) - SSL_free(c->ssl); - - close(c->fd); - c->fd = 0; - - /* Remove all handlers */ - for (l = connections; l; l = y_list_next(l)) { - struct conn_handler *h = l->data; - - if (h->con == c) - h->remove = 1; - } - - c->remove = 1; -} - -static int ext_yahoo_connect_async(int id, const char *host, int port, - yahoo_connect_callback callback, void *data, int use_ssl) -{ - struct sockaddr_in serv_addr; - static struct hostent *server; - int servfd; - struct connect_callback_data * ccd; - int error; - SSL *ssl = NULL; - - struct _conn *c; - - LOG(("Connecting to %s:%d", host, port)); - - if(!(server = gethostbyname(host))) { - errno=h_errno; - return -1; - } - - if((servfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { - return -1; - } - - memset(&serv_addr, 0, sizeof(serv_addr)); - serv_addr.sin_family = AF_INET; - memcpy(&serv_addr.sin_addr.s_addr, *server->h_addr_list, server->h_length); - serv_addr.sin_port = htons(port); - - c = y_new0(struct _conn, 1); - c->fd = servfd; - c->use_ssl = use_ssl; - - error = connect(servfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)); - - LOG(("Trying to connect: fd:%d error:%d", servfd, error)); - if(!error) { - LOG(("Connected")); - if (use_ssl) { - ssl = do_ssl_connect(servfd); - - if (!ssl) { - LOG(("SSL Handshake Failed!")); - ext_yahoo_close(c); - - callback(NULL, 0, data); - return -1; - } - } - - c->ssl = ssl; - fcntl(c->fd, F_SETFL, O_NONBLOCK); - - callback(c, 0, data); - return 0; - } else if(error == -1 && errno == EINPROGRESS) { - ccd = calloc(1, sizeof(struct connect_callback_data)); - ccd->callback = callback; - ccd->callback_data = data; - ccd->id = id; - - ccd->tag = ext_yahoo_add_handler(-1, c, YAHOO_INPUT_WRITE, ccd); - return ccd->tag; - } else { - if(error == -1) - LOG(("Connection failure: %s", strerror(errno))); - - ext_yahoo_close(c); - - callback(NULL, errno, data); - return -1; - } -} -/* - * Callback handling code ends here - ***********************************/ - -static void process_commands(char *line) -{ - char *cmd, *to, *msg; - - char *tmp, *start; - char *copy = strdup(line); - int yid = 0; - - enum yahoo_status state; - - start = cmd = copy; - tmp = strchr(copy, ' '); - if(tmp) { - *tmp = '\0'; - copy = tmp+1; - } else { - copy = NULL; - } - - if(!strncasecmp(cmd, "MSG", strlen("MSG"))) { - /* send a message */ - to = copy; - tmp = strchr(copy, ' '); - if(tmp) { - *tmp = '\0'; - copy = tmp+1; - } - msg = copy; - if(to && msg) { - if(!strcmp(msg, "\a")) - yahoo_send_im(ylad->id, NULL, to, "", 0,0); - else { - msg = y_str_to_utf8(msg); - yahoo_send_im(ylad->id, NULL, to, msg, 1,0); - FREE(msg) - } - } - } else if(!strncasecmp(cmd, "CMS", strlen("CMS"))) { - /* send a message */ - conf_room * cr; - to = copy; - tmp = strchr(copy, ' '); - if(tmp) { - *tmp = '\0'; - copy = tmp+1; - } - msg = copy; - cr = find_conf_room_by_name_and_id(ylad->id, NULL, to); - if(!cr) { - print_message(("no such room: %s", copy)); - goto end_parse; - } - if(msg) - yahoo_conference_message(ylad->id, NULL, cr->members, to, msg, 0); - } else if(!strncasecmp(cmd, "CLS", strlen("CLS"))) { - YList * l; - if(copy) { - conf_room * cr = find_conf_room_by_name_and_id(ylad->id, NULL, copy); - if(!cr) { - print_message(("no such room: %s", copy)); - goto end_parse; - } - print_message(("Room: %s", copy)); - for(l = cr->members; l; l=l->next) { - print_message(("%s", (char *)l->data)) - } - } else { - print_message(("All Rooms:")); - for(l = conferences; l; l=l->next) { - conf_room * cr = l->data; - print_message(("%s", cr->room_name)); - } - } - - } else if(!strncasecmp(cmd, "CCR", strlen("CCR"))) { - conf_room * cr = y_new0(conf_room, 1); - while((tmp = strchr(copy, ' ')) != NULL) { - *tmp = '\0'; - if(!cr->room_name) - cr->room_name = strdup(copy); - else - cr->members = y_list_append(cr->members, - strdup(copy)); - copy = tmp+1; - } - cr->members = y_list_append(cr->members, strdup(copy)); - - if(!cr->room_name || !cr->members) { - FREE(cr); - } else { - cr->id = ylad->id; - cr->joined = 1; - conferences = y_list_append(conferences, cr); - yahoo_conference_invite(ylad->id, NULL, cr->members, cr->room_name, "Join my conference"); - cr->members = y_list_append(cr->members,strdup(ylad->yahoo_id)); - } - } else if(!strncasecmp(cmd, "CIN", strlen("CIN"))) { - conf_room * cr; - char * room=copy; - YList * l1, *l = NULL; - - while((tmp = strchr(copy, ' ')) != NULL) { - *tmp = '\0'; - copy = tmp+1; - l = y_list_append(l, copy); - } - - cr = find_conf_room_by_name_and_id(ylad->id, NULL, room); - if(!cr) { - print_message(("no such room: %s", room)); - y_list_free(l); - goto end_parse; - } - - for(l1 = l; l1; l1=l1->next) { - char * w = l1->data; - yahoo_conference_addinvite(ylad->id, NULL, w, room, cr->members, "Join my conference"); - cr->members = y_list_append(cr->members, strdup(w)); - } - y_list_free(l); - - } else if(!strncasecmp(cmd, "CLN", strlen("CLN"))) { - conf_room * cr = find_conf_room_by_name_and_id(ylad->id, NULL, copy); - YList * l; - if(!cr) { - print_message(("no such room: %s", copy)); - goto end_parse; - } - - cr->joined = 1; - for(l = cr->members; l; l=l->next) { - char * w = l->data; - if(!strcmp(w, ylad->yahoo_id)) - break; - } - if(!l) - cr->members = y_list_append(cr->members, strdup(ylad->yahoo_id)); - yahoo_conference_logon(ylad->id, NULL, cr->members, copy); - - } else if(!strncasecmp(cmd, "CLF", strlen("CLF"))) { - conf_room * cr = find_conf_room_by_name_and_id(ylad->id, NULL, copy); - - if(!cr) { - print_message(("no such room: %s", copy)); - goto end_parse; - } - - yahoo_conference_logoff(ylad->id, NULL, cr->members, copy); - - conferences = y_list_remove(conferences, cr); - FREE(cr->room_name); - FREE(cr->host); - while(cr->members) { - YList *n = cr->members->next; - FREE(cr->members->data); - FREE(cr->members); - cr->members=n; - } - FREE(cr); - - } else if(!strncasecmp(cmd, "CDC", strlen("CDC"))) { - conf_room * cr; - char * room = copy; - tmp = strchr(copy, ' '); - if(tmp) { - *tmp = '\0'; - copy = tmp+1; - msg = copy; - } else { - msg = "Thanks, but no thanks!"; - } - - cr = find_conf_room_by_name_and_id(ylad->id, NULL, room); - if(!cr) { - print_message(("no such room: %s", room)); - goto end_parse; - } - - yahoo_conference_decline(ylad->id, NULL, cr->members, room,msg); - - conferences = y_list_remove(conferences, cr); - FREE(cr->room_name); - FREE(cr->host); - while(cr->members) { - YList *n = cr->members->next; - FREE(cr->members->data); - FREE(cr->members); - cr->members=n; - } - FREE(cr); - - - } else if(!strncasecmp(cmd, "CHL", strlen("CHL"))) { - int roomid; - roomid = atoi(copy); - yahoo_get_chatrooms(ylad->id, roomid); - } else if(!strncasecmp(cmd, "CHJ", strlen("CHJ"))) { - char *roomid, *roomname; -/* Linux, FreeBSD, Solaris:1 */ -/* 1600326591 */ - roomid = copy; - tmp = strchr(copy, ' '); - if(tmp) { - *tmp = '\0'; - copy = tmp+1; - } - roomname = copy; - if(roomid && roomname) { - yahoo_chat_logon(ylad->id, NULL, roomname, roomid); - } - - } else if(!strncasecmp(cmd, "CHM", strlen("CHM"))) { - char *msg, *roomname; - roomname = copy; - tmp = strstr(copy, " "); - if(tmp) { - *tmp = '\0'; - copy = tmp+2; - } - msg = copy; - if(roomname && msg) { - yahoo_chat_message(ylad->id, NULL, roomname, msg, 1, 0); - } - - } else if(!strncasecmp(cmd, "CHX", strlen("CHX"))) { - yahoo_chat_logoff(ylad->id, NULL); - } else if(!strncasecmp(cmd, "STA", strlen("STA"))) { - if(isdigit(copy[0])) { - state = (enum yahoo_status)atoi(copy); - copy = strchr(copy, ' '); - if(state == 99) { - if(copy) - msg = copy; - else - msg = "delta x * delta p too large"; - } else - msg = NULL; - } else { - state = YAHOO_STATUS_CUSTOM; - msg = copy; - } - - yahoo_set_away(ylad->id, state, msg, 1); - - } else if(!strncasecmp(cmd, "OFF", strlen("OFF"))) { - /* go offline */ - printf("Going offline\n"); - poll_loop=0; - } else if(!strncasecmp(cmd, "IDS", strlen("IDS"))) { - /* print identities */ - const YList * ids = yahoo_get_identities(ylad->id); - printf("Identities: "); - for(; ids; ids = ids->next) - printf("%s, ", (char *)ids->data); - printf("\n"); - } else if(!strncasecmp(cmd, "AID", strlen("AID"))) { - /* activate identity */ - yahoo_set_identity_status(ylad->id, copy, 1); - } else if(!strncasecmp(cmd, "DID", strlen("DID"))) { - /* deactivate identity */ - yahoo_set_identity_status(ylad->id, copy, 0); - } else if(!strncasecmp(cmd, "LST", strlen("LST"))) { - YList * b = buddies; - for(; b; b=b->next) { - yahoo_account * ya = b->data; - if(ya->status == YAHOO_STATUS_OFFLINE) - continue; - if(ya->msg) - print_message(("%s (%s) is now %s", ya->name, ya->yahoo_id, - ya->msg)) - else - print_message(("%s (%s) is now %s", ya->name, ya->yahoo_id, - yahoo_status_code(ya->status))) - } - } else if(!strncasecmp(cmd, "NAM", strlen("NAM"))) { - struct yab * yab; - - to = copy; - tmp = strchr(copy, ' '); - if(tmp) { - *tmp = '\0'; - copy = tmp+1; - } - yid = atoi(copy); - - tmp = strchr(copy, ' '); - if(tmp) { - *tmp = '\0'; - copy = tmp+1; - } - msg = copy; - - if(to && msg) { - yab = y_new0(struct yab, 1); - yab->id = to; - yab->yid = yid; /* Only do this if you have got it from the server */ - yab->nname = msg; - yahoo_set_yab(ylad->id, yab); - FREE(yab); - } - } else if(!strncasecmp(cmd, "WCAM", strlen("WCAM"))) { - if (copy) - { - printf("Viewing webcam (%s)\n", copy); - webcam_direction = YAHOO_WEBCAM_DOWNLOAD; - yahoo_webcam_get_feed(ylad->id, copy); - } else { - printf("Starting webcam\n"); - webcam_direction = YAHOO_WEBCAM_UPLOAD; - yahoo_webcam_get_feed(ylad->id, NULL); - } - } else if(!strncasecmp(cmd, "WINV", strlen("WINV"))) { - printf("Inviting %s to view webcam\n", copy); - yahoo_webcam_invite(ylad->id, copy); - } else { - fprintf(stderr, "Unknown command: %s\n", cmd); - } - -end_parse: - FREE(start); -} - -#ifndef _WIN32 -static void local_input_callback(int source) -{ - char line[1024] = {0}; - int i; - char c; - i=0; c=0; - do { - if(read(source, &c, 1) <= 0) - c='\0'; - if(c == '\r') - continue; - if(c == '\n') - break; - if(c == '\b') { - if(!i) - continue; - c = '\0'; - i--; - } - if(c) { - line[i++] = c; - line[i]='\0'; - } - } while(i<1023 && c != '\n'); - - if(line[0]) - process_commands(line); -} -#else -#include -static void local_input_callback(char c) -{ - static char line[1024] = {0}; - static int line_length = 0; - - if (c == '\b' || (int)c == 127) { - if (line_length > 0) { - _cputs("\b \b"); - line_length--; - } - return; - } - - if (c == '\n' || c == '\r' || c == 3) { - _cputs("\n"); - line[line_length] = 0; - process_commands(line); - line_length = 0; - line[0] = 0; - return; - } - - _putch(c); - line[line_length++] = c; -} -#endif - -int main(int argc, char * argv[]) -{ - int status; - int log_level; - int lfd=0; - - fd_set inp, outp; - struct timeval tv; - -#ifndef _WIN32 - int fd_stdin = fileno(stdin); -#endif - YList *l=connections; - -#ifdef _WIN32 - WSADATA wsa; - if (WSAStartup(MAKEWORD(2,2), &wsa)) - return -1; -#endif - - ylad = y_new0(yahoo_local_account, 1); - - local_host = strdup(get_local_addresses()); - - printf("Yahoo Id: "); - scanf("%s", ylad->yahoo_id); - printf("Password: "); -#ifdef _WIN32 - scanf("%s", ylad->password); -#else - { - tcflag_t oflags; - struct termios term; - tcgetattr(fd_stdin, &term); - oflags = term.c_lflag; - term.c_lflag = oflags & ~(ECHO | ECHOK | ICANON); - term.c_cc[VTIME] = 1; - tcsetattr(fd_stdin, TCSANOW, &term); - - scanf("%s", ylad->password); - - term.c_lflag = oflags; - term.c_cc[VTIME] = 0; - tcsetattr(fd_stdin, TCSANOW, &term); - } - printf("\n"); -#endif - - printf("Initial Status: "); - scanf("%d", &status); - - printf("Log Level: "); - scanf("%d", &log_level); - do_yahoo_debug=log_level; - - register_callbacks(); - yahoo_set_log_level(log_level); - - ext_yahoo_login(ylad, status); - - while(poll_loop) { - FD_ZERO(&inp); - FD_ZERO(&outp); -#ifndef _WIN32 - FD_SET(fd_stdin, &inp); - tv.tv_sec=1; - tv.tv_usec=0; -#else - tv.tv_sec=0; - tv.tv_usec=1E4; -#endif - lfd=0; - - for(l=connections; l; ) { - struct conn_handler *c = l->data; - if(c->remove) { - YList *n = y_list_next(l); - LOG(("Removing id:%d fd:%d", c->id, c->con->fd)); - connections = y_list_remove_link(connections, l); - y_list_free_1(l); - FREE(c); - l=n; - } else { - if(c->cond & YAHOO_INPUT_READ) - FD_SET(c->con->fd, &inp); - if(c->cond & YAHOO_INPUT_WRITE) - FD_SET(c->con->fd, &outp); - if(lfd < c->con->fd) - lfd = c->con->fd; - l = y_list_next(l); - } - } - - select(lfd + 1, &inp, &outp, NULL, &tv); - time(&curTime); - -#ifndef _WIN32 - if(FD_ISSET(fd_stdin, &inp)) local_input_callback(0); -#else - if (_kbhit()) local_input_callback(_getch()); -#endif - - for(l = connections; l; l = y_list_next(l)) { - struct conn_handler *c = l->data; - if(c->con->remove) { - FREE(c->con); - c->con = NULL; - continue; - } - if(c->remove) - continue; - if(FD_ISSET(c->con->fd, &inp)) - yahoo_callback(c, YAHOO_INPUT_READ); - if(FD_ISSET(c->con->fd, &outp)) - yahoo_callback(c, YAHOO_INPUT_WRITE); - } - - if(expired(pingTimer)) yahoo_ping_timeout_callback(); - if(expired(webcamTimer)) yahoo_webcam_timeout_callback(webcam_id); - } - LOG(("Exited loop")); - - while(connections) { - YList *tmp = connections; - struct conn_handler *c = connections->data; - FREE(c); - connections = y_list_remove_link(connections, connections); - y_list_free_1(tmp); - } - - yahoo_logout(); - - FREE(ylad); - -#ifdef _WIN32 - WSACleanup(); -#endif - return 0; -} - -static void ext_yahoo_got_file(int id, const char *me, const char *who, const char *msg, const char *fname, - unsigned long fesize, char *trid) -{ - LOG(("Got a File transfer request (%s, %ld bytes) from %s", fname, fesize, who)); -} - -static void ext_yahoo_file_transfer_done(int id, int response, void *data) -{ -} - -static char *ext_yahoo_get_ip_addr(const char *domain) -{ - return NULL; -} - -static void ext_yahoo_got_ft_data(int id, const unsigned char *in, int count, void *data) -{ -} - -static void ext_yahoo_got_identities(int id, YList * ids) -{ -} - -static void ext_yahoo_chat_yahoologout(int id, const char *me) -{ - LOG(("got chat logout for %s", me)); -} - -static void ext_yahoo_chat_yahooerror(int id, const char *me) -{ - LOG(("got chat error for %s", me)); -} - -static void ext_yahoo_got_ping(int id, const char *errormsg) -{ - LOG(("got ping errormsg %s", errormsg)); -} - -static void ext_yahoo_got_search_result(int id, int found, int start, int total, YList *contacts) -{ - LOG(("got search result")); -} - -static void ext_yahoo_got_buddyicon_checksum(int id, const char *a, const char *b, int checksum) -{ - LOG(("got buddy icon checksum")); -} - -static void ext_yahoo_got_buddy_change_group(int id, const char *me, const char *who, - const char *old_group, const char *new_group) -{ -} - -static void ext_yahoo_got_buddyicon(int id, const char *a, const char *b, const char *c, int checksum) -{ - LOG(("got buddy icon")); -} - -static void ext_yahoo_buddyicon_uploaded(int id, const char *url) -{ - LOG(("buddy icon uploaded")); -} - -static void ext_yahoo_got_buddyicon_request(int id, const char *me, const char *who) -{ - LOG(("got buddy icon request from %s",who)); -} - -static void register_callbacks() -{ - static struct yahoo_callbacks yc; - - yc.ext_yahoo_login_response = ext_yahoo_login_response; - yc.ext_yahoo_got_buddies = ext_yahoo_got_buddies; - yc.ext_yahoo_got_ignore = ext_yahoo_got_ignore; - yc.ext_yahoo_got_identities = ext_yahoo_got_identities; - yc.ext_yahoo_got_cookies = ext_yahoo_got_cookies; - yc.ext_yahoo_status_changed = ext_yahoo_status_changed; - yc.ext_yahoo_got_im = ext_yahoo_got_im; - yc.ext_yahoo_got_buzz = ext_yahoo_got_buzz; - yc.ext_yahoo_got_conf_invite = ext_yahoo_got_conf_invite; - yc.ext_yahoo_conf_userdecline = ext_yahoo_conf_userdecline; - yc.ext_yahoo_conf_userjoin = ext_yahoo_conf_userjoin; - yc.ext_yahoo_conf_userleave = ext_yahoo_conf_userleave; - yc.ext_yahoo_conf_message = ext_yahoo_conf_message; - yc.ext_yahoo_chat_cat_xml = ext_yahoo_chat_cat_xml; - yc.ext_yahoo_chat_join = ext_yahoo_chat_join; - yc.ext_yahoo_chat_userjoin = ext_yahoo_chat_userjoin; - yc.ext_yahoo_chat_userleave = ext_yahoo_chat_userleave; - yc.ext_yahoo_chat_message = ext_yahoo_chat_message; - yc.ext_yahoo_chat_yahoologout = ext_yahoo_chat_yahoologout; - yc.ext_yahoo_chat_yahooerror = ext_yahoo_chat_yahooerror; - yc.ext_yahoo_got_webcam_image = ext_yahoo_got_webcam_image; - yc.ext_yahoo_webcam_invite = ext_yahoo_webcam_invite; - yc.ext_yahoo_webcam_invite_reply = ext_yahoo_webcam_invite_reply; - yc.ext_yahoo_webcam_closed = ext_yahoo_webcam_closed; - yc.ext_yahoo_webcam_viewer = ext_yahoo_webcam_viewer; - yc.ext_yahoo_webcam_data_request = ext_yahoo_webcam_data_request; - yc.ext_yahoo_got_file = ext_yahoo_got_file; - yc.ext_yahoo_got_ft_data = ext_yahoo_got_ft_data; - yc.ext_yahoo_get_ip_addr = ext_yahoo_get_ip_addr; - yc.ext_yahoo_file_transfer_done = ext_yahoo_file_transfer_done; - yc.ext_yahoo_contact_added = ext_yahoo_contact_added; - yc.ext_yahoo_rejected = ext_yahoo_rejected; - yc.ext_yahoo_typing_notify = ext_yahoo_typing_notify; - yc.ext_yahoo_game_notify = ext_yahoo_game_notify; - yc.ext_yahoo_mail_notify = ext_yahoo_mail_notify; - yc.ext_yahoo_got_search_result = ext_yahoo_got_search_result; - yc.ext_yahoo_system_message = ext_yahoo_system_message; - yc.ext_yahoo_error = ext_yahoo_error; - yc.ext_yahoo_log = ext_yahoo_log; - yc.ext_yahoo_add_handler = ext_yahoo_add_handler; - yc.ext_yahoo_remove_handler = ext_yahoo_remove_handler; - yc.ext_yahoo_connect = ext_yahoo_connect; - yc.ext_yahoo_connect_async = ext_yahoo_connect_async; - yc.ext_yahoo_read = ext_yahoo_read; - yc.ext_yahoo_write = ext_yahoo_write; - yc.ext_yahoo_close = ext_yahoo_close; - yc.ext_yahoo_got_buddyicon = ext_yahoo_got_buddyicon; - yc.ext_yahoo_got_buddyicon_checksum = ext_yahoo_got_buddyicon_checksum; - yc.ext_yahoo_buddyicon_uploaded = ext_yahoo_buddyicon_uploaded; - yc.ext_yahoo_got_buddyicon_request = ext_yahoo_got_buddyicon_request; - yc.ext_yahoo_got_ping = ext_yahoo_got_ping; - yc.ext_yahoo_got_buddy_change_group = ext_yahoo_got_buddy_change_group; - - yahoo_register_callbacks(&yc); -} - diff --git a/backends/libyahoo2/yahoo/crypt.c b/backends/libyahoo2/yahoo/crypt.c deleted file mode 100644 index 1483ac46..00000000 --- a/backends/libyahoo2/yahoo/crypt.c +++ /dev/null @@ -1,212 +0,0 @@ -/* One way encryption based on MD5 sum. - Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1996. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* warmenhoven took this file and made it work with the md5.[ch] we - * already had. isn't that lovely. people should just use linux or - * freebsd, crypt works properly on those systems. i hate solaris */ - -#if HAVE_CONFIG_H -# include -#endif - -#ifdef __APPLE__ -#define HAVE_STRING_H 1 -#endif - -#if HAVE_STRING_H -# include -#elif HAVE_STRINGS_H -# include -#endif - -#include -#include "yahoo_util.h" - -#include "md5.h" - -/* Define our magic string to mark salt for MD5 "encryption" - replacement. This is meant to be the same as for other MD5 based - encryption implementations. */ -static const char md5_salt_prefix[] = "$1$"; - -/* Table with characters for base64 transformation. */ -static const char b64t[64] = - "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - -char *yahoo_crypt(char *key, char *salt) -{ - char *buffer = NULL; - int buflen = 0; - int needed = 3 + strlen(salt) + 1 + 26 + 1; - - md5_byte_t alt_result[16]; - md5_state_t ctx; - md5_state_t alt_ctx; - size_t salt_len; - size_t key_len; - size_t cnt; - char *cp; - - if (buflen < needed) { - buflen = needed; - if ((buffer = realloc(buffer, buflen)) == NULL) - return NULL; - } - - /* Find beginning of salt string. The prefix should normally always - be present. Just in case it is not. */ - if (strncmp(md5_salt_prefix, salt, sizeof(md5_salt_prefix) - 1) == 0) - /* Skip salt prefix. */ - salt += sizeof(md5_salt_prefix) - 1; - - salt_len = MIN(strcspn(salt, "$"), 8); - key_len = strlen(key); - - /* Prepare for the real work. */ - md5_init(&ctx); - - /* Add the key string. */ - md5_append(&ctx, (md5_byte_t *)key, key_len); - - /* Because the SALT argument need not always have the salt prefix we - add it separately. */ - md5_append(&ctx, (md5_byte_t *)md5_salt_prefix, - sizeof(md5_salt_prefix) - 1); - - /* The last part is the salt string. This must be at most 8 - characters and it ends at the first `$' character (for - compatibility which existing solutions). */ - md5_append(&ctx, (md5_byte_t *)salt, salt_len); - - /* Compute alternate MD5 sum with input KEY, SALT, and KEY. The - final result will be added to the first context. */ - md5_init(&alt_ctx); - - /* Add key. */ - md5_append(&alt_ctx, (md5_byte_t *)key, key_len); - - /* Add salt. */ - md5_append(&alt_ctx, (md5_byte_t *)salt, salt_len); - - /* Add key again. */ - md5_append(&alt_ctx, (md5_byte_t *)key, key_len); - - /* Now get result of this (16 bytes) and add it to the other - context. */ - md5_finish(&alt_ctx, alt_result); - - /* Add for any character in the key one byte of the alternate sum. */ - for (cnt = key_len; cnt > 16; cnt -= 16) - md5_append(&ctx, alt_result, 16); - md5_append(&ctx, alt_result, cnt); - - /* For the following code we need a NUL byte. */ - alt_result[0] = '\0'; - - /* The original implementation now does something weird: for every 1 - bit in the key the first 0 is added to the buffer, for every 0 - bit the first character of the key. This does not seem to be - what was intended but we have to follow this to be compatible. */ - for (cnt = key_len; cnt > 0; cnt >>= 1) - md5_append(&ctx, - (cnt & 1) != 0 ? alt_result : (md5_byte_t *)key, 1); - - /* Create intermediate result. */ - md5_finish(&ctx, alt_result); - - /* Now comes another weirdness. In fear of password crackers here - comes a quite long loop which just processes the output of the - previous round again. We cannot ignore this here. */ - for (cnt = 0; cnt < 1000; ++cnt) { - /* New context. */ - md5_init(&ctx); - - /* Add key or last result. */ - if ((cnt & 1) != 0) - md5_append(&ctx, (md5_byte_t *)key, key_len); - else - md5_append(&ctx, alt_result, 16); - - /* Add salt for numbers not divisible by 3. */ - if (cnt % 3 != 0) - md5_append(&ctx, (md5_byte_t *)salt, salt_len); - - /* Add key for numbers not divisible by 7. */ - if (cnt % 7 != 0) - md5_append(&ctx, (md5_byte_t *)key, key_len); - - /* Add key or last result. */ - if ((cnt & 1) != 0) - md5_append(&ctx, alt_result, 16); - else - md5_append(&ctx, (md5_byte_t *)key, key_len); - - /* Create intermediate result. */ - md5_finish(&ctx, alt_result); - } - - /* Now we can construct the result string. It consists of three - parts. */ - - strncpy(buffer, md5_salt_prefix, MAX(0, buflen)); - cp = buffer + strlen(buffer); - buflen -= sizeof(md5_salt_prefix); - - strncpy(cp, salt, MIN((size_t) buflen, salt_len)); - cp = cp + strlen(cp); - buflen -= MIN((size_t) buflen, salt_len); - - if (buflen > 0) { - *cp++ = '$'; - --buflen; - } -#define b64_from_24bit(B2, B1, B0, N) \ - do { \ - unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \ - int n = (N); \ - while (n-- > 0 && buflen > 0) { \ - *cp++ = b64t[w & 0x3f]; \ - --buflen; \ - w >>= 6; \ - }\ - } while (0) - - b64_from_24bit(alt_result[0], alt_result[6], alt_result[12], 4); - b64_from_24bit(alt_result[1], alt_result[7], alt_result[13], 4); - b64_from_24bit(alt_result[2], alt_result[8], alt_result[14], 4); - b64_from_24bit(alt_result[3], alt_result[9], alt_result[15], 4); - b64_from_24bit(alt_result[4], alt_result[10], alt_result[5], 4); - b64_from_24bit(0, 0, alt_result[11], 2); - if (buflen <= 0) { - FREE(buffer); - } else - *cp = '\0'; /* Terminate the string. */ - - /* Clear the buffer for the intermediate result so that people - attaching to processes or reading core dumps cannot get any - information. We do it in this way to clear correct_words[] - inside the MD5 implementation as well. */ - md5_init(&ctx); - md5_finish(&ctx, alt_result); - memset(&ctx, '\0', sizeof(ctx)); - memset(&alt_ctx, '\0', sizeof(alt_ctx)); - - return buffer; -} diff --git a/backends/libyahoo2/yahoo/libyahoo2.c b/backends/libyahoo2/yahoo/libyahoo2.c deleted file mode 100644 index 46b487cc..00000000 --- a/backends/libyahoo2/yahoo/libyahoo2.c +++ /dev/null @@ -1,5524 +0,0 @@ -/* - * libyahoo2: libyahoo2.c - * - * Some code copyright (C) 2002-2004, Philip S Tellis - * YMSG16 code copyright (C) 2009, - * Siddhesh Poyarekar - * - * Yahoo Search copyright (C) 2003, Konstantin Klyagin - * - * Much of this code was taken and adapted from the yahoo module for - * gaim released under the GNU GPL. This code is also released under the - * GNU GPL. - * - * This code is derivitive of Gaim - * copyright (C) 1998-1999, Mark Spencer - * 1998-1999, Adam Fritzler - * 1998-2002, Rob Flynn - * 2000-2002, Eric Warmenhoven - * 2001-2002, Brian Macke - * 2001, Anand Biligiri S - * 2001, Valdis Kletnieks - * 2002, Sean Egan - * 2002, Toby Gray - * - * This library also uses code from other libraries, namely: - * Portions from libfaim copyright 1998, 1999 Adam Fritzler - * - * Portions of Sylpheed copyright 2000-2002 Hiroyuki Yamamoto - * - * - * YMSG16 authentication code based mostly on write-up at: - * http://www.carbonize.co.uk/ymsg16.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#if HAVE_CONFIG_H -# include -#endif - -#if __APPLE__ -#define STDC_HEADERS 1 -#endif - -#if HAVE_UNISTD_H -#include -#endif -#include -#include -#include - -#if STDC_HEADERS -# include -#else -# if !HAVE_STRCHR -# define strchr index -# define strrchr rindex -# endif -char *strchr(), *strrchr(); -# if !HAVE_MEMCPY -# define memcpy(d, s, n) bcopy ((s), (d), (n)) -# define memmove(d, s, n) bcopy ((s), (d), (n)) -# endif -#endif - -#include - -#include -#include - -#include "sha1.h" -#include "md5.h" -#include "yahoo2.h" -#include "yahoo_httplib.h" -#include "yahoo_util.h" -#include "yahoo_fn.h" - -#include "yahoo2_callbacks.h" -#include "yahoo_debug.h" -#ifdef __MINGW32__ -#define snprintf _snprintf -#define vsnprintf _vsnprintf -#endif - -struct yahoo_callbacks *yc = NULL; - -void yahoo_register_callbacks(struct yahoo_callbacks *tyc) -{ - yc = tyc; -} - -#define YAHOO_CALLBACK(x) yc->x - -static int yahoo_send_data(void *fd, void *data, int len); -static void _yahoo_http_connected(int id, void *fd, int error, void *data); -static void yahoo_connected(void *fd, int error, void *data); - -int yahoo_log_message(char *fmt, ...) -{ - char out[1024]; - va_list ap; - va_start(ap, fmt); - vsnprintf(out, sizeof(out), fmt, ap); - va_end(ap); - return YAHOO_CALLBACK(ext_yahoo_log) ("%s", out); -} - -int yahoo_connect(char *host, int port) -{ - return YAHOO_CALLBACK(ext_yahoo_connect) (host, port); -} - -static enum yahoo_log_level log_level = YAHOO_LOG_NONE; - -enum yahoo_log_level yahoo_get_log_level() -{ - return log_level; -} - -int yahoo_set_log_level(enum yahoo_log_level level) -{ - enum yahoo_log_level l = log_level; - log_level = level; - return l; -} - -/* default values for servers */ -static char *default_pager_hosts[] = { "scs.msg.yahoo.com", - "scsa.msg.yahoo.com", - "scsb.msg.yahoo.com", - "scsc.msg.yahoo.com", - NULL}; - -static int pager_port = 5050; -static int fallback_ports[] = { 23, 25, 80, 20, 119, 8001, 8002, 5050, 0 }; - -static char filetransfer_host[] = "filetransfer.msg.yahoo.com"; -static int filetransfer_port = 80; -static char webcam_host[] = "webcam.yahoo.com"; -static int webcam_port = 5100; -static char webcam_description[] = ""; -static char local_host[] = ""; -static int conn_type = Y_WCM_DSL; - -static char profile_url[] = "http://profiles.yahoo.com/"; - -struct connect_callback_data { - struct yahoo_data *yd; - int tag; - int i; - int server_i; -}; - -struct yahoo_pair { - int key; - char *value; -}; - -struct yahoo_packet { - unsigned short int service; - unsigned int status; - unsigned int id; - YList *hash; -}; - -struct yahoo_search_state { - int lsearch_type; - char *lsearch_text; - int lsearch_gender; - int lsearch_agerange; - int lsearch_photo; - int lsearch_yahoo_only; - int lsearch_nstart; - int lsearch_nfound; - int lsearch_ntotal; -}; - -struct data_queue { - unsigned char *queue; - int len; -}; - -struct yahoo_input_data { - struct yahoo_data *yd; - struct yahoo_webcam *wcm; - struct yahoo_webcam_data *wcd; - struct yahoo_search_state *ys; - - void *fd; - enum yahoo_connection_type type; - - unsigned char *rxqueue; - int rxlen; - int read_tag; - - YList *txqueues; - int write_tag; -}; - -struct yahoo_server_settings { - char *pager_host; - int pager_port; - char *filetransfer_host; - int filetransfer_port; - char *webcam_host; - int webcam_port; - char *webcam_description; - char *local_host; - int conn_type; - char **pager_host_list; -}; - -static void yahoo_process_ft_connection(struct yahoo_input_data *yid, int over); - -static void yahoo_process_filetransfer(struct yahoo_input_data *yid, - struct yahoo_packet *pkt); -static void yahoo_process_filetransferinfo(struct yahoo_input_data *yid, - struct yahoo_packet *pkt); -static void yahoo_process_filetransferaccept(struct yahoo_input_data *yid, - struct yahoo_packet *pkt); - -static void *_yahoo_default_server_settings() -{ - struct yahoo_server_settings *yss = - y_new0(struct yahoo_server_settings, 1); - - /* Give preference to the default host list - * Make sure that only one of the two is set at any time - */ - yss->pager_host = NULL; - yss->pager_host_list = default_pager_hosts; - - yss->pager_port = pager_port; - yss->filetransfer_host = strdup(filetransfer_host); - yss->filetransfer_port = filetransfer_port; - yss->webcam_host = strdup(webcam_host); - yss->webcam_port = webcam_port; - yss->webcam_description = strdup(webcam_description); - yss->local_host = strdup(local_host); - yss->conn_type = conn_type; - - return yss; -} - -static void *_yahoo_assign_server_settings(va_list ap) -{ - struct yahoo_server_settings *yss = _yahoo_default_server_settings(); - char *key; - char *svalue; - int nvalue; - char **pvalue; - - while (1) { - key = va_arg(ap, char *); - if (key == NULL) - break; - - if (!strcmp(key, "pager_host")) { - svalue = va_arg(ap, char *); - free(yss->pager_host); - yss->pager_host = strdup(svalue); - yss->pager_host_list = NULL; - } else if (!strcmp(key, "pager_host_list")) { - pvalue = va_arg(ap, char **); - yss->pager_host_list = pvalue; - free(yss->pager_host); - yss->pager_host = NULL; - } else if (!strcmp(key, "pager_port")) { - nvalue = va_arg(ap, int); - yss->pager_port = nvalue; - } else if (!strcmp(key, "filetransfer_host")) { - svalue = va_arg(ap, char *); - free(yss->filetransfer_host); - yss->filetransfer_host = strdup(svalue); - } else if (!strcmp(key, "filetransfer_port")) { - nvalue = va_arg(ap, int); - yss->filetransfer_port = nvalue; - } else if (!strcmp(key, "webcam_host")) { - svalue = va_arg(ap, char *); - free(yss->webcam_host); - yss->webcam_host = strdup(svalue); - } else if (!strcmp(key, "webcam_port")) { - nvalue = va_arg(ap, int); - yss->webcam_port = nvalue; - } else if (!strcmp(key, "webcam_description")) { - svalue = va_arg(ap, char *); - free(yss->webcam_description); - yss->webcam_description = strdup(svalue); - } else if (!strcmp(key, "local_host")) { - svalue = va_arg(ap, char *); - free(yss->local_host); - yss->local_host = strdup(svalue); - } else if (!strcmp(key, "conn_type")) { - nvalue = va_arg(ap, int); - yss->conn_type = nvalue; - } else { - WARNING(("Unknown key passed to yahoo_init, " - "perhaps you didn't terminate the list " - "with NULL")); - } - } - - return yss; -} - -static void yahoo_free_server_settings(struct yahoo_server_settings *yss) -{ - if (!yss) - return; - - free(yss->pager_host); - free(yss->filetransfer_host); - free(yss->webcam_host); - free(yss->webcam_description); - free(yss->local_host); - - free(yss); -} - -static YList *conns = NULL; -static YList *inputs = NULL; -static int last_id = 0; - -static void add_to_list(struct yahoo_data *yd) -{ - conns = y_list_prepend(conns, yd); -} - -static struct yahoo_data *find_conn_by_id(int id) -{ - YList *l; - for (l = conns; l; l = y_list_next(l)) { - struct yahoo_data *yd = l->data; - if (yd->client_id == id) - return yd; - } - return NULL; -} - -static void del_from_list(struct yahoo_data *yd) -{ - conns = y_list_remove(conns, yd); -} - -/* call repeatedly to get the next one */ -/* -static struct yahoo_input_data * find_input_by_id(int id) -{ - YList *l; - for(l = inputs; l; l = y_list_next(l)) { - struct yahoo_input_data *yid = l->data; - if(yid->yd->client_id == id) - return yid; - } - return NULL; -} -*/ - -static struct yahoo_input_data *find_input_by_id_and_webcam_user(int id, - const char *who) -{ - YList *l; - LOG(("find_input_by_id_and_webcam_user")); - for (l = inputs; l; l = y_list_next(l)) { - struct yahoo_input_data *yid = l->data; - if (yid->type == YAHOO_CONNECTION_WEBCAM - && yid->yd->client_id == id && yid->wcm && ((who - && yid->wcm->user - && !strcmp(who, yid->wcm->user)) - || !(yid->wcm->user && !who))) - return yid; - } - return NULL; -} - -static struct yahoo_input_data *find_input_by_id_and_type(int id, - enum yahoo_connection_type type) -{ - YList *l; - LOG(("find_input_by_id_and_type")); - for (l = inputs; l; l = y_list_next(l)) { - struct yahoo_input_data *yid = l->data; - if (yid->type == type && yid->yd->client_id == id) - return yid; - } - return NULL; -} - -static struct yahoo_input_data *find_input_by_id_and_fd(int id, void *fd) -{ - YList *l; - LOG(("find_input_by_id_and_fd")); - for (l = inputs; l; l = y_list_next(l)) { - struct yahoo_input_data *yid = l->data; - if (yid->fd == fd && yid->yd->client_id == id) - return yid; - } - return NULL; -} - -static int count_inputs_with_id(int id) -{ - int c = 0; - YList *l; - LOG(("counting %d", id)); - for (l = inputs; l; l = y_list_next(l)) { - struct yahoo_input_data *yid = l->data; - if (yid->yd->client_id == id) - c++; - } - LOG(("%d", c)); - return c; -} - -extern char *yahoo_crypt(char *, char *); - -/* Free a buddy list */ -static void yahoo_free_buddies(YList *list) -{ - YList *l; - - for (l = list; l; l = l->next) { - struct yahoo_buddy *bud = l->data; - if (!bud) - continue; - - FREE(bud->group); - FREE(bud->id); - FREE(bud->real_name); - if (bud->yab_entry) { - FREE(bud->yab_entry->fname); - FREE(bud->yab_entry->lname); - FREE(bud->yab_entry->nname); - FREE(bud->yab_entry->id); - FREE(bud->yab_entry->email); - FREE(bud->yab_entry->hphone); - FREE(bud->yab_entry->wphone); - FREE(bud->yab_entry->mphone); - FREE(bud->yab_entry); - } - FREE(bud); - l->data = bud = NULL; - } - - y_list_free(list); -} - -/* Free an identities list */ -static void yahoo_free_identities(YList *list) -{ - while (list) { - YList *n = list; - FREE(list->data); - list = y_list_remove_link(list, list); - y_list_free_1(n); - } -} - -/* Free webcam data */ -static void yahoo_free_webcam(struct yahoo_webcam *wcm) -{ - if (wcm) { - FREE(wcm->user); - FREE(wcm->server); - FREE(wcm->key); - FREE(wcm->description); - FREE(wcm->my_ip); - } - FREE(wcm); -} - -static void yahoo_free_data(struct yahoo_data *yd) -{ - FREE(yd->user); - FREE(yd->password); - FREE(yd->cookie_y); - FREE(yd->cookie_t); - FREE(yd->cookie_b); - FREE(yd->cookie_c); - FREE(yd->login_cookie); - FREE(yd->login_id); - - yahoo_free_buddies(yd->buddies); - yahoo_free_buddies(yd->ignore); - yahoo_free_identities(yd->identities); - - yahoo_free_server_settings(yd->server_settings); - - FREE(yd); -} - -#define YAHOO_PACKET_HDRLEN (4 + 2 + 2 + 2 + 2 + 4 + 4) - -static struct yahoo_packet *yahoo_packet_new(enum yahoo_service service, - enum ypacket_status status, int id) -{ - struct yahoo_packet *pkt = y_new0(struct yahoo_packet, 1); - - pkt->service = service; - pkt->status = status; - pkt->id = id; - - return pkt; -} - -static void yahoo_packet_hash(struct yahoo_packet *pkt, int key, - const char *value) -{ - struct yahoo_pair *pair = y_new0(struct yahoo_pair, 1); - pair->key = key; - pair->value = strdup(value); - pkt->hash = y_list_append(pkt->hash, pair); -} - -static int yahoo_packet_length(struct yahoo_packet *pkt) -{ - YList *l; - - int len = 0; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - int tmp = pair->key; - do { - tmp /= 10; - len++; - } while (tmp); - len += 2; - len += strlen(pair->value); - len += 2; - } - - return len; -} - -#define yahoo_put16(buf, data) ( \ - (*(buf) = (unsigned char)((data)>>8)&0xff), \ - (*((buf)+1) = (unsigned char)(data)&0xff), \ - 2) -#define yahoo_get16(buf) ((((*(buf))&0xff)<<8) + ((*((buf)+1)) & 0xff)) -#define yahoo_put32(buf, data) ( \ - (*((buf)) = (unsigned char)((data)>>24)&0xff), \ - (*((buf)+1) = (unsigned char)((data)>>16)&0xff), \ - (*((buf)+2) = (unsigned char)((data)>>8)&0xff), \ - (*((buf)+3) = (unsigned char)(data)&0xff), \ - 4) -#define yahoo_get32(buf) ((((*(buf) )&0xff)<<24) + \ - (((*((buf)+1))&0xff)<<16) + \ - (((*((buf)+2))&0xff)<< 8) + \ - (((*((buf)+3))&0xff))) - -static void yahoo_packet_read(struct yahoo_packet *pkt, unsigned char *data, - int len) -{ - int pos = 0; - - while (pos + 1 < len) { - char *key, *value = NULL; - int accept; - int x; - - struct yahoo_pair *pair = y_new0(struct yahoo_pair, 1); - - key = malloc(len + 1); - x = 0; - while (pos + 1 < len) { - if (data[pos] == 0xc0 && data[pos + 1] == 0x80) - break; - key[x++] = data[pos++]; - } - key[x] = 0; - pos += 2; - pair->key = strtol(key, NULL, 10); - free(key); - - accept = x; - - if (pos + 1 > len) { - /* Malformed packet! (Truncated--garbage or something) */ - accept = 0; - } - - /* if x is 0 there was no key, so don't accept it */ - if (accept) - value = malloc(len - pos + 1); - x = 0; - while (pos + 1 < len) { - if (data[pos] == 0xc0 && data[pos + 1] == 0x80) - break; - if (accept) - value[x++] = data[pos++]; - } - if (accept) - value[x] = 0; - pos += 2; - if (accept) { - pair->value = strdup(value); - FREE(value); - pkt->hash = y_list_append(pkt->hash, pair); - DEBUG_MSG(("Key: %d \tValue: %s", pair->key, - pair->value)); - } else { - FREE(pair); - } - } -} - -static void yahoo_packet_write(struct yahoo_packet *pkt, unsigned char *data) -{ - YList *l; - int pos = 0; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - unsigned char buf[100]; - - snprintf((char *)buf, sizeof(buf), "%d", pair->key); - strcpy((char *)data + pos, (char *)buf); - pos += strlen((char *)buf); - data[pos++] = 0xc0; - data[pos++] = 0x80; - - strcpy((char *)data + pos, pair->value); - pos += strlen(pair->value); - data[pos++] = 0xc0; - data[pos++] = 0x80; - } -} - -static void yahoo_dump_unhandled(struct yahoo_packet *pkt) -{ - YList *l; - - NOTICE(("Service: 0x%02x\tStatus: %d", pkt->service, pkt->status)); - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - NOTICE(("\t%d => %s", pair->key, pair->value)); - } -} - -static void yahoo_packet_dump(unsigned char *data, int len) -{ - if (yahoo_get_log_level() >= YAHOO_LOG_DEBUG) { - int i; - for (i = 0; i < len; i++) { - if ((i % 8 == 0) && i) - YAHOO_CALLBACK(ext_yahoo_log) (" "); - if ((i % 16 == 0) && i) - YAHOO_CALLBACK(ext_yahoo_log) ("\n"); - YAHOO_CALLBACK(ext_yahoo_log) ("%02x ", data[i]); - } - YAHOO_CALLBACK(ext_yahoo_log) ("\n"); - for (i = 0; i < len; i++) { - if ((i % 8 == 0) && i) - YAHOO_CALLBACK(ext_yahoo_log) (" "); - if ((i % 16 == 0) && i) - YAHOO_CALLBACK(ext_yahoo_log) ("\n"); - if (isprint(data[i])) - YAHOO_CALLBACK(ext_yahoo_log) (" %c ", data[i]); - else - YAHOO_CALLBACK(ext_yahoo_log) (" . "); - } - YAHOO_CALLBACK(ext_yahoo_log) ("\n"); - } -} - -static const char base64digits[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz" "0123456789._"; -static void to_y64(unsigned char *out, const unsigned char *in, int inlen) -/* raw bytes in quasi-big-endian order to base 64 string (NUL-terminated) */ -{ - for (; inlen >= 3; inlen -= 3) { - *out++ = base64digits[in[0] >> 2]; - *out++ = base64digits[((in[0] << 4) & 0x30) | (in[1] >> 4)]; - *out++ = base64digits[((in[1] << 2) & 0x3c) | (in[2] >> 6)]; - *out++ = base64digits[in[2] & 0x3f]; - in += 3; - } - if (inlen > 0) { - unsigned char fragment; - - *out++ = base64digits[in[0] >> 2]; - fragment = (in[0] << 4) & 0x30; - if (inlen > 1) - fragment |= in[1] >> 4; - *out++ = base64digits[fragment]; - *out++ = (inlen < 2) ? '-' : base64digits[(in[1] << 2) & 0x3c]; - *out++ = '-'; - } - *out = '\0'; -} - -static void yahoo_add_to_send_queue(struct yahoo_input_data *yid, void *data, - int length) -{ - struct data_queue *tx = y_new0(struct data_queue, 1); - tx->queue = y_new0(unsigned char, length); - tx->len = length; - memcpy(tx->queue, data, length); - - yid->txqueues = y_list_append(yid->txqueues, tx); - - if (!yid->write_tag) - yid->write_tag = - YAHOO_CALLBACK(ext_yahoo_add_handler) (yid->yd-> - client_id, yid->fd, YAHOO_INPUT_WRITE, yid); -} - -static void yahoo_send_packet(struct yahoo_input_data *yid, - struct yahoo_packet *pkt, int extra_pad) -{ - int pktlen = yahoo_packet_length(pkt); - int len = YAHOO_PACKET_HDRLEN + pktlen; - unsigned char *data; - int pos = 0; - - if (!yid->fd) - return; - - data = y_new0(unsigned char, len + 1); - - memcpy(data + pos, "YMSG", 4); - pos += 4; - pos += yahoo_put16(data + pos, YAHOO_PROTO_VER); /* version [latest 12 0x000c] */ - pos += yahoo_put16(data + pos, 0x0000); /* HIWORD pkt length??? */ - pos += yahoo_put16(data + pos, pktlen + extra_pad); /* LOWORD pkt length? */ - pos += yahoo_put16(data + pos, pkt->service); /* service */ - pos += yahoo_put32(data + pos, pkt->status); /* status [4bytes] */ - pos += yahoo_put32(data + pos, pkt->id); /* session [4bytes] */ - - yahoo_packet_write(pkt, data + pos); - - yahoo_packet_dump(data, len); - - if (yid->type == YAHOO_CONNECTION_FT) - yahoo_send_data(yid->fd, data, len); - else - yahoo_add_to_send_queue(yid, data, len); - FREE(data); -} - -static void yahoo_packet_free(struct yahoo_packet *pkt) -{ - while (pkt->hash) { - struct yahoo_pair *pair = pkt->hash->data; - YList *tmp; - FREE(pair->value); - FREE(pair); - tmp = pkt->hash; - pkt->hash = y_list_remove_link(pkt->hash, pkt->hash); - y_list_free_1(tmp); - } - FREE(pkt); -} - -static int yahoo_send_data(void *fd, void *data, int len) -{ - int ret; - int e; - - if (fd == NULL) - return -1; - - yahoo_packet_dump(data, len); - - do { - ret = YAHOO_CALLBACK(ext_yahoo_write) (fd, data, len); - } while (ret == -1 && errno == EINTR); - e = errno; - - if (ret == -1) { - LOG(("wrote data: ERR %s", strerror(errno))); - } else { - LOG(("wrote data: OK")); - } - - errno = e; - return ret; -} - -void yahoo_close(int id) -{ - struct yahoo_data *yd = find_conn_by_id(id); - if (!yd) - return; - - del_from_list(yd); - - yahoo_free_data(yd); - if (id == last_id) - last_id--; -} - -static void yahoo_input_close(struct yahoo_input_data *yid) -{ - inputs = y_list_remove(inputs, yid); - - LOG(("yahoo_input_close(read)")); - YAHOO_CALLBACK(ext_yahoo_remove_handler) (yid->yd->client_id, - yid->read_tag); - LOG(("yahoo_input_close(write)")); - YAHOO_CALLBACK(ext_yahoo_remove_handler) (yid->yd->client_id, - yid->write_tag); - yid->read_tag = yid->write_tag = 0; - if (yid->fd) - YAHOO_CALLBACK(ext_yahoo_close) (yid->fd); - yid->fd = 0; - FREE(yid->rxqueue); - if (count_inputs_with_id(yid->yd->client_id) == 0) { - LOG(("closing %d", yid->yd->client_id)); - yahoo_close(yid->yd->client_id); - } - yahoo_free_webcam(yid->wcm); - if (yid->wcd) - FREE(yid->wcd); - if (yid->ys) { - FREE(yid->ys->lsearch_text); - FREE(yid->ys); - } - FREE(yid); -} - -static int is_same_bud(const void *a, const void *b) -{ - const struct yahoo_buddy *subject = a; - const struct yahoo_buddy *object = b; - - return strcmp(subject->id, object->id); -} - -static char *getcookie(char *rawcookie) -{ - char *cookie = NULL; - char *tmpcookie; - char *cookieend; - - if (strlen(rawcookie) < 2) - return NULL; - - tmpcookie = strdup(rawcookie + 2); - cookieend = strchr(tmpcookie, ';'); - - if (cookieend) - *cookieend = '\0'; - - cookie = strdup(tmpcookie); - FREE(tmpcookie); - /* cookieend=NULL; not sure why this was there since the value is not preserved in the stack -dd */ - - return cookie; -} - -static char *getlcookie(char *cookie) -{ - char *tmp; - char *tmpend; - char *login_cookie = NULL; - - tmpend = strstr(cookie, "n="); - if (tmpend) { - tmp = strdup(tmpend + 2); - tmpend = strchr(tmp, '&'); - if (tmpend) - *tmpend = '\0'; - login_cookie = strdup(tmp); - FREE(tmp); - } - - return login_cookie; -} - -static void yahoo_process_notify(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - char *msg = NULL; - char *from = NULL; - char *to = NULL; - int stat = 0; - int accept = 0; - char *ind = NULL; - YList *l; - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 4) - from = pair->value; - if (pair->key == 5) - to = pair->value; - if (pair->key == 49) - msg = pair->value; - if (pair->key == 13) - stat = atoi(pair->value); - if (pair->key == 14) - ind = pair->value; - if (pair->key == 16) { /* status == -1 */ - NOTICE((pair->value)); - return; - } - - } - - if (!msg) - return; - - if (!strncasecmp(msg, "TYPING", strlen("TYPING"))) - YAHOO_CALLBACK(ext_yahoo_typing_notify) (yd->client_id, to, - from, stat); - else if (!strncasecmp(msg, "GAME", strlen("GAME"))) - YAHOO_CALLBACK(ext_yahoo_game_notify) (yd->client_id, to, from, - stat, ind); - else if (!strncasecmp(msg, "WEBCAMINVITE", strlen("WEBCAMINVITE"))) { - if (!strcmp(ind, " ")) { - YAHOO_CALLBACK(ext_yahoo_webcam_invite) (yd->client_id, - to, from); - } else { - accept = atoi(ind); - /* accept the invitation (-1 = deny 1 = accept) */ - if (accept < 0) - accept = 0; - YAHOO_CALLBACK(ext_yahoo_webcam_invite_reply) (yd-> - client_id, to, from, accept); - } - } else - LOG(("Got unknown notification: %s", msg)); -} - -static void yahoo_process_conference(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - char *msg = NULL; - char *host = NULL; - char *who = NULL; - char *room = NULL; - char *id = NULL; - int utf8 = 0; - YList *members = NULL; - YList *l; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 50) - host = pair->value; - - if (pair->key == 52) { /* invite */ - members = y_list_append(members, strdup(pair->value)); - } - if (pair->key == 53) /* logon */ - who = pair->value; - if (pair->key == 54) /* decline */ - who = pair->value; - if (pair->key == 55) /* unavailable (status == 2) */ - who = pair->value; - if (pair->key == 56) /* logoff */ - who = pair->value; - - if (pair->key == 57) - room = pair->value; - - if (pair->key == 58) /* join message */ - msg = pair->value; - if (pair->key == 14) /* decline/conf message */ - msg = pair->value; - - if (pair->key == 13) ; - if (pair->key == 16) /* error */ - msg = pair->value; - - if (pair->key == 1) /* my id */ - id = pair->value; - if (pair->key == 3) /* message sender */ - who = pair->value; - - if (pair->key == 97) - utf8 = atoi(pair->value); - } - - if (!room) - return; - - if (host) { - for (l = members; l; l = l->next) { - char *w = l->data; - if (!strcmp(w, host)) - break; - } - if (!l) - members = y_list_append(members, strdup(host)); - } - /* invite, decline, join, left, message -> status == 1 */ - - switch (pkt->service) { - case YAHOO_SERVICE_CONFINVITE: - if (pkt->status == 2) ; - else if (members) - YAHOO_CALLBACK(ext_yahoo_got_conf_invite) (yd-> - client_id, id, host, room, msg, members); - else if (msg) - YAHOO_CALLBACK(ext_yahoo_error) (yd->client_id, msg, 0, - E_CONFNOTAVAIL); - break; - case YAHOO_SERVICE_CONFADDINVITE: - if (pkt->status == 1) - YAHOO_CALLBACK(ext_yahoo_got_conf_invite) (yd-> - client_id, id, host, room, msg, members); - break; - case YAHOO_SERVICE_CONFDECLINE: - if (who) - YAHOO_CALLBACK(ext_yahoo_conf_userdecline) (yd-> - client_id, id, who, room, msg); - break; - case YAHOO_SERVICE_CONFLOGON: - if (who) - YAHOO_CALLBACK(ext_yahoo_conf_userjoin) (yd->client_id, - id, who, room); - break; - case YAHOO_SERVICE_CONFLOGOFF: - if (who) - YAHOO_CALLBACK(ext_yahoo_conf_userleave) (yd->client_id, - id, who, room); - break; - case YAHOO_SERVICE_CONFMSG: - if (who) - YAHOO_CALLBACK(ext_yahoo_conf_message) (yd->client_id, - id, who, room, msg, utf8); - break; - } -} - -static void yahoo_process_chat(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - char *msg = NULL; - char *id = NULL; - char *who = NULL; - char *room = NULL; - char *topic = NULL; - YList *members = NULL; - struct yahoo_chat_member *currentmember = NULL; - int msgtype = 1; - int utf8 = 0; - int firstjoin = 0; - int membercount = 0; - int chaterr = 0; - YList *l; - - yahoo_dump_unhandled(pkt); - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - - if (pair->key == 1) { - /* My identity */ - id = pair->value; - } - - if (pair->key == 104) { - /* Room name */ - room = pair->value; - } - - if (pair->key == 105) { - /* Room topic */ - topic = pair->value; - } - - if (pair->key == 108) { - /* Number of members in this packet */ - membercount = atoi(pair->value); - } - - if (pair->key == 109) { - /* message sender */ - who = pair->value; - - if (pkt->service == YAHOO_SERVICE_CHATJOIN) { - currentmember = - y_new0(struct yahoo_chat_member, 1); - currentmember->id = strdup(pair->value); - members = y_list_append(members, currentmember); - } - } - - if (pair->key == 110) { - /* age */ - if (pkt->service == YAHOO_SERVICE_CHATJOIN) - currentmember->age = atoi(pair->value); - } - - if (pair->key == 113) { - /* attribs */ - if (pkt->service == YAHOO_SERVICE_CHATJOIN) - currentmember->attribs = atoi(pair->value); - } - - if (pair->key == 141) { - /* alias */ - if (pkt->service == YAHOO_SERVICE_CHATJOIN) - currentmember->alias = strdup(pair->value); - } - - if (pair->key == 142) { - /* location */ - if (pkt->service == YAHOO_SERVICE_CHATJOIN) - currentmember->location = strdup(pair->value); - } - - if (pair->key == 130) { - /* first join */ - firstjoin = 1; - } - - if (pair->key == 117) { - /* message */ - msg = pair->value; - } - - if (pair->key == 124) { - /* Message type */ - msgtype = atoi(pair->value); - } - if (pair->key == 114) { - /* message error not sure what all the pair values mean */ - /* but -1 means no session in room */ - chaterr = atoi(pair->value); - } - } - - if (!room) { - if (pkt->service == YAHOO_SERVICE_CHATLOGOUT) { /* yahoo originated chat logout */ - YAHOO_CALLBACK(ext_yahoo_chat_yahoologout) (yid->yd-> - client_id, id); - return; - } - if (pkt->service == YAHOO_SERVICE_COMMENT && chaterr) { - YAHOO_CALLBACK(ext_yahoo_chat_yahooerror) (yid->yd-> - client_id, id); - return; - } - - WARNING(("We didn't get a room name, ignoring packet")); - return; - } - - switch (pkt->service) { - case YAHOO_SERVICE_CHATJOIN: - if (y_list_length(members) != membercount) { - WARNING(("Count of members doesn't match No. of members we got")); - } - if (firstjoin && members) { - YAHOO_CALLBACK(ext_yahoo_chat_join) (yid->yd->client_id, - id, room, topic, members, yid->fd); - } else if (who) { - if (y_list_length(members) != 1) { - WARNING(("Got more than 1 member on a normal join")); - } - /* this should only ever have one, but just in case */ - while (members) { - YList *n = members->next; - currentmember = members->data; - YAHOO_CALLBACK(ext_yahoo_chat_userjoin) (yid-> - yd->client_id, id, room, currentmember); - y_list_free_1(members); - members = n; - } - } - break; - case YAHOO_SERVICE_CHATEXIT: - if (who) { - YAHOO_CALLBACK(ext_yahoo_chat_userleave) (yid->yd-> - client_id, id, room, who); - } - break; - case YAHOO_SERVICE_COMMENT: - if (who) { - YAHOO_CALLBACK(ext_yahoo_chat_message) (yid->yd-> - client_id, id, who, room, msg, msgtype, utf8); - } - break; - } -} - -static void yahoo_process_message(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - YList *l; - YList *messages = NULL; - - struct m { - int i_31; - int i_32; - char *to; - char *from; - long tm; - char *msg; - int utf8; - char *gunk; - } *message = y_new0(struct m, 1); - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 1 || pair->key == 4) { - if (!message->from) - message->from = pair->value; - } else if (pair->key == 5) - message->to = pair->value; - else if (pair->key == 15) - message->tm = strtol(pair->value, NULL, 10); - else if (pair->key == 97) - message->utf8 = atoi(pair->value); - /* This comes when the official client sends us a message */ - else if (pair->key == 429) - message->gunk = pair->value; - /* user message *//* sys message */ - else if (pair->key == 14 || pair->key == 16) - message->msg = pair->value; - else if (pair->key == 31) { - if (message->i_31) { - messages = y_list_append(messages, message); - message = y_new0(struct m, 1); - } - message->i_31 = atoi(pair->value); - } else if (pair->key == 32) - message->i_32 = atoi(pair->value); - else - LOG(("yahoo_process_message: status: %d, key: %d, value: %s", pkt->status, pair->key, pair->value)); - } - - messages = y_list_append(messages, message); - - for (l = messages; l; l = l->next) { - message = l->data; - if (pkt->service == YAHOO_SERVICE_SYSMESSAGE) { - YAHOO_CALLBACK(ext_yahoo_system_message) (yd->client_id, - message->to, message->from, message->msg); - } else if (pkt->status <= 2 || pkt->status == 5) { - /* Confirm message receipt if we got the gunk */ - if(message->gunk) { - struct yahoo_packet *outpkt; - - outpkt = yahoo_packet_new(YAHOO_SERVICE_MESSAGE_CONFIRM, - YPACKET_STATUS_DEFAULT, 0); - yahoo_packet_hash(outpkt, 1, yd->user); - yahoo_packet_hash(outpkt, 5, message->from); - yahoo_packet_hash(outpkt, 302, "430"); - yahoo_packet_hash(outpkt, 430, message->gunk); - yahoo_packet_hash(outpkt, 303, "430"); - yahoo_packet_hash(outpkt, 450, "0"); - yahoo_send_packet(yid, outpkt, 0); - - yahoo_packet_free(outpkt); - } - - if (!strcmp(message->msg, "")) - YAHOO_CALLBACK(ext_yahoo_got_buzz) (yd->client_id, - message->to, message->from, message->tm); - else - YAHOO_CALLBACK(ext_yahoo_got_im) (yd->client_id, - message->to, message->from, message->msg, - message->tm, pkt->status, message->utf8); - } else if (pkt->status == 0xffffffff) { - YAHOO_CALLBACK(ext_yahoo_error) (yd->client_id, - message->msg, 0, E_SYSTEM); - } - FREE(message); - } - - y_list_free(messages); -} - -/* - * Here's what multi-level packets look like. Data in brackets is the value. - * - * 3 level: - * ======= - * - * 302 (318) - Beginning level 1 - * 300 (318) - Begin level 2 - * 302 (319) - End level 2 header - * 300 (319) - Begin level 3 - * 301 (319) - End level 3 - * 303 (319) - End level 2 - * 303 (318) - End level 1 - * - * 2 level: - * ======= - * - * 302 (315) - Beginning level 1 - * 300 (315) - Begin level 2 - * 301 (315) - End level 2 - * 303 (315) - End level 1 - * - */ -static void yahoo_process_status(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - YList *l; - struct yahoo_data *yd = yid->yd; - - struct yahoo_process_status_entry *u; - - YList *users = 0; - - if (pkt->service == YAHOO_SERVICE_LOGOFF && pkt->status == -1) { - YAHOO_CALLBACK(ext_yahoo_login_response) (yd->client_id, - YAHOO_LOGIN_DUPL, NULL); - return; - } - - /* - * Status updates may be spread accross multiple packets and not - * even on buddy boundaries, so keeping some state is important. - * So, continue where we left off, and only add a user entry to - * the list once it's complete (301-315 End buddy). - */ - u = yd->half_user; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - - switch (pair->key) { - case 300: /* Begin buddy */ - if (!strcmp(pair->value, "315") && !u) { - u = yd->half_user = y_new0(struct yahoo_process_status_entry, 1); - } - break; - case 301: /* End buddy */ - if (!strcmp(pair->value, "315") && u) { - users = y_list_prepend(users, u); - u = yd->half_user = NULL; - } - break; - case 0: /* we won't actually do anything with this */ - NOTICE(("key %d:%s", pair->key, pair->value)); - break; - case 1: /* we don't get the full buddy list here. */ - if (!yd->logged_in) { - yd->logged_in = 1; - if (yd->current_status < 0) - yd->current_status = yd->initial_status; - YAHOO_CALLBACK(ext_yahoo_login_response) (yd-> - client_id, YAHOO_LOGIN_OK, NULL); - } - break; - case 8: /* how many online buddies we have */ - NOTICE(("key %d:%s", pair->key, pair->value)); - break; - case 7: /* the current buddy */ - if (!u) { - /* This will only happen in case of a single level message */ - u = y_new0(struct yahoo_process_status_entry, 1); - users = y_list_prepend(users, u); - } - u->name = pair->value; - break; - case 10: /* state */ - u->state = strtol(pair->value, NULL, 10); - break; - case 19: /* custom status message */ - u->msg = pair->value; - break; - case 47: /* is it an away message or not. Not applicable for YMSG16 anymore */ - u->away = atoi(pair->value); - break; - case 137: /* seconds idle */ - u->idle = atoi(pair->value); - break; - case 11: /* this is the buddy's session id */ - u->buddy_session = atoi(pair->value); - break; - case 17: /* in chat? */ - u->f17 = atoi(pair->value); - break; - case 13: /* bitmask, bit 0 = pager, bit 1 = chat, bit 2 = game */ - u->flags = atoi(pair->value); - break; - case 60: /* SMS -> 1 MOBILE USER */ - /* sometimes going offline makes this 2, but invisible never sends it */ - u->mobile = atoi(pair->value); - break; - case 138: - u->f138 = atoi(pair->value); - break; - case 184: - u->f184 = pair->value; - break; - case 192: - u->f192 = atoi(pair->value); - break; - case 10001: - u->f10001 = atoi(pair->value); - break; - case 10002: - u->f10002 = atoi(pair->value); - break; - case 198: - u->f198 = atoi(pair->value); - break; - case 197: - u->f197 = pair->value; - break; - case 205: - u->f205 = pair->value; - break; - case 213: - u->f213 = atoi(pair->value); - break; - case 16: /* Custom error message */ - YAHOO_CALLBACK(ext_yahoo_error) (yd->client_id, - pair->value, 0, E_CUSTOM); - break; - default: - WARNING(("unknown status key %d:%s", pair->key, - pair->value)); - break; - } - } - - while (users) { - YList *t = users; - struct yahoo_process_status_entry *u = users->data; - - if (u->name != NULL) { - if (pkt->service == - YAHOO_SERVICE_LOGOFF - /*|| u->flags == 0 No flags for YMSG16 */ ) { - YAHOO_CALLBACK(ext_yahoo_status_changed) (yd-> - client_id, u->name, - YAHOO_STATUS_OFFLINE, NULL, 1, 0, 0); - } else { - /* Key 47 always seems to be 1 for YMSG16 */ - if (!u->state) - u->away = 0; - else - u->away = 1; - - YAHOO_CALLBACK(ext_yahoo_status_changed) (yd-> - client_id, u->name, u->state, u->msg, - u->away, u->idle, u->mobile); - } - } - - users = y_list_remove_link(users, users); - y_list_free_1(t); - FREE(u); - } -} - -static void yahoo_process_buddy_list(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - YList *l; - int last_packet = 0; - char *cur_group = NULL; - struct yahoo_buddy *newbud = NULL; - - /* we could be getting multiple packets here */ - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - - switch (pair->key) { - case 300: - case 301: - case 302: - break; /* Separators. Our logic does not need them */ - case 303: - if (318 == atoi(pair->value)) - last_packet = 1; - break; - case 65: - cur_group = strdup(pair->value); - break; - case 7: - newbud = y_new0(struct yahoo_buddy, 1); - newbud->id = strdup(pair->value); - if (cur_group) - newbud->group = strdup(cur_group); - else if (yd->buddies) { - struct yahoo_buddy *lastbud = - (struct yahoo_buddy *)y_list_nth(yd-> - buddies, - y_list_length(yd->buddies) - 1)->data; - newbud->group = strdup(lastbud->group); - } else - newbud->group = strdup("Buddies"); - - yd->buddies = y_list_append(yd->buddies, newbud); - - break; - } - } - - /* we could be getting multiple packets here */ - if (pkt->hash && !last_packet) - return; - - /* Logged in */ - if (!yd->logged_in) { - yd->logged_in = 1; - if (yd->current_status < 0) - yd->current_status = yd->initial_status; - YAHOO_CALLBACK(ext_yahoo_login_response) (yd->client_id, - YAHOO_LOGIN_OK, NULL); - - yahoo_set_away(yd->client_id, yd->initial_status, NULL, - (yd->initial_status == YAHOO_STATUS_AVAILABLE) ? 0 : 1); - - yahoo_get_yab(yd->client_id); - } - - YAHOO_CALLBACK(ext_yahoo_got_buddies) (yd->client_id, yd->buddies); - -} - -static void yahoo_process_list(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - YList *l; - - /* we could be getting multiple packets here */ - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - - switch (pair->key) { - case 89: /* identities */ - { - char **identities = - y_strsplit(pair->value, ",", -1); - int i; - for (i = 0; identities[i]; i++) - yd->identities = - y_list_append(yd->identities, - strdup(identities[i])); - y_strfreev(identities); - } - YAHOO_CALLBACK(ext_yahoo_got_identities) (yd->client_id, - yd->identities); - break; - case 59: /* cookies */ - if (pair->value[0] == 'Y') { - FREE(yd->cookie_y); - FREE(yd->login_cookie); - - yd->cookie_y = getcookie(pair->value); - yd->login_cookie = getlcookie(yd->cookie_y); - - } else if (pair->value[0] == 'T') { - FREE(yd->cookie_t); - yd->cookie_t = getcookie(pair->value); - - } else if (pair->value[0] == 'C') { - FREE(yd->cookie_c); - yd->cookie_c = getcookie(pair->value); - } - - break; - case 3: /* my id */ - case 90: /* 1 */ - case 100: /* 0 */ - case 101: /* NULL */ - case 102: /* NULL */ - case 93: /* 86400/1440 */ - break; - } - } - - if (yd->cookie_y && yd->cookie_t) /* We don't get cookie_c anymore */ - YAHOO_CALLBACK(ext_yahoo_got_cookies) (yd->client_id); -} - -static void yahoo_process_verify(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - - if (pkt->status != 0x01) { - DEBUG_MSG(("expected status: 0x01, got: %d", pkt->status)); - YAHOO_CALLBACK(ext_yahoo_login_response) (yd->client_id, - YAHOO_LOGIN_LOCK, ""); - return; - } - - pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); - -} - -static void yahoo_process_picture_checksum(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - char *from; - char *to; - int checksum = 0; - YList *l; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - - switch (pair->key) { - case 1: - case 4: - from = pair->value; - case 5: - to = pair->value; - break; - case 212: - break; - case 192: - checksum = atoi(pair->value); - break; - } - } - - YAHOO_CALLBACK(ext_yahoo_got_buddyicon_checksum) (yd->client_id, to, - from, checksum); -} - -static void yahoo_process_picture(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - char *url; - char *from; - char *to; - int status = 0; - int checksum = 0; - YList *l; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - - switch (pair->key) { - case 1: - case 4: /* sender */ - from = pair->value; - break; - case 5: /* we */ - to = pair->value; - break; - case 13: /* request / sending */ - status = atoi(pair->value); - break; - case 20: /* url */ - url = pair->value; - break; - case 192: /*checksum */ - checksum = atoi(pair->value); - break; - } - } - - switch (status) { - case 1: /* this is a request, ignore for now */ - YAHOO_CALLBACK(ext_yahoo_got_buddyicon_request) (yd->client_id, - to, from); - break; - case 2: /* this is cool - we get a picture :) */ - YAHOO_CALLBACK(ext_yahoo_got_buddyicon) (yd->client_id, to, - from, url, checksum); - break; - } -} - -static void yahoo_process_picture_upload(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - YList *l; - char *url; - - if (pkt->status != 1) - return; /* something went wrong */ - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - - switch (pair->key) { - case 5: /* we */ - break; - case 20: /* url */ - url = pair->value; - break; - case 27: /* local filename */ - break; - case 38: /* time */ - break; - } - } - - YAHOO_CALLBACK(ext_yahoo_buddyicon_uploaded) (yd->client_id, url); -} - -void yahoo_login(int id, int initial) -{ - struct yahoo_data *yd = find_conn_by_id(id); - struct connect_callback_data *ccd; - struct yahoo_server_settings *yss; - int tag; - - char *host; - - struct yahoo_input_data *yid = y_new0(struct yahoo_input_data, 1); - yid->yd = yd; - yid->type = YAHOO_CONNECTION_PAGER; - inputs = y_list_prepend(inputs, yid); - - yd->initial_status = initial; - yss = yd->server_settings; - - ccd = y_new0(struct connect_callback_data, 1); - ccd->yd = yd; - - host = yss->pager_host; - - if (!host) - host = yss->pager_host_list[0]; - - tag = YAHOO_CALLBACK(ext_yahoo_connect_async) (yd->client_id, - host, yss->pager_port, yahoo_connected, ccd, 0); - - /* - * if tag <= 0, then callback has already been called - * so ccd will have been freed - */ - if (tag > 0) - ccd->tag = tag; - else if (tag < 0) - YAHOO_CALLBACK(ext_yahoo_login_response) (yd->client_id, - YAHOO_LOGIN_SOCK, NULL); -} - -static void yahoo_auth_https(struct yahoo_data *yd) -{ - char url[256]; - char *user_encoded, *pass_encoded, *seed_encoded; - - struct yahoo_input_data *yid = y_new0(struct yahoo_input_data, 1); - - yid->yd = yd; - yid->type = YAHOO_CONNECTION_AUTH; - - inputs = y_list_prepend(inputs, yid); - - user_encoded = yahoo_urlencode(yid->yd->user); - pass_encoded = yahoo_urlencode(yid->yd->password); - seed_encoded = yahoo_urlencode(yid->yd->seed); - - snprintf(url, sizeof(url), - "https://login.yahoo.com/config/pwtoken_get?src=ymsgr&ts=" - "&login=%s&passwd=%s&chal=%s", user_encoded, pass_encoded, - seed_encoded); - - yahoo_http_get(yid->yd->client_id, url, NULL, 1, 0, - _yahoo_http_connected, yid); - - FREE(user_encoded); - FREE(pass_encoded); - FREE(seed_encoded); -} - -static void yahoo_process_auth(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - char *seed = NULL; - char *sn = NULL; - YList *l = pkt->hash; - int m = 0; - struct yahoo_data *yd = yid->yd; - - while (l) { - struct yahoo_pair *pair = l->data; - - switch (pair->key) { - case 94: - seed = pair->value; - break; - case 1: - sn = pair->value; - break; - case 13: - m = atoi(pair->value); - break; - } - l = l->next; - } - - if (!seed) - return; - - yd->seed = strdup(seed); - - if (m==2) - yahoo_auth_https(yd); - else { - /* call error */ - WARNING(("unknown auth type %d", m)); - YAHOO_CALLBACK(ext_yahoo_login_response) (yd->client_id, - YAHOO_LOGIN_UNKNOWN, NULL); - } -} - -static void yahoo_send_auth(struct yahoo_data *yd) -{ - - struct yahoo_packet *packet; - - unsigned char crypt_hash[25]; - - md5_byte_t result[16]; - md5_state_t ctx; - - struct yahoo_input_data *yid = - find_input_by_id_and_type(yd->client_id, - YAHOO_CONNECTION_PAGER); - - /* HTTPS */ - md5_init(&ctx); - md5_append(&ctx, (md5_byte_t *)yd->crumb, strlen(yd->crumb)); - md5_append(&ctx, (md5_byte_t *)yd->seed, strlen(yd->seed)); - md5_finish(&ctx, result); - - to_y64(crypt_hash, result, 16); - - packet = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, - yd->initial_status, yd->session_id); - yahoo_packet_hash(packet, 1, yd->user); - yahoo_packet_hash(packet, 0, yd->user); - yahoo_packet_hash(packet, 277, yd->cookie_y); - yahoo_packet_hash(packet, 278, yd->cookie_t); - yahoo_packet_hash(packet, 307, (char *)crypt_hash); - yahoo_packet_hash(packet, 244, "4194239"); /* Rekkanoryo says this is the build number */ - yahoo_packet_hash(packet, 2, yd->user); - yahoo_packet_hash(packet, 2, "1"); - yahoo_packet_hash(packet, 59, yd->cookie_b); - yahoo_packet_hash(packet, 98, "us"); /* TODO Put country code */ - yahoo_packet_hash(packet, 135, "9.0.0.2152"); - - yahoo_send_packet(yid, packet, 0); - - yahoo_packet_free(packet); -} - -static void yahoo_process_auth_resp(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - char *login_id; - char *handle; - char *url = NULL; - int login_status = -1; - - YList *l; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 0) - login_id = pair->value; - else if (pair->key == 1) - handle = pair->value; - else if (pair->key == 20) - url = pair->value; - else if (pair->key == 66) - login_status = atoi(pair->value); - } - - if (pkt->status == YPACKET_STATUS_DISCONNECTED) { - YAHOO_CALLBACK(ext_yahoo_login_response) (yd->client_id, - login_status, url); - /* yahoo_logoff(yd->client_id); */ - } -} - -static void yahoo_process_mail(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - char *who = NULL; - char *email = NULL; - char *subj = NULL; - int count = 0; - YList *l; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 9) - count = strtol(pair->value, NULL, 10); - else if (pair->key == 43) - who = pair->value; - else if (pair->key == 42) - email = pair->value; - else if (pair->key == 18) - subj = pair->value; - else - LOG(("key: %d => value: %s", pair->key, pair->value)); - } - - if (who && email && subj) { - char from[1024]; - snprintf(from, sizeof(from), "%s (%s)", who, email); - YAHOO_CALLBACK(ext_yahoo_mail_notify) (yd->client_id, from, - subj, count); - } else if (count > 0) - YAHOO_CALLBACK(ext_yahoo_mail_notify) (yd->client_id, NULL, - NULL, count); -} - -static void yahoo_process_new_contact(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - char *me = NULL; - char *who = NULL; - char *msg = NULL; - int online = -1; - - YList *l; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 4) - who = pair->value; - else if (pair->key == 5) - me = pair->value; - else if (pair->key == 14) - msg = pair->value; - else if (pair->key == 13) - online = strtol(pair->value, NULL, 10); - } - - if (who && online < 0) - YAHOO_CALLBACK(ext_yahoo_contact_added) (yd->client_id, me, who, - msg); - else if (online == 2) - YAHOO_CALLBACK(ext_yahoo_rejected) (yd->client_id, who, msg); -} - -/* UNUSED? */ -static void yahoo_process_contact(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - char *id = NULL; - char *who = NULL; - char *msg = NULL; - char *name = NULL; - long tm = 0L; - int state = YAHOO_STATUS_AVAILABLE; - int online = 0; - int away = 0; - int idle = 0; - int mobile = 0; - - YList *l; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 1) - id = pair->value; - else if (pair->key == 3) - who = pair->value; - else if (pair->key == 14) - msg = pair->value; - else if (pair->key == 7) - name = pair->value; - else if (pair->key == 10) - state = strtol(pair->value, NULL, 10); - else if (pair->key == 15) - tm = strtol(pair->value, NULL, 10); - else if (pair->key == 13) - online = strtol(pair->value, NULL, 10); - else if (pair->key == 47) - away = strtol(pair->value, NULL, 10); - else if (pair->key == 137) - idle = strtol(pair->value, NULL, 10); - else if (pair->key == 60) - mobile = strtol(pair->value, NULL, 10); - - } - - if (id) - YAHOO_CALLBACK(ext_yahoo_contact_added) (yd->client_id, id, who, - msg); - else if (name) - YAHOO_CALLBACK(ext_yahoo_status_changed) (yd->client_id, name, - state, msg, away, idle, mobile); - else if (pkt->status == 0x07) - YAHOO_CALLBACK(ext_yahoo_rejected) (yd->client_id, who, msg); -} - -static void yahoo_process_buddyadd(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - char *who = NULL; - char *where = NULL; - int status = 0; - char *me = NULL; - - struct yahoo_buddy *bud = NULL; - - YList *l; - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 1) - me = pair->value; - if (pair->key == 7) - who = pair->value; - if (pair->key == 65) - where = pair->value; - if (pair->key == 66) - status = strtol(pair->value, NULL, 10); - } - - if (!who) - return; - if (!where) - where = "Unknown"; - - bud = y_new0(struct yahoo_buddy, 1); - bud->id = strdup(who); - bud->group = strdup(where); - bud->real_name = NULL; - - yd->buddies = y_list_append(yd->buddies, bud); - - /* A non-zero status (i've seen 2) seems to mean the buddy is already - * added and is online */ - if (status) { - LOG(("Setting online see packet for info")); - yahoo_dump_unhandled(pkt); - YAHOO_CALLBACK(ext_yahoo_status_changed) (yd->client_id, who, - YAHOO_STATUS_AVAILABLE, NULL, 0, 0, 0); - } -} - -static void yahoo_process_buddydel(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - struct yahoo_data *yd = yid->yd; - char *who = NULL; - char *where = NULL; - int unk_66 = 0; - char *me = NULL; - struct yahoo_buddy *bud; - - YList *buddy; - - YList *l; - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 1) - me = pair->value; - else if (pair->key == 7) - who = pair->value; - else if (pair->key == 65) - where = pair->value; - else if (pair->key == 66) - unk_66 = strtol(pair->value, NULL, 10); - else - DEBUG_MSG(("unknown key: %d = %s", pair->key, - pair->value)); - } - - if (!who || !where) - return; - - bud = y_new0(struct yahoo_buddy, 1); - bud->id = strdup(who); - bud->group = strdup(where); - - buddy = y_list_find_custom(yd->buddies, bud, is_same_bud); - - FREE(bud->id); - FREE(bud->group); - FREE(bud); - - if (buddy) { - bud = buddy->data; - yd->buddies = y_list_remove_link(yd->buddies, buddy); - y_list_free_1(buddy); - - FREE(bud->id); - FREE(bud->group); - FREE(bud->real_name); - FREE(bud); - - bud = NULL; - } -} - -static void yahoo_process_ignore(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - char *who = NULL; - int status = 0; - char *me = NULL; - int un_ignore = 0; - - YList *l; - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 0) - who = pair->value; - if (pair->key == 1) - me = pair->value; - if (pair->key == 13) /* 1 == ignore, 2 == unignore */ - un_ignore = strtol(pair->value, NULL, 10); - if (pair->key == 66) - status = strtol(pair->value, NULL, 10); - } - - /* - * status - * 0 - ok - * 2 - already in ignore list, could not add - * 3 - not in ignore list, could not delete - * 12 - is a buddy, could not add - */ - -/* if(status) - YAHOO_CALLBACK(ext_yahoo_error)(yd->client_id, who, 0, status); -*/ -} - -static void yahoo_process_voicechat(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - char *who = NULL; - char *me = NULL; - char *room = NULL; - char *voice_room = NULL; - - YList *l; - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 4) - who = pair->value; - if (pair->key == 5) - me = pair->value; - if (pair->key == 13) - voice_room = pair->value; - if (pair->key == 57) - room = pair->value; - } - - NOTICE(("got voice chat invite from %s in %s to identity %s", who, room, - me)); - /* - * send: s:0 1:me 5:who 57:room 13:1 - * ???? s:4 5:who 10:99 19:-1615114531 - * gotr: s:4 5:who 10:99 19:-1615114615 - * ???? s:1 5:me 4:who 57:room 13:3room - * got: s:1 5:me 4:who 57:room 13:1room - * rej: s:0 1:me 5:who 57:room 13:3 - * rejr: s:4 5:who 10:99 19:-1617114599 - */ -} - -static void yahoo_process_ping(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - char *errormsg = NULL; - - YList *l; - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 16) - errormsg = pair->value; - } - - NOTICE(("got ping packet")); - YAHOO_CALLBACK(ext_yahoo_got_ping) (yid->yd->client_id, errormsg); -} - -static void yahoo_process_buddy_change_group(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - YList *l; - char *me = NULL; - char *who = NULL; - char *old_group = NULL; - char *new_group = NULL; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 1) - me = pair->value; - if (pair->key == 7) - who = pair->value; - if (pair->key == 224) - old_group = pair->value; - if (pair->key == 264) - new_group = pair->value; - } - - YAHOO_CALLBACK(ext_yahoo_got_buddy_change_group) (yid->yd->client_id, - me, who, old_group, new_group); -} - -static void _yahoo_webcam_get_server_connected(void *fd, int error, void *d) -{ - struct yahoo_input_data *yid = d; - char *who = yid->wcm->user; - char *data = NULL; - char *packet = NULL; - unsigned char magic_nr[] = { 0, 1, 0 }; - unsigned char header_len = 8; - unsigned int len = 0; - unsigned int pos = 0; - - if (error || !fd) { - FREE(who); - FREE(yid); - return; - } - - yid->fd = fd; - inputs = y_list_prepend(inputs, yid); - - /* send initial packet */ - if (who) - data = strdup(""); - else - data = strdup(""); - yahoo_add_to_send_queue(yid, data, strlen(data)); - FREE(data); - - /* send data */ - if (who) { - data = strdup("g="); - data = y_string_append(data, who); - data = y_string_append(data, "\r\n"); - } else { - data = strdup("f=1\r\n"); - } - len = strlen(data); - packet = y_new0(char, header_len + len); - packet[pos++] = header_len; - memcpy(packet + pos, magic_nr, sizeof(magic_nr)); - pos += sizeof(magic_nr); - pos += yahoo_put32(packet + pos, len); - memcpy(packet + pos, data, len); - pos += len; - yahoo_add_to_send_queue(yid, packet, pos); - FREE(packet); - FREE(data); - - yid->read_tag = - YAHOO_CALLBACK(ext_yahoo_add_handler) (yid->yd->client_id, fd, - YAHOO_INPUT_READ, yid); -} - -static void yahoo_webcam_get_server(struct yahoo_input_data *y, char *who, - char *key) -{ - struct yahoo_input_data *yid = y_new0(struct yahoo_input_data, 1); - struct yahoo_server_settings *yss = y->yd->server_settings; - - yid->type = YAHOO_CONNECTION_WEBCAM_MASTER; - yid->yd = y->yd; - yid->wcm = y_new0(struct yahoo_webcam, 1); - yid->wcm->user = who ? strdup(who) : NULL; - yid->wcm->direction = who ? YAHOO_WEBCAM_DOWNLOAD : YAHOO_WEBCAM_UPLOAD; - yid->wcm->key = strdup(key); - - YAHOO_CALLBACK(ext_yahoo_connect_async) (yid->yd->client_id, - yss->webcam_host, yss->webcam_port, - _yahoo_webcam_get_server_connected, yid, 0); - -} - -static YList *webcam_queue = NULL; -static void yahoo_process_webcam_key(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - char *me = NULL; - char *key = NULL; - char *who = NULL; - - YList *l; - yahoo_dump_unhandled(pkt); - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - if (pair->key == 5) - me = pair->value; - if (pair->key == 61) - key = pair->value; - } - - l = webcam_queue; - if (!l) - return; - who = l->data; - webcam_queue = y_list_remove_link(webcam_queue, webcam_queue); - y_list_free_1(l); - yahoo_webcam_get_server(yid, who, key); - FREE(who); -} - -static void yahoo_packet_process(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - DEBUG_MSG(("yahoo_packet_process: 0x%02x", pkt->service)); - switch (pkt->service) { - case YAHOO_SERVICE_USERSTAT: - case YAHOO_SERVICE_LOGON: - case YAHOO_SERVICE_LOGOFF: - case YAHOO_SERVICE_ISAWAY: - case YAHOO_SERVICE_ISBACK: - case YAHOO_SERVICE_GAMELOGON: - case YAHOO_SERVICE_GAMELOGOFF: - case YAHOO_SERVICE_IDACT: - case YAHOO_SERVICE_IDDEACT: - case YAHOO_SERVICE_Y6_STATUS_UPDATE: - case YAHOO_SERVICE_Y8_STATUS: - yahoo_process_status(yid, pkt); - break; - case YAHOO_SERVICE_NOTIFY: - yahoo_process_notify(yid, pkt); - break; - case YAHOO_SERVICE_MESSAGE: - case YAHOO_SERVICE_GAMEMSG: - case YAHOO_SERVICE_SYSMESSAGE: - yahoo_process_message(yid, pkt); - break; - case YAHOO_SERVICE_NEWMAIL: - yahoo_process_mail(yid, pkt); - break; - case YAHOO_SERVICE_Y7_AUTHORIZATION: - yahoo_process_new_contact(yid, pkt); - break; - case YAHOO_SERVICE_NEWCONTACT: - yahoo_process_contact(yid, pkt); - break; - case YAHOO_SERVICE_LIST: - yahoo_process_list(yid, pkt); - break; - case YAHOO_SERVICE_VERIFY: - yahoo_process_verify(yid, pkt); - break; - case YAHOO_SERVICE_AUTH: - yahoo_process_auth(yid, pkt); - break; - case YAHOO_SERVICE_AUTHRESP: - yahoo_process_auth_resp(yid, pkt); - break; - case YAHOO_SERVICE_CONFINVITE: - case YAHOO_SERVICE_CONFADDINVITE: - case YAHOO_SERVICE_CONFDECLINE: - case YAHOO_SERVICE_CONFLOGON: - case YAHOO_SERVICE_CONFLOGOFF: - case YAHOO_SERVICE_CONFMSG: - yahoo_process_conference(yid, pkt); - break; - case YAHOO_SERVICE_CHATONLINE: - case YAHOO_SERVICE_CHATGOTO: - case YAHOO_SERVICE_CHATJOIN: - case YAHOO_SERVICE_CHATLEAVE: - case YAHOO_SERVICE_CHATEXIT: - case YAHOO_SERVICE_CHATLOGOUT: - case YAHOO_SERVICE_CHATPING: - case YAHOO_SERVICE_COMMENT: - yahoo_process_chat(yid, pkt); - break; - case YAHOO_SERVICE_P2PFILEXFER: - case YAHOO_SERVICE_Y7_FILETRANSFER: - yahoo_process_filetransfer(yid, pkt); - break; - case YAHOO_SERVICE_Y7_FILETRANSFERINFO: - yahoo_process_filetransferinfo(yid, pkt); - break; - case YAHOO_SERVICE_Y7_FILETRANSFERACCEPT: - yahoo_process_filetransferaccept(yid, pkt); - break; - case YAHOO_SERVICE_ADDBUDDY: - yahoo_process_buddyadd(yid, pkt); - break; - case YAHOO_SERVICE_REMBUDDY: - yahoo_process_buddydel(yid, pkt); - break; - case YAHOO_SERVICE_IGNORECONTACT: - yahoo_process_ignore(yid, pkt); - break; - case YAHOO_SERVICE_VOICECHAT: - yahoo_process_voicechat(yid, pkt); - break; - case YAHOO_SERVICE_WEBCAM: - yahoo_process_webcam_key(yid, pkt); - break; - case YAHOO_SERVICE_PING: - yahoo_process_ping(yid, pkt); - break; - case YAHOO_SERVICE_Y7_CHANGE_GROUP: - yahoo_process_buddy_change_group(yid, pkt); - break; - case YAHOO_SERVICE_IDLE: - case YAHOO_SERVICE_MAILSTAT: - case YAHOO_SERVICE_CHATINVITE: - case YAHOO_SERVICE_CALENDAR: - case YAHOO_SERVICE_NEWPERSONALMAIL: - case YAHOO_SERVICE_ADDIDENT: - case YAHOO_SERVICE_ADDIGNORE: - case YAHOO_SERVICE_GOTGROUPRENAME: - case YAHOO_SERVICE_GROUPRENAME: - case YAHOO_SERVICE_PASSTHROUGH2: - case YAHOO_SERVICE_CHATLOGON: - case YAHOO_SERVICE_CHATLOGOFF: - case YAHOO_SERVICE_CHATMSG: - case YAHOO_SERVICE_REJECTCONTACT: - case YAHOO_SERVICE_PEERTOPEER: - WARNING(("unhandled service 0x%02x", pkt->service)); - yahoo_dump_unhandled(pkt); - break; - case YAHOO_SERVICE_PICTURE: - yahoo_process_picture(yid, pkt); - break; - case YAHOO_SERVICE_PICTURE_CHECKSUM: - yahoo_process_picture_checksum(yid, pkt); - break; - case YAHOO_SERVICE_PICTURE_UPLOAD: - yahoo_process_picture_upload(yid, pkt); - break; - case YAHOO_SERVICE_Y8_LIST: /* Buddy List */ - yahoo_process_buddy_list(yid, pkt); - break; - default: - WARNING(("unknown service 0x%02x", pkt->service)); - yahoo_dump_unhandled(pkt); - break; - } -} - -static struct yahoo_packet *yahoo_getdata(struct yahoo_input_data *yid) -{ - struct yahoo_packet *pkt; - struct yahoo_data *yd = yid->yd; - int pos = 0; - int pktlen; - - if (!yd) - return NULL; - - DEBUG_MSG(("rxlen is %d", yid->rxlen)); - if (yid->rxlen < YAHOO_PACKET_HDRLEN) { - DEBUG_MSG(("len < YAHOO_PACKET_HDRLEN")); - return NULL; - } - - pos += 4; /* YMSG */ - pos += 2; - pos += 2; - - pktlen = yahoo_get16(yid->rxqueue + pos); - pos += 2; - DEBUG_MSG(("%d bytes to read, rxlen is %d", pktlen, yid->rxlen)); - - if (yid->rxlen < (YAHOO_PACKET_HDRLEN + pktlen)) { - DEBUG_MSG(("len < YAHOO_PACKET_HDRLEN + pktlen")); - return NULL; - } - - LOG(("reading packet")); - yahoo_packet_dump(yid->rxqueue, YAHOO_PACKET_HDRLEN + pktlen); - - pkt = yahoo_packet_new(0, 0, 0); - - pkt->service = yahoo_get16(yid->rxqueue + pos); - pos += 2; - pkt->status = yahoo_get32(yid->rxqueue + pos); - pos += 4; - DEBUG_MSG(("Yahoo Service: 0x%02x Status: %d", pkt->service, - pkt->status)); - pkt->id = yahoo_get32(yid->rxqueue + pos); - pos += 4; - - yd->session_id = pkt->id; - - yahoo_packet_read(pkt, yid->rxqueue + pos, pktlen); - - yid->rxlen -= YAHOO_PACKET_HDRLEN + pktlen; - DEBUG_MSG(("rxlen == %d, rxqueue == %p", yid->rxlen, yid->rxqueue)); - if (yid->rxlen > 0) { - unsigned char *tmp = y_memdup(yid->rxqueue + YAHOO_PACKET_HDRLEN - + pktlen, yid->rxlen); - FREE(yid->rxqueue); - yid->rxqueue = tmp; - DEBUG_MSG(("new rxlen == %d, rxqueue == %p", yid->rxlen, - yid->rxqueue)); - } else { - DEBUG_MSG(("freed rxqueue == %p", yid->rxqueue)); - FREE(yid->rxqueue); - } - - return pkt; -} - -static struct yab *yahoo_yab_read(unsigned char *d, int len) -{ - char *st, *en; - char *data = (char *)d; - struct yab *yab = NULL; - - data[len] = '\0'; - - DEBUG_MSG(("Got yab: %s", data)); - st = en = strstr(data, "e0=\""); - if (st) { - yab = y_new0(struct yab, 1); - - st += strlen("e0=\""); - en = strchr(st, '"'); - *en++ = '\0'; - yab->email = yahoo_xmldecode(st); - } - - if (!en) - return NULL; - - st = strstr(en, "id=\""); - if (st) { - st += strlen("id=\""); - en = strchr(st, '"'); - *en++ = '\0'; - yab->yid = atoi(yahoo_xmldecode(st)); - } - - st = strstr(en, "fn=\""); - if (st) { - st += strlen("fn=\""); - en = strchr(st, '"'); - *en++ = '\0'; - yab->fname = yahoo_xmldecode(st); - } - - st = strstr(en, "ln=\""); - if (st) { - st += strlen("ln=\""); - en = strchr(st, '"'); - *en++ = '\0'; - yab->lname = yahoo_xmldecode(st); - } - - st = strstr(en, "nn=\""); - if (st) { - st += strlen("nn=\""); - en = strchr(st, '"'); - *en++ = '\0'; - yab->nname = yahoo_xmldecode(st); - } - - st = strstr(en, "yi=\""); - if (st) { - st += strlen("yi=\""); - en = strchr(st, '"'); - *en++ = '\0'; - yab->id = yahoo_xmldecode(st); - } - - st = strstr(en, "hphone=\""); - if (st) { - st += strlen("hphone=\""); - en = strchr(st, '"'); - *en++ = '\0'; - yab->hphone = yahoo_xmldecode(st); - } - - st = strstr(en, "wphone=\""); - if (st) { - st += strlen("wphone=\""); - en = strchr(st, '"'); - *en++ = '\0'; - yab->wphone = yahoo_xmldecode(st); - } - - st = strstr(en, "mphone=\""); - if (st) { - st += strlen("mphone=\""); - en = strchr(st, '"'); - *en++ = '\0'; - yab->mphone = yahoo_xmldecode(st); - } - - st = strstr(en, "dbid=\""); - if (st) { - st += strlen("dbid=\""); - en = strchr(st, '"'); - *en++ = '\0'; - yab->dbid = atoi(st); - } - - return yab; -} - -static struct yab *yahoo_getyab(struct yahoo_input_data *yid) -{ - struct yab *yab = NULL; - int pos = 0, end = 0; - struct yahoo_data *yd = yid->yd; - - if (!yd) - return NULL; - - do { - DEBUG_MSG(("rxlen is %d", yid->rxlen)); - - if (yid->rxlen <= strlen("rxlen - strlen("rxqueue + pos, "= yid->rxlen - 1) - return NULL; - - end = pos + 2; - /* end with > */ - while (end < yid->rxlen - strlen(">") - && memcmp(yid->rxqueue + end, ">", strlen(">"))) - end++; - - if (end >= yid->rxlen - 1) - return NULL; - - yab = yahoo_yab_read(yid->rxqueue + pos, end + 2 - pos); - - yid->rxlen -= end + 1; - DEBUG_MSG(("rxlen == %d, rxqueue == %p", yid->rxlen, - yid->rxqueue)); - if (yid->rxlen > 0) { - unsigned char *tmp = - y_memdup(yid->rxqueue + end + 1, yid->rxlen); - FREE(yid->rxqueue); - yid->rxqueue = tmp; - DEBUG_MSG(("new rxlen == %d, rxqueue == %p", yid->rxlen, - yid->rxqueue)); - } else { - DEBUG_MSG(("freed rxqueue == %p", yid->rxqueue)); - FREE(yid->rxqueue); - } - - } while (!yab && end < yid->rxlen - 1); - - return yab; -} - -static char *yahoo_getwebcam_master(struct yahoo_input_data *yid) -{ - unsigned int pos = 0; - unsigned int len = 0; - unsigned int status = 0; - char *server = NULL; - struct yahoo_data *yd = yid->yd; - - if (!yid || !yd) - return NULL; - - DEBUG_MSG(("rxlen is %d", yid->rxlen)); - - len = yid->rxqueue[pos++]; - if (yid->rxlen < len) - return NULL; - - /* extract status (0 = ok, 6 = webcam not online) */ - status = yid->rxqueue[pos++]; - - if (status == 0) { - pos += 2; /* skip next 2 bytes */ - server = y_memdup(yid->rxqueue + pos, 16); - pos += 16; - } else if (status == 6) { - YAHOO_CALLBACK(ext_yahoo_webcam_closed) - (yd->client_id, yid->wcm->user, 4); - } - - /* skip rest of the data */ - - yid->rxlen -= len; - DEBUG_MSG(("rxlen == %d, rxqueue == %p", yid->rxlen, yid->rxqueue)); - if (yid->rxlen > 0) { - unsigned char *tmp = y_memdup(yid->rxqueue + pos, yid->rxlen); - FREE(yid->rxqueue); - yid->rxqueue = tmp; - DEBUG_MSG(("new rxlen == %d, rxqueue == %p", yid->rxlen, - yid->rxqueue)); - } else { - DEBUG_MSG(("freed rxqueue == %p", yid->rxqueue)); - FREE(yid->rxqueue); - } - - return server; -} - -static int yahoo_get_webcam_data(struct yahoo_input_data *yid) -{ - unsigned char reason = 0; - unsigned int pos = 0; - unsigned int begin = 0; - unsigned int end = 0; - unsigned int closed = 0; - unsigned char header_len = 0; - char *who; - int connect = 0; - struct yahoo_data *yd = yid->yd; - - if (!yd) - return -1; - - if (!yid->wcm || !yid->wcd || !yid->rxlen) - return -1; - - DEBUG_MSG(("rxlen is %d", yid->rxlen)); - - /* if we are not reading part of image then read header */ - if (!yid->wcd->to_read) { - header_len = yid->rxqueue[pos++]; - yid->wcd->packet_type = 0; - - if (yid->rxlen < header_len) - return 0; - - if (header_len >= 8) { - reason = yid->rxqueue[pos++]; - /* next 2 bytes should always be 05 00 */ - pos += 2; - yid->wcd->data_size = yahoo_get32(yid->rxqueue + pos); - pos += 4; - yid->wcd->to_read = yid->wcd->data_size; - } - if (header_len >= 13) { - yid->wcd->packet_type = yid->rxqueue[pos++]; - yid->wcd->timestamp = yahoo_get32(yid->rxqueue + pos); - pos += 4; - } - - /* skip rest of header */ - pos = header_len; - } - - begin = pos; - pos += yid->wcd->to_read; - if (pos > yid->rxlen) - pos = yid->rxlen; - - /* if it is not an image then make sure we have the whole packet */ - if (yid->wcd->packet_type != 0x02) { - if ((pos - begin) != yid->wcd->data_size) { - yid->wcd->to_read = 0; - return 0; - } else { - yahoo_packet_dump(yid->rxqueue + begin, pos - begin); - } - } - - DEBUG_MSG(("packet type %.2X, data length %d", yid->wcd->packet_type, - yid->wcd->data_size)); - - /* find out what kind of packet we got */ - switch (yid->wcd->packet_type) { - case 0x00: - /* user requests to view webcam (uploading) */ - if (yid->wcd->data_size && - yid->wcm->direction == YAHOO_WEBCAM_UPLOAD) { - end = begin; - while (end <= yid->rxlen && yid->rxqueue[end++] != 13) ; - if (end > begin) { - who = y_memdup(yid->rxqueue + begin, - end - begin); - who[end - begin - 1] = 0; - YAHOO_CALLBACK(ext_yahoo_webcam_viewer) (yd-> - client_id, who + 2, 2); - FREE(who); - } - } - - if (yid->wcm->direction == YAHOO_WEBCAM_DOWNLOAD) { - /* timestamp/status field */ - /* 0 = declined viewing permission */ - /* 1 = accepted viewing permission */ - if (yid->wcd->timestamp == 0) { - YAHOO_CALLBACK(ext_yahoo_webcam_closed) (yd-> - client_id, yid->wcm->user, 3); - } - } - break; - case 0x01: /* status packets?? */ - /* timestamp contains status info */ - /* 00 00 00 01 = we have data?? */ - break; - case 0x02: /* image data */ - YAHOO_CALLBACK(ext_yahoo_got_webcam_image) (yd->client_id, - yid->wcm->user, yid->rxqueue + begin, - yid->wcd->data_size, pos - begin, yid->wcd->timestamp); - break; - case 0x05: /* response packets when uploading */ - if (!yid->wcd->data_size) { - YAHOO_CALLBACK(ext_yahoo_webcam_data_request) (yd-> - client_id, yid->wcd->timestamp); - } - break; - case 0x07: /* connection is closing */ - switch (reason) { - case 0x01: /* user closed connection */ - closed = 1; - break; - case 0x0F: /* user cancelled permission */ - closed = 2; - break; - } - YAHOO_CALLBACK(ext_yahoo_webcam_closed) (yd->client_id, - yid->wcm->user, closed); - break; - case 0x0C: /* user connected */ - case 0x0D: /* user disconnected */ - if (yid->wcd->data_size) { - who = y_memdup(yid->rxqueue + begin, pos - begin + 1); - who[pos - begin] = 0; - if (yid->wcd->packet_type == 0x0C) - connect = 1; - else - connect = 0; - YAHOO_CALLBACK(ext_yahoo_webcam_viewer) (yd->client_id, - who, connect); - FREE(who); - } - break; - case 0x13: /* user data */ - /* i=user_ip (ip of the user we are viewing) */ - /* j=user_ext_ip (external ip of the user we */ - /* are viewing) */ - break; - case 0x17: /* ?? */ - break; - } - yid->wcd->to_read -= pos - begin; - - yid->rxlen -= pos; - DEBUG_MSG(("rxlen == %d, rxqueue == %p", yid->rxlen, yid->rxqueue)); - if (yid->rxlen > 0) { - unsigned char *tmp = y_memdup(yid->rxqueue + pos, yid->rxlen); - FREE(yid->rxqueue); - yid->rxqueue = tmp; - DEBUG_MSG(("new rxlen == %d, rxqueue == %p", yid->rxlen, - yid->rxqueue)); - } else { - DEBUG_MSG(("freed rxqueue == %p", yid->rxqueue)); - FREE(yid->rxqueue); - } - - /* If we read a complete packet return success */ - if (!yid->wcd->to_read) - return 1; - - return 0; -} - -int yahoo_write_ready(int id, void *fd, void *data) -{ - struct yahoo_input_data *yid = data; - int len; - struct data_queue *tx; - - LOG(("write callback: id=%d fd=%p data=%p", id, fd, data)); - if (!yid || !yid->txqueues) - return -2; - - tx = yid->txqueues->data; - LOG(("writing %d bytes", tx->len)); - len = yahoo_send_data(fd, tx->queue, MIN(1024, tx->len)); - - if (len == -1 && errno == EAGAIN) - return 1; - - if (len <= 0) { - int e = errno; - DEBUG_MSG(("len == %d (<= 0)", len)); - while (yid->txqueues) { - YList *l = yid->txqueues; - tx = l->data; - free(tx->queue); - free(tx); - yid->txqueues = - y_list_remove_link(yid->txqueues, - yid->txqueues); - y_list_free_1(l); - } - LOG(("yahoo_write_ready(%d, %p) len < 0", id, fd)); - YAHOO_CALLBACK(ext_yahoo_remove_handler) (id, yid->write_tag); - yid->write_tag = 0; - errno = e; - return 0; - } - - tx->len -= len; - if (tx->len > 0) { - unsigned char *tmp = y_memdup(tx->queue + len, tx->len); - FREE(tx->queue); - tx->queue = tmp; - } else { - YList *l = yid->txqueues; - free(tx->queue); - free(tx); - yid->txqueues = - y_list_remove_link(yid->txqueues, yid->txqueues); - y_list_free_1(l); - /* - if(!yid->txqueues) - LOG(("yahoo_write_ready(%d, %d) !yxqueues", id, fd)); - */ - if (!yid->txqueues) { - LOG(("yahoo_write_ready(%d, %p) !txqueues", id, fd)); - YAHOO_CALLBACK(ext_yahoo_remove_handler) (id, - yid->write_tag); - yid->write_tag = 0; - } - } - - return 1; -} - -static void yahoo_process_pager_connection(struct yahoo_input_data *yid, - int over) -{ - struct yahoo_packet *pkt; - struct yahoo_data *yd = yid->yd; - int id = yd->client_id; - - if (over) - return; - - while (find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER) - && (pkt = yahoo_getdata(yid)) != NULL) { - - yahoo_packet_process(yid, pkt); - - yahoo_packet_free(pkt); - } -} - -static void yahoo_process_chatcat_connection(struct yahoo_input_data *yid, - int over) -{ - if (over) - return; - - if (strstr((char *)yid->rxqueue + (yid->rxlen - 20), "")) { - YAHOO_CALLBACK(ext_yahoo_chat_cat_xml) (yid->yd->client_id, - (char *)yid->rxqueue); - } -} - -static void yahoo_process_yab_connection(struct yahoo_input_data *yid, int over) -{ - struct yahoo_data *yd = yid->yd; - struct yab *yab; - YList *buds; - int changed = 0; - int id = yd->client_id; - int yab_used = 0; - - LOG(("Got data for YAB")); - - if (over) - return; - - while (find_input_by_id_and_type(id, YAHOO_CONNECTION_YAB) - && (yab = yahoo_getyab(yid)) != NULL) { - if (!yab->id) - continue; - - changed = 1; - yab_used = 0; - for (buds = yd->buddies; buds; buds = buds->next) { - struct yahoo_buddy *bud = buds->data; - if (!strcmp(bud->id, yab->id)) { - yab_used = 1; - bud->yab_entry = yab; - if (yab->nname) { - bud->real_name = strdup(yab->nname); - } else if (yab->fname && yab->lname) { - bud->real_name = y_new0(char, - strlen(yab->fname) + - strlen(yab->lname) + 2); - sprintf(bud->real_name, "%s %s", - yab->fname, yab->lname); - } else if (yab->fname) { - bud->real_name = strdup(yab->fname); - } - break; /* for */ - } - } - - if (!yab_used) { - FREE(yab->fname); - FREE(yab->lname); - FREE(yab->nname); - FREE(yab->id); - FREE(yab->email); - FREE(yab->hphone); - FREE(yab->wphone); - FREE(yab->mphone); - FREE(yab); - } - - } - - if (changed) - YAHOO_CALLBACK(ext_yahoo_got_buddies) (yd->client_id, - yd->buddies); -} - -static void yahoo_process_search_connection(struct yahoo_input_data *yid, - int over) -{ - struct yahoo_found_contact *yct = NULL; - char *p = (char *)yid->rxqueue, *np, *cp; - int k, n; - int start = 0, found = 0, total = 0; - YList *contacts = NULL; - struct yahoo_input_data *pyid = - find_input_by_id_and_type(yid->yd->client_id, - YAHOO_CONNECTION_PAGER); - - if (!over || !pyid) - return; - - if (p && (p = strstr(p, "\r\n\r\n"))) { - p += 4; - - for (k = 0; (p = strchr(p, 4)) && (k < 4); k++) { - p++; - n = atoi(p); - switch (k) { - case 0: - found = pyid->ys->lsearch_nfound = n; - break; - case 2: - start = pyid->ys->lsearch_nstart = n; - break; - case 3: - total = pyid->ys->lsearch_ntotal = n; - break; - } - } - - if (p) - p++; - - k = 0; - while (p && *p) { - cp = p; - np = strchr(p, 4); - - if (!np) - break; - *np = 0; - p = np + 1; - - switch (k++) { - case 1: - if (strlen(cp) > 2 - && y_list_length(contacts) < total) { - yct = y_new0(struct yahoo_found_contact, - 1); - contacts = y_list_append(contacts, yct); - yct->id = cp + 2; - } else { - *p = 0; - } - break; - case 2: - yct->online = !strcmp(cp, "2") ? 1 : 0; - break; - case 3: - yct->gender = cp; - break; - case 4: - yct->age = atoi(cp); - break; - case 5: - /* not worth the context switch for strcmp */ - if (cp[0] != '\005' || cp[1] != '\000') - yct->location = cp; - k = 0; - break; - } - } - } - - YAHOO_CALLBACK(ext_yahoo_got_search_result) (yid->yd->client_id, found, - start, total, contacts); - - while (contacts) { - YList *node = contacts; - contacts = y_list_remove_link(contacts, node); - free(node->data); - y_list_free_1(node); - } -} - -static void _yahoo_webcam_connected(void *fd, int error, void *d) -{ - struct yahoo_input_data *yid = d; - struct yahoo_webcam *wcm = yid->wcm; - struct yahoo_data *yd = yid->yd; - char conn_type[100]; - char *data = NULL; - char *packet = NULL; - unsigned char magic_nr[] = { 1, 0, 0, 0, 1 }; - unsigned header_len = 0; - unsigned int len = 0; - unsigned int pos = 0; - - if (error || !fd) { - FREE(yid); - return; - } - - yid->fd = fd; - inputs = y_list_prepend(inputs, yid); - - LOG(("Connected")); - /* send initial packet */ - switch (wcm->direction) { - case YAHOO_WEBCAM_DOWNLOAD: - data = strdup(""); - break; - case YAHOO_WEBCAM_UPLOAD: - data = strdup(""); - break; - default: - return; - } - yahoo_add_to_send_queue(yid, data, strlen(data)); - FREE(data); - - /* send data */ - switch (wcm->direction) { - case YAHOO_WEBCAM_DOWNLOAD: - header_len = 8; - data = strdup("a=2\r\nc=us\r\ne=21\r\nu="); - data = y_string_append(data, yd->user); - data = y_string_append(data, "\r\nt="); - data = y_string_append(data, wcm->key); - data = y_string_append(data, "\r\ni="); - data = y_string_append(data, wcm->my_ip); - data = y_string_append(data, "\r\ng="); - data = y_string_append(data, wcm->user); - data = y_string_append(data, "\r\no=w-2-5-1\r\np="); - snprintf(conn_type, sizeof(conn_type), "%d", wcm->conn_type); - data = y_string_append(data, conn_type); - data = y_string_append(data, "\r\n"); - break; - case YAHOO_WEBCAM_UPLOAD: - header_len = 13; - data = strdup("a=2\r\nc=us\r\nu="); - data = y_string_append(data, yd->user); - data = y_string_append(data, "\r\nt="); - data = y_string_append(data, wcm->key); - data = y_string_append(data, "\r\ni="); - data = y_string_append(data, wcm->my_ip); - data = y_string_append(data, "\r\no=w-2-5-1\r\np="); - snprintf(conn_type, sizeof(conn_type), "%d", wcm->conn_type); - data = y_string_append(data, conn_type); - data = y_string_append(data, "\r\nb="); - data = y_string_append(data, wcm->description); - data = y_string_append(data, "\r\n"); - break; - } - - len = strlen(data); - packet = y_new0(char, header_len + len); - packet[pos++] = header_len; - packet[pos++] = 0; - switch (wcm->direction) { - case YAHOO_WEBCAM_DOWNLOAD: - packet[pos++] = 1; - packet[pos++] = 0; - break; - case YAHOO_WEBCAM_UPLOAD: - packet[pos++] = 5; - packet[pos++] = 0; - break; - } - - pos += yahoo_put32(packet + pos, len); - if (wcm->direction == YAHOO_WEBCAM_UPLOAD) { - memcpy(packet + pos, magic_nr, sizeof(magic_nr)); - pos += sizeof(magic_nr); - } - memcpy(packet + pos, data, len); - yahoo_add_to_send_queue(yid, packet, header_len + len); - FREE(packet); - FREE(data); - - yid->read_tag = - YAHOO_CALLBACK(ext_yahoo_add_handler) (yid->yd->client_id, - yid->fd, YAHOO_INPUT_READ, yid); -} - -static void yahoo_webcam_connect(struct yahoo_input_data *y) -{ - struct yahoo_webcam *wcm = y->wcm; - struct yahoo_input_data *yid; - struct yahoo_server_settings *yss; - - if (!wcm || !wcm->server || !wcm->key) - return; - - yid = y_new0(struct yahoo_input_data, 1); - yid->type = YAHOO_CONNECTION_WEBCAM; - yid->yd = y->yd; - - /* copy webcam data to new connection */ - yid->wcm = y->wcm; - y->wcm = NULL; - - yss = y->yd->server_settings; - - yid->wcd = y_new0(struct yahoo_webcam_data, 1); - - LOG(("Connecting to: %s:%d", wcm->server, wcm->port)); - YAHOO_CALLBACK(ext_yahoo_connect_async) (y->yd->client_id, wcm->server, - wcm->port, _yahoo_webcam_connected, yid, 0); - -} - -static void yahoo_process_webcam_master_connection(struct yahoo_input_data *yid, - int over) -{ - char *server; - struct yahoo_server_settings *yss; - - if (over) - return; - - server = yahoo_getwebcam_master(yid); - - if (server) { - yss = yid->yd->server_settings; - yid->wcm->server = strdup(server); - yid->wcm->port = yss->webcam_port; - yid->wcm->conn_type = yss->conn_type; - yid->wcm->my_ip = strdup(yss->local_host); - if (yid->wcm->direction == YAHOO_WEBCAM_UPLOAD) - yid->wcm->description = strdup(yss->webcam_description); - yahoo_webcam_connect(yid); - FREE(server); - } -} - -static void yahoo_process_webcam_connection(struct yahoo_input_data *yid, - int over) -{ - int id = yid->yd->client_id; - void *fd = yid->fd; - - if (over) - return; - - /* as long as we still have packets available keep processing them */ - while (find_input_by_id_and_fd(id, fd) - && yahoo_get_webcam_data(yid) == 1) ; -} - -static void yahoo_process_auth_connection(struct yahoo_input_data *yid, - int over) -{ - char *line_end; - char *token; - char *cookie; - - int error_code = 0; - int is_ymsgr = 0; - - /* Wait till we get everything */ - if (!over) - return; - - if (!yid->rxqueue) { - LOG(("Whoops! Closed it just like that??\n")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_UNKNOWN, NULL); - return; - } - - token = strstr((char *)yid->rxqueue, "\r\n\r\n"); - - if (!token) { - LOG(("Could not find anything after the HTTP headers? huh?\n")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_UNKNOWN, NULL); - return; - } - - *token = '\0'; - token += 4; - - /* Skip the first number */ - token = strstr(token, "\r\n"); - - if (!token) { - LOG(("Well I tried to skip the first number and found... nothing\n")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_UNKNOWN, NULL); - return; - } - - token += 2; - - line_end = strstr(token, "\r\n"); - - if (line_end) { - *line_end = '\0'; - - line_end += 2; - } - - error_code = atoi((char *)token); - - switch (error_code) { - case 0: - /* successful */ - break; - case 1212: - /* Incorrect ID or password */ - LOG(("Incorrect ID or password\n")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_PASSWD, NULL); - - return; - case 1213: - /* Security lock from too many failed login attempts */ - LOG(("Security lock from too many failed login attempts\n")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_LOCK, ""); - - return; - - case 1214: - /* Security lock */ - LOG(("Security lock\n")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_LOCK, ""); - - return; - - case 1235: - /* User ID not taken yet */ - LOG(("User ID not taken yet\n")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_UNAME, NULL); - - return; - - case 1216: - /* Seems to be a lock, but shows the same generic User ID/Password failure */ - LOG(("Seems to be a lock, but shows the same generic User ID/Password failure\n")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_PASSWD, NULL); - - return; - case 100: - /* Username and password cannot be blank */ - LOG(("Username and password cannot be blank\n")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_PASSWD, NULL); - - return; - default: - /* Unknown error code */ - LOG(("Unknown Error\n")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_UNKNOWN, NULL); - - return; - } - - if (line_end && !strncmp(line_end, "ymsgr=", 6)) { - is_ymsgr = 1; - } else if (strncmp(line_end, "crumb=", 6)) { - LOG(("Oops! There was no ymsgr=. Where do I get my token from now :(")); - LOG(("I got this:\n\n%s\n", line_end)); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_UNKNOWN, NULL); - return; - /* Error */ - } - - token = line_end + 6; - - line_end = strstr(token, "\r\n"); - - if (line_end) { - *line_end = '\0'; - line_end += 2; - } - - /* Go for the crumb */ - if (is_ymsgr) { - char url[256]; - char *token_enc; - struct yahoo_input_data *crumb_yid = - y_new0(struct yahoo_input_data, 1); - - crumb_yid->yd = yid->yd; - crumb_yid->type = YAHOO_CONNECTION_AUTH; - - inputs = y_list_prepend(inputs, crumb_yid); - - token_enc = yahoo_urlencode(token); - - snprintf(url, sizeof(url), - "https://login.yahoo.com/config/pwtoken_login?src=ymsgr&ts=" - "&token=%s", token_enc); - - yahoo_http_get(crumb_yid->yd->client_id, url, NULL, 1, 0, - _yahoo_http_connected, crumb_yid); - - FREE(token_enc); - - return; - } - - /* token is actually crumb */ - - if (!line_end) { - /* We did not get our cookies. Cry. */ - LOG(("NO Cookies!")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_UNKNOWN, NULL); - return; - } - - cookie = strstr((char *)yid->rxqueue, "Set-Cookie: Y="); - - if (!cookie) { - /* Cry. */ - LOG(("NO Y Cookie!")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_UNKNOWN, NULL); - return; - } - - cookie += 14; - - line_end = strstr(cookie, "\r\n"); - *line_end = '\0'; - - yid->yd->cookie_y = strdup(cookie); - *line_end = ';'; - - cookie = strstr((char *)yid->rxqueue, "Set-Cookie: T="); - if (!cookie) { - /* Cry. */ - LOG(("NO T Cookie!")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_UNKNOWN, NULL); - return; - } - - cookie += 14; - - line_end = strstr(cookie, "\r\n"); - *line_end = '\0'; - - yid->yd->cookie_t = strdup(cookie); - *line_end = ';'; - - cookie = strstr((char *)yid->rxqueue, "Set-Cookie: B="); - if (!cookie) { - /* Cry. */ - LOG(("NO B Cookie!")); - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd->client_id, - YAHOO_LOGIN_UNKNOWN, NULL); - return; - } - - cookie += 14; - - line_end = strstr(cookie, "\r\n"); - *line_end = '\0'; - - yid->yd->cookie_b = strdup(cookie); - - yid->yd->crumb = strdup(token); - - yahoo_send_auth(yid->yd); -} - -static void (*yahoo_process_connection[]) (struct yahoo_input_data *, - int over) = { -yahoo_process_pager_connection, yahoo_process_ft_connection, - yahoo_process_yab_connection, - yahoo_process_webcam_master_connection, - yahoo_process_webcam_connection, - yahoo_process_chatcat_connection, - yahoo_process_search_connection, yahoo_process_auth_connection}; - -int yahoo_read_ready(int id, void *fd, void *data) -{ - struct yahoo_input_data *yid = data; - char buf[1024]; - int len; - - LOG(("read callback: id=%d fd=%p data=%p", id, fd, data)); - if (!yid) - return -2; - - do { - len = YAHOO_CALLBACK(ext_yahoo_read) (fd, buf, sizeof(buf)); - } while (len == -1 && errno == EINTR); - - if (len == -1 && (errno == EAGAIN || errno == EINTR)) /* we'll try again later */ - return 1; - - if (len <= 0) { - int e = errno; - DEBUG_MSG(("len == %d (<= 0)", len)); - - if (yid->type == YAHOO_CONNECTION_PAGER) { - YAHOO_CALLBACK(ext_yahoo_login_response) (yid->yd-> - client_id, YAHOO_LOGIN_SOCK, NULL); - } - - yahoo_process_connection[yid->type] (yid, 1); - yahoo_input_close(yid); - - /* no need to return an error, because we've already fixed it */ - if (len == 0) - return 1; - - errno = e; - LOG(("read error: %s", strerror(errno))); - return -1; - } - - yid->rxqueue = - y_renew(unsigned char, yid->rxqueue, len + yid->rxlen + 1); - memcpy(yid->rxqueue + yid->rxlen, buf, len); - yid->rxlen += len; - yid->rxqueue[yid->rxlen] = 0; - - yahoo_process_connection[yid->type] (yid, 0); - - return len; -} - -int yahoo_init_with_attributes(const char *username, const char *password, ...) -{ - va_list ap; - struct yahoo_data *yd; - - yd = y_new0(struct yahoo_data, 1); - - if (!yd) - return 0; - - yd->user = strdup(username); - yd->password = strdup(password); - - yd->initial_status = -1; - yd->current_status = -1; - - yd->client_id = ++last_id; - - add_to_list(yd); - - va_start(ap, password); - yd->server_settings = _yahoo_assign_server_settings(ap); - va_end(ap); - - return yd->client_id; -} - -int yahoo_init(const char *username, const char *password) -{ - return yahoo_init_with_attributes(username, password, NULL); -} - -static void yahoo_connected(void *fd, int error, void *data) -{ - struct connect_callback_data *ccd = data; - struct yahoo_data *yd = ccd->yd; - struct yahoo_packet *pkt; - struct yahoo_input_data *yid; - struct yahoo_server_settings *yss = yd->server_settings; - - if (error) { - int tag; - if (fallback_ports[ccd->i]) { - char *host = yss->pager_host; - - if (!host) - host = yss->pager_host_list[ccd->server_i]; - - yss->pager_port = fallback_ports[ccd->i++]; - tag = YAHOO_CALLBACK(ext_yahoo_connect_async) (yd-> - client_id, host, yss->pager_port, - yahoo_connected, ccd, 0); - - if (tag > 0) - ccd->tag = tag; - } else if (yss->pager_host_list - && yss->pager_host_list[ccd->server_i]) { - - /* Get back to the default port */ - yss->pager_port = pager_port; - ccd->server_i++; - LOG(("Fallback: Connecting to %s:%d", yss->pager_host_list[ccd->server_i], yss->pager_port)); - - ccd->i = 0; - tag = YAHOO_CALLBACK(ext_yahoo_connect_async) (yd->client_id, - yss->pager_host_list[ccd->server_i], yss->pager_port, - yahoo_connected, ccd, 0); - } else { - FREE(ccd); - YAHOO_CALLBACK(ext_yahoo_login_response) (yd->client_id, - YAHOO_LOGIN_SOCK, NULL); - } - return; - } - - FREE(ccd); - - /* fd == NULL && error == 0 means connect was cancelled */ - if (!fd) - return; - - pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH, YPACKET_STATUS_DEFAULT, - yd->session_id); - NOTICE(("Sending initial packet")); - - yahoo_packet_hash(pkt, 1, yd->user); - - yid = find_input_by_id_and_type(yd->client_id, YAHOO_CONNECTION_PAGER); - yid->fd = fd; - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); - - yid->read_tag = - YAHOO_CALLBACK(ext_yahoo_add_handler) (yid->yd->client_id, - yid->fd, YAHOO_INPUT_READ, yid); -} - -void *yahoo_get_fd(int id) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - if (!yid) - return 0; - else - return yid->fd; -} - -void yahoo_send_buzz(int id, const char *from, const char *who) -{ - yahoo_send_im(id, from, who, "", 1, 0); -} - -void yahoo_send_im(int id, const char *from, const char *who, const char *what, - int utf8, int picture) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_packet *pkt = NULL; - struct yahoo_data *yd; - char pic_str[10]; - - if (!yid) - return; - - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_MESSAGE, YAHOO_STATUS_OFFLINE, - yd->session_id); - - snprintf(pic_str, sizeof(pic_str), "%d", picture); - - if (from && strcmp(from, yd->user)) - yahoo_packet_hash(pkt, 0, yd->user); - yahoo_packet_hash(pkt, 1, from ? from : yd->user); - yahoo_packet_hash(pkt, 5, who); - yahoo_packet_hash(pkt, 14, what); - - if (utf8) - yahoo_packet_hash(pkt, 97, "1"); - - yahoo_packet_hash(pkt, 63, ";0"); /* imvironment name; or ;0 */ - yahoo_packet_hash(pkt, 64, "0"); - yahoo_packet_hash(pkt, 206, pic_str); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_send_typing(int id, const char *from, const char *who, int typ) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - if (!yid) - return; - - yd = yid->yd; - pkt = yahoo_packet_new(YAHOO_SERVICE_NOTIFY, YPACKET_STATUS_NOTIFY, - yd->session_id); - - yahoo_packet_hash(pkt, 5, who); - yahoo_packet_hash(pkt, 1, from ? from : yd->user); - yahoo_packet_hash(pkt, 14, " "); - yahoo_packet_hash(pkt, 13, typ ? "1" : "0"); - yahoo_packet_hash(pkt, 49, "TYPING"); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_set_away(int id, enum yahoo_status state, const char *msg, int away) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - int old_status; - char s[4]; - - if (!yid) - return; - - yd = yid->yd; - - old_status = yd->current_status; - - if (msg) { - yd->current_status = YAHOO_STATUS_CUSTOM; - } else { - yd->current_status = state; - } - - /* Thank you libpurple :) */ - if (yd->current_status == YAHOO_STATUS_INVISIBLE) { - pkt = yahoo_packet_new(YAHOO_SERVICE_Y6_VISIBLE_TOGGLE, - YAHOO_STATUS_AVAILABLE, 0); - yahoo_packet_hash(pkt, 13, "2"); - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); - - return; - } - - pkt = yahoo_packet_new(YAHOO_SERVICE_Y6_STATUS_UPDATE, - yd->current_status, yd->session_id); - snprintf(s, sizeof(s), "%d", yd->current_status); - yahoo_packet_hash(pkt, 10, s); - - if (yd->current_status == YAHOO_STATUS_CUSTOM) { - yahoo_packet_hash(pkt, 19, msg); - } else { - yahoo_packet_hash(pkt, 19, ""); - } - - yahoo_packet_hash(pkt, 47, (away == 2) ? "2" : (away) ? "1" : "0"); - - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); - - if (old_status == YAHOO_STATUS_INVISIBLE) { - pkt = yahoo_packet_new(YAHOO_SERVICE_Y6_VISIBLE_TOGGLE, - YAHOO_STATUS_AVAILABLE, 0); - yahoo_packet_hash(pkt, 13, "1"); - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); - } -} - -void yahoo_logoff(int id) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - - if (!yid) - return; - yd = yid->yd; - - LOG(("yahoo_logoff: current status: %d", yd->current_status)); - - if (yd->current_status != -1) { - pkt = yahoo_packet_new(YAHOO_SERVICE_LOGOFF, - YPACKET_STATUS_DEFAULT, yd->session_id); - yd->current_status = -1; - - if (pkt) { - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); - } - } - -/* do { - yahoo_input_close(yid); - } while((yid = find_input_by_id(id)));*/ - -} - -void yahoo_get_list(int id) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_LIST, YPACKET_STATUS_DEFAULT, - yd->session_id); - yahoo_packet_hash(pkt, 1, yd->user); - if (pkt) { - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); - } -} - -static void _yahoo_http_connected(int id, void *fd, int error, void *data) -{ - struct yahoo_input_data *yid = data; - if (fd == NULL || error) { - inputs = y_list_remove(inputs, yid); - FREE(yid); - return; - } - - yid->fd = fd; - yid->read_tag = - YAHOO_CALLBACK(ext_yahoo_add_handler) (yid->yd->client_id, fd, - YAHOO_INPUT_READ, yid); -} - -/* FIXME Get address book from address.yahoo.com instead */ -void yahoo_get_yab(int id) -{ - struct yahoo_data *yd = find_conn_by_id(id); - struct yahoo_input_data *yid; - char url[1024]; - char buff[2048]; - - if (!yd) - return; - - yid = y_new0(struct yahoo_input_data, 1); - yid->yd = yd; - yid->type = YAHOO_CONNECTION_YAB; - - LOG(("Sending request for Address Book")); - - snprintf(url, 1024, - "http://address.yahoo.com/yab/us?v=XM&prog=ymsgr&.intl=us" - "&diffs=1&t=0&tags=short&rt=0&prog-ver=8.1.0.249&useutf8=1&legenc=codepage-1252"); - - snprintf(buff, sizeof(buff), "Y=%s; T=%s", yd->cookie_y, yd->cookie_t); - - inputs = y_list_prepend(inputs, yid); - - yahoo_http_get(yid->yd->client_id, url, buff, 0, 0, - _yahoo_http_connected, yid); -} - -struct yahoo_post_data { - struct yahoo_input_data *yid; - char *data; -}; - -static void _yahoo_http_post_connected(int id, void *fd, int error, void *data) -{ - struct yahoo_post_data *yad = data; - struct yahoo_input_data *yid = yad->yid; - char *buff = yad->data; - - if (!fd) { - inputs = y_list_remove(inputs, yid); - FREE(yid); - return; - } - - YAHOO_CALLBACK(ext_yahoo_write) (fd, buff, strlen(buff)); - - yid->fd = fd; - yid->read_tag = - YAHOO_CALLBACK(ext_yahoo_add_handler) (yid->yd->client_id, fd, - YAHOO_INPUT_READ, yid); - - FREE(buff); - FREE(yad); -} - -/* FIXME This is also likely affected */ -void yahoo_set_yab(int id, struct yab *yab) -{ - struct yahoo_post_data *yad = y_new0(struct yahoo_post_data, 1); - struct yahoo_data *yd = find_conn_by_id(id); - struct yahoo_input_data *yid; - char url[1024]; - char buff[1024]; - char post[1024]; - int size = 0; - - if (!yd) - return; - - yid = y_new0(struct yahoo_input_data, 1); - yid->type = YAHOO_CONNECTION_YAB; - yid->yd = yd; - - if(yab->yid) - size = snprintf(post, sizeof(post), "" - "" - "" - "", yd->user, 9, yab->yid, /* Don't know why */ - yab->id, yab->nname?yab->nname:""); - else - size = snprintf(post, sizeof(post), "" - "" - "" - "", yd->user, 1, /* Don't know why */ - yab->id, yab->nname?yab->nname:""); - - yad->yid = yid; - yad->data = strdup(post); - - strcpy(url, "http://address.yahoo.com/yab/us?v=XM&prog=ymsgr&.intl=us" - "&sync=1&tags=short&noclear=1&useutf8=1&legenc=codepage-1252"); - - snprintf(buff, sizeof(buff), "Y=%s; T=%s", yd->cookie_y, yd->cookie_t); - - inputs = y_list_prepend(inputs, yid); - - yahoo_http_post(yid->yd->client_id, url, buff, size, - _yahoo_http_post_connected, yad); -} - -void yahoo_set_identity_status(int id, const char *identity, int active) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(active ? YAHOO_SERVICE_IDACT : - YAHOO_SERVICE_IDDEACT, YPACKET_STATUS_DEFAULT, yd->session_id); - yahoo_packet_hash(pkt, 3, identity); - if (pkt) { - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); - } -} - -void yahoo_refresh(int id) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_USERSTAT, YPACKET_STATUS_DEFAULT, - yd->session_id); - if (pkt) { - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); - } -} - -void yahoo_keepalive(int id) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_PING, YPACKET_STATUS_DEFAULT, - yd->session_id); - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); -} - -void yahoo_chat_keepalive(int id) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - - if (!yid) - return; - - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_CHATPING, YPACKET_STATUS_DEFAULT, - yd->session_id); - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); -} - -void yahoo_add_buddy(int id, const char *who, const char *group, - const char *msg) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - yd = yid->yd; - - if (!yd->logged_in) - return; - - pkt = yahoo_packet_new(YAHOO_SERVICE_ADDBUDDY, YPACKET_STATUS_DEFAULT, - yd->session_id); - if (msg != NULL) /* add message/request "it's me add me" */ - yahoo_packet_hash(pkt, 14, msg); - else - yahoo_packet_hash(pkt, 14, ""); - yahoo_packet_hash(pkt, 65, group); - yahoo_packet_hash(pkt, 97, "1"); - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 302, "319"); - yahoo_packet_hash(pkt, 300, "319"); - yahoo_packet_hash(pkt, 7, who); - yahoo_packet_hash(pkt, 334, "0"); - yahoo_packet_hash(pkt, 301, "319"); - yahoo_packet_hash(pkt, 303, "319"); - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); -} - -void yahoo_remove_buddy(int id, const char *who, const char *group) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_REMBUDDY, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 7, who); - yahoo_packet_hash(pkt, 65, group); - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); -} - -void yahoo_confirm_buddy(int id, const char *who, int reject, const char *msg) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - yd = yid->yd; - - if (!yd->logged_in) - return; - - pkt = yahoo_packet_new(YAHOO_SERVICE_Y7_AUTHORIZATION, - YPACKET_STATUS_DEFAULT, yd->session_id); - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 5, who); - if (reject) - yahoo_packet_hash(pkt, 13, "2"); - else { - yahoo_packet_hash(pkt, 241, "0"); - yahoo_packet_hash(pkt, 13, "1"); - } - - yahoo_packet_hash(pkt, 334, "0"); - - if (reject) { - yahoo_packet_hash(pkt, 14, msg ? msg : ""); - yahoo_packet_hash(pkt, 97, "1"); - } - - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); -} - -void yahoo_ignore_buddy(int id, const char *who, int unignore) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - yd = yid->yd; - - if (!yd->logged_in) - return; - - pkt = yahoo_packet_new(YAHOO_SERVICE_IGNORECONTACT, - YPACKET_STATUS_DEFAULT, yd->session_id); - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 7, who); - yahoo_packet_hash(pkt, 13, unignore ? "2" : "1"); - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); -} - -void yahoo_stealth_buddy(int id, const char *who, int unstealth) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - yd = yid->yd; - - if (!yd->logged_in) - return; - - pkt = yahoo_packet_new(YAHOO_SERVICE_STEALTH_PERM, - YPACKET_STATUS_DEFAULT, yd->session_id); - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 7, who); - yahoo_packet_hash(pkt, 31, unstealth ? "2" : "1"); - yahoo_packet_hash(pkt, 13, "2"); - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); -} - -void yahoo_change_buddy_group(int id, const char *who, const char *old_group, - const char *new_group) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_Y7_CHANGE_GROUP, - YPACKET_STATUS_DEFAULT, yd->session_id); - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 302, "240"); - yahoo_packet_hash(pkt, 300, "240"); - yahoo_packet_hash(pkt, 7, who); - yahoo_packet_hash(pkt, 224, old_group); - yahoo_packet_hash(pkt, 264, new_group); - yahoo_packet_hash(pkt, 301, "240"); - yahoo_packet_hash(pkt, 303, "240"); - - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); -} - -void yahoo_group_rename(int id, const char *old_group, const char *new_group) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt = NULL; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_GROUPRENAME, - YPACKET_STATUS_DEFAULT, yd->session_id); - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 65, old_group); - yahoo_packet_hash(pkt, 67, new_group); - - yahoo_send_packet(yid, pkt, 0); - yahoo_packet_free(pkt); -} - -void yahoo_conference_addinvite(int id, const char *from, const char *who, - const char *room, const YList *members, const char *msg) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_CONFADDINVITE, - YPACKET_STATUS_DEFAULT, yd->session_id); - - yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); - yahoo_packet_hash(pkt, 51, who); - yahoo_packet_hash(pkt, 57, room); - yahoo_packet_hash(pkt, 58, msg); - yahoo_packet_hash(pkt, 13, "0"); - for (; members; members = members->next) { - yahoo_packet_hash(pkt, 52, (char *)members->data); - yahoo_packet_hash(pkt, 53, (char *)members->data); - } - /* 52, 53 -> other members? */ - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_conference_invite(int id, const char *from, YList *who, - const char *room, const char *msg) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_CONFINVITE, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); - yahoo_packet_hash(pkt, 50, yd->user); - for (; who; who = who->next) { - yahoo_packet_hash(pkt, 52, (char *)who->data); - } - yahoo_packet_hash(pkt, 57, room); - yahoo_packet_hash(pkt, 58, msg); - yahoo_packet_hash(pkt, 13, "0"); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_conference_logon(int id, const char *from, YList *who, - const char *room) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_CONFLOGON, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); - yahoo_packet_hash(pkt, 3, (from ? from : yd->user)); - yahoo_packet_hash(pkt, 57, room); - for (; who; who = who->next) - yahoo_packet_hash(pkt, 3, (char *)who->data); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_conference_decline(int id, const char *from, YList *who, - const char *room, const char *msg) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_CONFDECLINE, - YPACKET_STATUS_DEFAULT, yd->session_id); - - yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); - yahoo_packet_hash(pkt, 3, (from ? from : yd->user)); - for (; who; who = who->next) - yahoo_packet_hash(pkt, 3, (char *)who->data); - yahoo_packet_hash(pkt, 57, room); - yahoo_packet_hash(pkt, 14, msg); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_conference_logoff(int id, const char *from, YList *who, - const char *room) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_CONFLOGOFF, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); - yahoo_packet_hash(pkt, 3, (from ? from : yd->user)); - for (; who; who = who->next) - yahoo_packet_hash(pkt, 3, (char *)who->data); - - yahoo_packet_hash(pkt, 57, room); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_conference_message(int id, const char *from, YList *who, - const char *room, const char *msg, int utf8) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_CONFMSG, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); - yahoo_packet_hash(pkt, 53, (from ? from : yd->user)); - for (; who; who = who->next) - yahoo_packet_hash(pkt, 53, (char *)who->data); - - yahoo_packet_hash(pkt, 57, room); - yahoo_packet_hash(pkt, 14, msg); - - if (utf8) - yahoo_packet_hash(pkt, 97, "1"); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_get_chatrooms(int id, int chatroomid) -{ - struct yahoo_data *yd = find_conn_by_id(id); - struct yahoo_input_data *yid; - char url[1024]; - char buff[1024]; - - if (!yd) - return; - - yid = y_new0(struct yahoo_input_data, 1); - yid->yd = yd; - yid->type = YAHOO_CONNECTION_CHATCAT; - - if (chatroomid == 0) { - snprintf(url, 1024, - "http://insider.msg.yahoo.com/ycontent/?chatcat=0"); - } else { - snprintf(url, 1024, - "http://insider.msg.yahoo.com/ycontent/?chatroom_%d=0", - chatroomid); - } - - snprintf(buff, sizeof(buff), "Y=%s; T=%s", yd->cookie_y, yd->cookie_t); - - inputs = y_list_prepend(inputs, yid); - - yahoo_http_get(yid->yd->client_id, url, buff, 0, 0, - _yahoo_http_connected, yid); -} - -void yahoo_chat_logon(int id, const char *from, const char *room, - const char *roomid) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_CHATONLINE, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); - yahoo_packet_hash(pkt, 109, yd->user); - yahoo_packet_hash(pkt, 6, "abcde"); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); - - pkt = yahoo_packet_new(YAHOO_SERVICE_CHATJOIN, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); - yahoo_packet_hash(pkt, 104, room); - yahoo_packet_hash(pkt, 129, roomid); - yahoo_packet_hash(pkt, 62, "2"); /* ??? */ - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_chat_message(int id, const char *from, const char *room, - const char *msg, const int msgtype, const int utf8) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - char buf[2]; - - if (!yid) - return; - - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_COMMENT, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); - yahoo_packet_hash(pkt, 104, room); - yahoo_packet_hash(pkt, 117, msg); - - snprintf(buf, sizeof(buf), "%d", msgtype); - yahoo_packet_hash(pkt, 124, buf); - - if (utf8) - yahoo_packet_hash(pkt, 97, "1"); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_chat_logoff(int id, const char *from) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_CHATLOGOUT, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_buddyicon_request(int id, const char *who) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_PICTURE, YPACKET_STATUS_DEFAULT, - yd->session_id); - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 5, who); - yahoo_packet_hash(pkt, 13, "1"); - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_send_picture_info(int id, const char *who, const char *url, - int checksum) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - char checksum_str[10]; - - if (!yid) - return; - - yd = yid->yd; - - snprintf(checksum_str, sizeof(checksum_str), "%d", checksum); - - pkt = yahoo_packet_new(YAHOO_SERVICE_PICTURE, YPACKET_STATUS_DEFAULT, - 0); - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 4, yd->user); - yahoo_packet_hash(pkt, 5, who); - yahoo_packet_hash(pkt, 13, "2"); - yahoo_packet_hash(pkt, 20, url); - yahoo_packet_hash(pkt, 192, checksum_str); - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_send_picture_update(int id, const char *who, int type) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - char type_str[10]; - - if (!yid) - return; - - yd = yid->yd; - - snprintf(type_str, sizeof(type_str), "%d", type); - - pkt = yahoo_packet_new(YAHOO_SERVICE_PICTURE_UPDATE, - YPACKET_STATUS_DEFAULT, 0); - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 5, who); - yahoo_packet_hash(pkt, 206, type_str); - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_send_picture_checksum(int id, const char *who, int checksum) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - char checksum_str[10]; - - if (!yid) - return; - - yd = yid->yd; - - snprintf(checksum_str, sizeof(checksum_str), "%d", checksum); - - pkt = yahoo_packet_new(YAHOO_SERVICE_PICTURE_CHECKSUM, - YPACKET_STATUS_DEFAULT, 0); - yahoo_packet_hash(pkt, 1, yd->user); - if (who != 0) - yahoo_packet_hash(pkt, 5, who); - yahoo_packet_hash(pkt, 192, checksum_str); - yahoo_packet_hash(pkt, 212, "1"); - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_webcam_close_feed(int id, const char *who) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_webcam_user(id, who); - - if (yid) - yahoo_input_close(yid); -} - -void yahoo_webcam_get_feed(int id, const char *who) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_data *yd; - struct yahoo_packet *pkt; - - if (!yid) - return; - - /* - * add the user to the queue. this is a dirty hack, since - * the yahoo server doesn't tell us who's key it's returning, - * we have to just hope that it sends back keys in the same - * order that we request them. - * The queue is popped in yahoo_process_webcam_key - */ - webcam_queue = y_list_append(webcam_queue, who ? strdup(who) : NULL); - - yd = yid->yd; - - pkt = yahoo_packet_new(YAHOO_SERVICE_WEBCAM, YPACKET_STATUS_DEFAULT, - yd->session_id); - - yahoo_packet_hash(pkt, 1, yd->user); - if (who != NULL) - yahoo_packet_hash(pkt, 5, who); - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_webcam_send_image(int id, unsigned char *image, unsigned int length, - unsigned int timestamp) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_WEBCAM); - unsigned char *packet; - unsigned char header_len = 13; - unsigned int pos = 0; - - if (!yid) - return; - - packet = y_new0(unsigned char, header_len); - - packet[pos++] = header_len; - packet[pos++] = 0; - packet[pos++] = 5; /* version byte?? */ - packet[pos++] = 0; - pos += yahoo_put32(packet + pos, length); - packet[pos++] = 2; /* packet type, image */ - pos += yahoo_put32(packet + pos, timestamp); - yahoo_add_to_send_queue(yid, packet, header_len); - FREE(packet); - - if (length) - yahoo_add_to_send_queue(yid, image, length); -} - -void yahoo_webcam_accept_viewer(int id, const char *who, int accept) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_WEBCAM); - char *packet = NULL; - char *data = NULL; - unsigned char header_len = 13; - unsigned int pos = 0; - unsigned int len = 0; - - if (!yid) - return; - - data = strdup("u="); - data = y_string_append(data, (char *)who); - data = y_string_append(data, "\r\n"); - len = strlen(data); - - packet = y_new0(char, header_len + len); - packet[pos++] = header_len; - packet[pos++] = 0; - packet[pos++] = 5; /* version byte?? */ - packet[pos++] = 0; - pos += yahoo_put32(packet + pos, len); - packet[pos++] = 0; /* packet type */ - pos += yahoo_put32(packet + pos, accept); - memcpy(packet + pos, data, len); - FREE(data); - yahoo_add_to_send_queue(yid, packet, header_len + len); - FREE(packet); -} - -void yahoo_webcam_invite(int id, const char *who) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_packet *pkt; - - if (!yid) - return; - - pkt = yahoo_packet_new(YAHOO_SERVICE_NOTIFY, YPACKET_STATUS_NOTIFY, - yid->yd->session_id); - - yahoo_packet_hash(pkt, 49, "WEBCAMINVITE"); - yahoo_packet_hash(pkt, 14, " "); - yahoo_packet_hash(pkt, 13, "0"); - yahoo_packet_hash(pkt, 1, yid->yd->user); - yahoo_packet_hash(pkt, 5, who); - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -static void yahoo_search_internal(int id, int t, const char *text, int g, - int ar, int photo, int yahoo_only, int startpos, int total) -{ - struct yahoo_data *yd = find_conn_by_id(id); - struct yahoo_input_data *yid; - char url[1024]; - char buff[1024]; - char *ctext, *p; - - if (!yd) - return; - - yid = y_new0(struct yahoo_input_data, 1); - yid->yd = yd; - yid->type = YAHOO_CONNECTION_SEARCH; - - /* - age range - .ar=1 - 13-18, 2 - 18-25, 3 - 25-35, 4 - 35-50, 5 - 50-70, 6 - 70+ - */ - - snprintf(buff, sizeof(buff), "&.sq=%%20&.tt=%d&.ss=%d", total, - startpos); - - ctext = strdup(text); - while ((p = strchr(ctext, ' '))) - *p = '+'; - - snprintf(url, 1024, - "http://members.yahoo.com/interests?.oc=m&.kw=%s&.sb=%d&.g=%d&.ar=0%s%s%s", - ctext, t, g, photo ? "&.p=y" : "", yahoo_only ? "&.pg=y" : "", - startpos ? buff : ""); - - FREE(ctext); - - snprintf(buff, sizeof(buff), "Y=%s; T=%s", yd->cookie_y, yd->cookie_t); - - inputs = y_list_prepend(inputs, yid); - yahoo_http_get(yid->yd->client_id, url, buff, 0, 0, - _yahoo_http_connected, yid); -} - -void yahoo_search(int id, enum yahoo_search_type t, const char *text, - enum yahoo_search_gender g, enum yahoo_search_agerange ar, int photo, - int yahoo_only) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_search_state *yss; - - if (!yid) - return; - - if (!yid->ys) - yid->ys = y_new0(struct yahoo_search_state, 1); - - yss = yid->ys; - - FREE(yss->lsearch_text); - yss->lsearch_type = t; - yss->lsearch_text = strdup(text); - yss->lsearch_gender = g; - yss->lsearch_agerange = ar; - yss->lsearch_photo = photo; - yss->lsearch_yahoo_only = yahoo_only; - - yahoo_search_internal(id, t, text, g, ar, photo, yahoo_only, 0, 0); -} - -void yahoo_search_again(int id, int start) -{ - struct yahoo_input_data *yid = - find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - struct yahoo_search_state *yss; - - if (!yid || !yid->ys) - return; - - yss = yid->ys; - - if (start == -1) - start = yss->lsearch_nstart + yss->lsearch_nfound; - - yahoo_search_internal(id, yss->lsearch_type, yss->lsearch_text, - yss->lsearch_gender, yss->lsearch_agerange, - yss->lsearch_photo, yss->lsearch_yahoo_only, - start, yss->lsearch_ntotal); -} - -void yahoo_send_picture(int id, const char *name, unsigned long size, - yahoo_get_fd_callback callback, void *data) -{ - /* Not Implemented */ -} - -/* File Transfer */ -static YList *active_file_transfers = NULL; - -enum { - FT_STATE_HEAD = 1, - FT_STATE_RECV, - FT_STATE_RECV_START, - FT_STATE_SEND -}; - -struct send_file_data { - int client_id; - char *id; - char *who; - char *filename; - char *ip_addr; - char *token; - int size; - - struct yahoo_input_data *yid; - int state; - - yahoo_get_fd_callback callback; - void *data; -}; - -static char *yahoo_get_random(void) -{ - int i = 0; - int r = 0; - int c = 0; - char out[25]; - - out[24] = '\0'; - out[23] = '$'; - out[22] = '$'; - - for (i = 0; i < 22; i++) { - if(r == 0) - r = rand(); - - c = r%61; - - if(c<26) - out[i] = c + 'a'; - else if (c<52) - out[i] = c - 26 + 'A'; - else - out[i] = c - 52 + '0'; - - r /= 61; - } - - return strdup(out); -} - -static int _are_same_id(const void *sfd1, const void *id) -{ - return strcmp(((struct send_file_data *)sfd1)->id, (char *)id); -} - -static int _are_same_yid(const void *sfd1, const void *yid) -{ - if(((struct send_file_data *)sfd1)->yid == yid) - return 0; - else - return 1; -} - -static struct send_file_data *yahoo_get_active_transfer(char *id) -{ - YList *l = y_list_find_custom(active_file_transfers, id, - _are_same_id); - - if(l) - return (struct send_file_data *)l->data; - - return NULL; -} - -static struct send_file_data *yahoo_get_active_transfer_with_yid(void *yid) -{ - YList *l = y_list_find_custom(active_file_transfers, yid, - _are_same_yid); - - if(l) - return (struct send_file_data *)l->data; - - return NULL; -} - -static void yahoo_add_active_transfer(struct send_file_data *sfd) -{ - active_file_transfers = y_list_prepend(active_file_transfers, sfd); -} - -static void yahoo_remove_active_transfer(struct send_file_data *sfd) -{ - active_file_transfers = y_list_remove(active_file_transfers, sfd); - free(sfd->id); - free(sfd->who); - free(sfd->filename); - free(sfd->ip_addr); - FREE(sfd); -} - -static void _yahoo_ft_upload_connected(int id, void *fd, int error, void *data) -{ - struct send_file_data *sfd = data; - struct yahoo_input_data *yid = sfd->yid; - - if (!fd) { - inputs = y_list_remove(inputs, yid); - FREE(yid); - return; - } - - sfd->callback(id, fd, error, sfd->data); - - yid->fd = fd; - yid->read_tag = - YAHOO_CALLBACK(ext_yahoo_add_handler) (yid->yd->client_id, fd, - YAHOO_INPUT_READ, yid); -} - -static void yahoo_file_transfer_upload(struct yahoo_data *yd, - struct send_file_data *sfd) -{ - char url[256]; - char buff[4096]; - char *sender_enc = NULL, *recv_enc = NULL, *token_enc = NULL; - - struct yahoo_input_data *yid = y_new0(struct yahoo_input_data, 1); - - yid->yd = yd; - yid->type = YAHOO_CONNECTION_FT; - - inputs = y_list_prepend(inputs, yid); - sfd->yid = yid; - sfd->state = FT_STATE_SEND; - - token_enc = yahoo_urlencode(sfd->token); - sender_enc = yahoo_urlencode(yd->user); - recv_enc = yahoo_urlencode(sfd->who); - - snprintf(url, sizeof(url), - "http://%s/relay?token=%s&sender=%s&recver=%s", sfd->ip_addr, - token_enc, sender_enc, recv_enc); - - snprintf(buff, sizeof(buff), "T=%s; Y=%s", yd->cookie_t, yd->cookie_y); - - yahoo_http_post(yd->client_id, url, buff, sfd->size, - _yahoo_ft_upload_connected, sfd); - - FREE(token_enc); - FREE(sender_enc); - FREE(recv_enc); -} - -static void yahoo_init_ft_recv(struct yahoo_data *yd, - struct send_file_data *sfd) -{ - char url[256]; - char buff[1024]; - char *sender_enc = NULL, *recv_enc = NULL, *token_enc = NULL; - - struct yahoo_input_data *yid = y_new0(struct yahoo_input_data, 1); - - yid->yd = yd; - yid->type = YAHOO_CONNECTION_FT; - - inputs = y_list_prepend(inputs, yid); - sfd->yid = yid; - sfd->state = FT_STATE_HEAD; - - token_enc = yahoo_urlencode(sfd->token); - sender_enc = yahoo_urlencode(sfd->who); - recv_enc = yahoo_urlencode(yd->user); - - snprintf(url, sizeof(url), - "http://%s/relay?token=%s&sender=%s&recver=%s", sfd->ip_addr, - token_enc, sender_enc, recv_enc); - - snprintf(buff, sizeof(buff), "Y=%s; T=%s", yd->cookie_y, yd->cookie_t); - - yahoo_http_head(yid->yd->client_id, url, buff, 0, NULL, - _yahoo_http_connected, yid); - - FREE(token_enc); - FREE(sender_enc); - FREE(recv_enc); -} - -static void yahoo_file_transfer_accept(struct yahoo_input_data *yid, - struct send_file_data *sfd) -{ - struct yahoo_packet *pkt; - - pkt = yahoo_packet_new(YAHOO_SERVICE_Y7_FILETRANSFERACCEPT, - YPACKET_STATUS_DEFAULT, yid->yd->session_id); - - yahoo_packet_hash(pkt, 1, yid->yd->user); - yahoo_packet_hash(pkt, 5, sfd->who); - yahoo_packet_hash(pkt, 265, sfd->id); - yahoo_packet_hash(pkt, 27, sfd->filename); - yahoo_packet_hash(pkt, 249, "3"); - yahoo_packet_hash(pkt, 251, sfd->token); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); - - yahoo_init_ft_recv(yid->yd, sfd); -} - -static void yahoo_process_filetransferaccept(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - YList *l; - struct send_file_data *sfd; - char *who = NULL; - char *filename = NULL; - char *id = NULL; - char *token = NULL; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - switch (pair->key) { - case 4: - who = pair->value; - break; - case 5: - /* Me... don't care */ - break; - case 249: - break; - case 265: - id = pair->value; - break; - case 251: - token = pair->value; - break; - case 27: - filename = pair->value; - break; - } - } - - sfd = yahoo_get_active_transfer(id); - - if (sfd) { - sfd->token = strdup(token); - - yahoo_file_transfer_upload(yid->yd, sfd); - } - else { - YAHOO_CALLBACK(ext_yahoo_file_transfer_done) - (yid->yd->client_id, YAHOO_FILE_TRANSFER_UNKNOWN, - sfd->data); - - yahoo_remove_active_transfer(sfd); - } -} - -static void yahoo_process_filetransferinfo(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - YList *l; - char *who = NULL; - char *filename = NULL; - char *id = NULL; - char *token = NULL; - char *ip_addr = NULL; - - struct send_file_data *sfd; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - switch (pair->key) { - case 1: - case 4: - who = pair->value; - break; - case 5: - /* Me... don't care */ - break; - case 249: - break; - case 265: - id = pair->value; - break; - case 250: - ip_addr = pair->value; - break; - case 251: - token = pair->value; - break; - case 27: - filename = pair->value; - break; - } - } - - sfd = yahoo_get_active_transfer(id); - - if (sfd) { - sfd->token = strdup(token); - sfd->ip_addr = strdup(ip_addr); - - yahoo_file_transfer_accept(yid, sfd); - } - else { - YAHOO_CALLBACK(ext_yahoo_file_transfer_done) - (yid->yd->client_id, YAHOO_FILE_TRANSFER_UNKNOWN, - sfd->data); - - yahoo_remove_active_transfer(sfd); - } -} - -static void yahoo_send_filetransferinfo(struct yahoo_data *yd, - struct send_file_data *sfd) -{ - struct yahoo_input_data *yid; - struct yahoo_packet *pkt; - - yid = find_input_by_id_and_type(yd->client_id, YAHOO_CONNECTION_PAGER); - sfd->ip_addr = YAHOO_CALLBACK(ext_yahoo_get_ip_addr)("relay.yahoo.com"); - - if (!sfd->ip_addr) { - YAHOO_CALLBACK(ext_yahoo_file_transfer_done) - (yd->client_id, YAHOO_FILE_TRANSFER_RELAY, sfd->data); - - yahoo_remove_active_transfer(sfd); - - return; - } - - pkt = yahoo_packet_new(YAHOO_SERVICE_Y7_FILETRANSFERINFO, - YPACKET_STATUS_DEFAULT, yd->session_id); - - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 5, sfd->who); - yahoo_packet_hash(pkt, 265, sfd->id); - yahoo_packet_hash(pkt, 27, sfd->filename); - yahoo_packet_hash(pkt, 249, "3"); - yahoo_packet_hash(pkt, 250, sfd->ip_addr); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -static void yahoo_process_filetransfer(struct yahoo_input_data *yid, - struct yahoo_packet *pkt) -{ - YList *l; - char *who = NULL; - char *filename = NULL; - char *msg = NULL; - char *id = NULL; - int action = 0; - int size = 0; - struct yahoo_data *yd = yid->yd; - - struct send_file_data *sfd; - - for (l = pkt->hash; l; l = l->next) { - struct yahoo_pair *pair = l->data; - switch (pair->key) { - case 4: - who = pair->value; - break; - case 5: - /* Me... don't care */ - break; - case 222: - action = atoi(pair->value); - break; - case 265: - id = pair->value; - break; - case 266: /* Don't know */ - break; - case 302: /* Start Data? */ - break; - case 300: - break; - case 27: - filename = pair->value; - break; - case 28: - size = atoi(pair->value); - break; - case 14: - msg = pair->value; - case 301: /* End Data? */ - break; - case 303: - break; - - } - } - - if (action == YAHOO_FILE_TRANSFER_INIT) { - /* Received a FT request from buddy */ - sfd = y_new0(struct send_file_data, 1); - - sfd->client_id = yd->client_id; - sfd->id = strdup(id); - sfd->who = strdup(who); - sfd->filename = strdup(filename); - sfd->size = size; - - yahoo_add_active_transfer(sfd); - - YAHOO_CALLBACK(ext_yahoo_got_file) (yd->client_id, yd->user, - who, msg, filename, size, sfd->id); - } - else { - /* Response to our request */ - sfd = yahoo_get_active_transfer(id); - - if (sfd && action == YAHOO_FILE_TRANSFER_ACCEPT) { - yahoo_send_filetransferinfo(yd, sfd); - } - else if (!sfd || action == YAHOO_FILE_TRANSFER_REJECT) { - YAHOO_CALLBACK(ext_yahoo_file_transfer_done) - (yd->client_id, YAHOO_FILE_TRANSFER_REJECT, - sfd->data); - - yahoo_remove_active_transfer(sfd); - } - } -} - -void yahoo_send_file(int id, const char *who, const char *msg, - const char *name, unsigned long size, - yahoo_get_fd_callback callback, void *data) -{ - struct yahoo_packet *pkt = NULL; - char size_str[10]; - struct yahoo_input_data *yid; - struct yahoo_data *yd; - struct send_file_data *sfd; - - yid = find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); - yd = find_conn_by_id(id); - sfd = y_new0(struct send_file_data, 1); - - sfd->client_id = id; - sfd->id = yahoo_get_random(); - sfd->who = strdup(who); - sfd->filename = strdup(name); - sfd->size = size; - sfd->callback = callback; - sfd->data = data; - - yahoo_add_active_transfer(sfd); - - if (!yd) - return; - - pkt = yahoo_packet_new(YAHOO_SERVICE_Y7_FILETRANSFER, - YPACKET_STATUS_DEFAULT, yd->session_id); - - snprintf(size_str, sizeof(size_str), "%ld", size); - - yahoo_packet_hash(pkt, 1, yd->user); - yahoo_packet_hash(pkt, 5, who); - yahoo_packet_hash(pkt, 265, sfd->id); - yahoo_packet_hash(pkt, 222, "1"); - yahoo_packet_hash(pkt, 266, "1"); - yahoo_packet_hash(pkt, 302, "268"); - yahoo_packet_hash(pkt, 300, "268"); - yahoo_packet_hash(pkt, 27, name); - yahoo_packet_hash(pkt, 28, size_str); - yahoo_packet_hash(pkt, 301, "268"); - yahoo_packet_hash(pkt, 303, "268"); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); -} - -void yahoo_send_file_transfer_response(int client_id, int response, char *id, void *data) -{ - struct yahoo_packet *pkt = NULL; - char resp[2]; - struct yahoo_input_data *yid; - - struct send_file_data *sfd = yahoo_get_active_transfer(id); - - sfd->data = data; - - yid = find_input_by_id_and_type(client_id, YAHOO_CONNECTION_PAGER); - - pkt = yahoo_packet_new(YAHOO_SERVICE_Y7_FILETRANSFER, - YPACKET_STATUS_DEFAULT, yid->yd->session_id); - - snprintf(resp, sizeof(resp), "%d", response); - - yahoo_packet_hash(pkt, 1, yid->yd->user); - yahoo_packet_hash(pkt, 5, sfd->who); - yahoo_packet_hash(pkt, 265, sfd->id); - yahoo_packet_hash(pkt, 222, resp); - - yahoo_send_packet(yid, pkt, 0); - - yahoo_packet_free(pkt); - - if(response == YAHOO_FILE_TRANSFER_REJECT) - yahoo_remove_active_transfer(sfd); -} - -static void yahoo_process_ft_connection(struct yahoo_input_data *yid, int over) -{ - struct send_file_data *sfd; - struct yahoo_data *yd = yid->yd; - - sfd = yahoo_get_active_transfer_with_yid(yid); - - if (!sfd) { - LOG(("Something funny happened. yid %p has no sfd.\n", yid)); - return; - } - - /* - * We want to handle only the complete data with HEAD since we don't - * want a situation where both the GET and HEAD are active. - * With SEND, we really can't do much with partial response - */ - if ((sfd->state == FT_STATE_HEAD || sfd->state == FT_STATE_SEND) - && !over) - return; - - if (sfd->state == FT_STATE_HEAD) { - /* Do a GET */ - char url[256]; - char buff[1024]; - char *sender_enc = NULL, *recv_enc = NULL, *token_enc = NULL; - - struct yahoo_input_data *yid_ft = - y_new0(struct yahoo_input_data, 1); - - yid_ft->yd = yid->yd; - yid_ft->type = YAHOO_CONNECTION_FT; - - inputs = y_list_prepend(inputs, yid_ft); - sfd->yid = yid_ft; - sfd->state = FT_STATE_RECV; - - token_enc = yahoo_urlencode(sfd->token); - sender_enc = yahoo_urlencode(sfd->who); - recv_enc = yahoo_urlencode(yd->user); - - snprintf(url, sizeof(url), - "http://%s/relay?token=%s&sender=%s&recver=%s", sfd->ip_addr, - token_enc, sender_enc, recv_enc); - - snprintf(buff, sizeof(buff), "Y=%s; T=%s", yd->cookie_y, - yd->cookie_t); - - - yahoo_http_get(yd->client_id, url, buff, 1, 1, - _yahoo_http_connected, yid_ft); - - FREE(token_enc); - FREE(sender_enc); - FREE(recv_enc); - } - else if (sfd->state == FT_STATE_RECV || - sfd->state == FT_STATE_RECV_START) { - - unsigned char *data_begin = NULL; - - if (yid->rxlen == 0) - yahoo_remove_active_transfer(sfd); - - if (sfd->state != FT_STATE_RECV_START && - (data_begin = - (unsigned char *)strstr((char *)yid->rxqueue, - "\r\n\r\n"))) { - - sfd->state = FT_STATE_RECV_START; - - yid->rxlen -= 4+(data_begin-yid->rxqueue)/sizeof(char); - data_begin += 4; - - if (yid->rxlen > 0) - YAHOO_CALLBACK(ext_yahoo_got_ft_data) - (yd->client_id, data_begin, - yid->rxlen, sfd->data); - } - else if (sfd->state == FT_STATE_RECV_START) - YAHOO_CALLBACK(ext_yahoo_got_ft_data) (yd->client_id, - yid->rxqueue, yid->rxlen, sfd->data); - - FREE(yid->rxqueue); - yid->rxqueue = NULL; - yid->rxlen = 0; - } - else if (sfd->state == FT_STATE_SEND) { - /* Sent file completed */ - int len = 0; - char *off = strstr((char *)yid->rxqueue, "Content-Length: "); - - if (off) { - off += 16; - len = atoi(off); - } - - if (len < sfd->size) - YAHOO_CALLBACK(ext_yahoo_file_transfer_done) - (yd->client_id, - YAHOO_FILE_TRANSFER_FAILED, sfd->data); - else - YAHOO_CALLBACK(ext_yahoo_file_transfer_done) - (yd->client_id, - YAHOO_FILE_TRANSFER_DONE, sfd->data); - - yahoo_remove_active_transfer(sfd); - } -} - -/* End File Transfer */ - -enum yahoo_status yahoo_current_status(int id) -{ - struct yahoo_data *yd = find_conn_by_id(id); - if (!yd) - return YAHOO_STATUS_OFFLINE; - return yd->current_status; -} - -const YList *yahoo_get_buddylist(int id) -{ - struct yahoo_data *yd = find_conn_by_id(id); - if (!yd) - return NULL; - return yd->buddies; -} - -const YList *yahoo_get_ignorelist(int id) -{ - struct yahoo_data *yd = find_conn_by_id(id); - if (!yd) - return NULL; - return yd->ignore; -} - -const YList *yahoo_get_identities(int id) -{ - struct yahoo_data *yd = find_conn_by_id(id); - if (!yd) - return NULL; - return yd->identities; -} - -const char *yahoo_get_cookie(int id, const char *which) -{ - struct yahoo_data *yd = find_conn_by_id(id); - if (!yd) - return NULL; - if (!strncasecmp(which, "y", 1)) - return yd->cookie_y; - if (!strncasecmp(which, "b", 1)) - return yd->cookie_b; - if (!strncasecmp(which, "t", 1)) - return yd->cookie_t; - if (!strncasecmp(which, "c", 1)) - return yd->cookie_c; - if (!strncasecmp(which, "login", 5)) - return yd->login_cookie; - return NULL; -} - -const char *yahoo_get_profile_url(void) -{ - return profile_url; -} diff --git a/backends/libyahoo2/yahoo/md5.c b/backends/libyahoo2/yahoo/md5.c deleted file mode 100644 index cfd06ea4..00000000 --- a/backends/libyahoo2/yahoo/md5.c +++ /dev/null @@ -1,405 +0,0 @@ -/* - Copyright (C) 1999 Aladdin Enterprises. All rights reserved. - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - L. Peter Deutsch - ghost@aladdin.com - - */ -/* - Independent implementation of MD5 (RFC 1321). - - This code implements the MD5 Algorithm defined in RFC 1321. - It is derived directly from the text of the RFC and not from the - reference implementation. - - The original and principal author of md5.c is L. Peter Deutsch - . Other authors are noted in the change history - that follows (in reverse chronological order): - - 1999-11-04 lpd Edited comments slightly for automatic TOC extraction. - 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5). - 1999-05-03 lpd Original version. - */ - -#if HAVE_CONFIG_H -# include -#endif - -#include "md5.h" - -#if STDC_HEADERS -# include -#else -# if !HAVE_STRCHR -# define strchr index -# define strrchr rindex -# endif -char *strchr(), *strrchr(); -# if !HAVE_MEMCPY -# define memcpy(d, s, n) bcopy ((s), (d), (n)) -# define memmove(d, s, n) bcopy ((s), (d), (n)) -# endif -#endif - -#ifdef TEST -/* - * Compile with -DTEST to create a self-contained executable test program. - * The test program should print out the same values as given in section - * A.5 of RFC 1321, reproduced below. - */ -main() -{ - static const char *const test[7] = { - "", /*d41d8cd98f00b204e9800998ecf8427e */ - "945399884.61923487334tuvga", /*0cc175b9c0f1b6a831c399e269772661 */ - "abc", /*900150983cd24fb0d6963f7d28e17f72 */ - "message digest", /*f96b697d7cb7938d525a2f31aaf161d0 */ - "abcdefghijklmnopqrstuvwxyz", /*c3fcd3d76192e4007dfb496cca67e13b */ - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", - /*d174ab98d277d9f5a5611c2c9f419d9f */ - "12345678901234567890123456789012345678901234567890123456789012345678901234567890" /*57edf4a22be3c955ac49da2e2107b67a */ - }; - int i; - - for (i = 0; i < 7; ++i) { - md5_state_t state; - md5_byte_t digest[16]; - int di; - - md5_init(&state); - md5_append(&state, (const md5_byte_t *)test[i], - strlen(test[i])); - md5_finish(&state, digest); - printf("MD5 (\"%s\") = ", test[i]); - for (di = 0; di < 16; ++di) - printf("%02x", digest[di]); - printf("\n"); - } - return 0; -} -#endif /* TEST */ - -/* - * For reference, here is the program that computed the T values. - */ -#if 0 -#include -main() -{ - int i; - for (i = 1; i <= 64; ++i) { - unsigned long v = - (unsigned long)(4294967296.0 * fabs(sin((double)i))); - printf("#define T%d 0x%08lx\n", i, v); - } - return 0; -} -#endif -/* - * End of T computation program. - */ -#define T1 0xd76aa478 -#define T2 0xe8c7b756 -#define T3 0x242070db -#define T4 0xc1bdceee -#define T5 0xf57c0faf -#define T6 0x4787c62a -#define T7 0xa8304613 -#define T8 0xfd469501 -#define T9 0x698098d8 -#define T10 0x8b44f7af -#define T11 0xffff5bb1 -#define T12 0x895cd7be -#define T13 0x6b901122 -#define T14 0xfd987193 -#define T15 0xa679438e -#define T16 0x49b40821 -#define T17 0xf61e2562 -#define T18 0xc040b340 -#define T19 0x265e5a51 -#define T20 0xe9b6c7aa -#define T21 0xd62f105d -#define T22 0x02441453 -#define T23 0xd8a1e681 -#define T24 0xe7d3fbc8 -#define T25 0x21e1cde6 -#define T26 0xc33707d6 -#define T27 0xf4d50d87 -#define T28 0x455a14ed -#define T29 0xa9e3e905 -#define T30 0xfcefa3f8 -#define T31 0x676f02d9 -#define T32 0x8d2a4c8a -#define T33 0xfffa3942 -#define T34 0x8771f681 -#define T35 0x6d9d6122 -#define T36 0xfde5380c -#define T37 0xa4beea44 -#define T38 0x4bdecfa9 -#define T39 0xf6bb4b60 -#define T40 0xbebfbc70 -#define T41 0x289b7ec6 -#define T42 0xeaa127fa -#define T43 0xd4ef3085 -#define T44 0x04881d05 -#define T45 0xd9d4d039 -#define T46 0xe6db99e5 -#define T47 0x1fa27cf8 -#define T48 0xc4ac5665 -#define T49 0xf4292244 -#define T50 0x432aff97 -#define T51 0xab9423a7 -#define T52 0xfc93a039 -#define T53 0x655b59c3 -#define T54 0x8f0ccc92 -#define T55 0xffeff47d -#define T56 0x85845dd1 -#define T57 0x6fa87e4f -#define T58 0xfe2ce6e0 -#define T59 0xa3014314 -#define T60 0x4e0811a1 -#define T61 0xf7537e82 -#define T62 0xbd3af235 -#define T63 0x2ad7d2bb -#define T64 0xeb86d391 - -static void md5_process(md5_state_t *pms, const md5_byte_t *data /*[64] */ ) -{ - md5_word_t - a = pms->abcd[0], b = pms->abcd[1], - c = pms->abcd[2], d = pms->abcd[3]; - md5_word_t t; - -#ifndef ARCH_IS_BIG_ENDIAN -# define ARCH_IS_BIG_ENDIAN 1 /* slower, default implementation */ -#endif -#if ARCH_IS_BIG_ENDIAN - - /* - * On big-endian machines, we must arrange the bytes in the right - * order. (This also works on machines of unknown byte order.) - */ - md5_word_t X[16]; - const md5_byte_t *xp = data; - int i; - - for (i = 0; i < 16; ++i, xp += 4) - X[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24); - -#else /* !ARCH_IS_BIG_ENDIAN */ - - /* - * On little-endian machines, we can process properly aligned data - * without copying it. - */ - md5_word_t xbuf[16]; - const md5_word_t *X; - - if (!((data - (const md5_byte_t *)0) & 3)) { - /* data are properly aligned */ - X = (const md5_word_t *)data; - } else { - /* not aligned */ - memcpy(xbuf, data, 64); - X = xbuf; - } -#endif - -#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) - - /* Round 1. */ - /* Let [abcd k s i] denote the operation - a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */ -#define F(x, y, z) (((x) & (y)) | (~(x) & (z))) -#define SET(a, b, c, d, k, s, Ti)\ - t = a + F(b,c,d) + X[k] + Ti;\ - a = ROTATE_LEFT(t, s) + b - /* Do the following 16 operations. */ - SET(a, b, c, d, 0, 7, T1); - SET(d, a, b, c, 1, 12, T2); - SET(c, d, a, b, 2, 17, T3); - SET(b, c, d, a, 3, 22, T4); - SET(a, b, c, d, 4, 7, T5); - SET(d, a, b, c, 5, 12, T6); - SET(c, d, a, b, 6, 17, T7); - SET(b, c, d, a, 7, 22, T8); - SET(a, b, c, d, 8, 7, T9); - SET(d, a, b, c, 9, 12, T10); - SET(c, d, a, b, 10, 17, T11); - SET(b, c, d, a, 11, 22, T12); - SET(a, b, c, d, 12, 7, T13); - SET(d, a, b, c, 13, 12, T14); - SET(c, d, a, b, 14, 17, T15); - SET(b, c, d, a, 15, 22, T16); -#undef SET - - /* Round 2. */ - /* Let [abcd k s i] denote the operation - a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */ -#define G(x, y, z) (((x) & (z)) | ((y) & ~(z))) -#define SET(a, b, c, d, k, s, Ti)\ - t = a + G(b,c,d) + X[k] + Ti;\ - a = ROTATE_LEFT(t, s) + b - /* Do the following 16 operations. */ - SET(a, b, c, d, 1, 5, T17); - SET(d, a, b, c, 6, 9, T18); - SET(c, d, a, b, 11, 14, T19); - SET(b, c, d, a, 0, 20, T20); - SET(a, b, c, d, 5, 5, T21); - SET(d, a, b, c, 10, 9, T22); - SET(c, d, a, b, 15, 14, T23); - SET(b, c, d, a, 4, 20, T24); - SET(a, b, c, d, 9, 5, T25); - SET(d, a, b, c, 14, 9, T26); - SET(c, d, a, b, 3, 14, T27); - SET(b, c, d, a, 8, 20, T28); - SET(a, b, c, d, 13, 5, T29); - SET(d, a, b, c, 2, 9, T30); - SET(c, d, a, b, 7, 14, T31); - SET(b, c, d, a, 12, 20, T32); -#undef SET - - /* Round 3. */ - /* Let [abcd k s t] denote the operation - a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */ -#define H(x, y, z) ((x) ^ (y) ^ (z)) -#define SET(a, b, c, d, k, s, Ti)\ - t = a + H(b,c,d) + X[k] + Ti;\ - a = ROTATE_LEFT(t, s) + b - /* Do the following 16 operations. */ - SET(a, b, c, d, 5, 4, T33); - SET(d, a, b, c, 8, 11, T34); - SET(c, d, a, b, 11, 16, T35); - SET(b, c, d, a, 14, 23, T36); - SET(a, b, c, d, 1, 4, T37); - SET(d, a, b, c, 4, 11, T38); - SET(c, d, a, b, 7, 16, T39); - SET(b, c, d, a, 10, 23, T40); - SET(a, b, c, d, 13, 4, T41); - SET(d, a, b, c, 0, 11, T42); - SET(c, d, a, b, 3, 16, T43); - SET(b, c, d, a, 6, 23, T44); - SET(a, b, c, d, 9, 4, T45); - SET(d, a, b, c, 12, 11, T46); - SET(c, d, a, b, 15, 16, T47); - SET(b, c, d, a, 2, 23, T48); -#undef SET - - /* Round 4. */ - /* Let [abcd k s t] denote the operation - a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */ -#define I(x, y, z) ((y) ^ ((x) | ~(z))) -#define SET(a, b, c, d, k, s, Ti)\ - t = a + I(b,c,d) + X[k] + Ti;\ - a = ROTATE_LEFT(t, s) + b - /* Do the following 16 operations. */ - SET(a, b, c, d, 0, 6, T49); - SET(d, a, b, c, 7, 10, T50); - SET(c, d, a, b, 14, 15, T51); - SET(b, c, d, a, 5, 21, T52); - SET(a, b, c, d, 12, 6, T53); - SET(d, a, b, c, 3, 10, T54); - SET(c, d, a, b, 10, 15, T55); - SET(b, c, d, a, 1, 21, T56); - SET(a, b, c, d, 8, 6, T57); - SET(d, a, b, c, 15, 10, T58); - SET(c, d, a, b, 6, 15, T59); - SET(b, c, d, a, 13, 21, T60); - SET(a, b, c, d, 4, 6, T61); - SET(d, a, b, c, 11, 10, T62); - SET(c, d, a, b, 2, 15, T63); - SET(b, c, d, a, 9, 21, T64); -#undef SET - - /* Then perform the following additions. (That is increment each - of the four registers by the value it had before this block - was started.) */ - pms->abcd[0] += a; - pms->abcd[1] += b; - pms->abcd[2] += c; - pms->abcd[3] += d; -} - -void md5_init(md5_state_t *pms) -{ - pms->count[0] = pms->count[1] = 0; - pms->abcd[0] = 0x67452301; - pms->abcd[1] = 0xefcdab89; - pms->abcd[2] = 0x98badcfe; - pms->abcd[3] = 0x10325476; -} - -void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes) -{ - const md5_byte_t *p = data; - int left = nbytes; - int offset = (pms->count[0] >> 3) & 63; - md5_word_t nbits = (md5_word_t) (nbytes << 3); - - if (nbytes <= 0) - return; - - /* Update the message length. */ - pms->count[1] += nbytes >> 29; - pms->count[0] += nbits; - if (pms->count[0] < nbits) - pms->count[1]++; - - /* Process an initial partial block. */ - if (offset) { - int copy = (offset + nbytes > 64 ? 64 - offset : nbytes); - - memcpy(pms->buf + offset, p, copy); - if (offset + copy < 64) - return; - p += copy; - left -= copy; - md5_process(pms, pms->buf); - } - - /* Process full blocks. */ - for (; left >= 64; p += 64, left -= 64) - md5_process(pms, p); - - /* Process a final partial block. */ - if (left) - memcpy(pms->buf, p, left); -} - -void md5_finish(md5_state_t *pms, md5_byte_t digest[16]) -{ - static const md5_byte_t pad[64] = { - 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - md5_byte_t data[8]; - int i; - - /* Save the length before padding. */ - for (i = 0; i < 8; ++i) - data[i] = (md5_byte_t) (pms->count[i >> 2] >> ((i & 3) << 3)); - /* Pad to 56 bytes mod 64. */ - md5_append(pms, pad, ((55 - (pms->count[0] >> 3)) & 63) + 1); - /* Append the length. */ - md5_append(pms, data, 8); - for (i = 0; i < 16; ++i) - digest[i] = (md5_byte_t) (pms->abcd[i >> 2] >> ((i & 3) << 3)); -} diff --git a/backends/libyahoo2/yahoo/md5.h b/backends/libyahoo2/yahoo/md5.h deleted file mode 100644 index 6c75aa6a..00000000 --- a/backends/libyahoo2/yahoo/md5.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - Copyright (C) 1999 Aladdin Enterprises. All rights reserved. - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - L. Peter Deutsch - ghost@aladdin.com - - */ -/* - Independent implementation of MD5 (RFC 1321). - - This code implements the MD5 Algorithm defined in RFC 1321. - It is derived directly from the text of the RFC and not from the - reference implementation. - - The original and principal author of md5.h is L. Peter Deutsch - . Other authors are noted in the change history - that follows (in reverse chronological order): - - 1999-11-04 lpd Edited comments slightly for automatic TOC extraction. - 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5); - added conditionalization for C++ compilation from Martin - Purschke . - 1999-05-03 lpd Original version. - */ - -#ifndef md5_INCLUDED -# define md5_INCLUDED - -/* - * This code has some adaptations for the Ghostscript environment, but it - * will compile and run correctly in any environment with 8-bit chars and - * 32-bit ints. Specifically, it assumes that if the following are - * defined, they have the same meaning as in Ghostscript: P1, P2, P3, - * ARCH_IS_BIG_ENDIAN. - */ - -typedef unsigned char md5_byte_t; /* 8-bit byte */ -typedef unsigned int md5_word_t; /* 32-bit word */ - -/* Define the state of the MD5 Algorithm. */ -typedef struct md5_state_s { - md5_word_t count[2]; /* message length in bits, lsw first */ - md5_word_t abcd[4]; /* digest buffer */ - md5_byte_t buf[64]; /* accumulate block */ -} md5_state_t; - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initialize the algorithm. */ -#ifdef P1 - void md5_init(P1(md5_state_t *pms)); -#else - void md5_init(md5_state_t *pms); -#endif - -/* Append a string to the message. */ -#ifdef P3 - void md5_append(P3(md5_state_t *pms, const md5_byte_t *data, - int nbytes)); -#else - void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes); -#endif - -/* Finish the message and return the digest. */ -#ifdef P2 - void md5_finish(P2(md5_state_t *pms, md5_byte_t digest[16])); -#else - void md5_finish(md5_state_t *pms, md5_byte_t digest[16]); -#endif - -#ifdef __cplusplus -} /* end extern "C" */ -#endif -#endif /* md5_INCLUDED */ diff --git a/backends/libyahoo2/yahoo/sha1.c b/backends/libyahoo2/yahoo/sha1.c deleted file mode 100644 index d90b17ba..00000000 --- a/backends/libyahoo2/yahoo/sha1.c +++ /dev/null @@ -1,613 +0,0 @@ -/*- - * Copyright (c) 2001-2003 Allan Saddi - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY ALLAN SADDI AND HIS CONTRIBUTORS ``AS IS'' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL ALLAN SADDI OR HIS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * Define WORDS_BIGENDIAN if compiling on a big-endian architecture. - * - * Define SHA1_TEST to test the implementation using the NIST's - * sample messages. The output should be: - * - * a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d - * 84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1 - * 34aa973c d4c4daa4 f61eeb2b dbad2731 6534016f - */ - -#ifdef HAVE_CONFIG_H -#include -#endif /* HAVE_CONFIG_H */ - -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif - -#include - -#include "sha1.h" - -#define ROTL(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) -#define ROTR(x, n) (((x) >> (n)) | ((x) << (32 - (n)))) - -#define F_0_19(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) -#define F_20_39(x, y, z) ((x) ^ (y) ^ (z)) -#define F_40_59(x, y, z) (((x) & ((y) | (z))) | ((y) & (z))) -#define F_60_79(x, y, z) ((x) ^ (y) ^ (z)) - -#define DO_ROUND(F, K) { \ - temp = ROTL(a, 5) + F(b, c, d) + e + *(W++) + K; \ - e = d; \ - d = c; \ - c = ROTL(b, 30); \ - b = a; \ - a = temp; \ -} - -#define K_0_19 0x5a827999L -#define K_20_39 0x6ed9eba1L -#define K_40_59 0x8f1bbcdcL -#define K_60_79 0xca62c1d6L - -#ifndef RUNTIME_ENDIAN - -#ifdef WORDS_BIGENDIAN - -#define BYTESWAP(x) (x) -#define BYTESWAP64(x) (x) - -#else /* WORDS_BIGENDIAN */ - -#define BYTESWAP(x) ((ROTR((x), 8) & 0xff00ff00L) | (ROTL((x), 8) & 0x00ff00ffL)) - -static uint64_t _byteswap64(uint64_t x) -{ - uint32_t a = x >> 32; - uint32_t b = (uint32_t) x; - return ((uint64_t) BYTESWAP(b) << 32) | (uint64_t) BYTESWAP(a); -} - -#define BYTESWAP64(x) _byteswap64(x) - -#endif /* WORDS_BIGENDIAN */ - -#else /* !RUNTIME_ENDIAN */ - -#define BYTESWAP(x) _byteswap(sc->littleEndian, x) -#define BYTESWAP64(x) _byteswap64(sc->littleEndian, x) - -#define _BYTESWAP(x) ((ROTR((x), 8) & 0xff00ff00L) | \ - (ROTL((x), 8) & 0x00ff00ffL)) -#define _BYTESWAP64(x) __byteswap64(x) - -static uint64_t __byteswap64(uint64_t x) -{ - uint32_t a = x >> 32; - uint32_t b = (uint32_t) x; - return ((uint64_t) _BYTESWAP(b) << 32) | (uint64_t) _BYTESWAP(a); -} - -static uint32_t _byteswap(int littleEndian, uint32_t x) -{ - if (!littleEndian) - return x; - else - return _BYTESWAP(x); -} - -static uint64_t _byteswap64(int littleEndian, uint64_t x) -{ - if (!littleEndian) - return x; - else - return _BYTESWAP64(x); -} - -static void setEndian(int *littleEndianp) -{ - union { - uint32_t w; - uint8_t b[4]; - } endian; - - endian.w = 1L; - *littleEndianp = endian.b[0] != 0; -} - -#endif /* !RUNTIME_ENDIAN */ - -static const uint8_t padding[64] = { - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -void SHA1Init(SHA1Context *sc) -{ -#ifdef RUNTIME_ENDIAN - setEndian(&sc->littleEndian); -#endif /* RUNTIME_ENDIAN */ - - sc->totalLength = 0LL; - sc->hash[0] = 0x67452301L; - sc->hash[1] = 0xefcdab89L; - sc->hash[2] = 0x98badcfeL; - sc->hash[3] = 0x10325476L; - sc->hash[4] = 0xc3d2e1f0L; - sc->bufferLength = 0L; -} - -static void burnStack(int size) -{ - char buf[128]; - - memset(buf, 0, sizeof(buf)); - size -= sizeof(buf); - if (size > 0) - burnStack(size); -} - -static void SHA1Guts(SHA1Context *sc, const uint32_t *cbuf) -{ - uint32_t buf[80]; - uint32_t *W, *W3, *W8, *W14, *W16; - uint32_t a, b, c, d, e, temp; - int i; - - W = buf; - - for (i = 15; i >= 0; i--) { - *(W++) = BYTESWAP(*cbuf); - cbuf++; - } - - W16 = &buf[0]; - W14 = &buf[2]; - W8 = &buf[8]; - W3 = &buf[13]; - - for (i = 63; i >= 0; i--) { - *W = *(W3++) ^ *(W8++) ^ *(W14++) ^ *(W16++); - *W = ROTL(*W, 1); - W++; - } - - a = sc->hash[0]; - b = sc->hash[1]; - c = sc->hash[2]; - d = sc->hash[3]; - e = sc->hash[4]; - - W = buf; - -#ifndef SHA1_UNROLL -#define SHA1_UNROLL 20 -#endif /* !SHA1_UNROLL */ - -#if SHA1_UNROLL == 1 - for (i = 19; i >= 0; i--) - DO_ROUND(F_0_19, K_0_19); - - for (i = 19; i >= 0; i--) - DO_ROUND(F_20_39, K_20_39); - - for (i = 19; i >= 0; i--) - DO_ROUND(F_40_59, K_40_59); - - for (i = 19; i >= 0; i--) - DO_ROUND(F_60_79, K_60_79); -#elif SHA1_UNROLL == 2 - for (i = 9; i >= 0; i--) { - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - } - - for (i = 9; i >= 0; i--) { - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - } - - for (i = 9; i >= 0; i--) { - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - } - - for (i = 9; i >= 0; i--) { - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - } -#elif SHA1_UNROLL == 4 - for (i = 4; i >= 0; i--) { - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - } - - for (i = 4; i >= 0; i--) { - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - } - - for (i = 4; i >= 0; i--) { - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - } - - for (i = 4; i >= 0; i--) { - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - } -#elif SHA1_UNROLL == 5 - for (i = 3; i >= 0; i--) { - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - } - - for (i = 3; i >= 0; i--) { - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - } - - for (i = 3; i >= 0; i--) { - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - } - - for (i = 3; i >= 0; i--) { - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - } -#elif SHA1_UNROLL == 10 - for (i = 1; i >= 0; i--) { - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - } - - for (i = 1; i >= 0; i--) { - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - } - - for (i = 1; i >= 0; i--) { - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - } - - for (i = 1; i >= 0; i--) { - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - } -#elif SHA1_UNROLL == 20 - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - DO_ROUND(F_0_19, K_0_19); - - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - DO_ROUND(F_20_39, K_20_39); - - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - DO_ROUND(F_40_59, K_40_59); - - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); - DO_ROUND(F_60_79, K_60_79); -#else /* SHA1_UNROLL */ -#error SHA1_UNROLL must be 1, 2, 4, 5, 10 or 20! -#endif - - sc->hash[0] += a; - sc->hash[1] += b; - sc->hash[2] += c; - sc->hash[3] += d; - sc->hash[4] += e; -} - -void SHA1Update(SHA1Context *sc, const void *vdata, uint32_t len) -{ - const uint8_t *data = vdata; - uint32_t bufferBytesLeft; - uint32_t bytesToCopy; - int needBurn = 0; - -#ifdef SHA1_FAST_COPY - if (sc->bufferLength) { - bufferBytesLeft = 64L - sc->bufferLength; - - bytesToCopy = bufferBytesLeft; - if (bytesToCopy > len) - bytesToCopy = len; - - memcpy(&sc->buffer.bytes[sc->bufferLength], data, bytesToCopy); - - sc->totalLength += bytesToCopy * 8L; - - sc->bufferLength += bytesToCopy; - data += bytesToCopy; - len -= bytesToCopy; - - if (sc->bufferLength == 64L) { - SHA1Guts(sc, sc->buffer.words); - needBurn = 1; - sc->bufferLength = 0L; - } - } - - while (len > 63) { - sc->totalLength += 512L; - - SHA1Guts(sc, data); - needBurn = 1; - - data += 64L; - len -= 64L; - } - - if (len) { - memcpy(&sc->buffer.bytes[sc->bufferLength], data, len); - - sc->totalLength += len * 8L; - - sc->bufferLength += len; - } -#else /* SHA1_FAST_COPY */ - while (len) { - bufferBytesLeft = 64L - sc->bufferLength; - - bytesToCopy = bufferBytesLeft; - if (bytesToCopy > len) - bytesToCopy = len; - - memcpy(&sc->buffer.bytes[sc->bufferLength], data, bytesToCopy); - - sc->totalLength += bytesToCopy * 8L; - - sc->bufferLength += bytesToCopy; - data += bytesToCopy; - len -= bytesToCopy; - - if (sc->bufferLength == 64L) { - SHA1Guts(sc, sc->buffer.words); - needBurn = 1; - sc->bufferLength = 0L; - } - } -#endif /* SHA1_FAST_COPY */ - - if (needBurn) - burnStack(sizeof(uint32_t[86]) + sizeof(uint32_t *[5]) + - sizeof(int)); -} - -void SHA1Final(SHA1Context *sc, uint8_t hash[SHA1_HASH_SIZE]) -{ - uint32_t bytesToPad; - uint64_t lengthPad; - int i; - - bytesToPad = 120L - sc->bufferLength; - if (bytesToPad > 64L) - bytesToPad -= 64L; - - lengthPad = BYTESWAP64(sc->totalLength); - - SHA1Update(sc, padding, bytesToPad); - SHA1Update(sc, &lengthPad, 8L); - - if (hash) { - for (i = 0; i < SHA1_HASH_WORDS; i++) { -#ifdef SHA1_FAST_COPY - *((uint32_t *)hash) = BYTESWAP(sc->hash[i]); -#else /* SHA1_FAST_COPY */ - hash[0] = (uint8_t) (sc->hash[i] >> 24); - hash[1] = (uint8_t) (sc->hash[i] >> 16); - hash[2] = (uint8_t) (sc->hash[i] >> 8); - hash[3] = (uint8_t) sc->hash[i]; -#endif /* SHA1_FAST_COPY */ - hash += 4; - } - } -} - -#ifdef SHA1_TEST - -#include -#include -#include - -int main(int argc, char *argv[]) -{ - SHA1Context foo; - uint8_t hash[SHA1_HASH_SIZE]; - char buf[1000]; - int i; - - SHA1Init(&foo); - SHA1Update(&foo, "abc", 3); - SHA1Final(&foo, hash); - - for (i = 0; i < SHA1_HASH_SIZE;) { - printf("%02x", hash[i++]); - if (!(i % 4)) - printf(" "); - } - printf("\n"); - - SHA1Init(&foo); - SHA1Update(&foo, - "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 56); - SHA1Final(&foo, hash); - - for (i = 0; i < SHA1_HASH_SIZE;) { - printf("%02x", hash[i++]); - if (!(i % 4)) - printf(" "); - } - printf("\n"); - - SHA1Init(&foo); - memset(buf, 'a', sizeof(buf)); - for (i = 0; i < 1000; i++) - SHA1Update(&foo, buf, sizeof(buf)); - SHA1Final(&foo, hash); - - for (i = 0; i < SHA1_HASH_SIZE;) { - printf("%02x", hash[i++]); - if (!(i % 4)) - printf(" "); - } - printf("\n"); - - exit(0); -} - -#endif /* SHA1_TEST */ diff --git a/backends/libyahoo2/yahoo/sha1.h b/backends/libyahoo2/yahoo/sha1.h deleted file mode 100644 index b42d6130..00000000 --- a/backends/libyahoo2/yahoo/sha1.h +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * Copyright (c) 2001-2003 Allan Saddi - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY ALLAN SADDI AND HIS CONTRIBUTORS ``AS IS'' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL ALLAN SADDI OR HIS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _SHA1_H -#define _SHA1_H - -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif - -#define SHA1_HASH_SIZE 20 - -/* Hash size in 32-bit words */ -#define SHA1_HASH_WORDS 5 - -struct _SHA1Context { - uint64_t totalLength; - uint32_t hash[SHA1_HASH_WORDS]; - uint32_t bufferLength; - union { - uint32_t words[16]; - uint8_t bytes[64]; - } buffer; -#ifdef RUNTIME_ENDIAN - int littleEndian; -#endif /* RUNTIME_ENDIAN */ -}; - -typedef struct _SHA1Context SHA1Context; - -#ifdef __cplusplus -extern "C" { -#endif - - void SHA1Init(SHA1Context *sc); - void SHA1Update(SHA1Context *sc, const void *data, uint32_t len); - void SHA1Final(SHA1Context *sc, uint8_t hash[SHA1_HASH_SIZE]); - -#ifdef __cplusplus -} -#endif -#endif /* _SHA1_H */ diff --git a/backends/libyahoo2/yahoo/yahoo2.h b/backends/libyahoo2/yahoo/yahoo2.h deleted file mode 100644 index 9a4dc7d2..00000000 --- a/backends/libyahoo2/yahoo/yahoo2.h +++ /dev/null @@ -1,225 +0,0 @@ -/* - * libyahoo2: yahoo2.h - * - * Copyright (C) 2002-2004, Philip S Tellis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef YAHOO2_H -#define YAHOO2_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "yahoo2_types.h" - -/* returns the socket descriptor object for a given pager connection. shouldn't be needed */ - void *yahoo_get_fd(int id); - -/* says how much logging to do */ -/* see yahoo2_types.h for the different values */ - int yahoo_set_log_level(enum yahoo_log_level level); - enum yahoo_log_level yahoo_get_log_level(void); - -/* these functions should be self explanatory */ -/* who always means the buddy you're acting on */ -/* id is the successful value returned by yahoo_init */ - -/* init returns a connection id used to identify the connection hereon */ -/* or 0 on failure */ -/* you must call init before calling any other function */ -/* - * The optional parameters to init are key/value pairs that specify - * server settings to use. This list must be NULL terminated - even - * if the list is empty. If a parameter isn't set, a default value - * will be used. Parameter keys are strings, parameter values are - * either strings or ints, depending on the key. Values passed in - * are copied, so you can use const/auto/static/pointers/whatever - * you want. Parameters are: - * NAME TYPE DEFAULT - * pager_host char * scs.msg.yahoo.com - * pager_port int 5050 - * filetransfer_host char * filetransfer.msg.yahoo.com - * filetransfer_port int 80 - * webcam_host char * webcam.yahoo.com - * webcam_port int 5100 - * webcam_description char * "" - * local_host char * "" - * conn_type int Y_WCM_DSL - * - * You should set at least local_host if you intend to use webcams - */ - int yahoo_init_with_attributes(const char *username, - const char *password, ...); - -/* yahoo_init does the same as yahoo_init_with_attributes, assuming defaults - * for all attributes */ - int yahoo_init(const char *username, const char *password); - -/* release all resources held by this session */ -/* you need to call yahoo_close for a session only if - * yahoo_logoff is never called for it (ie, it was never logged in) */ - void yahoo_close(int id); -/* login logs in to the server */ -/* initial is of type enum yahoo_status. see yahoo2_types.h */ - void yahoo_login(int id, int initial); - void yahoo_logoff(int id); -/* reloads status of all buddies */ - void yahoo_refresh(int id); -/* activates/deactivates an identity */ - void yahoo_set_identity_status(int id, const char *identity, - int active); -/* regets the entire buddy list from the server */ - void yahoo_get_list(int id); -/* download buddy contact information from your yahoo addressbook */ - void yahoo_get_yab(int id); -/* add/modify an address book entry. if yab->dbid is set, it will */ -/* modify that entry else it creates a new entry */ - void yahoo_set_yab(int id, struct yab *yab); - void yahoo_keepalive(int id); - void yahoo_chat_keepalive(int id); - -/* from is the identity you're sending from. if NULL, the default is used */ -/* utf8 is whether msg is a utf8 string or not. */ - void yahoo_send_im(int id, const char *from, const char *who, - const char *msg, int utf8, int picture); - void yahoo_send_buzz(int id, const char *from, const char *who); -/* if type is true, send typing notice, else send stopped typing notice */ - void yahoo_send_typing(int id, const char *from, const char *who, - int typ); - -/* used to set away/back status. */ -/* away says whether the custom message is an away message or a sig */ - void yahoo_set_away(int id, enum yahoo_status state, const char *msg, - int away); - - void yahoo_add_buddy(int id, const char *who, const char *group, - const char *msg); - void yahoo_remove_buddy(int id, const char *who, const char *group); - void yahoo_confirm_buddy(int id, const char *who, int reject, - const char *msg); - void yahoo_stealth_buddy(int id, const char *who, int unstealth); -/* if unignore is true, unignore, else ignore */ - void yahoo_ignore_buddy(int id, const char *who, int unignore); - void yahoo_change_buddy_group(int id, const char *who, - const char *old_group, const char *new_group); - void yahoo_group_rename(int id, const char *old_group, - const char *new_group); - - void yahoo_conference_invite(int id, const char *from, YList *who, - const char *room, const char *msg); - void yahoo_conference_addinvite(int id, const char *from, - const char *who, const char *room, const YList *members, - const char *msg); - void yahoo_conference_decline(int id, const char *from, YList *who, - const char *room, const char *msg); - void yahoo_conference_message(int id, const char *from, YList *who, - const char *room, const char *msg, int utf8); - void yahoo_conference_logon(int id, const char *from, YList *who, - const char *room); - void yahoo_conference_logoff(int id, const char *from, YList *who, - const char *room); - -/* Get a list of chatrooms */ - void yahoo_get_chatrooms(int id, int chatroomid); -/* join room with specified roomname and roomid */ - void yahoo_chat_logon(int id, const char *from, const char *room, - const char *roomid); -/* Send message "msg" to room with specified roomname, msgtype is 1-normal message or 2-/me mesage */ - void yahoo_chat_message(int id, const char *from, const char *room, - const char *msg, const int msgtype, const int utf8); -/* Log off chat */ - void yahoo_chat_logoff(int id, const char *from); - -/* requests a webcam feed */ -/* who is the person who's webcam you would like to view */ -/* if who is null, then you're the broadcaster */ - void yahoo_webcam_get_feed(int id, const char *who); - void yahoo_webcam_close_feed(int id, const char *who); - -/* sends an image when uploading */ -/* image points to a JPEG-2000 image, length is the length of the image */ -/* in bytes. The timestamp is the time in milliseconds since we started the */ -/* webcam. */ - void yahoo_webcam_send_image(int id, unsigned char *image, - unsigned int length, unsigned int timestamp); - -/* this function should be called if we want to allow a user to watch the */ -/* webcam. Who is the user we want to accept. */ -/* Accept user (accept = 1), decline user (accept = 0) */ - void yahoo_webcam_accept_viewer(int id, const char *who, int accept); - -/* send an invitation to a user to view your webcam */ - void yahoo_webcam_invite(int id, const char *who); - -/* will set up a connection and initiate file transfer. - * callback will be called with the fd that you should write - * the file data to - */ - void yahoo_send_file(int id, const char *who, const char *msg, - const char *name, unsigned long size, - yahoo_get_fd_callback callback, void *data); - -/* - * Respond to a file transfer request. Be sure to provide the callback data - * since that is your only chance to recognize future callbacks - */ - void yahoo_send_file_transfer_response(int client_id, int response, - char *id, void *data); - - -/* send a search request - */ - void yahoo_search(int id, enum yahoo_search_type t, const char *text, - enum yahoo_search_gender g, enum yahoo_search_agerange ar, - int photo, int yahoo_only); - -/* continue last search - * should be called if only (start+found >= total) - * - * where the above three are passed to ext_yahoo_got_search_result - */ - void yahoo_search_again(int id, int start); - -/* these should be called when input is available on a fd */ -/* registered by ext_yahoo_add_handler */ -/* if these return negative values, errno may be set */ - int yahoo_read_ready(int id, void *fd, void *data); - int yahoo_write_ready(int id, void *fd, void *data); - -/* utility functions. these do not hit the server */ - enum yahoo_status yahoo_current_status(int id); - const YList *yahoo_get_buddylist(int id); - const YList *yahoo_get_ignorelist(int id); - const YList *yahoo_get_identities(int id); -/* 'which' could be y, t, c or login. This may change in later versions. */ - const char *yahoo_get_cookie(int id, const char *which); - -/* returns the url used to get user profiles - you must append the user id */ -/* as of now this is http://profiles.yahoo.com/ */ -/* You'll have to do urlencoding yourself, but see yahoo_httplib.h first */ - const char *yahoo_get_profile_url(void); - - void yahoo_buddyicon_request(int id, const char *who); - -#include "yahoo_httplib.h" - -#ifdef __cplusplus -} -#endif -#endif diff --git a/backends/libyahoo2/yahoo/yahoo2_callbacks.h b/backends/libyahoo2/yahoo/yahoo2_callbacks.h deleted file mode 100644 index ca65b513..00000000 --- a/backends/libyahoo2/yahoo/yahoo2_callbacks.h +++ /dev/null @@ -1,776 +0,0 @@ -/* - * libyahoo2: yahoo2_callbacks.h - * - * Copyright (C) 2002-2004, Philip S Tellis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -/* - * The functions in this file *must* be defined in your client program - * If you want to use a callback structure instead of direct functions, - * then you must define USE_STRUCT_CALLBACKS in all files that #include - * this one. - * - * Register the callback structure by calling yahoo_register_callbacks - - * declared in this file and defined in libyahoo2.c - */ - -#ifndef YAHOO2_CALLBACKS_H -#define YAHOO2_CALLBACKS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "yahoo2_types.h" - -/* - * yahoo2_callbacks.h - * - * Callback interface for libyahoo2 - */ - - typedef enum { - YAHOO_INPUT_READ = 1 << 0, - YAHOO_INPUT_WRITE = 1 << 1, - YAHOO_INPUT_EXCEPTION = 1 << 2 - } yahoo_input_condition; - -/* - * A callback function called when an asynchronous connect completes. - * - * Params: - * fd - The file descriptor object that has been connected, or NULL on - * error - * error - The value of errno set by the call to connect or 0 if no error - * Set both fd and error to 0 if the connect was cancelled by the - * user - * callback_data - the callback_data passed to the ext_yahoo_connect_async - * function - */ - typedef void (*yahoo_connect_callback) (void *fd, int error, - void *callback_data); - -/* - * The following functions need to be implemented in the client - * interface. They will be called by the library when each - * event occurs. - */ - -/* - * should we use a callback structure or directly call functions - * if you want the structure, you *must* define USE_STRUCT_CALLBACKS - * both when you compile the library, and when you compile your code - * that uses the library - */ - -#define YAHOO_CALLBACK_TYPE(x) (*x) - struct yahoo_callbacks { - -/* - * Name: ext_yahoo_login_response - * Called when the login process is complete - * Params: - * id - the id that identifies the server connection - * succ - enum yahoo_login_status - * url - url to reactivate account if locked - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_login_response) (int id, int succ, - const char *url); - -/* - * Name: ext_yahoo_got_buddies - * Called when the contact list is got from the server - * Params: - * id - the id that identifies the server connection - * buds - the buddy list - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buddies) (int id, YList *buds); - -/* - * Name: ext_yahoo_got_ignore - * Called when the ignore list is got from the server - * Params: - * id - the id that identifies the server connection - * igns - the ignore list - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_ignore) (int id, YList *igns); - -/* - * Name: ext_yahoo_got_identities - * Called when the contact list is got from the server - * Params: - * id - the id that identifies the server connection - * ids - the identity list - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_identities) (int id, YList *ids); - -/* - * Name: ext_yahoo_got_cookies - * Called when the cookie list is got from the server - * Params: - * id - the id that identifies the server connection - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_cookies) (int id); - -/* - * Name: ext_yahoo_got_ping - * Called when the ping packet is received from the server - * Params: - * id - the id that identifies the server connection - * errormsg - optional error message - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_ping) (int id, - const char *errormsg); - -/* - * Name: ext_yahoo_status_changed - * Called when remote user's status changes. - * Params: - * id - the id that identifies the server connection - * who - the handle of the remote user - * stat - status code (enum yahoo_status) - * msg - the message if stat == YAHOO_STATUS_CUSTOM - * away - whether the contact is away or not (YAHOO_STATUS_CUSTOM) - * idle - this is the number of seconds he is idle [if he is idle] - * mobile - this is set for mobile users/buddies - * TODO: add support for pager, chat, and game states - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_status_changed) (int id, - const char *who, int stat, const char *msg, int away, int idle, - int mobile); - -/* - * Name: ext_yahoo_got_buzz - * Called when remote user sends you a buzz. - * Params: - * id - the id that identifies the server connection - * me - the identity the message was sent to - * who - the handle of the remote user - * tm - timestamp of message if offline - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buzz) (int id, const char *me, - const char *who, long tm); - -/* - * Name: ext_yahoo_got_im - * Called when remote user sends you a message. - * Params: - * id - the id that identifies the server connection - * me - the identity the message was sent to - * who - the handle of the remote user - * msg - the message - NULL if stat == 2 - * tm - timestamp of message if offline - * stat - message status - 0 - * 1 - * 2 == error sending message - * 5 - * utf8 - whether the message is encoded as utf8 or not - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_im) (int id, const char *me, - const char *who, const char *msg, long tm, int stat, int utf8); - -/* - * Name: ext_yahoo_got_conf_invite - * Called when remote user sends you a conference invitation. - * Params: - * id - the id that identifies the server connection - * me - the identity the invitation was sent to - * who - the user inviting you - * room - the room to join - * msg - the message - * members - the initial members of the conference (null terminated list) - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_conf_invite) (int id, - const char *me, const char *who, const char *room, - const char *msg, YList *members); - -/* - * Name: ext_yahoo_conf_userdecline - * Called when someone declines to join the conference. - * Params: - * id - the id that identifies the server connection - * me - the identity in the conference - * who - the user who has declined - * room - the room - * msg - the declining message - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_conf_userdecline) (int id, - const char *me, const char *who, const char *room, - const char *msg); - -/* - * Name: ext_yahoo_conf_userjoin - * Called when someone joins the conference. - * Params: - * id - the id that identifies the server connection - * me - the identity in the conference - * who - the user who has joined - * room - the room joined - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_conf_userjoin) (int id, - const char *me, const char *who, const char *room); - -/* - * Name: ext_yahoo_conf_userleave - * Called when someone leaves the conference. - * Params: - * id - the id that identifies the server connection - * me - the identity in the conference - * who - the user who has left - * room - the room left - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_conf_userleave) (int id, - const char *me, const char *who, const char *room); - -/* - * Name: ext_yahoo_chat_cat_xml - * Called when ? - * Params: - * id - the id that identifies the server connection - * xml - ? - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_cat_xml) (int id, - const char *xml); - -/* - * Name: ext_yahoo_chat_join - * Called when joining the chatroom. - * Params: - * id - the id that identifies the server connection - * me - the identity in the chatroom - * room - the room joined, used in all other chat calls, freed by - * library after call - * topic - the topic of the room, freed by library after call - * members - the initial members of the chatroom (null terminated YList - * of yahoo_chat_member's) Must be freed by the client - * fd - the object where the connection is coming from (for tracking) - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_join) (int id, const char *me, - const char *room, const char *topic, YList *members, void *fd); - -/* - * Name: ext_yahoo_chat_userjoin - * Called when someone joins the chatroom. - * Params: - * id - the id that identifies the server connection - * me - the identity in the chatroom - * room - the room joined - * who - the user who has joined, Must be freed by the client - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_userjoin) (int id, - const char *me, const char *room, - struct yahoo_chat_member *who); - -/* - * Name: ext_yahoo_chat_userleave - * Called when someone leaves the chatroom. - * Params: - * id - the id that identifies the server connection - * me - the identity in the chatroom - * room - the room left - * who - the user who has left (Just the User ID) - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_userleave) (int id, - const char *me, const char *room, const char *who); - -/* - * Name: ext_yahoo_chat_message - * Called when someone messages in the chatroom. - * Params: - * id - the id that identifies the server connection - * me - the identity in the chatroom - * room - the room - * who - the user who messaged (Just the user id) - * msg - the message - * msgtype - 1 = Normal message - * 2 = /me type message - * utf8 - whether the message is utf8 encoded or not - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_message) (int id, - const char *me, const char *who, const char *room, - const char *msg, int msgtype, int utf8); - -/* - * - * Name: ext_yahoo_chat_yahoologout - * called when yahoo disconnects your chat session - * Note this is called whenver a disconnect happens, client or server - * requested. Care should be taken to make sure you know the origin - * of the disconnect request before doing anything here (auto-join's etc) - * Params: - * id - the id that identifies this connection - * me - the identity in the chatroom - * Returns: - * nothing. - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_yahoologout) (int id, - const char *me); - -/* - * - * Name: ext_yahoo_chat_yahooerror - * called when yahoo sends back an error to you - * Note this is called whenver chat message is sent into a room - * in error (fd not connected, room doesn't exists etc) - * Care should be taken to make sure you know the origin - * of the error before doing anything about it. - * Params: - * id - the id that identifies this connection - * me - the identity in the chatroom - * Returns: - * nothing. - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_yahooerror) (int id, - const char *me); - -/* - * Name: ext_yahoo_conf_message - * Called when someone messages in the conference. - * Params: - * id - the id that identifies the server connection - * me - the identity the conf message was sent to - * who - the user who messaged - * room - the room - * msg - the message - * utf8 - whether the message is utf8 encoded or not - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_conf_message) (int id, - const char *me, const char *who, const char *room, - const char *msg, int utf8); - -/* - * Name: ext_yahoo_got_file - * Called when someone sends you a file - * Params: - * id - the id that identifies the server connection - * me - the identity the file was sent to - * who - the user who sent the file - * msg - the message - * fname- the file name if direct transfer - * fsize- the file size if direct transfer - * trid - transfer id. Unique for this transfer - * - * NOTE: Subsequent callbacks for file transfer do not send all of this - * information again since it is wasteful. Implementations are expected to - * save this information and supply it as callback data when the file or - * confirmation is sent - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_file) (int id, const char *me, - const char *who, const char *msg, const char *fname, - unsigned long fesize, char *trid); - -/* - * Name: ext_yahoo_got_ft_data - * Called multiple times when parts of the file are received - * Params: - * id - the id that identifies the server connection - * in - The data - * len - Length of the data - * data - callback data - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_ft_data) (int id, - const unsigned char *in, int len, void *data); - -/* - * Name: ext_yahoo_file_transfer_done - * File transfer is done - * Params: - * id - the id that identifies the server connection - * result - To notify if it finished successfully or with a failure - * data - callback data - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_file_transfer_done) (int id, - int result, void *data); - -/* - * Name: ext_yahoo_contact_added - * Called when a contact is added to your list - * Params: - * id - the id that identifies the server connection - * myid - the identity he was added to - * who - who was added - * msg - any message sent - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_contact_added) (int id, - const char *myid, const char *who, const char *msg); - -/* - * Name: ext_yahoo_rejected - * Called when a contact rejects your add - * Params: - * id - the id that identifies the server connection - * who - who rejected you - * msg - any message sent - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_rejected) (int id, const char *who, - const char *msg); - -/* - * Name: ext_yahoo_typing_notify - * Called when remote user starts or stops typing. - * Params: - * id - the id that identifies the server connection - * me - the handle of the identity the notification is sent to - * who - the handle of the remote user - * stat - 1 if typing, 0 if stopped typing - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_typing_notify) (int id, - const char *me, const char *who, int stat); - -/* - * Name: ext_yahoo_game_notify - * Called when remote user starts or stops a game. - * Params: - * id - the id that identifies the server connection - * me - the handle of the identity the notification is sent to - * who - the handle of the remote user - * stat - 1 if game, 0 if stopped gaming - * msg - game description and/or other text - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_game_notify) (int id, const char *me, - const char *who, int stat, const char *msg); - -/* - * Name: ext_yahoo_mail_notify - * Called when you receive mail, or with number of messages - * Params: - * id - the id that identifies the server connection - * from - who the mail is from - NULL if only mail count - * subj - the subject of the mail - NULL if only mail count - * cnt - mail count - 0 if new mail notification - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_mail_notify) (int id, - const char *from, const char *subj, int cnt); - -/* - * Name: ext_yahoo_system_message - * System message - * Params: - * id - the id that identifies the server connection - * me - the handle of the identity the notification is sent to - * who - the source of the system message (there are different types) - * msg - the message - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_system_message) (int id, - const char *me, const char *who, const char *msg); - -/* - * Name: ext_yahoo_got_buddyicon - * Buddy icon received - * Params: - * id - the id that identifies the server connection - * me - the handle of the identity the notification is sent to - * who - the person the buddy icon is for - * url - the url to use to load the icon - * checksum - the checksum of the icon content - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buddyicon) (int id, - const char *me, const char *who, const char *url, int checksum); - -/* - * Name: ext_yahoo_got_buddyicon_checksum - * Buddy icon checksum received - * Params: - * id - the id that identifies the server connection - * me - the handle of the identity the notification is sent to - * who - the yahoo id of the buddy icon checksum is for - * checksum - the checksum of the icon content - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buddyicon_checksum) (int id, - const char *me, const char *who, int checksum); - -/* - * Name: ext_yahoo_got_buddyicon_request - * Buddy icon request received - * Params: - * id - the id that identifies the server connection - * me - the handle of the identity the notification is sent to - * who - the yahoo id of the buddy that requested the buddy icon - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buddyicon_request) (int id, - const char *me, const char *who); - -/* - * Name: ext_yahoo_got_buddyicon_request - * Buddy icon request received - * Params: - * id - the id that identifies the server connection - * url - remote url, the uploaded buddy icon can be fetched from - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_buddyicon_uploaded) (int id, - const char *url); - -/* - * Name: ext_yahoo_got_webcam_image - * Called when you get a webcam update - * An update can either be receiving an image, a part of an image or - * just an update with a timestamp - * Params: - * id - the id that identifies the server connection - * who - the user who's webcam we're viewing - * image - image data - * image_size - length of the image in bytes - * real_size - actual length of image data - * timestamp - milliseconds since the webcam started - * - * If the real_size is smaller then the image_size then only part of - * the image has been read. This function will keep being called till - * the total amount of bytes in image_size has been read. The image - * received is in JPEG-2000 Code Stream Syntax (ISO/IEC 15444-1). - * The size of the image will be either 160x120 or 320x240. - * Each webcam image contains a timestamp. This timestamp should be - * used to keep the image in sync since some images can take longer - * to transport then others. When image_size is 0 we can still receive - * a timestamp to stay in sync - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_webcam_image) (int id, - const char *who, const unsigned char *image, - unsigned int image_size, unsigned int real_size, - unsigned int timestamp); - -/* - * Name: ext_yahoo_webcam_invite - * Called when you get a webcam invitation - * Params: - * id - the id that identifies the server connection - * me - identity the invitation is to - * from - who the invitation is from - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_webcam_invite) (int id, - const char *me, const char *from); - -/* - * Name: ext_yahoo_webcam_invite_reply - * Called when you get a response to a webcam invitation - * Params: - * id - the id that identifies the server connection - * me - identity the invitation response is to - * from - who the invitation response is from - * accept - 0 (decline), 1 (accept) - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_webcam_invite_reply) (int id, - const char *me, const char *from, int accept); - -/* - * Name: ext_yahoo_webcam_closed - * Called when the webcam connection closed - * Params: - * id - the id that identifies the server connection - * who - the user who we where connected to - * reason - reason why the connection closed - * 1 = user stopped broadcasting - * 2 = user cancelled viewing permission - * 3 = user declines permission - * 4 = user does not have webcam online - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_webcam_closed) (int id, - const char *who, int reason); - -/* - * Name: ext_yahoo_got_search_result - * Called when the search result received from server - * Params: - * id - the id that identifies the server connection - * found - total number of results returned in the current result set - * start - offset from where the current result set starts - * total - total number of results available (start + found <= total) - * contacts - the list of results as a YList of yahoo_found_contact - * these will be freed after this function returns, so - * if you need to use the information, make a copy - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_search_result) (int id, - int found, int start, int total, YList *contacts); - -/* - * Name: ext_yahoo_error - * Called on error. - * Params: - * id - the id that identifies the server connection - * err - the error message - * fatal- whether this error is fatal to the connection or not - * num - Which error is this - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_error) (int id, const char *err, - int fatal, int num); - -/* - * Name: ext_yahoo_webcam_viewer - * Called when a viewer disconnects/connects/requests to connect - * Params: - * id - the id that identifies the server connection - * who - the viewer - * connect - 0=disconnect 1=connect 2=request - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_webcam_viewer) (int id, - const char *who, int connect); - -/* - * Name: ext_yahoo_webcam_data_request - * Called when you get a request for webcam images - * Params: - * id - the id that identifies the server connection - * send - whether to send images or not - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_webcam_data_request) (int id, - int send); - -/* - * Name: ext_yahoo_log - * Called to log a message. - * Params: - * fmt - the printf formatted message - * Returns: - * 0 - */ - int YAHOO_CALLBACK_TYPE(ext_yahoo_log) (const char *fmt, ...); - -/* - * Name: ext_yahoo_add_handler - * Add a listener for the fd. Must call yahoo_read_ready - * when a YAHOO_INPUT_READ fd is ready and yahoo_write_ready - * when a YAHOO_INPUT_WRITE fd is ready. - * Params: - * id - the id that identifies the server connection - * fd - the fd object on which to listen - * cond - the condition on which to call the callback - * data - callback data to pass to yahoo_*_ready - * - * Returns: a tag to be used when removing the handler - */ - int YAHOO_CALLBACK_TYPE(ext_yahoo_add_handler) (int id, void *fd, - yahoo_input_condition cond, void *data); - -/* - * Name: ext_yahoo_remove_handler - * Remove the listener for the fd. - * Params: - * id - the id that identifies the connection - * tag - the handler tag to remove - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_remove_handler) (int id, int tag); - -/* - * Name: ext_yahoo_connect - * Connect to a host:port - * Params: - * host - the host to connect to - * port - the port to connect on - * Returns: - * a unix file descriptor to the socket - */ - int YAHOO_CALLBACK_TYPE(ext_yahoo_connect) (const char *host, int port); - -/* - * Name: ext_yahoo_connect_async - * Connect to a host:port asynchronously. This function should return - * immediately returing a tag used to identify the connection handler, - * or a pre-connect error (eg: host name lookup failure). - * Once the connect completes (successfully or unsuccessfully), callback - * should be called (see the signature for yahoo_connect_callback). - * The callback may safely be called before this function returns, but - * it should not be called twice. - * Params: - * id - the id that identifies this connection - * host - the host to connect to - * port - the port to connect on - * callback - function to call when connect completes - * callback_data - data to pass to the callback function - * use_ssl - Whether we need an SSL connection - * Returns: - * a tag signifying the connection attempt - */ - int YAHOO_CALLBACK_TYPE(ext_yahoo_connect_async) (int id, - const char *host, int port, yahoo_connect_callback callback, - void *callback_data, int use_ssl); - -/* - * Name: ext_yahoo_get_ip_addr - * get IP Address for a domain name - * Params: - * domain - Domain name - * Returns: - * Newly allocated string containing the IP Address in IPv4 notation - */ - char *YAHOO_CALLBACK_TYPE(ext_yahoo_get_ip_addr) (const char *domain); - -/* - * Name: ext_yahoo_write - * Write data from the buffer into the socket for the specified connection - * Params: - * fd - the file descriptor object that identifies this connection - * buf - Buffer to write the data from - * len - Length of the data - * Returns: - * Number of bytes written or -1 for error - */ - int YAHOO_CALLBACK_TYPE(ext_yahoo_write) (void *fd, char *buf, int len); - -/* - * Name: ext_yahoo_read - * Read data into a buffer from socket for the specified connection - * Params: - * fd - the file descriptor object that identifies this connection - * buf - Buffer to read the data into - * len - Max length to read - * Returns: - * Number of bytes read or -1 for error - */ - int YAHOO_CALLBACK_TYPE(ext_yahoo_read) (void *fd, char *buf, int len); - -/* - * Name: ext_yahoo_close - * Close the file descriptor object and free its resources. Libyahoo2 will not - * use this object again. - * Params: - * fd - the file descriptor object that identifies this connection - * Returns: - * Nothing - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_close) (void *fd); - -/* - * Name: ext_yahoo_got_buddy_change_group - * Acknowledgement of buddy changing group - * Params: - * id: client id - * me: The user - * who: Buddy name - * old_group: Old group name - * new_group: New group name - * Returns: - * Nothing - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buddy_change_group) (int id, - const char *me, const char *who, const char *old_group, - const char *new_group); - -}; - -/* - * if using a callback structure, call yahoo_register_callbacks - * before doing anything else - */ -void yahoo_register_callbacks(struct yahoo_callbacks *tyc); - -#undef YAHOO_CALLBACK_TYPE - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/backends/libyahoo2/yahoo/yahoo2_types.h b/backends/libyahoo2/yahoo/yahoo2_types.h deleted file mode 100644 index bbade5d8..00000000 --- a/backends/libyahoo2/yahoo/yahoo2_types.h +++ /dev/null @@ -1,396 +0,0 @@ -/* - * libyahoo2: yahoo2_types.h - * - * Copyright (C) 2002-2004, Philip S Tellis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef YAHOO2_TYPES_H -#define YAHOO2_TYPES_H - -#include "yahoo_list.h" - -#ifdef __cplusplus -extern "C" { -#endif - - enum yahoo_service { /* these are easier to see in hex */ - YAHOO_SERVICE_LOGON = 1, - YAHOO_SERVICE_LOGOFF, - YAHOO_SERVICE_ISAWAY, - YAHOO_SERVICE_ISBACK, - YAHOO_SERVICE_IDLE, /* 5 (placemarker) */ - YAHOO_SERVICE_MESSAGE, - YAHOO_SERVICE_IDACT, - YAHOO_SERVICE_IDDEACT, - YAHOO_SERVICE_MAILSTAT, - YAHOO_SERVICE_USERSTAT, /* 0xa */ - YAHOO_SERVICE_NEWMAIL, - YAHOO_SERVICE_CHATINVITE, - YAHOO_SERVICE_CALENDAR, - YAHOO_SERVICE_NEWPERSONALMAIL, - YAHOO_SERVICE_NEWCONTACT, - YAHOO_SERVICE_ADDIDENT, /* 0x10 */ - YAHOO_SERVICE_ADDIGNORE, - YAHOO_SERVICE_PING, - YAHOO_SERVICE_GOTGROUPRENAME, /* < 1, 36(old), 37(new) */ - YAHOO_SERVICE_SYSMESSAGE = 0x14, - YAHOO_SERVICE_SKINNAME = 0x15, - YAHOO_SERVICE_PASSTHROUGH2 = 0x16, - YAHOO_SERVICE_CONFINVITE = 0x18, - YAHOO_SERVICE_CONFLOGON, - YAHOO_SERVICE_CONFDECLINE, - YAHOO_SERVICE_CONFLOGOFF, - YAHOO_SERVICE_CONFADDINVITE, - YAHOO_SERVICE_CONFMSG, - YAHOO_SERVICE_CHATLOGON, - YAHOO_SERVICE_CHATLOGOFF, - YAHOO_SERVICE_CHATMSG = 0x20, - YAHOO_SERVICE_GAMELOGON = 0x28, - YAHOO_SERVICE_GAMELOGOFF, - YAHOO_SERVICE_GAMEMSG = 0x2a, - YAHOO_SERVICE_FILETRANSFER = 0x46, - YAHOO_SERVICE_VOICECHAT = 0x4A, - YAHOO_SERVICE_NOTIFY, - YAHOO_SERVICE_VERIFY, - YAHOO_SERVICE_P2PFILEXFER, - YAHOO_SERVICE_PEERTOPEER = 0x4F, /* Checks if P2P possible */ - YAHOO_SERVICE_WEBCAM, - YAHOO_SERVICE_AUTHRESP = 0x54, - YAHOO_SERVICE_LIST, - YAHOO_SERVICE_AUTH = 0x57, - YAHOO_SERVICE_AUTHBUDDY = 0x6d, - YAHOO_SERVICE_ADDBUDDY = 0x83, - YAHOO_SERVICE_REMBUDDY, - YAHOO_SERVICE_IGNORECONTACT, /* > 1, 7, 13 < 1, 66, 13, 0 */ - YAHOO_SERVICE_REJECTCONTACT, - YAHOO_SERVICE_GROUPRENAME = 0x89, /* > 1, 65(new), 66(0), 67(old) */ - YAHOO_SERVICE_Y7_PING = 0x8A, - YAHOO_SERVICE_CHATONLINE = 0x96, /* > 109(id), 1, 6(abcde) < 0,1 */ - YAHOO_SERVICE_CHATGOTO, - YAHOO_SERVICE_CHATJOIN, /* > 1 104-room 129-1600326591 62-2 */ - YAHOO_SERVICE_CHATLEAVE, - YAHOO_SERVICE_CHATEXIT = 0x9b, - YAHOO_SERVICE_CHATADDINVITE = 0x9d, - YAHOO_SERVICE_CHATLOGOUT = 0xa0, - YAHOO_SERVICE_CHATPING, - YAHOO_SERVICE_COMMENT = 0xa8, - YAHOO_SERVICE_GAME_INVITE = 0xb7, - YAHOO_SERVICE_STEALTH_PERM = 0xb9, - YAHOO_SERVICE_STEALTH_SESSION = 0xba, - YAHOO_SERVICE_AVATAR = 0xbc, - YAHOO_SERVICE_PICTURE_CHECKSUM = 0xbd, - YAHOO_SERVICE_PICTURE = 0xbe, - YAHOO_SERVICE_PICTURE_UPDATE = 0xc1, - YAHOO_SERVICE_PICTURE_UPLOAD = 0xc2, - YAHOO_SERVICE_YAB_UPDATE = 0xc4, - YAHOO_SERVICE_Y6_VISIBLE_TOGGLE = 0xc5, /* YMSG13, key 13: 2 = invisible, 1 = visible */ - YAHOO_SERVICE_Y6_STATUS_UPDATE = 0xc6, /* YMSG13 */ - YAHOO_SERVICE_PICTURE_STATUS = 0xc7, /* YMSG13, key 213: 0 = none, 1 = avatar, 2 = picture */ - YAHOO_SERVICE_VERIFY_ID_EXISTS = 0xc8, - YAHOO_SERVICE_AUDIBLE = 0xd0, - YAHOO_SERVICE_Y7_PHOTO_SHARING = 0xd2, - YAHOO_SERVICE_Y7_CONTACT_DETAILS = 0xd3, /* YMSG13 */ - YAHOO_SERVICE_Y7_CHAT_SESSION = 0xd4, - YAHOO_SERVICE_Y7_AUTHORIZATION = 0xd6, /* YMSG13 */ - YAHOO_SERVICE_Y7_FILETRANSFER = 0xdc, /* YMSG13 */ - YAHOO_SERVICE_Y7_FILETRANSFERINFO, /* YMSG13 */ - YAHOO_SERVICE_Y7_FILETRANSFERACCEPT, /* YMSG13 */ - YAHOO_SERVICE_Y7_MINGLE = 0xe1, /* YMSG13 */ - YAHOO_SERVICE_Y7_CHANGE_GROUP = 0xe7, /* YMSG13 */ - YAHOO_SERVICE_MYSTERY = 0xef, /* Don't know what this is for */ - YAHOO_SERVICE_Y8_STATUS = 0xf0, /* YMSG15 */ - YAHOO_SERVICE_Y8_LIST = 0Xf1, /* YMSG15 */ - YAHOO_SERVICE_MESSAGE_CONFIRM = 0xfb, - YAHOO_SERVICE_WEBLOGIN = 0x0226, - YAHOO_SERVICE_SMS_MSG = 0x02ea - }; - - enum yahoo_status { - YAHOO_STATUS_AVAILABLE = 0, - YAHOO_STATUS_BRB, - YAHOO_STATUS_BUSY, - YAHOO_STATUS_NOTATHOME, - YAHOO_STATUS_NOTATDESK, - YAHOO_STATUS_NOTINOFFICE, - YAHOO_STATUS_ONPHONE, - YAHOO_STATUS_ONVACATION, - YAHOO_STATUS_OUTTOLUNCH, - YAHOO_STATUS_STEPPEDOUT, - YAHOO_STATUS_INVISIBLE = 12, - YAHOO_STATUS_CUSTOM = 99, - YAHOO_STATUS_IDLE = 999, - YAHOO_STATUS_OFFLINE = 0x5a55aa56 /* don't ask */ - }; - - enum ypacket_status { - YPACKET_STATUS_DISCONNECTED = -1, - YPACKET_STATUS_DEFAULT = 0, - YPACKET_STATUS_SERVERACK = 1, - YPACKET_STATUS_GAME = 0x2, - YPACKET_STATUS_AWAY = 0x4, - YPACKET_STATUS_CONTINUED = 0x5, - YPACKET_STATUS_INVISIBLE = 12, - YPACKET_STATUS_NOTIFY = 0x16, /* TYPING */ - YPACKET_STATUS_WEBLOGIN = 0x5a55aa55, - YPACKET_STATUS_OFFLINE = 0x5a55aa56 - }; - -#define YAHOO_STATUS_GAME 0x2 /* Games don't fit into the regular status model */ - - enum yahoo_login_status { - YAHOO_LOGIN_OK = 0, - YAHOO_LOGIN_LOGOFF = 1, - YAHOO_LOGIN_UNAME = 3, - YAHOO_LOGIN_PASSWD = 13, - YAHOO_LOGIN_LOCK = 14, - YAHOO_LOGIN_DUPL = 99, - YAHOO_LOGIN_SOCK = -1, - YAHOO_LOGIN_UNKNOWN = 999 - }; - - enum yahoo_error { - E_UNKNOWN = -1, - E_CONNECTION = -2, - E_SYSTEM = -3, - E_CUSTOM = 0, - - /* responses from ignore buddy */ - E_IGNOREDUP = 2, - E_IGNORENONE = 3, - E_IGNORECONF = 12, - - /* conference */ - E_CONFNOTAVAIL = 20 - }; - - enum yahoo_log_level { - YAHOO_LOG_NONE = 0, - YAHOO_LOG_FATAL, - YAHOO_LOG_ERR, - YAHOO_LOG_WARNING, - YAHOO_LOG_NOTICE, - YAHOO_LOG_INFO, - YAHOO_LOG_DEBUG - }; - - enum yahoo_file_transfer { - YAHOO_FILE_TRANSFER_INIT = 1, - YAHOO_FILE_TRANSFER_ACCEPT = 3, - YAHOO_FILE_TRANSFER_REJECT = 4, - YAHOO_FILE_TRANSFER_DONE = 5, - YAHOO_FILE_TRANSFER_RELAY, - YAHOO_FILE_TRANSFER_FAILED, - YAHOO_FILE_TRANSFER_UNKNOWN - }; - -#define YAHOO_PROTO_VER 0x0010 - -/* Yahoo style/color directives */ -#define YAHOO_COLOR_BLACK "\033[30m" -#define YAHOO_COLOR_BLUE "\033[31m" -#define YAHOO_COLOR_LIGHTBLUE "\033[32m" -#define YAHOO_COLOR_GRAY "\033[33m" -#define YAHOO_COLOR_GREEN "\033[34m" -#define YAHOO_COLOR_PINK "\033[35m" -#define YAHOO_COLOR_PURPLE "\033[36m" -#define YAHOO_COLOR_ORANGE "\033[37m" -#define YAHOO_COLOR_RED "\033[38m" -#define YAHOO_COLOR_OLIVE "\033[39m" -#define YAHOO_COLOR_ANY "\033[#" -#define YAHOO_STYLE_ITALICON "\033[2m" -#define YAHOO_STYLE_ITALICOFF "\033[x2m" -#define YAHOO_STYLE_BOLDON "\033[1m" -#define YAHOO_STYLE_BOLDOFF "\033[x1m" -#define YAHOO_STYLE_UNDERLINEON "\033[4m" -#define YAHOO_STYLE_UNDERLINEOFF "\033[x4m" -#define YAHOO_STYLE_URLON "\033[lm" -#define YAHOO_STYLE_URLOFF "\033[xlm" - - enum yahoo_connection_type { - YAHOO_CONNECTION_PAGER = 0, - YAHOO_CONNECTION_FT, - YAHOO_CONNECTION_YAB, - YAHOO_CONNECTION_WEBCAM_MASTER, - YAHOO_CONNECTION_WEBCAM, - YAHOO_CONNECTION_CHATCAT, - YAHOO_CONNECTION_SEARCH, - YAHOO_CONNECTION_AUTH - }; - - enum yahoo_webcam_direction_type { - YAHOO_WEBCAM_DOWNLOAD = 0, - YAHOO_WEBCAM_UPLOAD - }; - - enum yahoo_stealth_visibility_type { - YAHOO_STEALTH_DEFAULT = 0, - YAHOO_STEALTH_ONLINE, - YAHOO_STEALTH_PERM_OFFLINE - }; - -/* chat member attribs */ -#define YAHOO_CHAT_MALE 0x8000 -#define YAHOO_CHAT_FEMALE 0x10000 -#define YAHOO_CHAT_FEMALE 0x10000 -#define YAHOO_CHAT_DUNNO 0x400 -#define YAHOO_CHAT_WEBCAM 0x10 - - enum yahoo_webcam_conn_type { Y_WCM_DIALUP, Y_WCM_DSL, Y_WCM_T1 }; - - struct yahoo_webcam { - int direction; /* Uploading or downloading */ - int conn_type; /* 0=Dialup, 1=DSL/Cable, 2=T1/Lan */ - - char *user; /* user we are viewing */ - char *server; /* webcam server to connect to */ - int port; /* webcam port to connect on */ - char *key; /* key to connect to the server with */ - char *description; /* webcam description */ - char *my_ip; /* own ip number */ - }; - - struct yahoo_webcam_data { - unsigned int data_size; - unsigned int to_read; - unsigned int timestamp; - unsigned char packet_type; - }; - - struct yahoo_data { - char *user; - char *password; - - char *cookie_y; - char *cookie_t; - char *cookie_c; - char *cookie_b; - char *login_cookie; - char *crumb; - char *seed; - - YList *buddies; - YList *ignore; - YList *identities; - char *login_id; - - int current_status; - int initial_status; - int logged_in; - - int session_id; - - int client_id; - - char *rawbuddylist; - char *ignorelist; - - void *server_settings; - - struct yahoo_process_status_entry *half_user; - }; - - struct yab { - int yid; - char *id; - char *fname; - char *lname; - char *nname; - char *email; - char *hphone; - char *wphone; - char *mphone; - int dbid; - }; - - struct yahoo_buddy { - char *group; - char *id; - char *real_name; - struct yab *yab_entry; - }; - - enum yahoo_search_type { - YAHOO_SEARCH_KEYWORD = 0, - YAHOO_SEARCH_YID, - YAHOO_SEARCH_NAME - }; - - enum yahoo_search_gender { - YAHOO_GENDER_NONE = 0, - YAHOO_GENDER_MALE, - YAHOO_GENDER_FEMALE - }; - - enum yahoo_search_agerange { - YAHOO_AGERANGE_NONE = 0 - }; - - struct yahoo_found_contact { - char *id; - char *gender; - char *location; - int age; - int online; - }; - -/* - * Function pointer to be passed to http get/post and send file - */ - typedef void (*yahoo_get_fd_callback) (int id, void *fd, int error, - void *data); - -/* - * Function pointer to be passed to yahoo_get_url_handle - */ - typedef void (*yahoo_get_url_handle_callback) (int id, void *fd, - int error, const char *filename, unsigned long size, - void *data); - - struct yahoo_chat_member { - char *id; - int age; - int attribs; - char *alias; - char *location; - }; - - struct yahoo_process_status_entry { - char *name; /* 7 name */ - int state; /* 10 state */ - int flags; /* 13 flags, bit 0 = pager, bit 1 = chat, bit 2 = game */ - int mobile; /* 60 mobile */ - char *msg; /* 19 custom status message */ - int away; /* 47 away (or invisible) */ - int buddy_session; /* 11 state */ - int f17; /* 17 in chat? then what about flags? */ - int idle; /* 137 seconds idle */ - int f138; /* 138 state */ - char *f184; /* 184 state */ - int f192; /* 192 state */ - int f10001; /* 10001 state */ - int f10002; /* 10002 state */ - int f198; /* 198 state */ - char *f197; /* 197 state */ - char *f205; /* 205 state */ - int f213; /* 213 state */ - }; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/backends/libyahoo2/yahoo/yahoo_debug.h b/backends/libyahoo2/yahoo/yahoo_debug.h deleted file mode 100644 index 8b8dd6e8..00000000 --- a/backends/libyahoo2/yahoo/yahoo_debug.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * libyahoo2: yahoo_debug.h - * - * Copyright (C) 2002-2004, Philip S Tellis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -extern int yahoo_log_message(char *fmt, ...); - -#define NOTICE(x) if(yahoo_get_log_level() >= YAHOO_LOG_NOTICE) { yahoo_log_message x; yahoo_log_message("\n"); } - -#define LOG(x) if(yahoo_get_log_level() >= YAHOO_LOG_INFO) { yahoo_log_message("%s:%d: ", __FILE__, __LINE__); \ - yahoo_log_message x; \ - yahoo_log_message("\n"); } - -#define WARNING(x) if(yahoo_get_log_level() >= YAHOO_LOG_WARNING) { yahoo_log_message("%s:%d: warning: ", __FILE__, __LINE__); \ - yahoo_log_message x; \ - yahoo_log_message("\n"); } - -#define DEBUG_MSG(x) if(yahoo_get_log_level() >= YAHOO_LOG_DEBUG) { yahoo_log_message("%s:%d: debug: ", __FILE__, __LINE__); \ - yahoo_log_message x; \ - yahoo_log_message("\n"); } diff --git a/backends/libyahoo2/yahoo/yahoo_fn.c b/backends/libyahoo2/yahoo/yahoo_fn.c deleted file mode 100644 index dcbeb47c..00000000 --- a/backends/libyahoo2/yahoo/yahoo_fn.c +++ /dev/null @@ -1,4810 +0,0 @@ -/* - * libyahoo2 - originally from gaim patches by Amatus - * - * Copyright (C) 2003-2004 - * - * Some code copyright (C) 1998-1999, Mark Spencer - * libfaim code copyright 1998, 1999 Adam Fritzler - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "yahoo_fn.h" - -unsigned char table_0[256] = { - 0x5A, 0x41, 0x11, 0x77, 0x29, 0x9C, 0x31, 0xAD, - 0x4A, 0x32, 0x1A, 0x6D, 0x56, 0x9F, 0x39, 0xA6, - 0x0C, 0xE8, 0x49, 0x40, 0xA4, 0x21, 0xE9, 0x01, - 0x91, 0x86, 0x2F, 0xB9, 0xED, 0x80, 0x51, 0xAB, - 0x7F, 0x92, 0xF2, 0x73, 0xCD, 0xD9, 0x75, 0x2A, - 0x70, 0x34, 0x35, 0x8D, 0xA8, 0x72, 0x7D, 0x9B, - 0x2E, 0xC5, 0x2D, 0x76, 0x1E, 0xBB, 0xE7, 0x37, - 0xBA, 0xB7, 0xB2, 0x03, 0x20, 0x17, 0x8A, 0x07, - 0xD6, 0x96, 0x13, 0x95, 0xE5, 0xF1, 0x18, 0x3B, - 0xA5, 0x62, 0x33, 0xC1, 0x44, 0x3D, 0x6C, 0xA7, - 0xBF, 0x1C, 0x60, 0xFF, 0x5B, 0xF5, 0x8E, 0xE6, - 0x5C, 0xCC, 0xF7, 0x69, 0x15, 0x0F, 0x0B, 0xBD, - 0x12, 0x9D, 0xB3, 0x65, 0x53, 0xB1, 0x14, 0xF4, - 0x19, 0x3E, 0xB6, 0x45, 0xCB, 0xA2, 0x7A, 0xD3, - 0xF8, 0xD1, 0x61, 0xEE, 0xBC, 0xC6, 0xB0, 0x5D, - 0x4B, 0x09, 0x26, 0xE1, 0x1D, 0x6E, 0xC3, 0xFB, - 0x68, 0x4C, 0x42, 0x52, 0x5F, 0xDE, 0xFD, 0xEF, - 0x81, 0x04, 0x6F, 0xE0, 0xF0, 0x1F, 0x0D, 0x7C, - 0x58, 0x4F, 0x1B, 0x30, 0xCF, 0x9A, 0x2B, 0x05, - 0xF6, 0x3F, 0x78, 0xAC, 0xD8, 0xEC, 0xE2, 0x25, - 0x93, 0xDA, 0x84, 0x8C, 0x4E, 0xD5, 0x38, 0x0A, - 0x06, 0x7E, 0xD4, 0x59, 0x98, 0xE3, 0x36, 0xC2, - 0xD2, 0xA3, 0x10, 0x79, 0xFA, 0xC9, 0x16, 0x27, - 0x66, 0x89, 0xFE, 0x57, 0xF3, 0x83, 0xB8, 0x28, - 0x3C, 0xC7, 0xCE, 0x71, 0xC8, 0xDB, 0x22, 0xE4, - 0xDD, 0xDF, 0x02, 0x8F, 0x5E, 0xEB, 0x48, 0x2C, - 0x08, 0xC4, 0x43, 0xEA, 0x50, 0x55, 0x90, 0x54, - 0x87, 0xCA, 0x00, 0x24, 0x6B, 0x85, 0x97, 0xD7, - 0xDC, 0x6A, 0x67, 0xD0, 0x88, 0xA1, 0x9E, 0xC0, - 0x46, 0xAE, 0x64, 0x74, 0x4D, 0xA0, 0x99, 0xB5, - 0x0E, 0x8B, 0xAA, 0x3A, 0xB4, 0xFC, 0xA9, 0x94, - 0x7B, 0xBE, 0xF9, 0xAF, 0x82, 0x63, 0x47, 0x23 -}; - -unsigned char table_1[256] = { - 0x08, 0xCB, 0x54, 0xCF, 0x97, 0x53, 0x59, 0xF1, - 0x66, 0xEC, 0xDB, 0x1B, 0xB1, 0xE2, 0x36, 0xEB, - 0xB3, 0x8F, 0x71, 0xA8, 0x90, 0x7D, 0xDA, 0xDC, - 0x2C, 0x2F, 0xE8, 0x6A, 0x73, 0x37, 0xAE, 0xCC, - 0xA1, 0x16, 0xE6, 0xFC, 0x9C, 0xA9, 0x2A, 0x3F, - 0x58, 0xFD, 0x56, 0x4C, 0xA5, 0xF2, 0x33, 0x99, - 0x1A, 0xB7, 0xFE, 0xA6, 0x1E, 0x32, 0x9E, 0x48, - 0x03, 0x4A, 0x78, 0xEE, 0xCA, 0xC3, 0x88, 0x7A, - 0xAC, 0x23, 0xAA, 0xBD, 0xDE, 0xD3, 0x67, 0x43, - 0xFF, 0x64, 0x8A, 0xF9, 0x04, 0xD0, 0x7B, 0xC2, - 0xBC, 0xF3, 0x89, 0x0E, 0xDD, 0xAB, 0x9D, 0x84, - 0x5A, 0x62, 0x7F, 0x6D, 0x82, 0x68, 0xA3, 0xED, - 0x2E, 0x07, 0x41, 0xEF, 0x2D, 0x70, 0x4F, 0x69, - 0x8E, 0xE7, 0x0F, 0x11, 0x19, 0xAF, 0x31, 0xFB, - 0x8D, 0x4B, 0x5F, 0x96, 0x75, 0x42, 0x6C, 0x46, - 0xE4, 0x55, 0xD6, 0x3B, 0xE1, 0xD1, 0xB0, 0xB5, - 0x45, 0x29, 0xC0, 0x94, 0x9F, 0xD4, 0x15, 0x17, - 0x3C, 0x47, 0xC8, 0xD9, 0xC6, 0x76, 0xB9, 0x02, - 0xE0, 0xC9, 0xB2, 0x01, 0xC1, 0x5D, 0x4E, 0x14, - 0xF4, 0xAD, 0xB6, 0x00, 0x72, 0xF0, 0x49, 0x0D, - 0xD8, 0x5E, 0x6F, 0x2B, 0x8C, 0x51, 0x83, 0xC5, - 0x0A, 0x85, 0xE5, 0x38, 0x7E, 0x26, 0xEA, 0x22, - 0x6B, 0x06, 0xD5, 0x8B, 0xBF, 0xC7, 0x35, 0x1D, - 0xF6, 0x24, 0x28, 0xCE, 0x9B, 0x77, 0x20, 0x60, - 0xF5, 0x87, 0x3D, 0x65, 0x86, 0x0C, 0xDF, 0xBA, - 0x12, 0xA4, 0x3A, 0x34, 0xD7, 0xA0, 0xF8, 0x63, - 0x52, 0x27, 0xB8, 0x18, 0xA7, 0x13, 0x91, 0x09, - 0x93, 0x5C, 0x10, 0x9A, 0xB4, 0xE9, 0x44, 0xC4, - 0x21, 0x57, 0x1C, 0x0B, 0xA2, 0x74, 0x4D, 0xBE, - 0xD2, 0x1F, 0xCD, 0xE3, 0x6E, 0x7C, 0x40, 0x50, - 0x39, 0x80, 0x98, 0xFA, 0x25, 0x92, 0x30, 0x5B, - 0x05, 0x95, 0xBB, 0x79, 0x61, 0x3E, 0x81, 0xF7 -}; - -unsigned char table_2[32] = { - 0x19, 0x05, 0x09, 0x1C, 0x0B, 0x1A, 0x12, 0x03, - 0x06, 0x04, 0x0D, 0x1D, 0x15, 0x0E, 0x1B, 0x18, - 0x00, 0x07, 0x08, 0x02, 0x13, 0x1F, 0x0C, 0x1E, - 0x16, 0x0A, 0x10, 0x0F, 0x01, 0x14, 0x11, 0x17 -}; - -unsigned char table_3[256] = { - 0xBC, 0x1B, 0xCC, 0x1E, 0x5B, 0x59, 0x4F, 0xA8, - 0x62, 0xC6, 0xC1, 0xBB, 0x83, 0x2D, 0xA3, 0xA6, - 0x5A, 0xDC, 0xE5, 0x93, 0xFB, 0x5C, 0xD6, 0x2A, - 0x97, 0xC7, 0x1C, 0x73, 0x08, 0x45, 0xD2, 0x89, - 0x4A, 0xD4, 0xCF, 0x0C, 0x1D, 0xD8, 0xCD, 0x26, - 0x8F, 0x11, 0x55, 0x8B, 0xD3, 0x53, 0xCE, 0x00, - 0xB5, 0x3B, 0x2E, 0x39, 0x88, 0x7B, 0x85, 0x46, - 0x54, 0xA5, 0x31, 0x40, 0x3E, 0x0A, 0x4C, 0x68, - 0x70, 0x0F, 0xBA, 0x0E, 0x75, 0x8A, 0xEB, 0x44, - 0x60, 0x6C, 0x05, 0xC9, 0xF0, 0xDD, 0x0D, 0x66, - 0xAB, 0xA1, 0xAD, 0xF2, 0x12, 0x6A, 0xE6, 0x27, - 0xF6, 0x9F, 0xDB, 0xB8, 0xF4, 0x56, 0x5E, 0x2C, - 0xDA, 0xFE, 0x34, 0x86, 0xF5, 0xC2, 0xB0, 0xF1, - 0xCB, 0xF3, 0x78, 0x9B, 0x7F, 0xB4, 0xD7, 0x58, - 0x74, 0x07, 0x72, 0x96, 0x02, 0xCA, 0xAC, 0xE8, - 0x5D, 0xA7, 0x32, 0xBD, 0x81, 0x43, 0x18, 0xF8, - 0x15, 0x0B, 0xE9, 0x76, 0x30, 0xBF, 0x3A, 0x22, - 0x9E, 0xD1, 0x79, 0x37, 0xBE, 0x8C, 0x7A, 0x98, - 0x21, 0x95, 0x10, 0x8D, 0xDF, 0xC0, 0x69, 0xC8, - 0x03, 0x6E, 0x4B, 0x36, 0xFC, 0x6F, 0xA9, 0x48, - 0x63, 0xE1, 0xB9, 0x24, 0x87, 0x13, 0xB2, 0xA4, - 0x84, 0x06, 0x14, 0x61, 0x3D, 0x92, 0xB1, 0x41, - 0xE2, 0x71, 0xAF, 0x16, 0xDE, 0x25, 0x82, 0xD9, - 0x2B, 0x33, 0x51, 0xA2, 0x4E, 0x7D, 0x94, 0xFF, - 0xFD, 0x5F, 0x80, 0xED, 0x64, 0xE7, 0x50, 0x6D, - 0xD0, 0x3C, 0x6B, 0x65, 0x77, 0x17, 0x1A, 0xEC, - 0xD5, 0xAA, 0xF9, 0xC4, 0x9C, 0x35, 0xE3, 0x42, - 0xE4, 0x19, 0x52, 0x67, 0xB7, 0x9D, 0x28, 0xC5, - 0x47, 0x38, 0x91, 0x57, 0xAE, 0x3F, 0x29, 0x9A, - 0x2F, 0xF7, 0x90, 0x04, 0xEE, 0xFA, 0x20, 0xB6, - 0xEA, 0x49, 0x23, 0x4D, 0xB3, 0x8E, 0xC3, 0x1F, - 0x7C, 0xEF, 0xE0, 0x99, 0x09, 0xA0, 0x01, 0x7E -}; - -unsigned char table_4[32] = { - 0x1F, 0x0B, 0x00, 0x1E, 0x03, 0x0E, 0x15, 0x01, - 0x1A, 0x17, 0x1D, 0x1B, 0x11, 0x0F, 0x0A, 0x12, - 0x13, 0x18, 0x02, 0x04, 0x09, 0x06, 0x0D, 0x07, - 0x08, 0x05, 0x10, 0x19, 0x0C, 0x14, 0x16, 0x1C -}; - -unsigned char table_5[256] = { - 0x9A, 0xAB, 0x61, 0x28, 0x0A, 0x23, 0xFC, 0xBA, - 0x90, 0x22, 0xB7, 0x62, 0xD9, 0x09, 0x91, 0xF4, - 0x7B, 0x5D, 0x6B, 0x80, 0xAC, 0x9E, 0x21, 0x72, - 0x64, 0x2D, 0xFF, 0x66, 0xEB, 0x5B, 0x05, 0xC8, - 0x1B, 0xD1, 0x55, 0xF5, 0x97, 0x08, 0xAE, 0xC7, - 0x00, 0xDE, 0xE1, 0x78, 0xD8, 0xB6, 0xF0, 0x17, - 0xE4, 0x32, 0xCD, 0x76, 0x07, 0x14, 0x7F, 0x7A, - 0xBF, 0xB4, 0x1D, 0x94, 0x48, 0x75, 0xFA, 0xA7, - 0x99, 0x7E, 0x65, 0x38, 0x29, 0x51, 0xC3, 0x83, - 0x7C, 0x0D, 0xA0, 0xCC, 0xF1, 0xDD, 0xE2, 0x49, - 0xF8, 0xD2, 0x25, 0x54, 0x9B, 0x0E, 0xB9, 0xFE, - 0x67, 0xC4, 0xCE, 0x13, 0xD4, 0xE7, 0xB8, 0x41, - 0x77, 0xDB, 0xA6, 0xB0, 0x11, 0x6A, 0x5E, 0x68, - 0x8D, 0xF9, 0x36, 0xD3, 0xC2, 0x3A, 0xAA, 0x59, - 0x03, 0xE0, 0xE3, 0xF3, 0x42, 0x2C, 0x04, 0x47, - 0xE6, 0x93, 0xCB, 0x6E, 0x20, 0xCA, 0x01, 0xA1, - 0x40, 0x2B, 0x2F, 0x5F, 0x87, 0xD0, 0xEC, 0x88, - 0x27, 0x58, 0xC6, 0x3E, 0xDF, 0x26, 0x5C, 0xE9, - 0x1F, 0x0F, 0x95, 0x1C, 0xFB, 0xA5, 0x12, 0x39, - 0x1E, 0x3C, 0x33, 0x43, 0x56, 0xE8, 0x82, 0xF7, - 0x7D, 0x89, 0xF2, 0xD7, 0x50, 0x92, 0x60, 0x4C, - 0x2A, 0x86, 0x16, 0x6C, 0x37, 0xC0, 0xAD, 0xB3, - 0x24, 0x45, 0xB1, 0xA2, 0x71, 0xA4, 0xA3, 0xED, - 0xC9, 0x5A, 0x4D, 0x84, 0x0C, 0x3F, 0xC5, 0x9D, - 0x63, 0x19, 0x79, 0x57, 0x96, 0x30, 0x74, 0xBB, - 0xDA, 0x1A, 0x9F, 0x44, 0xC1, 0x98, 0xE5, 0x81, - 0xD6, 0x18, 0x8F, 0xFD, 0x8E, 0x06, 0x6F, 0xF6, - 0x2E, 0x3B, 0xB5, 0x85, 0x8A, 0x9C, 0x53, 0x4A, - 0xA9, 0x52, 0x3D, 0x4E, 0xBE, 0xAF, 0xBC, 0xA8, - 0x4F, 0x6D, 0x15, 0x35, 0x8C, 0xBD, 0x34, 0x8B, - 0xDC, 0x0B, 0xCF, 0x31, 0xEA, 0xB2, 0x70, 0x4B, - 0x46, 0x73, 0x69, 0xD5, 0x10, 0xEE, 0x02, 0xEF -}; - -unsigned char table_6[32] = { - 0x1A, 0x1C, 0x0F, 0x0C, 0x00, 0x02, 0x13, 0x09, - 0x11, 0x05, 0x0D, 0x12, 0x18, 0x0B, 0x04, 0x10, - 0x14, 0x1B, 0x1E, 0x16, 0x07, 0x08, 0x03, 0x17, - 0x19, 0x1F, 0x01, 0x0E, 0x15, 0x06, 0x0A, 0x1D -}; - -unsigned char table_7[256] = { - 0x52, 0x11, 0x72, 0xD0, 0x76, 0xD7, 0xAE, 0x03, - 0x7F, 0x19, 0xF4, 0xB8, 0xB3, 0x5D, 0xCA, 0x2D, - 0x5C, 0x30, 0x53, 0x1A, 0x57, 0xF6, 0xAD, 0x83, - 0x29, 0x79, 0xD5, 0xF0, 0x0F, 0xC3, 0x8B, 0xD3, - 0x8E, 0x37, 0x01, 0xA6, 0xF1, 0x10, 0x04, 0x71, - 0xCC, 0xC6, 0xE7, 0xC2, 0x85, 0x94, 0xBD, 0x6F, - 0xCB, 0xEA, 0xFC, 0xA1, 0x38, 0x5E, 0x08, 0x2E, - 0x35, 0x42, 0x67, 0xD4, 0x56, 0x6D, 0x7C, 0xE5, - 0x0E, 0x7D, 0x12, 0x65, 0xF5, 0x33, 0x82, 0xC4, - 0x1D, 0xD2, 0x16, 0x58, 0xEC, 0xCD, 0xA8, 0xBF, - 0xAB, 0x07, 0x45, 0x55, 0xB7, 0x6A, 0x70, 0xF2, - 0xBE, 0x05, 0x6B, 0x9D, 0xEB, 0x13, 0x0D, 0x9F, - 0xE8, 0xA7, 0xC8, 0x31, 0x3C, 0xB6, 0x21, 0xC0, - 0x20, 0x60, 0x6C, 0xE2, 0xCE, 0x8C, 0xFD, 0x95, - 0xE3, 0x4A, 0xB5, 0xB2, 0x40, 0xB1, 0xF3, 0x17, - 0xF9, 0x24, 0x06, 0x22, 0x2F, 0x25, 0x93, 0x8A, - 0x2A, 0x7E, 0x28, 0x3D, 0x47, 0xF8, 0x89, 0xA5, - 0x7B, 0x9B, 0xC5, 0x84, 0x59, 0x46, 0x90, 0x74, - 0x69, 0xC7, 0xAA, 0xEE, 0x6E, 0xD6, 0xB0, 0x18, - 0x66, 0xA0, 0x7A, 0x1E, 0xFB, 0xDB, 0x4E, 0x51, - 0x92, 0xE4, 0xE0, 0x3E, 0xB4, 0xD8, 0x23, 0x3B, - 0xC1, 0x5F, 0xFE, 0x98, 0x99, 0x73, 0x09, 0xA9, - 0xA3, 0xDF, 0x14, 0x5A, 0x26, 0x8F, 0x0B, 0xAF, - 0x4C, 0x97, 0x54, 0xE1, 0x63, 0x48, 0xED, 0xBA, - 0xCF, 0xBB, 0x1F, 0xDC, 0xA4, 0xFA, 0x64, 0x75, - 0xDE, 0x81, 0x9A, 0xFF, 0x49, 0x41, 0x27, 0x62, - 0x02, 0x15, 0xD9, 0x86, 0xAC, 0x3F, 0x0C, 0x61, - 0xD1, 0x77, 0x2B, 0x1B, 0x96, 0xDA, 0x68, 0x1C, - 0x44, 0x32, 0xBC, 0xA2, 0x87, 0xF7, 0x91, 0x8D, - 0x80, 0xDD, 0x0A, 0x50, 0x34, 0x4B, 0x00, 0xB9, - 0x36, 0xE6, 0x78, 0x4F, 0xC9, 0xE9, 0x2C, 0x43, - 0x88, 0x9E, 0x9C, 0x5B, 0x4D, 0x3A, 0x39, 0xEF -}; - -unsigned char table_8[32] = { - 0x13, 0x08, 0x1E, 0x1D, 0x17, 0x16, 0x07, 0x1F, - 0x0E, 0x03, 0x1A, 0x19, 0x01, 0x12, 0x11, 0x10, - 0x09, 0x0C, 0x0F, 0x14, 0x0B, 0x05, 0x00, 0x04, - 0x1C, 0x18, 0x0A, 0x15, 0x02, 0x1B, 0x06, 0x0D -}; - -unsigned char table_9[256] = { - 0x20, 0x2A, 0xDA, 0xFE, 0x76, 0x0D, 0xED, 0x39, - 0x51, 0x4C, 0x46, 0x9A, 0xF1, 0xB0, 0x10, 0xC7, - 0xD1, 0x6F, 0x18, 0x24, 0xB9, 0x7A, 0x4F, 0x47, - 0xE0, 0x4E, 0x88, 0x09, 0x8A, 0xBA, 0x60, 0xBD, - 0xC2, 0x27, 0x93, 0x7D, 0x94, 0x40, 0xCB, 0x80, - 0xB8, 0x41, 0x84, 0x5D, 0xC1, 0x0F, 0x5E, 0x78, - 0x2B, 0x48, 0x28, 0x29, 0xEE, 0x81, 0x90, 0x86, - 0x50, 0x9C, 0xF3, 0xB2, 0x35, 0x52, 0x0C, 0x9D, - 0xFC, 0x69, 0xD6, 0xA6, 0x06, 0xD7, 0xC6, 0xFF, - 0x1C, 0x14, 0x57, 0x33, 0xE2, 0x1F, 0x83, 0xA8, - 0xF7, 0x99, 0xC5, 0xDC, 0x70, 0x9E, 0xF4, 0x6B, - 0x0A, 0x77, 0x95, 0x4A, 0x2E, 0x53, 0xF2, 0x62, - 0x98, 0xF8, 0x96, 0xDB, 0xE6, 0x32, 0x3C, 0x58, - 0xD5, 0x6D, 0xE7, 0x4B, 0xCE, 0x91, 0x43, 0xD8, - 0xFA, 0xE3, 0x4D, 0xD9, 0x68, 0xDE, 0xEC, 0x01, - 0x08, 0xD3, 0x8F, 0x19, 0xC4, 0xA7, 0x6E, 0x3E, - 0x63, 0x12, 0x72, 0x42, 0x9F, 0xB4, 0x04, 0x1B, - 0x7E, 0x11, 0x17, 0x73, 0xB5, 0x22, 0x56, 0xA1, - 0x89, 0xDD, 0xF5, 0x3F, 0x49, 0x26, 0x8D, 0x15, - 0x85, 0x75, 0x5F, 0x65, 0x82, 0xB6, 0xF6, 0xD2, - 0xA4, 0x55, 0x37, 0xC8, 0xA0, 0xCC, 0x66, 0x5C, - 0xC9, 0x25, 0x36, 0x67, 0x7C, 0xE1, 0xA3, 0xCF, - 0xA9, 0x59, 0x2F, 0xFB, 0xBB, 0x07, 0x87, 0xA2, - 0x44, 0x92, 0x13, 0x00, 0x16, 0x61, 0x38, 0xEB, - 0xAE, 0xD4, 0x1E, 0x64, 0x6A, 0xE4, 0xCA, 0x1D, - 0x6C, 0xDF, 0xAB, 0x5B, 0x03, 0x7B, 0x9B, 0x8C, - 0x5A, 0xFD, 0xC3, 0xB3, 0x0B, 0xAA, 0xAC, 0x8B, - 0xBE, 0xBC, 0x3D, 0x97, 0xCD, 0x05, 0x21, 0x8E, - 0xAD, 0xEA, 0x54, 0x30, 0xAF, 0x02, 0xB1, 0x34, - 0x0E, 0xA5, 0x3B, 0x45, 0x1A, 0x23, 0xE8, 0x7F, - 0xEF, 0xB7, 0x31, 0xD0, 0xBF, 0x3A, 0x79, 0xE5, - 0xF9, 0xF0, 0x2C, 0x74, 0xE9, 0x71, 0xC0, 0x2D -}; - -unsigned char table_10[32] = { - 0x1D, 0x12, 0x11, 0x0D, 0x1E, 0x19, 0x16, 0x1B, - 0x18, 0x13, 0x07, 0x17, 0x0C, 0x02, 0x00, 0x15, - 0x0E, 0x08, 0x05, 0x01, 0x10, 0x06, 0x04, 0x0F, - 0x1F, 0x1A, 0x0B, 0x09, 0x0A, 0x14, 0x1C, 0x03 -}; - -unsigned char table_11[256] = { - 0x6B, 0x1D, 0xC6, 0x0A, 0xB7, 0xAC, 0xB2, 0x11, - 0x29, 0xD3, 0xA2, 0x4D, 0xCB, 0x03, 0xEF, 0xA6, - 0xC1, 0x5D, 0x75, 0x48, 0x35, 0x6C, 0xE2, 0x84, - 0xAB, 0xAA, 0xD8, 0x2C, 0x0E, 0x95, 0x25, 0x27, - 0x7D, 0x0B, 0xD0, 0xFB, 0x14, 0xE5, 0xF2, 0x4E, - 0x7F, 0x2A, 0x63, 0x3C, 0xC9, 0xF6, 0xDC, 0x07, - 0x26, 0x55, 0xCF, 0x2B, 0xCD, 0xA7, 0x17, 0xD2, - 0x9A, 0x7B, 0x93, 0x78, 0x9E, 0xE6, 0x2F, 0x49, - 0x1E, 0xFD, 0xF0, 0xFE, 0x7C, 0x33, 0x92, 0xA3, - 0xC8, 0xA0, 0xA9, 0xC4, 0xA1, 0x94, 0x6D, 0x44, - 0x0C, 0x90, 0x3A, 0x8C, 0x8E, 0x85, 0xAF, 0x40, - 0x36, 0xA4, 0xD1, 0xB9, 0x19, 0x6F, 0xF4, 0xBA, - 0x1A, 0x73, 0xD9, 0xB5, 0xB4, 0x7A, 0xF9, 0x83, - 0x58, 0xAD, 0xCE, 0x60, 0x98, 0xDB, 0x1C, 0x1B, - 0x52, 0xB8, 0xF3, 0x96, 0xED, 0xDE, 0xB3, 0xEE, - 0x4F, 0xBD, 0x10, 0xD4, 0x43, 0xEA, 0xE7, 0x37, - 0x12, 0x3D, 0xA8, 0x22, 0x65, 0xEC, 0x5B, 0x08, - 0x9D, 0x0D, 0x5C, 0xB6, 0x8A, 0x79, 0x3F, 0x04, - 0xD6, 0x01, 0xE1, 0xBE, 0xDD, 0x50, 0xFA, 0x41, - 0x13, 0x91, 0xF7, 0xDA, 0x18, 0xB0, 0x45, 0x81, - 0x4C, 0xF5, 0x32, 0x23, 0x56, 0x5A, 0xEB, 0x97, - 0x34, 0x00, 0x77, 0x71, 0x4B, 0x70, 0xD5, 0x31, - 0x72, 0x05, 0xDF, 0xE8, 0x15, 0x3B, 0x54, 0x16, - 0x89, 0xE4, 0xF1, 0xD7, 0x80, 0x82, 0x4A, 0xE3, - 0x39, 0x06, 0x47, 0x28, 0xC2, 0x86, 0x87, 0xB1, - 0x62, 0x74, 0x53, 0x21, 0x67, 0x38, 0x42, 0xCA, - 0x9B, 0xC3, 0x51, 0x99, 0x8B, 0x1F, 0x24, 0x8D, - 0xF8, 0x68, 0x3E, 0x59, 0xBB, 0x61, 0x5F, 0xBC, - 0x09, 0x6E, 0x8F, 0x0F, 0x2D, 0xC0, 0xE0, 0x46, - 0x66, 0x69, 0xA5, 0xE9, 0x30, 0x9C, 0x5E, 0xAE, - 0xBF, 0xC7, 0x20, 0x7E, 0x6A, 0xC5, 0x88, 0xFC, - 0x64, 0x76, 0xFF, 0x9F, 0x2E, 0x02, 0xCC, 0x57 -}; - -unsigned char table_12[32] = { - 0x14, 0x1B, 0x18, 0x00, 0x1F, 0x15, 0x17, 0x07, - 0x11, 0x1A, 0x0E, 0x13, 0x12, 0x06, 0x01, 0x03, - 0x1C, 0x0C, 0x0B, 0x1D, 0x10, 0x0F, 0x09, 0x19, - 0x0D, 0x1E, 0x04, 0x05, 0x08, 0x16, 0x0A, 0x02 -}; - -unsigned char table_13[256] = { - 0x37, 0x8A, 0x1B, 0x91, 0xA5, 0x2B, 0x2D, 0x88, - 0x8E, 0xFE, 0x0E, 0xD3, 0xF3, 0xE9, 0x7D, 0xD1, - 0x24, 0xEA, 0xB1, 0x8B, 0x5C, 0xA4, 0x44, 0x7E, - 0x8C, 0x2C, 0x73, 0xD5, 0x50, 0x3E, 0xD7, 0x18, - 0xB9, 0xD6, 0xBA, 0x94, 0x0C, 0xFC, 0xCB, 0xB4, - 0x0D, 0x63, 0x4C, 0xDE, 0x77, 0x16, 0xFD, 0x81, - 0x3C, 0x11, 0x45, 0x36, 0xF6, 0x67, 0x95, 0x6D, - 0x6A, 0x1A, 0xA3, 0xC5, 0x92, 0x10, 0x28, 0x84, - 0x48, 0xA6, 0x23, 0xE3, 0x4B, 0xE1, 0xF5, 0x19, - 0xE0, 0x2E, 0x00, 0x61, 0x74, 0xCC, 0xF7, 0xB0, - 0x68, 0xC8, 0x40, 0x6F, 0x59, 0x52, 0x26, 0x99, - 0xC9, 0xF9, 0xC4, 0x53, 0x9B, 0xEC, 0x03, 0x17, - 0xE2, 0x06, 0x30, 0x7B, 0xBE, 0xCD, 0x1D, 0x3B, - 0xD2, 0x5B, 0x65, 0x21, 0x49, 0xB7, 0x79, 0xCF, - 0x82, 0x86, 0xC7, 0x62, 0xEE, 0x8D, 0xFF, 0xD4, - 0xC3, 0x85, 0xA7, 0xFA, 0xA9, 0x6B, 0xF2, 0x69, - 0x9C, 0x38, 0x78, 0xBD, 0x7F, 0xDD, 0xCE, 0xA1, - 0x33, 0xC2, 0x43, 0xEB, 0xD8, 0xE6, 0x2A, 0xE4, - 0x76, 0x6C, 0xAA, 0x46, 0x05, 0xE7, 0xA0, 0x0A, - 0x71, 0x98, 0x41, 0x5F, 0x0F, 0xEF, 0x51, 0xAD, - 0xF0, 0xED, 0x96, 0x5A, 0x42, 0x3F, 0xBF, 0x6E, - 0xBC, 0x5D, 0xC1, 0x15, 0x70, 0x54, 0x4D, 0x14, - 0xB5, 0xCA, 0x27, 0x80, 0x87, 0x39, 0x60, 0x47, - 0x9D, 0x2F, 0x56, 0x1F, 0xBB, 0x31, 0xF1, 0xE8, - 0xB3, 0x9E, 0x5E, 0x7C, 0xD0, 0xC6, 0xB2, 0x57, - 0x83, 0xAC, 0x09, 0x8F, 0xA2, 0x90, 0x13, 0x25, - 0x01, 0x08, 0x64, 0xB6, 0x02, 0xDB, 0x55, 0x32, - 0xAF, 0x9A, 0xC0, 0x1C, 0x12, 0x29, 0x0B, 0x72, - 0x4F, 0xDA, 0xAB, 0x35, 0xF8, 0x22, 0xD9, 0x4E, - 0x3D, 0x1E, 0xDC, 0x58, 0x20, 0x34, 0xAE, 0x66, - 0x75, 0x93, 0x9F, 0x3A, 0x07, 0xE5, 0x89, 0xDF, - 0x97, 0x4A, 0xB8, 0x7A, 0xF4, 0xFB, 0x04, 0xA8 -}; - -unsigned char table_14[32] = { - 0x04, 0x14, 0x13, 0x15, 0x1A, 0x1B, 0x0F, 0x16, - 0x02, 0x0D, 0x0C, 0x06, 0x10, 0x17, 0x01, 0x0B, - 0x1E, 0x08, 0x1C, 0x18, 0x19, 0x0A, 0x1F, 0x05, - 0x11, 0x09, 0x1D, 0x07, 0x0E, 0x12, 0x03, 0x00 -}; - -unsigned char table_15[256] = { - 0x61, 0x48, 0x58, 0x41, 0x7F, 0x88, 0x43, 0x42, - 0xD9, 0x80, 0x81, 0xFE, 0xC6, 0x49, 0xD7, 0x2C, - 0xE6, 0x5B, 0xEE, 0xFF, 0x2A, 0x6F, 0xBF, 0x98, - 0xD6, 0x20, 0xB9, 0xB1, 0x5D, 0x95, 0x72, 0x1E, - 0x82, 0x96, 0xDE, 0xC1, 0x40, 0xD8, 0x70, 0xA3, - 0xD1, 0x1F, 0xF0, 0x9F, 0x2D, 0xDC, 0x3F, 0xF9, - 0x5E, 0x0D, 0x15, 0x2F, 0x67, 0x31, 0x9D, 0x84, - 0x97, 0x0C, 0xF6, 0x79, 0xC2, 0xA7, 0xC0, 0x32, - 0xB3, 0xEB, 0xED, 0x71, 0x30, 0xCC, 0x4B, 0xA0, - 0xF5, 0xC4, 0xCD, 0x27, 0xFA, 0x11, 0x25, 0xDB, - 0x4F, 0xE2, 0x7E, 0xA6, 0xAF, 0x34, 0x69, 0x63, - 0x8F, 0x08, 0x1C, 0x85, 0xF1, 0x57, 0x78, 0xC8, - 0xA2, 0x83, 0xB5, 0x68, 0xF7, 0x64, 0x45, 0x26, - 0x3B, 0x03, 0xAD, 0x3C, 0x50, 0xD5, 0x77, 0xFC, - 0xFB, 0x18, 0xC9, 0xD2, 0x9C, 0xBB, 0xBA, 0x76, - 0x23, 0x55, 0xD3, 0x5A, 0x01, 0xE9, 0x87, 0x07, - 0x19, 0x09, 0x39, 0x8A, 0x91, 0x93, 0x12, 0xDF, - 0x22, 0xA8, 0xCF, 0x4E, 0x4D, 0x65, 0xB0, 0x0F, - 0x13, 0x53, 0x21, 0x8C, 0xE5, 0xB7, 0x0B, 0x0E, - 0x6C, 0x44, 0xCA, 0x7B, 0xC5, 0x6E, 0xCE, 0xE3, - 0x14, 0x29, 0xAC, 0x2E, 0xE7, 0x59, 0xE8, 0x0A, - 0xEA, 0x66, 0x7C, 0x94, 0x6D, 0x05, 0x9E, 0x9A, - 0x2B, 0x38, 0x6A, 0xCB, 0x51, 0xEF, 0x06, 0xDA, - 0xFD, 0x47, 0x92, 0x1D, 0xA5, 0x37, 0x33, 0xEC, - 0xB4, 0x52, 0x56, 0xC3, 0xF4, 0xF8, 0x8B, 0xD0, - 0xA4, 0x5F, 0x28, 0x89, 0x75, 0xC7, 0x04, 0x00, - 0xE4, 0x86, 0x36, 0x3A, 0x99, 0x16, 0x7D, 0xE0, - 0x7A, 0x4C, 0x54, 0x46, 0x73, 0xB2, 0xF3, 0xE1, - 0x62, 0xBE, 0x90, 0x4A, 0x24, 0x6B, 0x3E, 0xAA, - 0x1B, 0xF2, 0x60, 0xD4, 0xA9, 0x9B, 0x1A, 0xB8, - 0xA1, 0x35, 0xAE, 0xB6, 0x10, 0x5C, 0x17, 0xBC, - 0xAB, 0x8D, 0x02, 0x74, 0xBD, 0x3D, 0x8E, 0xDD -}; - -unsigned char table_16[256] = { - 0x3F, 0x9C, 0x17, 0xC1, 0x59, 0xC6, 0x23, 0x93, - 0x4B, 0xDF, 0xCB, 0x55, 0x2B, 0xDE, 0xCD, 0xAD, - 0xB3, 0xE7, 0x42, 0x2F, 0x02, 0x5A, 0x7B, 0x5C, - 0x8F, 0xD1, 0x11, 0xCE, 0xEC, 0xF6, 0xA4, 0xE6, - 0x58, 0x98, 0x6A, 0x99, 0xFB, 0x9B, 0x53, 0x21, - 0x8A, 0x09, 0x2E, 0x3C, 0x22, 0x38, 0xAC, 0x07, - 0x91, 0x46, 0xA9, 0x95, 0xC3, 0x14, 0x84, 0xDB, - 0x36, 0x68, 0x1D, 0xDD, 0xF9, 0x12, 0xE0, 0x3D, - 0x8D, 0x4D, 0x05, 0x86, 0x69, 0xC0, 0xD3, 0xD5, - 0xA5, 0xC9, 0xE5, 0x67, 0x6D, 0xE2, 0x7F, 0xFE, - 0xB2, 0x0F, 0x62, 0xCF, 0x37, 0x35, 0xF3, 0x28, - 0x16, 0xA6, 0x50, 0x76, 0x80, 0x00, 0x31, 0x97, - 0x39, 0x7C, 0x25, 0x0C, 0x64, 0xF2, 0x52, 0x1A, - 0x92, 0x4F, 0x2A, 0x56, 0x03, 0x4C, 0xBD, 0x10, - 0xB7, 0x2C, 0x8C, 0xAE, 0x73, 0xB9, 0xE9, 0xF7, - 0xA7, 0xE1, 0x75, 0xBC, 0xC5, 0x1C, 0x3A, 0x63, - 0x7A, 0x4A, 0x29, 0xD2, 0x71, 0xE8, 0x08, 0xA1, - 0xD4, 0xFD, 0x13, 0xFA, 0xA0, 0x27, 0x41, 0x72, - 0x82, 0x18, 0x51, 0x60, 0x5E, 0x66, 0x0D, 0xAA, - 0xD8, 0x1F, 0xAF, 0x45, 0xD0, 0xF1, 0x9F, 0x6B, - 0xE4, 0x44, 0x89, 0xEE, 0xC4, 0x0B, 0x6C, 0xCC, - 0x83, 0x77, 0xA2, 0x87, 0x0A, 0xA8, 0xED, 0x90, - 0x74, 0x6E, 0xF5, 0xAB, 0xA3, 0xB6, 0x5F, 0x0E, - 0x04, 0x9A, 0xB4, 0x8E, 0xF0, 0xFF, 0x88, 0xB5, - 0xF8, 0xBF, 0x8B, 0x6F, 0x4E, 0x79, 0x40, 0xCA, - 0x24, 0x26, 0xDC, 0x33, 0xEB, 0x2D, 0x5B, 0x1B, - 0x9D, 0xC7, 0x49, 0x48, 0x54, 0x85, 0xEF, 0xD7, - 0xC2, 0xB8, 0xC8, 0x5D, 0xD9, 0x3B, 0x15, 0xBB, - 0x65, 0xE3, 0xD6, 0x30, 0x3E, 0x1E, 0x32, 0x9E, - 0x57, 0x81, 0x34, 0x06, 0xFC, 0xBA, 0x7D, 0x20, - 0x70, 0xDA, 0x7E, 0x47, 0x94, 0x61, 0xB0, 0x78, - 0xF4, 0xBE, 0xEA, 0x19, 0x43, 0x01, 0xB1, 0x96 -}; - -unsigned char table_17[256] = { - 0x7E, 0xF1, 0xD3, 0x75, 0x87, 0xA6, 0xED, 0x9E, - 0xA9, 0xD5, 0xC6, 0xBF, 0xE6, 0x6A, 0xEE, 0x4B, - 0x34, 0xDF, 0x4C, 0x7D, 0xDD, 0xFE, 0x3F, 0xAF, - 0x66, 0x2D, 0x74, 0x6F, 0xFC, 0x4F, 0x5F, 0x88, - 0x29, 0x7B, 0xC7, 0x2A, 0x70, 0xE8, 0x1D, 0xDE, - 0xD0, 0x55, 0x71, 0x81, 0xC4, 0x0D, 0x50, 0x4E, - 0x58, 0x00, 0x96, 0x97, 0xBB, 0xD7, 0x53, 0x15, - 0x6C, 0x40, 0x17, 0xC9, 0xFF, 0x8F, 0x94, 0xFB, - 0x19, 0x9A, 0x3E, 0xB5, 0x5A, 0x5E, 0x86, 0x24, - 0xB8, 0x77, 0xBA, 0x85, 0x51, 0x18, 0xBE, 0x59, - 0x79, 0xF3, 0xD4, 0xC3, 0xAB, 0x28, 0xFD, 0x25, - 0x41, 0x91, 0x07, 0x8D, 0xAE, 0x49, 0xF5, 0x80, - 0x35, 0xA1, 0x9C, 0x3C, 0xE2, 0x65, 0xB3, 0xE0, - 0x16, 0xCB, 0x12, 0x6B, 0xF7, 0xB1, 0x93, 0x8A, - 0xCE, 0x54, 0x4D, 0xF8, 0x13, 0xA2, 0x95, 0x46, - 0xEA, 0x61, 0x57, 0x9D, 0x27, 0x8B, 0x3D, 0x60, - 0x36, 0x68, 0x06, 0x56, 0xB6, 0x1B, 0xD2, 0x89, - 0x10, 0xA7, 0xC5, 0x1A, 0x0B, 0x2C, 0xBD, 0x14, - 0x0A, 0xDC, 0x23, 0xA8, 0xE1, 0x04, 0x02, 0xC0, - 0xB2, 0x9B, 0xE3, 0x2E, 0x33, 0x7C, 0x32, 0xAC, - 0x7A, 0x39, 0xB0, 0xF9, 0x98, 0x5B, 0x3A, 0x48, - 0x21, 0x90, 0xB9, 0x20, 0xF0, 0xA0, 0x09, 0x1F, - 0x2F, 0xEF, 0xEB, 0x22, 0x78, 0x82, 0x37, 0xD6, - 0xD1, 0x84, 0x76, 0x01, 0xDB, 0x43, 0xC2, 0xB7, - 0x7F, 0xA4, 0xE5, 0xC1, 0x1C, 0x69, 0x05, 0xEC, - 0xD8, 0x38, 0x67, 0x42, 0x72, 0xBC, 0x73, 0xAD, - 0xA3, 0xE9, 0x4A, 0x8E, 0x47, 0x1E, 0xC8, 0x6E, - 0xDA, 0x5D, 0x2B, 0xF6, 0x30, 0x63, 0xCC, 0xF4, - 0xCD, 0x8C, 0x0F, 0x3B, 0xE7, 0xD9, 0xCF, 0xB4, - 0x03, 0x92, 0x0E, 0x31, 0xE4, 0x08, 0xF2, 0x45, - 0xCA, 0x83, 0x26, 0x5C, 0xA5, 0x44, 0x64, 0x6D, - 0x9F, 0x99, 0x62, 0xAA, 0xFA, 0x11, 0x0C, 0x52 -}; - -unsigned char table_18[256] = { - 0x0F, 0x42, 0x3D, 0x86, 0x3E, 0x66, 0xFE, 0x5C, - 0x52, 0xE2, 0xA3, 0xB3, 0xCE, 0x16, 0xCC, 0x95, - 0xB0, 0x8B, 0x82, 0x3B, 0x93, 0x7D, 0x62, 0x08, - 0x1C, 0x6E, 0xBB, 0xCB, 0x1D, 0x88, 0x69, 0xD4, - 0xC9, 0x40, 0x1F, 0xBE, 0x27, 0xBC, 0xDB, 0x38, - 0xE5, 0xA1, 0x71, 0xBA, 0x8A, 0x5E, 0xFD, 0x36, - 0x8F, 0x26, 0x6B, 0xE4, 0x20, 0x6D, 0xC5, 0xDE, - 0xE0, 0x83, 0x7C, 0xD5, 0xD9, 0x4D, 0xDC, 0xE3, - 0x0D, 0x32, 0xED, 0x0E, 0x2F, 0x21, 0xA7, 0x79, - 0xA0, 0xD3, 0x8C, 0x14, 0x6F, 0xB7, 0xF8, 0x85, - 0x5D, 0x37, 0x24, 0xD6, 0x25, 0xD2, 0x8E, 0xA5, - 0xB8, 0xCD, 0x5A, 0x9F, 0x05, 0xAD, 0x65, 0x9E, - 0x4F, 0x5B, 0x56, 0xF0, 0xAA, 0xC2, 0x28, 0xA8, - 0x6A, 0x01, 0x99, 0x2E, 0xA6, 0x77, 0x74, 0x64, - 0x76, 0x15, 0x90, 0x75, 0xAF, 0xE8, 0x39, 0x48, - 0x09, 0x11, 0xE1, 0x2D, 0xEC, 0xB5, 0x7A, 0xB1, - 0x94, 0x13, 0x41, 0x4C, 0x02, 0xA9, 0x97, 0xDF, - 0xC3, 0x8D, 0xEA, 0x3A, 0x9C, 0xD1, 0xA2, 0x9A, - 0xD7, 0x59, 0xD8, 0x18, 0xDA, 0x47, 0x89, 0x81, - 0xC7, 0xF5, 0xFC, 0x98, 0xCA, 0x91, 0x06, 0x68, - 0xC8, 0x07, 0x4A, 0x84, 0x0A, 0xE7, 0x33, 0x2C, - 0xEB, 0xDD, 0x5F, 0xAC, 0x23, 0x1A, 0x35, 0x70, - 0x43, 0x80, 0x61, 0xAE, 0xC1, 0xD0, 0x7B, 0x92, - 0x49, 0x51, 0x53, 0xC4, 0x34, 0x30, 0x0C, 0x4B, - 0x00, 0x04, 0x10, 0xFF, 0x63, 0x44, 0xB4, 0x0B, - 0x57, 0x72, 0xF1, 0x9D, 0x19, 0xF6, 0xB2, 0x87, - 0x1B, 0xEE, 0x46, 0x2A, 0xF3, 0xBF, 0x12, 0x96, - 0x58, 0x2B, 0xF9, 0xB6, 0xCF, 0x22, 0x3C, 0xAB, - 0x1E, 0x6C, 0x31, 0xC6, 0xF7, 0x78, 0x45, 0x17, - 0xE9, 0x7E, 0x73, 0xF2, 0x55, 0xFB, 0x3F, 0x9B, - 0xF4, 0xBD, 0xA4, 0x29, 0x60, 0x03, 0xB9, 0x50, - 0xFA, 0x4E, 0xEF, 0x54, 0xE6, 0x7F, 0xC0, 0x67 -}; - -unsigned char table_19[256] = { - 0xEA, 0xE7, 0x13, 0x14, 0xB9, 0xC0, 0xC4, 0x42, - 0x49, 0x6E, 0x2A, 0xA6, 0x65, 0x3C, 0x6A, 0x40, - 0x07, 0xCD, 0x4F, 0xFE, 0xF2, 0x2D, 0xC8, 0x30, - 0x9D, 0xBE, 0x1B, 0x9B, 0x4A, 0x7E, 0x9F, 0xA7, - 0x78, 0xAB, 0x4D, 0x1D, 0xF1, 0x96, 0x32, 0x84, - 0xFB, 0x80, 0x88, 0xE8, 0x41, 0x97, 0xDC, 0xD0, - 0x4E, 0x33, 0xA4, 0x3B, 0xE0, 0xDD, 0x36, 0xC9, - 0x72, 0x48, 0x8A, 0x2F, 0x35, 0xF0, 0xDF, 0x21, - 0xE1, 0xE5, 0x6C, 0x9A, 0x60, 0x8F, 0xB7, 0x24, - 0xE4, 0x9E, 0x8C, 0x0F, 0x3D, 0x28, 0xBB, 0xD6, - 0x69, 0xA0, 0x66, 0xC7, 0xE3, 0xD8, 0x11, 0x27, - 0xD9, 0x37, 0xF4, 0xF5, 0x8E, 0xD4, 0x76, 0xE2, - 0xDB, 0x15, 0xA2, 0x5C, 0x9C, 0xEE, 0x44, 0xED, - 0x2B, 0xB3, 0x75, 0x74, 0x71, 0x8B, 0x3A, 0x91, - 0x06, 0x19, 0xC1, 0x57, 0x89, 0xCC, 0x82, 0x10, - 0x17, 0xB2, 0x08, 0x70, 0x39, 0xCA, 0xBA, 0xB5, - 0xAA, 0xBF, 0x02, 0xBD, 0x26, 0x58, 0x04, 0x54, - 0x23, 0x4B, 0x90, 0x51, 0x6D, 0x98, 0xD5, 0xB0, - 0xAF, 0x22, 0xDA, 0xB4, 0x87, 0xFC, 0x7D, 0x18, - 0x6F, 0x64, 0x59, 0x09, 0x0C, 0xA5, 0x5D, 0x03, - 0x0A, 0xD3, 0xCE, 0x99, 0x8D, 0xC2, 0xC3, 0x62, - 0xD2, 0x83, 0x1A, 0xAC, 0x7C, 0x93, 0xD7, 0xA9, - 0x16, 0xF7, 0x77, 0xE6, 0x3E, 0x05, 0x73, 0x55, - 0x43, 0x95, 0x7A, 0x6B, 0x38, 0x67, 0x3F, 0xC6, - 0xAD, 0x0E, 0x29, 0x46, 0x45, 0xFA, 0xBC, 0xEC, - 0x5B, 0x7F, 0x0B, 0x1C, 0x01, 0x12, 0x85, 0x50, - 0xF9, 0xEF, 0x25, 0x34, 0x79, 0x2E, 0xEB, 0x00, - 0x5F, 0x86, 0xF8, 0x4C, 0xA8, 0x56, 0xB6, 0x5A, - 0xF3, 0x31, 0x94, 0x92, 0xB1, 0xB8, 0x52, 0xD1, - 0xCF, 0xCB, 0xA1, 0x81, 0x68, 0x47, 0xFF, 0xC5, - 0xFD, 0x1F, 0xDE, 0x53, 0xA3, 0x2C, 0x20, 0xF6, - 0x1E, 0x0D, 0xAE, 0x7B, 0x5E, 0x61, 0xE9, 0x63 -}; - -unsigned char table_20[32] = { - 0x0D, 0x0B, 0x11, 0x02, 0x05, 0x1B, 0x08, 0x1D, - 0x04, 0x14, 0x01, 0x09, 0x00, 0x19, 0x1E, 0x15, - 0x1F, 0x0A, 0x0F, 0x1C, 0x10, 0x16, 0x0C, 0x07, - 0x13, 0x1A, 0x06, 0x17, 0x0E, 0x12, 0x18, 0x03 -}; - -unsigned char table_21[256] = { - 0x4C, 0x94, 0xAD, 0x66, 0x9E, 0x69, 0x04, 0xA8, - 0x61, 0xE0, 0xE1, 0x3D, 0xFD, 0x9C, 0xFB, 0x19, - 0x1E, 0x80, 0x8C, 0xA0, 0xFC, 0x27, 0x26, 0x3B, - 0x48, 0x6D, 0x07, 0xE4, 0xEA, 0x17, 0x64, 0x9B, - 0xD0, 0xE2, 0xD1, 0x13, 0x39, 0xF5, 0x73, 0xD3, - 0x0C, 0x3A, 0x6E, 0x77, 0xFA, 0xE3, 0x2F, 0x44, - 0x7E, 0x72, 0x30, 0x43, 0xD4, 0x7F, 0x36, 0xD9, - 0xBD, 0x3E, 0x3F, 0x91, 0xBE, 0x54, 0x79, 0xA6, - 0x7C, 0x0E, 0xC5, 0x7A, 0x70, 0xC4, 0xD7, 0xCE, - 0xDA, 0xAA, 0x68, 0x8F, 0xBC, 0x96, 0x1B, 0x16, - 0xA2, 0xC6, 0x67, 0x09, 0x45, 0x9F, 0xCF, 0x41, - 0xC8, 0x60, 0x74, 0x99, 0x5D, 0x85, 0x5F, 0x50, - 0x33, 0x52, 0x22, 0xA9, 0xB5, 0x2D, 0x98, 0x87, - 0x15, 0x9A, 0xAC, 0x2C, 0xDE, 0xC0, 0xB8, 0x37, - 0x88, 0x1F, 0xC1, 0x4F, 0x65, 0x0F, 0x3C, 0x84, - 0x4B, 0x1A, 0xAB, 0xA4, 0x23, 0xCB, 0xB1, 0xC7, - 0xDB, 0xEF, 0x40, 0x0D, 0x46, 0xE8, 0xF4, 0x71, - 0x38, 0x01, 0x5C, 0x0B, 0x5E, 0xC9, 0xAF, 0xC3, - 0xF6, 0xB6, 0x10, 0x1D, 0xE5, 0x8A, 0x90, 0xA7, - 0xA3, 0x05, 0x4E, 0x14, 0x63, 0x25, 0x34, 0xEC, - 0x6B, 0x95, 0x21, 0x55, 0xF2, 0xF0, 0x47, 0x9D, - 0xF8, 0x8E, 0x02, 0x0A, 0xED, 0x97, 0xAE, 0x00, - 0x2A, 0xEB, 0xB2, 0xA5, 0x32, 0x06, 0x2E, 0xFE, - 0x8D, 0x7B, 0x7D, 0x35, 0x5A, 0xD2, 0xF1, 0xE9, - 0xF9, 0x62, 0xB7, 0xB9, 0x53, 0x75, 0x5B, 0x8B, - 0xCC, 0x6C, 0x18, 0x49, 0x89, 0x31, 0xB0, 0x92, - 0x6F, 0xDF, 0x03, 0x57, 0xF3, 0x58, 0xCA, 0x2B, - 0x93, 0xA1, 0xD6, 0x24, 0x29, 0xCD, 0x59, 0x1C, - 0x83, 0xB3, 0x42, 0xBF, 0x82, 0xB4, 0x11, 0x4A, - 0x08, 0xEE, 0x76, 0x4D, 0x12, 0xDC, 0xE6, 0xC2, - 0x56, 0xBA, 0x86, 0x28, 0x6A, 0x20, 0x51, 0xF7, - 0xFF, 0xD8, 0xE7, 0xDD, 0xBB, 0x78, 0xD5, 0x81 -}; - -unsigned char table_22[32] = { - 0x0B, 0x15, 0x1C, 0x0C, 0x06, 0x0A, 0x1D, 0x16, - 0x12, 0x0E, 0x04, 0x11, 0x1F, 0x0F, 0x07, 0x02, - 0x17, 0x13, 0x19, 0x18, 0x0D, 0x10, 0x1A, 0x05, - 0x03, 0x00, 0x01, 0x08, 0x09, 0x14, 0x1B, 0x1E -}; - -unsigned char table_23[256] = { - 0x36, 0x53, 0x2D, 0xD0, 0x7A, 0xF0, 0xD5, 0x1C, - 0x50, 0x61, 0x9A, 0x90, 0x0B, 0x29, 0x20, 0x77, - 0xF1, 0x82, 0xFE, 0xC1, 0xA7, 0xB6, 0x78, 0x87, - 0x02, 0x05, 0xCB, 0x28, 0xAE, 0xD6, 0x17, 0x1A, - 0x91, 0x5D, 0xB9, 0xE2, 0xDE, 0x6A, 0x4E, 0x07, - 0xAC, 0x38, 0x13, 0x3B, 0x46, 0xFD, 0xB7, 0xD1, - 0x79, 0xFB, 0x58, 0x76, 0x08, 0x47, 0x95, 0xA6, - 0x99, 0x9E, 0x12, 0x67, 0xC2, 0xED, 0x9C, 0x1B, - 0x89, 0x71, 0xB5, 0x4A, 0xAA, 0x5F, 0x34, 0x85, - 0x40, 0x2B, 0x9F, 0x37, 0x7C, 0x0F, 0xD4, 0x75, - 0x48, 0x27, 0x2E, 0xC9, 0xEB, 0x06, 0xDF, 0x8C, - 0x14, 0xAF, 0xEE, 0xA2, 0x74, 0x45, 0x8D, 0x70, - 0x6B, 0xD7, 0x56, 0xCF, 0xBC, 0x7B, 0x01, 0xC8, - 0x54, 0xB0, 0x3C, 0x39, 0xFA, 0x81, 0xDC, 0xBB, - 0x0D, 0xB2, 0xAD, 0x93, 0xC7, 0x8A, 0x73, 0x6C, - 0xC3, 0x04, 0x2F, 0xEF, 0x52, 0x33, 0x9D, 0x1E, - 0xC5, 0x65, 0x23, 0xD8, 0xB1, 0xD2, 0xE5, 0x25, - 0x2C, 0xE6, 0x92, 0xB4, 0xF7, 0xF4, 0x8F, 0x6E, - 0xE8, 0x5A, 0x8E, 0x7D, 0x4C, 0xB3, 0xFF, 0x41, - 0x26, 0xE3, 0x30, 0x69, 0xF8, 0x80, 0x57, 0x4F, - 0xA0, 0x7F, 0x66, 0x68, 0xE1, 0x7E, 0x0E, 0x31, - 0xE7, 0xEA, 0x3E, 0x8B, 0x4B, 0x94, 0xE9, 0xCD, - 0x19, 0x35, 0xA3, 0x98, 0xD9, 0x5B, 0x44, 0x2A, - 0xE0, 0x6D, 0xF3, 0xE4, 0x72, 0x18, 0x03, 0x59, - 0x84, 0x09, 0xA1, 0x9B, 0xBD, 0xDA, 0x4D, 0x63, - 0xCC, 0x3A, 0x10, 0xFC, 0x3F, 0x0A, 0x88, 0x24, - 0xF5, 0x21, 0xC4, 0x6F, 0x1F, 0x42, 0x62, 0x64, - 0x51, 0xDD, 0xCA, 0xF9, 0x22, 0xCE, 0xA8, 0x86, - 0xBA, 0xB8, 0x5C, 0xAB, 0x32, 0x00, 0x0C, 0xF2, - 0x83, 0xDB, 0xF6, 0x60, 0x3D, 0x16, 0xEC, 0x11, - 0xA4, 0xBE, 0x96, 0x5E, 0x97, 0xD3, 0xA5, 0x55, - 0x1D, 0x15, 0xC6, 0xBF, 0xA9, 0x43, 0xC0, 0x49 -}; - -unsigned char table_24[256] = { - 0xDC, 0x5A, 0xE6, 0x59, 0x64, 0xDA, 0x58, 0x40, - 0x95, 0xF8, 0x2A, 0xE0, 0x39, 0x7E, 0x32, 0x89, - 0x09, 0x93, 0xED, 0x55, 0xC3, 0x5B, 0x1A, 0xD1, - 0xA5, 0x8B, 0x0F, 0x13, 0xC9, 0xE1, 0x34, 0xD0, - 0xB6, 0xA2, 0xD9, 0x52, 0x57, 0x83, 0xFD, 0xE9, - 0xAC, 0x73, 0x6E, 0x21, 0xF1, 0x0E, 0x25, 0xCC, - 0x36, 0xFB, 0xF7, 0x92, 0x15, 0x30, 0x54, 0x91, - 0xD6, 0x9E, 0xAA, 0x35, 0x70, 0xB2, 0xC0, 0x27, - 0xFE, 0x04, 0xBC, 0xC7, 0x02, 0xFA, 0x7D, 0xE3, - 0xBE, 0x62, 0x79, 0x2B, 0x31, 0x6A, 0x8F, 0x7F, - 0x56, 0xF0, 0xB4, 0x0C, 0x1F, 0x68, 0xB7, 0xB9, - 0x0B, 0x14, 0x3E, 0xA9, 0x4B, 0x03, 0x10, 0xEE, - 0x2C, 0xAB, 0x8A, 0x77, 0xB1, 0xE7, 0xCA, 0xD4, - 0x98, 0x01, 0xAD, 0x1E, 0x50, 0x26, 0x82, 0x44, - 0xF3, 0xBF, 0xD3, 0x6B, 0x33, 0x0A, 0x3C, 0x5D, - 0xCE, 0x81, 0xC5, 0x78, 0x9F, 0xB8, 0x23, 0xDB, - 0x4E, 0xA1, 0x41, 0x76, 0xAE, 0x51, 0x86, 0x06, - 0x7A, 0x66, 0xA0, 0x5E, 0x29, 0x17, 0x84, 0x4A, - 0xB0, 0x3B, 0x3D, 0x71, 0x07, 0x7B, 0x0D, 0x9A, - 0x6F, 0x9B, 0x5C, 0x88, 0xB3, 0xD7, 0x24, 0xD5, - 0x48, 0xF5, 0xE8, 0xE4, 0xCF, 0x16, 0xA4, 0xC8, - 0xEF, 0x42, 0x22, 0xEC, 0x47, 0x69, 0x90, 0x63, - 0xE2, 0x1B, 0x87, 0x85, 0x3F, 0xDE, 0x8C, 0x60, - 0x99, 0xE5, 0x8E, 0x4F, 0xF4, 0xBA, 0xB5, 0x9C, - 0x37, 0x67, 0xBD, 0xA6, 0x97, 0xDD, 0xCB, 0x43, - 0x45, 0x19, 0x49, 0x1C, 0x75, 0xC1, 0xBB, 0xF2, - 0x46, 0xFC, 0x53, 0x9D, 0xD8, 0xA3, 0xDF, 0x2F, - 0xEB, 0x72, 0x94, 0xA8, 0x6D, 0xC6, 0x28, 0x4C, - 0x00, 0x38, 0xC2, 0x65, 0x05, 0x2E, 0xD2, 0x12, - 0xFF, 0x18, 0x61, 0x6C, 0x7C, 0x11, 0xAF, 0x96, - 0xCD, 0x20, 0x74, 0x08, 0x1D, 0xC4, 0xF9, 0x4D, - 0xEA, 0x8D, 0x2D, 0x5F, 0xF6, 0xA7, 0x80, 0x3A -}; - -unsigned char table_25[32] = { - 0x0A, 0x11, 0x17, 0x03, 0x05, 0x0B, 0x18, 0x13, - 0x09, 0x02, 0x00, 0x1C, 0x0C, 0x08, 0x1B, 0x14, - 0x06, 0x0E, 0x01, 0x0D, 0x16, 0x1E, 0x1D, 0x19, - 0x0F, 0x1A, 0x10, 0x04, 0x12, 0x15, 0x07, 0x1F -}; - -unsigned char table_26[32] = { - 0x19, 0x13, 0x1B, 0x01, 0x1C, 0x0D, 0x0C, 0x15, - 0x0B, 0x00, 0x1A, 0x0F, 0x12, 0x16, 0x08, 0x0A, - 0x03, 0x06, 0x14, 0x10, 0x18, 0x04, 0x11, 0x1D, - 0x1F, 0x07, 0x17, 0x05, 0x02, 0x0E, 0x1E, 0x09 -}; - -unsigned char table_27[256] = { - 0x72, 0xF0, 0x14, 0xCB, 0x61, 0xA5, 0xB2, 0x02, - 0x75, 0x22, 0xC3, 0x9D, 0x5A, 0x63, 0xFA, 0x5F, - 0xD9, 0x55, 0x58, 0x43, 0x24, 0x7D, 0x77, 0x93, - 0xBA, 0x50, 0x1D, 0xF7, 0x49, 0x18, 0xB0, 0x42, - 0xBB, 0xEC, 0x52, 0x38, 0xDC, 0xC8, 0x16, 0x54, - 0x17, 0x19, 0x89, 0x67, 0x33, 0x3C, 0x0A, 0xAD, - 0xC9, 0xDE, 0x81, 0xED, 0xBD, 0x0E, 0x0B, 0x6D, - 0x46, 0x30, 0x35, 0x2B, 0x8C, 0xA0, 0x1C, 0x0D, - 0xFD, 0xA1, 0x70, 0xC6, 0xD8, 0x41, 0xB3, 0xC0, - 0x44, 0xEB, 0x92, 0xBE, 0x6B, 0x98, 0x1A, 0x76, - 0x71, 0xC5, 0x51, 0x56, 0x80, 0xFC, 0x01, 0x53, - 0x4B, 0xD0, 0x8B, 0xD2, 0x7B, 0xE7, 0x15, 0x5D, - 0xE5, 0xA6, 0x8A, 0xD3, 0x9B, 0xF4, 0x69, 0x23, - 0xE8, 0xB6, 0xC7, 0xE2, 0x73, 0x9F, 0x88, 0xDF, - 0xB4, 0x28, 0xEE, 0xC2, 0x94, 0xB8, 0xF9, 0x7F, - 0x4A, 0x57, 0x06, 0xF6, 0xBF, 0xC1, 0xAB, 0xFB, - 0xA4, 0x8E, 0xD1, 0xD7, 0xF5, 0x7C, 0xA3, 0x1E, - 0x3B, 0x32, 0x03, 0xAA, 0x90, 0x5C, 0x48, 0xE0, - 0xE3, 0xCF, 0xD4, 0xEF, 0x59, 0xD5, 0x1B, 0x34, - 0x1F, 0x95, 0xCE, 0x7A, 0x20, 0x26, 0x87, 0xB7, - 0x78, 0x9C, 0x4F, 0xA2, 0x12, 0x97, 0x27, 0x3F, - 0xFF, 0x07, 0x84, 0x96, 0x04, 0xAF, 0xA8, 0xEA, - 0x2C, 0x6C, 0xAE, 0x37, 0x91, 0xA9, 0x10, 0xDB, - 0xCD, 0xDA, 0x08, 0x99, 0xF1, 0x4D, 0xCC, 0x68, - 0x79, 0x2E, 0xB1, 0x39, 0x9E, 0xE9, 0x2F, 0x6A, - 0x3D, 0x0F, 0x85, 0x8D, 0xCA, 0x29, 0x86, 0xD6, - 0xDD, 0x05, 0x25, 0x3A, 0x40, 0x21, 0x45, 0xAC, - 0x11, 0xF3, 0xA7, 0x09, 0x2A, 0x31, 0xE4, 0x0C, - 0xF8, 0x6E, 0x3E, 0xB5, 0x82, 0xFE, 0x74, 0x13, - 0x65, 0xE1, 0x2D, 0x8F, 0xE6, 0xC4, 0x00, 0x5B, - 0x4E, 0xB9, 0x66, 0xF2, 0x62, 0x36, 0x4C, 0x83, - 0x5E, 0x6F, 0x47, 0x64, 0xBC, 0x9A, 0x60, 0x7E -}; - -unsigned char table_28[32] = { - 0x15, 0x05, 0x08, 0x19, 0x02, 0x18, 0x1E, 0x07, - 0x0D, 0x0C, 0x1A, 0x06, 0x17, 0x03, 0x10, 0x09, - 0x01, 0x11, 0x1C, 0x04, 0x0F, 0x1F, 0x12, 0x0B, - 0x1B, 0x13, 0x0A, 0x16, 0x0E, 0x00, 0x1D, 0x14 -}; - -unsigned char table_29[256] = { - 0x34, 0x59, 0x05, 0x13, 0x09, 0x1D, 0xDF, 0x77, - 0x11, 0xA5, 0x92, 0x27, 0xCD, 0x7B, 0x5E, 0x80, - 0xF9, 0x50, 0x18, 0x24, 0xD4, 0x70, 0x4A, 0x39, - 0x66, 0xA4, 0xDB, 0xE9, 0xED, 0x48, 0xD9, 0xE7, - 0x32, 0xDA, 0x53, 0x8F, 0x72, 0xE1, 0xF6, 0xFE, - 0xD3, 0xAD, 0xA6, 0x1F, 0xB9, 0xD1, 0x0F, 0x4C, - 0x23, 0x90, 0x68, 0xBC, 0x4B, 0x9B, 0x3D, 0xAB, - 0xF0, 0x94, 0x4F, 0x1C, 0x07, 0x65, 0x7F, 0x01, - 0x5C, 0xD7, 0x21, 0x8C, 0xBF, 0x8E, 0xB8, 0x86, - 0x6C, 0x33, 0x36, 0xC1, 0x06, 0x74, 0x37, 0x84, - 0x41, 0xAE, 0x67, 0x29, 0xB4, 0x85, 0xCE, 0x2A, - 0xCB, 0x1E, 0x61, 0x9E, 0x7A, 0x44, 0x3E, 0x89, - 0x14, 0x20, 0x19, 0xBB, 0xE0, 0xAA, 0xCF, 0x83, - 0xA8, 0x93, 0x43, 0xF2, 0xAC, 0x0E, 0xD2, 0xCC, - 0xDD, 0x47, 0x58, 0xC9, 0xCA, 0x1B, 0x54, 0x6E, - 0x8A, 0x79, 0xF8, 0xC4, 0xFB, 0xD5, 0x91, 0xDE, - 0x12, 0x31, 0x99, 0xFA, 0x6D, 0xC8, 0x57, 0xEC, - 0xB7, 0x28, 0x0C, 0x52, 0xF1, 0x0D, 0xB1, 0x9A, - 0x26, 0x98, 0x16, 0x7D, 0xD0, 0x2E, 0x8B, 0xD8, - 0xE6, 0xE8, 0x30, 0xFD, 0x7C, 0x64, 0x5A, 0xBD, - 0x87, 0xE2, 0xA1, 0x3F, 0xC3, 0x38, 0x96, 0xA3, - 0x2D, 0xF3, 0x3A, 0xEE, 0xC0, 0x10, 0xEA, 0x6F, - 0x8D, 0x03, 0xF4, 0x51, 0x97, 0x7E, 0x56, 0x42, - 0x3C, 0x5D, 0x5F, 0xF5, 0x6A, 0xAF, 0xE4, 0xBE, - 0xBA, 0x78, 0xA0, 0x5B, 0x49, 0xA7, 0xC7, 0x9C, - 0x63, 0x6B, 0x00, 0x17, 0x69, 0x75, 0x3B, 0x40, - 0xEF, 0x45, 0xB5, 0x2B, 0x2F, 0x02, 0xC6, 0x22, - 0x9F, 0xFC, 0x73, 0x08, 0x81, 0xB2, 0x2C, 0x71, - 0x35, 0xA2, 0xE3, 0xB3, 0x9D, 0xC5, 0x0A, 0xC2, - 0x25, 0x82, 0xDC, 0x88, 0xA9, 0xE5, 0xF7, 0xEB, - 0xD6, 0x60, 0x76, 0x55, 0x0B, 0x4E, 0xFF, 0x1A, - 0x46, 0x62, 0xB6, 0xB0, 0x15, 0x04, 0x95, 0x4D -}; - -unsigned char table_30[32] = { - 0x00, 0x1C, 0x0E, 0x0C, 0x06, 0x16, 0x09, 0x12, - 0x01, 0x13, 0x0B, 0x14, 0x11, 0x08, 0x04, 0x18, - 0x10, 0x1B, 0x15, 0x03, 0x02, 0x19, 0x1A, 0x17, - 0x1E, 0x1F, 0x0F, 0x07, 0x0D, 0x05, 0x1D, 0x0A -}; - -unsigned char table_31[256] = { - 0xDF, 0xD8, 0x3F, 0xBC, 0x5F, 0xC9, 0x8E, 0x4C, - 0x0B, 0x3C, 0xE5, 0xBF, 0x39, 0xD5, 0x30, 0xDD, - 0x23, 0xC7, 0x72, 0x63, 0x1F, 0xF8, 0x96, 0x31, - 0x70, 0xD6, 0x9E, 0xE8, 0x9D, 0xF5, 0xEF, 0x65, - 0xC2, 0x50, 0x62, 0x77, 0xD3, 0x6C, 0x1A, 0x91, - 0xBB, 0xFF, 0xCD, 0x9B, 0xB6, 0xBA, 0xB8, 0x7A, - 0x14, 0xA7, 0x74, 0x89, 0xD4, 0x6E, 0x19, 0x69, - 0xAB, 0x01, 0x15, 0x0E, 0x87, 0x55, 0x79, 0x1C, - 0x18, 0xBE, 0xA8, 0xDB, 0x52, 0xD2, 0x8F, 0x7E, - 0x81, 0xAF, 0xFD, 0x5C, 0x3E, 0x1B, 0xB9, 0xB2, - 0xB7, 0x51, 0x57, 0x8C, 0xCF, 0x5B, 0xA4, 0x75, - 0xDE, 0x22, 0x8B, 0x10, 0x12, 0xC8, 0x35, 0x2D, - 0x45, 0xB5, 0xF0, 0x47, 0x88, 0x16, 0xEB, 0x67, - 0xD9, 0x0C, 0xF1, 0xC1, 0x34, 0x33, 0xC6, 0x78, - 0xB3, 0x26, 0xE3, 0xBD, 0x5D, 0x4E, 0x66, 0xE4, - 0xD7, 0xC4, 0xE6, 0xA1, 0xB0, 0x95, 0x2B, 0x9A, - 0x4A, 0x3A, 0xCB, 0x40, 0xE1, 0x60, 0x49, 0xCC, - 0x03, 0xAC, 0xF4, 0x97, 0x32, 0x0F, 0x38, 0x17, - 0xF9, 0xE0, 0xD1, 0xFB, 0x04, 0x5E, 0x68, 0x06, - 0xAE, 0xFA, 0xAA, 0xED, 0x24, 0x0D, 0x00, 0x61, - 0x20, 0xA3, 0x7B, 0x6B, 0x76, 0x27, 0xEA, 0xCE, - 0x6A, 0x82, 0x9F, 0x6D, 0x9C, 0x64, 0xA2, 0x11, - 0x37, 0x2A, 0xCA, 0x84, 0x25, 0x7C, 0x2F, 0x8D, - 0x90, 0xE7, 0x09, 0x93, 0xF3, 0x43, 0x71, 0xEC, - 0xA9, 0x7D, 0x94, 0xA6, 0x3D, 0x7F, 0x54, 0x44, - 0x99, 0x80, 0x41, 0xC0, 0xA0, 0x8A, 0x1E, 0xDC, - 0x08, 0xD0, 0x2E, 0x42, 0x05, 0x85, 0x86, 0xFE, - 0x3B, 0x59, 0xC3, 0x58, 0x13, 0xB4, 0x36, 0xA5, - 0x73, 0x28, 0x29, 0xDA, 0x4F, 0x1D, 0xB1, 0x53, - 0x46, 0x2C, 0xF2, 0x4D, 0xAD, 0xFC, 0x83, 0x02, - 0x6F, 0x07, 0xE9, 0xEE, 0x21, 0x98, 0x5A, 0xC5, - 0x92, 0x48, 0xF7, 0x0A, 0xF6, 0xE2, 0x4B, 0x56 -}; - -unsigned char table_32[256] = { - 0x7B, 0x0F, 0x56, 0x2F, 0x1E, 0x2A, 0x7A, 0xD1, - 0x02, 0x91, 0x4E, 0x37, 0x6C, 0x10, 0xA7, 0xF2, - 0x38, 0xAC, 0x9E, 0x2B, 0x5E, 0x23, 0xE3, 0x19, - 0x9B, 0xF6, 0xB0, 0x59, 0x14, 0xB9, 0xA9, 0x46, - 0x84, 0x1D, 0xC0, 0x98, 0xF3, 0xE1, 0xE8, 0x94, - 0x52, 0x35, 0xBA, 0xD8, 0x07, 0xEF, 0x31, 0xF8, - 0x03, 0x76, 0x9C, 0xD7, 0xE4, 0x8B, 0xAF, 0x60, - 0xDD, 0x51, 0x00, 0xDF, 0x11, 0x7F, 0x1C, 0xED, - 0x49, 0xC9, 0xF4, 0x87, 0x64, 0xFC, 0x5D, 0xAD, - 0x88, 0x85, 0xF7, 0x5A, 0x92, 0xDB, 0x72, 0x1A, - 0x83, 0x15, 0x30, 0x24, 0x9F, 0xFF, 0x5B, 0xF1, - 0xD2, 0xFD, 0xC2, 0xB5, 0x25, 0x22, 0x18, 0x3D, - 0xCD, 0x97, 0x8C, 0xCC, 0x78, 0x90, 0xAA, 0x5F, - 0x0A, 0x57, 0x05, 0x61, 0xD4, 0xA0, 0x3A, 0xDE, - 0x3B, 0xF9, 0x65, 0x68, 0x4F, 0x28, 0xFA, 0xEB, - 0x63, 0x2D, 0x8D, 0xD0, 0xA1, 0xFE, 0x12, 0x96, - 0x3C, 0x42, 0x29, 0xD6, 0xA4, 0x34, 0xBD, 0x70, - 0x89, 0xBE, 0xF5, 0x79, 0xAB, 0x8F, 0x32, 0xB4, - 0xEE, 0xE7, 0x2C, 0x04, 0x4B, 0xD5, 0xB1, 0x54, - 0xF0, 0xDA, 0x16, 0x77, 0xA6, 0x53, 0xB2, 0xE2, - 0x73, 0xBF, 0x17, 0xA8, 0x75, 0x26, 0xE0, 0xBC, - 0x0C, 0x71, 0xFB, 0x6D, 0x7E, 0xC5, 0xEA, 0x21, - 0x9D, 0x95, 0x8E, 0xA5, 0x48, 0xB8, 0x7D, 0xCB, - 0x01, 0x99, 0xE5, 0xBB, 0x82, 0xC4, 0xCA, 0xC1, - 0x58, 0x6E, 0x5C, 0x7C, 0xDC, 0x33, 0xB6, 0xC3, - 0x09, 0xC7, 0x1F, 0x0D, 0x43, 0x6F, 0xE9, 0x86, - 0x27, 0xC8, 0x44, 0xB3, 0xD3, 0xCF, 0x08, 0x66, - 0x1B, 0x20, 0x4D, 0xD9, 0xC6, 0x36, 0x40, 0x74, - 0x62, 0x6A, 0x55, 0xEC, 0x06, 0x2E, 0xE6, 0x80, - 0x13, 0x93, 0x50, 0xCE, 0x69, 0x3E, 0x67, 0x4A, - 0x81, 0x4C, 0x0B, 0x3F, 0xB7, 0x0E, 0x39, 0xAE, - 0x47, 0x6B, 0x8A, 0xA2, 0x9A, 0xA3, 0x45, 0x41 -}; - -unsigned char table_33[256] = { - 0xDE, 0xD3, 0x79, 0x67, 0x13, 0x5C, 0x04, 0xF2, - 0xD9, 0x9F, 0x65, 0x56, 0xCC, 0x3B, 0xA4, 0x9A, - 0x08, 0xBF, 0x26, 0xB2, 0xA7, 0x5E, 0xAA, 0xCA, - 0xBB, 0x2B, 0x38, 0x3F, 0xD8, 0x87, 0xFA, 0x5D, - 0x73, 0x8E, 0x1E, 0x93, 0x05, 0xAF, 0x3E, 0x4E, - 0x90, 0xDB, 0x0B, 0x33, 0x0D, 0x2F, 0x86, 0x4F, - 0xFD, 0xD0, 0x39, 0xB1, 0x8A, 0x1A, 0x20, 0xE6, - 0xCF, 0xA2, 0x82, 0xDF, 0x42, 0x9C, 0x30, 0x40, - 0xE3, 0xB0, 0x88, 0x5A, 0xEC, 0x25, 0xE2, 0xC4, - 0x12, 0x54, 0x50, 0x97, 0x96, 0x21, 0x23, 0x7B, - 0x1D, 0x61, 0x52, 0x34, 0x7D, 0x69, 0x16, 0xC3, - 0x31, 0xF8, 0x48, 0x19, 0x95, 0x01, 0x29, 0x8C, - 0x15, 0xAC, 0x84, 0x74, 0xAB, 0x70, 0xDA, 0x36, - 0xD6, 0x8F, 0xFE, 0x35, 0xD7, 0x2E, 0x89, 0x07, - 0x62, 0x17, 0xDC, 0x92, 0x45, 0x83, 0xB5, 0xE5, - 0x8B, 0xC0, 0x27, 0x85, 0x7C, 0x9D, 0x55, 0x81, - 0x71, 0xCD, 0xC9, 0x00, 0x02, 0xC1, 0x0A, 0x37, - 0xED, 0xEA, 0xC2, 0x98, 0x49, 0x06, 0x1C, 0x78, - 0x64, 0xCE, 0x9E, 0x4C, 0x7A, 0xB4, 0x43, 0x0F, - 0xE0, 0x7E, 0xBC, 0x5B, 0x51, 0xE7, 0x18, 0xF9, - 0x11, 0xA1, 0xF5, 0xC7, 0xCB, 0x4D, 0x6A, 0x0E, - 0x57, 0xF1, 0xFB, 0xB3, 0x99, 0xF0, 0x32, 0xD5, - 0xA9, 0x4B, 0x6F, 0x6D, 0xA8, 0xC5, 0xDD, 0x7F, - 0xEB, 0xBE, 0xFC, 0x2C, 0x22, 0x58, 0x03, 0x9B, - 0x77, 0xF7, 0xBD, 0xBA, 0xD2, 0x6B, 0xAD, 0x5F, - 0x10, 0x6E, 0x09, 0xD1, 0x1B, 0x24, 0xEF, 0x72, - 0x3D, 0x59, 0x28, 0xE1, 0xB7, 0x44, 0x8D, 0xB8, - 0xAE, 0x2D, 0x60, 0xA6, 0xC8, 0x0C, 0xF4, 0x41, - 0xA3, 0x68, 0x46, 0x6C, 0x76, 0xA0, 0xB6, 0x66, - 0xE4, 0x1F, 0x75, 0x4A, 0xFF, 0x2A, 0x94, 0xD4, - 0xF3, 0xE9, 0x91, 0x63, 0xA5, 0xB9, 0xE8, 0x14, - 0x80, 0x3C, 0xEE, 0x47, 0xC6, 0x3A, 0x53, 0xF6 -}; - -unsigned char table_34[256] = { - 0xF0, 0xE9, 0x3E, 0xD6, 0x89, 0xC8, 0xC7, 0x23, - 0x75, 0x26, 0x5F, 0x9C, 0x57, 0xB8, 0x2A, 0x29, - 0xE5, 0xB5, 0x68, 0xA4, 0x92, 0x46, 0x40, 0x7F, - 0xF2, 0xBC, 0x6A, 0xE0, 0x8F, 0x0F, 0xE4, 0x3A, - 0xE1, 0x30, 0x84, 0x6E, 0x82, 0x8E, 0x56, 0xC5, - 0x32, 0x85, 0xFB, 0x59, 0x43, 0x41, 0xC2, 0xF6, - 0x67, 0x5A, 0x7C, 0x34, 0xA1, 0xD0, 0x4B, 0xAC, - 0x61, 0x72, 0x6B, 0xAF, 0xC4, 0x20, 0x9A, 0xD4, - 0x74, 0x8D, 0x87, 0x83, 0xE2, 0x62, 0x6D, 0xE6, - 0xE7, 0xF9, 0x76, 0xCB, 0x18, 0x90, 0x4F, 0xFF, - 0xD3, 0x3C, 0x08, 0x79, 0x93, 0x2D, 0x95, 0xA3, - 0xDD, 0x5B, 0xDA, 0x7A, 0x39, 0x4D, 0xC1, 0x2E, - 0xCC, 0x53, 0xE8, 0xA2, 0xCF, 0x15, 0x78, 0x1C, - 0xEB, 0x9B, 0x7B, 0xAD, 0x31, 0x2F, 0xE3, 0xC9, - 0x3B, 0xEC, 0x2C, 0x49, 0x02, 0x52, 0x28, 0xBA, - 0x0C, 0x19, 0x24, 0xF7, 0x97, 0x09, 0xA6, 0xA0, - 0xDF, 0xD1, 0xD2, 0xDC, 0x51, 0xA5, 0x94, 0xFD, - 0x71, 0xF5, 0x50, 0x0A, 0x69, 0x25, 0x88, 0x5C, - 0x91, 0xD5, 0x47, 0x0B, 0x27, 0x13, 0x96, 0xD9, - 0xF1, 0xA9, 0x70, 0xC3, 0xBE, 0x42, 0x4E, 0x4A, - 0xB1, 0x07, 0xA7, 0x54, 0xFE, 0x48, 0x9F, 0x63, - 0x17, 0xAE, 0xB9, 0x58, 0x21, 0x35, 0xED, 0x5D, - 0x9D, 0x3D, 0xB4, 0xFC, 0xEA, 0x8C, 0x80, 0xA8, - 0x1E, 0xB0, 0xDE, 0x0D, 0x11, 0x6F, 0x04, 0x12, - 0xF4, 0x10, 0x64, 0x0E, 0xD7, 0x2B, 0xB3, 0x8B, - 0xB7, 0x01, 0x86, 0xCA, 0xFA, 0x9E, 0xEE, 0x66, - 0x37, 0x65, 0x81, 0x38, 0x1F, 0xAA, 0x73, 0xAB, - 0xBD, 0xDB, 0x14, 0xCD, 0x00, 0xBB, 0x98, 0x44, - 0x45, 0xB6, 0x99, 0x5E, 0xD8, 0x1D, 0x36, 0xF8, - 0x55, 0x6C, 0x16, 0x7E, 0x77, 0x3F, 0x22, 0xEF, - 0xF3, 0x7D, 0xC6, 0xCE, 0x8A, 0xB2, 0x33, 0x4C, - 0x03, 0x05, 0xBF, 0x06, 0x1B, 0xC0, 0x1A, 0x60 -}; - -unsigned char table_35[256] = { - 0xCC, 0x40, 0xEF, 0x1F, 0xDB, 0xE5, 0x71, 0x51, - 0x3B, 0x0F, 0x7D, 0x9C, 0x83, 0x17, 0x6F, 0x8F, - 0x13, 0xDC, 0x7F, 0xA9, 0xA5, 0xA2, 0x9D, 0xDF, - 0xE7, 0x97, 0x2A, 0x30, 0xF2, 0x73, 0xCF, 0x87, - 0x29, 0xB3, 0x86, 0x43, 0x09, 0xB0, 0x2E, 0x10, - 0x8E, 0xBC, 0x57, 0xBA, 0x68, 0xF5, 0xCB, 0x89, - 0x32, 0xC1, 0x6B, 0x1E, 0xAC, 0xB2, 0x2D, 0x6A, - 0x50, 0xEB, 0x18, 0x06, 0xD8, 0xC7, 0x36, 0x31, - 0xC5, 0xAF, 0x12, 0x15, 0xB7, 0x37, 0x4E, 0x01, - 0x14, 0x21, 0x44, 0x5E, 0xF4, 0xB4, 0xE4, 0x65, - 0xFE, 0x8A, 0xEA, 0x0D, 0xBB, 0x45, 0x8B, 0x25, - 0x80, 0x35, 0x61, 0xA8, 0x4A, 0x47, 0xAB, 0x91, - 0x1B, 0x1C, 0x05, 0x4D, 0x5A, 0xD4, 0xF1, 0x9B, - 0x0E, 0x98, 0xCA, 0x96, 0x42, 0x7E, 0x03, 0x5F, - 0xE2, 0x90, 0xBF, 0x82, 0xC9, 0x3D, 0xE0, 0x5C, - 0xFA, 0x3E, 0x41, 0x11, 0x79, 0x58, 0x24, 0x2C, - 0xC0, 0x28, 0x5D, 0xA3, 0xDE, 0x67, 0xFF, 0xA4, - 0x63, 0xB1, 0x22, 0x04, 0xFD, 0x70, 0x39, 0x46, - 0xAA, 0x0A, 0x34, 0x6C, 0xD7, 0x92, 0xA1, 0x3C, - 0x19, 0xD5, 0xFC, 0xAD, 0x85, 0x07, 0x00, 0x23, - 0xF8, 0x69, 0x56, 0x53, 0x55, 0x7A, 0xB8, 0xC8, - 0xDA, 0xCE, 0xF3, 0x5B, 0x49, 0xE1, 0xBE, 0xEC, - 0x1A, 0x88, 0x02, 0xBD, 0xF7, 0x1D, 0x64, 0xA0, - 0x4F, 0xD9, 0xE3, 0x95, 0xC6, 0x48, 0x2B, 0xED, - 0x9A, 0x9E, 0x26, 0x6E, 0xD1, 0x94, 0xB9, 0x93, - 0xDD, 0xF6, 0xA6, 0xFB, 0xC2, 0xB6, 0x0C, 0xE9, - 0x77, 0xF9, 0xCD, 0x08, 0xEE, 0x3F, 0xE6, 0x75, - 0xD6, 0x84, 0x76, 0x8C, 0xF0, 0xAE, 0xD2, 0x78, - 0x2F, 0x4B, 0x16, 0x4C, 0x27, 0x81, 0x6D, 0x99, - 0x38, 0xD3, 0x54, 0x62, 0x74, 0x20, 0x60, 0xC3, - 0x7C, 0x8D, 0x72, 0x0B, 0x52, 0xE8, 0xA7, 0x3A, - 0x59, 0xC4, 0x9F, 0xD0, 0x66, 0x7B, 0x33, 0xB5 -}; - -unsigned char table_36[256] = { - 0xDB, 0x6F, 0xFE, 0xB3, 0x5C, 0x1F, 0xB8, 0xBF, - 0xA3, 0x71, 0x11, 0x56, 0x90, 0xE2, 0x63, 0x18, - 0x83, 0x51, 0x21, 0xEB, 0x66, 0x08, 0xA6, 0xA5, - 0x1C, 0xF5, 0x14, 0x24, 0x41, 0x33, 0xA7, 0xB5, - 0xC7, 0x79, 0x57, 0x50, 0x85, 0xE1, 0x6D, 0xF7, - 0x0E, 0xDE, 0x67, 0xAB, 0xA1, 0x0B, 0xD9, 0x4A, - 0xCA, 0x36, 0xEA, 0xDA, 0x16, 0xEF, 0x9F, 0x0A, - 0x09, 0x9A, 0x1D, 0xC5, 0xD7, 0x5F, 0x19, 0xDC, - 0x15, 0x06, 0xE8, 0x94, 0x0C, 0x0D, 0xC9, 0x7C, - 0xD6, 0x62, 0xBB, 0x49, 0xF9, 0x61, 0x07, 0x9B, - 0x28, 0xC3, 0x9E, 0xF4, 0x38, 0x78, 0x20, 0x03, - 0xA2, 0x7F, 0xC2, 0x9D, 0x5E, 0x65, 0x52, 0x17, - 0x2E, 0x1B, 0xB0, 0x42, 0xBC, 0xFD, 0xF1, 0xD2, - 0xF6, 0x60, 0xD3, 0x29, 0x97, 0x3D, 0x0F, 0xB1, - 0x2F, 0x22, 0xDD, 0x80, 0x32, 0xF8, 0xAD, 0x70, - 0xB9, 0x8F, 0x37, 0xCE, 0x46, 0x58, 0xB7, 0x30, - 0xED, 0x7A, 0xE9, 0xC0, 0x7D, 0x13, 0x64, 0x23, - 0x4E, 0xC8, 0xF0, 0xCC, 0x3B, 0x45, 0x68, 0x8D, - 0xBE, 0x8B, 0xD8, 0x43, 0x02, 0x27, 0xE4, 0xAA, - 0x10, 0xF2, 0x59, 0x72, 0x40, 0x26, 0x69, 0xE5, - 0x05, 0x84, 0x4F, 0xE0, 0x6B, 0xC1, 0xAC, 0x4C, - 0xFB, 0x31, 0x77, 0x8E, 0xD4, 0x12, 0xA9, 0xB4, - 0xEC, 0x00, 0x76, 0x1E, 0x25, 0xAE, 0xE7, 0x3C, - 0x35, 0x93, 0x9C, 0xC4, 0xFC, 0x2D, 0x91, 0x04, - 0xAF, 0x53, 0x3F, 0xE6, 0xA4, 0xD0, 0x1A, 0xDF, - 0x3A, 0x55, 0x99, 0x01, 0xCB, 0x6C, 0x82, 0x3E, - 0x5D, 0xA8, 0x88, 0x54, 0x5B, 0x95, 0xCD, 0x8C, - 0x81, 0x34, 0xD1, 0x39, 0xFF, 0xEE, 0xFA, 0x8A, - 0x6E, 0x86, 0x92, 0x89, 0xF3, 0x6A, 0xBA, 0x2C, - 0xD5, 0x44, 0xC6, 0x96, 0xBD, 0xB2, 0x2B, 0x87, - 0x74, 0xA0, 0x73, 0x5A, 0x2A, 0x98, 0x75, 0x47, - 0x4B, 0xB6, 0x7B, 0x4D, 0xCF, 0x7E, 0x48, 0xE3 -}; - -unsigned char table_37[256] = { - 0x1F, 0xD6, 0xB1, 0xB3, 0x40, 0xAD, 0xDE, 0xB7, - 0x19, 0xB4, 0xE7, 0x0B, 0x9C, 0x2D, 0xE0, 0xF5, - 0xCF, 0x2C, 0x30, 0x65, 0x2F, 0xCD, 0x02, 0x91, - 0xCE, 0x2B, 0xBF, 0x78, 0xE6, 0xFA, 0x51, 0x48, - 0xFB, 0x4D, 0xBE, 0x71, 0x1A, 0x56, 0xFD, 0x81, - 0x33, 0x75, 0x89, 0x96, 0x37, 0x82, 0x9E, 0x93, - 0x41, 0x18, 0x5B, 0x2E, 0x22, 0x0F, 0xAF, 0x4B, - 0xB9, 0xD5, 0xEE, 0x6C, 0xE4, 0x05, 0xCC, 0x99, - 0xE5, 0x3B, 0x62, 0xBD, 0x7B, 0xAA, 0x4A, 0xE2, - 0x34, 0x43, 0xF7, 0x39, 0xFE, 0x14, 0x1D, 0xE3, - 0xF0, 0xA7, 0x77, 0xDF, 0xA0, 0xD3, 0xAC, 0xD9, - 0xEA, 0x76, 0xDD, 0xA4, 0xC5, 0xC9, 0x61, 0xF3, - 0xA8, 0xB0, 0x35, 0xE8, 0x68, 0xD4, 0x15, 0xF9, - 0x97, 0xED, 0x25, 0x0A, 0x88, 0x8F, 0x06, 0xA3, - 0x16, 0x36, 0x32, 0xA2, 0xC6, 0x64, 0xD7, 0x94, - 0xD2, 0x6D, 0x74, 0xFC, 0x44, 0x27, 0x5C, 0xFF, - 0x60, 0x1E, 0x58, 0x8B, 0x5E, 0xC7, 0x90, 0x17, - 0x63, 0xAE, 0xC3, 0x12, 0x13, 0x84, 0xEC, 0x49, - 0xA5, 0x9B, 0x31, 0x8D, 0xE1, 0x79, 0xF1, 0x00, - 0x28, 0x3D, 0xC2, 0x55, 0x20, 0x52, 0x95, 0x7E, - 0x42, 0x1C, 0x66, 0x92, 0x7D, 0xB6, 0xC4, 0xF4, - 0x80, 0xB2, 0x72, 0x6E, 0x11, 0xF6, 0x0D, 0x5A, - 0xEF, 0x9D, 0x69, 0x9A, 0x45, 0x67, 0x3F, 0xDA, - 0x8E, 0x57, 0x09, 0x7C, 0x38, 0xA6, 0x83, 0x87, - 0x7A, 0x08, 0x4C, 0x5F, 0x85, 0x7F, 0xD0, 0x04, - 0x50, 0xCB, 0xB8, 0x07, 0x24, 0x26, 0x29, 0x46, - 0x01, 0x03, 0xC1, 0xD8, 0xDC, 0x0E, 0x3C, 0x4F, - 0x53, 0x4E, 0xB5, 0xF8, 0xC0, 0x8A, 0xF2, 0xBB, - 0xE9, 0x5D, 0x2A, 0xBA, 0x0C, 0x1B, 0x3A, 0xA9, - 0x21, 0x6A, 0x70, 0xBC, 0xEB, 0xA1, 0x54, 0x10, - 0x98, 0x9F, 0x23, 0xD1, 0x6B, 0x59, 0x3E, 0xCA, - 0x73, 0xC8, 0x86, 0x47, 0xDB, 0xAB, 0x6F, 0x8C -}; - -unsigned char table_38[256] = { - 0xAA, 0x8D, 0x37, 0x94, 0x99, 0xDD, 0x70, 0x77, - 0x78, 0xC9, 0x0F, 0xFA, 0xE2, 0x05, 0xC2, 0x16, - 0x02, 0x4D, 0x44, 0x65, 0xAC, 0xB0, 0x39, 0xF8, - 0x06, 0x60, 0xD8, 0xE1, 0x19, 0xB4, 0x36, 0x20, - 0x59, 0x1D, 0xAD, 0xE4, 0xE8, 0xFF, 0x9D, 0x0D, - 0x51, 0x28, 0xE7, 0x8C, 0x0E, 0x97, 0xE3, 0xAE, - 0x6A, 0x27, 0x98, 0xDB, 0x26, 0xF6, 0xEC, 0xC6, - 0xC0, 0xBD, 0x68, 0x61, 0x83, 0x86, 0xE0, 0x2C, - 0xEE, 0x47, 0xF9, 0x5F, 0x6D, 0xBA, 0xE9, 0x72, - 0x8A, 0xBB, 0x08, 0x29, 0xAF, 0x1C, 0xD3, 0x5D, - 0xF7, 0x87, 0x6F, 0x9A, 0x2F, 0x11, 0xD9, 0x90, - 0x66, 0x8E, 0xEB, 0xB1, 0x2E, 0xEA, 0xA3, 0x55, - 0x2B, 0xCC, 0x4C, 0x4B, 0x48, 0x71, 0x3B, 0xFC, - 0xA4, 0x45, 0x0A, 0x8F, 0x7A, 0x13, 0x01, 0x22, - 0xC1, 0xF1, 0xA2, 0xB8, 0x7C, 0xF4, 0xB3, 0xB7, - 0x5B, 0xE5, 0x07, 0x50, 0x7E, 0x18, 0xEF, 0x91, - 0x5C, 0x15, 0x69, 0xBE, 0x0C, 0x93, 0x56, 0x35, - 0x7B, 0xCF, 0x34, 0x74, 0x3E, 0x5E, 0x31, 0x21, - 0x12, 0x63, 0x7F, 0x2A, 0x9B, 0xD4, 0x6B, 0xBC, - 0x33, 0x62, 0x30, 0x75, 0x17, 0x23, 0xB2, 0xF0, - 0x57, 0x67, 0x95, 0x3D, 0xCD, 0x10, 0xE6, 0xC8, - 0x8B, 0xA9, 0x73, 0xC4, 0x43, 0xBF, 0xA7, 0xCA, - 0xB5, 0xD5, 0xD6, 0x3F, 0x1A, 0x7D, 0x82, 0xA8, - 0x40, 0x64, 0xAB, 0x04, 0xC3, 0x1F, 0xA0, 0x5A, - 0x85, 0xF3, 0xDE, 0xFE, 0xDA, 0x1E, 0x81, 0x92, - 0x9C, 0x2D, 0x9F, 0x32, 0xB9, 0xA1, 0x96, 0xD0, - 0x4F, 0x38, 0x80, 0xCB, 0x6C, 0x14, 0x84, 0x1B, - 0xD7, 0xC5, 0xED, 0xD2, 0x3A, 0x0B, 0x88, 0xFD, - 0xDC, 0x49, 0x9E, 0xF5, 0xF2, 0x52, 0xA6, 0x24, - 0xC7, 0xB6, 0x03, 0x3C, 0xD1, 0x54, 0x41, 0xDF, - 0x89, 0x58, 0x79, 0xFB, 0x6E, 0xA5, 0x42, 0x25, - 0x09, 0x76, 0x00, 0x46, 0x4E, 0x53, 0xCE, 0x4A -}; - -unsigned char table_39[32] = { - 0x12, 0x18, 0x0E, 0x08, 0x16, 0x05, 0x06, 0x00, - 0x11, 0x17, 0x15, 0x1B, 0x14, 0x01, 0x1F, 0x19, - 0x04, 0x0D, 0x0A, 0x0F, 0x10, 0x07, 0x1D, 0x03, - 0x0B, 0x13, 0x0C, 0x09, 0x1E, 0x02, 0x1A, 0x1C -}; - -unsigned char table_40[32] = { - 0x16, 0x02, 0x06, 0x0E, 0x0D, 0x1C, 0x08, 0x0A, - 0x0F, 0x13, 0x0B, 0x18, 0x07, 0x04, 0x14, 0x01, - 0x1B, 0x05, 0x17, 0x1E, 0x11, 0x1A, 0x10, 0x1F, - 0x12, 0x19, 0x1D, 0x03, 0x0C, 0x00, 0x09, 0x15 -}; - -unsigned char table_41[32] = { - 0x13, 0x18, 0x04, 0x1F, 0x1D, 0x11, 0x03, 0x00, - 0x10, 0x12, 0x06, 0x0A, 0x1C, 0x07, 0x15, 0x0E, - 0x08, 0x05, 0x0C, 0x09, 0x01, 0x02, 0x16, 0x0B, - 0x1A, 0x17, 0x14, 0x1E, 0x0D, 0x0F, 0x19, 0x1B -}; - -unsigned char table_42[32] = { - 0x00, 0x08, 0x15, 0x1D, 0x05, 0x18, 0x06, 0x07, - 0x1F, 0x01, 0x0B, 0x03, 0x19, 0x13, 0x02, 0x1C, - 0x17, 0x11, 0x0E, 0x1E, 0x0C, 0x0F, 0x09, 0x1A, - 0x1B, 0x16, 0x10, 0x0D, 0x0A, 0x14, 0x12, 0x04 -}; - -unsigned char table_43[256] = { - 0x34, 0xB7, 0x36, 0x85, 0x5F, 0x93, 0x98, 0x70, - 0x1E, 0x59, 0x83, 0x60, 0x6F, 0xBF, 0xF9, 0xD0, - 0xB3, 0x22, 0x12, 0x38, 0xF5, 0x01, 0xC9, 0x5B, - 0xEF, 0x1D, 0x81, 0x64, 0xFA, 0x8F, 0x7F, 0xBC, - 0x05, 0x08, 0xE0, 0x8B, 0xE8, 0x86, 0x95, 0xCB, - 0xCA, 0x5A, 0xEB, 0x10, 0x92, 0xE2, 0x7E, 0x28, - 0xD9, 0xC7, 0x0D, 0x24, 0xA7, 0x02, 0x0B, 0xF1, - 0x7B, 0xD3, 0xFE, 0x2B, 0x89, 0x0E, 0xAE, 0xAD, - 0xC8, 0x82, 0x79, 0x43, 0x96, 0xDE, 0x0C, 0x9A, - 0x57, 0x84, 0xB4, 0x19, 0xF8, 0xF0, 0xAF, 0xBE, - 0x99, 0x9F, 0x46, 0xE4, 0x31, 0xDF, 0x30, 0x51, - 0xD4, 0xE5, 0xFC, 0x32, 0x04, 0x56, 0x7D, 0x33, - 0xF7, 0x18, 0x23, 0x4E, 0xC2, 0x7C, 0x6C, 0xD2, - 0xB1, 0x9B, 0x40, 0xA2, 0x88, 0x00, 0xA1, 0xAB, - 0xC6, 0x5C, 0x87, 0x3B, 0xD7, 0x27, 0x2E, 0x45, - 0xDA, 0x8E, 0x61, 0x5E, 0xFB, 0x09, 0x5D, 0x6B, - 0xA3, 0x29, 0x4F, 0xAC, 0xD1, 0x77, 0x4A, 0xA9, - 0xC4, 0x7A, 0x15, 0xD8, 0xAA, 0x17, 0xB9, 0x2D, - 0xE7, 0xBD, 0x2C, 0x62, 0x2F, 0xB2, 0xED, 0x3F, - 0x48, 0x26, 0x1B, 0x35, 0x20, 0x72, 0x4D, 0xFF, - 0xBB, 0x78, 0x1F, 0xCC, 0xEC, 0xA8, 0x9D, 0x90, - 0x4B, 0x13, 0xE1, 0xBA, 0xF3, 0x3C, 0x42, 0x65, - 0x14, 0xDD, 0x75, 0xE3, 0x4C, 0x74, 0x94, 0xCD, - 0xF2, 0x66, 0x06, 0xE9, 0x49, 0xB8, 0x71, 0x41, - 0xA0, 0x25, 0x55, 0x47, 0x97, 0x9E, 0x11, 0x54, - 0x1A, 0xB0, 0x3E, 0x37, 0x39, 0x1C, 0x8D, 0x03, - 0x6E, 0xF6, 0x80, 0x6D, 0x8C, 0x9C, 0xB6, 0xCF, - 0xC3, 0x91, 0x63, 0xC0, 0x07, 0x67, 0xE6, 0xF4, - 0xCE, 0x3D, 0xDB, 0x16, 0xFD, 0xEA, 0xD6, 0x68, - 0xD5, 0xA6, 0x0F, 0x58, 0x44, 0x52, 0xB5, 0xDC, - 0x0A, 0x69, 0xC5, 0xA5, 0xC1, 0x8A, 0x2A, 0xEE, - 0x73, 0x76, 0x3A, 0x21, 0x53, 0xA4, 0x50, 0x6A -}; - -unsigned char table_44[32] = { - 0x1A, 0x0E, 0x0A, 0x17, 0x1F, 0x08, 0x10, 0x14, - 0x0C, 0x0F, 0x09, 0x1C, 0x06, 0x18, 0x1E, 0x12, - 0x15, 0x00, 0x11, 0x13, 0x0D, 0x01, 0x0B, 0x03, - 0x16, 0x19, 0x05, 0x1D, 0x02, 0x07, 0x04, 0x1B -}; - -unsigned char table_45[256] = { - 0x5E, 0xD6, 0xE2, 0x54, 0x35, 0xC2, 0xAC, 0x9D, - 0x92, 0x64, 0x57, 0x65, 0xC8, 0xAE, 0x21, 0xA9, - 0x89, 0x48, 0x12, 0x59, 0xEC, 0xEF, 0x9F, 0xF7, - 0x19, 0x03, 0x83, 0xC0, 0x79, 0x5D, 0x4A, 0x10, - 0x8C, 0xEB, 0xFF, 0xB5, 0x3B, 0x51, 0x2D, 0xD1, - 0x6B, 0xC5, 0x24, 0x5C, 0xE6, 0x11, 0x94, 0x3F, - 0xD0, 0x2F, 0x0E, 0x95, 0x3C, 0xFE, 0x5B, 0x20, - 0x23, 0xE0, 0x91, 0x6F, 0xCA, 0x56, 0x0C, 0x73, - 0xDA, 0x67, 0x37, 0xA3, 0xA5, 0x70, 0x93, 0x1C, - 0x18, 0xD9, 0x42, 0x5F, 0x44, 0xF0, 0xF2, 0x14, - 0x58, 0x8A, 0x1D, 0x40, 0x4E, 0x0B, 0x74, 0x84, - 0x52, 0xCB, 0x60, 0xED, 0xAD, 0x66, 0x43, 0x6C, - 0x81, 0xA1, 0x27, 0xB9, 0xBA, 0x4D, 0xF5, 0x04, - 0xB8, 0x96, 0xA6, 0xA2, 0x7D, 0xD4, 0xEA, 0x45, - 0x4F, 0x55, 0xD3, 0x3E, 0x8E, 0x4C, 0xBF, 0x8B, - 0x9A, 0x06, 0x7A, 0xF4, 0x02, 0x88, 0x80, 0x22, - 0xF3, 0xBD, 0x78, 0xEE, 0xAF, 0xF8, 0x15, 0x09, - 0x0F, 0xB0, 0xDD, 0x99, 0x72, 0xE7, 0x90, 0xE1, - 0x25, 0x62, 0x8D, 0x9C, 0x13, 0x08, 0xC9, 0x28, - 0x2A, 0x47, 0x69, 0xDE, 0x77, 0x87, 0xBB, 0xE9, - 0xAA, 0x33, 0x05, 0x29, 0x34, 0x97, 0xFD, 0xA0, - 0x1E, 0xFC, 0xBE, 0xB1, 0x71, 0x9B, 0x50, 0xDC, - 0xB7, 0x31, 0x63, 0x3A, 0xDF, 0xC3, 0x1B, 0x7C, - 0x0A, 0xD7, 0xF6, 0xDB, 0x49, 0x53, 0x7F, 0xD2, - 0x30, 0xA4, 0xB3, 0x6E, 0xB2, 0x6D, 0xCD, 0x7E, - 0x26, 0xE8, 0x76, 0xCF, 0xE5, 0xCE, 0x16, 0xF1, - 0xC6, 0x68, 0x36, 0x46, 0x1F, 0x38, 0x0D, 0x41, - 0x17, 0xBC, 0x86, 0x9E, 0x6A, 0x7B, 0xB4, 0x01, - 0xCC, 0x2C, 0xE3, 0x5A, 0xB6, 0xFA, 0x00, 0x75, - 0x39, 0xA7, 0xC1, 0xD5, 0x98, 0xAB, 0x1A, 0x85, - 0xD8, 0xE4, 0xC4, 0xA8, 0x4B, 0x61, 0x2E, 0x3D, - 0xF9, 0x2B, 0x32, 0x8F, 0xFB, 0xC7, 0x07, 0x82 -}; - -unsigned char table_46[256] = { - 0x85, 0x78, 0xFE, 0x6C, 0x61, 0xA0, 0x71, 0xCC, - 0x45, 0x54, 0x7A, 0xE6, 0x82, 0x1D, 0xA6, 0x02, - 0x47, 0xD0, 0x23, 0x55, 0x62, 0xFA, 0x76, 0x3E, - 0xE3, 0x66, 0x74, 0x10, 0x5D, 0x49, 0x69, 0x0B, - 0x75, 0x12, 0x8D, 0x9F, 0xEE, 0x93, 0x50, 0x70, - 0x32, 0xBC, 0x1E, 0xD3, 0xEF, 0x7B, 0xB4, 0x92, - 0xFD, 0x16, 0xC2, 0xD8, 0xDE, 0x68, 0xD1, 0x64, - 0xC3, 0xA3, 0xB3, 0xC9, 0x08, 0xFB, 0x84, 0xC1, - 0x28, 0x53, 0xCF, 0xD2, 0x35, 0xD7, 0x4A, 0x01, - 0x44, 0xA4, 0x07, 0xAC, 0x98, 0xF1, 0xB2, 0x9A, - 0x94, 0x2D, 0xD4, 0x34, 0x27, 0x60, 0x1A, 0xB9, - 0xAF, 0x89, 0xEB, 0x8F, 0x6A, 0x13, 0x05, 0xF0, - 0x77, 0x5F, 0x4F, 0x58, 0x2C, 0xE7, 0xCE, 0xED, - 0xC0, 0x0D, 0x3A, 0xA7, 0xE2, 0x38, 0x5B, 0xE9, - 0x3D, 0xF2, 0xDF, 0x86, 0xE0, 0x72, 0xF7, 0x88, - 0xAD, 0xB7, 0x11, 0xDB, 0x73, 0x87, 0xC5, 0x22, - 0xE1, 0x5C, 0xD6, 0x57, 0x7E, 0x7D, 0xA2, 0xF9, - 0xF5, 0x9C, 0x25, 0x6F, 0x26, 0x51, 0xC8, 0x80, - 0x2B, 0xA8, 0x19, 0xD9, 0x65, 0xCD, 0x97, 0xEA, - 0xFF, 0x5E, 0x24, 0x3B, 0x4D, 0xB1, 0x1C, 0x79, - 0x39, 0x6B, 0xA5, 0x2A, 0x09, 0xCA, 0x04, 0xEC, - 0xBA, 0x18, 0x31, 0x46, 0x20, 0xBE, 0x1F, 0x3C, - 0x6D, 0xAA, 0xF6, 0xDD, 0xF4, 0x96, 0x03, 0x0A, - 0x9E, 0x83, 0xA1, 0x9D, 0xD5, 0xB0, 0x17, 0xBF, - 0x56, 0xAB, 0xAE, 0x1B, 0x52, 0xC6, 0x81, 0x4B, - 0xDC, 0x90, 0x5A, 0x9B, 0xB6, 0x0F, 0xF3, 0x67, - 0x30, 0x63, 0x7C, 0x40, 0x0E, 0x7F, 0x95, 0x36, - 0xC4, 0x4E, 0x43, 0xCB, 0x15, 0xB8, 0x00, 0x91, - 0x8A, 0x4C, 0x8E, 0x14, 0x06, 0x6E, 0xA9, 0x2E, - 0x3F, 0x48, 0x2F, 0x0C, 0xB5, 0x21, 0xBB, 0xDA, - 0x8B, 0x42, 0x29, 0x8C, 0x33, 0x59, 0xE8, 0xF8, - 0xC7, 0xE4, 0x37, 0xE5, 0xFC, 0xBD, 0x99, 0x41 -}; - -unsigned char table_47[32] = { - 0x18, 0x1D, 0x16, 0x10, 0x11, 0x04, 0x1E, 0x08, - 0x19, 0x0E, 0x0F, 0x02, 0x14, 0x1C, 0x07, 0x17, - 0x0D, 0x09, 0x12, 0x1A, 0x05, 0x01, 0x0B, 0x0A, - 0x13, 0x15, 0x0C, 0x00, 0x06, 0x1F, 0x03, 0x1B -}; - -unsigned char table_48[32] = { - 0x13, 0x08, 0x15, 0x01, 0x17, 0x10, 0x0F, 0x1F, - 0x1D, 0x0D, 0x12, 0x03, 0x06, 0x0A, 0x1C, 0x19, - 0x1A, 0x04, 0x1B, 0x02, 0x16, 0x1E, 0x11, 0x00, - 0x14, 0x09, 0x0C, 0x18, 0x05, 0x07, 0x0E, 0x0B -}; - -unsigned char table_49[32] = { - 0x1F, 0x0F, 0x19, 0x07, 0x18, 0x05, 0x1E, 0x1D, - 0x15, 0x08, 0x17, 0x10, 0x0A, 0x0E, 0x0C, 0x1B, - 0x02, 0x13, 0x03, 0x0D, 0x04, 0x1A, 0x06, 0x09, - 0x12, 0x1C, 0x0B, 0x16, 0x14, 0x01, 0x11, 0x00 -}; - -unsigned char table_50[32] = { - 0x16, 0x18, 0x1C, 0x0E, 0x12, 0x00, 0x04, 0x1B, - 0x1F, 0x13, 0x17, 0x0A, 0x1E, 0x03, 0x0C, 0x01, - 0x0F, 0x10, 0x02, 0x08, 0x14, 0x09, 0x19, 0x15, - 0x06, 0x0D, 0x0B, 0x1D, 0x05, 0x07, 0x11, 0x1A -}; - -unsigned char table_51[32] = { - 0x1C, 0x0D, 0x1B, 0x07, 0x17, 0x0E, 0x06, 0x01, - 0x12, 0x19, 0x03, 0x0B, 0x10, 0x08, 0x00, 0x1E, - 0x0A, 0x04, 0x1A, 0x1D, 0x0C, 0x18, 0x02, 0x13, - 0x0F, 0x11, 0x05, 0x09, 0x15, 0x16, 0x1F, 0x14 -}; - -unsigned char table_52[256] = { - 0x34, 0x0B, 0x47, 0xA3, 0x56, 0x30, 0x73, 0xD4, - 0x4B, 0xF6, 0xA6, 0x80, 0x22, 0x95, 0xA5, 0xBB, - 0xFE, 0xCD, 0x27, 0x88, 0x87, 0x18, 0x86, 0x6E, - 0xB9, 0x07, 0x37, 0x52, 0x0A, 0x28, 0x2C, 0xC4, - 0x75, 0xA1, 0x29, 0x54, 0x84, 0x08, 0x72, 0x51, - 0xDD, 0xF1, 0x4E, 0x1A, 0x90, 0x57, 0x20, 0xAD, - 0x68, 0x61, 0xAF, 0x50, 0x6B, 0x1B, 0x71, 0xEB, - 0x63, 0xC9, 0xB0, 0x58, 0x26, 0x40, 0xC7, 0xD9, - 0x70, 0xA2, 0x9A, 0x09, 0x3F, 0x92, 0x0D, 0x8C, - 0xC1, 0x96, 0x9F, 0x77, 0x4D, 0x5A, 0xEA, 0x11, - 0xD7, 0xF3, 0x33, 0x93, 0x10, 0xF2, 0x9D, 0x83, - 0xFF, 0x7E, 0xD2, 0x41, 0x24, 0xB4, 0x8D, 0x5C, - 0xCF, 0xEF, 0xE9, 0x64, 0x76, 0xD1, 0xDE, 0xE4, - 0x91, 0x35, 0x89, 0x19, 0x02, 0x0E, 0xF4, 0x2A, - 0x0F, 0xE1, 0xA8, 0x2D, 0x21, 0x23, 0xAA, 0x7C, - 0x78, 0x45, 0xA9, 0xDC, 0x06, 0xF9, 0xDF, 0xF7, - 0x03, 0xAB, 0xB5, 0x1C, 0x36, 0x7B, 0x97, 0xFA, - 0xE5, 0x3B, 0x2F, 0x1F, 0x9E, 0xED, 0xA7, 0x55, - 0x42, 0x6F, 0x1E, 0xB7, 0xE6, 0xFB, 0x12, 0xD5, - 0x99, 0xC6, 0x66, 0x4A, 0xE8, 0x48, 0x60, 0xB1, - 0x05, 0x53, 0x8A, 0xB6, 0x25, 0x8F, 0xA4, 0xD8, - 0x9C, 0xC0, 0x59, 0x3A, 0xBD, 0xDB, 0x44, 0x5E, - 0xE3, 0xDA, 0x1D, 0x32, 0xF5, 0xBA, 0x43, 0x13, - 0x82, 0x4C, 0xE7, 0x17, 0x15, 0x3E, 0x69, 0x2E, - 0xC3, 0xF0, 0x5F, 0xFD, 0xCE, 0xD3, 0xCA, 0x39, - 0xD6, 0x79, 0x3D, 0xC8, 0x67, 0x8B, 0x31, 0x4F, - 0xB3, 0xBC, 0x65, 0x00, 0x7A, 0x98, 0xC5, 0x6C, - 0x2B, 0x94, 0x6D, 0x74, 0x14, 0xAC, 0xCC, 0xA0, - 0x5B, 0xF8, 0xCB, 0x7F, 0xB2, 0xEC, 0xBF, 0x3C, - 0xE0, 0xAE, 0xFC, 0x62, 0x04, 0x8E, 0x85, 0x49, - 0x9B, 0xC2, 0x38, 0xD0, 0xEE, 0x81, 0x46, 0xE2, - 0x01, 0x0C, 0x5D, 0x7D, 0xB8, 0xBE, 0x6A, 0x16 -}; - -unsigned char table_53[256] = { - 0xE3, 0xF4, 0x8D, 0x72, 0x45, 0x32, 0x9D, 0xCE, - 0x1F, 0x6B, 0xBC, 0xDC, 0xF1, 0xEC, 0x5A, 0x3B, - 0xA5, 0xA2, 0x2B, 0xDD, 0x8A, 0xA3, 0x76, 0xE4, - 0xAF, 0xE9, 0xE1, 0x21, 0xDB, 0x9F, 0x19, 0xD3, - 0x26, 0x80, 0x15, 0xC2, 0x46, 0xB8, 0x17, 0x56, - 0x99, 0x81, 0x08, 0xD7, 0xEF, 0x8E, 0x04, 0x05, - 0x97, 0x2F, 0x78, 0xAD, 0xA1, 0x52, 0x36, 0x58, - 0x53, 0x68, 0x22, 0x70, 0x0B, 0x79, 0xE6, 0xFA, - 0xC3, 0x91, 0xE2, 0xF7, 0xF6, 0x75, 0x2D, 0x0A, - 0x90, 0xEB, 0xA6, 0x35, 0xA7, 0x10, 0xB5, 0xFB, - 0xE7, 0xAA, 0x1E, 0x43, 0xBB, 0x3C, 0x65, 0x25, - 0x2C, 0x59, 0x62, 0x2A, 0xF9, 0x4B, 0x95, 0x5E, - 0x20, 0x11, 0x42, 0x27, 0x44, 0xE8, 0x14, 0x6F, - 0xD1, 0xD8, 0x00, 0x3A, 0x5B, 0x18, 0x89, 0x02, - 0x61, 0xD6, 0xC5, 0x98, 0xD0, 0x5F, 0x34, 0x29, - 0xFD, 0x31, 0x1A, 0xCD, 0x0F, 0x9E, 0xCA, 0x7B, - 0xEA, 0x93, 0x71, 0x5C, 0x0E, 0x57, 0x33, 0xC4, - 0x37, 0xF5, 0x83, 0xB0, 0xDF, 0x49, 0x74, 0x54, - 0x1D, 0x24, 0xB9, 0x16, 0x1C, 0x28, 0xDE, 0x4A, - 0xF0, 0x01, 0x86, 0x82, 0xCC, 0x12, 0x8C, 0x06, - 0x30, 0xA8, 0x7A, 0x73, 0x66, 0x7C, 0xC6, 0xB6, - 0xF2, 0x13, 0xBF, 0x40, 0x85, 0x77, 0x09, 0x3D, - 0x67, 0x63, 0x3F, 0x7F, 0xF3, 0x87, 0x8F, 0xFF, - 0x92, 0xC7, 0x4C, 0x23, 0xBA, 0xCB, 0xB1, 0xED, - 0x0C, 0x60, 0x47, 0xFE, 0x38, 0x5D, 0xCF, 0x8B, - 0x4D, 0xA9, 0x2E, 0xE5, 0xA4, 0x1B, 0x88, 0x3E, - 0x7D, 0xF8, 0xC0, 0xD5, 0x6D, 0x6C, 0x48, 0xAC, - 0x9B, 0x51, 0x7E, 0x6E, 0x50, 0x0D, 0x9A, 0xB3, - 0xEE, 0x07, 0x4F, 0x69, 0x9C, 0x03, 0xD9, 0xD4, - 0xB4, 0xD2, 0xAE, 0x4E, 0x55, 0xB7, 0xC9, 0x41, - 0x39, 0x6A, 0xC8, 0xA0, 0xB2, 0xC1, 0x84, 0xFC, - 0xAB, 0x64, 0xE0, 0xBE, 0xDA, 0xBD, 0x96, 0x94 -}; - -unsigned char table_54[32] = { - 0x01, 0x02, 0x1D, 0x10, 0x0E, 0x11, 0x08, 0x14, - 0x12, 0x09, 0x15, 0x17, 0x16, 0x04, 0x06, 0x1B, - 0x07, 0x1A, 0x18, 0x13, 0x0A, 0x1E, 0x1C, 0x1F, - 0x0C, 0x0B, 0x0D, 0x05, 0x0F, 0x00, 0x19, 0x03 -}; - -unsigned char table_55[32] = { - 0x01, 0x12, 0x13, 0x09, 0x0B, 0x19, 0x03, 0x0E, - 0x02, 0x1F, 0x1D, 0x1B, 0x1E, 0x11, 0x06, 0x05, - 0x00, 0x16, 0x07, 0x0C, 0x15, 0x0D, 0x1A, 0x08, - 0x18, 0x10, 0x0F, 0x17, 0x1C, 0x0A, 0x04, 0x14 -}; - -unsigned char table_56[256] = { - 0xEF, 0x06, 0x5F, 0x11, 0x4B, 0x60, 0x13, 0xBB, - 0x79, 0xD7, 0xE4, 0x6D, 0x22, 0xB4, 0x15, 0x50, - 0x29, 0x17, 0xD2, 0xE3, 0x37, 0x8C, 0x46, 0x7C, - 0xA2, 0xF5, 0x65, 0x16, 0xCB, 0x04, 0x3E, 0xDF, - 0x8E, 0xDE, 0x53, 0xF1, 0xF4, 0xD1, 0x3B, 0xEE, - 0x9A, 0x09, 0x9B, 0x6C, 0xF6, 0xCC, 0xFB, 0x40, - 0xE0, 0xFD, 0x2B, 0x1D, 0x73, 0x18, 0xCD, 0x31, - 0x3F, 0x9E, 0xAD, 0xC9, 0x43, 0x4E, 0x99, 0x3A, - 0x8F, 0x92, 0x85, 0xFC, 0x12, 0x41, 0x20, 0xE8, - 0x2A, 0xC0, 0x1C, 0x38, 0x74, 0x0B, 0xF3, 0x05, - 0x0D, 0x1F, 0x94, 0x9C, 0xAC, 0x00, 0x59, 0x0C, - 0xB3, 0x8D, 0xA8, 0x75, 0xB7, 0x68, 0x2F, 0x27, - 0x6F, 0x69, 0x76, 0xD8, 0xEC, 0xA5, 0xB2, 0x6A, - 0x19, 0x72, 0x1A, 0xB6, 0xE5, 0x77, 0xC6, 0x44, - 0x9D, 0xCA, 0x82, 0x35, 0x36, 0x5E, 0xA9, 0x25, - 0xFA, 0x5C, 0x24, 0x30, 0x39, 0x0E, 0x2C, 0x7D, - 0xE6, 0x88, 0xA0, 0x63, 0xB8, 0x6B, 0x01, 0xDD, - 0xDA, 0x9F, 0x45, 0x83, 0xE2, 0x7F, 0x1B, 0x56, - 0xAF, 0x14, 0xC3, 0x49, 0xBF, 0x78, 0x70, 0x58, - 0x23, 0xA3, 0xBD, 0x34, 0x47, 0x2D, 0x0A, 0xD4, - 0x33, 0x03, 0x1E, 0xC1, 0x87, 0xAE, 0x3C, 0x95, - 0xB0, 0x42, 0x91, 0xB9, 0x5A, 0x61, 0xAA, 0xCF, - 0xF2, 0x51, 0xA6, 0xF8, 0xDC, 0x71, 0xAB, 0x48, - 0x66, 0x90, 0x97, 0xC4, 0x08, 0xF9, 0xD0, 0x7B, - 0xDB, 0xBA, 0x8B, 0xC2, 0xC5, 0x2E, 0xF7, 0x5B, - 0xFF, 0x21, 0x81, 0x54, 0xD3, 0x62, 0x57, 0x4C, - 0x6E, 0x02, 0x98, 0xFE, 0x7E, 0xE7, 0xBC, 0x07, - 0x28, 0x5D, 0x86, 0xCE, 0xEA, 0x84, 0xF0, 0xE1, - 0x93, 0x80, 0xE9, 0xC7, 0x4A, 0xED, 0xB1, 0x26, - 0x89, 0x3D, 0x4F, 0xA7, 0xA1, 0xD6, 0xB5, 0x4D, - 0x67, 0xA4, 0x55, 0x10, 0x0F, 0xD9, 0x52, 0x32, - 0x96, 0xD5, 0xEB, 0x64, 0x8A, 0xC8, 0x7A, 0xBE -}; - -unsigned char table_57[256] = { - 0xD1, 0x9B, 0x15, 0x06, 0xB4, 0xF6, 0x97, 0xF0, - 0xC6, 0x5B, 0x88, 0x12, 0x25, 0xFA, 0x7B, 0x79, - 0xD6, 0xAB, 0xDC, 0x47, 0x85, 0x61, 0x67, 0x0B, - 0xF3, 0x20, 0x44, 0x53, 0x2A, 0x3B, 0x2D, 0xE8, - 0x17, 0x71, 0xC3, 0xB7, 0x7F, 0x35, 0xEB, 0x10, - 0x03, 0x0D, 0x60, 0x96, 0x27, 0xBB, 0x39, 0x50, - 0x95, 0x55, 0xCC, 0xD4, 0x2F, 0x51, 0xB3, 0x05, - 0xA5, 0xAD, 0xBC, 0x18, 0xE2, 0xAE, 0x07, 0x87, - 0xC4, 0x8D, 0xBE, 0x77, 0xC2, 0x16, 0xFC, 0x33, - 0x4C, 0x4F, 0xE6, 0xA6, 0x57, 0x9F, 0x37, 0x91, - 0xED, 0x4A, 0xF7, 0xB5, 0x52, 0x7C, 0xBD, 0x30, - 0xA0, 0x2C, 0x8C, 0xB0, 0x0C, 0xDA, 0x6F, 0x9E, - 0xEE, 0x43, 0x40, 0x8F, 0x8B, 0x76, 0xA4, 0x68, - 0xFF, 0x6D, 0x58, 0xC9, 0xF9, 0x6E, 0x3F, 0x56, - 0xCA, 0x49, 0xC8, 0x5D, 0xCD, 0xC7, 0x99, 0xEC, - 0x72, 0x38, 0x0A, 0xA9, 0xC5, 0x04, 0x64, 0xBF, - 0xB6, 0x29, 0x80, 0x2E, 0x19, 0x0E, 0x82, 0x45, - 0xBA, 0xD7, 0x1E, 0x86, 0xA8, 0xD8, 0x24, 0xDB, - 0xCF, 0xE1, 0x54, 0xB2, 0x3E, 0x4D, 0x90, 0x42, - 0x5F, 0x59, 0x0F, 0xCE, 0x8E, 0xA2, 0xA7, 0x1D, - 0x22, 0xFD, 0x81, 0x63, 0xE5, 0x6A, 0xE7, 0x93, - 0x41, 0x46, 0x66, 0x89, 0x13, 0xEA, 0x69, 0x1C, - 0x83, 0xF2, 0x08, 0xB8, 0x01, 0x23, 0x26, 0xFB, - 0x78, 0xAA, 0x31, 0x11, 0x1B, 0x98, 0xDD, 0xAC, - 0xB9, 0xFE, 0x94, 0x74, 0xAF, 0x32, 0xD0, 0x5A, - 0xA1, 0xF4, 0x6B, 0x8A, 0xE3, 0x65, 0xDE, 0xCB, - 0x73, 0x3D, 0xA3, 0x7E, 0xDF, 0xD2, 0x6C, 0x7A, - 0x36, 0xD9, 0x62, 0x4B, 0xEF, 0xC1, 0x1F, 0x00, - 0x34, 0xB1, 0xF8, 0xE4, 0xD5, 0x09, 0x1A, 0x9A, - 0x70, 0x48, 0x9D, 0xF1, 0xE0, 0x9C, 0xD3, 0x5C, - 0x75, 0x02, 0x2B, 0x92, 0x21, 0x7D, 0xF5, 0x5E, - 0x4E, 0x3C, 0x84, 0x14, 0x28, 0x3A, 0xE9, 0xC0 -}; - -unsigned char table_58[256] = { - 0xE9, 0x81, 0x60, 0xA7, 0x18, 0xA0, 0x0F, 0x55, - 0x2B, 0x52, 0xE0, 0x8B, 0x9D, 0x85, 0xD2, 0xA3, - 0x3F, 0x6E, 0xB1, 0xAF, 0xE3, 0x36, 0xE2, 0x19, - 0x56, 0xB0, 0x09, 0xB5, 0x79, 0x43, 0xE1, 0x06, - 0x45, 0xB6, 0xC0, 0x22, 0xEE, 0x41, 0xEC, 0x01, - 0x66, 0x2D, 0x87, 0x38, 0x16, 0x37, 0xFA, 0x29, - 0x96, 0xA4, 0xC3, 0x23, 0x59, 0x7E, 0x92, 0x78, - 0x10, 0x2A, 0x4C, 0x0E, 0x9B, 0x4A, 0x35, 0xF4, - 0x42, 0x0C, 0xD8, 0xD7, 0x24, 0x2C, 0xDD, 0x8E, - 0x5B, 0xF5, 0x33, 0x48, 0xEF, 0xDE, 0x4B, 0xBC, - 0x51, 0xAB, 0x7C, 0xE4, 0x63, 0x70, 0x9A, 0xAC, - 0x54, 0x1D, 0x25, 0xC5, 0xEA, 0xB3, 0x05, 0xF7, - 0xC1, 0x1F, 0xE8, 0x97, 0xBB, 0x32, 0x6D, 0xC7, - 0x28, 0x61, 0xDB, 0x4D, 0x77, 0x72, 0x65, 0x8C, - 0x80, 0x3A, 0x76, 0x47, 0xA8, 0x03, 0x04, 0x12, - 0xCE, 0xA9, 0x75, 0x3C, 0x49, 0xF8, 0x64, 0xDF, - 0x57, 0xA2, 0x69, 0x44, 0xAD, 0x3E, 0x4F, 0x0B, - 0x74, 0x67, 0xC9, 0x1A, 0x17, 0xAA, 0x02, 0x6F, - 0xDA, 0xF2, 0xC6, 0x27, 0x53, 0xD6, 0xFD, 0xCA, - 0x8D, 0x93, 0x89, 0xD5, 0x6B, 0x4E, 0x90, 0x82, - 0x30, 0xE7, 0xC4, 0xD9, 0x8A, 0x7F, 0xB4, 0xFC, - 0xCF, 0xA1, 0xAE, 0x1C, 0x39, 0x1B, 0x7B, 0x5E, - 0x88, 0x7D, 0xD3, 0x71, 0x2E, 0x98, 0x13, 0x8F, - 0xCC, 0x84, 0x73, 0xCD, 0x21, 0x0D, 0x5C, 0xA5, - 0x3D, 0x9E, 0x99, 0xC2, 0xF3, 0x34, 0x14, 0x62, - 0x46, 0x0A, 0x07, 0x08, 0xFF, 0xFB, 0xB7, 0xBF, - 0x5D, 0x91, 0xB8, 0x83, 0xBE, 0x94, 0xBA, 0xF9, - 0xEB, 0xE5, 0xCB, 0x95, 0x40, 0x31, 0xE6, 0x86, - 0xD4, 0xFE, 0xD0, 0x7A, 0x26, 0xB9, 0xDC, 0x2F, - 0xBD, 0xF0, 0x5F, 0x00, 0x9C, 0x6A, 0x5A, 0x3B, - 0xF1, 0xC8, 0x9F, 0xED, 0x50, 0x20, 0x15, 0x11, - 0x68, 0x1E, 0xF6, 0xA6, 0x6C, 0xB2, 0xD1, 0x58 -}; - -unsigned char table_59[256] = { - 0x4C, 0x85, 0x2B, 0x14, 0xCC, 0x4D, 0x5F, 0xD7, - 0xCE, 0x28, 0xC5, 0x0B, 0xA1, 0x99, 0x08, 0xDE, - 0x42, 0xD1, 0x82, 0x5C, 0xC9, 0x8F, 0x72, 0x12, - 0xCB, 0x0D, 0x04, 0xFA, 0xCD, 0xE5, 0x9A, 0x6F, - 0xCF, 0x92, 0xB5, 0x88, 0x87, 0xBF, 0x90, 0x7C, - 0xAC, 0xBE, 0x36, 0x21, 0x7D, 0x7F, 0xC7, 0x9F, - 0x75, 0xBB, 0x61, 0x16, 0x17, 0x63, 0xAE, 0xC4, - 0x23, 0x89, 0xE0, 0x37, 0x91, 0x5E, 0xC8, 0xE4, - 0xFD, 0xD5, 0xA2, 0xC6, 0x5A, 0xEF, 0x9B, 0xD6, - 0x27, 0xEE, 0x60, 0x1C, 0xDF, 0xDA, 0xF1, 0xD2, - 0x1E, 0x01, 0x9D, 0x44, 0x03, 0xD8, 0x11, 0x53, - 0x4F, 0x6C, 0x8B, 0xB7, 0x40, 0xF2, 0x79, 0x20, - 0x74, 0x97, 0x3E, 0x3D, 0x05, 0xD4, 0x70, 0x30, - 0x54, 0x59, 0xE7, 0x15, 0xE1, 0xEB, 0x71, 0x83, - 0xFE, 0x66, 0xB1, 0xA6, 0xF7, 0x8E, 0x6A, 0xEA, - 0x65, 0x7E, 0xA3, 0xCA, 0x2D, 0x4B, 0xB8, 0x9C, - 0x35, 0xC3, 0xB6, 0x49, 0x32, 0x25, 0xB3, 0xB0, - 0x76, 0xC0, 0xF5, 0x00, 0x8A, 0xAF, 0x19, 0xDB, - 0xDD, 0x47, 0xDC, 0x07, 0xB2, 0x4A, 0x55, 0xE6, - 0x69, 0xEC, 0xED, 0x06, 0x94, 0xB9, 0xA7, 0x56, - 0x2C, 0xAA, 0xE3, 0x22, 0x3B, 0x98, 0x77, 0x52, - 0x3C, 0x64, 0xF8, 0x13, 0x78, 0xFC, 0xFB, 0xF3, - 0xD3, 0xF9, 0x29, 0x45, 0x51, 0x8C, 0xA0, 0x38, - 0xD9, 0xA5, 0x62, 0x3A, 0x6E, 0xD0, 0xE8, 0x7A, - 0x33, 0x1D, 0xB4, 0x73, 0x02, 0xFF, 0x10, 0x80, - 0x6B, 0xF0, 0xA4, 0xBA, 0xF6, 0xC2, 0x0E, 0xE2, - 0x81, 0x43, 0x84, 0x86, 0x1F, 0x31, 0x2F, 0xA9, - 0x1B, 0x2A, 0x4E, 0xF4, 0x95, 0x5B, 0x3F, 0x34, - 0x39, 0x7B, 0x0A, 0x26, 0x6D, 0x57, 0x50, 0x09, - 0x9E, 0xA8, 0xBC, 0x24, 0x93, 0x67, 0x41, 0x96, - 0x0C, 0x46, 0xBD, 0xE9, 0x68, 0x18, 0xAB, 0x2E, - 0x5D, 0x1A, 0x8D, 0xC1, 0x58, 0x48, 0xAD, 0x0F -}; - -unsigned char table_60[32] = { - 0x1C, 0x06, 0x1E, 0x10, 0x1D, 0x05, 0x00, 0x0E, - 0x0C, 0x02, 0x11, 0x19, 0x15, 0x18, 0x16, 0x07, - 0x1F, 0x0B, 0x14, 0x01, 0x0F, 0x09, 0x0D, 0x13, - 0x03, 0x08, 0x12, 0x04, 0x1B, 0x0A, 0x17, 0x1A -}; - -unsigned char table_61[256] = { - 0xC5, 0xA6, 0xF2, 0x6B, 0x4B, 0x58, 0xE0, 0x41, - 0xC6, 0x2F, 0x13, 0xFE, 0xC1, 0x34, 0x3F, 0x24, - 0x10, 0xBF, 0x8B, 0xC9, 0x26, 0x2E, 0x68, 0xBE, - 0x28, 0x54, 0x93, 0x11, 0x21, 0x03, 0xFF, 0x50, - 0x31, 0x71, 0x2C, 0x6C, 0x91, 0x8F, 0x3B, 0x40, - 0x3E, 0xE5, 0xA5, 0x80, 0xEA, 0x7C, 0x9D, 0x18, - 0x84, 0x5A, 0x73, 0x3A, 0x33, 0x43, 0xA1, 0x47, - 0xB1, 0xEE, 0xFB, 0x79, 0x5E, 0xAF, 0xB9, 0x48, - 0x0F, 0x88, 0x65, 0x67, 0x6F, 0xDB, 0x25, 0xE4, - 0xB0, 0x87, 0xD0, 0x46, 0xB5, 0xB7, 0x53, 0xD4, - 0x1E, 0x76, 0xB4, 0x90, 0xDD, 0xA3, 0xF7, 0x57, - 0xD2, 0xCC, 0x5D, 0xE3, 0xB3, 0xD8, 0x5F, 0x2B, - 0x69, 0x4A, 0x9B, 0x39, 0x1A, 0x8D, 0x05, 0x8A, - 0x44, 0x15, 0xAE, 0xF3, 0xA8, 0x92, 0x02, 0xAB, - 0xB8, 0xDA, 0x0A, 0x0C, 0xED, 0xD7, 0x77, 0x98, - 0x3D, 0x19, 0x95, 0x36, 0xE7, 0x7F, 0x66, 0xEF, - 0x86, 0xDC, 0xCB, 0x9C, 0x63, 0xE6, 0x1D, 0x14, - 0x9A, 0x22, 0xBD, 0xD6, 0x89, 0x2D, 0xD1, 0xF9, - 0xA2, 0xDE, 0xF5, 0x5C, 0x8E, 0x2A, 0x29, 0xCA, - 0x7A, 0x8C, 0x38, 0x9F, 0xBB, 0xDF, 0xEC, 0x30, - 0x00, 0xFC, 0xAC, 0x81, 0xB2, 0xE8, 0xC0, 0xA7, - 0x7B, 0x07, 0x52, 0x74, 0x70, 0x0E, 0x51, 0x6A, - 0x62, 0x0D, 0x85, 0x1B, 0x4F, 0x96, 0x55, 0x1C, - 0x32, 0x6E, 0x01, 0xF6, 0x08, 0xFD, 0x17, 0x35, - 0xF0, 0x16, 0xC8, 0x23, 0xE9, 0x59, 0x3C, 0x37, - 0x5B, 0x42, 0xD3, 0x49, 0x7D, 0x83, 0x78, 0xAD, - 0x94, 0x9E, 0x56, 0xB6, 0xF1, 0xC3, 0x75, 0xF8, - 0xFA, 0x09, 0x4C, 0xD9, 0x97, 0xF4, 0x7E, 0x6D, - 0xBC, 0x4D, 0x64, 0xCD, 0x12, 0x99, 0x45, 0xCE, - 0x61, 0x20, 0x0B, 0xA0, 0x82, 0xD5, 0xE1, 0x72, - 0xA9, 0x1F, 0x06, 0x27, 0xC7, 0x04, 0xE2, 0xBA, - 0xCF, 0x60, 0xAA, 0xA4, 0xEB, 0xC4, 0x4E, 0xC2 -}; - -unsigned char table_62[256] = { - 0x01, 0x59, 0xEC, 0xFC, 0x51, 0xD2, 0xE4, 0x9D, - 0xAA, 0x61, 0xD5, 0xCA, 0x63, 0x5D, 0xCE, 0x36, - 0xB9, 0x49, 0x76, 0xA9, 0x14, 0x4C, 0x90, 0x28, - 0x66, 0x17, 0x4F, 0x1E, 0x1A, 0x47, 0x30, 0xE8, - 0xFD, 0x86, 0x2E, 0x7B, 0x7E, 0xCC, 0x34, 0x13, - 0x94, 0x45, 0x38, 0x74, 0x29, 0xB0, 0x37, 0xC3, - 0x26, 0x6C, 0x39, 0xA3, 0x89, 0xEB, 0xA2, 0x20, - 0x00, 0xE0, 0x73, 0xE7, 0xB5, 0xCB, 0xED, 0x3E, - 0x79, 0x09, 0xFA, 0x32, 0x54, 0xBA, 0x05, 0x96, - 0xDE, 0x23, 0xD0, 0xA1, 0xAB, 0xFE, 0xF2, 0x22, - 0xB2, 0x9B, 0x7D, 0x44, 0x12, 0x3D, 0x40, 0x82, - 0xA0, 0xA8, 0x33, 0xDC, 0xF7, 0xFB, 0xAC, 0x41, - 0x8A, 0x9C, 0x60, 0x11, 0xC8, 0xF0, 0xEA, 0x57, - 0x3A, 0x42, 0xCD, 0x1D, 0x3C, 0xC6, 0x97, 0x62, - 0x55, 0x9F, 0xF3, 0x93, 0x91, 0xDA, 0x6A, 0xE5, - 0x27, 0x8E, 0x4E, 0xFF, 0xA4, 0x80, 0x04, 0xE1, - 0x2B, 0x5E, 0xC0, 0x64, 0xC2, 0xD8, 0x46, 0x8C, - 0xD4, 0x0F, 0xC4, 0x43, 0xD9, 0x9E, 0x4B, 0x5C, - 0x0A, 0x8B, 0xBF, 0xD7, 0x7A, 0x81, 0x3B, 0x4A, - 0x58, 0xB6, 0x21, 0x1F, 0xC1, 0xBD, 0xB1, 0x77, - 0x72, 0x1C, 0x4D, 0xBC, 0xA5, 0x65, 0xC7, 0xF5, - 0xB4, 0x2D, 0x69, 0x71, 0xE6, 0x8F, 0xBB, 0x03, - 0xAF, 0xD6, 0x08, 0x75, 0xB7, 0x31, 0xF4, 0x2A, - 0x48, 0x70, 0x0C, 0x8D, 0xD1, 0x87, 0x2F, 0x16, - 0x5A, 0x5B, 0x98, 0xA6, 0xC5, 0x99, 0x50, 0x07, - 0xDD, 0x92, 0x25, 0x68, 0x0D, 0xBE, 0x78, 0x0B, - 0xAD, 0x84, 0x6B, 0x19, 0x52, 0x7C, 0xF6, 0xB3, - 0x56, 0x83, 0x88, 0xEE, 0x2C, 0x1B, 0x6E, 0x53, - 0x67, 0xE2, 0x6F, 0x15, 0x06, 0x10, 0x18, 0x85, - 0xF1, 0x6D, 0xF9, 0xC9, 0xAE, 0x3F, 0xB8, 0x95, - 0x35, 0xDF, 0xEF, 0xA7, 0x7F, 0x24, 0xF8, 0xE3, - 0xCF, 0xE9, 0xDB, 0xD3, 0x02, 0x9A, 0x0E, 0x5F -}; - -unsigned char table_63[256] = { - 0x0C, 0x02, 0xEE, 0x94, 0x2D, 0x76, 0x96, 0x75, - 0x21, 0xDC, 0x37, 0x03, 0xC0, 0xF7, 0xDF, 0xEF, - 0xB1, 0x1D, 0xCF, 0x15, 0x5A, 0xB4, 0xCC, 0x81, - 0x89, 0x6B, 0xA5, 0x2E, 0x6D, 0xD4, 0x08, 0x44, - 0x2A, 0x60, 0x50, 0xBF, 0x40, 0x7D, 0x5F, 0x64, - 0x93, 0x70, 0xA4, 0x7F, 0xC9, 0xEB, 0x0A, 0xF8, - 0x9F, 0xA8, 0xBC, 0x25, 0xE5, 0xF3, 0x1B, 0xD7, - 0x29, 0x13, 0x0D, 0x69, 0x20, 0x5C, 0x0F, 0x91, - 0x4F, 0x62, 0x06, 0x26, 0x41, 0xED, 0xDA, 0x53, - 0x65, 0xFF, 0xCD, 0x3F, 0xF6, 0x01, 0xCE, 0xA2, - 0x04, 0xDE, 0x27, 0x87, 0xBA, 0x86, 0x24, 0x78, - 0xAF, 0xE1, 0x3D, 0xD0, 0xC8, 0x1F, 0x4A, 0x2C, - 0x9A, 0xF0, 0xCB, 0xAD, 0x0B, 0x59, 0xC5, 0x58, - 0xEA, 0x8A, 0xA1, 0x45, 0xB7, 0x5D, 0xB5, 0x77, - 0x2B, 0x47, 0x05, 0x00, 0xAC, 0x61, 0xFA, 0x33, - 0x74, 0x31, 0xCA, 0x22, 0x42, 0x8B, 0xFE, 0x09, - 0xB2, 0x6E, 0x1A, 0xBE, 0xAA, 0x7B, 0xEC, 0xF4, - 0x51, 0x66, 0x28, 0x12, 0xFC, 0x5E, 0x67, 0xF5, - 0xB9, 0x82, 0x90, 0x8E, 0x8D, 0x17, 0xE7, 0xE8, - 0xB0, 0xC3, 0x16, 0xA0, 0x4B, 0xB6, 0xFB, 0x7E, - 0xC4, 0x85, 0x4C, 0x1E, 0xC7, 0x39, 0x4E, 0xA9, - 0xE3, 0x4D, 0x32, 0x72, 0x35, 0x80, 0xE0, 0x34, - 0xB8, 0x73, 0x98, 0x49, 0x92, 0x30, 0xD5, 0xD2, - 0xA3, 0x54, 0x7A, 0x84, 0x8F, 0x6C, 0xFD, 0x43, - 0x3A, 0x36, 0x3B, 0xD9, 0x48, 0x6A, 0x14, 0x79, - 0xD1, 0x57, 0x88, 0xDB, 0xE4, 0x9B, 0xF9, 0x99, - 0x10, 0x71, 0xC1, 0x68, 0x9E, 0x11, 0xAB, 0xBD, - 0x7C, 0x3E, 0x3C, 0x18, 0x9D, 0x97, 0xF2, 0xE6, - 0xA6, 0xF1, 0x46, 0xC2, 0x19, 0xBB, 0x52, 0xD8, - 0x95, 0xD3, 0x23, 0xAE, 0x07, 0x2F, 0xE9, 0x63, - 0x1C, 0x55, 0x6F, 0x9C, 0x56, 0x38, 0xC6, 0x5B, - 0x8C, 0xE2, 0x83, 0xA7, 0xD6, 0x0E, 0xB3, 0xDD -}; - -unsigned char table_64[32] = { - 0x03, 0x05, 0x0D, 0x09, 0x1A, 0x16, 0x08, 0x10, - 0x06, 0x1E, 0x1C, 0x15, 0x02, 0x04, 0x17, 0x0C, - 0x18, 0x0B, 0x19, 0x11, 0x1B, 0x14, 0x13, 0x0A, - 0x0E, 0x00, 0x1D, 0x1F, 0x01, 0x0F, 0x07, 0x12 -}; - -unsigned char table_65[32] = { - 0x01, 0x0A, 0x1E, 0x14, 0x10, 0x1D, 0x0D, 0x17, - 0x0E, 0x0C, 0x0F, 0x12, 0x04, 0x1A, 0x05, 0x02, - 0x08, 0x1C, 0x09, 0x1F, 0x0B, 0x13, 0x19, 0x1B, - 0x11, 0x00, 0x16, 0x06, 0x03, 0x18, 0x15, 0x07 -}; - -unsigned char table_66[32] = { - 0x1C, 0x18, 0x0C, 0x09, 0x05, 0x03, 0x15, 0x12, - 0x0D, 0x02, 0x08, 0x0E, 0x19, 0x07, 0x13, 0x17, - 0x1E, 0x1D, 0x1F, 0x11, 0x06, 0x0A, 0x0B, 0x14, - 0x0F, 0x10, 0x01, 0x1B, 0x00, 0x04, 0x1A, 0x16 -}; - -unsigned char table_67[256] = { - 0x6B, 0x49, 0xC8, 0x86, 0xFF, 0xC0, 0x5D, 0xEF, - 0xF7, 0x06, 0xE0, 0x98, 0xA9, 0x72, 0x71, 0xD5, - 0xBA, 0x7F, 0x10, 0xD1, 0xBE, 0x41, 0x9C, 0x40, - 0x28, 0x8E, 0xE5, 0x74, 0x47, 0x9E, 0x3E, 0x7C, - 0xB5, 0xCD, 0x3F, 0x20, 0xF2, 0xA6, 0xDC, 0x97, - 0x32, 0x6D, 0x52, 0xF5, 0x16, 0x05, 0xFE, 0x04, - 0x3D, 0x53, 0x50, 0x23, 0x39, 0x77, 0x08, 0x60, - 0x75, 0x18, 0x4A, 0xC6, 0xBB, 0xE7, 0xF1, 0xAB, - 0xEB, 0x88, 0xB6, 0x82, 0x6E, 0x91, 0xF3, 0x34, - 0x3A, 0x42, 0x1A, 0xDF, 0xA1, 0xB3, 0x92, 0xBF, - 0xB7, 0x00, 0xD4, 0xDE, 0x31, 0xF0, 0x1C, 0xDA, - 0x4F, 0x61, 0x67, 0x2C, 0x07, 0xF9, 0x15, 0xA4, - 0x7A, 0x26, 0x45, 0x2A, 0x12, 0x9F, 0xF4, 0x14, - 0x8C, 0x90, 0xFC, 0xC5, 0x4B, 0x87, 0xE2, 0xC7, - 0xD0, 0x8A, 0xE8, 0xDD, 0xEE, 0x3C, 0x2F, 0x22, - 0x6A, 0x54, 0x37, 0x9B, 0x84, 0x25, 0x8F, 0xE3, - 0xD7, 0xD8, 0x4E, 0xAD, 0x0F, 0x4C, 0x56, 0xA2, - 0xD3, 0xB0, 0x73, 0x0B, 0xAE, 0xEA, 0x1D, 0x01, - 0x36, 0xB4, 0x2D, 0xC4, 0x19, 0x58, 0x1E, 0x62, - 0xE9, 0xB2, 0x5B, 0x5A, 0xBD, 0xD6, 0x65, 0x94, - 0x9A, 0x55, 0xCC, 0x99, 0x1B, 0x85, 0x2B, 0xBC, - 0x8D, 0x46, 0x81, 0xB8, 0xA3, 0x29, 0x5F, 0x35, - 0x5C, 0xB1, 0x1F, 0x13, 0x17, 0xCB, 0x51, 0x02, - 0x09, 0x7E, 0xA7, 0x69, 0x6F, 0x95, 0x30, 0x7B, - 0xCA, 0x48, 0xAF, 0xAA, 0x0E, 0x44, 0x38, 0xB9, - 0x0D, 0x11, 0xA0, 0xD9, 0x0C, 0xDB, 0xF8, 0x68, - 0x33, 0x79, 0x59, 0x66, 0x4D, 0x03, 0xE1, 0x89, - 0xE4, 0x3B, 0x78, 0xC2, 0x64, 0x6C, 0x27, 0xC9, - 0xCF, 0xAC, 0xED, 0xFA, 0x5E, 0x2E, 0x76, 0x57, - 0x93, 0xEC, 0x80, 0xA8, 0xE6, 0xCE, 0xC1, 0xA5, - 0x9D, 0xD2, 0xC3, 0x0A, 0x7D, 0x70, 0xF6, 0x63, - 0x24, 0x43, 0x21, 0x83, 0xFB, 0xFD, 0x8B, 0x96 -}; - -unsigned char table_68[256] = { - 0x93, 0xFF, 0x83, 0x70, 0x12, 0x2D, 0x1C, 0xD6, - 0xF9, 0xEE, 0xCF, 0x94, 0x7B, 0xB5, 0xA4, 0x84, - 0x99, 0xF7, 0x67, 0x32, 0xFC, 0x8A, 0xE3, 0xE4, - 0xCE, 0xC6, 0x77, 0x7E, 0xDA, 0x42, 0x85, 0xF0, - 0x7D, 0x48, 0x28, 0x79, 0xDE, 0x5B, 0xE2, 0x0F, - 0x75, 0xC5, 0x2C, 0x4F, 0xF3, 0xEC, 0x14, 0x10, - 0x9C, 0x6E, 0x59, 0x4A, 0x20, 0x34, 0xA3, 0x89, - 0xE0, 0x4E, 0x52, 0x88, 0x81, 0x5F, 0x6F, 0x71, - 0x17, 0x3B, 0x21, 0xB4, 0xCB, 0x9B, 0x18, 0x13, - 0xE8, 0xE1, 0x02, 0x2E, 0xED, 0x00, 0xA7, 0x1B, - 0x06, 0xF4, 0x27, 0xDC, 0x35, 0x2F, 0x08, 0x9D, - 0x7C, 0xC0, 0x36, 0xA6, 0x6B, 0xDF, 0x4C, 0xBC, - 0xFE, 0xDB, 0xA5, 0xA8, 0x8D, 0x73, 0x7F, 0xC7, - 0x8E, 0x60, 0x31, 0x61, 0x4B, 0x29, 0xD7, 0xE9, - 0xBD, 0xAB, 0xCC, 0xFA, 0xD9, 0xEF, 0xC2, 0xD4, - 0x19, 0x11, 0x15, 0xC9, 0xB1, 0xD5, 0x64, 0x97, - 0xE7, 0x8F, 0x05, 0x44, 0xF8, 0xF1, 0x58, 0x47, - 0x2A, 0x03, 0x1F, 0xAF, 0x0D, 0x04, 0x23, 0xB8, - 0x24, 0x51, 0xB2, 0x54, 0x41, 0x53, 0x5C, 0xAE, - 0xB7, 0xB3, 0xB6, 0x3D, 0x37, 0x39, 0x55, 0xBF, - 0x0B, 0x7A, 0x57, 0x3C, 0x0E, 0x40, 0x6A, 0xF5, - 0x72, 0xDD, 0xBB, 0x8B, 0xAA, 0x46, 0xA0, 0x30, - 0x56, 0x78, 0x38, 0xBA, 0x9E, 0x92, 0x87, 0xFB, - 0x66, 0x90, 0x1E, 0xB9, 0x96, 0x65, 0xA2, 0x50, - 0x1D, 0xC3, 0x26, 0x22, 0xD0, 0x0A, 0x43, 0xF2, - 0xB0, 0xEB, 0xAC, 0x62, 0x98, 0x3F, 0xD3, 0x69, - 0xA1, 0x9F, 0x16, 0x95, 0xE6, 0xF6, 0x2B, 0x25, - 0x1A, 0xD2, 0xBE, 0x09, 0x5D, 0x45, 0xC4, 0xFD, - 0x5A, 0x07, 0x0C, 0x82, 0x3E, 0x49, 0x74, 0x6C, - 0x68, 0x5E, 0xCA, 0xEA, 0xCD, 0x9A, 0xAD, 0xD1, - 0x33, 0x86, 0x76, 0x80, 0xE5, 0xC8, 0xD8, 0xA9, - 0x8C, 0x6D, 0x91, 0x63, 0x3A, 0x4D, 0xC1, 0x01 -}; - -unsigned char table_69[256] = { - 0x21, 0x6B, 0x9B, 0xAE, 0x11, 0x5A, 0x91, 0xC2, - 0x47, 0x8E, 0x87, 0x86, 0x4F, 0xFC, 0x8F, 0x66, - 0x97, 0x2F, 0x61, 0x9C, 0x5B, 0x4C, 0xB3, 0x14, - 0x77, 0x48, 0x62, 0xE1, 0x54, 0x64, 0xDD, 0xCD, - 0x30, 0xB7, 0x2D, 0xD2, 0xC3, 0xC0, 0x0B, 0xD8, - 0x53, 0x98, 0x16, 0x56, 0x7A, 0x35, 0x50, 0xD9, - 0xE8, 0x2C, 0x32, 0x55, 0x17, 0x5D, 0x79, 0xEB, - 0xC8, 0x75, 0x67, 0xE2, 0x4B, 0xBA, 0xFE, 0x57, - 0x10, 0xF4, 0x70, 0x2A, 0xBB, 0xA6, 0x72, 0x36, - 0xAF, 0x8D, 0xAB, 0x90, 0xE3, 0x2B, 0xB2, 0x26, - 0x93, 0x01, 0xBD, 0x71, 0xF9, 0x05, 0xC7, 0x80, - 0x29, 0xCC, 0x3B, 0x22, 0xF2, 0x12, 0x81, 0x34, - 0xF6, 0x1A, 0x8B, 0xDF, 0x28, 0x46, 0x9E, 0x6A, - 0x23, 0x85, 0x74, 0xE7, 0xE6, 0x52, 0xA0, 0x49, - 0xF0, 0x19, 0x25, 0xAC, 0x78, 0x42, 0xD6, 0xA2, - 0x37, 0x65, 0x4D, 0x94, 0x02, 0x6F, 0xB4, 0xC6, - 0x99, 0xD3, 0x9A, 0x33, 0xB8, 0x00, 0xCA, 0xE4, - 0x45, 0xAD, 0x1B, 0x6C, 0x03, 0xA8, 0x07, 0x8A, - 0x60, 0x69, 0xFF, 0xF7, 0xA7, 0x27, 0x95, 0xF5, - 0x82, 0xCB, 0xEC, 0xED, 0x4E, 0xFB, 0xA4, 0x59, - 0xDA, 0xCF, 0x2E, 0x20, 0xFA, 0x31, 0xD1, 0xEA, - 0x4A, 0xE9, 0x5E, 0xA9, 0xA1, 0x08, 0x1C, 0x96, - 0x38, 0xB9, 0xEE, 0x7F, 0xAA, 0xF1, 0x7D, 0x3A, - 0xA5, 0x43, 0xC5, 0xE0, 0x24, 0x39, 0x0D, 0xDE, - 0xB0, 0xF8, 0xBE, 0x58, 0x7E, 0x51, 0xD4, 0x89, - 0x15, 0x40, 0x3E, 0xB1, 0x1F, 0x5F, 0x68, 0x63, - 0x84, 0x3D, 0x88, 0xBC, 0x41, 0xEF, 0xB5, 0xBF, - 0x06, 0x6E, 0x9D, 0x3F, 0x0E, 0x76, 0x5C, 0xDC, - 0x13, 0xF3, 0xE5, 0x8C, 0x7C, 0x04, 0x0A, 0xD5, - 0x18, 0xC4, 0x44, 0x09, 0xC9, 0x1D, 0x9F, 0xFD, - 0xD0, 0x0F, 0x6D, 0xD7, 0x92, 0x7B, 0x0C, 0xA3, - 0x73, 0xDB, 0xB6, 0x83, 0xCE, 0x1E, 0xC1, 0x3C -}; - -unsigned char table_70[256] = { - 0x54, 0x23, 0xF1, 0x09, 0x9D, 0xEB, 0x26, 0xD9, - 0x6C, 0xC1, 0xBC, 0x3D, 0x6E, 0xB0, 0x5F, 0xE2, - 0x59, 0x4D, 0x95, 0xFA, 0xD8, 0x29, 0xAA, 0x8E, - 0xF5, 0xEF, 0x43, 0x76, 0xFD, 0x0D, 0x4F, 0xAD, - 0xB7, 0xFC, 0xA8, 0x9F, 0x62, 0xC2, 0x7B, 0x10, - 0x0B, 0xF2, 0x73, 0xA9, 0x46, 0x4C, 0x53, 0xD7, - 0x0A, 0x50, 0x89, 0x63, 0x48, 0xD6, 0xA2, 0x44, - 0xE6, 0x8D, 0x69, 0x2C, 0xF9, 0xC0, 0x35, 0x06, - 0x66, 0x21, 0x9E, 0xD2, 0x98, 0xF7, 0x9B, 0xE7, - 0x12, 0xB8, 0xA5, 0xBA, 0xE0, 0x79, 0x71, 0x7E, - 0x8C, 0x24, 0xED, 0x7C, 0x60, 0x81, 0xC3, 0x5C, - 0x2B, 0xE5, 0xEE, 0xB5, 0xA4, 0x05, 0x03, 0x34, - 0x16, 0x2A, 0xA3, 0x2D, 0x3F, 0xDF, 0x07, 0x5B, - 0xAE, 0x47, 0x61, 0x08, 0x18, 0xDB, 0x6D, 0x3C, - 0x96, 0xD5, 0xAB, 0x78, 0x94, 0x45, 0x20, 0x9A, - 0xE4, 0x13, 0x68, 0xDD, 0xDE, 0x31, 0x14, 0x57, - 0x02, 0x52, 0x56, 0x1C, 0x1B, 0xE9, 0xD0, 0xA1, - 0x22, 0x64, 0xB2, 0x7A, 0xCF, 0x5D, 0x00, 0x0F, - 0xF8, 0x5E, 0x36, 0x58, 0x40, 0xAF, 0x19, 0x32, - 0x2E, 0xB3, 0x72, 0xBE, 0xB9, 0xD3, 0xCD, 0x7D, - 0x4A, 0x1D, 0x33, 0x2F, 0xAC, 0x27, 0x41, 0xE8, - 0x55, 0xCB, 0x0E, 0x5A, 0x77, 0xFB, 0x8B, 0x86, - 0x75, 0x8A, 0x51, 0xEC, 0xDA, 0xC6, 0xA6, 0xCC, - 0x91, 0x4B, 0x11, 0xF6, 0xEA, 0xD1, 0xB6, 0x4E, - 0x82, 0x04, 0x92, 0x30, 0xF4, 0x25, 0x88, 0x1E, - 0x9C, 0xA0, 0xC8, 0x6A, 0x93, 0x87, 0x1F, 0xB4, - 0xB1, 0x8F, 0x65, 0xCA, 0xFE, 0xFF, 0x97, 0x15, - 0x99, 0x28, 0x80, 0x42, 0x70, 0x85, 0x0C, 0x3B, - 0xBD, 0xE1, 0xA7, 0x17, 0xC9, 0x3A, 0xBB, 0x6B, - 0x37, 0xF0, 0xC5, 0x39, 0x6F, 0x01, 0x83, 0x67, - 0x74, 0xCE, 0xDC, 0x90, 0x3E, 0xF3, 0x7F, 0xC4, - 0x49, 0x84, 0x38, 0xC7, 0xE3, 0xD4, 0x1A, 0xBF -}; - -unsigned char table_71[32] = { - 0x17, 0x13, 0x0E, 0x1A, 0x0D, 0x18, 0x19, 0x10, - 0x14, 0x11, 0x16, 0x05, 0x04, 0x00, 0x12, 0x0A, - 0x02, 0x07, 0x03, 0x0B, 0x09, 0x1F, 0x1C, 0x0F, - 0x0C, 0x06, 0x1B, 0x08, 0x1D, 0x01, 0x15, 0x1E -}; - -unsigned char table_72[256] = { - 0xC9, 0xA7, 0x1B, 0xEC, 0x2B, 0x8B, 0xB0, 0xEB, - 0x7F, 0x39, 0x25, 0xD9, 0x1D, 0xD5, 0x67, 0xA0, - 0xB3, 0xAC, 0x3B, 0xC8, 0x82, 0xC0, 0xE3, 0x9E, - 0x4C, 0x9B, 0xAF, 0xFD, 0x91, 0x86, 0x5F, 0x92, - 0xB4, 0x42, 0x3C, 0x45, 0x12, 0xC4, 0xE2, 0xE1, - 0x6C, 0x1F, 0xC6, 0x40, 0x93, 0x2A, 0xC2, 0x72, - 0x2E, 0x14, 0x51, 0xA5, 0x70, 0xBD, 0xA2, 0xC7, - 0x7D, 0xF1, 0x9F, 0x64, 0xC1, 0xF7, 0x80, 0xFF, - 0x50, 0x49, 0x8C, 0x66, 0x13, 0x48, 0x6A, 0x0A, - 0x26, 0x94, 0x83, 0x1E, 0x84, 0xBB, 0x57, 0x27, - 0x44, 0x5B, 0x62, 0xF6, 0x09, 0x4F, 0x77, 0x76, - 0x2D, 0x7E, 0xCD, 0x0B, 0x24, 0xFE, 0x81, 0xB8, - 0x21, 0x85, 0xCF, 0xA8, 0x75, 0x56, 0x37, 0x17, - 0xAA, 0x23, 0xE5, 0xE8, 0x9A, 0x9D, 0x2F, 0x04, - 0x31, 0x4A, 0x7C, 0xFC, 0xD6, 0xE4, 0x29, 0xC3, - 0xFB, 0x36, 0x1C, 0x0C, 0xCE, 0xEE, 0x0D, 0xF3, - 0x46, 0xF8, 0x41, 0x0E, 0x68, 0xAB, 0x2C, 0x69, - 0x96, 0x90, 0x28, 0xED, 0x02, 0x63, 0x07, 0xAD, - 0xB2, 0xDC, 0x05, 0xE6, 0x78, 0x03, 0xA4, 0x7A, - 0x5C, 0x52, 0x95, 0x5D, 0x88, 0x01, 0xDF, 0x35, - 0x5E, 0xB6, 0x06, 0x4D, 0x15, 0x89, 0x59, 0x3F, - 0xF0, 0xA1, 0xA3, 0x99, 0x19, 0xEA, 0xDB, 0xE0, - 0x6B, 0x71, 0x6E, 0xB7, 0x65, 0x54, 0x9C, 0xBC, - 0x98, 0xDD, 0x4B, 0x60, 0x3D, 0xBF, 0xF5, 0xD1, - 0xD7, 0xF9, 0x55, 0x61, 0xA9, 0xB1, 0x6D, 0xDE, - 0x79, 0xAE, 0x1A, 0x34, 0x3A, 0x4E, 0xCB, 0x38, - 0xBA, 0x97, 0x00, 0x74, 0xEF, 0xD8, 0x18, 0x33, - 0x7B, 0xFA, 0x22, 0x32, 0x20, 0xCA, 0x8A, 0xBE, - 0xA6, 0x43, 0x11, 0x10, 0xD0, 0xD3, 0x87, 0x73, - 0x6F, 0xF4, 0x8D, 0xCC, 0x30, 0x0F, 0x16, 0xDA, - 0xB5, 0xC5, 0xD4, 0x47, 0x8E, 0xE7, 0x58, 0x8F, - 0x08, 0x53, 0xF2, 0xB9, 0x5A, 0x3E, 0xE9, 0xD2 -}; - -unsigned char table_73[256] = { - 0x36, 0x37, 0xED, 0xD8, 0xBF, 0xD7, 0x12, 0xB7, - 0x40, 0x32, 0x19, 0x4A, 0x44, 0x2A, 0xCE, 0xA5, - 0x29, 0x13, 0x43, 0x51, 0x5C, 0xD0, 0x76, 0x6E, - 0x41, 0xD6, 0xE2, 0x4F, 0xB8, 0x27, 0x2E, 0xCF, - 0xD9, 0xE0, 0x69, 0xC0, 0x59, 0x77, 0x62, 0x6F, - 0x53, 0xE7, 0x93, 0xD4, 0xAD, 0xC8, 0x4C, 0xC2, - 0x2C, 0xBE, 0xAA, 0xA0, 0x22, 0x78, 0x14, 0xB3, - 0xB0, 0xEA, 0xBA, 0x9A, 0x33, 0x1B, 0x31, 0x6C, - 0xFC, 0x0A, 0x0B, 0xA1, 0xE4, 0x75, 0x7C, 0xE3, - 0x65, 0x21, 0xA9, 0xA4, 0x4E, 0x3C, 0x5F, 0x39, - 0x74, 0xA2, 0x9E, 0x03, 0x70, 0xD2, 0xFD, 0x1D, - 0x25, 0x72, 0x73, 0x8E, 0x7B, 0xB2, 0x6A, 0x92, - 0x81, 0xF3, 0xF0, 0x46, 0x08, 0x85, 0xE6, 0x30, - 0x05, 0x7E, 0xEC, 0x0D, 0xDD, 0x42, 0x2F, 0x5B, - 0xB9, 0xCB, 0x84, 0x0C, 0x16, 0xC7, 0x24, 0xFA, - 0xF9, 0x8F, 0x20, 0xAC, 0x10, 0x55, 0xC3, 0x1A, - 0x8B, 0x94, 0x3D, 0xDB, 0xC9, 0x04, 0xB5, 0xCC, - 0xC6, 0x98, 0xB6, 0x8D, 0x0F, 0x3A, 0x06, 0x4B, - 0xEF, 0x35, 0x68, 0x3F, 0xEE, 0xE5, 0x63, 0xC5, - 0x60, 0x88, 0x52, 0x2D, 0x6D, 0xAB, 0xCD, 0xC4, - 0x1F, 0xF4, 0xCA, 0x67, 0x7D, 0x1C, 0xDA, 0x34, - 0xDE, 0x86, 0xAE, 0xF1, 0x61, 0x09, 0xF5, 0xF6, - 0x49, 0xE9, 0xF2, 0x48, 0x1E, 0xD3, 0x56, 0x18, - 0x9B, 0xB1, 0x57, 0x9D, 0xBB, 0x5E, 0xAF, 0x87, - 0x9F, 0x8A, 0xC1, 0x79, 0xA7, 0xA8, 0xFB, 0xDC, - 0x47, 0x3E, 0x97, 0x80, 0x91, 0xA6, 0x7A, 0xA3, - 0x9C, 0x11, 0x02, 0x2B, 0x58, 0xD1, 0xF7, 0x00, - 0x83, 0x01, 0xE8, 0xFE, 0x50, 0x23, 0x66, 0x4D, - 0xD5, 0x82, 0x89, 0x3B, 0xEB, 0xE1, 0xF8, 0x5A, - 0x15, 0x7F, 0x8C, 0x17, 0x96, 0x28, 0x5D, 0x64, - 0x26, 0x38, 0x71, 0x0E, 0x45, 0xDF, 0xB4, 0x99, - 0xFF, 0x90, 0x6B, 0xBC, 0x54, 0x95, 0xBD, 0x07 -}; - -unsigned char table_74[256] = { - 0xA7, 0xCF, 0x99, 0x1A, 0x13, 0xC7, 0xE9, 0xC4, - 0xB6, 0x0E, 0x15, 0x09, 0xFF, 0xDF, 0xBE, 0x03, - 0xAD, 0xF1, 0xB0, 0x3C, 0x4A, 0x9B, 0xF5, 0x12, - 0xA1, 0x2C, 0xDB, 0x51, 0x5E, 0x6F, 0xE6, 0x49, - 0x27, 0xBB, 0xAE, 0x56, 0xC0, 0x0C, 0x77, 0x60, - 0x5B, 0x69, 0xA2, 0xF0, 0x24, 0x8E, 0xE1, 0xA4, - 0xBC, 0x9F, 0x50, 0xD4, 0x61, 0x19, 0x67, 0x00, - 0x7B, 0xAB, 0xDD, 0x26, 0xCD, 0x6C, 0xE8, 0xA8, - 0x7A, 0x93, 0xEF, 0x20, 0x52, 0x1F, 0x1B, 0x46, - 0x25, 0x3B, 0x1E, 0x65, 0xC2, 0xF9, 0x10, 0xB2, - 0xB3, 0xD9, 0x21, 0xD2, 0x11, 0x94, 0xE2, 0xFC, - 0x38, 0x9E, 0x36, 0x87, 0xAA, 0x53, 0x45, 0x68, - 0x2B, 0xE7, 0x07, 0xFA, 0xD3, 0x8D, 0x3F, 0x17, - 0xC1, 0x06, 0x72, 0x62, 0x8C, 0x55, 0x73, 0x8A, - 0xC9, 0x2E, 0x5A, 0x7D, 0x02, 0x6D, 0xF8, 0x4B, - 0xE4, 0xBF, 0xEC, 0xB7, 0x31, 0xDC, 0xF4, 0xB8, - 0x47, 0x64, 0x0A, 0x33, 0x48, 0xAC, 0xFB, 0x05, - 0x3E, 0x34, 0x1C, 0x97, 0x1D, 0x63, 0x37, 0x2D, - 0xB1, 0x92, 0xED, 0x9D, 0x4C, 0xD5, 0x4E, 0x9A, - 0x0D, 0x79, 0x0F, 0xBD, 0x95, 0xBA, 0x08, 0x2A, - 0xC6, 0x7E, 0x88, 0xCB, 0xA6, 0x29, 0x70, 0x35, - 0x66, 0xCA, 0x89, 0x75, 0x6A, 0x4F, 0xB5, 0x6B, - 0x74, 0xDE, 0x01, 0x04, 0x81, 0x91, 0x90, 0x18, - 0x32, 0x0B, 0x7F, 0x44, 0xB4, 0xAF, 0xF2, 0xEB, - 0x22, 0xFD, 0x14, 0xA0, 0xFE, 0x8B, 0xB9, 0x16, - 0x86, 0xE3, 0xD7, 0xDA, 0xC5, 0x3A, 0x41, 0x83, - 0xD1, 0x28, 0x54, 0x30, 0xE0, 0x40, 0xA5, 0x57, - 0x8F, 0x84, 0xD6, 0x96, 0x39, 0xE5, 0x42, 0x80, - 0xA9, 0x58, 0xCE, 0x5D, 0xEE, 0x5F, 0xA3, 0xD0, - 0xC8, 0x59, 0x43, 0x4D, 0x5C, 0xF7, 0xCC, 0x76, - 0x6E, 0xF3, 0x23, 0x3D, 0x85, 0x82, 0x78, 0xF6, - 0x2F, 0xD8, 0xC3, 0x7C, 0x9C, 0x98, 0xEA, 0x71 -}; - -unsigned char table_75[256] = { - 0xE7, 0xA5, 0x30, 0xE1, 0x9D, 0x81, 0xBE, 0x83, - 0xB2, 0x1E, 0xE4, 0x69, 0x2F, 0x2B, 0x0D, 0xEB, - 0x7C, 0x59, 0x2D, 0xAA, 0x01, 0x0C, 0xDB, 0xED, - 0xC4, 0xEE, 0x5D, 0x38, 0x72, 0xD8, 0x70, 0xCE, - 0x0B, 0xF6, 0x7F, 0x48, 0x26, 0x9E, 0xA3, 0x44, - 0xD6, 0xCF, 0x0F, 0x6B, 0xFD, 0x23, 0x98, 0xAB, - 0x11, 0xD4, 0x92, 0x91, 0x5E, 0x08, 0x4D, 0xC6, - 0xF0, 0xA8, 0x7E, 0x8A, 0x1D, 0xA1, 0x97, 0x76, - 0x3E, 0x64, 0x07, 0x24, 0xDE, 0x75, 0xA4, 0xCC, - 0x1A, 0x04, 0x4B, 0x6C, 0xFA, 0xB0, 0xC7, 0x35, - 0xE2, 0x56, 0x61, 0xA0, 0xE9, 0x27, 0xDF, 0xC3, - 0xE5, 0xF4, 0x8D, 0xB4, 0xD3, 0x52, 0xD7, 0x49, - 0xCD, 0x31, 0x6E, 0x3F, 0x4E, 0x6A, 0x5B, 0x65, - 0xCA, 0x14, 0x71, 0x53, 0xD9, 0x47, 0x28, 0x7D, - 0x17, 0x06, 0x5C, 0xFE, 0xBA, 0xB8, 0xAC, 0x15, - 0xE8, 0xE0, 0x9A, 0xDD, 0x1F, 0xBC, 0x95, 0x42, - 0xCB, 0x58, 0x00, 0x85, 0xD5, 0x62, 0xC9, 0xB6, - 0x05, 0x80, 0x4C, 0x3C, 0x1C, 0xF5, 0x03, 0xF8, - 0x96, 0x77, 0x02, 0x19, 0xF2, 0xFB, 0x5F, 0xC2, - 0xAE, 0x60, 0x1B, 0xAD, 0x8F, 0xC1, 0x33, 0xA6, - 0x20, 0xBF, 0xA7, 0xC8, 0x74, 0x18, 0x90, 0xE3, - 0x68, 0x09, 0x7A, 0x79, 0xB5, 0xDA, 0xF3, 0x0E, - 0x66, 0x84, 0xB3, 0xBB, 0xE6, 0xF7, 0xB7, 0x7B, - 0x39, 0x4A, 0x12, 0x4F, 0xC5, 0x41, 0x54, 0xD0, - 0xFF, 0x87, 0x63, 0x40, 0x99, 0x21, 0x29, 0xD2, - 0x3D, 0x37, 0x3A, 0x93, 0xFC, 0x25, 0xF1, 0xD1, - 0x2C, 0x6D, 0x8C, 0x5A, 0x8E, 0x9B, 0xBD, 0xAF, - 0x10, 0x55, 0xF9, 0x9F, 0x43, 0x0A, 0x50, 0x16, - 0x57, 0xB1, 0xC0, 0x73, 0x82, 0xEF, 0x88, 0x6F, - 0xEA, 0x2A, 0xEC, 0x2E, 0x86, 0x45, 0x51, 0x22, - 0xA9, 0x34, 0x94, 0x3B, 0xB9, 0x9C, 0xA2, 0x13, - 0x89, 0x46, 0x78, 0xDC, 0x32, 0x8B, 0x67, 0x36 -}; - -unsigned char table_76[256] = { - 0x3D, 0x66, 0x40, 0xC5, 0x1D, 0xF5, 0xE7, 0xB7, - 0x2C, 0x23, 0x09, 0xC2, 0x68, 0xE6, 0xD3, 0x8D, - 0x35, 0x94, 0x93, 0xF0, 0x43, 0x97, 0x2B, 0x4B, - 0x1A, 0xEB, 0x00, 0x4C, 0x6F, 0xE4, 0x92, 0xEA, - 0xB8, 0xA3, 0xA6, 0xEC, 0x11, 0x5E, 0x61, 0x81, - 0xE1, 0x48, 0xC9, 0xCB, 0xDB, 0x2E, 0x3B, 0xED, - 0x36, 0x52, 0x3A, 0xD2, 0x4F, 0x4E, 0x22, 0x96, - 0x57, 0x2D, 0x62, 0x53, 0xCF, 0xD9, 0x5B, 0x9F, - 0x8E, 0x78, 0xC6, 0x07, 0x7D, 0xA1, 0x02, 0xB4, - 0xF4, 0xB6, 0x34, 0x98, 0xDA, 0xA9, 0xD4, 0x54, - 0x99, 0x82, 0x0A, 0xD8, 0x88, 0x5D, 0x3C, 0xD0, - 0xAB, 0x31, 0xFB, 0x03, 0x17, 0x46, 0xE8, 0xE2, - 0xA4, 0xFF, 0xB0, 0xAA, 0xAD, 0x7C, 0x55, 0x49, - 0x75, 0x6B, 0x10, 0x24, 0xC0, 0x04, 0xB1, 0xBF, - 0x6A, 0xF6, 0x15, 0xEF, 0x5C, 0x60, 0x27, 0x3E, - 0x38, 0x63, 0xC1, 0x76, 0xFD, 0x84, 0xE0, 0xCD, - 0xFE, 0x30, 0xCE, 0xBB, 0xDC, 0x1E, 0x1B, 0xBC, - 0xB5, 0xE9, 0x9E, 0x8F, 0x0D, 0x3F, 0x91, 0x19, - 0x28, 0x37, 0x26, 0x42, 0x08, 0x9A, 0x0C, 0x83, - 0x90, 0x6D, 0x74, 0x65, 0xF2, 0x4A, 0xDE, 0x8B, - 0x67, 0x0E, 0x8C, 0x5F, 0xF9, 0x7F, 0x5A, 0x86, - 0x69, 0x45, 0x44, 0xD5, 0xF7, 0xE5, 0x8A, 0xA8, - 0xC8, 0x7E, 0x05, 0x64, 0xEE, 0x79, 0xBE, 0x7A, - 0x14, 0xD6, 0x50, 0x18, 0x25, 0xBD, 0x85, 0xE3, - 0xA2, 0x70, 0xCC, 0x59, 0x71, 0x77, 0xFA, 0x47, - 0x9B, 0x1F, 0x9D, 0xBA, 0x29, 0x4D, 0xF8, 0xDF, - 0xC4, 0x72, 0x2F, 0xAE, 0x06, 0x51, 0x41, 0xAF, - 0xF3, 0xDD, 0x87, 0xB2, 0x9C, 0xC7, 0x12, 0x16, - 0x20, 0xA7, 0x21, 0x73, 0xF1, 0x58, 0xD7, 0x7B, - 0xB9, 0xB3, 0x32, 0x01, 0x80, 0x1C, 0x39, 0x0B, - 0x13, 0x56, 0x6C, 0x89, 0x33, 0x6E, 0x2A, 0xA5, - 0xD1, 0x95, 0xC3, 0xA0, 0x0F, 0xCA, 0xAC, 0xFC -}; - -unsigned char table_77[32] = { - 0x1C, 0x0D, 0x1E, 0x01, 0x06, 0x16, 0x18, 0x17, - 0x0B, 0x1F, 0x04, 0x0F, 0x00, 0x19, 0x08, 0x0A, - 0x11, 0x03, 0x05, 0x07, 0x09, 0x0C, 0x15, 0x14, - 0x1A, 0x12, 0x13, 0x0E, 0x1D, 0x10, 0x02, 0x1B -}; - -unsigned char table_78[32] = { - 0x0E, 0x02, 0x17, 0x12, 0x1E, 0x09, 0x15, 0x03, - 0x01, 0x0B, 0x0F, 0x11, 0x10, 0x0A, 0x16, 0x06, - 0x07, 0x00, 0x1C, 0x1D, 0x1F, 0x0C, 0x18, 0x04, - 0x13, 0x0D, 0x1B, 0x08, 0x19, 0x14, 0x05, 0x1A -}; - -unsigned char table_79[32] = { - 0x12, 0x0B, 0x11, 0x01, 0x07, 0x0E, 0x1A, 0x0D, - 0x1E, 0x18, 0x14, 0x1F, 0x0A, 0x17, 0x19, 0x1B, - 0x00, 0x10, 0x0C, 0x08, 0x13, 0x02, 0x0F, 0x1D, - 0x09, 0x06, 0x04, 0x16, 0x15, 0x1C, 0x05, 0x03 -}; - -unsigned char table_80[256] = { - 0x14, 0xE7, 0x31, 0x0F, 0xD1, 0x5F, 0xED, 0x1E, - 0xA6, 0x77, 0x20, 0x57, 0x34, 0x64, 0x33, 0x0B, - 0x5A, 0xB4, 0x83, 0x62, 0xFD, 0x8E, 0xE4, 0xF3, - 0xBD, 0xA5, 0xC8, 0x6D, 0x3E, 0x4F, 0x01, 0x7A, - 0xD3, 0x45, 0x3C, 0xF2, 0x68, 0xFF, 0xE6, 0x84, - 0xC2, 0xC1, 0x53, 0x72, 0x8C, 0xA1, 0xC7, 0x00, - 0x89, 0x97, 0x69, 0xA4, 0xF8, 0xAA, 0xAD, 0x8F, - 0x24, 0xC6, 0x9A, 0xAC, 0xE5, 0xAB, 0x6B, 0x79, - 0x99, 0x60, 0x28, 0x2B, 0x3B, 0xAF, 0x1C, 0x80, - 0xA3, 0x8A, 0x1A, 0xB5, 0xE1, 0x9F, 0xDA, 0x78, - 0xD7, 0xC4, 0x87, 0x5D, 0xE9, 0x27, 0xFB, 0x18, - 0x94, 0x3A, 0xCE, 0x3F, 0xF6, 0x12, 0x75, 0x37, - 0x6E, 0x9E, 0x29, 0x6C, 0xF7, 0x7D, 0x92, 0x08, - 0x42, 0xB2, 0xBF, 0x0C, 0xB6, 0x25, 0xE0, 0x49, - 0x43, 0x91, 0x98, 0xBB, 0xDC, 0x63, 0xEA, 0xA8, - 0x74, 0x38, 0x35, 0xCD, 0x07, 0x70, 0x81, 0x41, - 0xC9, 0x51, 0xBC, 0xA9, 0x59, 0xD4, 0xB8, 0x2C, - 0x7C, 0x2D, 0xB3, 0x6F, 0x11, 0x86, 0x9D, 0x46, - 0xF0, 0x65, 0x76, 0x04, 0x0E, 0xCA, 0xBE, 0x5C, - 0xF9, 0x71, 0x9C, 0x21, 0x4C, 0x02, 0xFE, 0x8D, - 0xD5, 0x26, 0x40, 0xC3, 0x32, 0x9B, 0xB0, 0x5E, - 0x48, 0xC5, 0x85, 0x4B, 0x0A, 0xCC, 0x58, 0x52, - 0x61, 0x13, 0xEF, 0x4A, 0xEE, 0x03, 0xD9, 0xDE, - 0xA7, 0x19, 0x09, 0x7F, 0x5B, 0x96, 0xBA, 0x0D, - 0xCF, 0xD2, 0x06, 0x1F, 0xD8, 0xDB, 0xEC, 0xA0, - 0xDD, 0x66, 0x10, 0xA2, 0xDF, 0x30, 0xF4, 0x88, - 0xCB, 0x36, 0x82, 0xE3, 0x73, 0x17, 0x55, 0x15, - 0xF5, 0xB7, 0x23, 0xB1, 0xD6, 0xE2, 0x47, 0x7E, - 0x67, 0xE8, 0x1D, 0x16, 0x8B, 0xEB, 0xD0, 0x3D, - 0x6A, 0x54, 0x2A, 0x4E, 0x93, 0xFA, 0x44, 0x05, - 0x2F, 0x50, 0x2E, 0x95, 0xAE, 0x1B, 0x56, 0x7B, - 0x39, 0xB9, 0xC0, 0x22, 0xF1, 0x4D, 0x90, 0xFC -}; - -unsigned char table_81[32] = { - 0x03, 0x02, 0x1D, 0x0E, 0x09, 0x1A, 0x0C, 0x11, - 0x1C, 0x0D, 0x08, 0x12, 0x19, 0x10, 0x04, 0x17, - 0x15, 0x05, 0x0A, 0x00, 0x13, 0x16, 0x1B, 0x18, - 0x1E, 0x0B, 0x0F, 0x01, 0x07, 0x14, 0x1F, 0x06 -}; - -unsigned char table_82[256] = { - 0x53, 0xD3, 0x64, 0x89, 0x7D, 0xA5, 0x66, 0xA4, - 0x09, 0x46, 0x17, 0x2C, 0xAF, 0x8C, 0x21, 0x5F, - 0x3B, 0x22, 0xE3, 0x05, 0x07, 0x28, 0x2F, 0xAB, - 0xF4, 0x8E, 0x51, 0x31, 0x02, 0xC7, 0x48, 0x13, - 0x24, 0x12, 0xB8, 0xE5, 0xBD, 0xAE, 0x7E, 0xCC, - 0xC9, 0x98, 0x08, 0xEE, 0xDB, 0x1B, 0xE8, 0x3D, - 0x8F, 0xF2, 0xFB, 0x36, 0x4D, 0x94, 0x9C, 0x16, - 0xF7, 0x42, 0x9B, 0x2B, 0xFD, 0x7B, 0x77, 0x3F, - 0xC3, 0xFC, 0x23, 0x93, 0x50, 0x0C, 0x79, 0x18, - 0x47, 0xE1, 0xCB, 0xA7, 0xB6, 0x85, 0xE6, 0x61, - 0x2D, 0xD8, 0x9F, 0x80, 0xE9, 0x14, 0x0B, 0x1C, - 0x40, 0x76, 0x2A, 0x25, 0x0E, 0x99, 0xAC, 0xC4, - 0xEB, 0x29, 0x41, 0x8A, 0x73, 0x06, 0x57, 0xC6, - 0x8D, 0xFA, 0x5A, 0xCD, 0x67, 0xB2, 0xD9, 0x0A, - 0x1E, 0xEF, 0x3E, 0xA0, 0x45, 0x03, 0x27, 0xF1, - 0x38, 0x54, 0xC1, 0x7A, 0xFE, 0x52, 0x75, 0xD4, - 0x74, 0x7C, 0xD2, 0x68, 0xEA, 0x4C, 0x97, 0xF9, - 0xF5, 0x8B, 0x0F, 0x84, 0xA8, 0x6E, 0x9E, 0x11, - 0x6B, 0xBC, 0x4B, 0x6C, 0x9A, 0xF0, 0xA3, 0x1F, - 0x92, 0x19, 0xA2, 0x3A, 0x15, 0x04, 0xC5, 0x62, - 0xD5, 0x96, 0x90, 0x32, 0xAA, 0xD6, 0xCF, 0x35, - 0xB4, 0x81, 0x2E, 0x01, 0x10, 0x49, 0x70, 0xDE, - 0xDD, 0x88, 0xB9, 0x6D, 0x60, 0xBB, 0x44, 0xF8, - 0x3C, 0xEC, 0x34, 0x82, 0x95, 0x72, 0x58, 0x4E, - 0xE4, 0x0D, 0xBE, 0xDA, 0x83, 0x4A, 0x00, 0xBF, - 0xD0, 0xC8, 0x26, 0xB3, 0x65, 0x1A, 0x69, 0xCA, - 0xF3, 0xD7, 0x6F, 0x55, 0xE2, 0xFF, 0x5D, 0xDC, - 0x20, 0xF6, 0x63, 0xED, 0xE0, 0x59, 0x9D, 0xB1, - 0x1D, 0xAD, 0x91, 0xA1, 0xB7, 0xA9, 0xDF, 0xC0, - 0x39, 0xD1, 0x43, 0xCE, 0x4F, 0x5C, 0xE7, 0x37, - 0x5E, 0x33, 0x5B, 0xA6, 0xC2, 0xB0, 0xBA, 0x30, - 0x6A, 0x78, 0xB5, 0x71, 0x56, 0x87, 0x7F, 0x86 -}; - -unsigned char table_83[32] = { - 0x1B, 0x0A, 0x1F, 0x01, 0x10, 0x08, 0x0E, 0x18, - 0x06, 0x04, 0x00, 0x1C, 0x0C, 0x19, 0x0D, 0x16, - 0x02, 0x03, 0x09, 0x07, 0x13, 0x0F, 0x05, 0x12, - 0x17, 0x1E, 0x1A, 0x1D, 0x0B, 0x11, 0x14, 0x15 -}; - -unsigned char table_84[32] = { - 0x02, 0x1A, 0x0D, 0x15, 0x01, 0x16, 0x1E, 0x00, - 0x08, 0x1B, 0x04, 0x10, 0x1C, 0x18, 0x19, 0x14, - 0x0C, 0x11, 0x0B, 0x0E, 0x03, 0x0A, 0x07, 0x12, - 0x1D, 0x17, 0x13, 0x06, 0x0F, 0x05, 0x09, 0x1F -}; - -unsigned char table_85[256] = { - 0xC6, 0x7C, 0xCE, 0xBD, 0x84, 0x3E, 0x0B, 0xD8, - 0xFE, 0xCC, 0x46, 0x50, 0xD1, 0xFB, 0xA0, 0x6D, - 0xEA, 0xE2, 0x40, 0x51, 0x13, 0xB0, 0xD6, 0xB1, - 0xA8, 0xDF, 0x61, 0xA4, 0x80, 0x21, 0xB3, 0x33, - 0x06, 0x6B, 0xE3, 0x8C, 0xA1, 0x18, 0xBA, 0x03, - 0xD7, 0x8D, 0x54, 0x12, 0x4C, 0xEE, 0x9E, 0xCF, - 0x04, 0x2A, 0x08, 0xBB, 0xC2, 0xD4, 0xC3, 0x4A, - 0xD5, 0xFA, 0x36, 0x2F, 0x14, 0x3F, 0xED, 0x05, - 0x17, 0x28, 0x75, 0xFC, 0xA2, 0x1F, 0x4B, 0x6F, - 0x91, 0x7E, 0x4E, 0x96, 0x3B, 0xF3, 0x1D, 0x78, - 0xEB, 0x68, 0xF1, 0xA7, 0x9F, 0xC7, 0x59, 0x6C, - 0x92, 0xE6, 0x66, 0x07, 0x8A, 0x25, 0x26, 0x72, - 0x30, 0x5A, 0x81, 0x2C, 0x58, 0x32, 0xCB, 0xE0, - 0xF9, 0x48, 0x83, 0x9B, 0xA5, 0xE1, 0xA6, 0x64, - 0xFF, 0xC9, 0x8F, 0x53, 0x3D, 0x24, 0xC8, 0xDE, - 0x02, 0x7D, 0x09, 0xB4, 0x0A, 0x95, 0x0F, 0xE4, - 0xDB, 0xB7, 0x71, 0x4D, 0x1C, 0xAC, 0x35, 0xCD, - 0x29, 0xDD, 0xC1, 0xF2, 0xF4, 0xC0, 0x5C, 0x74, - 0xDC, 0x87, 0xFD, 0x4F, 0x11, 0x0E, 0x5D, 0x3C, - 0x01, 0x73, 0xE9, 0xD9, 0x10, 0x9A, 0x5B, 0xC5, - 0x98, 0x34, 0x15, 0xAE, 0xF7, 0xAA, 0x67, 0x23, - 0xBC, 0x8B, 0x7B, 0x65, 0xA9, 0xB6, 0x77, 0x00, - 0x19, 0x0C, 0x5E, 0x99, 0xF0, 0x55, 0x86, 0x97, - 0x69, 0xDA, 0x38, 0x9C, 0x16, 0xE8, 0x27, 0xAF, - 0x2E, 0x47, 0x6A, 0xD0, 0x79, 0x44, 0x45, 0x2B, - 0x5F, 0x85, 0xF5, 0x62, 0x70, 0x22, 0x7F, 0xF6, - 0x88, 0x93, 0x60, 0x42, 0x3A, 0x39, 0x49, 0x6E, - 0x89, 0x52, 0x20, 0xF8, 0xCA, 0xD2, 0x76, 0xB9, - 0xAB, 0x7A, 0x9D, 0xD3, 0xBE, 0x1A, 0xAD, 0x41, - 0x56, 0x31, 0x90, 0xB5, 0xB2, 0xEC, 0xA3, 0xE5, - 0x8E, 0x1B, 0xEF, 0xBF, 0x94, 0xC4, 0x0D, 0xB8, - 0x2D, 0x57, 0xE7, 0x82, 0x1E, 0x37, 0x63, 0x43 -}; - -unsigned char table_86[32] = { - 0x11, 0x07, 0x0F, 0x0A, 0x19, 0x1D, 0x0B, 0x09, - 0x1C, 0x1E, 0x14, 0x06, 0x0C, 0x16, 0x13, 0x04, - 0x15, 0x18, 0x00, 0x0D, 0x12, 0x05, 0x08, 0x02, - 0x10, 0x1A, 0x1F, 0x01, 0x17, 0x0E, 0x03, 0x1B -}; - -unsigned char table_87[32] = { - 0x17, 0x0E, 0x1D, 0x13, 0x0B, 0x19, 0x03, 0x06, - 0x09, 0x01, 0x0D, 0x15, 0x1C, 0x16, 0x18, 0x1B, - 0x11, 0x10, 0x00, 0x1E, 0x1F, 0x08, 0x12, 0x0F, - 0x02, 0x04, 0x07, 0x1A, 0x14, 0x0A, 0x0C, 0x05 -}; - -unsigned char table_88[32] = { - 0x09, 0x08, 0x17, 0x10, 0x0A, 0x07, 0x1C, 0x1F, - 0x04, 0x0E, 0x01, 0x0C, 0x0D, 0x1B, 0x03, 0x15, - 0x02, 0x1E, 0x18, 0x19, 0x0F, 0x06, 0x1A, 0x0B, - 0x05, 0x11, 0x14, 0x00, 0x16, 0x1D, 0x12, 0x13 -}; - -unsigned char table_89[32] = { - 0x15, 0x1C, 0x1D, 0x14, 0x0F, 0x1A, 0x05, 0x02, - 0x07, 0x09, 0x06, 0x08, 0x1F, 0x00, 0x10, 0x13, - 0x0D, 0x03, 0x0C, 0x18, 0x0E, 0x16, 0x1B, 0x1E, - 0x12, 0x04, 0x11, 0x0A, 0x01, 0x0B, 0x17, 0x19 -}; - -unsigned char table_90[256] = { - 0x62, 0x36, 0x64, 0x0E, 0x4C, 0x6C, 0xBE, 0xCF, - 0x25, 0x5A, 0x3D, 0x12, 0x54, 0x9F, 0xE7, 0xA5, - 0xDE, 0xD7, 0xB2, 0x60, 0x18, 0x8D, 0x89, 0x70, - 0x48, 0x66, 0x1C, 0xA6, 0x17, 0x9B, 0xDF, 0x9A, - 0x82, 0xB9, 0x2E, 0xFA, 0x83, 0x5B, 0x7A, 0x61, - 0xFC, 0x6B, 0x8B, 0x4E, 0x0F, 0xAD, 0x78, 0xE1, - 0xE8, 0x15, 0x1A, 0xF7, 0xA3, 0x3A, 0x04, 0xE3, - 0x30, 0x8C, 0x06, 0xC4, 0x05, 0x32, 0x1F, 0x6A, - 0xB8, 0x37, 0x58, 0xF5, 0x74, 0x63, 0xD4, 0xAC, - 0xA4, 0xF3, 0xEC, 0xBB, 0x8E, 0x65, 0xA0, 0xEE, - 0x6D, 0x11, 0xDD, 0xEA, 0x68, 0x2B, 0xDA, 0x0B, - 0xEF, 0xC3, 0x8F, 0x03, 0x77, 0x1B, 0xFB, 0x1E, - 0x5C, 0xD9, 0xCB, 0x33, 0x55, 0xF1, 0xA1, 0xF9, - 0x7C, 0x38, 0x95, 0x00, 0x6E, 0x85, 0xC2, 0x7F, - 0xBF, 0x84, 0x2A, 0x13, 0x72, 0x81, 0xE9, 0x59, - 0x41, 0x69, 0x3B, 0x0C, 0x90, 0xB4, 0x51, 0x2F, - 0xA2, 0xFE, 0xF8, 0x49, 0x57, 0xE5, 0x96, 0xFF, - 0xCD, 0xD5, 0xCE, 0xAA, 0x40, 0xB0, 0x4D, 0xBA, - 0xDB, 0xC7, 0x46, 0x86, 0xD1, 0xCA, 0xC0, 0x67, - 0x9C, 0x21, 0xAE, 0xB3, 0x7B, 0x87, 0xE2, 0x71, - 0xE6, 0x39, 0xA8, 0x22, 0x07, 0x2C, 0x44, 0x52, - 0xA7, 0xF0, 0x4A, 0x92, 0x56, 0x28, 0x43, 0x8A, - 0x5E, 0x53, 0x93, 0x47, 0x97, 0x88, 0x76, 0x79, - 0x91, 0x26, 0xC1, 0x3F, 0xB7, 0xF6, 0x3E, 0x80, - 0xA9, 0xC6, 0x01, 0xD2, 0xEB, 0x9E, 0x4B, 0xBC, - 0xC8, 0xB5, 0x02, 0x5F, 0x98, 0x9D, 0x5D, 0x35, - 0xD0, 0x16, 0xB1, 0x23, 0x7D, 0xAF, 0x10, 0x3C, - 0xAB, 0x14, 0x09, 0x2D, 0x0D, 0xC5, 0x1D, 0xD6, - 0x42, 0xF2, 0x34, 0x73, 0xF4, 0xFD, 0xE0, 0x24, - 0x6F, 0xD3, 0x75, 0xD8, 0xCC, 0xB6, 0x99, 0x4F, - 0x29, 0x0A, 0x08, 0xE4, 0x27, 0x19, 0x31, 0xC9, - 0x20, 0x94, 0x45, 0xED, 0xDC, 0xBD, 0x7E, 0x50 -}; - -unsigned char table_91[32] = { - 0x03, 0x04, 0x0C, 0x18, 0x10, 0x0D, 0x13, 0x1B, - 0x1F, 0x07, 0x11, 0x17, 0x1C, 0x1D, 0x05, 0x06, - 0x0A, 0x12, 0x02, 0x1A, 0x0B, 0x01, 0x0E, 0x08, - 0x14, 0x16, 0x00, 0x15, 0x19, 0x09, 0x0F, 0x1E -}; - -unsigned char table_92[32] = { - 0x1E, 0x10, 0x01, 0x07, 0x11, 0x16, 0x15, 0x17, - 0x1F, 0x14, 0x0C, 0x1C, 0x06, 0x03, 0x00, 0x18, - 0x08, 0x0E, 0x02, 0x1B, 0x09, 0x0D, 0x19, 0x05, - 0x0F, 0x12, 0x0B, 0x13, 0x0A, 0x04, 0x1D, 0x1A -}; - -unsigned char table_93[256] = { - 0x76, 0x78, 0xA2, 0x94, 0x0E, 0x7F, 0xDF, 0xC1, - 0xB9, 0xE1, 0x3D, 0x59, 0x6F, 0x1E, 0x53, 0x99, - 0x80, 0xE3, 0x21, 0xF8, 0x65, 0xB8, 0x08, 0xBC, - 0x29, 0x17, 0xFD, 0x33, 0x35, 0xF2, 0x70, 0xC7, - 0x25, 0xD0, 0xCD, 0x7A, 0xB7, 0x9B, 0xA5, 0xC3, - 0x00, 0x90, 0xDC, 0xB1, 0x0C, 0x20, 0x67, 0x8D, - 0x43, 0x49, 0xF3, 0x96, 0x14, 0x1A, 0xC8, 0x19, - 0x72, 0xD7, 0x8A, 0x38, 0x66, 0xDA, 0xDD, 0x2E, - 0xBE, 0xD5, 0x91, 0x7C, 0x3A, 0x92, 0x8E, 0xE7, - 0x51, 0xB5, 0xA8, 0xD9, 0x0B, 0x2A, 0xBA, 0x81, - 0x41, 0x0F, 0xBD, 0x4E, 0x31, 0x23, 0x9C, 0x8B, - 0x2B, 0x1D, 0x04, 0x3E, 0x8C, 0xF0, 0x45, 0xA0, - 0x1C, 0x44, 0x55, 0x5E, 0xF1, 0x98, 0x54, 0x5D, - 0x9D, 0x84, 0xAE, 0x09, 0xA9, 0xC5, 0x83, 0x60, - 0x86, 0x95, 0xB4, 0xFA, 0x6B, 0xA7, 0x9A, 0xCA, - 0x8F, 0x4F, 0x0A, 0x7B, 0xB0, 0x02, 0xEA, 0xA4, - 0x18, 0xDB, 0xD3, 0x64, 0xEB, 0xFC, 0xC4, 0xC9, - 0xF5, 0xD6, 0xCC, 0x75, 0x0D, 0x5C, 0x93, 0x4A, - 0x6D, 0xC0, 0x1F, 0x50, 0xE6, 0x16, 0xEE, 0x07, - 0xFB, 0x74, 0x56, 0x58, 0x52, 0x89, 0x79, 0x68, - 0xB6, 0xFE, 0x01, 0xD4, 0x7E, 0x06, 0xBF, 0xCB, - 0x5B, 0xC2, 0xC6, 0x32, 0xAC, 0x26, 0x22, 0xD2, - 0x82, 0x46, 0x69, 0x15, 0x2C, 0xF7, 0xAD, 0x13, - 0x4D, 0xA3, 0xF6, 0x2D, 0x48, 0x71, 0x57, 0x11, - 0x63, 0x05, 0x5F, 0x9E, 0x4B, 0xAB, 0xA6, 0x61, - 0xBB, 0xA1, 0x3C, 0x97, 0xF9, 0x03, 0x40, 0x12, - 0xCF, 0x37, 0xE4, 0x10, 0x6A, 0xED, 0xFF, 0x62, - 0x42, 0x4C, 0xAF, 0x9F, 0xE5, 0xE8, 0xD8, 0xD1, - 0x28, 0x3F, 0x1B, 0xE9, 0xCE, 0x6C, 0x27, 0x88, - 0xEF, 0x2F, 0xE0, 0x30, 0x87, 0x5A, 0x73, 0xB3, - 0x6E, 0x3B, 0x7D, 0x77, 0x36, 0xAA, 0x39, 0xDE, - 0x24, 0x34, 0xE2, 0xEC, 0x85, 0x47, 0xF4, 0xB2 -}; - -unsigned char table_94[32] = { - 0x1C, 0x07, 0x05, 0x1A, 0x10, 0x1D, 0x14, 0x12, - 0x08, 0x0F, 0x0C, 0x01, 0x04, 0x1B, 0x16, 0x0A, - 0x11, 0x02, 0x1F, 0x13, 0x0D, 0x1E, 0x17, 0x06, - 0x0E, 0x09, 0x15, 0x19, 0x03, 0x18, 0x00, 0x0B -}; - -unsigned char table_95[32] = { - 0x12, 0x10, 0x11, 0x15, 0x03, 0x0A, 0x14, 0x05, - 0x1D, 0x07, 0x17, 0x0D, 0x09, 0x08, 0x1B, 0x1F, - 0x0B, 0x06, 0x19, 0x0E, 0x18, 0x04, 0x00, 0x02, - 0x1E, 0x1C, 0x01, 0x0C, 0x1A, 0x0F, 0x13, 0x16 -}; - -unsigned char table_96[256] = { - 0x1C, 0x6E, 0xCD, 0xB4, 0xB3, 0x93, 0xA8, 0x2E, - 0x4F, 0x09, 0xE3, 0x72, 0x64, 0x13, 0x21, 0xF5, - 0x89, 0xB2, 0xD2, 0x22, 0x5D, 0x63, 0x90, 0xC4, - 0x42, 0x9B, 0x07, 0xCA, 0x16, 0x19, 0x5C, 0x2B, - 0x3D, 0xA0, 0x69, 0x5F, 0x52, 0x41, 0x66, 0xC0, - 0x55, 0xDA, 0x82, 0x40, 0x25, 0x02, 0x3C, 0xDD, - 0xAE, 0xD7, 0xD6, 0xDB, 0x04, 0x78, 0x05, 0x4A, - 0x4C, 0x81, 0x00, 0xBE, 0x45, 0xC5, 0x30, 0xB0, - 0x65, 0x5A, 0xA9, 0x38, 0x75, 0x26, 0x85, 0x4E, - 0xF0, 0xA2, 0x91, 0x8A, 0x54, 0xD0, 0x3E, 0x0D, - 0xFE, 0xF2, 0x0A, 0x23, 0x24, 0x37, 0x32, 0x0B, - 0xCB, 0xB5, 0x28, 0x6A, 0x95, 0x49, 0x53, 0x9A, - 0xEE, 0x2C, 0x9D, 0xD4, 0x1D, 0x46, 0xC9, 0x79, - 0xCC, 0xDF, 0x17, 0xE8, 0x6D, 0x29, 0x0E, 0x80, - 0xE0, 0x62, 0xA1, 0xFA, 0x10, 0xF6, 0x03, 0xC1, - 0x15, 0x14, 0x1F, 0x99, 0x97, 0xD5, 0x9E, 0x3F, - 0x7B, 0x2F, 0xEF, 0x2A, 0x68, 0x83, 0xE2, 0x1B, - 0xC8, 0x87, 0x12, 0x70, 0xC7, 0x36, 0xD3, 0x73, - 0x8B, 0x7D, 0x47, 0x9F, 0xD9, 0xFB, 0x6C, 0x5B, - 0xFC, 0xAA, 0xB9, 0xB1, 0x0C, 0x31, 0x8E, 0xF3, - 0x92, 0xA3, 0x4B, 0xF1, 0xC2, 0x3A, 0x67, 0xEA, - 0x77, 0x11, 0xB6, 0xE4, 0x1A, 0x33, 0xD1, 0xBA, - 0xF9, 0xAC, 0x43, 0xE5, 0xC3, 0xC6, 0xFD, 0xF4, - 0x44, 0x6F, 0xB7, 0x88, 0xA7, 0xF8, 0x34, 0x94, - 0x6B, 0x27, 0xDE, 0x1E, 0xDC, 0x01, 0x61, 0x50, - 0xAD, 0x74, 0x4D, 0x86, 0xF7, 0x8D, 0x9C, 0x0F, - 0x5E, 0xBD, 0x08, 0x84, 0x18, 0xED, 0xA5, 0x39, - 0xAB, 0x98, 0x48, 0xE6, 0x2D, 0x96, 0xCF, 0x7F, - 0xFF, 0xBB, 0x8F, 0xEC, 0xBF, 0xE7, 0x56, 0xA4, - 0x35, 0x76, 0xA6, 0xAF, 0xBC, 0x71, 0xE9, 0xB8, - 0x7E, 0x7C, 0x06, 0x3B, 0xEB, 0x60, 0x7A, 0x8C, - 0x59, 0xCE, 0xE1, 0x57, 0x20, 0x58, 0x51, 0xD8 -}; - -unsigned char table_97[256] = { - 0x15, 0x2D, 0xAF, 0x36, 0xCF, 0xD3, 0xD0, 0xED, - 0xB2, 0x1B, 0xFE, 0x92, 0xBD, 0xAD, 0x58, 0x0F, - 0x76, 0x3C, 0x47, 0x03, 0x2E, 0x4C, 0x40, 0xF7, - 0x39, 0xA7, 0x72, 0x22, 0x95, 0xF3, 0x8C, 0xE0, - 0x79, 0xB6, 0x75, 0x82, 0x94, 0x8F, 0x44, 0xFC, - 0xB0, 0x05, 0xE9, 0x10, 0x68, 0xE7, 0xF1, 0xA5, - 0xA8, 0xE2, 0x6F, 0xBE, 0xE5, 0x54, 0xA2, 0xC6, - 0xDB, 0x1C, 0x9E, 0x6D, 0x14, 0xA1, 0x26, 0x34, - 0x1E, 0x1A, 0x06, 0x53, 0xEE, 0x67, 0xA9, 0x73, - 0xD5, 0x59, 0x2F, 0x61, 0xE6, 0x74, 0xD6, 0x97, - 0xC0, 0x0C, 0xB1, 0x6E, 0x6C, 0x33, 0xC8, 0x77, - 0x8B, 0x49, 0x43, 0xE3, 0xB5, 0xDE, 0x6A, 0xA0, - 0x78, 0x2A, 0xC9, 0xF9, 0x9A, 0xDC, 0x90, 0x55, - 0xF4, 0x16, 0x5E, 0x3F, 0xC5, 0x7C, 0xFA, 0x09, - 0x8E, 0x87, 0xF2, 0x9D, 0x70, 0x27, 0x9B, 0xC4, - 0xCD, 0x91, 0x4B, 0xB4, 0x18, 0xE1, 0x3D, 0x5D, - 0x7A, 0xEA, 0xF0, 0x65, 0xB9, 0xF6, 0xC3, 0x66, - 0x21, 0x96, 0xD1, 0xB8, 0x56, 0x62, 0x48, 0x28, - 0x3A, 0x86, 0x63, 0xD4, 0xD7, 0x41, 0x8D, 0x20, - 0xC2, 0x98, 0x37, 0xD8, 0x85, 0x42, 0x0D, 0x31, - 0x84, 0x4E, 0x11, 0x46, 0x2B, 0x19, 0xCC, 0xB7, - 0x69, 0x13, 0x6B, 0x29, 0x38, 0x7E, 0x0E, 0xD2, - 0x3B, 0x60, 0x89, 0x7F, 0xEF, 0x07, 0x08, 0xCA, - 0xBF, 0x3E, 0xA3, 0xAA, 0x52, 0x4A, 0x45, 0x00, - 0xC7, 0xF8, 0x57, 0xEB, 0x93, 0x9C, 0x4D, 0x7B, - 0x2C, 0xBB, 0xFB, 0xFF, 0x35, 0x4F, 0x32, 0xA6, - 0x23, 0x8A, 0xDD, 0x12, 0xA4, 0x81, 0x17, 0x1D, - 0x1F, 0xCB, 0x0A, 0x71, 0x02, 0xAC, 0xDF, 0x24, - 0xAB, 0x7D, 0x30, 0x5C, 0x01, 0x5A, 0xBA, 0xEC, - 0x51, 0xF5, 0x0B, 0x64, 0xCE, 0xAE, 0x5B, 0x50, - 0x80, 0x88, 0xE8, 0x5F, 0x04, 0xDA, 0xE4, 0xBC, - 0x83, 0x25, 0x9F, 0xD9, 0x99, 0xC1, 0xFD, 0xB3 -}; - -unsigned char table_98[256] = { - 0xC8, 0xE6, 0x38, 0x93, 0xE5, 0x03, 0x18, 0x1F, - 0xE9, 0x5A, 0xB6, 0xAF, 0xC3, 0x95, 0x00, 0x51, - 0xC0, 0xFD, 0x32, 0xE8, 0x96, 0x57, 0xF0, 0xAA, - 0xDC, 0x71, 0xF8, 0x01, 0x40, 0x0A, 0x4F, 0xB0, - 0x1B, 0x9D, 0x16, 0x92, 0xF3, 0x5E, 0xA9, 0x3C, - 0xBE, 0x6A, 0xA7, 0xE3, 0x35, 0x0D, 0xAD, 0xDB, - 0x48, 0xE0, 0x7E, 0xC6, 0xB4, 0x6D, 0x17, 0x41, - 0x3E, 0xE2, 0x87, 0x12, 0xE1, 0x53, 0xD9, 0x8A, - 0xAC, 0xA6, 0xD8, 0xFA, 0x36, 0x0B, 0x06, 0xDF, - 0x6C, 0x4E, 0xA4, 0xBC, 0xC9, 0xEE, 0x44, 0x26, - 0xF2, 0xE4, 0x9E, 0x34, 0xEF, 0x05, 0x0F, 0x7F, - 0xD1, 0xCD, 0x67, 0x28, 0xC1, 0x8E, 0x7D, 0x90, - 0x8F, 0x60, 0x1E, 0x19, 0xBD, 0x77, 0xB8, 0xD5, - 0x3D, 0x8C, 0x31, 0x99, 0x08, 0xDD, 0x04, 0x30, - 0x61, 0xFB, 0xEB, 0x98, 0x15, 0xFC, 0x10, 0xDE, - 0x20, 0xBA, 0xA1, 0xB3, 0xD4, 0x91, 0x6F, 0x9F, - 0x94, 0x5B, 0x42, 0xCB, 0x75, 0x1C, 0xBB, 0x5C, - 0x5D, 0xD6, 0x66, 0x50, 0xB9, 0xF1, 0x82, 0x7B, - 0x33, 0x23, 0x4A, 0xA5, 0x55, 0x97, 0xEA, 0x37, - 0xF4, 0x64, 0x6E, 0xBF, 0x8B, 0xB1, 0x07, 0x9A, - 0x43, 0x11, 0x65, 0xC2, 0x02, 0xDA, 0x9B, 0x25, - 0xCA, 0x3B, 0x7A, 0xCE, 0xA8, 0xCF, 0xF7, 0x56, - 0x6B, 0xF9, 0x47, 0x2A, 0x2E, 0x1D, 0x2D, 0xE7, - 0x46, 0xD0, 0x62, 0x4C, 0x80, 0x4B, 0x2B, 0xF5, - 0x69, 0x9C, 0x45, 0xED, 0x83, 0xAB, 0x74, 0x39, - 0xA3, 0x85, 0xD7, 0x5F, 0xB2, 0x86, 0x22, 0x29, - 0x89, 0x49, 0x1A, 0xC4, 0x52, 0xEC, 0x8D, 0x73, - 0xD3, 0x7C, 0x79, 0xD2, 0x14, 0x4D, 0x84, 0xA2, - 0x0E, 0x70, 0x78, 0x72, 0xB7, 0xA0, 0xC5, 0x81, - 0x58, 0x0C, 0x68, 0x27, 0xFF, 0xF6, 0xAE, 0xCC, - 0x88, 0xFE, 0x24, 0x2F, 0x76, 0x3F, 0x59, 0x21, - 0x54, 0x3A, 0x13, 0x09, 0x2C, 0xB5, 0xC7, 0x63 -}; - -unsigned char table_99[32] = { - 0x19, 0x00, 0x10, 0x18, 0x09, 0x11, 0x13, 0x1D, - 0x08, 0x1A, 0x02, 0x05, 0x03, 0x17, 0x12, 0x01, - 0x1F, 0x14, 0x06, 0x07, 0x15, 0x0D, 0x0F, 0x0B, - 0x0E, 0x16, 0x1E, 0x04, 0x1B, 0x0A, 0x0C, 0x1C -}; - -unsigned char table_100[256] = { - 0x9B, 0x3A, 0xAE, 0x60, 0x27, 0x67, 0x1E, 0x4E, - 0x91, 0xDA, 0x85, 0x43, 0x5C, 0xCC, 0x89, 0x55, - 0x75, 0x56, 0xF2, 0x86, 0xEB, 0xC4, 0x0D, 0xE6, - 0x63, 0x88, 0x38, 0x59, 0x68, 0xD0, 0x18, 0xF0, - 0xBA, 0x28, 0xF5, 0x80, 0x02, 0x5B, 0xE1, 0xA4, - 0x7A, 0x4B, 0x8E, 0xF7, 0x9E, 0x99, 0x70, 0xEF, - 0x66, 0x50, 0xB1, 0xCD, 0x9A, 0xAF, 0x5F, 0x21, - 0xE5, 0x5D, 0x14, 0xD4, 0x34, 0x22, 0xC3, 0x0F, - 0x44, 0xB6, 0x92, 0xCE, 0xB4, 0x6E, 0xB0, 0x00, - 0xF9, 0xB5, 0x10, 0xEA, 0x45, 0x2F, 0x2B, 0xF4, - 0xF6, 0xFE, 0xCB, 0x0A, 0x42, 0xF8, 0xE7, 0xFD, - 0xC8, 0xC2, 0x6C, 0x9C, 0x57, 0xA1, 0x46, 0x04, - 0xE9, 0x97, 0x40, 0x32, 0x19, 0xFA, 0x51, 0xD1, - 0x6D, 0x4C, 0x2A, 0xD9, 0x95, 0x26, 0x72, 0x1B, - 0x83, 0x93, 0x5A, 0x15, 0x33, 0xC5, 0x77, 0x13, - 0xE0, 0x36, 0x37, 0xDB, 0xA7, 0xC7, 0x81, 0x62, - 0xC1, 0x47, 0x64, 0x74, 0x1D, 0x84, 0x29, 0x39, - 0x41, 0x35, 0x09, 0x90, 0x20, 0x9F, 0x8C, 0x7D, - 0x3E, 0x07, 0xB9, 0x76, 0x06, 0xA3, 0x31, 0x7F, - 0x49, 0x6F, 0x3D, 0xD5, 0x25, 0xAC, 0xDF, 0x0B, - 0x3C, 0x79, 0x01, 0x8F, 0x82, 0x2E, 0xFC, 0x98, - 0xA5, 0x58, 0xA0, 0x4A, 0x7C, 0x24, 0xDD, 0x05, - 0x4D, 0x12, 0xBC, 0xAA, 0xE2, 0xAB, 0xD3, 0xBF, - 0x94, 0x2D, 0x54, 0xBB, 0xAD, 0xB7, 0x6A, 0xE3, - 0xBD, 0x5E, 0x8D, 0x08, 0x3B, 0xB8, 0x73, 0x8A, - 0x16, 0xD2, 0x69, 0xE8, 0xEE, 0x53, 0xD8, 0xDC, - 0x48, 0xCF, 0xC6, 0xA9, 0x1A, 0xCA, 0x17, 0x11, - 0xED, 0xC0, 0xA6, 0x1F, 0x96, 0x8B, 0xFF, 0x78, - 0x03, 0x61, 0x1C, 0xA8, 0x3F, 0x9D, 0x0E, 0xC9, - 0xE4, 0xA2, 0x52, 0xEC, 0x4F, 0xD6, 0xF3, 0x6B, - 0x87, 0xB3, 0x7E, 0xDE, 0xD7, 0x71, 0x65, 0xF1, - 0x30, 0x0C, 0xB2, 0x7B, 0xBE, 0xFB, 0x23, 0x2C -}; - -unsigned char table_101[32] = { - 0x18, 0x08, 0x14, 0x17, 0x03, 0x10, 0x19, 0x04, - 0x0D, 0x1C, 0x06, 0x1D, 0x1E, 0x12, 0x11, 0x0B, - 0x0F, 0x02, 0x0E, 0x1B, 0x13, 0x05, 0x07, 0x16, - 0x15, 0x0A, 0x0C, 0x1A, 0x00, 0x01, 0x1F, 0x09 -}; - -unsigned char table_102[32] = { - 0x17, 0x1F, 0x0E, 0x05, 0x13, 0x0C, 0x14, 0x1A, - 0x0F, 0x01, 0x12, 0x1C, 0x00, 0x07, 0x0D, 0x02, - 0x10, 0x16, 0x04, 0x11, 0x1D, 0x03, 0x1E, 0x18, - 0x06, 0x15, 0x0A, 0x19, 0x09, 0x08, 0x1B, 0x0B -}; - -unsigned char table_103[32] = { - 0x0F, 0x09, 0x1E, 0x11, 0x0D, 0x08, 0x10, 0x00, - 0x01, 0x1F, 0x1D, 0x1C, 0x12, 0x04, 0x07, 0x05, - 0x19, 0x14, 0x1B, 0x02, 0x1A, 0x15, 0x17, 0x16, - 0x18, 0x0B, 0x0A, 0x13, 0x0C, 0x0E, 0x03, 0x06 -}; - -unsigned char table_104[256] = { - 0xA4, 0x9F, 0x78, 0x39, 0x3D, 0x81, 0x51, 0x24, - 0x46, 0x2A, 0x56, 0xE8, 0xDF, 0x73, 0xA8, 0xA2, - 0x0D, 0xDC, 0xA5, 0x4F, 0xF0, 0x93, 0xC0, 0x76, - 0x38, 0x70, 0xB0, 0x30, 0x98, 0x13, 0x8B, 0x14, - 0x26, 0x45, 0x0F, 0x7D, 0x34, 0x72, 0x6B, 0x89, - 0x43, 0xE2, 0x96, 0x5B, 0xEF, 0x2B, 0xF9, 0xDE, - 0x82, 0xB5, 0x61, 0x4A, 0x17, 0xC2, 0x5A, 0xCB, - 0xB2, 0x8D, 0xE4, 0xEC, 0xD9, 0x80, 0xBC, 0x62, - 0x67, 0x11, 0xA9, 0x3A, 0xE1, 0xC4, 0xEA, 0xD2, - 0x71, 0xD0, 0xDB, 0xE5, 0x7B, 0x08, 0x77, 0xD6, - 0x10, 0x19, 0x48, 0xEB, 0xAA, 0x2C, 0x0C, 0x59, - 0xBE, 0xF6, 0x28, 0x50, 0x90, 0x87, 0xCD, 0x04, - 0x1F, 0x79, 0x99, 0x5C, 0x49, 0x06, 0x8A, 0x3E, - 0x5F, 0x5E, 0x15, 0x23, 0x2D, 0xB6, 0xA6, 0x7A, - 0x03, 0x20, 0xDA, 0xFB, 0x35, 0x75, 0xC7, 0x47, - 0xB9, 0x7C, 0xA1, 0xCE, 0xC5, 0xDD, 0xFD, 0x6C, - 0x05, 0xAC, 0x09, 0xB4, 0x95, 0xD1, 0xB1, 0x63, - 0xFF, 0xAE, 0xD5, 0x25, 0x1E, 0x6E, 0x57, 0x18, - 0x74, 0xE6, 0x2F, 0x9A, 0xE7, 0x42, 0x65, 0xF5, - 0x58, 0x27, 0x33, 0x9C, 0xCF, 0xB7, 0xC3, 0xF1, - 0x12, 0x1D, 0xB8, 0xF4, 0x64, 0x4D, 0xD4, 0xBD, - 0xE3, 0xAB, 0x44, 0x60, 0xAF, 0xCC, 0x0A, 0xFC, - 0xD3, 0x21, 0x0B, 0x1A, 0x6D, 0x83, 0xA7, 0x8E, - 0x3C, 0xC1, 0xED, 0xF3, 0x2E, 0x86, 0xC9, 0x41, - 0x02, 0xF7, 0xC8, 0x40, 0x1B, 0xF8, 0xF2, 0x07, - 0x5D, 0x4E, 0xC6, 0x29, 0xD7, 0x4B, 0x7E, 0x31, - 0x94, 0x32, 0x01, 0x92, 0xE9, 0x36, 0x0E, 0x7F, - 0x85, 0x16, 0xFA, 0x00, 0x88, 0x3F, 0x68, 0x4C, - 0x22, 0x55, 0xBF, 0x9D, 0xE0, 0x6A, 0xAD, 0xBA, - 0x91, 0xCA, 0xA3, 0x1C, 0xEE, 0xD8, 0x3B, 0x66, - 0x69, 0x9B, 0x84, 0xA0, 0xB3, 0x6F, 0xFE, 0x52, - 0x97, 0xBB, 0x37, 0x8C, 0x54, 0x53, 0x9E, 0x8F -}; - -unsigned char table_105[256] = { - 0x7B, 0x35, 0x11, 0x79, 0x07, 0x2F, 0xF6, 0x82, - 0x8E, 0xB4, 0x6E, 0xD2, 0x6D, 0xC5, 0x8C, 0x1C, - 0xE0, 0xD6, 0x34, 0xF0, 0x4F, 0x25, 0x59, 0xE8, - 0xDF, 0x1D, 0xEB, 0x32, 0x86, 0x51, 0xA4, 0xF2, - 0x5C, 0xD1, 0xC8, 0x41, 0xEC, 0x9D, 0x62, 0xAC, - 0xDD, 0x3E, 0xB8, 0x65, 0x75, 0x89, 0x12, 0x6C, - 0x40, 0x4E, 0xC7, 0x27, 0xE1, 0x37, 0xCF, 0x09, - 0x16, 0x78, 0xAA, 0x58, 0x0D, 0xE6, 0x54, 0xFE, - 0x8F, 0xFD, 0xF9, 0x61, 0x26, 0x3F, 0x2E, 0xCD, - 0x2C, 0x04, 0xB2, 0x80, 0x0F, 0x14, 0x6F, 0xC6, - 0xAB, 0xFB, 0x13, 0xDB, 0x9A, 0x21, 0xB3, 0xC0, - 0xA9, 0x19, 0x70, 0xF3, 0x2B, 0xAE, 0x9B, 0x49, - 0xB7, 0xA8, 0x24, 0x1B, 0x48, 0xEA, 0xED, 0xD9, - 0x47, 0x9E, 0x9C, 0x69, 0x3C, 0x66, 0xBB, 0x06, - 0x46, 0x38, 0x17, 0xB5, 0xCB, 0x05, 0x4A, 0x5E, - 0x15, 0x20, 0xB9, 0xB6, 0x33, 0x4C, 0x7D, 0xA3, - 0xD7, 0xB1, 0x23, 0x72, 0xC3, 0x4B, 0x63, 0xBE, - 0xF7, 0x5B, 0x74, 0x64, 0x77, 0xCC, 0xD3, 0x85, - 0xDE, 0x1A, 0x31, 0x97, 0xA2, 0x8B, 0xFC, 0x10, - 0x5F, 0xDC, 0xD5, 0xB0, 0xBD, 0x55, 0xC1, 0xE7, - 0x0C, 0x50, 0x43, 0x39, 0x71, 0x52, 0xE5, 0xAF, - 0x8A, 0x60, 0x92, 0x2D, 0xD8, 0x03, 0xF5, 0x28, - 0xCA, 0xEF, 0xD0, 0xC2, 0x53, 0x91, 0xA6, 0x73, - 0x56, 0xA5, 0xF1, 0x57, 0x42, 0xF4, 0xD4, 0x36, - 0x8D, 0xBC, 0xE9, 0x7E, 0x02, 0x76, 0x18, 0x0B, - 0x84, 0x5A, 0xE2, 0xBF, 0x68, 0x95, 0x29, 0x98, - 0xAD, 0x88, 0x1F, 0x81, 0x67, 0xA1, 0x3A, 0xA7, - 0x22, 0xF8, 0x01, 0xA0, 0xCE, 0x7A, 0xDA, 0x30, - 0xC4, 0xE4, 0xEE, 0x7C, 0x3B, 0x4D, 0x3D, 0xE3, - 0xFA, 0x6A, 0x7F, 0x99, 0x00, 0x93, 0x0E, 0xFF, - 0x90, 0x0A, 0x2A, 0x5D, 0x96, 0x08, 0x6B, 0x83, - 0xBA, 0x1E, 0x44, 0x87, 0x45, 0x9F, 0xC9, 0x94 -}; - -unsigned char table_106[32] = { - 0x03, 0x11, 0x07, 0x1B, 0x0F, 0x14, 0x0C, 0x01, - 0x04, 0x02, 0x09, 0x0A, 0x05, 0x12, 0x06, 0x1F, - 0x1C, 0x0E, 0x0D, 0x15, 0x18, 0x08, 0x00, 0x10, - 0x1E, 0x1D, 0x17, 0x19, 0x13, 0x16, 0x0B, 0x1A -}; - -unsigned char table_107[32] = { - 0x13, 0x1B, 0x06, 0x11, 0x1C, 0x07, 0x08, 0x0E, - 0x10, 0x05, 0x09, 0x18, 0x04, 0x15, 0x1E, 0x0F, - 0x1F, 0x12, 0x02, 0x00, 0x17, 0x19, 0x1A, 0x0D, - 0x03, 0x0C, 0x0A, 0x1D, 0x14, 0x01, 0x16, 0x0B -}; - -unsigned char table_108[256] = { - 0x99, 0xA3, 0x48, 0xE8, 0x5A, 0x7D, 0x97, 0xCA, - 0x7F, 0x06, 0x9B, 0x04, 0xE0, 0xF3, 0x18, 0xAE, - 0x59, 0xA0, 0x2B, 0x15, 0x85, 0x3E, 0x12, 0x93, - 0x3D, 0x28, 0x32, 0xF5, 0x20, 0x5D, 0x86, 0x00, - 0x1B, 0x2E, 0x36, 0x10, 0x5E, 0x6C, 0xD8, 0x29, - 0xB6, 0x3F, 0x05, 0x1C, 0xCE, 0xC2, 0x34, 0x5F, - 0x5C, 0x79, 0xD1, 0x1F, 0xA2, 0xEE, 0x8A, 0x69, - 0xB5, 0x87, 0x96, 0x6D, 0x4D, 0xC1, 0x61, 0x2C, - 0x11, 0xE7, 0x8E, 0xBF, 0x1E, 0x53, 0xD0, 0x58, - 0x76, 0xA4, 0x60, 0xA9, 0xB0, 0xF9, 0xEA, 0x3C, - 0x52, 0x9A, 0x24, 0xF1, 0x9F, 0xD3, 0x40, 0x0A, - 0x63, 0x78, 0x6A, 0x8B, 0x08, 0x22, 0x16, 0x83, - 0x6B, 0xD2, 0x49, 0x19, 0xBD, 0xFD, 0x62, 0x72, - 0xA8, 0x55, 0xAB, 0x0C, 0xB9, 0x13, 0xD5, 0xF0, - 0xF2, 0x84, 0xAF, 0x2F, 0x7B, 0x2A, 0x21, 0x0F, - 0xDA, 0x30, 0x71, 0xD6, 0x81, 0xE6, 0xEC, 0x41, - 0x90, 0x50, 0x66, 0x0E, 0xA7, 0xB8, 0xF7, 0x3A, - 0xB2, 0xCF, 0x3B, 0xFC, 0x56, 0x6F, 0xC3, 0xA6, - 0xC9, 0xA1, 0x8D, 0xBB, 0x9D, 0x75, 0xF6, 0xAA, - 0x7E, 0xF8, 0x33, 0xEF, 0xBC, 0x7C, 0x23, 0x1A, - 0x92, 0x6E, 0x2D, 0x8F, 0xED, 0xB7, 0xB1, 0x1D, - 0x67, 0x39, 0xAC, 0x0D, 0x74, 0xDB, 0x7A, 0x94, - 0x07, 0x09, 0xC0, 0xD7, 0xAD, 0xFE, 0x54, 0x91, - 0xDE, 0x45, 0xA5, 0x77, 0xCB, 0x37, 0xC6, 0x38, - 0x89, 0x88, 0x17, 0xD9, 0x4F, 0xDF, 0x25, 0xFB, - 0xFA, 0x4C, 0x80, 0x35, 0x82, 0xF4, 0x95, 0xC8, - 0xFF, 0xE9, 0x31, 0x01, 0x14, 0xB3, 0x02, 0x9E, - 0x4E, 0x43, 0x46, 0xC7, 0xEB, 0x51, 0xE5, 0x47, - 0xB4, 0xE3, 0xDC, 0x57, 0xC4, 0x98, 0x03, 0xE1, - 0xBA, 0x68, 0xCD, 0x27, 0xC5, 0x0B, 0xD4, 0x64, - 0x4B, 0x9C, 0x70, 0x65, 0x4A, 0xE4, 0x42, 0xDD, - 0xCC, 0xE2, 0x44, 0x73, 0xBE, 0x26, 0x8C, 0x5B -}; - -unsigned char table_109[256] = { - 0xE3, 0x95, 0xDB, 0x09, 0x82, 0x0A, 0x8F, 0x9E, - 0xC9, 0xDC, 0x28, 0x35, 0x0F, 0x8B, 0xA8, 0xA5, - 0x7F, 0x3D, 0x8C, 0xD1, 0x93, 0x57, 0x04, 0xAA, - 0x6A, 0x98, 0x81, 0xDD, 0x16, 0x67, 0x2E, 0xDF, - 0xED, 0xF7, 0xB2, 0xBD, 0x14, 0xB6, 0x76, 0xC8, - 0x75, 0x9F, 0x48, 0xAE, 0xBB, 0xB0, 0xF3, 0xE2, - 0xD4, 0x59, 0xD8, 0x9C, 0x64, 0xC1, 0x73, 0x21, - 0x6D, 0x96, 0x7B, 0x62, 0x56, 0x55, 0xCC, 0xFD, - 0xCE, 0x41, 0xA3, 0x43, 0x33, 0xAF, 0x23, 0x9D, - 0x6F, 0x65, 0x19, 0x52, 0xAD, 0xC6, 0xD3, 0x3F, - 0x66, 0xFF, 0xD0, 0x30, 0x6C, 0xC0, 0xEB, 0xCF, - 0x51, 0x88, 0x38, 0x72, 0x69, 0x77, 0x3B, 0xFA, - 0xBA, 0xB7, 0xA1, 0x91, 0xE0, 0x89, 0xAB, 0x44, - 0x1B, 0x05, 0x5B, 0xB9, 0x71, 0x47, 0x7E, 0xFB, - 0x02, 0xC7, 0x99, 0x6E, 0x42, 0x20, 0x90, 0x1F, - 0x4A, 0x85, 0x1A, 0xEA, 0x0C, 0x0D, 0xB3, 0xDA, - 0xE7, 0x13, 0xE6, 0xD7, 0x6B, 0x12, 0x46, 0x53, - 0xB5, 0xF8, 0x1D, 0x83, 0x54, 0x49, 0x8A, 0x26, - 0x4D, 0xDE, 0xF6, 0x03, 0xA2, 0x7D, 0x0E, 0xA0, - 0x68, 0x79, 0xCA, 0x0B, 0x5D, 0x40, 0x4F, 0x80, - 0xC2, 0xD6, 0x87, 0x70, 0xF0, 0xD2, 0x92, 0xEE, - 0xBE, 0x74, 0x5F, 0xBC, 0xA4, 0x4B, 0xFE, 0x37, - 0x60, 0xA9, 0x06, 0xA7, 0xE1, 0xF5, 0x2B, 0x10, - 0xEF, 0x2C, 0x07, 0x86, 0x7A, 0x27, 0xE9, 0xC5, - 0xAC, 0x32, 0x22, 0xF2, 0xE5, 0x8D, 0x31, 0x01, - 0x34, 0xA6, 0xB8, 0xC3, 0x3C, 0xE4, 0x08, 0x94, - 0x15, 0x4E, 0xB4, 0x39, 0x58, 0x00, 0x3E, 0x29, - 0x45, 0x3A, 0x84, 0x36, 0xF1, 0x2A, 0x50, 0x11, - 0xC4, 0x5A, 0xFC, 0xBF, 0xD9, 0xF9, 0x17, 0x9B, - 0x8E, 0x18, 0x63, 0x4C, 0x2F, 0x78, 0x2D, 0x5E, - 0x9A, 0xCD, 0x24, 0xEC, 0x7C, 0x97, 0x61, 0xCB, - 0x1E, 0xF4, 0xD5, 0xB1, 0x5C, 0x25, 0xE8, 0x1C -}; - -unsigned char table_110[256] = { - 0xC3, 0x06, 0x3C, 0xCB, 0xD2, 0x44, 0x9D, 0x48, - 0x28, 0xAA, 0xA9, 0xD0, 0x64, 0x25, 0x56, 0xCA, - 0xC2, 0xF8, 0x5C, 0xAE, 0x4E, 0x63, 0xB2, 0xE9, - 0x35, 0x11, 0xA8, 0x1A, 0x76, 0x15, 0xE0, 0x26, - 0x97, 0x99, 0xD4, 0x43, 0x80, 0xEE, 0xC1, 0x69, - 0xA6, 0x1E, 0x7A, 0x42, 0x55, 0x38, 0xBF, 0x75, - 0x0E, 0x29, 0xF5, 0xF3, 0x36, 0x7D, 0x51, 0xE8, - 0xE5, 0xEB, 0x68, 0x60, 0x0C, 0x70, 0xFD, 0xCC, - 0xE3, 0x23, 0x09, 0x6D, 0x2D, 0x6C, 0x5E, 0xB6, - 0x98, 0x8B, 0x1F, 0x50, 0x34, 0x8D, 0x10, 0x92, - 0x82, 0x85, 0xD5, 0x79, 0x02, 0xA4, 0x0A, 0xBC, - 0x40, 0xC6, 0xA3, 0x72, 0x8F, 0xC4, 0xA5, 0xE4, - 0x49, 0xD6, 0xCE, 0xA1, 0x12, 0x4F, 0x30, 0x31, - 0xDE, 0x2A, 0xF7, 0x95, 0xB5, 0x96, 0x14, 0x08, - 0xE6, 0x3D, 0x86, 0xF2, 0x47, 0x74, 0xB8, 0x5D, - 0x1D, 0x2B, 0x3A, 0x93, 0x7C, 0x6A, 0x01, 0xA0, - 0x9A, 0x4D, 0xB7, 0x71, 0xA7, 0x41, 0xC5, 0x65, - 0xC8, 0x89, 0xD1, 0x3E, 0x0D, 0xD8, 0xFF, 0x6F, - 0x7F, 0xA2, 0xFE, 0xD9, 0xF0, 0x4A, 0x07, 0x1C, - 0x0F, 0x6E, 0x03, 0x81, 0x1B, 0x05, 0xDF, 0x52, - 0xF1, 0x8A, 0xF9, 0xDD, 0x91, 0x3B, 0xD7, 0xE1, - 0x54, 0xAD, 0x90, 0x5A, 0x7B, 0xC7, 0x32, 0x62, - 0x16, 0x27, 0xB9, 0x66, 0x21, 0x88, 0xBD, 0x18, - 0x77, 0x8E, 0x94, 0x8C, 0x9B, 0x46, 0x9C, 0xB1, - 0xD3, 0x53, 0xB0, 0xBE, 0xAC, 0xAF, 0x73, 0x24, - 0xDA, 0x58, 0xE2, 0xFC, 0x78, 0xEA, 0xCD, 0xFA, - 0x37, 0xED, 0x13, 0x19, 0xC0, 0x59, 0x83, 0xBA, - 0x3F, 0x57, 0x00, 0x7E, 0xC9, 0x2E, 0x17, 0x5B, - 0x84, 0xF6, 0xE7, 0x22, 0xFB, 0x5F, 0x4C, 0x2C, - 0x61, 0x9F, 0x45, 0x39, 0xB3, 0xEC, 0x04, 0x87, - 0x67, 0xDC, 0x0B, 0xF4, 0x20, 0xAB, 0x6B, 0x9E, - 0x4B, 0xCF, 0xB4, 0x2F, 0xBB, 0xEF, 0xDB, 0x33 -}; - -unsigned char table_111[32] = { - 0x09, 0x0F, 0x00, 0x15, 0x12, 0x17, 0x1A, 0x0D, - 0x1C, 0x0B, 0x01, 0x0A, 0x05, 0x1E, 0x1D, 0x0C, - 0x1B, 0x08, 0x19, 0x18, 0x14, 0x07, 0x0E, 0x03, - 0x10, 0x16, 0x11, 0x1F, 0x04, 0x06, 0x02, 0x13 -}; - -unsigned char table_112[256] = { - 0xF9, 0x7D, 0xBE, 0xD5, 0x9F, 0xB8, 0x95, 0x43, - 0xDB, 0xAE, 0x7E, 0xEC, 0x5B, 0x58, 0x18, 0x49, - 0x4B, 0x9D, 0x1C, 0x3E, 0x61, 0xD1, 0xF6, 0x2F, - 0x41, 0x82, 0x51, 0x37, 0x72, 0x79, 0x05, 0x2A, - 0xC2, 0xB0, 0xE2, 0xE7, 0xB2, 0xF3, 0x1B, 0x92, - 0x86, 0xBB, 0xDC, 0x90, 0x1A, 0x19, 0xD7, 0xBA, - 0x2C, 0x7B, 0xEF, 0xC7, 0x8A, 0x81, 0xEB, 0xDE, - 0x73, 0x4E, 0xB7, 0x97, 0xCA, 0x29, 0x85, 0xC1, - 0xA5, 0x7F, 0xFE, 0x56, 0xE9, 0x9E, 0x21, 0x76, - 0x3A, 0x88, 0x70, 0xC6, 0xD3, 0x8C, 0x47, 0xC8, - 0x83, 0x48, 0xC3, 0x6A, 0x9C, 0x80, 0x53, 0xBD, - 0xFD, 0x54, 0x09, 0x91, 0x94, 0xAA, 0x7A, 0x59, - 0x71, 0xDD, 0xA8, 0x07, 0xCB, 0x0F, 0xE0, 0x9A, - 0x36, 0x4C, 0x4D, 0x0D, 0xA4, 0x96, 0x6F, 0x14, - 0x22, 0x38, 0xAD, 0x02, 0xF4, 0x0B, 0xEA, 0x93, - 0x20, 0x04, 0xBC, 0xE8, 0x6C, 0xFB, 0x10, 0x6B, - 0x40, 0xB6, 0x24, 0x17, 0x06, 0x31, 0xD9, 0x33, - 0xF5, 0x99, 0x57, 0xCD, 0xAB, 0x67, 0x5C, 0x30, - 0x1E, 0x34, 0xB4, 0x3F, 0x16, 0x42, 0xA2, 0x68, - 0x27, 0xB3, 0x1D, 0xED, 0x5F, 0x52, 0xF7, 0x3C, - 0x65, 0x5D, 0xE5, 0x23, 0x0C, 0x6D, 0x84, 0x6E, - 0xDA, 0x77, 0xF8, 0x15, 0xFA, 0x69, 0xD0, 0xA7, - 0x11, 0xAC, 0xA6, 0xA3, 0x1F, 0x2E, 0xBF, 0x4A, - 0x8F, 0xFC, 0xEE, 0xC9, 0x26, 0x12, 0xC0, 0xB1, - 0x45, 0x0E, 0x3D, 0x7C, 0xCE, 0x13, 0x8E, 0x98, - 0x46, 0x2B, 0xC5, 0x66, 0x28, 0x32, 0xD2, 0x03, - 0xE3, 0xC4, 0x9B, 0x89, 0x5E, 0xF0, 0xCF, 0x3B, - 0x2D, 0x50, 0xB5, 0x00, 0x0A, 0xD6, 0x55, 0xE1, - 0x62, 0x63, 0x64, 0x87, 0xAF, 0x78, 0xB9, 0xF2, - 0x25, 0x44, 0xFF, 0x39, 0xF1, 0x08, 0x4F, 0x74, - 0xA9, 0x8B, 0x75, 0x01, 0xA0, 0xE4, 0x35, 0x8D, - 0xA1, 0xCC, 0xDF, 0x60, 0xD8, 0x5A, 0xE6, 0xD4 -}; - -unsigned char table_113[256] = { - 0x46, 0x9D, 0x39, 0xB2, 0x8D, 0x3B, 0x59, 0x5A, - 0xD0, 0x9C, 0xE4, 0x04, 0x01, 0xE2, 0xB3, 0xD2, - 0xD7, 0x18, 0x40, 0xD8, 0xF1, 0xEF, 0x3A, 0x1D, - 0x8E, 0xE5, 0xD9, 0xD3, 0xCB, 0x49, 0x4C, 0xCF, - 0xC0, 0xD6, 0xB5, 0x73, 0x77, 0x82, 0x54, 0xA2, - 0xB1, 0xB0, 0x84, 0x5D, 0xC7, 0xDE, 0x31, 0x2F, - 0x50, 0x78, 0xBE, 0x94, 0x64, 0x44, 0x60, 0x7A, - 0x1A, 0x6E, 0x09, 0x6F, 0xBF, 0x76, 0x81, 0x38, - 0x22, 0xC3, 0xEE, 0x8F, 0xFB, 0x32, 0xED, 0x92, - 0xAE, 0xE6, 0x5F, 0xAA, 0xAC, 0x0D, 0xA3, 0x47, - 0x1F, 0x11, 0xC1, 0x29, 0xAF, 0xFD, 0x1C, 0xDB, - 0x00, 0x23, 0xB9, 0xB8, 0x91, 0x41, 0x27, 0x37, - 0x43, 0x02, 0x26, 0xF6, 0x7D, 0x0A, 0x85, 0x93, - 0x97, 0x2E, 0x20, 0x55, 0x13, 0x4B, 0x6C, 0xE7, - 0xFC, 0x25, 0xFA, 0x9E, 0x5B, 0xA1, 0xDF, 0x2C, - 0x3E, 0xBC, 0xEA, 0x42, 0x7C, 0x36, 0x30, 0xEB, - 0xBD, 0x8B, 0x87, 0x16, 0x3D, 0x5C, 0x07, 0xBA, - 0xB4, 0x1B, 0xC2, 0xE3, 0x71, 0x9A, 0x5E, 0x4D, - 0xF2, 0xCC, 0x0E, 0xE1, 0x34, 0x75, 0x58, 0x89, - 0x17, 0xD4, 0x68, 0x80, 0x2B, 0x74, 0x70, 0x8A, - 0x63, 0xE8, 0x56, 0x24, 0xD1, 0x57, 0x35, 0x6D, - 0x3C, 0xA6, 0xC8, 0x7E, 0xA8, 0x4E, 0xC4, 0x33, - 0xA9, 0x62, 0x61, 0x7F, 0x21, 0x98, 0x2A, 0xAD, - 0xB6, 0xA7, 0xF5, 0x3F, 0x15, 0x45, 0xF8, 0xA4, - 0x95, 0x88, 0xDC, 0x96, 0x90, 0x08, 0x9B, 0xF9, - 0x06, 0x14, 0x05, 0xF0, 0xF7, 0xA0, 0xE0, 0x65, - 0xCA, 0xA5, 0x9F, 0x79, 0xCD, 0x4F, 0x72, 0xB7, - 0x4A, 0x0F, 0x66, 0xC5, 0x0C, 0x52, 0xF3, 0x69, - 0x83, 0x03, 0x99, 0x1E, 0x2D, 0xDA, 0x8C, 0x53, - 0x28, 0xDD, 0xE9, 0x0B, 0xC9, 0xF4, 0x48, 0x12, - 0x6A, 0x19, 0xCE, 0xAB, 0x51, 0xD5, 0x6B, 0xBB, - 0xFE, 0x7B, 0x67, 0xFF, 0x10, 0xEC, 0xC6, 0x86 -}; - -unsigned char table_114[32] = { - 0x11, 0x10, 0x04, 0x1D, 0x08, 0x15, 0x1A, 0x1B, - 0x14, 0x18, 0x0F, 0x17, 0x16, 0x07, 0x1E, 0x0E, - 0x12, 0x0A, 0x13, 0x0B, 0x0C, 0x00, 0x06, 0x02, - 0x1F, 0x19, 0x09, 0x1C, 0x01, 0x0D, 0x03, 0x05 -}; - -unsigned char table_115[256] = { - 0xB7, 0xBB, 0x63, 0x0D, 0xF0, 0x33, 0x5A, 0x05, - 0xF2, 0x7F, 0x64, 0xDB, 0x51, 0xC9, 0x2C, 0x85, - 0x4F, 0x41, 0xA4, 0x42, 0xCF, 0xA6, 0x52, 0x2F, - 0x26, 0xEF, 0xFB, 0x29, 0x40, 0x16, 0xF7, 0xED, - 0x23, 0x69, 0x8A, 0xDF, 0x77, 0x28, 0x93, 0x14, - 0x82, 0x0C, 0xBE, 0x3D, 0x20, 0xB4, 0x79, 0x94, - 0x54, 0xF8, 0x07, 0xB1, 0xE1, 0x66, 0x73, 0xD3, - 0x19, 0x15, 0xFF, 0x03, 0x6A, 0x9A, 0xDC, 0x1C, - 0xB3, 0x5D, 0x76, 0x68, 0x47, 0x6C, 0xF9, 0xFD, - 0xE9, 0xDD, 0x01, 0x65, 0xBD, 0x80, 0x0E, 0x7A, - 0x8D, 0x99, 0x13, 0x7C, 0xA5, 0xA7, 0x1A, 0xCC, - 0xB8, 0xE6, 0x2B, 0xB2, 0xB6, 0xD0, 0x62, 0x2D, - 0x4D, 0xD2, 0xB9, 0x04, 0x46, 0xAE, 0xAA, 0x44, - 0xDA, 0x92, 0x4B, 0x4E, 0xC4, 0xE2, 0xFE, 0xA2, - 0x75, 0x7B, 0xC3, 0xFA, 0x9F, 0x37, 0x9D, 0x1E, - 0x72, 0xD4, 0x1F, 0x4A, 0x9B, 0xE5, 0x6D, 0xEC, - 0x5C, 0x7D, 0x98, 0xE8, 0xEE, 0x86, 0xD1, 0xC8, - 0xEA, 0x55, 0xBF, 0xAF, 0xDE, 0x32, 0x09, 0x3A, - 0x8F, 0x57, 0x83, 0x43, 0x61, 0xC6, 0x8E, 0x96, - 0x22, 0xA3, 0x97, 0x91, 0x5F, 0x11, 0x3B, 0x5B, - 0x1B, 0x34, 0x49, 0x95, 0xF1, 0x6F, 0x89, 0xA8, - 0xC0, 0x36, 0x0A, 0x3F, 0x60, 0x50, 0xE7, 0x08, - 0xCE, 0x25, 0xC1, 0x71, 0xF6, 0x59, 0x58, 0x56, - 0x4C, 0xAB, 0x27, 0xAC, 0x06, 0xCB, 0x00, 0x30, - 0x84, 0x3E, 0xC2, 0x1D, 0x02, 0xE0, 0xC5, 0xD6, - 0x18, 0x70, 0xA9, 0x88, 0xD9, 0x39, 0x8B, 0x6E, - 0xF4, 0x24, 0xA0, 0x48, 0x45, 0x21, 0x87, 0x78, - 0x38, 0x90, 0xE3, 0xCA, 0xF5, 0xD7, 0x2A, 0x53, - 0x9C, 0xCD, 0x31, 0x35, 0xAD, 0x74, 0xD8, 0x12, - 0xBC, 0x9E, 0x6B, 0x67, 0xB0, 0xBA, 0xE4, 0x10, - 0x5E, 0xFC, 0xC7, 0x0F, 0x2E, 0x81, 0x7E, 0xA1, - 0x8C, 0x17, 0xB5, 0xEB, 0xD5, 0xF3, 0x0B, 0x3C -}; - -unsigned char table_116[32] = { - 0x00, 0x05, 0x10, 0x1C, 0x0C, 0x1A, 0x04, 0x1B, - 0x0A, 0x0D, 0x14, 0x0B, 0x07, 0x03, 0x12, 0x1E, - 0x06, 0x11, 0x01, 0x08, 0x15, 0x09, 0x1F, 0x0F, - 0x19, 0x18, 0x16, 0x02, 0x13, 0x0E, 0x17, 0x1D -}; - -unsigned char table_117[256] = { - 0xD0, 0x9A, 0xAB, 0xA8, 0xA7, 0xDF, 0x28, 0xCE, - 0x3E, 0x51, 0xBF, 0x76, 0x03, 0xA0, 0x53, 0x3F, - 0x90, 0x93, 0x87, 0x67, 0x98, 0x3D, 0xEA, 0x8B, - 0x55, 0xCF, 0x10, 0xF3, 0x25, 0xFC, 0x9F, 0x41, - 0x6B, 0x54, 0x6E, 0x0B, 0x83, 0x35, 0x69, 0x7D, - 0xE0, 0x88, 0x4B, 0xE9, 0x1E, 0x96, 0x91, 0x57, - 0xBD, 0x72, 0x21, 0x3C, 0xA6, 0x99, 0x6C, 0xF6, - 0x13, 0xFA, 0x29, 0xED, 0xDB, 0x16, 0x4D, 0x07, - 0x45, 0xA5, 0xE3, 0x0E, 0x31, 0xBC, 0x56, 0x5C, - 0xB2, 0x23, 0xDA, 0x74, 0xFF, 0x02, 0x8F, 0xF4, - 0x2A, 0xC9, 0x89, 0xAA, 0x05, 0xB1, 0xD1, 0x1F, - 0x4F, 0xB0, 0x7A, 0x2C, 0x14, 0xD9, 0xE7, 0x66, - 0x62, 0x1A, 0x4C, 0xC0, 0xC6, 0x63, 0x7F, 0xB4, - 0xF1, 0x43, 0xFE, 0x61, 0xA3, 0xCC, 0xE8, 0x6D, - 0xBA, 0x65, 0x42, 0x2B, 0xCA, 0xD5, 0x52, 0x3A, - 0xCD, 0x1D, 0x24, 0xD7, 0x47, 0xDE, 0x9E, 0x95, - 0x85, 0x48, 0x86, 0xE1, 0xC5, 0xD2, 0x34, 0xAF, - 0x40, 0xFB, 0xE6, 0x4E, 0xC8, 0xF5, 0x7B, 0x5A, - 0xCB, 0xD4, 0x97, 0x6F, 0x0C, 0x79, 0x9C, 0x20, - 0x59, 0x19, 0x68, 0x2E, 0x09, 0x64, 0x73, 0x50, - 0xC2, 0x2F, 0x0D, 0xEF, 0x9D, 0x94, 0x00, 0x81, - 0xE2, 0x46, 0x5F, 0xB8, 0x0A, 0x12, 0x75, 0x1C, - 0x8C, 0xB6, 0x71, 0xAC, 0x04, 0x60, 0xA9, 0x5B, - 0xF8, 0x30, 0x49, 0x44, 0x4A, 0xBE, 0x6A, 0xEB, - 0xD3, 0xD8, 0x36, 0xB3, 0x3B, 0x17, 0x80, 0xA4, - 0xEC, 0x26, 0x82, 0xB5, 0x37, 0x5D, 0x1B, 0x2D, - 0xE5, 0xA2, 0x0F, 0xB7, 0xC4, 0xF2, 0x70, 0x39, - 0xF9, 0xC7, 0xBB, 0x8A, 0x32, 0x78, 0xC3, 0x5E, - 0xD6, 0xE4, 0x22, 0x9B, 0x18, 0x8E, 0xEE, 0x27, - 0x8D, 0x33, 0x11, 0x77, 0x01, 0x06, 0x38, 0xF0, - 0x7E, 0x08, 0x15, 0xB9, 0x7C, 0xAD, 0x84, 0xDD, - 0xC1, 0xFD, 0x92, 0xA1, 0xF7, 0xAE, 0xDC, 0x58 -}; - -unsigned char table_118[256] = { - 0x38, 0xA0, 0xA6, 0xFC, 0x7C, 0x5A, 0x97, 0x1D, - 0xFD, 0x00, 0x20, 0xA2, 0x72, 0x10, 0x1F, 0x48, - 0x98, 0x7E, 0xDF, 0x2D, 0x80, 0x0A, 0x27, 0xDC, - 0xCF, 0xBF, 0x92, 0x94, 0x53, 0xCC, 0x0E, 0x74, - 0xA7, 0x60, 0x08, 0x15, 0x87, 0x6F, 0xB3, 0xA3, - 0xED, 0x59, 0x09, 0x4F, 0x9E, 0x9A, 0xEE, 0x83, - 0x56, 0x32, 0x34, 0xC7, 0x24, 0xE7, 0x96, 0x4D, - 0xAE, 0xE3, 0xBD, 0xE2, 0x36, 0x4A, 0xB6, 0x8B, - 0xF2, 0xC1, 0xD7, 0x40, 0x31, 0x4B, 0xDA, 0xF1, - 0xB1, 0x70, 0xA8, 0xC3, 0xC6, 0x8A, 0xE6, 0x77, - 0x21, 0x7D, 0xD5, 0x0C, 0x43, 0xC4, 0xF0, 0x1B, - 0x18, 0xA1, 0x85, 0xE1, 0xFF, 0x8D, 0xE5, 0x6E, - 0x9B, 0x51, 0x1C, 0xA4, 0x5C, 0x8E, 0x69, 0x49, - 0x23, 0xCD, 0x52, 0xF8, 0x3E, 0x91, 0x5E, 0x1E, - 0x25, 0xB4, 0x93, 0xCB, 0xE0, 0x47, 0xBC, 0x4E, - 0x33, 0xB7, 0x75, 0x1A, 0x11, 0x9C, 0x3F, 0xEC, - 0xD1, 0x46, 0xDD, 0xAA, 0xB8, 0x99, 0x86, 0x67, - 0x58, 0xF9, 0x16, 0x17, 0x6D, 0x5F, 0x2B, 0xA5, - 0xD3, 0x8F, 0x55, 0x71, 0xD2, 0xBA, 0x5B, 0x3C, - 0x82, 0xB5, 0x41, 0xE4, 0x90, 0x45, 0x6C, 0xF6, - 0xDE, 0xA9, 0x84, 0x62, 0x19, 0x3B, 0xB9, 0xC8, - 0x2C, 0xB0, 0x76, 0x57, 0xD8, 0x26, 0x9D, 0x89, - 0xC9, 0x54, 0xFB, 0x07, 0xCE, 0x22, 0x5D, 0x64, - 0x65, 0xAD, 0x01, 0xDB, 0x14, 0x4C, 0x37, 0x03, - 0x6B, 0xAF, 0xD0, 0x7F, 0x9F, 0xBB, 0xEB, 0xC0, - 0x50, 0x66, 0x68, 0x0B, 0x42, 0x2A, 0xD4, 0xF5, - 0x61, 0x63, 0xF3, 0x39, 0xBE, 0xC5, 0xEF, 0x28, - 0x3A, 0xAB, 0x79, 0x05, 0xE9, 0x12, 0x73, 0x3D, - 0xB2, 0x8C, 0xCA, 0x29, 0x0F, 0xF4, 0x7B, 0x13, - 0x88, 0x44, 0xC2, 0x2E, 0xFA, 0xFE, 0x04, 0x35, - 0xE8, 0x06, 0x7A, 0x78, 0x0D, 0x81, 0xF7, 0xEA, - 0xD9, 0x2F, 0x02, 0xAC, 0x30, 0x6A, 0xD6, 0x95 -}; - -unsigned char table_119[32] = { - 0x14, 0x0A, 0x1C, 0x00, 0x0C, 0x1F, 0x1E, 0x0B, - 0x12, 0x1D, 0x17, 0x08, 0x07, 0x04, 0x09, 0x10, - 0x03, 0x1B, 0x0E, 0x1A, 0x05, 0x0D, 0x11, 0x15, - 0x18, 0x02, 0x06, 0x01, 0x19, 0x16, 0x13, 0x0F -}; - -unsigned char table_120[256] = { - 0xCE, 0x89, 0xB2, 0x72, 0x04, 0x77, 0x64, 0xAE, - 0x80, 0x99, 0xB5, 0x00, 0x7B, 0x50, 0x9D, 0xE3, - 0x87, 0x37, 0x6D, 0x3D, 0x32, 0xBA, 0x20, 0xF0, - 0xDC, 0xBD, 0x61, 0x26, 0xD4, 0xA6, 0x70, 0x54, - 0xC1, 0x7D, 0x82, 0xFF, 0x81, 0x83, 0x2F, 0xF5, - 0x3B, 0x42, 0x08, 0x5C, 0x30, 0x59, 0xBB, 0xC2, - 0x33, 0x5D, 0xEE, 0xB7, 0xF7, 0x2B, 0x76, 0xD0, - 0x43, 0x1C, 0x48, 0xFC, 0x01, 0xCD, 0x27, 0x1D, - 0x5A, 0x96, 0x95, 0x03, 0xC6, 0x1F, 0x09, 0xCB, - 0xF6, 0x47, 0xA9, 0x93, 0xA7, 0xD2, 0xDB, 0x51, - 0xB0, 0x7A, 0xE6, 0x62, 0x0F, 0x12, 0x57, 0xF4, - 0x35, 0xFE, 0xA4, 0xDF, 0x5B, 0xF3, 0x67, 0x85, - 0x98, 0xE4, 0xAB, 0x75, 0x4C, 0xE2, 0x25, 0x74, - 0x3A, 0x45, 0xDE, 0xEF, 0x4A, 0x97, 0x86, 0x24, - 0xE9, 0x8F, 0xD8, 0xD7, 0x60, 0xAD, 0x36, 0x8E, - 0x1E, 0xB9, 0x4F, 0x6B, 0x8C, 0x06, 0x23, 0x94, - 0x0E, 0xD3, 0x49, 0x14, 0x90, 0xAF, 0x65, 0xEC, - 0xF9, 0x0D, 0xED, 0x6C, 0xBE, 0x7F, 0xA5, 0xC5, - 0xEA, 0x78, 0x2E, 0xBC, 0xD5, 0xDA, 0x18, 0xE1, - 0x10, 0x2D, 0xB4, 0x16, 0x4B, 0xE8, 0xC4, 0x8D, - 0x19, 0x1B, 0x02, 0x66, 0xB6, 0xE7, 0x9C, 0x7C, - 0xC9, 0xA0, 0x2A, 0x53, 0x13, 0xDD, 0xF8, 0xA8, - 0x0A, 0x6E, 0xCF, 0x6F, 0x7E, 0xE0, 0x3E, 0xE5, - 0x07, 0xCC, 0x38, 0xD1, 0xF2, 0x2C, 0x9A, 0xAC, - 0x88, 0x79, 0xB8, 0xC8, 0xBF, 0x63, 0x71, 0x69, - 0x52, 0x39, 0x9F, 0x22, 0x3F, 0x9E, 0x44, 0xFA, - 0x73, 0x6A, 0x8B, 0xA2, 0xD6, 0x1A, 0x9B, 0xB1, - 0x8A, 0x4D, 0x58, 0xA1, 0x46, 0x5F, 0x55, 0x56, - 0x21, 0x05, 0x15, 0x92, 0xAA, 0xEB, 0x31, 0x68, - 0xFB, 0x41, 0xC3, 0x4E, 0xB3, 0x40, 0x34, 0x17, - 0xD9, 0x29, 0x3C, 0x0C, 0xF1, 0x0B, 0x28, 0x84, - 0x5E, 0xCA, 0xFD, 0x11, 0xA3, 0xC7, 0xC0, 0x91 -}; - -unsigned char table_121[32] = { - 0x1E, 0x12, 0x06, 0x1D, 0x15, 0x1F, 0x13, 0x0B, - 0x10, 0x0D, 0x1C, 0x01, 0x0A, 0x0E, 0x02, 0x19, - 0x04, 0x1A, 0x03, 0x11, 0x00, 0x16, 0x0C, 0x17, - 0x14, 0x08, 0x18, 0x05, 0x09, 0x0F, 0x1B, 0x07 -}; - -unsigned char table_122[256] = { - 0x85, 0xDF, 0x7F, 0x7C, 0x56, 0xF0, 0x0C, 0x7D, - 0x76, 0xA8, 0x58, 0x31, 0x25, 0x8A, 0x0D, 0x23, - 0x05, 0x0F, 0x12, 0x64, 0x8E, 0x5D, 0xF4, 0x2C, - 0x18, 0xFA, 0x4B, 0xFE, 0x91, 0xBF, 0x95, 0x0B, - 0xF1, 0x88, 0x10, 0xD8, 0x3E, 0x53, 0x96, 0xB5, - 0x75, 0x24, 0x8F, 0xD6, 0x68, 0x5C, 0x93, 0x1F, - 0x6B, 0xC2, 0xAB, 0xED, 0x1E, 0xC0, 0xBC, 0x47, - 0xE9, 0xD1, 0xDE, 0xCA, 0xF6, 0x62, 0x43, 0xEB, - 0xA2, 0xB4, 0x08, 0xE6, 0x74, 0x0E, 0xA1, 0x72, - 0x66, 0x61, 0x21, 0x2E, 0x32, 0x63, 0x29, 0xD7, - 0x1C, 0x22, 0xAC, 0xE7, 0x54, 0xF3, 0x65, 0x17, - 0x9F, 0x78, 0x79, 0x4C, 0xDD, 0x27, 0x90, 0x36, - 0x19, 0x44, 0x03, 0xD9, 0x4A, 0x5A, 0x34, 0xF9, - 0x97, 0xA6, 0x70, 0x39, 0x28, 0x77, 0x6E, 0xB7, - 0x8C, 0x02, 0x5E, 0x9B, 0x8D, 0x59, 0x6F, 0xA5, - 0x07, 0xE2, 0x41, 0x51, 0xC9, 0x3C, 0xE8, 0xE1, - 0xB3, 0x16, 0x50, 0x04, 0xE3, 0x1D, 0x3B, 0xD2, - 0x4D, 0x35, 0x71, 0xDA, 0x9E, 0xA7, 0xE4, 0xE0, - 0xB6, 0x2B, 0xEA, 0x84, 0x55, 0xF8, 0x57, 0x3D, - 0x73, 0x42, 0xC6, 0x0A, 0x92, 0x6A, 0xAE, 0xF5, - 0xFC, 0xD5, 0x15, 0x52, 0x7E, 0x14, 0x81, 0x13, - 0xE5, 0x49, 0x38, 0x2A, 0x94, 0x5B, 0xA3, 0x11, - 0x8B, 0x80, 0xBB, 0x01, 0x9C, 0xA4, 0xDB, 0xF7, - 0xA9, 0x20, 0xF2, 0x1A, 0xDC, 0x33, 0x3A, 0xEF, - 0xD3, 0xFD, 0x30, 0xB0, 0x1B, 0xC4, 0x06, 0xD4, - 0x6D, 0x87, 0x2F, 0x60, 0x5F, 0xC5, 0x09, 0x37, - 0xAF, 0x00, 0xCB, 0x9D, 0xA0, 0xB9, 0x45, 0x86, - 0x4F, 0x6C, 0x67, 0xFB, 0x40, 0x3F, 0xCC, 0xB8, - 0xC8, 0x82, 0x98, 0x99, 0x7B, 0xB1, 0xCD, 0xD0, - 0xBD, 0x48, 0xAD, 0x26, 0x7A, 0x9A, 0x46, 0xFF, - 0x89, 0xC7, 0xC1, 0xCF, 0xBE, 0xAA, 0xEC, 0xBA, - 0xCE, 0x2D, 0x4E, 0x83, 0xC3, 0x69, 0xEE, 0xB2 -}; - -unsigned char table_123[256] = { - 0x9D, 0xFB, 0x3C, 0x81, 0xAA, 0x05, 0xB2, 0xBE, - 0xD1, 0x5F, 0x4C, 0xE0, 0xA3, 0xF4, 0xDE, 0x35, - 0xFE, 0x1B, 0x37, 0x99, 0x94, 0x7A, 0x10, 0xAB, - 0xC0, 0xA4, 0xB5, 0xFF, 0x8F, 0x3B, 0xB4, 0x51, - 0x04, 0xE9, 0xB9, 0xC1, 0x98, 0xC5, 0x82, 0x38, - 0x4D, 0x71, 0xFC, 0x33, 0xC4, 0x50, 0x5D, 0x88, - 0xB8, 0x5C, 0x32, 0xE2, 0xBB, 0xCD, 0x60, 0x2C, - 0xD4, 0x7E, 0x27, 0x59, 0x2B, 0x1F, 0x53, 0xF6, - 0x25, 0x86, 0xAE, 0x21, 0xFA, 0x31, 0xD7, 0x0F, - 0x17, 0xDA, 0x7F, 0xC9, 0x46, 0x19, 0x08, 0xA8, - 0xCF, 0x13, 0xCC, 0x03, 0x3F, 0x22, 0x6E, 0xEB, - 0x4A, 0x63, 0x73, 0xBD, 0x36, 0xED, 0x30, 0x57, - 0x65, 0xF8, 0x41, 0x61, 0x1E, 0xA0, 0xC6, 0x45, - 0x3E, 0x75, 0x28, 0x87, 0xCB, 0xD6, 0x16, 0xD8, - 0xDF, 0xEF, 0xEA, 0xA7, 0x58, 0xB0, 0x1D, 0xE6, - 0x47, 0x76, 0xD9, 0x96, 0xE7, 0xDC, 0x00, 0x80, - 0xDD, 0xB7, 0x9A, 0xE1, 0xF5, 0x9C, 0x4B, 0xE3, - 0xBC, 0x8D, 0xF2, 0x2F, 0x9F, 0x6C, 0x93, 0xAF, - 0xA9, 0xC2, 0x5E, 0x24, 0x15, 0xD2, 0x09, 0x0D, - 0xDB, 0x4F, 0x91, 0x0E, 0x64, 0x34, 0x4E, 0xAD, - 0x62, 0x44, 0x23, 0x85, 0xB6, 0xAC, 0xC7, 0xCA, - 0x84, 0xF9, 0x8C, 0xBF, 0x14, 0x7C, 0x8E, 0x92, - 0xF0, 0x0B, 0xCE, 0x90, 0x7D, 0x70, 0x9E, 0x54, - 0x39, 0x5B, 0x6D, 0x52, 0xEE, 0xA2, 0x6F, 0x78, - 0x2D, 0x95, 0x8B, 0x02, 0x3D, 0x7B, 0x69, 0xC3, - 0x49, 0xA5, 0x1A, 0x26, 0xD5, 0x6B, 0xE8, 0xFD, - 0xB3, 0xD3, 0x20, 0x55, 0x18, 0x06, 0xF3, 0xB1, - 0x0C, 0xC8, 0x07, 0x12, 0xF7, 0x01, 0x2E, 0x72, - 0x97, 0xA6, 0x11, 0x89, 0x56, 0x5A, 0x29, 0xBA, - 0x67, 0x42, 0x83, 0x6A, 0x2A, 0xF1, 0xA1, 0x9B, - 0xE5, 0xE4, 0x74, 0x66, 0x1C, 0x68, 0xEC, 0x40, - 0x48, 0x77, 0xD0, 0x0A, 0x8A, 0x3A, 0x43, 0x79 -}; - -unsigned char table_124[256] = { - 0x6C, 0xC3, 0x28, 0x2F, 0x42, 0x4B, 0x7C, 0x3C, - 0xCE, 0x24, 0xC8, 0x51, 0x25, 0x3F, 0x49, 0x8D, - 0x1E, 0x5C, 0x89, 0x3A, 0x98, 0x47, 0x0B, 0x12, - 0xA9, 0xB1, 0xD7, 0xB6, 0x5D, 0xF9, 0x5A, 0xBC, - 0xFA, 0x06, 0x7D, 0x08, 0xFC, 0x37, 0x54, 0x4F, - 0xD4, 0xCD, 0xA7, 0x5E, 0xE0, 0x92, 0x82, 0x56, - 0xF1, 0x2B, 0xC4, 0xE2, 0x29, 0xEA, 0x35, 0x57, - 0x33, 0x4E, 0x1A, 0x17, 0x8B, 0x85, 0xBF, 0xD5, - 0x18, 0xB3, 0x0D, 0x71, 0x45, 0x81, 0xB4, 0x27, - 0xD1, 0xE1, 0xFF, 0x44, 0x9E, 0xA4, 0x15, 0x9A, - 0x90, 0xC7, 0x79, 0xE3, 0x4C, 0xE9, 0x3D, 0x6B, - 0xF5, 0xF4, 0xEE, 0xAA, 0xDB, 0x07, 0x09, 0xCF, - 0x7B, 0x95, 0xA0, 0x53, 0x8F, 0xA1, 0x9D, 0xBE, - 0x6F, 0xAE, 0x96, 0x46, 0x59, 0x01, 0x84, 0xCC, - 0x3B, 0x8E, 0xF7, 0x4D, 0x6E, 0xDC, 0xE8, 0x36, - 0x7A, 0xE5, 0xBD, 0xE7, 0x9F, 0x2C, 0x52, 0xAB, - 0x55, 0x13, 0x1D, 0xFB, 0x58, 0x9C, 0xDF, 0xC0, - 0x30, 0x73, 0x67, 0x39, 0x74, 0xD3, 0x11, 0xD2, - 0x0E, 0x20, 0xB7, 0x02, 0xB9, 0x1C, 0x86, 0x76, - 0x10, 0x68, 0x9B, 0x63, 0x48, 0x8A, 0xB2, 0xB8, - 0xAF, 0x26, 0x99, 0x04, 0xB0, 0xE4, 0xEF, 0xEB, - 0xEC, 0x6D, 0x61, 0xC1, 0xD0, 0x38, 0xC9, 0x19, - 0x60, 0xA8, 0xA6, 0xF8, 0x80, 0xC5, 0x03, 0x0F, - 0x22, 0x2D, 0x88, 0x32, 0x77, 0x70, 0xFE, 0x0C, - 0x31, 0x40, 0x5F, 0xED, 0xA5, 0x93, 0x43, 0xF0, - 0x8C, 0xE6, 0x34, 0x21, 0xD9, 0xC2, 0xD8, 0xC6, - 0x6A, 0xD6, 0xCB, 0xAC, 0x75, 0xB5, 0x78, 0x0A, - 0xA3, 0x69, 0x16, 0xBA, 0x50, 0x2A, 0x41, 0x83, - 0xF6, 0x64, 0x00, 0x65, 0x7E, 0xDD, 0x5B, 0xDA, - 0x14, 0xFD, 0x3E, 0x7F, 0xCA, 0x66, 0x4A, 0x1F, - 0xA2, 0xAD, 0xF2, 0x23, 0xBB, 0x72, 0xF3, 0x94, - 0x62, 0x1B, 0xDE, 0x91, 0x87, 0x97, 0x05, 0x2E -}; - -unsigned char table_125[32] = { - 0x1A, 0x18, 0x12, 0x15, 0x00, 0x1C, 0x01, 0x0B, - 0x19, 0x1B, 0x1F, 0x11, 0x07, 0x10, 0x1E, 0x06, - 0x17, 0x04, 0x0A, 0x0E, 0x0D, 0x0C, 0x16, 0x08, - 0x02, 0x03, 0x13, 0x14, 0x09, 0x1D, 0x05, 0x0F -}; - -unsigned char table_126[32] = { - 0x1C, 0x1D, 0x07, 0x12, 0x18, 0x1A, 0x19, 0x09, - 0x0F, 0x14, 0x1F, 0x0B, 0x13, 0x04, 0x0E, 0x1E, - 0x0C, 0x0D, 0x01, 0x17, 0x1B, 0x16, 0x0A, 0x05, - 0x15, 0x10, 0x11, 0x08, 0x00, 0x03, 0x06, 0x02 -}; - -unsigned char table_127[256] = { - 0xA0, 0x66, 0xD8, 0x08, 0xEA, 0x39, 0x78, 0xAB, - 0x61, 0x4E, 0xC7, 0xD1, 0xA3, 0x1C, 0x9F, 0xCB, - 0x19, 0x51, 0x15, 0x92, 0x23, 0xFD, 0x7D, 0x1D, - 0x95, 0xAE, 0x0E, 0x8B, 0xE6, 0x7F, 0x86, 0x6D, - 0x06, 0xBD, 0x20, 0x1F, 0x3A, 0xE4, 0x54, 0x91, - 0x69, 0xD3, 0xE3, 0x3D, 0x4D, 0x31, 0x49, 0xA4, - 0x41, 0xF3, 0xE0, 0x11, 0x14, 0x9B, 0x96, 0x5A, - 0xC4, 0x8E, 0x34, 0xDB, 0xBA, 0x83, 0xD9, 0x81, - 0xAF, 0x58, 0x8A, 0x79, 0x13, 0xBC, 0x85, 0x37, - 0x9E, 0x6C, 0x57, 0x71, 0x8D, 0x97, 0x5F, 0x6F, - 0x1E, 0x74, 0x27, 0xFC, 0x5C, 0x7A, 0x64, 0x87, - 0xF5, 0xC6, 0xF2, 0x4F, 0xDE, 0x80, 0xAA, 0x84, - 0x2E, 0xDC, 0xE7, 0x40, 0x75, 0xC5, 0xB3, 0xC8, - 0xCE, 0x21, 0x02, 0x67, 0xB7, 0x10, 0x47, 0x6A, - 0xEE, 0x53, 0x2C, 0x16, 0x05, 0xC0, 0x63, 0x4C, - 0x0D, 0xBB, 0xC3, 0x38, 0x46, 0x68, 0x7E, 0xF9, - 0xB8, 0xB4, 0x3E, 0x36, 0xD5, 0xEC, 0x0B, 0xF6, - 0x33, 0x0A, 0x0F, 0x5B, 0xFB, 0x45, 0xEB, 0xA9, - 0x6E, 0x6B, 0xCF, 0x55, 0x99, 0xAC, 0x22, 0xBE, - 0xB1, 0xA2, 0x3F, 0x25, 0x77, 0x8F, 0x7C, 0xF1, - 0xD4, 0x59, 0xA8, 0xE5, 0xD7, 0xCA, 0xA1, 0x93, - 0xE9, 0xAD, 0xF7, 0x94, 0xEF, 0xED, 0x3C, 0x2A, - 0x88, 0xB5, 0x35, 0x9D, 0x9C, 0x32, 0x5E, 0xB6, - 0x48, 0x9A, 0x7B, 0x26, 0x50, 0x90, 0x04, 0xA7, - 0xDD, 0x09, 0xB9, 0x98, 0xB2, 0xFE, 0xDF, 0x44, - 0x89, 0x29, 0x5D, 0xE2, 0x72, 0xC9, 0x28, 0x03, - 0x43, 0x8C, 0x52, 0x18, 0xC1, 0x56, 0x1B, 0x1A, - 0x01, 0x65, 0xDA, 0xBF, 0x07, 0xFF, 0x76, 0xE8, - 0x30, 0xA5, 0x4A, 0xA6, 0x12, 0x62, 0x24, 0x60, - 0x4B, 0x73, 0x0C, 0xF0, 0xFA, 0x42, 0xF4, 0x00, - 0xD2, 0xD0, 0xD6, 0x3B, 0xC2, 0x2F, 0xE1, 0x2B, - 0x70, 0xF8, 0x17, 0xCD, 0xB0, 0xCC, 0x82, 0x2D -}; - -unsigned char table_128[32] = { - 0x1A, 0x1C, 0x09, 0x17, 0x1B, 0x0B, 0x16, 0x1E, - 0x14, 0x0C, 0x12, 0x0E, 0x05, 0x03, 0x1F, 0x15, - 0x19, 0x0D, 0x10, 0x13, 0x0A, 0x01, 0x00, 0x11, - 0x02, 0x08, 0x0F, 0x18, 0x07, 0x04, 0x1D, 0x06 -}; - -unsigned char table_129[256] = { - 0x9D, 0x5F, 0xE8, 0x99, 0x57, 0x07, 0x16, 0xA6, - 0x9F, 0xB6, 0xDE, 0xED, 0x2D, 0xB3, 0xC0, 0x8E, - 0xCC, 0x49, 0xCE, 0xB0, 0x1B, 0xB1, 0x7A, 0xE0, - 0xEB, 0x28, 0xDB, 0x7D, 0x88, 0xC8, 0x06, 0x6C, - 0x02, 0xD0, 0x85, 0x7E, 0xDF, 0xF5, 0x78, 0xE5, - 0xA9, 0x71, 0xD9, 0xDD, 0xDC, 0xEE, 0x8C, 0x54, - 0xA0, 0x86, 0xFE, 0x0E, 0x55, 0xF7, 0x41, 0x47, - 0x1D, 0x15, 0xD6, 0xA4, 0xFF, 0x1F, 0x25, 0xF8, - 0x12, 0xE9, 0x74, 0x7B, 0x04, 0xE6, 0x4C, 0x31, - 0xA2, 0xBE, 0x0C, 0xB9, 0x17, 0xBD, 0x3D, 0xF0, - 0x9E, 0x4D, 0x4E, 0xB2, 0xE7, 0x40, 0xC9, 0x8A, - 0x67, 0x5E, 0x19, 0x0F, 0xB7, 0x22, 0x8D, 0xBA, - 0xFC, 0x93, 0x14, 0xEA, 0xFD, 0x0D, 0xD5, 0x38, - 0xA1, 0x84, 0x1C, 0x35, 0x60, 0x37, 0x43, 0x9C, - 0xCF, 0xEF, 0x3A, 0x72, 0xF2, 0x61, 0x75, 0x6A, - 0x42, 0xAC, 0xD3, 0x48, 0x77, 0xC5, 0x29, 0xF6, - 0x58, 0x79, 0xFA, 0x5D, 0xC7, 0x70, 0x53, 0x9A, - 0x6F, 0xC1, 0x0A, 0x90, 0x8F, 0x3E, 0x3B, 0x8B, - 0xEC, 0xBC, 0x20, 0x27, 0xC3, 0x66, 0x3F, 0x33, - 0xA5, 0x44, 0x2E, 0x32, 0x65, 0x18, 0xFB, 0x59, - 0x52, 0x50, 0xE2, 0x63, 0x2B, 0xCD, 0x64, 0xCB, - 0xD2, 0x68, 0x10, 0xA7, 0xAE, 0x11, 0xA8, 0x96, - 0x69, 0xAF, 0xC2, 0x34, 0x5C, 0x56, 0xE3, 0xF9, - 0xDA, 0x51, 0x81, 0x4A, 0x05, 0x00, 0xB8, 0x7C, - 0x30, 0x2F, 0x46, 0xB4, 0xC6, 0x87, 0x4B, 0x94, - 0x80, 0xF4, 0x7F, 0x3C, 0x26, 0xF1, 0x5B, 0xAB, - 0x91, 0x6E, 0x08, 0x76, 0x98, 0xD1, 0xE1, 0x36, - 0x21, 0xCA, 0xD8, 0x24, 0x9B, 0x39, 0xBB, 0xAD, - 0x13, 0x62, 0x97, 0x1A, 0x6D, 0x2C, 0x5A, 0xC4, - 0xD4, 0xA3, 0x03, 0xBF, 0x1E, 0xE4, 0xF3, 0x95, - 0x23, 0x73, 0x92, 0xB5, 0x01, 0x83, 0x82, 0xAA, - 0x09, 0x45, 0x6B, 0xD7, 0x0B, 0x89, 0x4F, 0x2A -}; - -unsigned char table_130[32] = { - 0x07, 0x03, 0x15, 0x0B, 0x02, 0x11, 0x17, 0x14, - 0x05, 0x10, 0x0A, 0x0F, 0x01, 0x1C, 0x1D, 0x0E, - 0x12, 0x06, 0x18, 0x16, 0x1A, 0x09, 0x13, 0x19, - 0x1B, 0x00, 0x08, 0x0D, 0x0C, 0x1E, 0x04, 0x1F -}; - -unsigned char table_131[32] = { - 0x1D, 0x13, 0x1B, 0x10, 0x07, 0x03, 0x0A, 0x02, - 0x00, 0x0C, 0x0E, 0x0B, 0x0D, 0x18, 0x12, 0x1F, - 0x1A, 0x04, 0x15, 0x11, 0x1E, 0x08, 0x1C, 0x14, - 0x19, 0x05, 0x0F, 0x17, 0x06, 0x01, 0x09, 0x16 -}; - -unsigned char table_132[256] = { - 0x33, 0x8D, 0x45, 0x6F, 0xFF, 0xF5, 0xB6, 0x53, - 0x3B, 0xF3, 0x07, 0xA4, 0x97, 0xEB, 0x6B, 0xA5, - 0xD3, 0xDC, 0x7B, 0x79, 0x93, 0xE7, 0xF7, 0x67, - 0x9C, 0x4F, 0x88, 0xF9, 0x3A, 0x2B, 0x27, 0x48, - 0x47, 0x18, 0xF4, 0xAD, 0xB4, 0x8F, 0x2A, 0x76, - 0x17, 0xE9, 0x1F, 0x40, 0x0C, 0x59, 0xD1, 0x4C, - 0x20, 0x31, 0x73, 0x54, 0xCD, 0x68, 0x08, 0x52, - 0x10, 0x62, 0x3D, 0xD2, 0x77, 0xF2, 0xD7, 0x30, - 0xCA, 0x16, 0x01, 0x50, 0x9F, 0x3F, 0x75, 0xED, - 0x90, 0x6A, 0x34, 0xCE, 0x05, 0x78, 0x5E, 0xD6, - 0x85, 0xCC, 0x29, 0xB8, 0xC1, 0x0D, 0xCB, 0x80, - 0x2E, 0x04, 0x00, 0x44, 0x32, 0x95, 0xBF, 0xFE, - 0x6E, 0x7C, 0xFD, 0xA7, 0x3C, 0x5C, 0xF0, 0xEC, - 0xAC, 0xF8, 0xB9, 0xC0, 0x1B, 0x3E, 0xE8, 0x66, - 0x5D, 0xDE, 0x49, 0x71, 0xAA, 0xAF, 0x21, 0x64, - 0x28, 0x8A, 0x4E, 0x98, 0x58, 0xA2, 0x23, 0xCF, - 0x9E, 0x63, 0x61, 0x91, 0x12, 0xC6, 0x8C, 0x19, - 0xA8, 0xD4, 0xC7, 0xDD, 0xFC, 0xBD, 0x38, 0xDF, - 0xEA, 0x2D, 0x7E, 0x7D, 0xE3, 0xE0, 0xC3, 0xD9, - 0x8B, 0x11, 0xF1, 0x4D, 0xC8, 0xB5, 0x55, 0xAE, - 0xE1, 0x89, 0xE5, 0xB3, 0xBC, 0x69, 0x9D, 0xA6, - 0x09, 0x9A, 0x74, 0x35, 0x1A, 0xFB, 0x24, 0xB7, - 0x13, 0x14, 0x94, 0x0A, 0x86, 0x0F, 0x60, 0x51, - 0xB0, 0x84, 0x22, 0x5B, 0x87, 0x43, 0x57, 0x0B, - 0x2F, 0x5F, 0x02, 0xD0, 0xBB, 0xA3, 0xC9, 0x7A, - 0xBE, 0xC2, 0x26, 0x46, 0xDB, 0x1E, 0x1D, 0x92, - 0xE2, 0xB2, 0x37, 0x6D, 0xD5, 0x4A, 0x0E, 0x4B, - 0x8E, 0xC5, 0x42, 0x99, 0xEE, 0xE4, 0xB1, 0x06, - 0xAB, 0x5A, 0x56, 0x41, 0x65, 0xBA, 0xFA, 0x83, - 0x15, 0xDA, 0x72, 0xA1, 0x81, 0x1C, 0xA9, 0x36, - 0x25, 0x96, 0x6C, 0x39, 0x82, 0xE6, 0x2C, 0x9B, - 0xC4, 0x7F, 0xA0, 0xD8, 0xEF, 0x03, 0x70, 0xF6 -}; - -unsigned char table_133[256] = { - 0x02, 0xF0, 0xED, 0xC4, 0xE4, 0x67, 0x60, 0x8B, - 0xF3, 0x77, 0x92, 0xE0, 0x85, 0x93, 0x1E, 0x8E, - 0x9A, 0x38, 0x61, 0x20, 0xB7, 0x68, 0xE1, 0x5E, - 0xD5, 0x63, 0xA9, 0xA5, 0xBE, 0x36, 0x12, 0x4D, - 0x86, 0x16, 0xD6, 0xB1, 0x23, 0x64, 0x4F, 0x62, - 0xFC, 0xA3, 0xD3, 0x04, 0x7D, 0x8C, 0xE2, 0xFF, - 0x5D, 0x30, 0xF5, 0x95, 0x1B, 0x5F, 0x73, 0xAA, - 0xE8, 0x07, 0x87, 0xDC, 0x54, 0x7C, 0xEE, 0x00, - 0xB8, 0xDE, 0x55, 0xBA, 0xD0, 0x50, 0xBB, 0x89, - 0x1C, 0xCC, 0x0E, 0xC0, 0x42, 0x11, 0xD8, 0xA2, - 0x2E, 0x33, 0xFE, 0x26, 0xD4, 0x10, 0xDA, 0xC5, - 0xFB, 0xAF, 0x98, 0x78, 0xB5, 0xBD, 0xC8, 0x8D, - 0x46, 0xA0, 0xD1, 0x7B, 0xBC, 0x75, 0xAB, 0x25, - 0xB2, 0x43, 0x57, 0xB6, 0xEC, 0xF4, 0x66, 0x05, - 0x9C, 0x08, 0x53, 0x80, 0xEA, 0x21, 0x2C, 0x6C, - 0x17, 0x71, 0xD2, 0x70, 0x76, 0x9E, 0x6B, 0x7A, - 0x58, 0xA7, 0xBF, 0x29, 0x03, 0x1F, 0x06, 0xC1, - 0xDD, 0x2F, 0x5C, 0x0B, 0x0D, 0x8A, 0x0A, 0xCB, - 0xCA, 0x6F, 0x19, 0x6A, 0xFA, 0xF7, 0xA8, 0xA1, - 0xEB, 0x88, 0x44, 0xAC, 0x01, 0x4E, 0x59, 0x94, - 0x72, 0x2B, 0xE9, 0x0F, 0x22, 0x9B, 0x27, 0x37, - 0x41, 0xF9, 0xF2, 0xE3, 0xEF, 0xB3, 0xD9, 0x2A, - 0x31, 0xC2, 0x0C, 0x15, 0x90, 0x14, 0xF6, 0x83, - 0xFD, 0x96, 0x9D, 0x7F, 0xA4, 0x39, 0xE7, 0x3F, - 0xE6, 0xC7, 0xCD, 0x1A, 0xCF, 0x48, 0x3C, 0x51, - 0x6D, 0x5B, 0x74, 0xC3, 0xC9, 0x09, 0x3D, 0x9F, - 0xDB, 0x32, 0x40, 0x18, 0xD7, 0xCE, 0x69, 0x49, - 0x3A, 0xF1, 0xB9, 0x56, 0x91, 0x99, 0x84, 0x24, - 0x7E, 0x34, 0x4B, 0xA6, 0x47, 0xB4, 0x6E, 0xDF, - 0x65, 0x3B, 0xAD, 0x45, 0x13, 0xC6, 0x81, 0xF8, - 0x4A, 0x2D, 0x8F, 0x4C, 0x97, 0x28, 0x3E, 0xE5, - 0x5A, 0x35, 0xB0, 0xAE, 0x82, 0x79, 0x1D, 0x52 -}; - -unsigned char table_134[32] = { - 0x09, 0x0F, 0x10, 0x0C, 0x03, 0x15, 0x07, 0x17, - 0x0E, 0x0B, 0x1D, 0x08, 0x19, 0x11, 0x00, 0x0A, - 0x01, 0x06, 0x18, 0x16, 0x0D, 0x13, 0x14, 0x12, - 0x02, 0x1B, 0x1A, 0x04, 0x05, 0x1F, 0x1C, 0x1E -}; - -unsigned char table_135[256] = { - 0x14, 0x34, 0xEA, 0x02, 0x2B, 0x5A, 0x10, 0x51, - 0xF3, 0x8F, 0x28, 0xB2, 0x50, 0x8B, 0x01, 0xCC, - 0x80, 0x15, 0x29, 0x42, 0xF4, 0x1D, 0xFB, 0xBB, - 0x1F, 0x43, 0x8C, 0x17, 0x1E, 0x81, 0x04, 0x98, - 0x46, 0xD8, 0xD5, 0x65, 0x4C, 0x1C, 0xDB, 0x40, - 0x5F, 0x1A, 0x31, 0x74, 0xF1, 0x64, 0x19, 0x05, - 0xFC, 0xF0, 0x73, 0xB6, 0x23, 0x77, 0x9C, 0xCE, - 0x70, 0xEF, 0xDA, 0xE0, 0xA2, 0x78, 0x84, 0xEB, - 0x9E, 0xC5, 0x95, 0xA3, 0xF6, 0xCA, 0xAD, 0x52, - 0xD0, 0x3F, 0x54, 0xA7, 0x33, 0xA9, 0x09, 0x6A, - 0x89, 0x7E, 0x75, 0xA8, 0xD6, 0x79, 0x9F, 0xAB, - 0x8E, 0x11, 0x0E, 0x3B, 0xAA, 0xE6, 0x85, 0x53, - 0x0A, 0x59, 0xEC, 0x94, 0xD7, 0x41, 0x86, 0x7D, - 0x2F, 0xC7, 0xDE, 0x06, 0xCB, 0x13, 0xBA, 0x58, - 0xC8, 0xC9, 0x07, 0x67, 0x7F, 0xA5, 0xB4, 0x2C, - 0x48, 0x6C, 0xB8, 0xD1, 0x30, 0xD3, 0x35, 0x4F, - 0x88, 0x26, 0x93, 0x32, 0x71, 0x3E, 0x3D, 0xF7, - 0x6D, 0x03, 0xED, 0x8A, 0x36, 0x55, 0x9B, 0x66, - 0x8D, 0x27, 0x7C, 0xF9, 0xA6, 0xC3, 0x20, 0x69, - 0x4A, 0xE3, 0x99, 0x5C, 0xBC, 0x45, 0x16, 0x6B, - 0xB9, 0x49, 0x82, 0xFF, 0xBD, 0xDD, 0xE9, 0x0C, - 0xD4, 0x44, 0xFD, 0x22, 0xE5, 0xAC, 0x61, 0xC4, - 0x90, 0x47, 0x37, 0x72, 0xA4, 0x7A, 0x24, 0x4D, - 0x5B, 0x12, 0x38, 0x92, 0x87, 0x1B, 0xE1, 0xA0, - 0x91, 0x3C, 0xEE, 0x6F, 0xC1, 0x0F, 0x56, 0xC2, - 0x9A, 0xF8, 0x18, 0xE8, 0xD2, 0xDC, 0x4B, 0xCF, - 0x39, 0xF5, 0xFE, 0x2A, 0x2D, 0x9D, 0xA1, 0xFA, - 0xE7, 0xBF, 0x6E, 0xE4, 0x2E, 0xB3, 0xCD, 0xE2, - 0xAF, 0x7B, 0xC0, 0x68, 0x97, 0xB5, 0x5D, 0xB7, - 0x21, 0x57, 0x83, 0x76, 0xB1, 0xAE, 0x5E, 0x0D, - 0x96, 0x4E, 0x08, 0xC6, 0x0B, 0xDF, 0x3A, 0xB0, - 0x00, 0x63, 0xD9, 0xBE, 0xF2, 0x60, 0x25, 0x62 -}; - -unsigned char table_136[256] = { - 0xD3, 0x1A, 0x00, 0xED, 0x59, 0x24, 0xA3, 0xF2, - 0xBA, 0x58, 0x4C, 0x5C, 0x75, 0x48, 0x98, 0xB0, - 0xCF, 0xC3, 0xF7, 0x88, 0x70, 0xB3, 0x3D, 0x3E, - 0x03, 0xF9, 0xC9, 0xFD, 0x80, 0x44, 0x7F, 0x3B, - 0x95, 0x5F, 0x31, 0x47, 0x15, 0x07, 0xB8, 0x08, - 0xCE, 0xDA, 0x71, 0x9F, 0x83, 0xB1, 0x55, 0x16, - 0xE6, 0xB2, 0xC7, 0xBE, 0x54, 0xE7, 0x2E, 0x8D, - 0x12, 0x21, 0x41, 0x69, 0xFE, 0x28, 0x11, 0x56, - 0x5A, 0xDD, 0xB6, 0x87, 0x78, 0x82, 0x4D, 0x7B, - 0x50, 0x9A, 0x9E, 0x62, 0xF8, 0x0A, 0x64, 0xF1, - 0x4E, 0x33, 0xAD, 0xBB, 0x79, 0x76, 0xD8, 0xCD, - 0x86, 0x34, 0x29, 0xD5, 0x7D, 0x72, 0xC5, 0xC1, - 0xDF, 0x09, 0x4A, 0xB4, 0xD2, 0x7A, 0xF0, 0xCC, - 0x0F, 0xA7, 0xD6, 0x2B, 0x20, 0x26, 0xEF, 0xAB, - 0x74, 0x1E, 0xE3, 0x77, 0xCB, 0x7C, 0x73, 0x5E, - 0x6B, 0x0D, 0x65, 0xA6, 0x30, 0xFB, 0xD0, 0xB7, - 0xAA, 0x94, 0x9D, 0x85, 0x13, 0x18, 0xA8, 0xF3, - 0xE0, 0xBC, 0x45, 0xCA, 0xC8, 0xDC, 0xE2, 0x3C, - 0x23, 0xE5, 0xB9, 0x90, 0x49, 0xA5, 0xE4, 0x36, - 0xFC, 0x53, 0xF6, 0xE8, 0xC6, 0x2C, 0x02, 0x25, - 0xC0, 0x8F, 0x61, 0xA4, 0x39, 0x8C, 0x5D, 0xAE, - 0x22, 0x1C, 0x2F, 0xD4, 0x6C, 0xD1, 0x51, 0xEA, - 0x4F, 0x7E, 0xA0, 0xF5, 0x6A, 0x32, 0xA2, 0x01, - 0xB5, 0x10, 0x2A, 0xAC, 0xA9, 0x06, 0xC4, 0x91, - 0x68, 0xE1, 0xBD, 0x14, 0x38, 0xFA, 0x6E, 0x3F, - 0x37, 0x66, 0xDB, 0x57, 0x43, 0x1B, 0x67, 0xAF, - 0x1F, 0x0B, 0x6D, 0x2D, 0x89, 0x04, 0x4B, 0x52, - 0xC2, 0xBF, 0xA1, 0x92, 0x99, 0x6F, 0x63, 0x81, - 0x27, 0x05, 0x96, 0x3A, 0xEC, 0x0E, 0x97, 0xD9, - 0xDE, 0x46, 0x35, 0x8B, 0x8E, 0x8A, 0xF4, 0xFF, - 0x60, 0xD7, 0xE9, 0x17, 0xEB, 0x9C, 0x84, 0x0C, - 0x93, 0x1D, 0x9B, 0x5B, 0x40, 0xEE, 0x42, 0x19 -}; - -unsigned char table_137[32] = { - 0x0F, 0x09, 0x02, 0x06, 0x18, 0x0B, 0x1E, 0x05, - 0x11, 0x1D, 0x16, 0x01, 0x13, 0x10, 0x0E, 0x1A, - 0x1B, 0x00, 0x0D, 0x08, 0x15, 0x14, 0x19, 0x17, - 0x03, 0x1F, 0x0A, 0x12, 0x0C, 0x07, 0x04, 0x1C -}; - -unsigned char table_138[32] = { - 0x0D, 0x1C, 0x1F, 0x15, 0x0F, 0x14, 0x1B, 0x12, - 0x09, 0x0B, 0x19, 0x07, 0x11, 0x16, 0x0C, 0x04, - 0x13, 0x05, 0x1D, 0x03, 0x0E, 0x0A, 0x08, 0x1E, - 0x01, 0x06, 0x18, 0x17, 0x10, 0x1A, 0x02, 0x00 -}; - -unsigned char table_139[32] = { - 0x05, 0x15, 0x1D, 0x02, 0x0F, 0x03, 0x17, 0x1A, - 0x0A, 0x00, 0x1F, 0x12, 0x0E, 0x11, 0x1B, 0x13, - 0x0B, 0x0D, 0x09, 0x18, 0x1E, 0x08, 0x14, 0x07, - 0x0C, 0x04, 0x16, 0x19, 0x1C, 0x06, 0x10, 0x01 -}; - -unsigned char table_140[32] = { - 0x06, 0x1E, 0x0C, 0x11, 0x13, 0x08, 0x15, 0x01, - 0x1D, 0x03, 0x0F, 0x19, 0x18, 0x04, 0x00, 0x14, - 0x12, 0x1A, 0x0B, 0x0E, 0x02, 0x1B, 0x07, 0x05, - 0x1F, 0x17, 0x09, 0x0A, 0x0D, 0x16, 0x10, 0x1C -}; - -unsigned char table_141[256] = { - 0xE1, 0x0A, 0x28, 0xCD, 0x8A, 0x1E, 0x26, 0x10, - 0xC0, 0x6F, 0x06, 0x2C, 0xF8, 0x51, 0x6C, 0x8F, - 0xA8, 0x8C, 0x41, 0xF4, 0xED, 0x36, 0xAC, 0x89, - 0xBD, 0x9D, 0x42, 0x50, 0x95, 0x07, 0x2A, 0x9B, - 0x7E, 0xA3, 0x6B, 0x30, 0x72, 0x4E, 0xBE, 0xD8, - 0x8B, 0x5B, 0x1A, 0x56, 0x05, 0xEF, 0xEE, 0x64, - 0xFF, 0xFD, 0x93, 0xB5, 0xD6, 0x04, 0x57, 0xAE, - 0x4D, 0x6D, 0x2F, 0xBA, 0x40, 0xE0, 0xDB, 0xF2, - 0xCC, 0x08, 0x35, 0x02, 0xC4, 0x65, 0x66, 0x76, - 0xA1, 0x97, 0x9F, 0x6A, 0x90, 0xA7, 0x34, 0x1B, - 0x18, 0xB9, 0xA2, 0xDE, 0x23, 0x1F, 0xCB, 0xE6, - 0xAB, 0xCF, 0xAD, 0x4A, 0xF7, 0x24, 0xD0, 0xE8, - 0x8D, 0x49, 0xEA, 0x0F, 0x94, 0x22, 0xD3, 0x74, - 0x71, 0x0D, 0x21, 0x14, 0x39, 0x4B, 0x16, 0x25, - 0x5A, 0xB7, 0x17, 0x67, 0x59, 0x47, 0x27, 0x4F, - 0x32, 0x3B, 0x63, 0x0C, 0xF0, 0xF3, 0x7B, 0xC7, - 0xCA, 0x3A, 0x9A, 0xE2, 0xD5, 0xFA, 0x91, 0xFC, - 0x86, 0x81, 0x99, 0xB4, 0xBC, 0x7C, 0xC5, 0xBF, - 0xC1, 0xF5, 0x77, 0xA4, 0x79, 0x11, 0x8E, 0x75, - 0x55, 0x3D, 0x78, 0x20, 0x37, 0x3E, 0x85, 0xE4, - 0x2E, 0x82, 0xA9, 0x7A, 0x31, 0xC9, 0xB3, 0xFE, - 0x4C, 0x7D, 0xC3, 0xA0, 0x0E, 0x96, 0x5C, 0xC6, - 0x1C, 0x5F, 0xD7, 0xDD, 0x83, 0xC8, 0x9E, 0xEC, - 0x3F, 0xAF, 0x38, 0x9C, 0xD9, 0xB6, 0xDA, 0xD4, - 0x61, 0x44, 0x43, 0xAA, 0xB1, 0xCE, 0xE7, 0x84, - 0x00, 0x0B, 0xFB, 0x68, 0xC2, 0x3C, 0x58, 0xB2, - 0x69, 0x7F, 0x33, 0x2B, 0x80, 0x03, 0xE9, 0x88, - 0x29, 0x12, 0x01, 0x6E, 0x62, 0xF1, 0xA6, 0xF9, - 0x5D, 0xD2, 0xE3, 0x53, 0x09, 0x2D, 0xBB, 0x15, - 0xEB, 0x13, 0xA5, 0xF6, 0x73, 0x19, 0x60, 0xB0, - 0xD1, 0x48, 0x92, 0x1D, 0x52, 0x5E, 0x45, 0x70, - 0x98, 0x54, 0xB8, 0xDC, 0x46, 0xDF, 0x87, 0xE5 -}; - -unsigned char table_142[256] = { - 0x90, 0x94, 0xBE, 0x14, 0x99, 0xEB, 0x45, 0x0F, - 0x34, 0x4A, 0xE3, 0x79, 0xD2, 0x64, 0x4D, 0x69, - 0x91, 0xDE, 0xB9, 0x1C, 0x59, 0x20, 0x6C, 0x0B, - 0x16, 0xC7, 0x1D, 0x18, 0x02, 0x7D, 0x13, 0xB2, - 0x7B, 0x81, 0xCF, 0x61, 0xA3, 0x33, 0x00, 0x73, - 0x5A, 0x8A, 0xA1, 0xA8, 0x31, 0xAC, 0xF0, 0x67, - 0xAE, 0xA5, 0x2A, 0x96, 0x58, 0xF4, 0xB7, 0x0E, - 0xE1, 0x54, 0x27, 0x83, 0x09, 0x85, 0xF8, 0x84, - 0xEA, 0xAD, 0x06, 0xED, 0x43, 0xFF, 0xA2, 0x6E, - 0x68, 0x46, 0x74, 0x47, 0x3C, 0xAA, 0xBC, 0x55, - 0xA7, 0xC3, 0x82, 0xDC, 0xBF, 0x38, 0x80, 0x15, - 0xF6, 0xB3, 0x92, 0x7C, 0x93, 0x3F, 0xE9, 0x4C, - 0x35, 0x30, 0x32, 0xF3, 0x88, 0xC0, 0x49, 0x6D, - 0xCE, 0x42, 0xDF, 0xFD, 0x78, 0x6A, 0x24, 0xCA, - 0xB8, 0xFC, 0xA6, 0x5F, 0x29, 0xFE, 0x0C, 0x5C, - 0x0D, 0x23, 0x8B, 0x9D, 0xD4, 0x03, 0x2C, 0x9C, - 0x77, 0xD8, 0x39, 0x8C, 0x57, 0xD5, 0xE0, 0x8F, - 0xC6, 0xB0, 0xCD, 0x48, 0xC9, 0xA0, 0xDA, 0xC8, - 0xD1, 0x5B, 0xAB, 0x37, 0x5D, 0x63, 0xAF, 0xF9, - 0x17, 0x1B, 0xE5, 0xF1, 0x36, 0xC1, 0x04, 0x26, - 0x6F, 0x9E, 0xD9, 0x2F, 0x7F, 0xB5, 0x3A, 0xD6, - 0xE6, 0x40, 0x07, 0xCB, 0x7E, 0x3E, 0xC5, 0x22, - 0xEC, 0xE2, 0xD3, 0x4E, 0x65, 0x2D, 0x70, 0xE7, - 0x10, 0x19, 0xD0, 0xEF, 0xBD, 0xC2, 0x44, 0xB4, - 0xF7, 0xA4, 0x53, 0x9F, 0x86, 0xFA, 0xE8, 0x4B, - 0x28, 0x3D, 0x9B, 0x56, 0x89, 0x6B, 0x25, 0x71, - 0x60, 0x11, 0x9A, 0x5E, 0x1A, 0x52, 0x08, 0x4F, - 0xB1, 0xDD, 0xBB, 0x98, 0xFB, 0x12, 0x3B, 0x0A, - 0x2E, 0xDB, 0x62, 0x8D, 0xC4, 0x75, 0xA9, 0x2B, - 0xE4, 0x97, 0x72, 0xF5, 0xEE, 0xF2, 0xB6, 0x21, - 0xBA, 0x7A, 0x76, 0x41, 0x50, 0x66, 0x05, 0x8E, - 0xCC, 0x1E, 0x87, 0xD7, 0x01, 0x1F, 0x51, 0x95 -}; - -unsigned char table_143[32] = { - 0x0E, 0x16, 0x18, 0x11, 0x0C, 0x01, 0x12, 0x1F, - 0x08, 0x15, 0x0A, 0x06, 0x1C, 0x1E, 0x02, 0x1A, - 0x17, 0x03, 0x07, 0x13, 0x05, 0x19, 0x10, 0x0F, - 0x0D, 0x14, 0x09, 0x0B, 0x1B, 0x00, 0x1D, 0x04 -}; - -unsigned char table_144[32] = { - 0x00, 0x1B, 0x17, 0x19, 0x1D, 0x11, 0x0D, 0x1A, - 0x13, 0x03, 0x1E, 0x09, 0x10, 0x0E, 0x15, 0x05, - 0x0B, 0x1C, 0x1F, 0x08, 0x0A, 0x06, 0x01, 0x0F, - 0x16, 0x14, 0x02, 0x04, 0x07, 0x18, 0x12, 0x0C -}; - -unsigned char table_145[256] = { - 0xF9, 0x2C, 0x38, 0x74, 0xDA, 0x65, 0x85, 0x0E, - 0xBA, 0x64, 0xDB, 0xE3, 0xB6, 0x8B, 0x0B, 0x5E, - 0x01, 0x0F, 0x12, 0x8C, 0xD4, 0xCC, 0xB1, 0x7B, - 0xE7, 0xBC, 0x2E, 0x87, 0x84, 0x3B, 0xF8, 0x4C, - 0x8E, 0x59, 0x2D, 0xAA, 0xCE, 0x28, 0x1B, 0xEE, - 0x7F, 0x5C, 0xFB, 0x62, 0x05, 0xD9, 0xDD, 0x9D, - 0x49, 0x66, 0x82, 0x71, 0xD2, 0xC7, 0xEB, 0xCF, - 0x5B, 0x41, 0x25, 0xC8, 0x6C, 0xFF, 0x78, 0x97, - 0x0C, 0xA2, 0x50, 0x7A, 0xAF, 0x2F, 0xB0, 0x7E, - 0xBB, 0x73, 0xA0, 0x9B, 0x09, 0xDE, 0x35, 0xE9, - 0x5A, 0x70, 0x56, 0xC5, 0x81, 0x19, 0x55, 0xAB, - 0xC1, 0xB4, 0x2A, 0x30, 0x54, 0x6F, 0x3E, 0x46, - 0x5D, 0x37, 0xF5, 0x57, 0x6B, 0x7C, 0x43, 0xE1, - 0x4A, 0x3F, 0xB2, 0x4B, 0x77, 0xB5, 0x44, 0xD6, - 0x91, 0x11, 0x72, 0xE8, 0xBE, 0xA5, 0xA8, 0xD3, - 0x9A, 0x17, 0x86, 0x88, 0x16, 0x3C, 0x36, 0xD8, - 0x6E, 0x07, 0x8D, 0x5F, 0xFA, 0xF1, 0x24, 0x7D, - 0x20, 0x60, 0x0D, 0x89, 0xC9, 0x29, 0xA7, 0x2B, - 0x4E, 0x10, 0x9F, 0xE5, 0x61, 0x32, 0x3A, 0xBF, - 0x93, 0xE6, 0xF3, 0x52, 0x80, 0xC4, 0x02, 0x22, - 0xA4, 0xBD, 0xF0, 0x48, 0x51, 0xF2, 0xD7, 0x33, - 0x00, 0x53, 0x98, 0xEC, 0x47, 0x39, 0xB9, 0x90, - 0x76, 0x4F, 0x68, 0x3D, 0x9C, 0x92, 0xD5, 0xB8, - 0xAE, 0xD0, 0xF4, 0x67, 0x58, 0xC0, 0x06, 0x08, - 0x14, 0x31, 0xDC, 0xA1, 0x15, 0xDF, 0xCA, 0xE2, - 0x23, 0xFE, 0xE4, 0x8F, 0x0A, 0xFC, 0x8A, 0xA3, - 0xC6, 0xCD, 0x6A, 0x75, 0xFD, 0x42, 0xB7, 0x79, - 0x96, 0x1D, 0x63, 0x18, 0xA9, 0x1C, 0x83, 0x6D, - 0xE0, 0x34, 0x04, 0xA6, 0x13, 0xAC, 0xD1, 0xF7, - 0x26, 0xC3, 0x1F, 0x27, 0x45, 0x95, 0xCB, 0x21, - 0xED, 0x1A, 0x9E, 0x99, 0xEA, 0x40, 0x94, 0x4D, - 0x69, 0xF6, 0xEF, 0xC2, 0xAD, 0x03, 0xB3, 0x1E -}; - -unsigned char table_146[256] = { - 0x1C, 0xF5, 0x16, 0xD2, 0xCC, 0xDC, 0x1E, 0x29, - 0xE3, 0x17, 0x3B, 0x66, 0x6A, 0xF7, 0x03, 0xB2, - 0x92, 0x45, 0x4D, 0xD6, 0x0C, 0x5E, 0xE6, 0x01, - 0xDE, 0xCE, 0x83, 0xFA, 0x35, 0x02, 0x85, 0xC4, - 0x2E, 0x89, 0x8D, 0xE7, 0x30, 0x93, 0xDD, 0x70, - 0x80, 0xD9, 0x6D, 0x81, 0x07, 0x8E, 0xA9, 0xA6, - 0x5F, 0xC9, 0xF3, 0x9D, 0x65, 0xE8, 0x88, 0x0B, - 0x49, 0xAA, 0xB7, 0x6C, 0x11, 0xFC, 0x6F, 0xA3, - 0xF8, 0x52, 0x0E, 0xD4, 0x08, 0x25, 0x27, 0x33, - 0x2F, 0xF0, 0x2B, 0x47, 0xDA, 0x4C, 0x39, 0x54, - 0xB9, 0xC1, 0xEA, 0x7C, 0x44, 0xEB, 0x06, 0xE1, - 0x8C, 0x9B, 0x74, 0x42, 0x4F, 0x0A, 0x69, 0x2A, - 0x2D, 0xA1, 0x19, 0xD5, 0xC3, 0x87, 0x68, 0xFF, - 0xEC, 0xE4, 0x86, 0xCF, 0xF6, 0x79, 0x34, 0xA8, - 0x72, 0xF4, 0x8B, 0xAF, 0xA5, 0x00, 0xBA, 0x5C, - 0x23, 0xB8, 0xC8, 0x59, 0xBF, 0x6E, 0xCB, 0x20, - 0x1F, 0x53, 0x97, 0x4B, 0xD0, 0x55, 0x5B, 0xDF, - 0x8A, 0xED, 0x9A, 0x62, 0xC5, 0xD7, 0x18, 0x82, - 0xC7, 0x12, 0x15, 0x1B, 0xC0, 0x38, 0xCA, 0x26, - 0xDB, 0xAE, 0xF9, 0x90, 0x1A, 0xF2, 0x56, 0x32, - 0x21, 0x3C, 0x43, 0xEE, 0xA4, 0x13, 0x94, 0xA2, - 0x46, 0x77, 0xBC, 0xB6, 0x9C, 0x0D, 0xCD, 0x37, - 0x63, 0x60, 0x6B, 0x3A, 0x3E, 0xA7, 0xD8, 0xFE, - 0xFB, 0xEF, 0x67, 0xFD, 0xAD, 0xF1, 0x09, 0x1D, - 0xE9, 0x51, 0xB4, 0x95, 0x75, 0x0F, 0xB3, 0xD3, - 0xAB, 0x22, 0xBB, 0x61, 0x7F, 0x5A, 0x58, 0x7B, - 0x73, 0xC2, 0x05, 0xE0, 0x14, 0xE2, 0xAC, 0x91, - 0xBE, 0x4E, 0xC6, 0x7A, 0x84, 0x50, 0x28, 0x3F, - 0xB0, 0x04, 0x7E, 0xD1, 0x40, 0xBD, 0xE5, 0x71, - 0xB1, 0x78, 0x41, 0x9E, 0x57, 0x64, 0x8F, 0x24, - 0x4A, 0x9F, 0x3D, 0x31, 0x36, 0x5D, 0xA0, 0x2C, - 0x7D, 0x96, 0x76, 0x99, 0xB5, 0x48, 0x98, 0x10 -}; - -unsigned char table_147[32] = { - 0x17, 0x07, 0x0D, 0x16, 0x00, 0x1B, 0x1F, 0x09, - 0x10, 0x11, 0x14, 0x0A, 0x02, 0x06, 0x13, 0x0C, - 0x08, 0x1E, 0x0F, 0x12, 0x05, 0x15, 0x19, 0x01, - 0x1C, 0x1A, 0x03, 0x18, 0x04, 0x0B, 0x1D, 0x0E -}; - -unsigned char table_148[256] = { - 0xFB, 0x23, 0xBC, 0x5A, 0x8C, 0x02, 0x42, 0x3B, - 0x95, 0x0C, 0x21, 0x0E, 0x14, 0xDF, 0x11, 0xC0, - 0xDB, 0x5E, 0xD3, 0xEA, 0xCE, 0xB4, 0x32, 0x12, - 0x70, 0x68, 0xA3, 0x25, 0x5B, 0x4B, 0x47, 0xA5, - 0x84, 0x9B, 0xFA, 0xD1, 0xE1, 0x3C, 0x20, 0x93, - 0x41, 0x26, 0x81, 0x39, 0x17, 0xA4, 0xCF, 0xB9, - 0xC5, 0x5F, 0x1C, 0xB3, 0x88, 0xC2, 0x92, 0x30, - 0x0A, 0xB8, 0xA0, 0xE2, 0x50, 0x2B, 0x48, 0x1E, - 0xD5, 0x13, 0xC7, 0x46, 0x9E, 0x2A, 0xF7, 0x7E, - 0xE8, 0x82, 0x60, 0x7A, 0x36, 0x97, 0x0F, 0x8F, - 0x8B, 0x80, 0xE0, 0xEB, 0xB1, 0xC6, 0x6E, 0xAE, - 0x90, 0x76, 0xA7, 0x31, 0xBE, 0x9C, 0x18, 0x6D, - 0xAB, 0x6C, 0x7B, 0xFE, 0x62, 0x05, 0xE9, 0x66, - 0x2E, 0x38, 0xB5, 0xB2, 0xFD, 0xFC, 0x7F, 0xE3, - 0xA1, 0xF1, 0x99, 0x4D, 0x79, 0x22, 0xD2, 0x37, - 0x29, 0x01, 0x54, 0x00, 0xBD, 0x51, 0x1B, 0x07, - 0x0B, 0x4A, 0xEE, 0x57, 0xDA, 0x1A, 0x06, 0xCA, - 0xCB, 0x9A, 0xC9, 0x7D, 0xE4, 0xDC, 0xE5, 0x8D, - 0x75, 0x4F, 0xF6, 0xA2, 0x65, 0x7C, 0xD9, 0x9D, - 0x03, 0x27, 0x2D, 0x4C, 0x49, 0xD4, 0x5D, 0x3E, - 0xBA, 0x1D, 0xD8, 0x91, 0x74, 0x10, 0xF8, 0xDE, - 0xEF, 0xF0, 0x6A, 0x04, 0x72, 0x08, 0x78, 0x3A, - 0x53, 0xC4, 0x34, 0xF2, 0x64, 0xAF, 0x86, 0xC3, - 0xF3, 0x73, 0x67, 0xCC, 0x58, 0xF4, 0x96, 0xAC, - 0x3D, 0xE7, 0x15, 0x8E, 0x19, 0x61, 0xF9, 0xB6, - 0xCD, 0x87, 0xAA, 0xB0, 0x1F, 0x6F, 0xAD, 0x28, - 0xC8, 0x69, 0x56, 0xC1, 0x71, 0xED, 0xE6, 0x98, - 0x6B, 0x59, 0xB7, 0xF5, 0x2C, 0xEC, 0xA8, 0x94, - 0x89, 0xBB, 0xA9, 0xD7, 0x2F, 0x8A, 0x4E, 0xD6, - 0x33, 0x16, 0x0D, 0x83, 0x5C, 0x52, 0x85, 0xA6, - 0x40, 0x45, 0x9F, 0x44, 0x63, 0x35, 0x77, 0xFF, - 0x09, 0x43, 0xBF, 0xD0, 0x55, 0xDD, 0x3F, 0x24 -}; - -unsigned char table_149[32] = { - 0x1B, 0x0B, 0x0C, 0x06, 0x1F, 0x17, 0x04, 0x1A, - 0x1E, 0x02, 0x0F, 0x16, 0x0E, 0x09, 0x10, 0x01, - 0x13, 0x19, 0x11, 0x00, 0x0A, 0x05, 0x03, 0x1C, - 0x18, 0x1D, 0x14, 0x0D, 0x07, 0x08, 0x15, 0x12 -}; - -unsigned char table_150[256] = { - 0x57, 0xBC, 0x9D, 0x46, 0x14, 0xD0, 0x94, 0x95, - 0x1B, 0x12, 0xB8, 0xD4, 0x53, 0x73, 0x83, 0xE6, - 0x75, 0xE1, 0xD1, 0x0D, 0xDF, 0x23, 0x13, 0x40, - 0xF1, 0x0C, 0xA0, 0xC1, 0x22, 0xDA, 0xE8, 0xFB, - 0xE5, 0xC4, 0x16, 0x9C, 0x3F, 0xC3, 0x78, 0x3A, - 0x06, 0xC7, 0xA8, 0x79, 0xA4, 0xB3, 0x55, 0x88, - 0xA9, 0x82, 0xE3, 0x68, 0xFC, 0x3B, 0x26, 0x81, - 0xB4, 0x0A, 0x7D, 0x96, 0xDB, 0x2C, 0xE2, 0xCD, - 0x92, 0x5C, 0xED, 0x0E, 0x42, 0x98, 0xBE, 0xB7, - 0x63, 0x25, 0x7B, 0xD9, 0xEF, 0x11, 0xB9, 0xA3, - 0xFA, 0x00, 0x2A, 0x91, 0x71, 0xBF, 0xB2, 0x3D, - 0x20, 0x4C, 0xB0, 0x8C, 0x3C, 0x27, 0xAF, 0x09, - 0x10, 0x5D, 0x2B, 0x1D, 0xBD, 0x4B, 0x54, 0xD3, - 0xAB, 0x1A, 0xE7, 0xF8, 0x56, 0x65, 0xA5, 0xAD, - 0xEC, 0x17, 0x45, 0x28, 0xCA, 0xEA, 0x01, 0xF5, - 0x34, 0x84, 0x43, 0x8B, 0x03, 0x02, 0x90, 0x6B, - 0x60, 0xCE, 0x19, 0x86, 0x4F, 0x08, 0x35, 0x9A, - 0xAE, 0x07, 0xE0, 0xB6, 0xD6, 0x2D, 0xD2, 0x89, - 0x5F, 0xA6, 0x72, 0x05, 0x36, 0xB5, 0xC0, 0x5A, - 0x4D, 0xD7, 0x30, 0x37, 0x87, 0x50, 0xA2, 0x48, - 0x29, 0xAC, 0xDE, 0x93, 0x24, 0x6E, 0x1E, 0xF7, - 0x52, 0x5E, 0x41, 0xC8, 0xEB, 0x31, 0x7E, 0xE9, - 0x67, 0x7A, 0x47, 0x85, 0x8D, 0x74, 0x9E, 0x64, - 0x38, 0x9B, 0xBA, 0xCC, 0x9F, 0x8E, 0xEE, 0x0F, - 0xB1, 0x7C, 0x6A, 0xBB, 0x2E, 0x58, 0x70, 0x7F, - 0x4E, 0x4A, 0x1C, 0x5B, 0xF0, 0xA1, 0x61, 0xF6, - 0x15, 0x33, 0xE4, 0xF9, 0x2F, 0x62, 0x1F, 0x76, - 0x32, 0xCB, 0x49, 0xFE, 0x8F, 0xD5, 0xDC, 0x66, - 0x0B, 0x3E, 0xC5, 0x21, 0xC6, 0x6C, 0x18, 0xC2, - 0x6D, 0xFF, 0x51, 0x99, 0xCF, 0xFD, 0x59, 0xA7, - 0xAA, 0x8A, 0xF2, 0x69, 0x39, 0x6F, 0x77, 0xDD, - 0x97, 0xC9, 0xF3, 0x04, 0xD8, 0xF4, 0x80, 0x44 -}; - -unsigned char table_151[256] = { - 0x78, 0x6C, 0xC5, 0x0C, 0x2D, 0xA7, 0x97, 0x9C, - 0x22, 0x76, 0x3E, 0x81, 0x51, 0x47, 0x59, 0x71, - 0xB1, 0xA2, 0x4A, 0x3C, 0xB5, 0x16, 0x06, 0x95, - 0xB9, 0x01, 0xE6, 0x91, 0x96, 0x1C, 0x1B, 0xAD, - 0x61, 0x64, 0xB2, 0xE7, 0x29, 0x19, 0x52, 0x3B, - 0xFA, 0xAF, 0x30, 0xDB, 0xD4, 0x0B, 0xFE, 0x75, - 0x1F, 0xBE, 0xCB, 0xF6, 0xEA, 0x31, 0xF8, 0xD8, - 0xA3, 0x82, 0x73, 0x1D, 0x99, 0xF0, 0xCC, 0xB6, - 0x46, 0x26, 0xAA, 0x8C, 0x87, 0x90, 0x24, 0x8F, - 0x7A, 0x13, 0xEE, 0xD1, 0xA9, 0x05, 0xB3, 0xF7, - 0x02, 0x7C, 0x4C, 0x1E, 0xFF, 0xE5, 0x77, 0xAB, - 0xD6, 0x98, 0x20, 0x4D, 0xC4, 0x23, 0xF4, 0xA4, - 0x85, 0x9A, 0x8E, 0x1A, 0x0E, 0xF5, 0x15, 0x60, - 0x38, 0x72, 0xE9, 0xF1, 0xC3, 0x68, 0xF2, 0x93, - 0xD3, 0x2A, 0x48, 0x74, 0xC2, 0x57, 0xA1, 0x7D, - 0x94, 0x37, 0x92, 0x5C, 0xE1, 0x41, 0x83, 0xD5, - 0x65, 0x14, 0xA6, 0xDC, 0x44, 0x27, 0xEF, 0xD7, - 0x25, 0x10, 0x2C, 0x7F, 0x40, 0xA5, 0x55, 0xBD, - 0x2B, 0x0D, 0xD0, 0xFC, 0xDF, 0xA0, 0x04, 0x00, - 0x62, 0xB4, 0x5A, 0xEB, 0x6B, 0x84, 0x7E, 0x6A, - 0xDE, 0xED, 0x66, 0x03, 0xFB, 0x2E, 0x4F, 0x4E, - 0xBB, 0x36, 0x5B, 0x18, 0xE3, 0x69, 0x3F, 0xEC, - 0xE4, 0xD2, 0x0A, 0x34, 0x63, 0xCF, 0xA8, 0xF9, - 0x9B, 0x7B, 0x6F, 0xE8, 0x49, 0xC1, 0x09, 0x54, - 0xF3, 0x50, 0x67, 0x79, 0xC0, 0x9F, 0x8D, 0x5F, - 0x17, 0x70, 0x11, 0xC8, 0xBC, 0xC6, 0xE0, 0x35, - 0x39, 0xC7, 0x6E, 0x21, 0xBF, 0xDA, 0x6D, 0x28, - 0x0F, 0xDD, 0x33, 0xAC, 0x8A, 0x12, 0xC9, 0xCD, - 0xB8, 0x45, 0xAE, 0x32, 0xCE, 0xE2, 0x56, 0xFD, - 0x42, 0x89, 0x86, 0xCA, 0x4B, 0x3D, 0x5E, 0xBA, - 0x8B, 0x5D, 0xB0, 0xB7, 0xD9, 0x58, 0x2F, 0x08, - 0x43, 0x3A, 0x53, 0x9E, 0x80, 0x88, 0x07, 0x9D -}; - -unsigned char table_152[32] = { - 0x02, 0x1A, 0x17, 0x1D, 0x01, 0x03, 0x13, 0x1E, - 0x05, 0x18, 0x06, 0x0A, 0x0C, 0x04, 0x1B, 0x00, - 0x1C, 0x09, 0x1F, 0x16, 0x07, 0x0F, 0x0B, 0x0E, - 0x14, 0x12, 0x0D, 0x10, 0x19, 0x11, 0x08, 0x15 -}; - -unsigned char table_153[32] = { - 0x0E, 0x14, 0x12, 0x1E, 0x1C, 0x02, 0x06, 0x16, - 0x18, 0x0D, 0x17, 0x0C, 0x1D, 0x11, 0x08, 0x19, - 0x07, 0x0F, 0x13, 0x04, 0x03, 0x1B, 0x0B, 0x1F, - 0x1A, 0x0A, 0x05, 0x10, 0x00, 0x01, 0x15, 0x09 -}; - -unsigned char table_154[256] = { - 0x27, 0x5A, 0x08, 0x5B, 0xF4, 0x39, 0x13, 0x6F, - 0x67, 0xEA, 0x22, 0xCA, 0x5C, 0xCF, 0x18, 0x7C, - 0x05, 0x87, 0x60, 0xCC, 0x40, 0xC6, 0xE8, 0x6D, - 0xF5, 0x2A, 0x2D, 0xA2, 0x8C, 0x82, 0xE9, 0xDC, - 0xD6, 0x65, 0x74, 0x8E, 0x42, 0x4F, 0x3E, 0x55, - 0xFF, 0xC7, 0x9D, 0x0F, 0x81, 0xE2, 0x4C, 0xE6, - 0xEB, 0x4D, 0x70, 0xD1, 0x49, 0x43, 0x3D, 0x69, - 0x0C, 0x45, 0x28, 0x00, 0x99, 0xAE, 0xEC, 0xB8, - 0xC3, 0x17, 0x93, 0x8D, 0x36, 0x3C, 0x46, 0x2B, - 0x29, 0xC5, 0xB4, 0xB1, 0xD0, 0x0D, 0xAD, 0xFE, - 0xE5, 0xA8, 0x3B, 0x1A, 0x2C, 0xDF, 0x07, 0x86, - 0xB0, 0xD3, 0x7A, 0x59, 0x79, 0x8B, 0xC1, 0x9A, - 0x30, 0xDB, 0x24, 0xF3, 0xD8, 0x04, 0x25, 0xC2, - 0xA3, 0x98, 0x96, 0x7B, 0x71, 0x4E, 0x5E, 0x58, - 0xA5, 0x51, 0x88, 0xDA, 0xF8, 0xC0, 0x7D, 0xF6, - 0x31, 0x5F, 0x09, 0x16, 0x21, 0x62, 0x01, 0x64, - 0x9B, 0x3A, 0x2F, 0x61, 0x19, 0xA1, 0xB7, 0xE0, - 0xB9, 0x12, 0xA0, 0xBA, 0x6E, 0x8A, 0xFB, 0xD9, - 0x38, 0x1B, 0xD5, 0xB3, 0x10, 0xED, 0xE4, 0x6A, - 0x32, 0xBD, 0x75, 0xD4, 0x1C, 0xFD, 0x73, 0x77, - 0x54, 0xC8, 0x97, 0x47, 0x35, 0x94, 0xE3, 0xCD, - 0x6B, 0xBB, 0xF9, 0xAC, 0x11, 0x14, 0xAF, 0x78, - 0x3F, 0xCE, 0x26, 0x44, 0xEE, 0xFC, 0x15, 0x66, - 0x4B, 0xA6, 0x20, 0x23, 0xBE, 0x84, 0x1D, 0x7E, - 0x0B, 0x56, 0x92, 0x0A, 0xFA, 0xF7, 0x48, 0x33, - 0x9E, 0x8F, 0xAB, 0x5D, 0x41, 0x50, 0xA4, 0x7F, - 0x80, 0x4A, 0x68, 0x06, 0x2E, 0x6C, 0xC4, 0x02, - 0x0E, 0x63, 0xF0, 0xC9, 0x91, 0xB2, 0xD2, 0x03, - 0x37, 0xEF, 0x9C, 0x90, 0x83, 0x76, 0x1E, 0xA9, - 0x85, 0xB6, 0x57, 0xD7, 0xF2, 0xF1, 0xE7, 0xDE, - 0xCB, 0xAA, 0xBF, 0x89, 0x1F, 0xA7, 0xBC, 0x9F, - 0x53, 0xE1, 0xDD, 0x72, 0x95, 0x52, 0x34, 0xB5 -}; - -unsigned char table_155[256] = { - 0x75, 0x58, 0xC5, 0xA5, 0x83, 0x16, 0xF3, 0x7F, - 0x94, 0xDE, 0xA0, 0xF6, 0xFD, 0x89, 0xA8, 0x06, - 0x98, 0x01, 0xD9, 0x69, 0xB7, 0x0F, 0xEA, 0x73, - 0x32, 0xF0, 0x49, 0xBF, 0x02, 0xE7, 0x22, 0x3F, - 0xDB, 0x30, 0x5F, 0x20, 0x6A, 0x93, 0x07, 0xBC, - 0x09, 0x0D, 0x37, 0x24, 0x90, 0x15, 0x80, 0xAF, - 0x8F, 0x59, 0x28, 0xFF, 0x6D, 0x1E, 0x52, 0x62, - 0xE2, 0xDD, 0x85, 0x48, 0xB5, 0xAB, 0x68, 0xAC, - 0x7E, 0x26, 0x2C, 0xF9, 0x2A, 0xBE, 0x5B, 0xCE, - 0x87, 0x1D, 0x96, 0xBD, 0xEF, 0x29, 0xA9, 0xC3, - 0x9D, 0x57, 0x79, 0x6B, 0x7A, 0x82, 0x78, 0x0A, - 0x91, 0xF2, 0x7C, 0xC2, 0x25, 0x88, 0xE3, 0x47, - 0x64, 0x46, 0x8D, 0x19, 0xF4, 0xE6, 0xF1, 0x53, - 0x9C, 0x54, 0x23, 0xAD, 0xA3, 0x86, 0x3A, 0x04, - 0x67, 0x1C, 0xF5, 0x43, 0x05, 0x42, 0xD6, 0x4B, - 0xFB, 0xD4, 0x2B, 0x08, 0x45, 0xD8, 0xCD, 0xEB, - 0x31, 0x4A, 0x5A, 0x34, 0x9B, 0xEC, 0x4D, 0xB4, - 0xC6, 0xFE, 0xD5, 0x5E, 0xC1, 0x39, 0x81, 0xCF, - 0x03, 0x6E, 0x95, 0x50, 0xA1, 0x3B, 0xB3, 0xE5, - 0x3D, 0xB1, 0xB2, 0x41, 0x17, 0x2F, 0x2E, 0xE4, - 0x1F, 0xDC, 0xB0, 0xB6, 0x18, 0x6F, 0x44, 0x12, - 0x0B, 0xCC, 0x4E, 0xC0, 0x51, 0x14, 0x76, 0x3C, - 0xB9, 0x9F, 0xA4, 0xD3, 0xA7, 0xE8, 0x13, 0x55, - 0xC8, 0x8C, 0xD2, 0xEE, 0x65, 0xB8, 0xAA, 0x6C, - 0x2D, 0x4F, 0x56, 0xFA, 0x61, 0x4C, 0xE0, 0x5C, - 0xA6, 0x1A, 0xD1, 0x38, 0xD7, 0x72, 0x60, 0x74, - 0xE1, 0xBA, 0x84, 0x3E, 0x40, 0xF8, 0xC7, 0x36, - 0x27, 0x0C, 0x70, 0x97, 0x9A, 0x7D, 0x35, 0x71, - 0xCA, 0x1B, 0x99, 0x8E, 0xAE, 0x66, 0x63, 0xE9, - 0xC9, 0x11, 0x8A, 0x21, 0x92, 0x5D, 0x77, 0x10, - 0xD0, 0xC4, 0xF7, 0x7B, 0x9E, 0xCB, 0xED, 0x0E, - 0x8B, 0x33, 0xFC, 0xBB, 0x00, 0xA2, 0xDF, 0xDA -}; - -unsigned char table_156[256] = { - 0x31, 0x25, 0xB1, 0xD3, 0xAF, 0xAE, 0x84, 0x2C, - 0x71, 0x5E, 0xD8, 0x80, 0x6F, 0x3E, 0x48, 0x86, - 0xED, 0x54, 0x6A, 0xC3, 0xBC, 0xBF, 0x0E, 0xEA, - 0x10, 0xA2, 0x9D, 0x91, 0x32, 0xE2, 0x7E, 0x1B, - 0x49, 0x27, 0xFF, 0xDD, 0x8A, 0x2F, 0x8D, 0x38, - 0xFA, 0x3C, 0x03, 0x14, 0x0F, 0x89, 0xCC, 0x07, - 0x1A, 0xA0, 0x97, 0x37, 0xA6, 0xD6, 0x63, 0x87, - 0xA1, 0xC2, 0x4B, 0x39, 0xCB, 0xCF, 0x69, 0x4E, - 0xC9, 0x28, 0x1C, 0xBB, 0x42, 0x2B, 0xA9, 0x78, - 0x5B, 0xF6, 0xE0, 0xD0, 0x5F, 0x46, 0x98, 0xCE, - 0x1F, 0x7A, 0x34, 0x8B, 0xFD, 0x9B, 0xEF, 0x74, - 0x05, 0xF2, 0x02, 0xC6, 0xDF, 0x73, 0x5C, 0x8E, - 0xDE, 0x88, 0x57, 0x3B, 0x85, 0xBD, 0xC0, 0x3A, - 0x45, 0x4D, 0x2D, 0x72, 0x0C, 0x60, 0xCA, 0x5D, - 0x06, 0x04, 0x3D, 0x51, 0x15, 0xAD, 0xE8, 0x67, - 0xBA, 0x43, 0x7D, 0xF8, 0xB2, 0xE6, 0xAB, 0xF4, - 0x23, 0x6E, 0xF0, 0x6B, 0x0B, 0x2E, 0xC8, 0xC4, - 0x4F, 0xA8, 0x6D, 0x26, 0xE9, 0x9C, 0x22, 0xB7, - 0x00, 0xB3, 0x0A, 0x7C, 0x44, 0x55, 0x75, 0xD5, - 0xAA, 0x66, 0x56, 0x24, 0x83, 0x90, 0xA4, 0xF5, - 0xCD, 0xEC, 0x18, 0xDC, 0xFE, 0x96, 0xA3, 0xF7, - 0xD2, 0xFB, 0xD1, 0x65, 0xC5, 0x08, 0x7B, 0x70, - 0x16, 0x9A, 0x20, 0x09, 0x29, 0xDA, 0x52, 0x5A, - 0x59, 0xB4, 0x77, 0x62, 0x9E, 0x19, 0x7F, 0x82, - 0x4C, 0xB6, 0x0D, 0x58, 0xEE, 0x1D, 0xB9, 0x93, - 0x50, 0xD9, 0x30, 0xE4, 0x13, 0x01, 0x36, 0x8F, - 0x53, 0x3F, 0x64, 0xA5, 0xB5, 0xD7, 0x81, 0x41, - 0x17, 0xE5, 0x94, 0xE3, 0xF9, 0x61, 0x76, 0xE1, - 0x9F, 0xFC, 0x1E, 0x12, 0xDB, 0x21, 0x79, 0x2A, - 0xAC, 0xF3, 0x6C, 0xC1, 0x95, 0x92, 0xEB, 0xA7, - 0x11, 0xC7, 0xB8, 0x4A, 0x33, 0xB0, 0x99, 0xE7, - 0xF1, 0x68, 0xBE, 0x35, 0x40, 0x8C, 0xD4, 0x47 -}; - -unsigned char table_157[32] = { - 0x00, 0x0D, 0x03, 0x02, 0x11, 0x04, 0x18, 0x0B, - 0x14, 0x1D, 0x1C, 0x13, 0x1B, 0x17, 0x10, 0x15, - 0x01, 0x19, 0x07, 0x09, 0x1A, 0x16, 0x12, 0x1E, - 0x08, 0x06, 0x0C, 0x0E, 0x1F, 0x0F, 0x0A, 0x05 -}; - -unsigned char table_158[256] = { - 0x68, 0x26, 0x80, 0x0B, 0xB8, 0xD5, 0x8C, 0xB7, - 0x65, 0xEF, 0xBC, 0x94, 0x28, 0xB9, 0xB2, 0xD2, - 0x92, 0xA4, 0x55, 0x27, 0xE0, 0x40, 0x6C, 0x41, - 0x25, 0xBD, 0xAF, 0xEA, 0xB1, 0x19, 0xA5, 0xC9, - 0x0E, 0xED, 0xB4, 0xF9, 0x8B, 0x6A, 0xAE, 0xD8, - 0x64, 0x83, 0xC1, 0xD3, 0x04, 0xF4, 0xFA, 0xC3, - 0x46, 0x2C, 0xA8, 0xBB, 0x3A, 0x47, 0x33, 0x8F, - 0x52, 0x86, 0x08, 0x9D, 0x1D, 0x59, 0x8E, 0x91, - 0x32, 0xCF, 0x6B, 0x75, 0xB0, 0x7F, 0xC7, 0x24, - 0x05, 0x6F, 0x00, 0x1C, 0x2D, 0xAC, 0xDA, 0x45, - 0x73, 0xB3, 0x3E, 0xD6, 0x54, 0x61, 0x03, 0x77, - 0xF8, 0xD9, 0xE2, 0x4B, 0xFF, 0xF2, 0x0C, 0x4F, - 0x93, 0x71, 0xA7, 0x3D, 0x66, 0x88, 0x98, 0xF1, - 0xB6, 0x7A, 0x2B, 0xCD, 0x44, 0x3C, 0x37, 0x5A, - 0x96, 0x23, 0x9F, 0xBF, 0x7D, 0x5E, 0x2A, 0x35, - 0x72, 0x79, 0xE1, 0xA3, 0x84, 0x99, 0x38, 0x49, - 0xC8, 0xDB, 0x30, 0xDC, 0xAD, 0x3F, 0xF6, 0x09, - 0x69, 0x95, 0xE5, 0x67, 0xA1, 0xFD, 0xF7, 0x1B, - 0xEC, 0x17, 0xD4, 0xEB, 0x29, 0x36, 0x3B, 0x15, - 0xDE, 0x2E, 0xC5, 0x70, 0x6D, 0x53, 0x56, 0xAB, - 0xC0, 0x43, 0xC2, 0xE7, 0x31, 0xE6, 0xA6, 0x78, - 0x5C, 0x7C, 0x48, 0x10, 0x87, 0xCC, 0x9E, 0x7E, - 0x5F, 0xE9, 0x07, 0x5B, 0xF5, 0xEE, 0xB5, 0xCA, - 0x62, 0x18, 0xBE, 0x20, 0x16, 0xDF, 0x13, 0x4E, - 0x7B, 0x02, 0x11, 0x4C, 0x51, 0x85, 0x0D, 0x22, - 0xF3, 0x14, 0x63, 0x76, 0xD0, 0x0F, 0xE4, 0xCB, - 0xCE, 0xA0, 0x82, 0xE3, 0x01, 0xAA, 0x5D, 0x4A, - 0x4D, 0xFB, 0x39, 0x8A, 0x2F, 0xDD, 0xE8, 0x06, - 0x1A, 0x90, 0x81, 0x50, 0x8D, 0x89, 0x97, 0x1E, - 0xFC, 0x60, 0x12, 0x42, 0x9C, 0xF0, 0x34, 0xD7, - 0xD1, 0x1F, 0x0A, 0x21, 0xA9, 0x6E, 0xC4, 0xBA, - 0x9A, 0x57, 0xA2, 0x74, 0xC6, 0xFE, 0x9B, 0x58 -}; - -unsigned char table_159[256] = { - 0xE5, 0xBF, 0x84, 0x56, 0xD6, 0x43, 0x3E, 0xA5, - 0x64, 0x87, 0x44, 0x63, 0x4A, 0x4C, 0x8D, 0x24, - 0x1C, 0xDA, 0x89, 0x52, 0x80, 0x4F, 0xE4, 0xBC, - 0xC5, 0xF4, 0x27, 0x75, 0x9C, 0xF0, 0xE1, 0x06, - 0x99, 0x48, 0xF2, 0x57, 0x34, 0x9A, 0xA8, 0x62, - 0xC9, 0xD5, 0x16, 0x6D, 0x55, 0xFA, 0x37, 0x5A, - 0x2A, 0xC6, 0x45, 0xDD, 0x1B, 0x76, 0x50, 0xE2, - 0x69, 0x41, 0x6C, 0xC4, 0x3C, 0x47, 0xA9, 0x92, - 0x00, 0x3D, 0x6F, 0xE7, 0x7A, 0x3A, 0x33, 0x53, - 0xF7, 0x03, 0xA7, 0xB1, 0x15, 0x78, 0x0B, 0x67, - 0x2E, 0x21, 0xF1, 0xD4, 0xB3, 0x98, 0x60, 0x58, - 0xBB, 0x82, 0x1E, 0x70, 0x0A, 0xA2, 0x02, 0x17, - 0xFF, 0x9F, 0xD2, 0xAF, 0xC7, 0xDC, 0x68, 0x83, - 0x42, 0xCA, 0x08, 0x39, 0x20, 0xEC, 0x77, 0x96, - 0x5B, 0xAD, 0x09, 0x6B, 0x40, 0xC2, 0x91, 0x51, - 0x10, 0xD9, 0xF9, 0xC1, 0xB5, 0xDF, 0xDB, 0xC0, - 0x7D, 0xAB, 0xAE, 0x54, 0x35, 0xF3, 0xA1, 0xE6, - 0xEA, 0x14, 0xBA, 0xFC, 0xE8, 0xEB, 0xF6, 0xBD, - 0x8C, 0x72, 0x1F, 0xE9, 0xFB, 0x7C, 0xCF, 0x49, - 0xE3, 0xA3, 0x22, 0x9D, 0x46, 0x71, 0x94, 0x31, - 0x2D, 0x65, 0x2B, 0x32, 0x18, 0xB6, 0x90, 0xF8, - 0x11, 0x5F, 0xA0, 0xEF, 0xED, 0x1A, 0x25, 0x2C, - 0x3B, 0xFD, 0x2F, 0x73, 0xB9, 0x7E, 0xDE, 0xB4, - 0x97, 0x0F, 0x7F, 0x86, 0x93, 0x07, 0x19, 0xCE, - 0xE0, 0xB7, 0xEE, 0x26, 0xD1, 0x01, 0x59, 0x5C, - 0xC3, 0x79, 0x8B, 0xD3, 0x4B, 0x04, 0xD0, 0x29, - 0x0D, 0x3F, 0xB2, 0x30, 0xCC, 0x36, 0xFE, 0xB0, - 0xF5, 0x8E, 0xA6, 0x8A, 0xC8, 0xD8, 0x05, 0xB8, - 0x12, 0xBE, 0x81, 0x4D, 0x38, 0xAC, 0x1D, 0x9E, - 0x66, 0x5E, 0x7B, 0x6E, 0x0C, 0xCD, 0x6A, 0x88, - 0xAA, 0x0E, 0x61, 0x5D, 0x95, 0x4E, 0xD7, 0x74, - 0xCB, 0x9B, 0x13, 0x8F, 0xA4, 0x28, 0x23, 0x85 -}; - -unsigned char table_160[256] = { - 0x35, 0x44, 0x0E, 0x92, 0x75, 0x83, 0x9D, 0x53, - 0xA5, 0x90, 0xF8, 0xF7, 0x54, 0x74, 0xDF, 0x3D, - 0x5A, 0xAA, 0xC6, 0x26, 0x7A, 0xFC, 0x79, 0x6C, - 0x56, 0xB3, 0x32, 0xE3, 0x1C, 0xF9, 0xDC, 0xE6, - 0xA2, 0x93, 0x71, 0xFF, 0x1D, 0xEB, 0xB2, 0x04, - 0x96, 0x46, 0x0C, 0x2B, 0x17, 0xEE, 0x28, 0x25, - 0xD9, 0xAE, 0x11, 0xA7, 0x40, 0x45, 0xFB, 0x80, - 0x18, 0xF1, 0xCB, 0x2E, 0x24, 0xF3, 0xEC, 0x4F, - 0xAB, 0xD7, 0xD4, 0xC4, 0xFD, 0x4B, 0xAD, 0xC9, - 0x4C, 0x08, 0xAC, 0xF4, 0xCD, 0xB7, 0xF2, 0x15, - 0x02, 0x2F, 0x16, 0x34, 0x65, 0x8A, 0x87, 0xCC, - 0x50, 0x0F, 0x9B, 0xC2, 0xC8, 0x7B, 0xEA, 0x8E, - 0xE4, 0xD6, 0x97, 0x30, 0xA8, 0xA0, 0x94, 0xC5, - 0xE8, 0x12, 0x27, 0xCE, 0x84, 0xDD, 0xB1, 0x47, - 0x7E, 0xE7, 0xE1, 0x3A, 0x37, 0x21, 0x2D, 0x3B, - 0x20, 0x60, 0x1E, 0x1B, 0x82, 0xBE, 0xA3, 0x70, - 0x98, 0xBF, 0xA6, 0x4D, 0x76, 0x86, 0x42, 0x9F, - 0xCF, 0xE0, 0x14, 0x4A, 0x0B, 0xB4, 0x36, 0xF5, - 0x85, 0xB8, 0xC0, 0x6A, 0xE9, 0x7D, 0xBD, 0x4E, - 0x8F, 0x51, 0x0D, 0x5B, 0x6B, 0x58, 0x5F, 0x03, - 0x6F, 0xBC, 0x5D, 0x1F, 0x7F, 0xDB, 0x00, 0xC1, - 0x13, 0xF0, 0xD1, 0xFA, 0xDA, 0x05, 0x39, 0xD3, - 0x38, 0xD2, 0x89, 0xE2, 0x88, 0x5E, 0x5C, 0x6D, - 0xCA, 0xB0, 0x01, 0x63, 0x8B, 0x59, 0xA4, 0xD0, - 0x78, 0x19, 0xB5, 0x62, 0x1A, 0x69, 0x8D, 0x9C, - 0x22, 0x3F, 0x9E, 0x33, 0x72, 0x2A, 0x41, 0x29, - 0xFE, 0xF6, 0x64, 0x7C, 0x66, 0xB6, 0xAF, 0x23, - 0x8C, 0x68, 0x6E, 0x49, 0x07, 0x99, 0x77, 0x3E, - 0x9A, 0x73, 0xD8, 0x55, 0x0A, 0x3C, 0xBA, 0xA9, - 0x52, 0xED, 0x91, 0x09, 0x95, 0xC7, 0x43, 0xD5, - 0x57, 0x61, 0x81, 0xEF, 0x06, 0xDE, 0x48, 0x31, - 0xBB, 0x2C, 0xE5, 0xC3, 0x67, 0xA1, 0x10, 0xB9 -}; - -unsigned char table_161[256] = { - 0x8F, 0x1A, 0x81, 0xA2, 0x2C, 0x56, 0x6D, 0xCD, - 0x4A, 0x33, 0x50, 0xE9, 0xE0, 0x12, 0x5A, 0x43, - 0x2D, 0x4F, 0xEA, 0x95, 0xFD, 0x49, 0xAB, 0xA3, - 0x79, 0x42, 0x0B, 0xB8, 0x89, 0x40, 0x71, 0x14, - 0x80, 0x55, 0xAF, 0xCF, 0x3E, 0x64, 0x8B, 0x74, - 0xBF, 0x9C, 0x24, 0x97, 0xD1, 0xBA, 0x48, 0xD2, - 0x08, 0x1F, 0xDD, 0xA7, 0xDC, 0x92, 0x30, 0x75, - 0x31, 0x37, 0x67, 0x06, 0x68, 0x72, 0x6F, 0x05, - 0x8A, 0x7C, 0x4C, 0x3C, 0x19, 0x28, 0x86, 0x3D, - 0x93, 0xDA, 0xF4, 0xC7, 0x17, 0x85, 0xAC, 0x02, - 0x78, 0x04, 0xAD, 0x03, 0x8D, 0x11, 0xC5, 0x9D, - 0x3A, 0x73, 0x82, 0x59, 0x51, 0x9F, 0x27, 0x47, - 0xE7, 0xED, 0x1E, 0xFF, 0x34, 0x01, 0x5B, 0x4B, - 0xCA, 0x6C, 0x69, 0xBB, 0x3B, 0xC4, 0x5F, 0xDF, - 0x09, 0x6B, 0x7D, 0xC9, 0x88, 0x45, 0x57, 0xD3, - 0x2A, 0x4E, 0xF1, 0xC2, 0xA9, 0xB6, 0x18, 0xD4, - 0xA0, 0x1C, 0x4D, 0x0E, 0xE5, 0xE1, 0xD7, 0xB2, - 0x0C, 0x3F, 0x00, 0x61, 0x16, 0x0D, 0x32, 0x62, - 0x58, 0x63, 0xEE, 0xEF, 0x2F, 0x5D, 0xB0, 0x20, - 0x7A, 0x10, 0xE6, 0xA1, 0xF9, 0xD8, 0x6E, 0xCB, - 0xF0, 0x9B, 0x84, 0x8E, 0xF2, 0xFE, 0xC8, 0x7F, - 0xBD, 0xF8, 0x07, 0xC6, 0x39, 0xBC, 0xCC, 0x22, - 0x54, 0x15, 0x9A, 0xA4, 0xC1, 0x2B, 0x1B, 0x25, - 0xDE, 0x6A, 0xDB, 0x90, 0xEB, 0xB7, 0xD0, 0x44, - 0xA6, 0xB9, 0xB1, 0x23, 0x9E, 0x65, 0x83, 0xFA, - 0x96, 0xB5, 0x0F, 0xF6, 0xD6, 0xE8, 0x53, 0x13, - 0x76, 0xD5, 0x35, 0x87, 0xE3, 0x38, 0xF5, 0xAE, - 0xB3, 0xCE, 0xE2, 0x70, 0xD9, 0x66, 0x5C, 0x26, - 0xC3, 0xFC, 0xF7, 0x94, 0xF3, 0xEC, 0xFB, 0x99, - 0x91, 0x77, 0xB4, 0x46, 0xA5, 0x98, 0x7B, 0x1D, - 0x52, 0x2E, 0xA8, 0x60, 0x5E, 0x29, 0x21, 0x7E, - 0xBE, 0x0A, 0x36, 0x41, 0xC0, 0x8C, 0xE4, 0xAA -}; - -unsigned char table_162[256] = { - 0xF7, 0x1B, 0xC0, 0x31, 0x5A, 0x23, 0xEA, 0xE9, - 0xFB, 0x14, 0x6A, 0xE8, 0x04, 0x65, 0x5B, 0x2C, - 0x41, 0xD9, 0xEB, 0xE4, 0x8D, 0x1D, 0xCA, 0x8F, - 0x5E, 0x43, 0xAF, 0x46, 0x0A, 0x01, 0x0C, 0xB4, - 0x95, 0x52, 0x92, 0xE0, 0x10, 0x57, 0x0F, 0x71, - 0xB1, 0x26, 0xD8, 0x05, 0x69, 0x3C, 0x54, 0xDF, - 0xFF, 0x9D, 0x51, 0xA0, 0xA1, 0x0B, 0xC1, 0x20, - 0x6D, 0xFA, 0x47, 0x15, 0x09, 0xD3, 0xE1, 0xA9, - 0x66, 0x12, 0x5C, 0x49, 0x1E, 0x3B, 0xD0, 0x8B, - 0x62, 0xBD, 0x06, 0xE5, 0x00, 0x98, 0x4E, 0x32, - 0xB0, 0x2D, 0x2A, 0x7F, 0x03, 0xD5, 0x99, 0x7E, - 0xAB, 0x22, 0xC6, 0xC3, 0x2F, 0x4C, 0x33, 0x45, - 0xE3, 0x3F, 0xF9, 0xB2, 0xFE, 0x36, 0xE7, 0xF8, - 0x55, 0x0D, 0x56, 0x1F, 0x4B, 0xE6, 0x50, 0x81, - 0xCE, 0x80, 0xCD, 0x67, 0x6B, 0xCF, 0x2E, 0x9B, - 0xBC, 0xBE, 0x11, 0x75, 0x4D, 0xAC, 0x59, 0x40, - 0x85, 0x0E, 0xC9, 0x17, 0xA3, 0x60, 0xED, 0x16, - 0xA4, 0xDD, 0xEE, 0x96, 0x77, 0x83, 0x34, 0xD2, - 0xCB, 0xFC, 0x6C, 0x08, 0xEC, 0x35, 0xF2, 0x6F, - 0x3A, 0x7B, 0x21, 0x4A, 0x70, 0xEF, 0xAD, 0xDE, - 0x90, 0x9E, 0x7D, 0x64, 0x2B, 0x79, 0xF5, 0xF3, - 0x13, 0x1C, 0x7A, 0x07, 0x4F, 0x78, 0x89, 0xB6, - 0x97, 0xF1, 0xD7, 0x7C, 0x48, 0xAE, 0x39, 0xA8, - 0xA6, 0x86, 0x3E, 0x27, 0x87, 0x73, 0x82, 0x24, - 0x30, 0x74, 0x5F, 0xD1, 0x9F, 0x9C, 0x1A, 0x8C, - 0x42, 0x6E, 0x28, 0xB9, 0xF0, 0xC4, 0x68, 0x25, - 0xC5, 0xDC, 0xB8, 0x29, 0xD6, 0x84, 0x3D, 0xBB, - 0x88, 0x76, 0xFD, 0x61, 0x94, 0x91, 0xDA, 0xB7, - 0x72, 0xBA, 0xC2, 0xDB, 0xB5, 0xA5, 0xE2, 0x18, - 0xF6, 0xAA, 0x8A, 0x19, 0x63, 0x9A, 0xA7, 0xC8, - 0xD4, 0x02, 0x8E, 0x37, 0xF4, 0xB3, 0xA2, 0x53, - 0x38, 0xCC, 0x58, 0x44, 0xBF, 0x93, 0x5D, 0xC7 -}; - -unsigned char table_163[32] = { - 0x1B, 0x14, 0x12, 0x15, 0x11, 0x1D, 0x17, 0x19, - 0x10, 0x09, 0x08, 0x06, 0x1A, 0x16, 0x07, 0x13, - 0x1F, 0x0B, 0x1C, 0x05, 0x0E, 0x00, 0x18, 0x0A, - 0x04, 0x01, 0x03, 0x0C, 0x0D, 0x1E, 0x02, 0x0F -}; - -unsigned char table_164[32] = { - 0x15, 0x00, 0x10, 0x0B, 0x1D, 0x0A, 0x06, 0x1C, - 0x0D, 0x1F, 0x17, 0x0F, 0x03, 0x14, 0x13, 0x12, - 0x1B, 0x18, 0x08, 0x1E, 0x16, 0x09, 0x1A, 0x04, - 0x02, 0x0C, 0x0E, 0x01, 0x07, 0x19, 0x11, 0x05 -}; - -unsigned char table_165[256] = { - 0x98, 0xF5, 0x1D, 0xFB, 0x13, 0x20, 0x41, 0xA3, - 0xE3, 0x76, 0x49, 0x7E, 0x60, 0xD8, 0x68, 0x30, - 0x88, 0x45, 0xD5, 0x77, 0x00, 0xC3, 0x09, 0x31, - 0x44, 0x18, 0xD4, 0x14, 0xC8, 0x1B, 0x8B, 0x38, - 0x08, 0x52, 0xD1, 0xF3, 0x69, 0x9F, 0xDA, 0x61, - 0x16, 0x1C, 0xE4, 0x7D, 0xEE, 0xD9, 0x5E, 0x4C, - 0xA7, 0xAA, 0xA6, 0xF6, 0xCF, 0xA0, 0xBA, 0x10, - 0xE2, 0xDE, 0x0F, 0xEA, 0xBC, 0x32, 0x63, 0xC0, - 0x54, 0xC5, 0xBE, 0x71, 0x80, 0x56, 0x5C, 0xA4, - 0xAD, 0x15, 0x9D, 0x11, 0x43, 0x67, 0x95, 0xAE, - 0xC6, 0xC4, 0x91, 0x9C, 0xE5, 0x37, 0xE1, 0x7A, - 0xDB, 0xEF, 0x03, 0x65, 0x86, 0x66, 0x2A, 0xB5, - 0xBF, 0xB4, 0x0D, 0xB3, 0xD7, 0x2D, 0x01, 0xEB, - 0x8C, 0xF2, 0x5A, 0x2E, 0x64, 0x25, 0x02, 0xCB, - 0x4A, 0xB0, 0xCE, 0x35, 0xA8, 0x47, 0x85, 0x33, - 0x34, 0x24, 0x23, 0x7B, 0xB6, 0x48, 0x83, 0x40, - 0x87, 0x57, 0x3C, 0xD6, 0xCD, 0x2C, 0x6D, 0xE7, - 0xBB, 0xED, 0x81, 0x5D, 0x55, 0x46, 0xDD, 0xD3, - 0x70, 0xBD, 0xB8, 0x75, 0x53, 0x6E, 0xD0, 0x99, - 0xCA, 0x58, 0xC7, 0x4B, 0x3D, 0xA5, 0x50, 0x7C, - 0x93, 0x51, 0xB7, 0xFD, 0x05, 0x3A, 0xE8, 0x8F, - 0x28, 0x74, 0x39, 0xF0, 0x7F, 0x4F, 0x06, 0x36, - 0xB2, 0x19, 0x2F, 0x1F, 0x8D, 0x0C, 0xB9, 0xFC, - 0x89, 0x21, 0x12, 0xF7, 0x3F, 0x94, 0x6F, 0xDC, - 0x3E, 0x4E, 0x3B, 0xC9, 0x07, 0x9B, 0x17, 0x9A, - 0x73, 0x6A, 0x5B, 0xA1, 0x1E, 0x8A, 0x04, 0x72, - 0x6C, 0xA2, 0xEC, 0x96, 0xFE, 0xF8, 0x84, 0xC1, - 0x79, 0x0E, 0x62, 0x90, 0x8E, 0xF4, 0x42, 0x29, - 0x92, 0x9E, 0xAC, 0x82, 0x4D, 0xAF, 0x2B, 0x6B, - 0xA9, 0xFF, 0x0A, 0xAB, 0x22, 0x5F, 0xDF, 0xD2, - 0x0B, 0x78, 0xF1, 0xE6, 0x59, 0x27, 0xC2, 0xE0, - 0x1A, 0x26, 0xCC, 0xB1, 0xF9, 0xFA, 0x97, 0xE9 -}; - -unsigned char table_166[256] = { - 0xCB, 0xEA, 0x2A, 0x36, 0x6D, 0x93, 0x4E, 0xD5, - 0xBC, 0x6A, 0xD4, 0x68, 0xF7, 0x18, 0xAB, 0x8B, - 0x66, 0x95, 0x94, 0x64, 0xB7, 0x00, 0x4D, 0x97, - 0x38, 0xB3, 0xFC, 0xE1, 0xBB, 0x63, 0xF3, 0x1F, - 0x6B, 0x2C, 0x2F, 0x5E, 0xA4, 0x7E, 0xFB, 0xF4, - 0xA8, 0x8A, 0x65, 0x53, 0x90, 0x58, 0x40, 0x60, - 0x28, 0x8E, 0x35, 0x49, 0xED, 0xBD, 0x1B, 0x0B, - 0xBA, 0xB8, 0x61, 0x50, 0xE9, 0x39, 0xEF, 0xC3, - 0x74, 0xB6, 0x46, 0x8D, 0xD9, 0x32, 0x92, 0x9A, - 0x30, 0x01, 0xF2, 0x41, 0xB9, 0xE7, 0x3A, 0xB0, - 0x80, 0x15, 0xDE, 0x7D, 0x7F, 0x09, 0xC2, 0x76, - 0xF8, 0x12, 0x59, 0xDD, 0x1D, 0xE6, 0x75, 0xBE, - 0xA3, 0x04, 0xCA, 0x78, 0x7B, 0xAC, 0xD8, 0x70, - 0xD3, 0xC1, 0x25, 0x6F, 0x03, 0x6C, 0x14, 0x45, - 0xE5, 0x2B, 0x87, 0x83, 0xAA, 0x77, 0x5F, 0x4A, - 0x9C, 0x27, 0x0C, 0x10, 0xAE, 0x56, 0x85, 0x0D, - 0xE3, 0xFA, 0x71, 0xEE, 0x9F, 0x21, 0xC0, 0xCD, - 0xFD, 0xDC, 0x5B, 0x11, 0x02, 0x0F, 0x96, 0x3D, - 0x3C, 0x26, 0xEB, 0x08, 0x7A, 0x82, 0xA7, 0x19, - 0xD7, 0xC5, 0xF6, 0x52, 0x57, 0x88, 0xFF, 0x47, - 0x8F, 0xC6, 0x33, 0xB5, 0x2E, 0x8C, 0x81, 0x91, - 0x44, 0xA6, 0x17, 0xF0, 0x4B, 0x9D, 0x34, 0x73, - 0x72, 0x67, 0xD2, 0x0E, 0xA0, 0x99, 0xA5, 0xAF, - 0xFE, 0x9E, 0x6E, 0xDA, 0x3B, 0xE2, 0x23, 0xD6, - 0xD0, 0x13, 0x89, 0x5A, 0x42, 0x98, 0x5C, 0xD1, - 0x86, 0x24, 0xDF, 0x37, 0xF9, 0xCC, 0xF5, 0xA9, - 0x2D, 0xBF, 0x5D, 0xF1, 0x69, 0xE8, 0xA2, 0x06, - 0x48, 0xC7, 0xDB, 0x29, 0xE4, 0xAD, 0x3E, 0xA1, - 0xC9, 0x4C, 0x1A, 0xCE, 0x62, 0x4F, 0x7C, 0xC8, - 0x05, 0xC4, 0xB1, 0x1E, 0x79, 0x55, 0x84, 0xB2, - 0x20, 0x31, 0x9B, 0xEC, 0xB4, 0xCF, 0x54, 0x22, - 0x1C, 0xE0, 0x51, 0x16, 0x43, 0x07, 0x0A, 0x3F -}; - -unsigned char table_167[256] = { - 0x91, 0xEA, 0x4F, 0x6A, 0x6E, 0x2D, 0x27, 0x22, - 0x44, 0xA5, 0x6D, 0xE3, 0x45, 0x06, 0xE2, 0x87, - 0x9A, 0xC9, 0x2C, 0x4A, 0x93, 0x6F, 0x00, 0xEB, - 0x7C, 0x7F, 0xA2, 0xFE, 0x40, 0x3C, 0x3F, 0xC0, - 0xC7, 0xFB, 0x8B, 0xDF, 0xA3, 0x28, 0x78, 0x48, - 0x46, 0xD5, 0x70, 0x5C, 0x35, 0x4E, 0xD7, 0x3A, - 0x42, 0x47, 0x5B, 0x26, 0x8E, 0xE0, 0x21, 0xB1, - 0x77, 0x1E, 0x53, 0x4B, 0xCC, 0xE5, 0x65, 0xF6, - 0x66, 0x2A, 0xA0, 0x5E, 0x3E, 0xAD, 0xA8, 0x95, - 0x1B, 0x0D, 0x8A, 0x05, 0x68, 0x59, 0x0C, 0x38, - 0x18, 0xC3, 0x81, 0xA4, 0xFD, 0x13, 0x50, 0xCA, - 0xE8, 0xDD, 0xD9, 0x76, 0x8C, 0xC5, 0xF4, 0x17, - 0xB4, 0x3D, 0xEC, 0x0B, 0x67, 0xC6, 0x8D, 0xE1, - 0xBB, 0x7E, 0xCB, 0x10, 0x99, 0xE9, 0x39, 0xF3, - 0x75, 0xFA, 0xAC, 0x16, 0x54, 0x51, 0xBC, 0x24, - 0x58, 0x08, 0xA7, 0x0F, 0x5D, 0xBF, 0xBA, 0xE7, - 0x9D, 0x2B, 0xB5, 0x29, 0xE4, 0xCD, 0x37, 0x30, - 0x55, 0xAE, 0x1D, 0x4D, 0x94, 0x34, 0x92, 0x1C, - 0x6B, 0xBE, 0x52, 0x7B, 0x33, 0xB0, 0x0A, 0x5A, - 0x03, 0x23, 0x41, 0x49, 0x61, 0x64, 0x73, 0x97, - 0xC2, 0x9F, 0x5F, 0x07, 0x04, 0xF8, 0xC1, 0xFC, - 0x74, 0x02, 0x0E, 0x60, 0x9E, 0xD4, 0x85, 0x88, - 0xC4, 0xF5, 0x90, 0x31, 0xF7, 0xEE, 0x9B, 0xB9, - 0x20, 0xE6, 0xA6, 0x63, 0x79, 0x56, 0x62, 0xF0, - 0x2F, 0xD8, 0x4C, 0x83, 0xF9, 0x36, 0x3B, 0x84, - 0xDE, 0x57, 0xB8, 0xB7, 0x11, 0xF2, 0xC8, 0xD3, - 0xD1, 0x96, 0x19, 0x2E, 0x72, 0x9C, 0xDB, 0xB3, - 0xA1, 0xAA, 0xCE, 0x09, 0x98, 0xED, 0xA9, 0xDA, - 0xAF, 0x86, 0xD0, 0x12, 0xFF, 0xDC, 0x1F, 0xD6, - 0x01, 0xF1, 0xD2, 0x80, 0x43, 0x7A, 0x71, 0x82, - 0xB6, 0xAB, 0x89, 0xBD, 0x8F, 0xEF, 0x7D, 0xB2, - 0x14, 0x15, 0x25, 0x32, 0x6C, 0x69, 0x1A, 0xCF -}; - -unsigned char table_168[256] = { - 0x28, 0xEE, 0xB1, 0xFD, 0xB3, 0xEF, 0x36, 0x8E, - 0x85, 0x5D, 0x1C, 0x53, 0x1E, 0xDA, 0xBA, 0x3C, - 0xA8, 0x90, 0x99, 0x49, 0x45, 0xE0, 0x27, 0x8D, - 0x22, 0xE4, 0x51, 0x3E, 0xAB, 0xE8, 0x70, 0xF5, - 0x81, 0xE6, 0x34, 0x29, 0xF3, 0x11, 0x46, 0x5F, - 0x5C, 0xA0, 0xD1, 0xE3, 0x15, 0x68, 0x3A, 0x01, - 0xE9, 0xD7, 0x24, 0x5A, 0x18, 0x16, 0x88, 0x3B, - 0x64, 0xA1, 0xDB, 0xBF, 0xAA, 0x43, 0xEA, 0x19, - 0xA2, 0xD5, 0x7B, 0xBD, 0x2A, 0x0E, 0x4F, 0xB5, - 0x4B, 0xB7, 0x5B, 0x73, 0xC9, 0xAC, 0x1B, 0x67, - 0xC7, 0xB4, 0x69, 0x00, 0xBC, 0x6D, 0xC1, 0x04, - 0xF4, 0x74, 0xD6, 0xD0, 0x60, 0xAE, 0x17, 0xFE, - 0x63, 0xB6, 0x89, 0x41, 0x7C, 0x44, 0x8B, 0xDC, - 0x50, 0xE5, 0x79, 0x77, 0x47, 0x9F, 0xA6, 0x3D, - 0x09, 0x8A, 0x2F, 0xC0, 0x0F, 0xCD, 0x2B, 0x4D, - 0x0D, 0xC2, 0x5E, 0xB0, 0x57, 0x62, 0xAF, 0x1A, - 0x21, 0x82, 0x48, 0x9E, 0x38, 0xB9, 0xB8, 0xF2, - 0x37, 0x07, 0xCA, 0xC5, 0x84, 0xDF, 0xF9, 0xEC, - 0x42, 0x6B, 0x8F, 0x6C, 0x3F, 0xC4, 0x94, 0xED, - 0x7A, 0x2D, 0xA3, 0x83, 0xD9, 0x55, 0x02, 0x9A, - 0xA9, 0x75, 0x10, 0x2C, 0xCB, 0x95, 0xBB, 0x6E, - 0x23, 0x65, 0x35, 0x97, 0x56, 0xAD, 0xCE, 0xF8, - 0xF0, 0x0C, 0xE2, 0x52, 0x05, 0x91, 0xCC, 0xC8, - 0x78, 0x06, 0x96, 0x4E, 0x03, 0xD3, 0x98, 0xA7, - 0x13, 0x58, 0x93, 0xD4, 0xDD, 0xC6, 0xFC, 0x25, - 0x9C, 0x86, 0x1F, 0xCF, 0x76, 0xA4, 0x6A, 0xFA, - 0x0B, 0x4A, 0x54, 0x40, 0x59, 0xD8, 0x61, 0xFF, - 0x7F, 0x80, 0x6F, 0x7D, 0xF1, 0x8C, 0x92, 0xDE, - 0x9D, 0xC3, 0xB2, 0xE7, 0xFB, 0x20, 0x31, 0x72, - 0x12, 0xBE, 0x1D, 0xF6, 0x9B, 0x14, 0x26, 0x0A, - 0xEB, 0xF7, 0x71, 0x39, 0x30, 0xA5, 0x87, 0xD2, - 0x66, 0x2E, 0x08, 0x32, 0x4C, 0x33, 0x7E, 0xE1 -}; - -unsigned char table_169[256] = { - 0xA4, 0x31, 0xA9, 0x3F, 0x13, 0x4D, 0x1B, 0x29, - 0x73, 0x43, 0xF1, 0xE7, 0x9C, 0xC2, 0xF6, 0xCD, - 0xA1, 0x94, 0x0D, 0x27, 0xFE, 0x7B, 0x9B, 0x0B, - 0x89, 0xBA, 0x23, 0xEC, 0x76, 0xC3, 0x6C, 0xD8, - 0x8D, 0xF8, 0xF9, 0x7D, 0x68, 0x5B, 0x61, 0x87, - 0x28, 0x14, 0x55, 0x0C, 0xFC, 0xD9, 0x07, 0xE8, - 0x36, 0x88, 0x67, 0x4C, 0xEA, 0xBD, 0xF5, 0x9D, - 0xB6, 0xC6, 0x24, 0x32, 0x93, 0x03, 0x79, 0x8C, - 0x12, 0x84, 0xFF, 0x7E, 0x42, 0xE4, 0x3C, 0xF2, - 0x50, 0xEB, 0x1F, 0x47, 0xB0, 0xA5, 0xB1, 0x71, - 0x30, 0x5F, 0x5C, 0x53, 0xF7, 0x10, 0xC5, 0x6E, - 0xE0, 0xDE, 0xC8, 0x58, 0xB7, 0x90, 0xA6, 0x95, - 0x70, 0x8F, 0xFD, 0xC1, 0x48, 0xB5, 0x19, 0x92, - 0xBC, 0x15, 0x4E, 0xE6, 0x11, 0xDD, 0x81, 0x0E, - 0xBB, 0x75, 0x5D, 0x4A, 0xAB, 0x2D, 0x02, 0x54, - 0x4B, 0x66, 0xD6, 0x2B, 0x2A, 0xE5, 0x26, 0xE1, - 0xEE, 0xE9, 0x8B, 0x6A, 0x7A, 0xF4, 0x51, 0x39, - 0x1C, 0xC9, 0xCF, 0x77, 0x00, 0xF3, 0x25, 0xCC, - 0x08, 0xFB, 0x0F, 0x3E, 0xCE, 0xED, 0x3D, 0x56, - 0xEF, 0x1D, 0x85, 0x96, 0x52, 0xA8, 0xD3, 0xCB, - 0xE3, 0x33, 0x06, 0x7C, 0xAE, 0x72, 0x09, 0x04, - 0x91, 0xC4, 0x5A, 0x69, 0x98, 0xB4, 0x40, 0xDF, - 0x7F, 0x9F, 0xAA, 0x83, 0xE2, 0x78, 0x74, 0x20, - 0xAD, 0x6D, 0xDC, 0xD4, 0xCA, 0x60, 0xF0, 0x35, - 0x37, 0xD0, 0x18, 0x1A, 0x64, 0x3A, 0x99, 0xDB, - 0x62, 0x44, 0x2C, 0x82, 0x8E, 0xD7, 0xD1, 0xFA, - 0x16, 0xD5, 0x46, 0xBF, 0xA7, 0xC0, 0x2E, 0x3B, - 0x01, 0x63, 0xB2, 0x1E, 0x05, 0x21, 0xB8, 0x17, - 0x22, 0x97, 0xAF, 0x4F, 0x86, 0x34, 0xDA, 0xC7, - 0xA3, 0xA0, 0xB3, 0x2F, 0xAC, 0x49, 0xD2, 0x57, - 0x6F, 0x9A, 0x65, 0xB9, 0x41, 0xBE, 0x8A, 0xA2, - 0x6B, 0x0A, 0x59, 0x9E, 0x5E, 0x38, 0x45, 0x80 -}; - -unsigned char table_170[256] = { - 0xE3, 0x00, 0x99, 0x03, 0xF6, 0xDD, 0xD1, 0x41, - 0x58, 0x7E, 0xD9, 0x46, 0x04, 0xAF, 0x5C, 0x43, - 0xDE, 0x5E, 0xFC, 0x97, 0x3D, 0x68, 0xC8, 0x37, - 0x3C, 0xFB, 0x0F, 0x5A, 0xBE, 0xFA, 0x4C, 0x82, - 0x0C, 0xA0, 0x0A, 0xD4, 0x9D, 0xCE, 0x78, 0xA8, - 0x55, 0x56, 0x60, 0xAA, 0xC9, 0x96, 0x62, 0xEA, - 0x0D, 0xB8, 0xE2, 0x84, 0x17, 0xAE, 0x2B, 0x2C, - 0x91, 0x57, 0x38, 0x01, 0xA9, 0xCD, 0x34, 0xBA, - 0x8D, 0xC0, 0xD6, 0xFF, 0xF2, 0xD3, 0x5F, 0x26, - 0xCA, 0x9B, 0x21, 0x75, 0x4E, 0x49, 0x20, 0x59, - 0x39, 0xBF, 0x90, 0x6C, 0xFE, 0x8F, 0x2F, 0x18, - 0x36, 0xD7, 0xB4, 0xAC, 0xBD, 0xF3, 0x1D, 0x4F, - 0xA3, 0x74, 0x5B, 0x44, 0x05, 0x9C, 0x6D, 0x6B, - 0x1E, 0xE8, 0x25, 0x16, 0x80, 0xCC, 0x29, 0xC7, - 0x94, 0x4A, 0xF5, 0xF4, 0x27, 0x85, 0xBB, 0x24, - 0xDA, 0xB5, 0x76, 0x69, 0xA5, 0x54, 0x23, 0x31, - 0x11, 0xA4, 0x09, 0xE4, 0x64, 0x10, 0xC5, 0xC1, - 0x7D, 0xE7, 0x92, 0xF8, 0x9E, 0x6A, 0x15, 0x8B, - 0x98, 0x42, 0x52, 0x66, 0x0B, 0xA1, 0x35, 0x1A, - 0x14, 0x7C, 0xE1, 0x9F, 0x28, 0xF1, 0x1B, 0xA6, - 0x71, 0x73, 0x81, 0xAB, 0xE6, 0x95, 0x06, 0x1F, - 0xC6, 0xB0, 0x51, 0x0E, 0xEE, 0x77, 0xF0, 0xD8, - 0xC2, 0x89, 0x7B, 0x07, 0xA2, 0xB7, 0x19, 0x67, - 0x2E, 0x8E, 0x47, 0xA7, 0xEF, 0x32, 0xD2, 0x93, - 0xDC, 0x9A, 0xB2, 0xED, 0x45, 0xC4, 0x50, 0x3F, - 0xE5, 0xCF, 0x88, 0x1C, 0x7A, 0x79, 0xEB, 0x70, - 0x2A, 0x7F, 0xBC, 0xDB, 0xD0, 0xB1, 0xCB, 0x08, - 0x86, 0x5D, 0x53, 0x72, 0xB6, 0x4B, 0xB3, 0x22, - 0xC3, 0x6F, 0xB9, 0xD5, 0x3B, 0x13, 0x2D, 0xAD, - 0x33, 0xFD, 0x02, 0x40, 0x8A, 0x3A, 0xF7, 0xE0, - 0x8C, 0x3E, 0x61, 0x6E, 0xE9, 0x63, 0xF9, 0xEC, - 0x48, 0x30, 0x87, 0x83, 0x12, 0x4D, 0x65, 0xDF -}; - -unsigned char table_171[32] = { - 0x07, 0x06, 0x11, 0x08, 0x0C, 0x1F, 0x19, 0x02, - 0x14, 0x04, 0x0D, 0x18, 0x1A, 0x05, 0x17, 0x13, - 0x1C, 0x1B, 0x15, 0x03, 0x01, 0x0F, 0x16, 0x1E, - 0x1D, 0x10, 0x00, 0x12, 0x0B, 0x0E, 0x09, 0x0A -}; - -unsigned char table_172[32] = { - 0x11, 0x01, 0x1F, 0x06, 0x1A, 0x04, 0x02, 0x09, - 0x05, 0x0D, 0x0B, 0x18, 0x0E, 0x12, 0x1B, 0x17, - 0x07, 0x08, 0x1D, 0x1E, 0x14, 0x19, 0x16, 0x15, - 0x03, 0x0C, 0x00, 0x10, 0x0A, 0x1C, 0x0F, 0x13 -}; - -unsigned char table_173[32] = { - 0x1F, 0x0B, 0x13, 0x00, 0x16, 0x15, 0x14, 0x0A, - 0x1D, 0x05, 0x1E, 0x1A, 0x0F, 0x04, 0x0E, 0x01, - 0x19, 0x07, 0x02, 0x12, 0x0C, 0x17, 0x08, 0x09, - 0x03, 0x11, 0x18, 0x10, 0x1C, 0x1B, 0x06, 0x0D -}; - -unsigned char table_174[32] = { - 0x02, 0x1B, 0x0C, 0x17, 0x1F, 0x05, 0x15, 0x1E, - 0x16, 0x09, 0x1A, 0x12, 0x0F, 0x1C, 0x18, 0x0A, - 0x19, 0x10, 0x0D, 0x13, 0x04, 0x11, 0x08, 0x14, - 0x1D, 0x0E, 0x06, 0x00, 0x01, 0x07, 0x0B, 0x03 -}; - -unsigned char table_175[32] = { - 0x00, 0x06, 0x0B, 0x08, 0x0C, 0x04, 0x1A, 0x1C, - 0x05, 0x1E, 0x14, 0x03, 0x0A, 0x18, 0x12, 0x1D, - 0x16, 0x1F, 0x07, 0x09, 0x0F, 0x0E, 0x17, 0x13, - 0x11, 0x19, 0x10, 0x0D, 0x1B, 0x02, 0x01, 0x15 -}; - -unsigned char table_176[32] = { - 0x12, 0x03, 0x1A, 0x15, 0x04, 0x19, 0x0B, 0x1B, - 0x17, 0x1E, 0x0D, 0x05, 0x11, 0x14, 0x1C, 0x00, - 0x18, 0x10, 0x0A, 0x06, 0x0E, 0x08, 0x02, 0x07, - 0x13, 0x09, 0x16, 0x1D, 0x0F, 0x0C, 0x01, 0x1F -}; - -unsigned char table_177[256] = { - 0x5E, 0x4D, 0x76, 0xFE, 0xB5, 0x50, 0x83, 0x23, - 0x72, 0xDD, 0x93, 0x08, 0x69, 0xAD, 0xEC, 0x3B, - 0x0B, 0x9A, 0x36, 0xC9, 0xCA, 0xBE, 0xF7, 0x30, - 0x19, 0x39, 0x2C, 0xAB, 0xE3, 0x7B, 0xBC, 0x32, - 0xA0, 0xE4, 0xA6, 0xB6, 0xCB, 0xC8, 0x37, 0x07, - 0xD2, 0xA1, 0xD9, 0xF6, 0xBF, 0xF5, 0x88, 0x01, - 0x95, 0x0F, 0x03, 0xFD, 0xE6, 0x68, 0x90, 0x61, - 0x21, 0x6D, 0x3C, 0x62, 0x34, 0x2B, 0x71, 0x4B, - 0x44, 0x64, 0x75, 0xA2, 0x6A, 0xFF, 0x29, 0xBD, - 0x35, 0x15, 0xF9, 0xC1, 0x09, 0x45, 0xB2, 0xF2, - 0x3F, 0xCE, 0xB0, 0xC0, 0xB8, 0x00, 0x05, 0xD7, - 0x11, 0xC6, 0x78, 0x53, 0x9E, 0xB3, 0xED, 0x56, - 0x22, 0x5C, 0x9D, 0x6C, 0x99, 0x43, 0x2F, 0xAE, - 0xEB, 0x40, 0x8C, 0x1F, 0xC2, 0xDF, 0x92, 0x65, - 0x6F, 0x79, 0x5D, 0x5B, 0xAA, 0xDB, 0xF1, 0x96, - 0xD4, 0xF4, 0x8B, 0x51, 0xD5, 0xE2, 0xBB, 0x80, - 0x17, 0x7C, 0x2A, 0x6E, 0xDE, 0xEA, 0x94, 0x31, - 0xA4, 0x2D, 0xC3, 0x8D, 0x55, 0x14, 0x9B, 0x0E, - 0x7D, 0xC4, 0x06, 0x33, 0x73, 0xE9, 0x7A, 0x38, - 0x5F, 0x89, 0x84, 0xD6, 0xA8, 0x13, 0xE8, 0xCF, - 0x46, 0xD0, 0x7F, 0x24, 0x8F, 0xF8, 0x87, 0x1B, - 0x47, 0x02, 0x0C, 0x97, 0x52, 0xFB, 0x8E, 0x20, - 0x70, 0x3E, 0x7E, 0xD1, 0xE5, 0xEE, 0xCC, 0x91, - 0x74, 0xCD, 0x42, 0x04, 0x8A, 0xEF, 0xE1, 0x10, - 0x4F, 0x1C, 0x28, 0x9F, 0xD8, 0x0A, 0x18, 0x49, - 0x9C, 0x16, 0xF3, 0x82, 0x57, 0x1D, 0x26, 0x66, - 0x27, 0x86, 0xE7, 0x59, 0xFA, 0x25, 0x54, 0x0D, - 0x98, 0xDC, 0xF0, 0x3D, 0x63, 0x1E, 0x77, 0x3A, - 0xDA, 0xB7, 0x6B, 0x2E, 0x48, 0x4C, 0xBA, 0xC7, - 0x60, 0xAC, 0x1A, 0xB9, 0xFC, 0xA3, 0xA7, 0xA5, - 0xB4, 0x67, 0xA9, 0x81, 0xB1, 0x12, 0xD3, 0x85, - 0x5A, 0xC5, 0xE0, 0x58, 0x41, 0x4E, 0x4A, 0xAF -}; - -unsigned char table_178[256] = { - 0x33, 0xBA, 0x98, 0xDA, 0x07, 0x2C, 0x22, 0x9B, - 0xE0, 0xED, 0xB7, 0xA1, 0x93, 0xEB, 0xDC, 0x49, - 0xDF, 0xE1, 0x6C, 0xC2, 0x64, 0x52, 0xD0, 0x8F, - 0xA2, 0x48, 0x26, 0x21, 0x6E, 0x5E, 0x0B, 0x7C, - 0x0D, 0x90, 0xA4, 0xCE, 0xF5, 0x5F, 0xF9, 0x1D, - 0x55, 0x83, 0x8D, 0xFB, 0x38, 0xB3, 0xF2, 0x67, - 0xDE, 0x0A, 0xBE, 0xEC, 0x5B, 0x35, 0x08, 0x50, - 0xE7, 0x56, 0x4A, 0x02, 0xBC, 0x5A, 0xBD, 0x43, - 0x6F, 0x79, 0xB2, 0xF7, 0x60, 0xE9, 0xA0, 0x1B, - 0xC8, 0xDD, 0x9D, 0xA3, 0x5C, 0x61, 0x77, 0x72, - 0x9C, 0x31, 0x0E, 0x05, 0x1E, 0x12, 0xF1, 0xC9, - 0x78, 0x4E, 0x15, 0x7D, 0x54, 0xCB, 0x73, 0xEA, - 0xC5, 0x2B, 0x0F, 0x7E, 0x42, 0x96, 0xC6, 0x74, - 0x09, 0x65, 0x34, 0xE6, 0x63, 0xA6, 0x70, 0xD3, - 0x27, 0x87, 0x3A, 0x16, 0x7B, 0x13, 0x06, 0x40, - 0x46, 0x69, 0xAD, 0x88, 0x81, 0xC0, 0x37, 0x58, - 0xD1, 0x8A, 0x8E, 0x9A, 0x5D, 0x6D, 0xC7, 0xC3, - 0xD2, 0xF4, 0x3F, 0x57, 0x3C, 0x4F, 0xA9, 0x6A, - 0x92, 0xA5, 0x97, 0x0C, 0x2A, 0x36, 0x47, 0xDB, - 0x8C, 0xEE, 0x03, 0x89, 0x7F, 0x91, 0x24, 0x80, - 0x2F, 0x62, 0xE4, 0xAF, 0x17, 0x99, 0xD6, 0xCD, - 0xFE, 0x76, 0x1C, 0xD4, 0x3E, 0xFF, 0xD8, 0xC4, - 0x39, 0x32, 0xCF, 0xE2, 0xE3, 0x53, 0xD7, 0xCC, - 0xD9, 0x11, 0xAA, 0x1F, 0x01, 0x3B, 0x51, 0xB5, - 0x94, 0x4B, 0x28, 0xF0, 0xAC, 0x44, 0x14, 0x4C, - 0xB9, 0xA7, 0xB8, 0x1A, 0xD5, 0xCA, 0xE8, 0x82, - 0x9F, 0x2D, 0xAB, 0x2E, 0x29, 0xFD, 0x68, 0xB1, - 0x66, 0xC1, 0x7A, 0xFA, 0x71, 0x04, 0xA8, 0xB0, - 0x59, 0x18, 0xAE, 0x25, 0x3D, 0xE5, 0xF6, 0x41, - 0x86, 0x75, 0x6B, 0xBB, 0xFC, 0x84, 0x8B, 0x85, - 0x10, 0x23, 0xB6, 0xF3, 0x19, 0x30, 0x20, 0x4D, - 0x95, 0x9E, 0xBF, 0xEF, 0xF8, 0x45, 0x00, 0xB4 -}; - -unsigned char table_179[256] = { - 0x50, 0x3D, 0x41, 0x42, 0x06, 0x5B, 0xD6, 0x34, - 0x9D, 0x3C, 0x7B, 0x14, 0xE2, 0x9B, 0x80, 0x15, - 0x51, 0x01, 0x6A, 0x30, 0xD7, 0xFC, 0x61, 0x4B, - 0x8A, 0xEC, 0x38, 0x71, 0x70, 0x2E, 0x1C, 0x72, - 0x79, 0x26, 0x4C, 0x48, 0xED, 0xAD, 0x25, 0x53, - 0x03, 0xD9, 0xB5, 0x0D, 0x8E, 0x19, 0xCC, 0xBE, - 0xE1, 0x91, 0x64, 0xA6, 0x21, 0xCE, 0x76, 0xAB, - 0x9F, 0xD1, 0xB6, 0x23, 0x6D, 0xB0, 0x90, 0xBD, - 0x09, 0x3A, 0x5E, 0xD0, 0x73, 0x10, 0x44, 0x08, - 0xFF, 0xB8, 0x24, 0x58, 0xDB, 0x65, 0x95, 0xAA, - 0xE9, 0xC4, 0x32, 0x2B, 0x84, 0xC9, 0xC7, 0xB1, - 0x4F, 0x0C, 0xCB, 0x11, 0x4E, 0x22, 0x4A, 0x16, - 0xDE, 0xBC, 0xEE, 0x68, 0x13, 0xFA, 0xC3, 0x98, - 0xEB, 0x29, 0x43, 0x9A, 0xA1, 0xE0, 0xF0, 0x3F, - 0x2F, 0x1B, 0xC2, 0x66, 0x35, 0xF5, 0xC8, 0xD8, - 0x5A, 0xE5, 0x87, 0x47, 0xD3, 0x7A, 0xE6, 0x39, - 0x77, 0x81, 0xF2, 0x0E, 0x83, 0x7E, 0x17, 0x6C, - 0xB3, 0x5C, 0xE8, 0xD2, 0xC0, 0xA4, 0xF9, 0x86, - 0xCD, 0xFB, 0x54, 0x7C, 0xBF, 0x2D, 0x82, 0xDA, - 0x96, 0x74, 0x97, 0xC5, 0x7D, 0x27, 0x57, 0x56, - 0xDC, 0xBA, 0x69, 0x8C, 0x9C, 0x88, 0xB4, 0x8D, - 0x37, 0xEA, 0x3B, 0x33, 0x2C, 0xB2, 0x45, 0xF7, - 0xC1, 0x1E, 0x46, 0x02, 0x6B, 0x3E, 0xA7, 0xD5, - 0x05, 0x0A, 0xA9, 0x1D, 0xA3, 0x4D, 0xAE, 0x6F, - 0x49, 0xDD, 0x8F, 0xEF, 0xBB, 0x67, 0x0B, 0x40, - 0x9E, 0xF1, 0x78, 0x28, 0xDF, 0x52, 0xF4, 0x92, - 0x94, 0x0F, 0xB9, 0x93, 0xF6, 0x1F, 0xAF, 0xA8, - 0xCA, 0xE4, 0x59, 0x7F, 0x85, 0x75, 0xC6, 0xFD, - 0x00, 0xB7, 0x55, 0xFE, 0x8B, 0x62, 0x5F, 0x12, - 0xF8, 0xD4, 0x89, 0xA0, 0x20, 0xE7, 0xCF, 0x60, - 0x5D, 0xAC, 0x1A, 0x36, 0x63, 0x99, 0x31, 0xF3, - 0x2A, 0x04, 0x18, 0xA5, 0xA2, 0x6E, 0x07, 0xE3 -}; - -unsigned char table_180[256] = { - 0xDA, 0xCC, 0x72, 0xA6, 0xE7, 0x07, 0xFD, 0x25, - 0x92, 0x39, 0x49, 0x02, 0xD6, 0x09, 0xA8, 0x65, - 0x2E, 0x6C, 0xA1, 0x19, 0xBF, 0x21, 0x11, 0xC7, - 0x3F, 0x9F, 0xF4, 0x51, 0xAF, 0x8C, 0xFE, 0xCD, - 0x7A, 0xEB, 0x5A, 0xF7, 0x18, 0x69, 0xB9, 0xED, - 0x37, 0x45, 0x13, 0xB4, 0xAA, 0x75, 0x47, 0x42, - 0xA3, 0x81, 0x88, 0x70, 0xC1, 0x36, 0x73, 0x1D, - 0x3B, 0x22, 0xB6, 0x35, 0xE9, 0x31, 0x56, 0x23, - 0xE1, 0xF5, 0xAD, 0x46, 0x99, 0x32, 0xE4, 0x40, - 0x00, 0x0F, 0x05, 0xC6, 0x33, 0x84, 0x7B, 0x4D, - 0x4B, 0x7D, 0x91, 0x3D, 0xCE, 0x64, 0x77, 0x55, - 0xD7, 0x2B, 0x2F, 0x2C, 0xB8, 0xD3, 0x85, 0xD1, - 0xB5, 0x6A, 0xF9, 0x41, 0x08, 0xBB, 0x87, 0xEC, - 0x78, 0xE0, 0xEE, 0x8D, 0x01, 0x58, 0x15, 0x8F, - 0x06, 0xF0, 0x8B, 0x27, 0x0D, 0x0B, 0x6D, 0xBD, - 0xCA, 0x2A, 0xA2, 0xE6, 0xDD, 0xBC, 0x4E, 0x5D, - 0x74, 0x04, 0x3A, 0x96, 0x66, 0x12, 0x1E, 0xF2, - 0xF6, 0xC4, 0xAE, 0x3C, 0x0C, 0x90, 0x68, 0xD8, - 0x24, 0x5E, 0x79, 0x10, 0xAC, 0xDF, 0x9B, 0xC5, - 0x44, 0xC3, 0x50, 0x5C, 0xA5, 0x89, 0x60, 0x5F, - 0x48, 0x17, 0x34, 0xA7, 0xE2, 0xF3, 0xD9, 0x3E, - 0x9C, 0xB7, 0x7C, 0x1F, 0xA9, 0xD4, 0xA4, 0x0E, - 0x8E, 0x4C, 0xDC, 0xF8, 0xF1, 0x98, 0xDE, 0x2D, - 0x61, 0xCB, 0xD5, 0x43, 0x86, 0x26, 0xB0, 0x7F, - 0x7E, 0xFF, 0xAB, 0x83, 0x14, 0x9A, 0x80, 0x16, - 0x30, 0xA0, 0x53, 0x97, 0x52, 0x9E, 0xB1, 0x1B, - 0xD0, 0x1A, 0xC8, 0x57, 0xBA, 0x6E, 0xFA, 0x94, - 0xE8, 0x63, 0x5B, 0x29, 0xEF, 0x71, 0x8A, 0x03, - 0xB3, 0x76, 0xC9, 0xD2, 0xBE, 0xE5, 0x82, 0x1C, - 0x95, 0x9D, 0x4A, 0x28, 0xEA, 0x0A, 0xC0, 0xE3, - 0x6F, 0x20, 0x54, 0xFB, 0x93, 0xFC, 0x6B, 0x38, - 0x62, 0x4F, 0xCF, 0xB2, 0xC2, 0x59, 0xDB, 0x67 -}; - -unsigned char table_181[256] = { - 0x2B, 0xED, 0x14, 0x05, 0x80, 0xCC, 0x5A, 0xF8, - 0x43, 0xB7, 0x86, 0xC6, 0xEE, 0xA6, 0xD7, 0xD6, - 0xA0, 0xC4, 0x21, 0x34, 0xB1, 0x8C, 0xF9, 0xF4, - 0x7C, 0x53, 0x06, 0xD4, 0x6B, 0x3F, 0xE1, 0x12, - 0x6A, 0xCE, 0xCF, 0xBF, 0x74, 0x3E, 0xD5, 0xCB, - 0x97, 0x01, 0xA2, 0x2D, 0xAE, 0xF7, 0x17, 0x29, - 0x47, 0x03, 0x0E, 0xE9, 0x82, 0x46, 0x94, 0xAF, - 0x2A, 0x90, 0xFE, 0x4A, 0x7E, 0x0C, 0x71, 0xB6, - 0xA5, 0xF2, 0x67, 0x41, 0xBA, 0xC2, 0x8A, 0x9D, - 0x36, 0xFF, 0x50, 0x2E, 0xC3, 0x91, 0x9C, 0x37, - 0x66, 0xAD, 0xB2, 0x1F, 0xE4, 0xE3, 0x9F, 0xDD, - 0x87, 0xC0, 0xE6, 0xEF, 0x13, 0x70, 0x5B, 0xDE, - 0x5C, 0x75, 0x7F, 0x4F, 0x44, 0xCA, 0x55, 0x57, - 0xF0, 0x26, 0xA7, 0xC7, 0x10, 0x51, 0x00, 0xB3, - 0x5D, 0x99, 0x81, 0x3B, 0xB9, 0x1C, 0x64, 0x7B, - 0xFB, 0xD9, 0x8D, 0x4E, 0xAC, 0x25, 0xBB, 0x69, - 0xDF, 0x02, 0x9E, 0x2C, 0xAB, 0xF3, 0x65, 0x09, - 0xA3, 0x6C, 0xC1, 0x76, 0x52, 0x30, 0xD8, 0x3A, - 0x40, 0x18, 0x59, 0xD0, 0xE5, 0xB4, 0x5F, 0x33, - 0x68, 0x92, 0x2F, 0xB8, 0x93, 0xD1, 0xEB, 0xA4, - 0xFC, 0x77, 0x19, 0x62, 0xC9, 0x49, 0x84, 0x1A, - 0x9A, 0xE7, 0x31, 0xE8, 0xE2, 0x58, 0xF1, 0x4B, - 0x1E, 0x0B, 0x39, 0xFD, 0x42, 0x7A, 0x89, 0x38, - 0x11, 0x98, 0x63, 0x08, 0xE0, 0xEA, 0xBE, 0xB0, - 0x45, 0x1B, 0x4C, 0x54, 0xC8, 0x27, 0x3D, 0x73, - 0x04, 0x8F, 0x79, 0xBC, 0x6F, 0x0D, 0x0F, 0xA1, - 0x60, 0xDC, 0xC5, 0xFA, 0x8E, 0xDA, 0x15, 0x96, - 0xD3, 0x07, 0xF5, 0x3C, 0x88, 0x72, 0x1D, 0x4D, - 0x8B, 0x61, 0x0A, 0xDB, 0xAA, 0x20, 0x23, 0xEC, - 0x6E, 0x22, 0x48, 0x28, 0xBD, 0xA9, 0x56, 0x5E, - 0x85, 0xA8, 0x95, 0x6D, 0x16, 0x78, 0xB5, 0xF6, - 0x32, 0x24, 0x7D, 0x9B, 0xD2, 0x83, 0x35, 0xCD -}; - -unsigned char table_182[256] = { - 0x06, 0x7F, 0x66, 0xB5, 0xBA, 0x1E, 0xFD, 0x51, - 0x81, 0x8D, 0x28, 0xA3, 0x15, 0x37, 0xDC, 0x58, - 0xE6, 0x3D, 0xB4, 0xB9, 0x2E, 0xA0, 0x2F, 0xC4, - 0xCB, 0xB1, 0x25, 0xBF, 0xC1, 0x4E, 0x5A, 0xE4, - 0x0F, 0x10, 0x7C, 0x52, 0xA7, 0x29, 0x76, 0x55, - 0xAA, 0x70, 0x62, 0x54, 0x43, 0x93, 0x3A, 0x7D, - 0x5B, 0x56, 0x33, 0x64, 0x74, 0x2A, 0xD9, 0x9B, - 0x88, 0xC0, 0x3C, 0x63, 0xDE, 0xF4, 0x73, 0xDF, - 0x9E, 0xB2, 0xA8, 0x4F, 0x04, 0x57, 0x47, 0x87, - 0x14, 0xFC, 0x27, 0x53, 0x83, 0xDB, 0xD7, 0x20, - 0x96, 0x31, 0xD0, 0xCF, 0x30, 0x19, 0x69, 0x1A, - 0xAE, 0x3B, 0x11, 0x0C, 0xA6, 0x95, 0x8A, 0xF2, - 0x1B, 0xCC, 0x78, 0xEF, 0xB3, 0x71, 0x84, 0xA2, - 0xF1, 0x7A, 0x92, 0x61, 0xCA, 0x90, 0x94, 0x89, - 0x68, 0xEE, 0x97, 0x38, 0x0D, 0xF9, 0x1F, 0x8E, - 0xE9, 0x26, 0xBD, 0xC9, 0xFF, 0x4C, 0x44, 0x1D, - 0x98, 0xE5, 0x86, 0xF3, 0x18, 0xB6, 0x09, 0xD2, - 0x7E, 0xC5, 0xE7, 0x2B, 0x8C, 0x8B, 0x60, 0x3F, - 0x2C, 0x6A, 0x08, 0x0E, 0x50, 0x32, 0x9F, 0xF0, - 0x9A, 0xC2, 0x39, 0xBE, 0xEA, 0x12, 0x16, 0xBB, - 0x5E, 0x67, 0xE3, 0xB8, 0x79, 0x46, 0xDA, 0x00, - 0xD3, 0xBC, 0xCE, 0x1C, 0x80, 0xFA, 0xAB, 0x65, - 0x4A, 0xF8, 0xAC, 0x72, 0x01, 0xC6, 0x35, 0x85, - 0x3E, 0x5C, 0xA1, 0x05, 0xA5, 0xA9, 0xE1, 0x40, - 0xEB, 0xE8, 0x5F, 0xF5, 0xC3, 0xD1, 0x34, 0xFB, - 0xEC, 0xF7, 0x9C, 0xC7, 0xDD, 0x6C, 0x36, 0x9D, - 0x42, 0x59, 0x99, 0x5D, 0xD8, 0x82, 0x07, 0x24, - 0x6D, 0xAD, 0x13, 0x48, 0x6B, 0x6E, 0x75, 0x4D, - 0xD5, 0x02, 0xED, 0xFE, 0x91, 0xCD, 0x77, 0xB0, - 0xF6, 0xC8, 0x6F, 0x23, 0xAF, 0xB7, 0x2D, 0xD6, - 0xA4, 0xE2, 0x45, 0x8F, 0x21, 0xE0, 0x49, 0x22, - 0x7B, 0x17, 0x0B, 0x0A, 0x41, 0x03, 0xD4, 0x4B -}; - -unsigned char table_183[32] = { - 0x1E, 0x1B, 0x11, 0x07, 0x08, 0x06, 0x18, 0x17, - 0x0D, 0x0F, 0x12, 0x03, 0x1D, 0x04, 0x0A, 0x1A, - 0x0C, 0x13, 0x14, 0x1F, 0x0B, 0x19, 0x10, 0x01, - 0x16, 0x05, 0x1C, 0x0E, 0x02, 0x00, 0x09, 0x15 -}; - -unsigned char table_184[32] = { - 0x0F, 0x1D, 0x17, 0x16, 0x0D, 0x05, 0x13, 0x1F, - 0x1B, 0x09, 0x1C, 0x1E, 0x15, 0x01, 0x06, 0x08, - 0x0C, 0x10, 0x0B, 0x02, 0x04, 0x0A, 0x07, 0x1A, - 0x18, 0x0E, 0x03, 0x11, 0x12, 0x14, 0x19, 0x00 -}; - -unsigned char table_185[256] = { - 0xA5, 0xEE, 0x2E, 0x28, 0xA7, 0xAC, 0xD9, 0xB2, - 0x6E, 0x04, 0xB4, 0x03, 0xE8, 0x92, 0x5F, 0x4D, - 0x73, 0x20, 0x71, 0xE0, 0x43, 0x53, 0x3F, 0xF8, - 0x96, 0xA1, 0x24, 0x97, 0xAD, 0x7B, 0xE5, 0xE6, - 0xF2, 0xCE, 0xE3, 0x76, 0x2F, 0xA2, 0x48, 0x0E, - 0x4B, 0x4A, 0x8B, 0x5A, 0x81, 0x2C, 0xBF, 0xD7, - 0xFB, 0x7D, 0x4C, 0x16, 0xF4, 0x00, 0xF5, 0x40, - 0x64, 0x74, 0xA9, 0x37, 0x86, 0xD3, 0x1B, 0xCD, - 0xF1, 0x1A, 0x90, 0x9F, 0x54, 0x79, 0x29, 0xC3, - 0x77, 0x85, 0x02, 0xB1, 0x70, 0xFE, 0x5B, 0xDA, - 0x6B, 0x01, 0x0C, 0x07, 0xB8, 0x58, 0x47, 0x42, - 0x09, 0xE4, 0x27, 0xDD, 0xF3, 0x1E, 0x10, 0x9E, - 0x49, 0x30, 0x05, 0xBE, 0x59, 0xEB, 0xD2, 0xAA, - 0xC8, 0x9D, 0x8C, 0x5E, 0x14, 0x56, 0x8E, 0xF7, - 0x38, 0x55, 0x87, 0xA3, 0x5D, 0x41, 0x4F, 0x1F, - 0xF6, 0x0F, 0x57, 0x91, 0xAE, 0xBA, 0xB3, 0x95, - 0x9B, 0x69, 0xC1, 0x11, 0xD0, 0x25, 0x7F, 0x3B, - 0x62, 0xCF, 0xC0, 0xA0, 0xFC, 0xB6, 0x12, 0x6C, - 0xF0, 0x13, 0x93, 0xAB, 0xC6, 0x78, 0x6D, 0x88, - 0x22, 0x08, 0x2A, 0xE2, 0xB7, 0x65, 0x31, 0x3A, - 0xA6, 0x7C, 0xF9, 0xDC, 0xE7, 0xA4, 0xC9, 0x63, - 0xA8, 0x0B, 0xED, 0x50, 0x36, 0xD8, 0x3E, 0xB0, - 0x6A, 0x5C, 0x45, 0x4E, 0x23, 0x84, 0x34, 0x9A, - 0xCC, 0x3D, 0xB5, 0xEA, 0xDE, 0x75, 0xD6, 0xFF, - 0x6F, 0xC2, 0xDB, 0x8D, 0x7A, 0x1C, 0xE9, 0x61, - 0x0A, 0x1D, 0x32, 0x52, 0x3C, 0x19, 0xFA, 0xD1, - 0xD4, 0x68, 0xC7, 0x0D, 0x99, 0x83, 0xEF, 0x80, - 0x82, 0xBD, 0xD5, 0x7E, 0x39, 0x72, 0x51, 0xAF, - 0x8A, 0x2D, 0xB9, 0x89, 0xC4, 0x67, 0x35, 0xE1, - 0x44, 0x06, 0xEC, 0xCB, 0x8F, 0x17, 0xDF, 0x94, - 0x60, 0xCA, 0x26, 0xFD, 0x33, 0x46, 0x21, 0xBB, - 0x2B, 0xC5, 0x98, 0x18, 0x66, 0x15, 0x9C, 0xBC -}; - -unsigned char table_186[256] = { - 0xB7, 0xFA, 0x03, 0x7C, 0x76, 0x43, 0xA7, 0x15, - 0x4B, 0x4F, 0x04, 0xAA, 0x4E, 0xD2, 0x52, 0xC8, - 0x79, 0x16, 0xF6, 0x61, 0x01, 0x5D, 0xD6, 0x47, - 0xDE, 0xC5, 0x4D, 0x2F, 0xF5, 0x29, 0x21, 0xE6, - 0x97, 0x35, 0xDC, 0x0E, 0x8B, 0xF4, 0x0F, 0xBE, - 0x30, 0x07, 0x1D, 0x46, 0x75, 0xCE, 0x56, 0x42, - 0x28, 0x93, 0x84, 0x20, 0xA5, 0xC2, 0x87, 0x45, - 0x1C, 0x6B, 0x55, 0x06, 0xEB, 0xB0, 0xF9, 0x14, - 0x23, 0xF1, 0xFC, 0xD7, 0x98, 0xD1, 0xA4, 0xED, - 0x5B, 0xB1, 0x12, 0x7A, 0xD5, 0x5F, 0x53, 0x88, - 0x95, 0x71, 0xE7, 0x5C, 0xF8, 0x83, 0xC7, 0x49, - 0xDD, 0xDA, 0x0B, 0xC1, 0x70, 0xEC, 0x67, 0xE2, - 0xEA, 0x72, 0x4C, 0x92, 0xA6, 0xE5, 0x59, 0xA9, - 0x3C, 0xFE, 0x0A, 0x65, 0x6E, 0xF3, 0xA3, 0x22, - 0x24, 0x81, 0xF2, 0xCC, 0xD3, 0xA0, 0xDF, 0xDB, - 0xAB, 0x09, 0x13, 0x96, 0x36, 0x9C, 0xEE, 0xD4, - 0x33, 0x5E, 0x26, 0xAE, 0x48, 0x38, 0xFF, 0x08, - 0x1F, 0x6D, 0x02, 0xEF, 0x7E, 0x57, 0x2A, 0x8A, - 0xBA, 0x90, 0xAF, 0xA8, 0x37, 0x8E, 0x9B, 0xC0, - 0x69, 0x32, 0x86, 0xBD, 0x73, 0x6C, 0xB9, 0x31, - 0x66, 0xBF, 0x1B, 0x44, 0x9E, 0xB2, 0xD0, 0xE0, - 0xF0, 0x2C, 0x3F, 0xE1, 0x91, 0x18, 0x19, 0x50, - 0xCA, 0x8F, 0x54, 0xB5, 0x8D, 0x0C, 0x17, 0x39, - 0x8C, 0x00, 0x7F, 0x41, 0xE3, 0x2E, 0x1A, 0x9D, - 0x27, 0xA1, 0x10, 0x34, 0x1E, 0x3A, 0x60, 0x77, - 0xBB, 0xB6, 0x0D, 0x4A, 0x3E, 0x6A, 0xB4, 0xA2, - 0xB3, 0xFD, 0xCD, 0x80, 0x51, 0xAD, 0xCF, 0xBC, - 0x40, 0x74, 0x6F, 0x68, 0x2B, 0xC3, 0xF7, 0x63, - 0xB8, 0x25, 0xC4, 0x62, 0xE9, 0xFB, 0x58, 0x85, - 0x78, 0xCB, 0x9A, 0x3D, 0xE4, 0xC9, 0x89, 0x2D, - 0x64, 0x82, 0xC6, 0x05, 0xD8, 0xAC, 0x99, 0x9F, - 0x11, 0x3B, 0x94, 0xE8, 0x7D, 0x7B, 0xD9, 0x5A -}; - -unsigned char table_187[32] = { - 0x0F, 0x04, 0x1D, 0x1B, 0x15, 0x10, 0x01, 0x0B, - 0x00, 0x17, 0x13, 0x07, 0x1E, 0x1F, 0x08, 0x0A, - 0x19, 0x09, 0x05, 0x06, 0x0C, 0x1A, 0x14, 0x16, - 0x0E, 0x18, 0x03, 0x1C, 0x12, 0x11, 0x0D, 0x02 -}; - -struct yahoo_fn yahoo_fntable[5][96] = { {{IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}, - {IDENT, 0, 0}}, -{{MULADD, 0x36056CD7, 0x4387}, - {LOOKUP, (long)table_0, 0}, - {LOOKUP, (long)table_1, 0}, - {BITFLD, (long)table_2, 0}, - {LOOKUP, (long)table_3, 0}, - {BITFLD, (long)table_4, 0}, - {MULADD, 0x4ABB534D, 0x3769}, - {XOR, 0x1D242DA5, 0}, - {MULADD, 0x3C23132D, 0x339B}, - {XOR, 0x0191265C, 0}, - {XOR, 0x3DB979DB, 0}, - {LOOKUP, (long)table_5, 0}, - {XOR, 0x1A550E1E, 0}, - {XOR, 0x2F140A2D, 0}, - {MULADD, 0x7C466A4B, 0x29BF}, - {XOR, 0x2D3F30D3, 0}, - {MULADD, 0x7E823B21, 0x6BB3}, - {BITFLD, (long)table_6, 0}, - {LOOKUP, (long)table_7, 0}, - {BITFLD, (long)table_8, 0}, - {LOOKUP, (long)table_9, 0}, - {BITFLD, (long)table_10, 0}, - {LOOKUP, (long)table_11, 0}, - {BITFLD, (long)table_12, 0}, - {LOOKUP, (long)table_13, 0}, - {BITFLD, (long)table_14, 0}, - {MULADD, 0x5B756AB9, 0x7E9B}, - {LOOKUP, (long)table_15, 0}, - {XOR, 0x1D1C4911, 0}, - {LOOKUP, (long)table_16, 0}, - {LOOKUP, (long)table_17, 0}, - {XOR, 0x46BD7771, 0}, - {XOR, 0x51AE2B42, 0}, - {MULADD, 0x2417591B, 0x177B}, - {MULADD, 0x57F27C5F, 0x2433}, - {LOOKUP, (long)table_18, 0}, - {LOOKUP, (long)table_19, 0}, - {XOR, 0x71422261, 0}, - {BITFLD, (long)table_20, 0}, - {MULADD, 0x58E937F9, 0x1075}, - {LOOKUP, (long)table_21, 0}, - {BITFLD, (long)table_22, 0}, - {LOOKUP, (long)table_23, 0}, - {LOOKUP, (long)table_24, 0}, - {MULADD, 0x0B4C3D13, 0x1597}, - {BITFLD, (long)table_25, 0}, - {XOR, 0x0FE07D38, 0}, - {MULADD, 0x689B4017, 0x3CFB}, - {BITFLD, (long)table_26, 0}, - {LOOKUP, (long)table_27, 0}, - {XOR, 0x35413DF3, 0}, - {MULADD, 0x05B611AB, 0x570B}, - {MULADD, 0x0DA5334F, 0x3AC7}, - {XOR, 0x47706008, 0}, - {BITFLD, (long)table_28, 0}, - {LOOKUP, (long)table_29, 0}, - {BITFLD, (long)table_30, 0}, - {XOR, 0x57611B36, 0}, - {MULADD, 0x314C2CD1, 0x2B5B}, - {XOR, 0x1EF33946, 0}, - {MULADD, 0x28EA041F, 0x638F}, - {LOOKUP, (long)table_31, 0}, - {LOOKUP, (long)table_32, 0}, - {LOOKUP, (long)table_33, 0}, - {MULADD, 0x511537CB, 0x7135}, - {MULADD, 0x1CF71007, 0x5E17}, - {XOR, 0x583D4BCF, 0}, - {LOOKUP, (long)table_34, 0}, - {XOR, 0x373E6856, 0}, - {MULADD, 0x4D595519, 0x1A7D}, - {LOOKUP, (long)table_35, 0}, - {LOOKUP, (long)table_36, 0}, - {XOR, 0x0E2A36A7, 0}, - {LOOKUP, (long)table_37, 0}, - {LOOKUP, (long)table_38, 0}, - {BITFLD, (long)table_39, 0}, - {BITFLD, (long)table_40, 0}, - {XOR, 0x53F3604F, 0}, - {BITFLD, (long)table_41, 0}, - {BITFLD, (long)table_42, 0}, - {MULADD, 0x1EDC0BA3, 0x7531}, - {LOOKUP, (long)table_43, 0}, - {XOR, 0x10DF1038, 0}, - {BITFLD, (long)table_44, 0}, - {LOOKUP, (long)table_45, 0}, - {XOR, 0x4EDE0CAC, 0}, - {MULADD, 0x2F076EEB, 0x5BCF}, - {XOR, 0x6D86030F, 0}, - {XOR, 0x3F331713, 0}, - {LOOKUP, (long)table_46, 0}, - {MULADD, 0x41CD726F, 0x3F79}, - {BITFLD, (long)table_47, 0}, - {XOR, 0x0ECE0054, 0}, - {MULADD, 0x19B32B03, 0x4AD1}, - {BITFLD, (long)table_48, 0}, - {BITFLD, (long)table_49, 0}}, -{{MULADD, 0x39731111, 0x419B}, - {XOR, 0x54F7757A, 0}, - {BITFLD, (long)table_50, 0}, - {BITFLD, (long)table_51, 0}, - {LOOKUP, (long)table_52, 0}, - {LOOKUP, (long)table_53, 0}, - {MULADD, 0x3CC0256B, 0x7CE7}, - {XOR, 0x79991847, 0}, - {MULADD, 0x228F7FB5, 0x472D}, - {MULADD, 0x32DA290B, 0x7745}, - {XOR, 0x7A28180D, 0}, - {BITFLD, (long)table_54, 0}, - {BITFLD, (long)table_55, 0}, - {MULADD, 0x5C814F8B, 0x227F}, - {LOOKUP, (long)table_56, 0}, - {MULADD, 0x0B496F6D, 0x412D}, - {XOR, 0x6F4B62DA, 0}, - {LOOKUP, (long)table_57, 0}, - {XOR, 0x64973977, 0}, - {LOOKUP, (long)table_58, 0}, - {LOOKUP, (long)table_59, 0}, - {BITFLD, (long)table_60, 0}, - {LOOKUP, (long)table_61, 0}, - {LOOKUP, (long)table_62, 0}, - {XOR, 0x6DD14C92, 0}, - {LOOKUP, (long)table_63, 0}, - {BITFLD, (long)table_64, 0}, - {BITFLD, (long)table_65, 0}, - {BITFLD, (long)table_66, 0}, - {LOOKUP, (long)table_67, 0}, - {XOR, 0x5E6324D8, 0}, - {LOOKUP, (long)table_68, 0}, - {LOOKUP, (long)table_69, 0}, - {LOOKUP, (long)table_70, 0}, - {BITFLD, (long)table_71, 0}, - {XOR, 0x62745ED0, 0}, - {MULADD, 0x102C215B, 0x0581}, - {LOOKUP, (long)table_72, 0}, - {LOOKUP, (long)table_73, 0}, - {LOOKUP, (long)table_74, 0}, - {MULADD, 0x19511111, 0x12C1}, - {LOOKUP, (long)table_75, 0}, - {MULADD, 0x2A6E2953, 0x6977}, - {LOOKUP, (long)table_76, 0}, - {XOR, 0x55CD5445, 0}, - {BITFLD, (long)table_77, 0}, - {BITFLD, (long)table_78, 0}, - {MULADD, 0x646C21EB, 0x43E5}, - {XOR, 0x71DC4898, 0}, - {XOR, 0x167519CB, 0}, - {XOR, 0x6D3158F8, 0}, - {XOR, 0x7EA95BEA, 0}, - {BITFLD, (long)table_79, 0}, - {XOR, 0x47377587, 0}, - {XOR, 0x2D8B6E8F, 0}, - {MULADD, 0x5E6105DB, 0x1605}, - {XOR, 0x65B543C8, 0}, - {LOOKUP, (long)table_80, 0}, - {BITFLD, (long)table_81, 0}, - {MULADD, 0x48AF73CB, 0x0A67}, - {XOR, 0x4FB96154, 0}, - {LOOKUP, (long)table_82, 0}, - {BITFLD, (long)table_83, 0}, - {XOR, 0x622C4954, 0}, - {BITFLD, (long)table_84, 0}, - {XOR, 0x20D220F3, 0}, - {XOR, 0x361D4F0D, 0}, - {XOR, 0x2B2000D1, 0}, - {XOR, 0x6FB8593E, 0}, - {LOOKUP, (long)table_85, 0}, - {BITFLD, (long)table_86, 0}, - {XOR, 0x2B7F7DFC, 0}, - {MULADD, 0x5FC41A57, 0x0693}, - {MULADD, 0x17154387, 0x2489}, - {BITFLD, (long)table_87, 0}, - {BITFLD, (long)table_88, 0}, - {BITFLD, (long)table_89, 0}, - {LOOKUP, (long)table_90, 0}, - {XOR, 0x7E221470, 0}, - {XOR, 0x7A600061, 0}, - {BITFLD, (long)table_91, 0}, - {BITFLD, (long)table_92, 0}, - {LOOKUP, (long)table_93, 0}, - {BITFLD, (long)table_94, 0}, - {MULADD, 0x00E813A5, 0x2CE5}, - {MULADD, 0x3D707E25, 0x3827}, - {MULADD, 0x77A53E07, 0x6A5F}, - {BITFLD, (long)table_95, 0}, - {LOOKUP, (long)table_96, 0}, - {LOOKUP, (long)table_97, 0}, - {XOR, 0x43A73788, 0}, - {LOOKUP, (long)table_98, 0}, - {BITFLD, (long)table_99, 0}, - {LOOKUP, (long)table_100, 0}, - {XOR, 0x55F4606B, 0}, - {BITFLD, (long)table_101, 0}}, -{{BITFLD, (long)table_102, 0}, - {MULADD, 0x32CA58E3, 0x04F9}, - {XOR, 0x11756B30, 0}, - {MULADD, 0x218B2569, 0x5DB1}, - {XOR, 0x77D64B90, 0}, - {BITFLD, (long)table_103, 0}, - {LOOKUP, (long)table_104, 0}, - {MULADD, 0x7D1428CB, 0x3D}, - {XOR, 0x6F872C49, 0}, - {XOR, 0x2E484655, 0}, - {MULADD, 0x1E3349F7, 0x41F5}, - {LOOKUP, (long)table_105, 0}, - {BITFLD, (long)table_106, 0}, - {XOR, 0x61640311, 0}, - {BITFLD, (long)table_107, 0}, - {LOOKUP, (long)table_108, 0}, - {LOOKUP, (long)table_109, 0}, - {LOOKUP, (long)table_110, 0}, - {XOR, 0x007044D3, 0}, - {BITFLD, (long)table_111, 0}, - {MULADD, 0x5C221625, 0x576F}, - {LOOKUP, (long)table_112, 0}, - {LOOKUP, (long)table_113, 0}, - {XOR, 0x2D406BB1, 0}, - {MULADD, 0x680B1F17, 0x12CD}, - {BITFLD, (long)table_114, 0}, - {MULADD, 0x12564D55, 0x32B9}, - {MULADD, 0x21A67897, 0x6BAB}, - {LOOKUP, (long)table_115, 0}, - {MULADD, 0x06405119, 0x7143}, - {XOR, 0x351D01ED, 0}, - {MULADD, 0x46356F6B, 0x0A49}, - {MULADD, 0x32C77969, 0x72F3}, - {BITFLD, (long)table_116, 0}, - {LOOKUP, (long)table_117, 0}, - {LOOKUP, (long)table_118, 0}, - {BITFLD, (long)table_119, 0}, - {LOOKUP, (long)table_120, 0}, - {BITFLD, (long)table_121, 0}, - {MULADD, 0x74D52C55, 0x5F43}, - {XOR, 0x26201CA8, 0}, - {XOR, 0x7AEB3255, 0}, - {LOOKUP, (long)table_122, 0}, - {MULADD, 0x578F1047, 0x640B}, - {LOOKUP, (long)table_123, 0}, - {LOOKUP, (long)table_124, 0}, - {BITFLD, (long)table_125, 0}, - {BITFLD, (long)table_126, 0}, - {XOR, 0x4A1352CF, 0}, - {MULADD, 0x4BFB6EF3, 0x704F}, - {MULADD, 0x1B4C7FE7, 0x5637}, - {MULADD, 0x04091A3B, 0x4917}, - {XOR, 0x270C2F52, 0}, - {LOOKUP, (long)table_127, 0}, - {BITFLD, (long)table_128, 0}, - {LOOKUP, (long)table_129, 0}, - {BITFLD, (long)table_130, 0}, - {MULADD, 0x127549D5, 0x579B}, - {MULADD, 0x0AB54121, 0x7A47}, - {BITFLD, (long)table_131, 0}, - {XOR, 0x751E6E49, 0}, - {LOOKUP, (long)table_132, 0}, - {LOOKUP, (long)table_133, 0}, - {XOR, 0x670C3F74, 0}, - {MULADD, 0x6B080851, 0x7E8B}, - {XOR, 0x71CD789E, 0}, - {XOR, 0x3EB20B7B, 0}, - {BITFLD, (long)table_134, 0}, - {LOOKUP, (long)table_135, 0}, - {MULADD, 0x58A67753, 0x272B}, - {MULADD, 0x1AB54AD7, 0x4D33}, - {MULADD, 0x07D30A45, 0x0569}, - {MULADD, 0x737616BF, 0x70C7}, - {LOOKUP, (long)table_136, 0}, - {MULADD, 0x45C4485D, 0x2063}, - {BITFLD, (long)table_137, 0}, - {XOR, 0x2598043D, 0}, - {MULADD, 0x223A4FE3, 0x49A7}, - {XOR, 0x1EED619F, 0}, - {BITFLD, (long)table_138, 0}, - {XOR, 0x6F477561, 0}, - {BITFLD, (long)table_139, 0}, - {BITFLD, (long)table_140, 0}, - {LOOKUP, (long)table_141, 0}, - {MULADD, 0x4BC13C4F, 0x45C1}, - {XOR, 0x3B547BFB, 0}, - {LOOKUP, (long)table_142, 0}, - {MULADD, 0x71406AB3, 0x7A5F}, - {XOR, 0x2F1467E9, 0}, - {MULADD, 0x009366D1, 0x22D1}, - {MULADD, 0x587D1B75, 0x2CA5}, - {MULADD, 0x213A4BE7, 0x4499}, - {MULADD, 0x62653E89, 0x2D5D}, - {BITFLD, (long)table_143, 0}, - {MULADD, 0x4F5F3257, 0x444F}, - {MULADD, 0x4C0E2B2B, 0x19D3}}, -{{MULADD, 0x3F867B35, 0x7B3B}, - {MULADD, 0x32D25CB1, 0x3D6D}, - {BITFLD, (long)table_144, 0}, - {MULADD, 0x50FA1C51, 0x5F4F}, - {LOOKUP, (long)table_145, 0}, - {XOR, 0x05FE7AF1, 0}, - {MULADD, 0x14067C29, 0x10C5}, - {LOOKUP, (long)table_146, 0}, - {MULADD, 0x4A5558C5, 0x271F}, - {XOR, 0x3C0861B1, 0}, - {BITFLD, (long)table_147, 0}, - {LOOKUP, (long)table_148, 0}, - {MULADD, 0x18837C9D, 0x6335}, - {BITFLD, (long)table_149, 0}, - {XOR, 0x7DAB5033, 0}, - {LOOKUP, (long)table_150, 0}, - {MULADD, 0x03B87321, 0x7225}, - {XOR, 0x7F906745, 0}, - {LOOKUP, (long)table_151, 0}, - {BITFLD, (long)table_152, 0}, - {XOR, 0x21C46C2C, 0}, - {MULADD, 0x2B36757D, 0x028D}, - {BITFLD, (long)table_153, 0}, - {LOOKUP, (long)table_154, 0}, - {XOR, 0x106B4A85, 0}, - {XOR, 0x17640F11, 0}, - {LOOKUP, (long)table_155, 0}, - {XOR, 0x69E60486, 0}, - {LOOKUP, (long)table_156, 0}, - {MULADD, 0x3782017D, 0x05BF}, - {BITFLD, (long)table_157, 0}, - {LOOKUP, (long)table_158, 0}, - {XOR, 0x6BCA53B0, 0}, - {LOOKUP, (long)table_159, 0}, - {LOOKUP, (long)table_160, 0}, - {LOOKUP, (long)table_161, 0}, - {LOOKUP, (long)table_162, 0}, - {XOR, 0x0B8236E3, 0}, - {BITFLD, (long)table_163, 0}, - {MULADD, 0x5EE51C43, 0x4553}, - {BITFLD, (long)table_164, 0}, - {LOOKUP, (long)table_165, 0}, - {LOOKUP, (long)table_166, 0}, - {LOOKUP, (long)table_167, 0}, - {MULADD, 0x42B14C6F, 0x5531}, - {XOR, 0x4A2548E8, 0}, - {MULADD, 0x5C071D85, 0x2437}, - {LOOKUP, (long)table_168, 0}, - {MULADD, 0x29195861, 0x108B}, - {XOR, 0x24012258, 0}, - {LOOKUP, (long)table_169, 0}, - {XOR, 0x63CC2377, 0}, - {XOR, 0x08D04B59, 0}, - {MULADD, 0x3FD30CF5, 0x7027}, - {XOR, 0x7C3E0478, 0}, - {MULADD, 0x457776B7, 0x24B3}, - {XOR, 0x086652BC, 0}, - {MULADD, 0x302F5B13, 0x371D}, - {LOOKUP, (long)table_170, 0}, - {MULADD, 0x58692D47, 0x0671}, - {XOR, 0x6601178E, 0}, - {MULADD, 0x0F195B9B, 0x1369}, - {XOR, 0x07BA21D8, 0}, - {BITFLD, (long)table_171, 0}, - {BITFLD, (long)table_172, 0}, - {XOR, 0x13AC3D21, 0}, - {MULADD, 0x5BCF3275, 0x6E1B}, - {MULADD, 0x62725C5B, 0x16B9}, - {MULADD, 0x5B950FDF, 0x2D35}, - {BITFLD, (long)table_173, 0}, - {BITFLD, (long)table_174, 0}, - {MULADD, 0x73BA5335, 0x1C13}, - {BITFLD, (long)table_175, 0}, - {BITFLD, (long)table_176, 0}, - {XOR, 0x3E144154, 0}, - {MULADD, 0x4EED7B27, 0x38AB}, - {LOOKUP, (long)table_177, 0}, - {MULADD, 0x627C7E0F, 0x7F01}, - {MULADD, 0x5D7E1F73, 0x2C0F}, - {LOOKUP, (long)table_178, 0}, - {MULADD, 0x55C9525F, 0x4659}, - {XOR, 0x3765334C, 0}, - {MULADD, 0x5DF66DDF, 0x7C25}, - {LOOKUP, (long)table_179, 0}, - {LOOKUP, (long)table_180, 0}, - {XOR, 0x16AE5776, 0}, - {LOOKUP, (long)table_181, 0}, - {LOOKUP, (long)table_182, 0}, - {BITFLD, (long)table_183, 0}, - {BITFLD, (long)table_184, 0}, - {LOOKUP, (long)table_185, 0}, - {MULADD, 0x4392327B, 0x7E0D}, - {LOOKUP, (long)table_186, 0}, - {MULADD, 0x3D8B0CB5, 0x640D}, - {MULADD, 0x32865601, 0x4D43}, - {BITFLD, (long)table_187, 0}} -}; - -#define A( x ) (( x ) & 0xFF ) -#define B( x ) (( x ) >> 8 & 0xFF ) -#define C( x ) (( x ) >> 16 & 0xFF ) -#define D( x ) (( x ) >> 24 & 0xFF ) - -int yahoo_xfrm(int table, int depth, int seed) -{ - struct yahoo_fn *xfrm; - int i, j, z; - unsigned int n = seed; - unsigned char *arg; - - for (i = 0; i < depth; i++) { - xfrm = &yahoo_fntable[table][n % 96]; - switch (xfrm->type) { - case IDENT: - return seed; - case XOR: - seed ^= xfrm->arg1; - break; - case MULADD: - seed = seed * xfrm->arg1 + xfrm->arg2; - break; - case LOOKUP: - arg = (unsigned char *)xfrm->arg1; - seed = arg[A(seed)] | arg[B(seed)] << 8 | arg[C(seed)] - << 16 | arg[D(seed)] << 24; - break; - case BITFLD: - arg = (unsigned char *)xfrm->arg1; - for (j = 0, z = 0; j < 32; j++) - z = (((seed >> j) & 1) << arg[j]) | (~(1 << - arg[j]) & z); - seed = z; - break; - } - if (depth - i == 1) - return seed; - z = ((((((A(seed) * 0x9E3779B1) ^ B(seed)) * 0x9E3779B1) - ^ C(seed)) * 0x9E3779B1) ^ D(seed)) * - 0x9E3779B1; - n = ((((z ^ (z >> 8)) >> 16) ^ z) ^ (z >> 8)) & 0xFF; - seed *= 0x00010DCD; - } - return seed; -} diff --git a/backends/libyahoo2/yahoo/yahoo_fn.h b/backends/libyahoo2/yahoo/yahoo_fn.h deleted file mode 100644 index 5400e5d0..00000000 --- a/backends/libyahoo2/yahoo/yahoo_fn.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * libyahoo2 - originally from gaim patches by Amatus - * - * Copyright (C) 2003-2004 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#define IDENT 1 /* identify function */ -#define XOR 2 /* xor with arg1 */ -#define MULADD 3 /* multipy by arg1 then add arg2 */ -#define LOOKUP 4 /* lookup each byte in the table pointed to by arg1 */ -#define BITFLD 5 /* reorder bits according to table pointed to by arg1 */ - -struct yahoo_fn { - int type; - long arg1, arg2; -}; - -int yahoo_xfrm(int table, int depth, int seed); diff --git a/backends/libyahoo2/yahoo/yahoo_httplib.c b/backends/libyahoo2/yahoo/yahoo_httplib.c deleted file mode 100644 index 60f1f984..00000000 --- a/backends/libyahoo2/yahoo/yahoo_httplib.c +++ /dev/null @@ -1,404 +0,0 @@ -/* - * libyahoo2: yahoo_httplib.c - * - * Copyright (C) 2002-2004, Philip S Tellis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#if HAVE_CONFIG_H -# include -#endif - -#include -#include - -#if STDC_HEADERS -# include -#else -# if !HAVE_STRCHR -# define strchr index -# define strrchr rindex -# endif -char *strchr(), *strrchr(); -# if !HAVE_MEMCPY -# define memcpy(d, s, n) bcopy ((s), (d), (n)) -# define memmove(d, s, n) bcopy ((s), (d), (n)) -# endif -#endif - -#include -#if HAVE_UNISTD_H -#include -#endif -#include -#include "yahoo2.h" -#include "yahoo2_callbacks.h" -#include "yahoo_httplib.h" -#include "yahoo_util.h" - -#include "yahoo_debug.h" -#ifdef __MINGW32__ -# include -# define snprintf _snprintf -#endif - -extern struct yahoo_callbacks *yc; -#define YAHOO_CALLBACK(x) yc->x - -extern enum yahoo_log_level log_level; - -int yahoo_tcp_readline(char *ptr, int maxlen, void *fd) -{ - int n, rc; - char c; - - for (n = 1; n < maxlen; n++) { - - do { - rc = YAHOO_CALLBACK(ext_yahoo_read) (fd, &c, 1); - } while (rc == -1 && (errno == EINTR || errno == EAGAIN)); /* this is bad - it should be done asynchronously */ - - if (rc == 1) { - if (c == '\r') /* get rid of \r */ - continue; - *ptr = c; - if (c == '\n') - break; - ptr++; - } else if (rc == 0) { - if (n == 1) - return (0); /* EOF, no data */ - else - break; /* EOF, w/ data */ - } else { - return -1; - } - } - - *ptr = 0; - return (n); -} - -static int url_to_host_port_path(const char *url, - char *host, int *port, char *path, int *ssl) -{ - char *urlcopy = NULL; - char *slash = NULL; - char *colon = NULL; - - /* - * http://hostname - * http://hostname/ - * http://hostname/path - * http://hostname/path:foo - * http://hostname:port - * http://hostname:port/ - * http://hostname:port/path - * http://hostname:port/path:foo - * and https:// variants of the above - */ - - if (strstr(url, "http://") == url) { - urlcopy = strdup(url + 7); - } else if (strstr(url, "https://") == url) { - urlcopy = strdup(url + 8); - *ssl = 1; - } else { - WARNING(("Weird url - unknown protocol: %s", url)); - return 0; - } - - slash = strchr(urlcopy, '/'); - colon = strchr(urlcopy, ':'); - - if (!colon || (slash && slash < colon)) { - if (*ssl) - *port = 443; - else - *port = 80; - } else { - *colon = 0; - *port = atoi(colon + 1); - } - - if (!slash) { - strcpy(path, "/"); - } else { - strcpy(path, slash); - *slash = 0; - } - - strcpy(host, urlcopy); - - FREE(urlcopy); - - return 1; -} - -static int isurlchar(unsigned char c) -{ - return (isalnum(c)); -} - -char *yahoo_urlencode(const char *instr) -{ - int ipos = 0, bpos = 0; - char *str = NULL; - int len = strlen(instr); - - if (!(str = y_new(char, 3 *len + 1))) - return ""; - - while (instr[ipos]) { - while (isurlchar(instr[ipos])) - str[bpos++] = instr[ipos++]; - if (!instr[ipos]) - break; - - snprintf(&str[bpos], 4, "%%%02x", instr[ipos] & 0xff); - bpos += 3; - ipos++; - } - str[bpos] = '\0'; - - /* free extra alloc'ed mem. */ - len = strlen(str); - str = y_renew(char, str, len + 1); - - return (str); -} - -char *yahoo_urldecode(const char *instr) -{ - int ipos = 0, bpos = 0; - char *str = NULL; - char entity[3] = { 0, 0, 0 }; - unsigned dec; - int len = strlen(instr); - - if (!(str = y_new(char, len + 1))) - return ""; - - while (instr[ipos]) { - while (instr[ipos] && instr[ipos] != '%') - if (instr[ipos] == '+') { - str[bpos++] = ' '; - ipos++; - } else - str[bpos++] = instr[ipos++]; - if (!instr[ipos]) - break; - - if (instr[ipos + 1] && instr[ipos + 2]) { - ipos++; - entity[0] = instr[ipos++]; - entity[1] = instr[ipos++]; - sscanf(entity, "%2x", &dec); - str[bpos++] = (char)dec; - } else { - str[bpos++] = instr[ipos++]; - } - } - str[bpos] = '\0'; - - /* free extra alloc'ed mem. */ - len = strlen(str); - str = y_renew(char, str, len + 1); - - return (str); -} - -char *yahoo_xmldecode(const char *instr) -{ - int ipos = 0, bpos = 0, epos = 0; - char *str = NULL; - char entity[4] = { 0, 0, 0, 0 }; - char *entitymap[5][2] = { - {"amp;", "&"}, - {"quot;", "\""}, - {"lt;", "<"}, - {"gt;", "<"}, - {"nbsp;", " "} - }; - unsigned dec; - int len = strlen(instr); - - if (!(str = y_new(char, len + 1))) - return ""; - - while (instr[ipos]) { - while (instr[ipos] && instr[ipos] != '&') - if (instr[ipos] == '+') { - str[bpos++] = ' '; - ipos++; - } else - str[bpos++] = instr[ipos++]; - if (!instr[ipos] || !instr[ipos + 1]) - break; - ipos++; - - if (instr[ipos] == '#') { - ipos++; - epos = 0; - while (instr[ipos] != ';') - entity[epos++] = instr[ipos++]; - sscanf(entity, "%u", &dec); - str[bpos++] = (char)dec; - ipos++; - } else { - int i; - for (i = 0; i < 5; i++) - if (!strncmp(instr + ipos, entitymap[i][0], - strlen(entitymap[i][0]))) { - str[bpos++] = entitymap[i][1][0]; - ipos += strlen(entitymap[i][0]); - break; - } - } - } - str[bpos] = '\0'; - - /* free extra alloc'ed mem. */ - len = strlen(str); - str = y_renew(char, str, len + 1); - - return (str); -} - -typedef void (*http_connected) (int id, void *fd, int error); - -struct callback_data { - int id; - yahoo_get_fd_callback callback; - char *request; - void *user_data; -}; - -static void connect_complete(void *fd, int error, void *data) -{ - struct callback_data *ccd = data; - if (error == 0) - YAHOO_CALLBACK(ext_yahoo_write) (fd, ccd->request, - strlen(ccd->request)); - free(ccd->request); - ccd->callback(ccd->id, fd, error, ccd->user_data); - FREE(ccd); -} - -static void yahoo_send_http_request(int id, char *host, int port, char *request, - yahoo_get_fd_callback callback, void *data, int use_ssl) -{ - struct callback_data *ccd = y_new0(struct callback_data, 1); - ccd->callback = callback; - ccd->id = id; - ccd->request = strdup(request); - ccd->user_data = data; - - YAHOO_CALLBACK(ext_yahoo_connect_async) (id, host, port, - connect_complete, ccd, use_ssl); -} - -void yahoo_http_post(int id, const char *url, const char *cookies, - long content_length, yahoo_get_fd_callback callback, void *data) -{ - char host[255]; - int port = 80; - char path[255]; - char buff[1024]; - int ssl = 0; - - if (!url_to_host_port_path(url, host, &port, path, &ssl)) - return; - - /* thanks to kopete dumpcap */ - snprintf(buff, sizeof(buff), - "POST %s HTTP/1.1\r\n" - "Cookie: %s\r\n" - "User-Agent: Mozilla/5.0\r\n" - "Host: %s\r\n" - "Content-Length: %ld\r\n" - "Cache-Control: no-cache\r\n" - "\r\n", path, cookies, host, content_length); - - yahoo_send_http_request(id, host, port, buff, callback, data, ssl); -} - -void yahoo_http_get(int id, const char *url, const char *cookies, int http11, - int keepalive, yahoo_get_fd_callback callback, void *data) -{ - char host[255]; - int port = 80; - char path[255]; - char buff[2048]; - char cookiebuff[1024]; - int ssl = 0; - - if (!url_to_host_port_path(url, host, &port, path, &ssl)) - return; - - /* Allow cases when we don't need to send a cookie */ - if (cookies) - snprintf(cookiebuff, sizeof(cookiebuff), "Cookie: %s\r\n", - cookies); - else - cookiebuff[0] = '\0'; - - snprintf(buff, sizeof(buff), - "GET %s HTTP/1.%s\r\n" - "%sHost: %s\r\n" - "User-Agent: Mozilla/4.5 [en] (" "1" "/" "1" ")\r\n" - "Accept: */*\r\n" - "%s" "\r\n", path, http11?"1":"0", cookiebuff, host, - keepalive? "Connection: Keep-Alive\r\n":"Connection: close\r\n"); - - yahoo_send_http_request(id, host, port, buff, callback, data, ssl); -} - -void yahoo_http_head(int id, const char *url, const char *cookies, int len, - char *payload, yahoo_get_fd_callback callback, void *data) -{ - char host[255]; - int port = 80; - char path[255]; - char buff[2048]; - char cookiebuff[1024]; - int ssl = 0; - - if (!url_to_host_port_path(url, host, &port, path, &ssl)) - return; - - /* Allow cases when we don't need to send a cookie */ - if (cookies) - snprintf(cookiebuff, sizeof(cookiebuff), "Cookie: %s\r\n", - cookies); - else - cookiebuff[0] = '\0'; - - snprintf(buff, sizeof(buff), - "HEAD %s HTTP/1.0\r\n" - "Accept: */*\r\n" - "Host: %s:%d\r\n" - "User-Agent: Mozilla/4.5 [en] (" "1" "/" "1" ")\r\n" - "%s" - "Content-Length: %d\r\n" - "Cache-Control: no-cache\r\n" - "\r\n%s", path, host, port, cookiebuff, len, - payload?payload:""); - - yahoo_send_http_request(id, host, port, buff, callback, data, ssl); -} - diff --git a/backends/libyahoo2/yahoo/yahoo_httplib.h b/backends/libyahoo2/yahoo/yahoo_httplib.h deleted file mode 100644 index ab699b20..00000000 --- a/backends/libyahoo2/yahoo/yahoo_httplib.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * libyahoo2: yahoo_httplib.h - * - * Copyright (C) 2002-2004, Philip S Tellis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef YAHOO_HTTPLIB_H -#define YAHOO_HTTPLIB_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "yahoo2_types.h" - - char *yahoo_urlencode(const char *instr); - char *yahoo_urldecode(const char *instr); - char *yahoo_xmldecode(const char *instr); - - int yahoo_tcp_readline(char *ptr, int maxlen, void *fd); - void yahoo_http_post(int id, const char *url, const char *cookies, - long size, yahoo_get_fd_callback callback, void *data); - void yahoo_http_get(int id, const char *url, const char *cookies, - int http11, int keepalive, yahoo_get_fd_callback callback, - void *data); - void yahoo_http_head(int id, const char *url, const char *cookies, - int size, char *payload, yahoo_get_fd_callback callback, - void *data); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/backends/libyahoo2/yahoo/yahoo_list.c b/backends/libyahoo2/yahoo/yahoo_list.c deleted file mode 100644 index 2335f9c5..00000000 --- a/backends/libyahoo2/yahoo/yahoo_list.c +++ /dev/null @@ -1,233 +0,0 @@ -/* - * yahoo_list.c: linked list routines - * - * Some code copyright (C) 2002-2004, Philip S Tellis - * Other code copyright Meredydd Luff - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Some of this code was borrowed from elist.c in the eb-lite sources - * - */ - -#include - -#include "yahoo_list.h" - -YList *y_list_append(YList *list, void *data) -{ - YList *n; - YList *new_list = malloc(sizeof(YList)); - YList *attach_to = NULL; - - new_list->next = NULL; - new_list->data = data; - - for (n = list; n != NULL; n = n->next) { - attach_to = n; - } - - if (attach_to == NULL) { - new_list->prev = NULL; - return new_list; - } else { - new_list->prev = attach_to; - attach_to->next = new_list; - return list; - } -} - -YList *y_list_prepend(YList *list, void *data) -{ - YList *n = malloc(sizeof(YList)); - - n->next = list; - n->prev = NULL; - n->data = data; - if (list) - list->prev = n; - - return n; -} - -YList *y_list_concat(YList *list, YList *add) -{ - YList *l; - - if (!list) - return add; - - if (!add) - return list; - - for (l = list; l->next; l = l->next) ; - - l->next = add; - add->prev = l; - - return list; -} - -YList *y_list_remove(YList *list, void *data) -{ - YList *n; - - for (n = list; n != NULL; n = n->next) { - if (n->data == data) { - list = y_list_remove_link(list, n); - y_list_free_1(n); - break; - } - } - - return list; -} - -/* Warning */ -/* link MUST be part of list */ -/* caller must free link using y_list_free_1 */ -YList *y_list_remove_link(YList *list, const YList *link) -{ - if (!link) - return list; - - if (link->next) - link->next->prev = link->prev; - if (link->prev) - link->prev->next = link->next; - - if (link == list) - list = link->next; - - return list; -} - -int y_list_length(const YList *list) -{ - int retval = 0; - const YList *n = list; - - for (n = list; n != NULL; n = n->next) { - retval++; - } - - return retval; -} - -/* well, you could just check for list == NULL, but that would be - * implementation dependent - */ -int y_list_empty(const YList *list) -{ - if (!list) - return 1; - else - return 0; -} - -int y_list_singleton(const YList *list) -{ - if (!list || list->next) - return 0; - return 1; -} - -YList *y_list_copy(YList *list) -{ - YList *n; - YList *copy = NULL; - - for (n = list; n != NULL; n = n->next) { - copy = y_list_append(copy, n->data); - } - - return copy; -} - -void y_list_free_1(YList *list) -{ - free(list); -} - -void y_list_free(YList *list) -{ - YList *n = list; - - while (n != NULL) { - YList *next = n->next; - free(n); - n = next; - } -} - -YList *y_list_find(YList *list, const void *data) -{ - YList *l; - for (l = list; l && l->data != data; l = l->next) ; - - return l; -} - -void y_list_foreach(YList *list, YListFunc fn, void *user_data) -{ - for (; list; list = list->next) - fn(list->data, user_data); -} - -YList *y_list_find_custom(YList *list, const void *data, YListCompFunc comp) -{ - YList *l; - for (l = list; l; l = l->next) - if (comp(l->data, data) == 0) - return l; - - return NULL; -} - -YList *y_list_nth(YList *list, int n) -{ - int i = n; - for (; list && i; list = list->next, i--) ; - - return list; -} - -YList *y_list_insert_sorted(YList *list, void *data, YListCompFunc comp) -{ - YList *l, *n, *prev = NULL; - if (!list) - return y_list_append(list, data); - - n = malloc(sizeof(YList)); - n->data = data; - for (l = list; l && comp(l->data, n->data) <= 0; l = l->next) - prev = l; - - if (l) { - n->prev = l->prev; - l->prev = n; - } else - n->prev = prev; - - n->next = l; - - if (n->prev) { - n->prev->next = n; - return list; - } else { - return n; - } - -} diff --git a/backends/libyahoo2/yahoo/yahoo_list.h b/backends/libyahoo2/yahoo/yahoo_list.h deleted file mode 100644 index bdec139b..00000000 --- a/backends/libyahoo2/yahoo/yahoo_list.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * yahoo_list.h: linked list routines - * - * Some code copyright (C) 2002-2004, Philip S Tellis - * Other code copyright Meredydd Luff - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -/* - * This is a replacement for the GList. It only provides functions that - * we use in Ayttm. Thanks to Meredyyd from everybuddy dev for doing - * most of it. - */ - -#ifndef __YLIST_H__ -#define __YLIST_H__ - -#ifdef __cplusplus -extern "C" { -#endif - - typedef struct _YList { - struct _YList *next; - struct _YList *prev; - void *data; - } YList; - - typedef int (*YListCompFunc) (const void *, const void *); - typedef void (*YListFunc) (void *, void *); - - YList *y_list_append(YList *list, void *data); - YList *y_list_prepend(YList *list, void *data); - YList *y_list_remove_link(YList *list, const YList *link); - YList *y_list_remove(YList *list, void *data); - - YList *y_list_insert_sorted(YList *list, void *data, - YListCompFunc comp); - - YList *y_list_copy(YList *list); - - YList *y_list_concat(YList *list, YList *add); - - YList *y_list_find(YList *list, const void *data); - YList *y_list_find_custom(YList *list, const void *data, - YListCompFunc comp); - - YList *y_list_nth(YList *list, int n); - - void y_list_foreach(YList *list, YListFunc fn, void *user_data); - - void y_list_free_1(YList *list); - void y_list_free(YList *list); - int y_list_length(const YList *list); - int y_list_empty(const YList *list); - int y_list_singleton(const YList *list); - -#define y_list_next(list) list->next - -#ifdef __cplusplus -} -#endif -#endif diff --git a/backends/libyahoo2/yahoo/yahoo_util.c b/backends/libyahoo2/yahoo/yahoo_util.c deleted file mode 100644 index 92e8d31e..00000000 --- a/backends/libyahoo2/yahoo/yahoo_util.c +++ /dev/null @@ -1,166 +0,0 @@ -/* - * libyahoo2: yahoo_util.c - * - * Copyright (C) 2002-2004, Philip S Tellis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#if HAVE_CONFIG_H -# include -#endif - -#if __APPLE__ -#define STDC_HEADERS 1 -#endif - -#if STDC_HEADERS -# include -#else -# if !HAVE_STRCHR -# define strchr index -# define strrchr rindex -# endif -char *strchr(), *strrchr(); -# if !HAVE_MEMCPY -# define memcpy(d, s, n) bcopy ((s), (d), (n)) -# define memmove(d, s, n) bcopy ((s), (d), (n)) -# endif -#endif - -#include "yahoo_util.h" - -char *y_string_append(char *string, char *append) -{ - int size = strlen(string) + strlen(append) + 1; - char *new_string = y_renew(char, string, size); - - if (new_string == NULL) { - new_string = y_new(char, size); - strcpy(new_string, string); - FREE(string); - } - - strcat(new_string, append); - - return new_string; -} - -char *y_str_to_utf8(const char *in) -{ - unsigned int n, i = 0; - char *result = NULL; - - if (in == NULL || *in == '\0') - return strdup(""); - - result = y_new(char, strlen(in) * 2 + 1); - - /* convert a string to UTF-8 Format */ - for (n = 0; n < strlen(in); n++) { - unsigned char c = (unsigned char)in[n]; - - if (c < 128) { - result[i++] = (char)c; - } else { - result[i++] = (char)((c >> 6) | 192); - result[i++] = (char)((c & 63) | 128); - } - } - result[i] = '\0'; - return result; -} - -char *y_utf8_to_str(const char *in) -{ - int i = 0; - unsigned int n; - char *result = NULL; - - if (in == NULL || *in == '\0') - return strdup(""); - - result = y_new(char, strlen(in) + 1); - - /* convert a string from UTF-8 Format */ - for (n = 0; n < strlen(in); n++) { - unsigned char c = in[n]; - - if (c < 128) { - result[i++] = (char)c; - } else { - result[i++] = (c << 6) | (in[++n] & 63); - } - } - result[i] = '\0'; - return result; -} - -#if !HAVE_GLIB - -void y_strfreev(char **vector) -{ - char **v; - for (v = vector; *v; v++) { - FREE(*v); - } - FREE(vector); -} - -char **y_strsplit(char *str, char *sep, int nelem) -{ - char **vector; - char *s, *p; - int i = 0; - int l = strlen(sep); - if (nelem <= 0) { - char *s; - nelem = 0; - if (*str) { - for (s = strstr(str, sep); s; - s = strstr(s + l, sep), nelem++) ; - if (strcmp(str + strlen(str) - l, sep)) - nelem++; - } - } - - vector = y_new(char *, nelem + 1); - - for (p = str, s = strstr(p, sep); i < nelem && s; - p = s + l, s = strstr(p, sep), i++) { - int len = s - p; - vector[i] = y_new(char, len + 1); - strncpy(vector[i], p, len); - vector[i][len] = '\0'; - } - - if (i < nelem && *str) /* str didn't end with sep, and str isn't empty */ - vector[i++] = strdup(p); - - vector[i] = NULL; - - return vector; -} - -void *y_memdup(const void *addr, int n) -{ - void *new_chunk = malloc(n); - if (new_chunk) - memcpy(new_chunk, addr, n); - return new_chunk; -} - -#endif diff --git a/backends/libyahoo2/yahoo/yahoo_util.h b/backends/libyahoo2/yahoo/yahoo_util.h deleted file mode 100644 index 03efd716..00000000 --- a/backends/libyahoo2/yahoo/yahoo_util.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * libyahoo2: yahoo_util.h - * - * Copyright (C) 2002-2004, Philip S Tellis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __YAHOO_UTIL_H__ -#define __YAHOO_UTIL_H__ - -#if HAVE_CONFIG_H -# include -#endif - -#if HAVE_GLIB -# include - -# define FREE(x) if(x) {g_free(x); x=NULL;} - -# define y_new g_new -# define y_new0 g_new0 -# define y_renew g_renew - -# define y_memdup g_memdup -# define y_strsplit g_strsplit -# define y_strfreev g_strfreev -# ifndef strdup -# define strdup g_strdup -# endif -# ifndef strncasecmp -# define strncasecmp g_strncasecmp -# define strcasecmp g_strcasecmp -# endif - -# define snprintf g_snprintf -# define vsnprintf g_vsnprintf - -#else - -# include -# include - -# define FREE(x) if(x) {free(x); x=NULL;} - -# define y_new(type, n) (type *)malloc(sizeof(type) * (n)) -# define y_new0(type, n) (type *)calloc((n), sizeof(type)) -# define y_renew(type, mem, n) (type *)realloc(mem, n) - -void *y_memdup(const void *addr, int n); -char **y_strsplit(char *str, char *sep, int nelem); -void y_strfreev(char **vector); - -#if !defined(_WIN32) && !defined(__APPLE__) -int strncasecmp(const char *s1, const char *s2, size_t n); -int strcasecmp(const char *s1, const char *s2); - -char *strdup(const char *s); - -int snprintf(char *str, size_t size, const char *format, ...); -int vsnprintf(char *str, size_t size, const char *format, va_list ap); -#endif - -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef MIN -#define MIN(x,y) ((x)<(y)?(x):(y)) -#endif - -#ifndef MAX -#define MAX(x,y) ((x)>(y)?(x):(y)) -#endif - -/* - * The following three functions return newly allocated memory. - * You must free it yourself - */ -char *y_string_append(char *str, char *append); -char *y_str_to_utf8(const char *in); -char *y_utf8_to_str(const char *in); - -#endif diff --git a/backends/libyahoo2/yahoohandler.h b/backends/libyahoo2/yahoohandler.h deleted file mode 100644 index d33828e9..00000000 --- a/backends/libyahoo2/yahoohandler.h +++ /dev/null @@ -1,42 +0,0 @@ -#pragma once - -// Transport includes -#include "transport/config.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" - -// Yahoo2 -#include -#include -#include -#include -#include - -// Swiften -#include "Swiften/Swiften.h" -#include "Swiften/TLS/OpenSSL/OpenSSLContextFactory.h" - -// Boost -#include - -using namespace boost::filesystem; -using namespace boost::program_options; -using namespace Transport; - -class YahooLocalAccount; - -class YahooHandler { - public: - YahooHandler(YahooLocalAccount *account, int conn_tag, int handler_tag, void *data, yahoo_input_condition cond); - virtual ~YahooHandler(); - - void ready(std::string *buffer = NULL); - - int handler_tag; - int conn_tag; - void *data; - yahoo_input_condition cond; - bool remove_later; - YahooLocalAccount *account; -}; - diff --git a/backends/libyahoo2/yahoolocalaccount.cpp b/backends/libyahoo2/yahoolocalaccount.cpp deleted file mode 100644 index 49b88c94..00000000 --- a/backends/libyahoo2/yahoolocalaccount.cpp +++ /dev/null @@ -1,60 +0,0 @@ - -#include "yahoolocalaccount.h" -#include "yahoohandler.h" - -YahooLocalAccount::YahooLocalAccount(const std::string &user, const std::string &legacyName, const std::string &password) : user(user), id(0), conn_tag(1), handler_tag(1), status(YAHOO_STATUS_OFFLINE), msg(""), buffer("") { - id = yahoo_init_with_attributes(legacyName.c_str(), password.c_str(), - "local_host", "", - "pager_port", 5050, - NULL); -} - -YahooLocalAccount::~YahooLocalAccount() { - // remove handlers - for (std::map::iterator it = handlers.begin(); it != handlers.end(); it++) { - delete it->second; - } - - // remove conns - for (std::map >::iterator it = conns.begin(); it != conns.end(); it++) { - it->second->onConnectFinished.disconnect_all_slots(); - it->second->onDisconnected.disconnect_all_slots(); - it->second->onDataRead.disconnect_all_slots(); - it->second->onDataWritten.disconnect_all_slots(); - } -} - -void YahooLocalAccount::login() { - yahoo_login(id, YAHOO_STATUS_AVAILABLE); -} - -void YahooLocalAccount::addHandler(YahooHandler *handler) { - handlers[handler->handler_tag] = handler; - handlers_per_conn[handler->conn_tag][handler->handler_tag] = handler; -} - -void YahooLocalAccount::removeOldHandlers() { - std::vector handlers_to_remove; - for (std::map::iterator it = handlers.begin(); it != handlers.end(); it++) { - if (it->second->remove_later) { - handlers_to_remove.push_back(it->first); - } - } - - BOOST_FOREACH(int tag, handlers_to_remove) { - YahooHandler *handler = handlers[tag]; - handlers.erase(tag); - handlers_per_conn[handler->conn_tag].erase(tag); - delete handler; - } -} - -void YahooLocalAccount::removeConn(int conn_tag) { - for (std::map::iterator it = handlers_per_conn[conn_tag].begin(); it != handlers_per_conn[conn_tag].end(); it++) { - it->second->remove_later = true; - } - - removeOldHandlers(); - - conns.erase(conn_tag); -} diff --git a/backends/libyahoo2/yahoolocalaccount.h b/backends/libyahoo2/yahoolocalaccount.h deleted file mode 100644 index 105e9311..00000000 --- a/backends/libyahoo2/yahoolocalaccount.h +++ /dev/null @@ -1,50 +0,0 @@ -#pragma once - -// Transport includes -#include "transport/config.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" - -// Yahoo2 -#include -#include -#include -#include -#include - -// Swiften -#include "Swiften/Swiften.h" -#include "Swiften/TLS/OpenSSL/OpenSSLContextFactory.h" - -// Boost -#include - -using namespace boost::filesystem; -using namespace boost::program_options; -using namespace Transport; - -class YahooHandler; - -class YahooLocalAccount { - public: - YahooLocalAccount(const std::string &user, const std::string &legacyName, const std::string &password); - virtual ~YahooLocalAccount(); - - void login(); - - void addHandler(YahooHandler *handler); - void removeOldHandlers(); - void removeConn(int conn_tag); - - std::string user; - int id; - std::map > conns; - int conn_tag; - std::map handlers; - std::map > handlers_per_conn; - std::map urls; - int handler_tag; - int status; - std::string msg; - std::string buffer; -}; diff --git a/backends/skype/CMakeLists.txt b/backends/skype/CMakeLists.txt index d27b4296..c9d70510 100644 --- a/backends/skype/CMakeLists.txt +++ b/backends/skype/CMakeLists.txt @@ -1,9 +1,9 @@ -cmake_minimum_required(VERSION 2.6) -FILE(GLOB SRC *.cpp) - -ADD_EXECUTABLE(spectrum2_skype_backend ${SRC}) - -target_link_libraries(spectrum2_skype_backend ${GLIB2_LIBRARIES} ${EVENT_LIBRARIES} transport pthread ${LIBDBUSGLIB_LIBRARIES}) - -INSTALL(TARGETS spectrum2_skype_backend RUNTIME DESTINATION bin) - +cmake_minimum_required(VERSION 2.6) +FILE(GLOB SRC *.cpp) + +ADD_EXECUTABLE(spectrum2_skype_backend ${SRC}) + +target_link_libraries(spectrum2_skype_backend ${GLIB2_LIBRARIES} ${EVENT_LIBRARIES} transport pthread ${LIBDBUSGLIB_LIBRARIES}) + +INSTALL(TARGETS spectrum2_skype_backend RUNTIME DESTINATION bin) + diff --git a/backends/skype/main.cpp b/backends/skype/main.cpp index 1516dc10..18169852 100644 --- a/backends/skype/main.cpp +++ b/backends/skype/main.cpp @@ -3,18 +3,18 @@ #include "sqlite3.h" #include -#include "transport/config.h" -#include "transport/logging.h" -#include "transport/transport.h" -#include "transport/usermanager.h" -#include "transport/memoryusage.h" -#include "transport/sqlite3backend.h" -#include "transport/userregistration.h" -#include "transport/user.h" -#include "transport/storagebackend.h" -#include "transport/rostermanager.h" -#include "transport/conversation.h" -#include "transport/networkplugin.h" +#include "transport/Config.h" +#include "transport/Logging.h" +#include "transport/Transport.h" +#include "transport/UserManager.h" +#include "transport/MemoryUsage.h" +#include "transport/SQLite3Backend.h" +#include "transport/UserRegistration.h" +#include "transport/User.h" +#include "transport/StorageBackend.h" +#include "transport/RosterManager.h" +#include "transport/Conversation.h" +#include "transport/NetworkPlugin.h" #include #include "sys/wait.h" #include "sys/signal.h" diff --git a/backends/skype/skype.cpp b/backends/skype/skype.cpp index b33b4601..8e4de70f 100644 --- a/backends/skype/skype.cpp +++ b/backends/skype/skype.cpp @@ -22,18 +22,17 @@ #include "skypeplugin.h" #include "skypedb.h" -#include "transport/config.h" -#include "transport/logging.h" -#include "transport/transport.h" -#include "transport/usermanager.h" -#include "transport/memoryusage.h" -#include "transport/sqlite3backend.h" -#include "transport/userregistration.h" -#include "transport/user.h" -#include "transport/storagebackend.h" -#include "transport/rostermanager.h" -#include "transport/conversation.h" -#include "transport/networkplugin.h" +#include "transport/Logging.h" +#include "transport/Transport.h" +#include "transport/UserManager.h" +#include "transport/MemoryUsage.h" +#include "transport/SQLite3Backend.h" +#include "transport/UserRegistration.h" +#include "transport/User.h" +#include "transport/StorageBackend.h" +#include "transport/RosterManager.h" +#include "transport/Conversation.h" +#include "transport/NetworkPlugin.h" #include #include "sys/wait.h" #include "sys/signal.h" diff --git a/backends/skype/skypedb.cpp b/backends/skype/skypedb.cpp index f086866f..ce144a56 100644 --- a/backends/skype/skypedb.cpp +++ b/backends/skype/skypedb.cpp @@ -20,18 +20,17 @@ #include "skypedb.h" -#include "transport/config.h" -#include "transport/logging.h" -#include "transport/transport.h" -#include "transport/usermanager.h" -#include "transport/memoryusage.h" -#include "transport/sqlite3backend.h" -#include "transport/userregistration.h" -#include "transport/user.h" -#include "transport/storagebackend.h" -#include "transport/rostermanager.h" -#include "transport/conversation.h" -#include "transport/networkplugin.h" +#include "transport/Logging.h" +#include "transport/Transport.h" +#include "transport/UserManager.h" +#include "transport/MemoryUsage.h" +#include "transport/SQLite3Backend.h" +#include "transport/UserRegistration.h" +#include "transport/User.h" +#include "transport/StorageBackend.h" +#include "transport/RosterManager.h" +#include "transport/Conversation.h" +#include "transport/NetworkPlugin.h" #include #include "sys/wait.h" #include "sys/signal.h" diff --git a/backends/skype/skypeplugin.cpp b/backends/skype/skypeplugin.cpp index 6a0f64e7..aa638e05 100644 --- a/backends/skype/skypeplugin.cpp +++ b/backends/skype/skypeplugin.cpp @@ -22,18 +22,17 @@ #include "skype.h" #include "skypedb.h" -#include "transport/config.h" -#include "transport/logging.h" -#include "transport/transport.h" -#include "transport/usermanager.h" -#include "transport/memoryusage.h" -#include "transport/sqlite3backend.h" -#include "transport/userregistration.h" -#include "transport/user.h" -#include "transport/storagebackend.h" -#include "transport/rostermanager.h" -#include "transport/conversation.h" -#include "transport/networkplugin.h" +#include "transport/Logging.h" +#include "transport/Transport.h" +#include "transport/UserManager.h" +#include "transport/MemoryUsage.h" +#include "transport/SQLite3Backend.h" +#include "transport/UserRegistration.h" +#include "transport/User.h" +#include "transport/StorageBackend.h" +#include "transport/RosterManager.h" +#include "transport/Conversation.h" +#include "transport/NetworkPlugin.h" #include #include "sys/wait.h" #include "sys/signal.h" diff --git a/backends/skype/skypeplugin.h b/backends/skype/skypeplugin.h index 782814bc..fe426ca9 100644 --- a/backends/skype/skypeplugin.h +++ b/backends/skype/skypeplugin.h @@ -25,8 +25,8 @@ #include "sqlite3.h" #include #include -#include "transport/networkplugin.h" -#include "transport/config.h" +#include "transport/NetworkPlugin.h" +#include "transport/Config.h" class Skype; diff --git a/backends/smstools3/CMakeLists.txt b/backends/smstools3/CMakeLists.txt index a557e243..84f34978 100644 --- a/backends/smstools3/CMakeLists.txt +++ b/backends/smstools3/CMakeLists.txt @@ -1,10 +1,10 @@ -cmake_minimum_required(VERSION 2.6) - -FILE(GLOB SRC *.c *.cpp) - -ADD_EXECUTABLE(spectrum2_smstools3_backend ${SRC}) - -target_link_libraries(spectrum2_smstools3_backend transport pthread ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) - -INSTALL(TARGETS spectrum2_smstools3_backend RUNTIME DESTINATION bin) - +cmake_minimum_required(VERSION 2.6) + +FILE(GLOB SRC *.c *.cpp) + +ADD_EXECUTABLE(spectrum2_smstools3_backend ${SRC}) + +target_link_libraries(spectrum2_smstools3_backend transport pthread ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) + +INSTALL(TARGETS spectrum2_smstools3_backend RUNTIME DESTINATION bin) + diff --git a/backends/smstools3/main.cpp b/backends/smstools3/main.cpp index f69fea53..b31d496c 100644 --- a/backends/smstools3/main.cpp +++ b/backends/smstools3/main.cpp @@ -8,13 +8,13 @@ * program, but you don't have to. */ -#include "transport/config.h" -#include "transport/logging.h" -#include "transport/networkplugin.h" -#include "transport/sqlite3backend.h" -#include "transport/mysqlbackend.h" -#include "transport/pqxxbackend.h" -#include "transport/storagebackend.h" +#include "transport/Config.h" +#include "transport/Logging.h" +#include "transport/NetworkPlugin.h" +#include "transport/SQLite3Backend.h" +#include "transport/MySQLBackend.h" +#include "transport/PQXXBackend.h" +#include "transport/StorageBackend.h" #include "Swiften/Swiften.h" #include #include "unistd.h" diff --git a/backends/swiften/CMakeLists.txt b/backends/swiften/CMakeLists.txt index b605a947..f90e77ef 100644 --- a/backends/swiften/CMakeLists.txt +++ b/backends/swiften/CMakeLists.txt @@ -1,14 +1,14 @@ -cmake_minimum_required(VERSION 2.6) - -FILE(GLOB SRC *.cpp) - -ADD_EXECUTABLE(spectrum2_swiften_backend ${SRC}) - -IF (NOT WIN32) -target_link_libraries(spectrum2_swiften_backend transport pthread ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) -else() -target_link_libraries(spectrum2_swiften_backend transport ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) -endif() - -INSTALL(TARGETS spectrum2_swiften_backend RUNTIME DESTINATION bin) - +cmake_minimum_required(VERSION 2.6) + +FILE(GLOB SRC *.cpp) + +ADD_EXECUTABLE(spectrum2_swiften_backend ${SRC}) + +IF (NOT WIN32) +target_link_libraries(spectrum2_swiften_backend transport pthread ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) +else() +target_link_libraries(spectrum2_swiften_backend transport ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) +endif() + +INSTALL(TARGETS spectrum2_swiften_backend RUNTIME DESTINATION bin) + diff --git a/backends/swiften/main.cpp b/backends/swiften/main.cpp index bb39465a..8ccbb2d6 100644 --- a/backends/swiften/main.cpp +++ b/backends/swiften/main.cpp @@ -1,12 +1,14 @@ // Transport includes -#include "transport/config.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" +#include "transport/Config.h" +#include "transport/NetworkPlugin.h" +#include "transport/Logging.h" #include "boost/date_time/posix_time/posix_time.hpp" // Swiften #include "Swiften/Swiften.h" +#include +#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) #ifndef WIN32 // for signal handler @@ -87,8 +89,11 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient { m_conn = m_factories->getConnectionFactory()->createConnection(); m_conn->onDataRead.connect(boost::bind(&SwiftenPlugin::_handleDataRead, this, _1)); m_conn->connect(Swift::HostAddressPort(Swift::HostAddress(host), port)); - +#if HAVE_SWIFTEN_3 + serializer = new Swift::XMPPSerializer(&collection, Swift::ClientStreamType, false); +#else serializer = new Swift::XMPPSerializer(&collection, Swift::ClientStreamType); +#endif m_xmppParser = new Swift::XMPPParser(this, &m_collection2, m_factories->getXMLParserFactory()); m_xmppParser->parse(""); @@ -113,8 +118,11 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient { } void handleStreamStart(const Swift::ProtocolHeader&) {} - +#if HAVE_SWIFTEN_3 + void handleElement(boost::shared_ptr element) { +#else void handleElement(boost::shared_ptr element) { +#endif boost::shared_ptr stanza = boost::dynamic_pointer_cast(element); if (!stanza) { return; diff --git a/backends/template/CMakeLists.txt b/backends/template/CMakeLists.txt index d0be90ca..6de3857e 100644 --- a/backends/template/CMakeLists.txt +++ b/backends/template/CMakeLists.txt @@ -1,18 +1,18 @@ -cmake_minimum_required(VERSION 2.6) - -FILE(GLOB SRC *.c *.cpp) - -ADD_EXECUTABLE(spectrum2_template_backend ${SRC}) - -if (CMAKE_COMPILER_IS_GNUCXX) -if (NOT WIN32) -target_link_libraries(spectrum2_template_backend transport pthread ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) -else() -target_link_libraries(spectrum2_template_backend transport ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) -endif() -else() -target_link_libraries(spectrum2_template_backend transport ${PROTOBUF_LIBRARY} ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) -endif() - -#INSTALL(TARGETS spectrum2_template_backend RUNTIME DESTINATION bin) - +cmake_minimum_required(VERSION 2.6) + +FILE(GLOB SRC *.c *.cpp) + +ADD_EXECUTABLE(spectrum2_template_backend ${SRC}) + +if (CMAKE_COMPILER_IS_GNUCXX) +if (NOT WIN32) +target_link_libraries(spectrum2_template_backend transport pthread ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) +else() +target_link_libraries(spectrum2_template_backend transport ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) +endif() +else() +target_link_libraries(spectrum2_template_backend transport ${PROTOBUF_LIBRARY} ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) +endif() + +#INSTALL(TARGETS spectrum2_template_backend RUNTIME DESTINATION bin) + diff --git a/backends/template/main.cpp b/backends/template/main.cpp index 2210ad42..5f9df1a8 100644 --- a/backends/template/main.cpp +++ b/backends/template/main.cpp @@ -1,9 +1,9 @@ #include "plugin.h" // Transport includes -#include "transport/config.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" +#include "transport/Config.h" +#include "transport/NetworkPlugin.h" +#include "transport/Logging.h" // Swiften #include "Swiften/Swiften.h" diff --git a/backends/template/plugin.cpp b/backends/template/plugin.cpp index ec4e86ca..f761184a 100644 --- a/backends/template/plugin.cpp +++ b/backends/template/plugin.cpp @@ -1,8 +1,8 @@ #include "plugin.h" // Transport includes -#include "transport/config.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" +#include "transport/Config.h" +#include "transport/NetworkPlugin.h" +#include "transport/Logging.h" // Swiften #include "Swiften/Swiften.h" diff --git a/backends/template/plugin.h b/backends/template/plugin.h index 6260ff97..b67ac7a9 100644 --- a/backends/template/plugin.h +++ b/backends/template/plugin.h @@ -2,8 +2,8 @@ #include "Swiften/Swiften.h" -#include "transport/config.h" -#include "transport/networkplugin.h" +#include "transport/Config.h" +#include "transport/NetworkPlugin.h" class Plugin : public Transport::NetworkPlugin { public: diff --git a/backends/twitter/CMakeLists.txt b/backends/twitter/CMakeLists.txt index 7853267e..68e4103f 100644 --- a/backends/twitter/CMakeLists.txt +++ b/backends/twitter/CMakeLists.txt @@ -2,11 +2,14 @@ include_directories (${libtransport_SOURCE_DIR}/backends/twitter/libtwitcurl) FILE(GLOB SRC *.cpp libtwitcurl/*.cpp Requests/*.cpp) add_executable(spectrum2_twitter_backend ${SRC}) -if (NOT WIN32) -target_link_libraries(spectrum2_twitter_backend curl transport pthread ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) -else () -include_directories("${CMAKE_SOURCE_DIR}/msvc-deps/curl/include") -target_link_libraries(spectrum2_twitter_backend libcurl transport ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) +find_package(CURL) + +if(CURL_FOUND) +message(STATUS "Using curl ${CURL_VERSION_STRING}: ${CURL_INCLUDE_DIRS} ${CURL_LIBRARIES}") +include_directories (${CURL_INCLUDE_DIRS}) +target_link_libraries(spectrum2_twitter_backend transport ${CURL_LIBRARIES} ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) +else() +message(FATAL_ERROR "curl not found") endif() INSTALL(TARGETS spectrum2_twitter_backend RUNTIME DESTINATION bin) diff --git a/backends/twitter/HTTPRequest.h b/backends/twitter/HTTPRequest.h index cf8447f9..40db66a1 100644 --- a/backends/twitter/HTTPRequest.h +++ b/backends/twitter/HTTPRequest.h @@ -2,7 +2,7 @@ #define HTTPREQ_H #include "curl/curl.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include #include diff --git a/backends/twitter/Requests/CreateFriendRequest.h b/backends/twitter/Requests/CreateFriendRequest.h index 60d8cec0..47f14308 100644 --- a/backends/twitter/Requests/CreateFriendRequest.h +++ b/backends/twitter/Requests/CreateFriendRequest.h @@ -1,10 +1,10 @@ #ifndef CREATE_FRIEND #define CREATE_FRIEND -#include "transport/threadpool.h" +#include "transport/ThreadPool.h" #include "../TwitterResponseParser.h" #include "../libtwitcurl/twitcurl.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include #include diff --git a/backends/twitter/Requests/DestroyFriendRequest.h b/backends/twitter/Requests/DestroyFriendRequest.h index 0f6ed0d8..4fa8a82e 100644 --- a/backends/twitter/Requests/DestroyFriendRequest.h +++ b/backends/twitter/Requests/DestroyFriendRequest.h @@ -1,10 +1,10 @@ #ifndef DESTROY_FRIEND #define DESTROY_FRIEND -#include "transport/threadpool.h" +#include "transport/ThreadPool.h" #include "../TwitterResponseParser.h" #include "../libtwitcurl/twitcurl.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include #include diff --git a/backends/twitter/Requests/DirectMessageRequest.h b/backends/twitter/Requests/DirectMessageRequest.h index 754c24c8..20236300 100644 --- a/backends/twitter/Requests/DirectMessageRequest.h +++ b/backends/twitter/Requests/DirectMessageRequest.h @@ -1,10 +1,10 @@ #ifndef DIRECT_MESSAGE #define DIRECT_MESSAGE -#include "transport/threadpool.h" +#include "transport/ThreadPool.h" #include "../TwitterResponseParser.h" #include "../libtwitcurl/twitcurl.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include #include diff --git a/backends/twitter/Requests/FetchFriends.h b/backends/twitter/Requests/FetchFriends.h index 5f44a47b..4577b796 100644 --- a/backends/twitter/Requests/FetchFriends.h +++ b/backends/twitter/Requests/FetchFriends.h @@ -1,10 +1,10 @@ #ifndef FRIENDS_H #define FRIENDS_H -#include "transport/threadpool.h" +#include "transport/ThreadPool.h" #include "../libtwitcurl/twitcurl.h" #include "../TwitterResponseParser.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include #include diff --git a/backends/twitter/Requests/HelpMessageRequest.h b/backends/twitter/Requests/HelpMessageRequest.h index c0d86d2b..ce59a538 100644 --- a/backends/twitter/Requests/HelpMessageRequest.h +++ b/backends/twitter/Requests/HelpMessageRequest.h @@ -1,10 +1,9 @@ #ifndef HELPMESSAGE_H #define HELPMESSAGE_H -#include "transport/threadpool.h" +#include "transport/ThreadPool.h" #include "../libtwitcurl/twitcurl.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include #include diff --git a/backends/twitter/Requests/OAuthFlow.h b/backends/twitter/Requests/OAuthFlow.h index cbf7d019..75f9b657 100644 --- a/backends/twitter/Requests/OAuthFlow.h +++ b/backends/twitter/Requests/OAuthFlow.h @@ -1,10 +1,10 @@ #ifndef OAUTH_FLOW #define OAUTH_FLOW -#include "transport/threadpool.h" +#include "transport/ThreadPool.h" #include "../libtwitcurl/twitcurl.h" #include "../TwitterPlugin.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include diff --git a/backends/twitter/Requests/PINExchangeProcess.h b/backends/twitter/Requests/PINExchangeProcess.h index 8007c305..be7b9ff8 100644 --- a/backends/twitter/Requests/PINExchangeProcess.h +++ b/backends/twitter/Requests/PINExchangeProcess.h @@ -1,11 +1,10 @@ #ifndef PIN_EXCHANGE #define PIN_EXCHANGE -#include "transport/threadpool.h" +#include "transport/ThreadPool.h" #include "../libtwitcurl/twitcurl.h" #include "../TwitterPlugin.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include diff --git a/backends/twitter/Requests/ProfileImageRequest.h b/backends/twitter/Requests/ProfileImageRequest.h index f293a9bd..f212219d 100644 --- a/backends/twitter/Requests/ProfileImageRequest.h +++ b/backends/twitter/Requests/ProfileImageRequest.h @@ -1,10 +1,10 @@ #ifndef PROFILEIMAGE_H #define PROFILEIMAGE_H -#include "transport/threadpool.h" #include "../TwitterResponseParser.h" -#include "transport/logging.h" -#include "transport/config.h" +#include "transport/ThreadPool.h" +#include "transport/Logging.h" +#include "transport/Config.h" #include #include #include diff --git a/backends/twitter/Requests/RetweetRequest.h b/backends/twitter/Requests/RetweetRequest.h index a096ca78..24f56876 100644 --- a/backends/twitter/Requests/RetweetRequest.h +++ b/backends/twitter/Requests/RetweetRequest.h @@ -1,11 +1,10 @@ #ifndef RETWEET_H #define RETWEET_H -#include "transport/threadpool.h" +#include "transport/ThreadPool.h" #include "../TwitterResponseParser.h" #include "../libtwitcurl/twitcurl.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include #include diff --git a/backends/twitter/Requests/StatusUpdateRequest.h b/backends/twitter/Requests/StatusUpdateRequest.h index 990571fb..32786ac8 100644 --- a/backends/twitter/Requests/StatusUpdateRequest.h +++ b/backends/twitter/Requests/StatusUpdateRequest.h @@ -1,11 +1,10 @@ #ifndef STATUS_UPDATE #define STATUS_UPDATE -#include "transport/threadpool.h" +#include "transport/ThreadPool.h" #include "../libtwitcurl/twitcurl.h" #include "../TwitterResponseParser.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include #include diff --git a/backends/twitter/Requests/TimelineRequest.h b/backends/twitter/Requests/TimelineRequest.h index 11b26f91..064ca830 100644 --- a/backends/twitter/Requests/TimelineRequest.h +++ b/backends/twitter/Requests/TimelineRequest.h @@ -1,10 +1,10 @@ #ifndef TIMELINE_H #define TIMELINE_H -#include "transport/threadpool.h" +#include "transport/ThreadPool.h" #include "../libtwitcurl/twitcurl.h" #include "../TwitterResponseParser.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include #include #include diff --git a/backends/twitter/TwitterPlugin.cpp b/backends/twitter/TwitterPlugin.cpp index 99a103d6..a91d288e 100644 --- a/backends/twitter/TwitterPlugin.cpp +++ b/backends/twitter/TwitterPlugin.cpp @@ -649,7 +649,11 @@ void TwitterPlugin::populateRoster(std::string &user, std::vector &friends std::string lastTweet = friends[i].getLastStatus().getTweet(); //LOG4CXX_INFO(logger, user << " - " << SHA(friendAvatars[i])) handleBuddyChanged(user, friends[i].getScreenName(), friends[i].getUserName(), std::vector(), +#if HAVE_SWIFTEN_3 + pbnetwork::STATUS_ONLINE, lastTweet, Swift::byteArrayToString(cryptoProvider->getSHA1Hash(Swift::createByteArray(friendAvatars[i])))); +#else pbnetwork::STATUS_ONLINE, lastTweet, SHA(friendAvatars[i])); +#endif } else if(userdb[user].twitterMode == CHATROOM) handleParticipantChanged(user, friends[i].getScreenName(), adminChatRoom, 0, pbnetwork::STATUS_ONLINE); @@ -821,7 +825,11 @@ void TwitterPlugin::createFriendResponse(std::string &user, User &frnd, std::str LOG4CXX_INFO(logger, user << " - " << frnd.getScreenName() << ", " << frnd.getProfileImgURL()) if(userdb[user].twitterMode == MULTIPLECONTACT) { +#if HAVE_SWIFTEN_3 + handleBuddyChanged(user, frnd.getScreenName(), frnd.getUserName(), std::vector(), pbnetwork::STATUS_ONLINE, "", Swift::byteArrayToString(cryptoProvider->getSHA1Hash(Swift::createByteArray(img)))); +#else handleBuddyChanged(user, frnd.getScreenName(), frnd.getUserName(), std::vector(), pbnetwork::STATUS_ONLINE, "", SHA(img)); +#endif } else if(userdb[user].twitterMode == CHATROOM) { handleParticipantChanged(user, frnd.getScreenName(), adminChatRoom, 0, pbnetwork::STATUS_ONLINE); } diff --git a/backends/twitter/TwitterPlugin.h b/backends/twitter/TwitterPlugin.h index 9f4bd2c5..b4655630 100644 --- a/backends/twitter/TwitterPlugin.h +++ b/backends/twitter/TwitterPlugin.h @@ -1,14 +1,14 @@ #ifndef TWITTER_PLUGIN #define TWITTER_PLUGIN -#include "transport/config.h" -#include "transport/networkplugin.h" -#include "transport/logging.h" -#include "transport/sqlite3backend.h" -#include "transport/mysqlbackend.h" -#include "transport/pqxxbackend.h" -#include "transport/storagebackend.h" -#include "transport/threadpool.h" +#include "transport/Config.h" +#include "transport/NetworkPlugin.h" +#include "transport/Logging.h" +#include "transport/SQLite3Backend.h" +#include "transport/MySQLBackend.h" +#include "transport/PQXXBackend.h" +#include "transport/StorageBackend.h" +#include "transport/ThreadPool.h" #include "Swiften/Swiften.h" #ifndef _WIN32 @@ -32,9 +32,14 @@ #include #include #include - +#include +#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) +#if HAVE_SWIFTEN_3 +#include +#include +#else #include "Swiften/StringCodecs/SHA1.h" - +#endif using namespace boost::filesystem; using namespace boost::program_options; using namespace Transport; @@ -51,6 +56,9 @@ class TwitterPlugin : public NetworkPlugin { Swift::BoostNetworkFactories *m_factories; Swift::BoostIOServiceThread m_boostIOServiceThread; boost::shared_ptr m_conn; +#if HAVE_SWIFTEN_3 + boost::shared_ptr cryptoProvider; +#endif Swift::Timer::ref tweet_timer; Swift::Timer::ref message_timer; StorageBackend *storagebackend; diff --git a/backends/twitter/TwitterResponseParser.cpp b/backends/twitter/TwitterResponseParser.cpp index 77e8e8b1..78ab1cdf 100644 --- a/backends/twitter/TwitterResponseParser.cpp +++ b/backends/twitter/TwitterResponseParser.cpp @@ -1,5 +1,5 @@ #include "TwitterResponseParser.h" -#include "transport/logging.h" +#include "transport/Logging.h" #include "boost/algorithm/string.hpp" #include #include "boost/date_time/local_time/local_time.hpp" diff --git a/backends/twitter/libtwitcurl/HMAC_SHA1.cpp b/backends/twitter/libtwitcurl/HMAC_SHA1.cpp index 5382782e..9ed68144 100644 --- a/backends/twitter/libtwitcurl/HMAC_SHA1.cpp +++ b/backends/twitter/libtwitcurl/HMAC_SHA1.cpp @@ -1,64 +1,64 @@ -//****************************************************************************** -//* HMAC_SHA1.cpp : Implementation of HMAC SHA1 algorithm -//* Comfort to RFC 2104 -//* -//****************************************************************************** -#include "HMAC_SHA1.h" -#include -#include - - -void CHMAC_SHA1::HMAC_SHA1(BYTE *text, int text_len, BYTE *key, int key_len, BYTE *digest) -{ - memset(SHA1_Key, 0, SHA1_BLOCK_SIZE); - - /* repeated 64 times for values in ipad and opad */ - memset(m_ipad, 0x36, sizeof(m_ipad)); - memset(m_opad, 0x5c, sizeof(m_opad)); - - /* STEP 1 */ - if (key_len > SHA1_BLOCK_SIZE) - { - CSHA1::Reset(); - CSHA1::Update((UINT_8 *)key, key_len); - CSHA1::Final(); - - CSHA1::GetHash((UINT_8 *)SHA1_Key); - } - else - memcpy(SHA1_Key, key, key_len); - - /* STEP 2 */ - for (size_t i=0; i +#include + + +void CHMAC_SHA1::HMAC_SHA1(BYTE *text, int text_len, BYTE *key, int key_len, BYTE *digest) +{ + memset(SHA1_Key, 0, SHA1_BLOCK_SIZE); + + /* repeated 64 times for values in ipad and opad */ + memset(m_ipad, 0x36, sizeof(m_ipad)); + memset(m_opad, 0x5c, sizeof(m_opad)); + + /* STEP 1 */ + if (key_len > SHA1_BLOCK_SIZE) + { + CSHA1::Reset(); + CSHA1::Update((UINT_8 *)key, key_len); + CSHA1::Final(); + + CSHA1::GetHash((UINT_8 *)SHA1_Key); + } + else + memcpy(SHA1_Key, key, key_len); + + /* STEP 2 */ + for (size_t i=0; i -*/ - - -#ifndef __HMAC_SHA1_H__ -#define __HMAC_SHA1_H__ - -#include "SHA1.h" - -typedef unsigned char BYTE ; - -class CHMAC_SHA1 : public CSHA1 -{ - private: - BYTE m_ipad[64]; - BYTE m_opad[64]; - - char * szReport ; - char * SHA1_Key ; - char * AppendBuf1 ; - char * AppendBuf2 ; - - - public: - - enum { - SHA1_DIGEST_LENGTH = 20, - SHA1_BLOCK_SIZE = 64, - HMAC_BUF_LEN = 4096 - } ; - - CHMAC_SHA1() - :szReport(new char[HMAC_BUF_LEN]), - SHA1_Key(new char[HMAC_BUF_LEN]), - AppendBuf1(new char[HMAC_BUF_LEN]), - AppendBuf2(new char[HMAC_BUF_LEN]) - {} - - ~CHMAC_SHA1() - { - delete[] szReport ; - delete[] AppendBuf1 ; - delete[] AppendBuf2 ; - delete[] SHA1_Key ; - } - - void HMAC_SHA1(BYTE *text, int text_len, BYTE *key, int key_len, BYTE *digest); -}; - - -#endif /* __HMAC_SHA1_H__ */ +/* + 100% free public domain implementation of the HMAC-SHA1 algorithm + by Chien-Chung, Chung (Jim Chung) +*/ + + +#ifndef __HMAC_SHA1_H__ +#define __HMAC_SHA1_H__ + +#include "SHA1.h" + +typedef unsigned char BYTE ; + +class CHMAC_SHA1 : public CSHA1 +{ + private: + BYTE m_ipad[64]; + BYTE m_opad[64]; + + char * szReport ; + char * SHA1_Key ; + char * AppendBuf1 ; + char * AppendBuf2 ; + + + public: + + enum { + SHA1_DIGEST_LENGTH = 20, + SHA1_BLOCK_SIZE = 64, + HMAC_BUF_LEN = 4096 + } ; + + CHMAC_SHA1() + :szReport(new char[HMAC_BUF_LEN]), + SHA1_Key(new char[HMAC_BUF_LEN]), + AppendBuf1(new char[HMAC_BUF_LEN]), + AppendBuf2(new char[HMAC_BUF_LEN]) + {} + + ~CHMAC_SHA1() + { + delete[] szReport ; + delete[] AppendBuf1 ; + delete[] AppendBuf2 ; + delete[] SHA1_Key ; + } + + void HMAC_SHA1(BYTE *text, int text_len, BYTE *key, int key_len, BYTE *digest); +}; + + +#endif /* __HMAC_SHA1_H__ */ diff --git a/backends/twitter/libtwitcurl/SHA1.cpp b/backends/twitter/libtwitcurl/SHA1.cpp index c3846ee5..598d879c 100644 --- a/backends/twitter/libtwitcurl/SHA1.cpp +++ b/backends/twitter/libtwitcurl/SHA1.cpp @@ -1,274 +1,274 @@ -/* - 100% free public domain implementation of the SHA-1 algorithm - by Dominik Reichl - Web: http://www.dominik-reichl.de/ - - Version 1.6 - 2005-02-07 (thanks to Howard Kapustein for patches) - - You can set the endianness in your files, no need to modify the - header file of the CSHA1 class any more - - Aligned data support - - Made support/compilation of the utility functions (ReportHash - and HashFile) optional (useful, if bytes count, for example in - embedded environments) - - Version 1.5 - 2005-01-01 - - 64-bit compiler compatibility added - - Made variable wiping optional (define SHA1_WIPE_VARIABLES) - - Removed unnecessary variable initializations - - ROL32 improvement for the Microsoft compiler (using _rotl) - - ======== Test Vectors (from FIPS PUB 180-1) ======== - - SHA1("abc") = - A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D - - SHA1("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq") = - 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 - - SHA1(A million repetitions of "a") = - 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F -*/ - -#include "SHA1.h" - -#ifdef SHA1_UTILITY_FUNCTIONS -#define SHA1_MAX_FILE_BUFFER 8000 -#endif - -// Rotate x bits to the left -#ifndef ROL32 -#ifdef _MSC_VER -#define ROL32(_val32, _nBits) _rotl(_val32, _nBits) -#else -#define ROL32(_val32, _nBits) (((_val32)<<(_nBits))|((_val32)>>(32-(_nBits)))) -#endif -#endif - -#ifdef SHA1_LITTLE_ENDIAN -#define SHABLK0(i) (m_block->l[i] = \ - (ROL32(m_block->l[i],24) & 0xFF00FF00) | (ROL32(m_block->l[i],8) & 0x00FF00FF)) -#else -#define SHABLK0(i) (m_block->l[i]) -#endif - -#define SHABLK(i) (m_block->l[i&15] = ROL32(m_block->l[(i+13)&15] ^ m_block->l[(i+8)&15] \ - ^ m_block->l[(i+2)&15] ^ m_block->l[i&15],1)) - -// SHA-1 rounds -#define _R0(v,w,x,y,z,i) { z+=((w&(x^y))^y)+SHABLK0(i)+0x5A827999+ROL32(v,5); w=ROL32(w,30); } -#define _R1(v,w,x,y,z,i) { z+=((w&(x^y))^y)+SHABLK(i)+0x5A827999+ROL32(v,5); w=ROL32(w,30); } -#define _R2(v,w,x,y,z,i) { z+=(w^x^y)+SHABLK(i)+0x6ED9EBA1+ROL32(v,5); w=ROL32(w,30); } -#define _R3(v,w,x,y,z,i) { z+=(((w|x)&y)|(w&x))+SHABLK(i)+0x8F1BBCDC+ROL32(v,5); w=ROL32(w,30); } -#define _R4(v,w,x,y,z,i) { z+=(w^x^y)+SHABLK(i)+0xCA62C1D6+ROL32(v,5); w=ROL32(w,30); } - -CSHA1::CSHA1() -{ - m_block = (SHA1_WORKSPACE_BLOCK *)m_workspace; - - Reset(); -} - -CSHA1::~CSHA1() -{ - Reset(); -} - -void CSHA1::Reset() -{ - // SHA1 initialization constants - m_state[0] = 0x67452301; - m_state[1] = 0xEFCDAB89; - m_state[2] = 0x98BADCFE; - m_state[3] = 0x10325476; - m_state[4] = 0xC3D2E1F0; - - m_count[0] = 0; - m_count[1] = 0; -} - -void CSHA1::Transform(UINT_32 *state, UINT_8 *buffer) -{ - // Copy state[] to working vars - UINT_32 a = state[0], b = state[1], c = state[2], d = state[3], e = state[4]; - - memcpy(m_block, buffer, 64); - - // 4 rounds of 20 operations each. Loop unrolled. - _R0(a,b,c,d,e, 0); _R0(e,a,b,c,d, 1); _R0(d,e,a,b,c, 2); _R0(c,d,e,a,b, 3); - _R0(b,c,d,e,a, 4); _R0(a,b,c,d,e, 5); _R0(e,a,b,c,d, 6); _R0(d,e,a,b,c, 7); - _R0(c,d,e,a,b, 8); _R0(b,c,d,e,a, 9); _R0(a,b,c,d,e,10); _R0(e,a,b,c,d,11); - _R0(d,e,a,b,c,12); _R0(c,d,e,a,b,13); _R0(b,c,d,e,a,14); _R0(a,b,c,d,e,15); - _R1(e,a,b,c,d,16); _R1(d,e,a,b,c,17); _R1(c,d,e,a,b,18); _R1(b,c,d,e,a,19); - _R2(a,b,c,d,e,20); _R2(e,a,b,c,d,21); _R2(d,e,a,b,c,22); _R2(c,d,e,a,b,23); - _R2(b,c,d,e,a,24); _R2(a,b,c,d,e,25); _R2(e,a,b,c,d,26); _R2(d,e,a,b,c,27); - _R2(c,d,e,a,b,28); _R2(b,c,d,e,a,29); _R2(a,b,c,d,e,30); _R2(e,a,b,c,d,31); - _R2(d,e,a,b,c,32); _R2(c,d,e,a,b,33); _R2(b,c,d,e,a,34); _R2(a,b,c,d,e,35); - _R2(e,a,b,c,d,36); _R2(d,e,a,b,c,37); _R2(c,d,e,a,b,38); _R2(b,c,d,e,a,39); - _R3(a,b,c,d,e,40); _R3(e,a,b,c,d,41); _R3(d,e,a,b,c,42); _R3(c,d,e,a,b,43); - _R3(b,c,d,e,a,44); _R3(a,b,c,d,e,45); _R3(e,a,b,c,d,46); _R3(d,e,a,b,c,47); - _R3(c,d,e,a,b,48); _R3(b,c,d,e,a,49); _R3(a,b,c,d,e,50); _R3(e,a,b,c,d,51); - _R3(d,e,a,b,c,52); _R3(c,d,e,a,b,53); _R3(b,c,d,e,a,54); _R3(a,b,c,d,e,55); - _R3(e,a,b,c,d,56); _R3(d,e,a,b,c,57); _R3(c,d,e,a,b,58); _R3(b,c,d,e,a,59); - _R4(a,b,c,d,e,60); _R4(e,a,b,c,d,61); _R4(d,e,a,b,c,62); _R4(c,d,e,a,b,63); - _R4(b,c,d,e,a,64); _R4(a,b,c,d,e,65); _R4(e,a,b,c,d,66); _R4(d,e,a,b,c,67); - _R4(c,d,e,a,b,68); _R4(b,c,d,e,a,69); _R4(a,b,c,d,e,70); _R4(e,a,b,c,d,71); - _R4(d,e,a,b,c,72); _R4(c,d,e,a,b,73); _R4(b,c,d,e,a,74); _R4(a,b,c,d,e,75); - _R4(e,a,b,c,d,76); _R4(d,e,a,b,c,77); _R4(c,d,e,a,b,78); _R4(b,c,d,e,a,79); - - // Add the working vars back into state - state[0] += a; - state[1] += b; - state[2] += c; - state[3] += d; - state[4] += e; - - // Wipe variables -#ifdef SHA1_WIPE_VARIABLES - a = b = c = d = e = 0; -#endif -} - -// Use this function to hash in binary data and strings -void CSHA1::Update(UINT_8 *data, UINT_32 len) -{ - UINT_32 i, j; - - j = (m_count[0] >> 3) & 63; - - if((m_count[0] += len << 3) < (len << 3)) m_count[1]++; - - m_count[1] += (len >> 29); - - if((j + len) > 63) - { - i = 64 - j; - memcpy(&m_buffer[j], data, i); - Transform(m_state, m_buffer); - - for(; i + 63 < len; i += 64) Transform(m_state, &data[i]); - - j = 0; - } - else i = 0; - - memcpy(&m_buffer[j], &data[i], len - i); -} - -#ifdef SHA1_UTILITY_FUNCTIONS -// Hash in file contents -bool CSHA1::HashFile(char *szFileName) -{ - unsigned long ulFileSize, ulRest, ulBlocks; - unsigned long i; - UINT_8 uData[SHA1_MAX_FILE_BUFFER]; - FILE *fIn; - - if(szFileName == NULL) return false; - - fIn = fopen(szFileName, "rb"); - if(fIn == NULL) return false; - - fseek(fIn, 0, SEEK_END); - ulFileSize = (unsigned long)ftell(fIn); - fseek(fIn, 0, SEEK_SET); - - if(ulFileSize != 0) - { - ulBlocks = ulFileSize / SHA1_MAX_FILE_BUFFER; - ulRest = ulFileSize % SHA1_MAX_FILE_BUFFER; - } - else - { - ulBlocks = 0; - ulRest = 0; - } - - for(i = 0; i < ulBlocks; i++) - { - fread(uData, 1, SHA1_MAX_FILE_BUFFER, fIn); - Update((UINT_8 *)uData, SHA1_MAX_FILE_BUFFER); - } - - if(ulRest != 0) - { - fread(uData, 1, ulRest, fIn); - Update((UINT_8 *)uData, ulRest); - } - - fclose(fIn); fIn = NULL; - return true; -} -#endif - -void CSHA1::Final() -{ - UINT_32 i; - UINT_8 finalcount[8]; - - for(i = 0; i < 8; i++) - finalcount[i] = (UINT_8)((m_count[((i >= 4) ? 0 : 1)] - >> ((3 - (i & 3)) * 8) ) & 255); // Endian independent - - Update((UINT_8 *)"\200", 1); - - while ((m_count[0] & 504) != 448) - Update((UINT_8 *)"\0", 1); - - Update(finalcount, 8); // Cause a SHA1Transform() - - for(i = 0; i < 20; i++) - { - m_digest[i] = (UINT_8)((m_state[i >> 2] >> ((3 - (i & 3)) * 8) ) & 255); - } - - // Wipe variables for security reasons -#ifdef SHA1_WIPE_VARIABLES - i = 0; - memset(m_buffer, 0, 64); - memset(m_state, 0, 20); - memset(m_count, 0, 8); - memset(finalcount, 0, 8); - Transform(m_state, m_buffer); -#endif -} - -#ifdef SHA1_UTILITY_FUNCTIONS -// Get the final hash as a pre-formatted string -void CSHA1::ReportHash(char *szReport, unsigned char uReportType) -{ - unsigned char i; - char szTemp[16]; - - if(szReport == NULL) return; - - if(uReportType == REPORT_HEX) - { - sprintf(szTemp, "%02X", m_digest[0]); - strcat(szReport, szTemp); - - for(i = 1; i < 20; i++) - { - sprintf(szTemp, " %02X", m_digest[i]); - strcat(szReport, szTemp); - } - } - else if(uReportType == REPORT_DIGIT) - { - sprintf(szTemp, "%u", m_digest[0]); - strcat(szReport, szTemp); - - for(i = 1; i < 20; i++) - { - sprintf(szTemp, " %u", m_digest[i]); - strcat(szReport, szTemp); - } - } - else strcpy(szReport, "Error: Unknown report type!"); -} -#endif - -// Get the raw message digest -void CSHA1::GetHash(UINT_8 *puDest) -{ - memcpy(puDest, m_digest, 20); -} +/* + 100% free public domain implementation of the SHA-1 algorithm + by Dominik Reichl + Web: http://www.dominik-reichl.de/ + + Version 1.6 - 2005-02-07 (thanks to Howard Kapustein for patches) + - You can set the endianness in your files, no need to modify the + header file of the CSHA1 class any more + - Aligned data support + - Made support/compilation of the utility functions (ReportHash + and HashFile) optional (useful, if bytes count, for example in + embedded environments) + + Version 1.5 - 2005-01-01 + - 64-bit compiler compatibility added + - Made variable wiping optional (define SHA1_WIPE_VARIABLES) + - Removed unnecessary variable initializations + - ROL32 improvement for the Microsoft compiler (using _rotl) + + ======== Test Vectors (from FIPS PUB 180-1) ======== + + SHA1("abc") = + A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D + + SHA1("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq") = + 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 + + SHA1(A million repetitions of "a") = + 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F +*/ + +#include "SHA1.h" + +#ifdef SHA1_UTILITY_FUNCTIONS +#define SHA1_MAX_FILE_BUFFER 8000 +#endif + +// Rotate x bits to the left +#ifndef ROL32 +#ifdef _MSC_VER +#define ROL32(_val32, _nBits) _rotl(_val32, _nBits) +#else +#define ROL32(_val32, _nBits) (((_val32)<<(_nBits))|((_val32)>>(32-(_nBits)))) +#endif +#endif + +#ifdef SHA1_LITTLE_ENDIAN +#define SHABLK0(i) (m_block->l[i] = \ + (ROL32(m_block->l[i],24) & 0xFF00FF00) | (ROL32(m_block->l[i],8) & 0x00FF00FF)) +#else +#define SHABLK0(i) (m_block->l[i]) +#endif + +#define SHABLK(i) (m_block->l[i&15] = ROL32(m_block->l[(i+13)&15] ^ m_block->l[(i+8)&15] \ + ^ m_block->l[(i+2)&15] ^ m_block->l[i&15],1)) + +// SHA-1 rounds +#define _R0(v,w,x,y,z,i) { z+=((w&(x^y))^y)+SHABLK0(i)+0x5A827999+ROL32(v,5); w=ROL32(w,30); } +#define _R1(v,w,x,y,z,i) { z+=((w&(x^y))^y)+SHABLK(i)+0x5A827999+ROL32(v,5); w=ROL32(w,30); } +#define _R2(v,w,x,y,z,i) { z+=(w^x^y)+SHABLK(i)+0x6ED9EBA1+ROL32(v,5); w=ROL32(w,30); } +#define _R3(v,w,x,y,z,i) { z+=(((w|x)&y)|(w&x))+SHABLK(i)+0x8F1BBCDC+ROL32(v,5); w=ROL32(w,30); } +#define _R4(v,w,x,y,z,i) { z+=(w^x^y)+SHABLK(i)+0xCA62C1D6+ROL32(v,5); w=ROL32(w,30); } + +CSHA1::CSHA1() +{ + m_block = (SHA1_WORKSPACE_BLOCK *)m_workspace; + + Reset(); +} + +CSHA1::~CSHA1() +{ + Reset(); +} + +void CSHA1::Reset() +{ + // SHA1 initialization constants + m_state[0] = 0x67452301; + m_state[1] = 0xEFCDAB89; + m_state[2] = 0x98BADCFE; + m_state[3] = 0x10325476; + m_state[4] = 0xC3D2E1F0; + + m_count[0] = 0; + m_count[1] = 0; +} + +void CSHA1::Transform(UINT_32 *state, UINT_8 *buffer) +{ + // Copy state[] to working vars + UINT_32 a = state[0], b = state[1], c = state[2], d = state[3], e = state[4]; + + memcpy(m_block, buffer, 64); + + // 4 rounds of 20 operations each. Loop unrolled. + _R0(a,b,c,d,e, 0); _R0(e,a,b,c,d, 1); _R0(d,e,a,b,c, 2); _R0(c,d,e,a,b, 3); + _R0(b,c,d,e,a, 4); _R0(a,b,c,d,e, 5); _R0(e,a,b,c,d, 6); _R0(d,e,a,b,c, 7); + _R0(c,d,e,a,b, 8); _R0(b,c,d,e,a, 9); _R0(a,b,c,d,e,10); _R0(e,a,b,c,d,11); + _R0(d,e,a,b,c,12); _R0(c,d,e,a,b,13); _R0(b,c,d,e,a,14); _R0(a,b,c,d,e,15); + _R1(e,a,b,c,d,16); _R1(d,e,a,b,c,17); _R1(c,d,e,a,b,18); _R1(b,c,d,e,a,19); + _R2(a,b,c,d,e,20); _R2(e,a,b,c,d,21); _R2(d,e,a,b,c,22); _R2(c,d,e,a,b,23); + _R2(b,c,d,e,a,24); _R2(a,b,c,d,e,25); _R2(e,a,b,c,d,26); _R2(d,e,a,b,c,27); + _R2(c,d,e,a,b,28); _R2(b,c,d,e,a,29); _R2(a,b,c,d,e,30); _R2(e,a,b,c,d,31); + _R2(d,e,a,b,c,32); _R2(c,d,e,a,b,33); _R2(b,c,d,e,a,34); _R2(a,b,c,d,e,35); + _R2(e,a,b,c,d,36); _R2(d,e,a,b,c,37); _R2(c,d,e,a,b,38); _R2(b,c,d,e,a,39); + _R3(a,b,c,d,e,40); _R3(e,a,b,c,d,41); _R3(d,e,a,b,c,42); _R3(c,d,e,a,b,43); + _R3(b,c,d,e,a,44); _R3(a,b,c,d,e,45); _R3(e,a,b,c,d,46); _R3(d,e,a,b,c,47); + _R3(c,d,e,a,b,48); _R3(b,c,d,e,a,49); _R3(a,b,c,d,e,50); _R3(e,a,b,c,d,51); + _R3(d,e,a,b,c,52); _R3(c,d,e,a,b,53); _R3(b,c,d,e,a,54); _R3(a,b,c,d,e,55); + _R3(e,a,b,c,d,56); _R3(d,e,a,b,c,57); _R3(c,d,e,a,b,58); _R3(b,c,d,e,a,59); + _R4(a,b,c,d,e,60); _R4(e,a,b,c,d,61); _R4(d,e,a,b,c,62); _R4(c,d,e,a,b,63); + _R4(b,c,d,e,a,64); _R4(a,b,c,d,e,65); _R4(e,a,b,c,d,66); _R4(d,e,a,b,c,67); + _R4(c,d,e,a,b,68); _R4(b,c,d,e,a,69); _R4(a,b,c,d,e,70); _R4(e,a,b,c,d,71); + _R4(d,e,a,b,c,72); _R4(c,d,e,a,b,73); _R4(b,c,d,e,a,74); _R4(a,b,c,d,e,75); + _R4(e,a,b,c,d,76); _R4(d,e,a,b,c,77); _R4(c,d,e,a,b,78); _R4(b,c,d,e,a,79); + + // Add the working vars back into state + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + state[4] += e; + + // Wipe variables +#ifdef SHA1_WIPE_VARIABLES + a = b = c = d = e = 0; +#endif +} + +// Use this function to hash in binary data and strings +void CSHA1::Update(UINT_8 *data, UINT_32 len) +{ + UINT_32 i, j; + + j = (m_count[0] >> 3) & 63; + + if((m_count[0] += len << 3) < (len << 3)) m_count[1]++; + + m_count[1] += (len >> 29); + + if((j + len) > 63) + { + i = 64 - j; + memcpy(&m_buffer[j], data, i); + Transform(m_state, m_buffer); + + for(; i + 63 < len; i += 64) Transform(m_state, &data[i]); + + j = 0; + } + else i = 0; + + memcpy(&m_buffer[j], &data[i], len - i); +} + +#ifdef SHA1_UTILITY_FUNCTIONS +// Hash in file contents +bool CSHA1::HashFile(char *szFileName) +{ + unsigned long ulFileSize, ulRest, ulBlocks; + unsigned long i; + UINT_8 uData[SHA1_MAX_FILE_BUFFER]; + FILE *fIn; + + if(szFileName == NULL) return false; + + fIn = fopen(szFileName, "rb"); + if(fIn == NULL) return false; + + fseek(fIn, 0, SEEK_END); + ulFileSize = (unsigned long)ftell(fIn); + fseek(fIn, 0, SEEK_SET); + + if(ulFileSize != 0) + { + ulBlocks = ulFileSize / SHA1_MAX_FILE_BUFFER; + ulRest = ulFileSize % SHA1_MAX_FILE_BUFFER; + } + else + { + ulBlocks = 0; + ulRest = 0; + } + + for(i = 0; i < ulBlocks; i++) + { + fread(uData, 1, SHA1_MAX_FILE_BUFFER, fIn); + Update((UINT_8 *)uData, SHA1_MAX_FILE_BUFFER); + } + + if(ulRest != 0) + { + fread(uData, 1, ulRest, fIn); + Update((UINT_8 *)uData, ulRest); + } + + fclose(fIn); fIn = NULL; + return true; +} +#endif + +void CSHA1::Final() +{ + UINT_32 i; + UINT_8 finalcount[8]; + + for(i = 0; i < 8; i++) + finalcount[i] = (UINT_8)((m_count[((i >= 4) ? 0 : 1)] + >> ((3 - (i & 3)) * 8) ) & 255); // Endian independent + + Update((UINT_8 *)"\200", 1); + + while ((m_count[0] & 504) != 448) + Update((UINT_8 *)"\0", 1); + + Update(finalcount, 8); // Cause a SHA1Transform() + + for(i = 0; i < 20; i++) + { + m_digest[i] = (UINT_8)((m_state[i >> 2] >> ((3 - (i & 3)) * 8) ) & 255); + } + + // Wipe variables for security reasons +#ifdef SHA1_WIPE_VARIABLES + i = 0; + memset(m_buffer, 0, 64); + memset(m_state, 0, 20); + memset(m_count, 0, 8); + memset(finalcount, 0, 8); + Transform(m_state, m_buffer); +#endif +} + +#ifdef SHA1_UTILITY_FUNCTIONS +// Get the final hash as a pre-formatted string +void CSHA1::ReportHash(char *szReport, unsigned char uReportType) +{ + unsigned char i; + char szTemp[16]; + + if(szReport == NULL) return; + + if(uReportType == REPORT_HEX) + { + sprintf(szTemp, "%02X", m_digest[0]); + strcat(szReport, szTemp); + + for(i = 1; i < 20; i++) + { + sprintf(szTemp, " %02X", m_digest[i]); + strcat(szReport, szTemp); + } + } + else if(uReportType == REPORT_DIGIT) + { + sprintf(szTemp, "%u", m_digest[0]); + strcat(szReport, szTemp); + + for(i = 1; i < 20; i++) + { + sprintf(szTemp, " %u", m_digest[i]); + strcat(szReport, szTemp); + } + } + else strcpy(szReport, "Error: Unknown report type!"); +} +#endif + +// Get the raw message digest +void CSHA1::GetHash(UINT_8 *puDest) +{ + memcpy(puDest, m_digest, 20); +} diff --git a/backends/twitter/libtwitcurl/SHA1.h b/backends/twitter/libtwitcurl/SHA1.h index e7ea00f3..a3269113 100644 --- a/backends/twitter/libtwitcurl/SHA1.h +++ b/backends/twitter/libtwitcurl/SHA1.h @@ -1,148 +1,148 @@ -/* - 100% free public domain implementation of the SHA-1 algorithm - by Dominik Reichl - Web: http://www.dominik-reichl.de/ - - Version 1.6 - 2005-02-07 (thanks to Howard Kapustein for patches) - - You can set the endianness in your files, no need to modify the - header file of the CSHA1 class any more - - Aligned data support - - Made support/compilation of the utility functions (ReportHash - and HashFile) optional (useful, if bytes count, for example in - embedded environments) - - Version 1.5 - 2005-01-01 - - 64-bit compiler compatibility added - - Made variable wiping optional (define SHA1_WIPE_VARIABLES) - - Removed unnecessary variable initializations - - ROL32 improvement for the Microsoft compiler (using _rotl) - - ======== Test Vectors (from FIPS PUB 180-1) ======== - - SHA1("abc") = - A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D - - SHA1("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq") = - 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 - - SHA1(A million repetitions of "a") = - 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F -*/ - -#ifndef ___SHA1_HDR___ -#define ___SHA1_HDR___ - -#if !defined(SHA1_UTILITY_FUNCTIONS) && !defined(SHA1_NO_UTILITY_FUNCTIONS) -#define SHA1_UTILITY_FUNCTIONS -#endif - -#include // Needed for memset and memcpy - -#ifdef SHA1_UTILITY_FUNCTIONS -#include // Needed for file access and sprintf -#include // Needed for strcat and strcpy -#endif - -#ifdef _MSC_VER -#include -#endif - -// You can define the endian mode in your files, without modifying the SHA1 -// source files. Just #define SHA1_LITTLE_ENDIAN or #define SHA1_BIG_ENDIAN -// in your files, before including the SHA1.h header file. If you don't -// define anything, the class defaults to little endian. - -#if !defined(SHA1_LITTLE_ENDIAN) && !defined(SHA1_BIG_ENDIAN) -#define SHA1_LITTLE_ENDIAN -#endif - -// Same here. If you want variable wiping, #define SHA1_WIPE_VARIABLES, if -// not, #define SHA1_NO_WIPE_VARIABLES. If you don't define anything, it -// defaults to wiping. - -#if !defined(SHA1_WIPE_VARIABLES) && !defined(SHA1_NO_WIPE_VARIABLES) -#define SHA1_WIPE_VARIABLES -#endif - -///////////////////////////////////////////////////////////////////////////// -// Define 8- and 32-bit variables - -#ifndef UINT_32 - -#ifdef _MSC_VER - -#define UINT_8 unsigned __int8 -#define UINT_32 unsigned __int32 - -#else - -#define UINT_8 unsigned char - -#if (ULONG_MAX == 0xFFFFFFFF) -#define UINT_32 unsigned long -#else -#define UINT_32 unsigned int -#endif - -#endif -#endif - -///////////////////////////////////////////////////////////////////////////// -// Declare SHA1 workspace - -typedef union -{ - UINT_8 c[64]; - UINT_32 l[16]; -} SHA1_WORKSPACE_BLOCK; - -class CSHA1 -{ -public: -#ifdef SHA1_UTILITY_FUNCTIONS - // Two different formats for ReportHash(...) - enum - { - REPORT_HEX = 0, - REPORT_DIGIT = 1 - }; -#endif - - // Constructor and Destructor - CSHA1(); - ~CSHA1(); - - UINT_32 m_state[5]; - UINT_32 m_count[2]; - UINT_32 __reserved1[1]; - UINT_8 m_buffer[64]; - UINT_8 m_digest[20]; - UINT_32 __reserved2[3]; - - void Reset(); - - // Update the hash value - void Update(UINT_8 *data, UINT_32 len); -#ifdef SHA1_UTILITY_FUNCTIONS - bool HashFile(char *szFileName); -#endif - - // Finalize hash and report - void Final(); - - // Report functions: as pre-formatted and raw data -#ifdef SHA1_UTILITY_FUNCTIONS - void ReportHash(char *szReport, unsigned char uReportType = REPORT_HEX); -#endif - void GetHash(UINT_8 *puDest); - -private: - // Private SHA-1 transformation - void Transform(UINT_32 *state, UINT_8 *buffer); - - // Member variables - UINT_8 m_workspace[64]; - SHA1_WORKSPACE_BLOCK *m_block; // SHA1 pointer to the byte array above -}; - -#endif +/* + 100% free public domain implementation of the SHA-1 algorithm + by Dominik Reichl + Web: http://www.dominik-reichl.de/ + + Version 1.6 - 2005-02-07 (thanks to Howard Kapustein for patches) + - You can set the endianness in your files, no need to modify the + header file of the CSHA1 class any more + - Aligned data support + - Made support/compilation of the utility functions (ReportHash + and HashFile) optional (useful, if bytes count, for example in + embedded environments) + + Version 1.5 - 2005-01-01 + - 64-bit compiler compatibility added + - Made variable wiping optional (define SHA1_WIPE_VARIABLES) + - Removed unnecessary variable initializations + - ROL32 improvement for the Microsoft compiler (using _rotl) + + ======== Test Vectors (from FIPS PUB 180-1) ======== + + SHA1("abc") = + A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D + + SHA1("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq") = + 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 + + SHA1(A million repetitions of "a") = + 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F +*/ + +#ifndef ___SHA1_HDR___ +#define ___SHA1_HDR___ + +#if !defined(SHA1_UTILITY_FUNCTIONS) && !defined(SHA1_NO_UTILITY_FUNCTIONS) +#define SHA1_UTILITY_FUNCTIONS +#endif + +#include // Needed for memset and memcpy + +#ifdef SHA1_UTILITY_FUNCTIONS +#include // Needed for file access and sprintf +#include // Needed for strcat and strcpy +#endif + +#ifdef _MSC_VER +#include +#endif + +// You can define the endian mode in your files, without modifying the SHA1 +// source files. Just #define SHA1_LITTLE_ENDIAN or #define SHA1_BIG_ENDIAN +// in your files, before including the SHA1.h header file. If you don't +// define anything, the class defaults to little endian. + +#if !defined(SHA1_LITTLE_ENDIAN) && !defined(SHA1_BIG_ENDIAN) +#define SHA1_LITTLE_ENDIAN +#endif + +// Same here. If you want variable wiping, #define SHA1_WIPE_VARIABLES, if +// not, #define SHA1_NO_WIPE_VARIABLES. If you don't define anything, it +// defaults to wiping. + +#if !defined(SHA1_WIPE_VARIABLES) && !defined(SHA1_NO_WIPE_VARIABLES) +#define SHA1_WIPE_VARIABLES +#endif + +///////////////////////////////////////////////////////////////////////////// +// Define 8- and 32-bit variables + +#ifndef UINT_32 + +#ifdef _MSC_VER + +#define UINT_8 unsigned __int8 +#define UINT_32 unsigned __int32 + +#else + +#define UINT_8 unsigned char + +#if (ULONG_MAX == 0xFFFFFFFF) +#define UINT_32 unsigned long +#else +#define UINT_32 unsigned int +#endif + +#endif +#endif + +///////////////////////////////////////////////////////////////////////////// +// Declare SHA1 workspace + +typedef union +{ + UINT_8 c[64]; + UINT_32 l[16]; +} SHA1_WORKSPACE_BLOCK; + +class CSHA1 +{ +public: +#ifdef SHA1_UTILITY_FUNCTIONS + // Two different formats for ReportHash(...) + enum + { + REPORT_HEX = 0, + REPORT_DIGIT = 1 + }; +#endif + + // Constructor and Destructor + CSHA1(); + ~CSHA1(); + + UINT_32 m_state[5]; + UINT_32 m_count[2]; + UINT_32 __reserved1[1]; + UINT_8 m_buffer[64]; + UINT_8 m_digest[20]; + UINT_32 __reserved2[3]; + + void Reset(); + + // Update the hash value + void Update(UINT_8 *data, UINT_32 len); +#ifdef SHA1_UTILITY_FUNCTIONS + bool HashFile(char *szFileName); +#endif + + // Finalize hash and report + void Final(); + + // Report functions: as pre-formatted and raw data +#ifdef SHA1_UTILITY_FUNCTIONS + void ReportHash(char *szReport, unsigned char uReportType = REPORT_HEX); +#endif + void GetHash(UINT_8 *puDest); + +private: + // Private SHA-1 transformation + void Transform(UINT_32 *state, UINT_8 *buffer); + + // Member variables + UINT_8 m_workspace[64]; + SHA1_WORKSPACE_BLOCK *m_block; // SHA1 pointer to the byte array above +}; + +#endif diff --git a/backends/twitter/libtwitcurl/base64.cpp b/backends/twitter/libtwitcurl/base64.cpp index 08951794..50006d4f 100644 --- a/backends/twitter/libtwitcurl/base64.cpp +++ b/backends/twitter/libtwitcurl/base64.cpp @@ -1,123 +1,123 @@ -/* - base64.cpp and base64.h - - Copyright (C) 2004-2008 René Nyffenegger - - This source code is provided 'as-is', without any express or implied - warranty. In no event will the author be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this source code must not be misrepresented; you must not - claim that you wrote the original source code. If you use this source code - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original source code. - - 3. This notice may not be removed or altered from any source distribution. - - René Nyffenegger rene.nyffenegger@adp-gmbh.ch - -*/ - -#include "base64.h" -#include - -static const std::string base64_chars = - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz" - "0123456789+/"; - - -static inline bool is_base64(unsigned char c) { - return (isalnum(c) || (c == '+') || (c == '/')); -} - -std::string base64_encode(unsigned char const* bytes_to_encode, unsigned int in_len) { - std::string ret; - int i = 0; - int j = 0; - unsigned char char_array_3[3]; - unsigned char char_array_4[4]; - - while (in_len--) { - char_array_3[i++] = *(bytes_to_encode++); - if (i == 3) { - char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; - char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); - char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); - char_array_4[3] = char_array_3[2] & 0x3f; - - for(i = 0; (i <4) ; i++) - ret += base64_chars[char_array_4[i]]; - i = 0; - } - } - - if (i) - { - for(j = i; j < 3; j++) - char_array_3[j] = '\0'; - - char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; - char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); - char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); - char_array_4[3] = char_array_3[2] & 0x3f; - - for (j = 0; (j < i + 1); j++) - ret += base64_chars[char_array_4[j]]; - - while((i++ < 3)) - ret += '='; - - } - - return ret; - -} - -std::string base64_decode(std::string const& encoded_string) { - int in_len = encoded_string.size(); - int i = 0; - int j = 0; - int in_ = 0; - unsigned char char_array_4[4], char_array_3[3]; - std::string ret; - - while (in_len-- && ( encoded_string[in_] != '=') && is_base64(encoded_string[in_])) { - char_array_4[i++] = encoded_string[in_]; in_++; - if (i ==4) { - for (i = 0; i <4; i++) - char_array_4[i] = base64_chars.find(char_array_4[i]); - - char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4); - char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2); - char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3]; - - for (i = 0; (i < 3); i++) - ret += char_array_3[i]; - i = 0; - } - } - - if (i) { - for (j = i; j <4; j++) - char_array_4[j] = 0; - - for (j = 0; j <4; j++) - char_array_4[j] = base64_chars.find(char_array_4[j]); - - char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4); - char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2); - char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3]; - - for (j = 0; (j < i - 1); j++) ret += char_array_3[j]; - } - - return ret; +/* + base64.cpp and base64.h + + Copyright (C) 2004-2008 René Nyffenegger + + This source code is provided 'as-is', without any express or implied + warranty. In no event will the author be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this source code must not be misrepresented; you must not + claim that you wrote the original source code. If you use this source code + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original source code. + + 3. This notice may not be removed or altered from any source distribution. + + René Nyffenegger rene.nyffenegger@adp-gmbh.ch + +*/ + +#include "base64.h" +#include + +static const std::string base64_chars = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + + +static inline bool is_base64(unsigned char c) { + return (isalnum(c) || (c == '+') || (c == '/')); +} + +std::string base64_encode(unsigned char const* bytes_to_encode, unsigned int in_len) { + std::string ret; + int i = 0; + int j = 0; + unsigned char char_array_3[3]; + unsigned char char_array_4[4]; + + while (in_len--) { + char_array_3[i++] = *(bytes_to_encode++); + if (i == 3) { + char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; + char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); + char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); + char_array_4[3] = char_array_3[2] & 0x3f; + + for(i = 0; (i <4) ; i++) + ret += base64_chars[char_array_4[i]]; + i = 0; + } + } + + if (i) + { + for(j = i; j < 3; j++) + char_array_3[j] = '\0'; + + char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; + char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); + char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); + char_array_4[3] = char_array_3[2] & 0x3f; + + for (j = 0; (j < i + 1); j++) + ret += base64_chars[char_array_4[j]]; + + while((i++ < 3)) + ret += '='; + + } + + return ret; + +} + +std::string base64_decode(std::string const& encoded_string) { + int in_len = encoded_string.size(); + int i = 0; + int j = 0; + int in_ = 0; + unsigned char char_array_4[4], char_array_3[3]; + std::string ret; + + while (in_len-- && ( encoded_string[in_] != '=') && is_base64(encoded_string[in_])) { + char_array_4[i++] = encoded_string[in_]; in_++; + if (i ==4) { + for (i = 0; i <4; i++) + char_array_4[i] = base64_chars.find(char_array_4[i]); + + char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4); + char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2); + char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3]; + + for (i = 0; (i < 3); i++) + ret += char_array_3[i]; + i = 0; + } + } + + if (i) { + for (j = i; j <4; j++) + char_array_4[j] = 0; + + for (j = 0; j <4; j++) + char_array_4[j] = base64_chars.find(char_array_4[j]); + + char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4); + char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2); + char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3]; + + for (j = 0; (j < i - 1); j++) ret += char_array_3[j]; + } + + return ret; } \ No newline at end of file diff --git a/backends/twitter/libtwitcurl/base64.h b/backends/twitter/libtwitcurl/base64.h index 639e696c..ceb13579 100644 --- a/backends/twitter/libtwitcurl/base64.h +++ b/backends/twitter/libtwitcurl/base64.h @@ -1,4 +1,4 @@ -#include - -std::string base64_encode(unsigned char const* , unsigned int len); +#include + +std::string base64_encode(unsigned char const* , unsigned int len); std::string base64_decode(std::string const& s); \ No newline at end of file diff --git a/backends/twitter/libtwitcurl/oauthlib.cpp b/backends/twitter/libtwitcurl/oauthlib.cpp index 00732766..aed9e43c 100644 --- a/backends/twitter/libtwitcurl/oauthlib.cpp +++ b/backends/twitter/libtwitcurl/oauthlib.cpp @@ -1,681 +1,681 @@ -#include "twitcurlurls.h" -#include "oauthlib.h" -#include "HMAC_SHA1.h" -#include "base64.h" -#include "urlencode.h" - -/*++ -* @method: oAuth::oAuth -* -* @description: constructor -* -* @input: none -* -* @output: none -* -*--*/ -oAuth::oAuth() -{ -} - -/*++ -* @method: oAuth::~oAuth -* -* @description: destructor -* -* @input: none -* -* @output: none -* -*--*/ -oAuth::~oAuth() -{ -} - -/*++ -* @method: oAuth::clone -* -* @description: creates a clone of oAuth object -* -* @input: none -* -* @output: cloned oAuth object -* -*--*/ -oAuth oAuth::clone() -{ - oAuth cloneObj; - cloneObj.m_consumerKey = m_consumerKey; - cloneObj.m_consumerSecret = m_consumerSecret; - cloneObj.m_oAuthTokenKey = m_oAuthTokenKey; - cloneObj.m_oAuthTokenSecret = m_oAuthTokenSecret; - cloneObj.m_oAuthPin = m_oAuthPin; - cloneObj.m_nonce = m_nonce; - cloneObj.m_timeStamp = m_timeStamp; - cloneObj.m_oAuthScreenName = m_oAuthScreenName; - return cloneObj; -} - - -/*++ -* @method: oAuth::getConsumerKey -* -* @description: this method gives consumer key that is being used currently -* -* @input: none -* -* @output: consumer key -* -*--*/ -void oAuth::getConsumerKey( std::string& consumerKey ) -{ - consumerKey = m_consumerKey; -} - -/*++ -* @method: oAuth::setConsumerKey -* -* @description: this method saves consumer key that should be used -* -* @input: consumer key -* -* @output: none -* -*--*/ -void oAuth::setConsumerKey( const std::string& consumerKey ) -{ - m_consumerKey.assign( consumerKey ); -} - -/*++ -* @method: oAuth::getConsumerSecret -* -* @description: this method gives consumer secret that is being used currently -* -* @input: none -* -* @output: consumer secret -* -*--*/ -void oAuth::getConsumerSecret( std::string& consumerSecret ) -{ - consumerSecret = m_consumerSecret; -} - -/*++ -* @method: oAuth::setConsumerSecret -* -* @description: this method saves consumer secret that should be used -* -* @input: consumer secret -* -* @output: none -* -*--*/ -void oAuth::setConsumerSecret( const std::string& consumerSecret ) -{ - m_consumerSecret = consumerSecret; -} - -/*++ -* @method: oAuth::getOAuthTokenKey -* -* @description: this method gives OAuth token (also called access token) that is being used currently -* -* @input: none -* -* @output: OAuth token -* -*--*/ -void oAuth::getOAuthTokenKey( std::string& oAuthTokenKey ) -{ - oAuthTokenKey = m_oAuthTokenKey; -} - -/*++ -* @method: oAuth::setOAuthTokenKey -* -* @description: this method saves OAuth token that should be used -* -* @input: OAuth token -* -* @output: none -* -*--*/ -void oAuth::setOAuthTokenKey( const std::string& oAuthTokenKey ) -{ - m_oAuthTokenKey = oAuthTokenKey; -} - -/*++ -* @method: oAuth::getOAuthTokenSecret -* -* @description: this method gives OAuth token secret that is being used currently -* -* @input: none -* -* @output: OAuth token secret -* -*--*/ -void oAuth::getOAuthTokenSecret( std::string& oAuthTokenSecret ) -{ - oAuthTokenSecret = m_oAuthTokenSecret; -} - -/*++ -* @method: oAuth::setOAuthTokenSecret -* -* @description: this method saves OAuth token that should be used -* -* @input: OAuth token secret -* -* @output: none -* -*--*/ -void oAuth::setOAuthTokenSecret( const std::string& oAuthTokenSecret ) -{ - m_oAuthTokenSecret = oAuthTokenSecret; -} - -/*++ -* @method: oAuth::getOAuthScreenName -* -* @description: this method gives authorized user's screenname -* -* @input: none -* -* @output: screen name -* -*--*/ -void oAuth::getOAuthScreenName( std::string& oAuthScreenName ) -{ - oAuthScreenName = m_oAuthScreenName; -} - -/*++ -* @method: oAuth::setOAuthScreenName -* -* @description: this method sets authorized user's screenname -* -* @input: screen name -* -* @output: none -* -*--*/ -void oAuth::setOAuthScreenName( const std::string& oAuthScreenName ) -{ - m_oAuthScreenName = oAuthScreenName; -} - -/*++ -* @method: oAuth::getOAuthPin -* -* @description: this method gives OAuth verifier PIN -* -* @input: none -* -* @output: OAuth verifier PIN -* -*--*/ -void oAuth::getOAuthPin( std::string& oAuthPin ) -{ - oAuthPin = m_oAuthPin; -} - -/*++ -* @method: oAuth::setOAuthPin -* -* @description: this method sets OAuth verifier PIN -* -* @input: OAuth verifier PIN -* -* @output: none -* -*--*/ -void oAuth::setOAuthPin( const std::string& oAuthPin ) -{ - m_oAuthPin = oAuthPin; -} - -/*++ -* @method: oAuth::generateNonceTimeStamp -* -* @description: this method generates nonce and timestamp for OAuth header -* -* @input: none -* -* @output: none -* -* @remarks: internal method -* -*--*/ -void oAuth::generateNonceTimeStamp() -{ - char szTime[oAuthLibDefaults::OAUTHLIB_BUFFSIZE]; - char szRand[oAuthLibDefaults::OAUTHLIB_BUFFSIZE]; - memset( szTime, 0, oAuthLibDefaults::OAUTHLIB_BUFFSIZE ); - memset( szRand, 0, oAuthLibDefaults::OAUTHLIB_BUFFSIZE ); - srand( (unsigned int)time( NULL ) ); - sprintf( szRand, "%x", rand()%1000 ); - sprintf( szTime, "%ld", time( NULL ) ); - - m_nonce.assign( szTime ); - m_nonce.append( szRand ); - m_timeStamp.assign( szTime ); -} - -/*++ -* @method: oAuth::buildOAuthRawDataKeyValPairs -* -* @description: this method prepares key-value pairs from the data part of the URL -* or from the URL post fields data, as required by OAuth header -* and signature generation. -* -* @input: rawData - Raw data either from the URL itself or from post fields. -* Should already be url encoded. -* urlencodeData - If true, string will be urlencoded before converting -* to key value pairs. -* -* @output: rawDataKeyValuePairs - Map in which key-value pairs are populated -* -* @remarks: internal method -* -*--*/ -void oAuth::buildOAuthRawDataKeyValPairs( const std::string& rawData, - bool urlencodeData, - oAuthKeyValuePairs& rawDataKeyValuePairs ) -{ - /* Raw data if it's present. Data should already be urlencoded once */ - if( rawData.empty() ) - { - return; - } - - size_t nSep = std::string::npos; - size_t nPos = std::string::npos; - std::string dataKeyVal; - std::string dataKey; - std::string dataVal; - - /* This raw data part can contain many key value pairs: key1=value1&key2=value2&key3=value3 */ - std::string dataPart = rawData; - while( std::string::npos != ( nSep = dataPart.find_first_of("&") ) ) - { - /* Extract first key=value pair */ - dataKeyVal = dataPart.substr( 0, nSep ); - - /* Split them */ - nPos = dataKeyVal.find_first_of( "=" ); - if( std::string::npos != nPos ) - { - dataKey = dataKeyVal.substr( 0, nPos ); - dataVal = dataKeyVal.substr( nPos + 1 ); - - /* Put this key=value pair in map */ - rawDataKeyValuePairs[dataKey] = urlencodeData ? urlencode( dataVal ) : dataVal; - } - dataPart = dataPart.substr( nSep + 1 ); - } - - /* For the last key=value */ - dataKeyVal = dataPart.substr( 0, nSep ); - - /* Split them */ - nPos = dataKeyVal.find_first_of( "=" ); - if( std::string::npos != nPos ) - { - dataKey = dataKeyVal.substr( 0, nPos ); - dataVal = dataKeyVal.substr( nPos + 1 ); - - /* Put this key=value pair in map */ - rawDataKeyValuePairs[dataKey] = urlencodeData ? urlencode( dataVal ) : dataVal; - } -} - -/*++ -* @method: oAuth::buildOAuthTokenKeyValuePairs -* -* @description: this method prepares key-value pairs required for OAuth header -* and signature generation. -* -* @input: includeOAuthVerifierPin - flag to indicate whether oauth_verifer key-value -* pair needs to be included. oauth_verifer is only -* used during exchanging request token with access token. -* oauthSignature - base64 and url encoded OAuth signature. -* generateTimestamp - If true, then generate new timestamp for nonce. -* -* @output: keyValueMap - map in which key-value pairs are populated -* -* @remarks: internal method -* -*--*/ -bool oAuth::buildOAuthTokenKeyValuePairs( const bool includeOAuthVerifierPin, - const std::string& oauthSignature, - oAuthKeyValuePairs& keyValueMap, - const bool generateTimestamp ) -{ - /* Generate nonce and timestamp if required */ - if( generateTimestamp ) - { - generateNonceTimeStamp(); - } - - /* Consumer key and its value */ - keyValueMap[oAuthLibDefaults::OAUTHLIB_CONSUMERKEY_KEY] = m_consumerKey; - - /* Nonce key and its value */ - keyValueMap[oAuthLibDefaults::OAUTHLIB_NONCE_KEY] = m_nonce; - - /* Signature if supplied */ - if( oauthSignature.length() ) - { - keyValueMap[oAuthLibDefaults::OAUTHLIB_SIGNATURE_KEY] = oauthSignature; - } - - /* Signature method, only HMAC-SHA1 as of now */ - keyValueMap[oAuthLibDefaults::OAUTHLIB_SIGNATUREMETHOD_KEY] = std::string( "HMAC-SHA1" ); - - /* Timestamp */ - keyValueMap[oAuthLibDefaults::OAUTHLIB_TIMESTAMP_KEY] = m_timeStamp; - - /* Token */ - if( m_oAuthTokenKey.length() ) - { - keyValueMap[oAuthLibDefaults::OAUTHLIB_TOKEN_KEY] = m_oAuthTokenKey; - } - - /* Verifier */ - if( includeOAuthVerifierPin && m_oAuthPin.length() ) - { - keyValueMap[oAuthLibDefaults::OAUTHLIB_VERIFIER_KEY] = m_oAuthPin; - } - - /* Version */ - keyValueMap[oAuthLibDefaults::OAUTHLIB_VERSION_KEY] = std::string( "1.0" ); - - return !keyValueMap.empty(); -} - -/*++ -* @method: oAuth::getSignature -* -* @description: this method calculates HMAC-SHA1 signature of OAuth header -* -* @input: eType - HTTP request type -* rawUrl - raw url of the HTTP request -* rawKeyValuePairs - key-value pairs containing OAuth headers and HTTP data -* -* @output: oAuthSignature - base64 and url encoded signature -* -* @remarks: internal method -* -*--*/ -bool oAuth::getSignature( const eOAuthHttpRequestType eType, - const std::string& rawUrl, - const oAuthKeyValuePairs& rawKeyValuePairs, - std::string& oAuthSignature ) -{ - std::string rawParams; - std::string paramsSeperator; - std::string sigBase; - - /* Initially empty signature */ - oAuthSignature = ""; - - /* Build a string using key-value pairs */ - paramsSeperator = "&"; - getStringFromOAuthKeyValuePairs( rawKeyValuePairs, rawParams, paramsSeperator ); - - /* Start constructing base signature string. Refer http://dev.twitter.com/auth#intro */ - switch( eType ) - { - case eOAuthHttpGet: - { - sigBase.assign( "GET&" ); - } - break; - - case eOAuthHttpPost: - { - sigBase.assign( "POST&" ); - } - break; - - case eOAuthHttpDelete: - { - sigBase.assign( "DELETE&" ); - } - break; - - default: - { - return false; - } - break; - } - sigBase.append( urlencode( rawUrl ) ); - sigBase.append( "&" ); - sigBase.append( urlencode( rawParams ) ); - - /* Now, hash the signature base string using HMAC_SHA1 class */ - CHMAC_SHA1 objHMACSHA1; - std::string secretSigningKey; - unsigned char strDigest[oAuthLibDefaults::OAUTHLIB_BUFFSIZE_LARGE]; - - memset( strDigest, 0, oAuthLibDefaults::OAUTHLIB_BUFFSIZE_LARGE ); - - /* Signing key is composed of consumer_secret&token_secret */ - secretSigningKey.assign( m_consumerSecret ); - secretSigningKey.append( "&" ); - if( m_oAuthTokenSecret.length() ) - { - secretSigningKey.append( m_oAuthTokenSecret ); - } - - objHMACSHA1.HMAC_SHA1( (unsigned char*)sigBase.c_str(), - sigBase.length(), - (unsigned char*)secretSigningKey.c_str(), - secretSigningKey.length(), - strDigest ); - - /* Do a base64 encode of signature */ - std::string base64Str = base64_encode( strDigest, 20 /* SHA 1 digest is 160 bits */ ); - - /* Do an url encode */ - oAuthSignature = urlencode( base64Str ); - - return !oAuthSignature.empty(); -} - -/*++ -* @method: oAuth::getOAuthHeader -* -* @description: this method builds OAuth header that should be used in HTTP requests to twitter -* -* @input: eType - HTTP request type -* rawUrl - raw url of the HTTP request -* rawData - HTTP data (post fields) -* includeOAuthVerifierPin - flag to indicate whether or not oauth_verifier needs to included -* in OAuth header -* -* @output: oAuthHttpHeader - OAuth header -* -*--*/ -bool oAuth::getOAuthHeader( const eOAuthHttpRequestType eType, - const std::string& rawUrl, - const std::string& rawData, - std::string& oAuthHttpHeader, - const bool includeOAuthVerifierPin ) -{ - oAuthKeyValuePairs rawKeyValuePairs; - std::string rawParams; - std::string oauthSignature; - std::string paramsSeperator; - std::string pureUrl( rawUrl ); - - /* Clear header string initially */ - oAuthHttpHeader = ""; - rawKeyValuePairs.clear(); - - /* If URL itself contains ?key=value, then extract and put them in map */ - size_t nPos = rawUrl.find_first_of( "?" ); - if( std::string::npos != nPos ) - { - /* Get only URL */ - pureUrl = rawUrl.substr( 0, nPos ); - - /* Get only key=value data part */ - std::string dataPart = rawUrl.substr( nPos + 1 ); - - /* Split the data in URL as key=value pairs */ - buildOAuthRawDataKeyValPairs( dataPart, true, rawKeyValuePairs ); - } - - /* Split the raw data if it's present, as key=value pairs. Data should already be urlencoded once */ - buildOAuthRawDataKeyValPairs( rawData, false, rawKeyValuePairs ); - - /* Build key-value pairs needed for OAuth request token, without signature */ - buildOAuthTokenKeyValuePairs( includeOAuthVerifierPin, std::string( "" ), rawKeyValuePairs, true ); - - /* Get url encoded base64 signature using request type, url and parameters */ - getSignature( eType, pureUrl, rawKeyValuePairs, oauthSignature ); - - /* Clear map so that the parameters themselves are not sent along with the OAuth values */ - rawKeyValuePairs.clear(); - - /* Now, again build key-value pairs with signature this time */ - buildOAuthTokenKeyValuePairs( includeOAuthVerifierPin, oauthSignature, rawKeyValuePairs, false ); - - /* Get OAuth header in string format */ - paramsSeperator = ","; - getStringFromOAuthKeyValuePairs( rawKeyValuePairs, rawParams, paramsSeperator ); - - /* Build authorization header */ - oAuthHttpHeader.assign( oAuthLibDefaults::OAUTHLIB_AUTHHEADER_STRING ); - oAuthHttpHeader.append( rawParams ); - - return !oAuthHttpHeader.empty(); -} - -/*++ -* @method: oAuth::getStringFromOAuthKeyValuePairs -* -* @description: this method builds a sorted string from key-value pairs -* -* @input: rawParamMap - key-value pairs map -* paramsSeperator - sepearator, either & or , -* -* @output: rawParams - sorted string of OAuth parameters -* -* @remarks: internal method -* -*--*/ -bool oAuth::getStringFromOAuthKeyValuePairs( const oAuthKeyValuePairs& rawParamMap, - std::string& rawParams, - const std::string& paramsSeperator ) -{ - rawParams = ""; - if( rawParamMap.empty() ) - { - return false; - } - - oAuthKeyValueList keyValueList; - std::string dummyStr; - - /* Push key-value pairs to a list of strings */ - keyValueList.clear(); - oAuthKeyValuePairs::const_iterator itMap = rawParamMap.begin(); - for( ; itMap != rawParamMap.end(); itMap++ ) - { - dummyStr.assign( itMap->first ); - dummyStr.append( "=" ); - if( paramsSeperator == "," ) - { - dummyStr.append( "\"" ); - } - dummyStr.append( itMap->second ); - if( paramsSeperator == "," ) - { - dummyStr.append( "\"" ); - } - keyValueList.push_back( dummyStr ); - } - - /* Sort key-value pairs based on key name */ - keyValueList.sort(); - - /* Now, form a string */ - dummyStr = ""; - oAuthKeyValueList::iterator itKeyValue = keyValueList.begin(); - for( ; itKeyValue != keyValueList.end(); itKeyValue++ ) - { - if( dummyStr.length() ) - { - dummyStr.append( paramsSeperator ); - } - dummyStr.append( itKeyValue->c_str() ); - } - rawParams = dummyStr; - return !rawParams.empty(); -} - -/*++ -* @method: oAuth::extractOAuthTokenKeySecret -* -* @description: this method extracts oauth token key and secret from -* twitter's HTTP response -* -* @input: requestTokenResponse - response from twitter -* -* @output: none -* -*--*/ -bool oAuth::extractOAuthTokenKeySecret( const std::string& requestTokenResponse ) -{ - if( requestTokenResponse.empty() ) - { - return false; - } - - size_t nPos = std::string::npos; - std::string strDummy; - - /* Get oauth_token key */ - nPos = requestTokenResponse.find( oAuthLibDefaults::OAUTHLIB_TOKEN_KEY ); - if( std::string::npos != nPos ) - { - nPos = nPos + oAuthLibDefaults::OAUTHLIB_TOKEN_KEY.length() + strlen( "=" ); - strDummy = requestTokenResponse.substr( nPos ); - nPos = strDummy.find( "&" ); - if( std::string::npos != nPos ) - { - m_oAuthTokenKey = strDummy.substr( 0, nPos ); - } - } - - /* Get oauth_token_secret */ - nPos = requestTokenResponse.find( oAuthLibDefaults::OAUTHLIB_TOKENSECRET_KEY ); - if( std::string::npos != nPos ) - { - nPos = nPos + oAuthLibDefaults::OAUTHLIB_TOKENSECRET_KEY.length() + strlen( "=" ); - strDummy = requestTokenResponse.substr( nPos ); - nPos = strDummy.find( "&" ); - if( std::string::npos != nPos ) - { - m_oAuthTokenSecret = strDummy.substr( 0, nPos ); - } - } - - /* Get screen_name */ - nPos = requestTokenResponse.find( oAuthLibDefaults::OAUTHLIB_SCREENNAME_KEY ); - if( std::string::npos != nPos ) - { - nPos = nPos + oAuthLibDefaults::OAUTHLIB_SCREENNAME_KEY.length() + strlen( "=" ); - strDummy = requestTokenResponse.substr( nPos ); - m_oAuthScreenName = strDummy; - } - - return true; -} - +#include "twitcurlurls.h" +#include "oauthlib.h" +#include "HMAC_SHA1.h" +#include "base64.h" +#include "urlencode.h" + +/*++ +* @method: oAuth::oAuth +* +* @description: constructor +* +* @input: none +* +* @output: none +* +*--*/ +oAuth::oAuth() +{ +} + +/*++ +* @method: oAuth::~oAuth +* +* @description: destructor +* +* @input: none +* +* @output: none +* +*--*/ +oAuth::~oAuth() +{ +} + +/*++ +* @method: oAuth::clone +* +* @description: creates a clone of oAuth object +* +* @input: none +* +* @output: cloned oAuth object +* +*--*/ +oAuth oAuth::clone() +{ + oAuth cloneObj; + cloneObj.m_consumerKey = m_consumerKey; + cloneObj.m_consumerSecret = m_consumerSecret; + cloneObj.m_oAuthTokenKey = m_oAuthTokenKey; + cloneObj.m_oAuthTokenSecret = m_oAuthTokenSecret; + cloneObj.m_oAuthPin = m_oAuthPin; + cloneObj.m_nonce = m_nonce; + cloneObj.m_timeStamp = m_timeStamp; + cloneObj.m_oAuthScreenName = m_oAuthScreenName; + return cloneObj; +} + + +/*++ +* @method: oAuth::getConsumerKey +* +* @description: this method gives consumer key that is being used currently +* +* @input: none +* +* @output: consumer key +* +*--*/ +void oAuth::getConsumerKey( std::string& consumerKey ) +{ + consumerKey = m_consumerKey; +} + +/*++ +* @method: oAuth::setConsumerKey +* +* @description: this method saves consumer key that should be used +* +* @input: consumer key +* +* @output: none +* +*--*/ +void oAuth::setConsumerKey( const std::string& consumerKey ) +{ + m_consumerKey.assign( consumerKey ); +} + +/*++ +* @method: oAuth::getConsumerSecret +* +* @description: this method gives consumer secret that is being used currently +* +* @input: none +* +* @output: consumer secret +* +*--*/ +void oAuth::getConsumerSecret( std::string& consumerSecret ) +{ + consumerSecret = m_consumerSecret; +} + +/*++ +* @method: oAuth::setConsumerSecret +* +* @description: this method saves consumer secret that should be used +* +* @input: consumer secret +* +* @output: none +* +*--*/ +void oAuth::setConsumerSecret( const std::string& consumerSecret ) +{ + m_consumerSecret = consumerSecret; +} + +/*++ +* @method: oAuth::getOAuthTokenKey +* +* @description: this method gives OAuth token (also called access token) that is being used currently +* +* @input: none +* +* @output: OAuth token +* +*--*/ +void oAuth::getOAuthTokenKey( std::string& oAuthTokenKey ) +{ + oAuthTokenKey = m_oAuthTokenKey; +} + +/*++ +* @method: oAuth::setOAuthTokenKey +* +* @description: this method saves OAuth token that should be used +* +* @input: OAuth token +* +* @output: none +* +*--*/ +void oAuth::setOAuthTokenKey( const std::string& oAuthTokenKey ) +{ + m_oAuthTokenKey = oAuthTokenKey; +} + +/*++ +* @method: oAuth::getOAuthTokenSecret +* +* @description: this method gives OAuth token secret that is being used currently +* +* @input: none +* +* @output: OAuth token secret +* +*--*/ +void oAuth::getOAuthTokenSecret( std::string& oAuthTokenSecret ) +{ + oAuthTokenSecret = m_oAuthTokenSecret; +} + +/*++ +* @method: oAuth::setOAuthTokenSecret +* +* @description: this method saves OAuth token that should be used +* +* @input: OAuth token secret +* +* @output: none +* +*--*/ +void oAuth::setOAuthTokenSecret( const std::string& oAuthTokenSecret ) +{ + m_oAuthTokenSecret = oAuthTokenSecret; +} + +/*++ +* @method: oAuth::getOAuthScreenName +* +* @description: this method gives authorized user's screenname +* +* @input: none +* +* @output: screen name +* +*--*/ +void oAuth::getOAuthScreenName( std::string& oAuthScreenName ) +{ + oAuthScreenName = m_oAuthScreenName; +} + +/*++ +* @method: oAuth::setOAuthScreenName +* +* @description: this method sets authorized user's screenname +* +* @input: screen name +* +* @output: none +* +*--*/ +void oAuth::setOAuthScreenName( const std::string& oAuthScreenName ) +{ + m_oAuthScreenName = oAuthScreenName; +} + +/*++ +* @method: oAuth::getOAuthPin +* +* @description: this method gives OAuth verifier PIN +* +* @input: none +* +* @output: OAuth verifier PIN +* +*--*/ +void oAuth::getOAuthPin( std::string& oAuthPin ) +{ + oAuthPin = m_oAuthPin; +} + +/*++ +* @method: oAuth::setOAuthPin +* +* @description: this method sets OAuth verifier PIN +* +* @input: OAuth verifier PIN +* +* @output: none +* +*--*/ +void oAuth::setOAuthPin( const std::string& oAuthPin ) +{ + m_oAuthPin = oAuthPin; +} + +/*++ +* @method: oAuth::generateNonceTimeStamp +* +* @description: this method generates nonce and timestamp for OAuth header +* +* @input: none +* +* @output: none +* +* @remarks: internal method +* +*--*/ +void oAuth::generateNonceTimeStamp() +{ + char szTime[oAuthLibDefaults::OAUTHLIB_BUFFSIZE]; + char szRand[oAuthLibDefaults::OAUTHLIB_BUFFSIZE]; + memset( szTime, 0, oAuthLibDefaults::OAUTHLIB_BUFFSIZE ); + memset( szRand, 0, oAuthLibDefaults::OAUTHLIB_BUFFSIZE ); + srand( (unsigned int)time( NULL ) ); + sprintf( szRand, "%x", rand()%1000 ); + sprintf( szTime, "%ld", time( NULL ) ); + + m_nonce.assign( szTime ); + m_nonce.append( szRand ); + m_timeStamp.assign( szTime ); +} + +/*++ +* @method: oAuth::buildOAuthRawDataKeyValPairs +* +* @description: this method prepares key-value pairs from the data part of the URL +* or from the URL post fields data, as required by OAuth header +* and signature generation. +* +* @input: rawData - Raw data either from the URL itself or from post fields. +* Should already be url encoded. +* urlencodeData - If true, string will be urlencoded before converting +* to key value pairs. +* +* @output: rawDataKeyValuePairs - Map in which key-value pairs are populated +* +* @remarks: internal method +* +*--*/ +void oAuth::buildOAuthRawDataKeyValPairs( const std::string& rawData, + bool urlencodeData, + oAuthKeyValuePairs& rawDataKeyValuePairs ) +{ + /* Raw data if it's present. Data should already be urlencoded once */ + if( rawData.empty() ) + { + return; + } + + size_t nSep = std::string::npos; + size_t nPos = std::string::npos; + std::string dataKeyVal; + std::string dataKey; + std::string dataVal; + + /* This raw data part can contain many key value pairs: key1=value1&key2=value2&key3=value3 */ + std::string dataPart = rawData; + while( std::string::npos != ( nSep = dataPart.find_first_of("&") ) ) + { + /* Extract first key=value pair */ + dataKeyVal = dataPart.substr( 0, nSep ); + + /* Split them */ + nPos = dataKeyVal.find_first_of( "=" ); + if( std::string::npos != nPos ) + { + dataKey = dataKeyVal.substr( 0, nPos ); + dataVal = dataKeyVal.substr( nPos + 1 ); + + /* Put this key=value pair in map */ + rawDataKeyValuePairs[dataKey] = urlencodeData ? urlencode( dataVal ) : dataVal; + } + dataPart = dataPart.substr( nSep + 1 ); + } + + /* For the last key=value */ + dataKeyVal = dataPart.substr( 0, nSep ); + + /* Split them */ + nPos = dataKeyVal.find_first_of( "=" ); + if( std::string::npos != nPos ) + { + dataKey = dataKeyVal.substr( 0, nPos ); + dataVal = dataKeyVal.substr( nPos + 1 ); + + /* Put this key=value pair in map */ + rawDataKeyValuePairs[dataKey] = urlencodeData ? urlencode( dataVal ) : dataVal; + } +} + +/*++ +* @method: oAuth::buildOAuthTokenKeyValuePairs +* +* @description: this method prepares key-value pairs required for OAuth header +* and signature generation. +* +* @input: includeOAuthVerifierPin - flag to indicate whether oauth_verifer key-value +* pair needs to be included. oauth_verifer is only +* used during exchanging request token with access token. +* oauthSignature - base64 and url encoded OAuth signature. +* generateTimestamp - If true, then generate new timestamp for nonce. +* +* @output: keyValueMap - map in which key-value pairs are populated +* +* @remarks: internal method +* +*--*/ +bool oAuth::buildOAuthTokenKeyValuePairs( const bool includeOAuthVerifierPin, + const std::string& oauthSignature, + oAuthKeyValuePairs& keyValueMap, + const bool generateTimestamp ) +{ + /* Generate nonce and timestamp if required */ + if( generateTimestamp ) + { + generateNonceTimeStamp(); + } + + /* Consumer key and its value */ + keyValueMap[oAuthLibDefaults::OAUTHLIB_CONSUMERKEY_KEY] = m_consumerKey; + + /* Nonce key and its value */ + keyValueMap[oAuthLibDefaults::OAUTHLIB_NONCE_KEY] = m_nonce; + + /* Signature if supplied */ + if( oauthSignature.length() ) + { + keyValueMap[oAuthLibDefaults::OAUTHLIB_SIGNATURE_KEY] = oauthSignature; + } + + /* Signature method, only HMAC-SHA1 as of now */ + keyValueMap[oAuthLibDefaults::OAUTHLIB_SIGNATUREMETHOD_KEY] = std::string( "HMAC-SHA1" ); + + /* Timestamp */ + keyValueMap[oAuthLibDefaults::OAUTHLIB_TIMESTAMP_KEY] = m_timeStamp; + + /* Token */ + if( m_oAuthTokenKey.length() ) + { + keyValueMap[oAuthLibDefaults::OAUTHLIB_TOKEN_KEY] = m_oAuthTokenKey; + } + + /* Verifier */ + if( includeOAuthVerifierPin && m_oAuthPin.length() ) + { + keyValueMap[oAuthLibDefaults::OAUTHLIB_VERIFIER_KEY] = m_oAuthPin; + } + + /* Version */ + keyValueMap[oAuthLibDefaults::OAUTHLIB_VERSION_KEY] = std::string( "1.0" ); + + return !keyValueMap.empty(); +} + +/*++ +* @method: oAuth::getSignature +* +* @description: this method calculates HMAC-SHA1 signature of OAuth header +* +* @input: eType - HTTP request type +* rawUrl - raw url of the HTTP request +* rawKeyValuePairs - key-value pairs containing OAuth headers and HTTP data +* +* @output: oAuthSignature - base64 and url encoded signature +* +* @remarks: internal method +* +*--*/ +bool oAuth::getSignature( const eOAuthHttpRequestType eType, + const std::string& rawUrl, + const oAuthKeyValuePairs& rawKeyValuePairs, + std::string& oAuthSignature ) +{ + std::string rawParams; + std::string paramsSeperator; + std::string sigBase; + + /* Initially empty signature */ + oAuthSignature = ""; + + /* Build a string using key-value pairs */ + paramsSeperator = "&"; + getStringFromOAuthKeyValuePairs( rawKeyValuePairs, rawParams, paramsSeperator ); + + /* Start constructing base signature string. Refer http://dev.twitter.com/auth#intro */ + switch( eType ) + { + case eOAuthHttpGet: + { + sigBase.assign( "GET&" ); + } + break; + + case eOAuthHttpPost: + { + sigBase.assign( "POST&" ); + } + break; + + case eOAuthHttpDelete: + { + sigBase.assign( "DELETE&" ); + } + break; + + default: + { + return false; + } + break; + } + sigBase.append( urlencode( rawUrl ) ); + sigBase.append( "&" ); + sigBase.append( urlencode( rawParams ) ); + + /* Now, hash the signature base string using HMAC_SHA1 class */ + CHMAC_SHA1 objHMACSHA1; + std::string secretSigningKey; + unsigned char strDigest[oAuthLibDefaults::OAUTHLIB_BUFFSIZE_LARGE]; + + memset( strDigest, 0, oAuthLibDefaults::OAUTHLIB_BUFFSIZE_LARGE ); + + /* Signing key is composed of consumer_secret&token_secret */ + secretSigningKey.assign( m_consumerSecret ); + secretSigningKey.append( "&" ); + if( m_oAuthTokenSecret.length() ) + { + secretSigningKey.append( m_oAuthTokenSecret ); + } + + objHMACSHA1.HMAC_SHA1( (unsigned char*)sigBase.c_str(), + sigBase.length(), + (unsigned char*)secretSigningKey.c_str(), + secretSigningKey.length(), + strDigest ); + + /* Do a base64 encode of signature */ + std::string base64Str = base64_encode( strDigest, 20 /* SHA 1 digest is 160 bits */ ); + + /* Do an url encode */ + oAuthSignature = urlencode( base64Str ); + + return !oAuthSignature.empty(); +} + +/*++ +* @method: oAuth::getOAuthHeader +* +* @description: this method builds OAuth header that should be used in HTTP requests to twitter +* +* @input: eType - HTTP request type +* rawUrl - raw url of the HTTP request +* rawData - HTTP data (post fields) +* includeOAuthVerifierPin - flag to indicate whether or not oauth_verifier needs to included +* in OAuth header +* +* @output: oAuthHttpHeader - OAuth header +* +*--*/ +bool oAuth::getOAuthHeader( const eOAuthHttpRequestType eType, + const std::string& rawUrl, + const std::string& rawData, + std::string& oAuthHttpHeader, + const bool includeOAuthVerifierPin ) +{ + oAuthKeyValuePairs rawKeyValuePairs; + std::string rawParams; + std::string oauthSignature; + std::string paramsSeperator; + std::string pureUrl( rawUrl ); + + /* Clear header string initially */ + oAuthHttpHeader = ""; + rawKeyValuePairs.clear(); + + /* If URL itself contains ?key=value, then extract and put them in map */ + size_t nPos = rawUrl.find_first_of( "?" ); + if( std::string::npos != nPos ) + { + /* Get only URL */ + pureUrl = rawUrl.substr( 0, nPos ); + + /* Get only key=value data part */ + std::string dataPart = rawUrl.substr( nPos + 1 ); + + /* Split the data in URL as key=value pairs */ + buildOAuthRawDataKeyValPairs( dataPart, true, rawKeyValuePairs ); + } + + /* Split the raw data if it's present, as key=value pairs. Data should already be urlencoded once */ + buildOAuthRawDataKeyValPairs( rawData, false, rawKeyValuePairs ); + + /* Build key-value pairs needed for OAuth request token, without signature */ + buildOAuthTokenKeyValuePairs( includeOAuthVerifierPin, std::string( "" ), rawKeyValuePairs, true ); + + /* Get url encoded base64 signature using request type, url and parameters */ + getSignature( eType, pureUrl, rawKeyValuePairs, oauthSignature ); + + /* Clear map so that the parameters themselves are not sent along with the OAuth values */ + rawKeyValuePairs.clear(); + + /* Now, again build key-value pairs with signature this time */ + buildOAuthTokenKeyValuePairs( includeOAuthVerifierPin, oauthSignature, rawKeyValuePairs, false ); + + /* Get OAuth header in string format */ + paramsSeperator = ","; + getStringFromOAuthKeyValuePairs( rawKeyValuePairs, rawParams, paramsSeperator ); + + /* Build authorization header */ + oAuthHttpHeader.assign( oAuthLibDefaults::OAUTHLIB_AUTHHEADER_STRING ); + oAuthHttpHeader.append( rawParams ); + + return !oAuthHttpHeader.empty(); +} + +/*++ +* @method: oAuth::getStringFromOAuthKeyValuePairs +* +* @description: this method builds a sorted string from key-value pairs +* +* @input: rawParamMap - key-value pairs map +* paramsSeperator - sepearator, either & or , +* +* @output: rawParams - sorted string of OAuth parameters +* +* @remarks: internal method +* +*--*/ +bool oAuth::getStringFromOAuthKeyValuePairs( const oAuthKeyValuePairs& rawParamMap, + std::string& rawParams, + const std::string& paramsSeperator ) +{ + rawParams = ""; + if( rawParamMap.empty() ) + { + return false; + } + + oAuthKeyValueList keyValueList; + std::string dummyStr; + + /* Push key-value pairs to a list of strings */ + keyValueList.clear(); + oAuthKeyValuePairs::const_iterator itMap = rawParamMap.begin(); + for( ; itMap != rawParamMap.end(); itMap++ ) + { + dummyStr.assign( itMap->first ); + dummyStr.append( "=" ); + if( paramsSeperator == "," ) + { + dummyStr.append( "\"" ); + } + dummyStr.append( itMap->second ); + if( paramsSeperator == "," ) + { + dummyStr.append( "\"" ); + } + keyValueList.push_back( dummyStr ); + } + + /* Sort key-value pairs based on key name */ + keyValueList.sort(); + + /* Now, form a string */ + dummyStr = ""; + oAuthKeyValueList::iterator itKeyValue = keyValueList.begin(); + for( ; itKeyValue != keyValueList.end(); itKeyValue++ ) + { + if( dummyStr.length() ) + { + dummyStr.append( paramsSeperator ); + } + dummyStr.append( itKeyValue->c_str() ); + } + rawParams = dummyStr; + return !rawParams.empty(); +} + +/*++ +* @method: oAuth::extractOAuthTokenKeySecret +* +* @description: this method extracts oauth token key and secret from +* twitter's HTTP response +* +* @input: requestTokenResponse - response from twitter +* +* @output: none +* +*--*/ +bool oAuth::extractOAuthTokenKeySecret( const std::string& requestTokenResponse ) +{ + if( requestTokenResponse.empty() ) + { + return false; + } + + size_t nPos = std::string::npos; + std::string strDummy; + + /* Get oauth_token key */ + nPos = requestTokenResponse.find( oAuthLibDefaults::OAUTHLIB_TOKEN_KEY ); + if( std::string::npos != nPos ) + { + nPos = nPos + oAuthLibDefaults::OAUTHLIB_TOKEN_KEY.length() + strlen( "=" ); + strDummy = requestTokenResponse.substr( nPos ); + nPos = strDummy.find( "&" ); + if( std::string::npos != nPos ) + { + m_oAuthTokenKey = strDummy.substr( 0, nPos ); + } + } + + /* Get oauth_token_secret */ + nPos = requestTokenResponse.find( oAuthLibDefaults::OAUTHLIB_TOKENSECRET_KEY ); + if( std::string::npos != nPos ) + { + nPos = nPos + oAuthLibDefaults::OAUTHLIB_TOKENSECRET_KEY.length() + strlen( "=" ); + strDummy = requestTokenResponse.substr( nPos ); + nPos = strDummy.find( "&" ); + if( std::string::npos != nPos ) + { + m_oAuthTokenSecret = strDummy.substr( 0, nPos ); + } + } + + /* Get screen_name */ + nPos = requestTokenResponse.find( oAuthLibDefaults::OAUTHLIB_SCREENNAME_KEY ); + if( std::string::npos != nPos ) + { + nPos = nPos + oAuthLibDefaults::OAUTHLIB_SCREENNAME_KEY.length() + strlen( "=" ); + strDummy = requestTokenResponse.substr( nPos ); + m_oAuthScreenName = strDummy; + } + + return true; +} + diff --git a/backends/twitter/libtwitcurl/oauthlib.h b/backends/twitter/libtwitcurl/oauthlib.h index b3ec577d..5401490b 100644 --- a/backends/twitter/libtwitcurl/oauthlib.h +++ b/backends/twitter/libtwitcurl/oauthlib.h @@ -1,93 +1,93 @@ -#ifndef __OAUTHLIB_H__ -#define __OAUTHLIB_H__ - -#include "time.h" -#include -#include -#include -#include -#include -#include -#include - -typedef enum _eOAuthHttpRequestType -{ - eOAuthHttpInvalid = 0, - eOAuthHttpGet, - eOAuthHttpPost, - eOAuthHttpDelete -} eOAuthHttpRequestType; - -typedef std::list oAuthKeyValueList; -typedef std::map oAuthKeyValuePairs; - -class oAuth -{ -public: - oAuth(); - ~oAuth(); - - /* OAuth public methods used by twitCurl */ - void getConsumerKey( std::string& consumerKey /* out */ ); - void setConsumerKey( const std::string& consumerKey /* in */ ); - - void getConsumerSecret( std::string& consumerSecret /* out */ ); - void setConsumerSecret( const std::string& consumerSecret /* in */ ); - - void getOAuthTokenKey( std::string& oAuthTokenKey /* out */ ); - void setOAuthTokenKey( const std::string& oAuthTokenKey /* in */ ); - - void getOAuthTokenSecret( std::string& oAuthTokenSecret /* out */ ); - void setOAuthTokenSecret( const std::string& oAuthTokenSecret /* in */ ); - - void getOAuthScreenName( std::string& oAuthScreenName /* out */ ); - void setOAuthScreenName( const std::string& oAuthScreenName /* in */ ); - - void getOAuthPin( std::string& oAuthPin /* out */ ); - void setOAuthPin( const std::string& oAuthPin /* in */ ); - - bool getOAuthHeader( const eOAuthHttpRequestType eType, /* in */ - const std::string& rawUrl, /* in */ - const std::string& rawData, /* in */ - std::string& oAuthHttpHeader, /* out */ - const bool includeOAuthVerifierPin = false /* in */ ); - - bool extractOAuthTokenKeySecret( const std::string& requestTokenResponse /* in */ ); - - oAuth clone(); - -private: - - /* OAuth data */ - std::string m_consumerKey; - std::string m_consumerSecret; - std::string m_oAuthTokenKey; - std::string m_oAuthTokenSecret; - std::string m_oAuthPin; - std::string m_nonce; - std::string m_timeStamp; - std::string m_oAuthScreenName; - - /* OAuth twitter related utility methods */ - void buildOAuthRawDataKeyValPairs( const std::string& rawData, /* in */ - bool urlencodeData, /* in */ - oAuthKeyValuePairs& rawDataKeyValuePairs /* out */ ); - - bool buildOAuthTokenKeyValuePairs( const bool includeOAuthVerifierPin, /* in */ - const std::string& oauthSignature, /* in */ - oAuthKeyValuePairs& keyValueMap /* out */, - const bool generateTimestamp /* in */ ); - - bool getStringFromOAuthKeyValuePairs( const oAuthKeyValuePairs& rawParamMap, /* in */ - std::string& rawParams, /* out */ - const std::string& paramsSeperator /* in */ ); - - bool getSignature( const eOAuthHttpRequestType eType, /* in */ - const std::string& rawUrl, /* in */ - const oAuthKeyValuePairs& rawKeyValuePairs, /* in */ - std::string& oAuthSignature /* out */ ); - - void generateNonceTimeStamp(); -}; - -#endif // __OAUTHLIB_H__ +#ifndef __OAUTHLIB_H__ +#define __OAUTHLIB_H__ + +#include "time.h" +#include +#include +#include +#include +#include +#include +#include + +typedef enum _eOAuthHttpRequestType +{ + eOAuthHttpInvalid = 0, + eOAuthHttpGet, + eOAuthHttpPost, + eOAuthHttpDelete +} eOAuthHttpRequestType; + +typedef std::list oAuthKeyValueList; +typedef std::map oAuthKeyValuePairs; + +class oAuth +{ +public: + oAuth(); + ~oAuth(); + + /* OAuth public methods used by twitCurl */ + void getConsumerKey( std::string& consumerKey /* out */ ); + void setConsumerKey( const std::string& consumerKey /* in */ ); + + void getConsumerSecret( std::string& consumerSecret /* out */ ); + void setConsumerSecret( const std::string& consumerSecret /* in */ ); + + void getOAuthTokenKey( std::string& oAuthTokenKey /* out */ ); + void setOAuthTokenKey( const std::string& oAuthTokenKey /* in */ ); + + void getOAuthTokenSecret( std::string& oAuthTokenSecret /* out */ ); + void setOAuthTokenSecret( const std::string& oAuthTokenSecret /* in */ ); + + void getOAuthScreenName( std::string& oAuthScreenName /* out */ ); + void setOAuthScreenName( const std::string& oAuthScreenName /* in */ ); + + void getOAuthPin( std::string& oAuthPin /* out */ ); + void setOAuthPin( const std::string& oAuthPin /* in */ ); + + bool getOAuthHeader( const eOAuthHttpRequestType eType, /* in */ + const std::string& rawUrl, /* in */ + const std::string& rawData, /* in */ + std::string& oAuthHttpHeader, /* out */ + const bool includeOAuthVerifierPin = false /* in */ ); + + bool extractOAuthTokenKeySecret( const std::string& requestTokenResponse /* in */ ); + + oAuth clone(); + +private: + + /* OAuth data */ + std::string m_consumerKey; + std::string m_consumerSecret; + std::string m_oAuthTokenKey; + std::string m_oAuthTokenSecret; + std::string m_oAuthPin; + std::string m_nonce; + std::string m_timeStamp; + std::string m_oAuthScreenName; + + /* OAuth twitter related utility methods */ + void buildOAuthRawDataKeyValPairs( const std::string& rawData, /* in */ + bool urlencodeData, /* in */ + oAuthKeyValuePairs& rawDataKeyValuePairs /* out */ ); + + bool buildOAuthTokenKeyValuePairs( const bool includeOAuthVerifierPin, /* in */ + const std::string& oauthSignature, /* in */ + oAuthKeyValuePairs& keyValueMap /* out */, + const bool generateTimestamp /* in */ ); + + bool getStringFromOAuthKeyValuePairs( const oAuthKeyValuePairs& rawParamMap, /* in */ + std::string& rawParams, /* out */ + const std::string& paramsSeperator /* in */ ); + + bool getSignature( const eOAuthHttpRequestType eType, /* in */ + const std::string& rawUrl, /* in */ + const oAuthKeyValuePairs& rawKeyValuePairs, /* in */ + std::string& oAuthSignature /* out */ ); + + void generateNonceTimeStamp(); +}; + +#endif // __OAUTHLIB_H__ diff --git a/backends/twitter/libtwitcurl/twitcurl.cpp b/backends/twitter/libtwitcurl/twitcurl.cpp index 9ad529a7..2af67103 100644 --- a/backends/twitter/libtwitcurl/twitcurl.cpp +++ b/backends/twitter/libtwitcurl/twitcurl.cpp @@ -1,2291 +1,2291 @@ -#define NOMINMAX -#include -#include "twitcurlurls.h" -#include "twitcurl.h" -#include "urlencode.h" - -/*++ -* @method: twitCurl::twitCurl -* -* @description: constructor -* -* @input: none -* -* @output: none -* -*--*/ -twitCurl::twitCurl(): -m_curlHandle( NULL ), -m_curlProxyParamsSet( false ), -m_curlLoginParamsSet( false ), -m_curlCallbackParamsSet( false ), -m_eApiFormatType( twitCurlTypes::eTwitCurlApiFormatJson ), -m_eProtocolType( twitCurlTypes::eTwitCurlProtocolHttps ) -{ - /* Alloc memory for cURL error responses */ - m_errorBuffer = (char*)malloc( twitCurlDefaults::TWITCURL_DEFAULT_BUFFSIZE ); - - /* Clear callback buffers */ - clearCurlCallbackBuffers(); - - /* Initialize cURL */ - m_curlHandle = curl_easy_init(); - if( NULL == m_curlHandle ) - { - std::string dummyStr; - getLastCurlError( dummyStr ); - } - curl_easy_setopt(m_curlHandle, CURLOPT_SSL_VERIFYPEER, 0); -} - -/*++ -* @method: twitCurl::~twitCurl -* -* @description: destructor -* -* @input: none -* -* @output: none -* -*--*/ -twitCurl::~twitCurl() -{ - /* Cleanup cURL */ - if( m_curlHandle ) - { - curl_easy_cleanup( m_curlHandle ); - m_curlHandle = NULL; - } - if( m_errorBuffer ) - { - free( m_errorBuffer ); - m_errorBuffer = NULL; - } -} - -/*++ -* @method: twitCurl::clone -* -* @description: creates a clone of twitcurl object -* -* @input: none -* -* @output: cloned object -* -*--*/ -twitCurl* twitCurl::clone() -{ - twitCurl *cloneObj = new twitCurl(); - - /* cURL proxy data */ - cloneObj->setProxyServerIp(m_proxyServerIp); - cloneObj->setProxyServerPort(m_proxyServerPort); - cloneObj->setProxyUserName(m_proxyUserName); - cloneObj->setProxyPassword(m_proxyPassword); - - /* Twitter data */ - cloneObj->setTwitterUsername(m_twitterUsername); - cloneObj->setTwitterPassword(m_twitterPassword); - - /* OAuth data */ - cloneObj->m_oAuth = m_oAuth.clone(); - - return cloneObj; -} - -/*++ -* @method: twitCurl::isCurlInit -* -* @description: method to check if cURL is initialized properly -* -* @input: none -* -* @output: true if cURL is intialized, otherwise false -* -*--*/ -bool twitCurl::isCurlInit() -{ - return ( NULL != m_curlHandle ) ? true : false; -} - -/*++ -* @method: twitCurl::getTwitterUsername -* -* @description: method to get stored Twitter username -* -* @input: none -* -* @output: twitter username -* -*--*/ -std::string& twitCurl::getTwitterUsername() -{ - return m_twitterUsername; -} - -/*++ -* @method: twitCurl::getTwitterPassword -* -* @description: method to get stored Twitter password -* -* @input: none -* -* @output: twitter password -* -*--*/ -std::string& twitCurl::getTwitterPassword() -{ - return m_twitterPassword; -} - -/*++ -* @method: twitCurl::setTwitterUsername -* -* @description: method to set username -* -* @input: userName -* -* @output: none -* -*--*/ -void twitCurl::setTwitterUsername( std::string& userName ) -{ - if( userName.length() ) - { - m_twitterUsername = userName; - m_curlLoginParamsSet = false; - } -} - -/*++ -* @method: twitCurl::setTwitterPassword -* -* @description: method to set password -* -* @input: passWord -* -* @output: none -* -*--*/ -void twitCurl::setTwitterPassword( std::string& passWord ) -{ - if( passWord.length() ) - { - m_twitterPassword = passWord; - m_curlLoginParamsSet = false; - } -} - -/*++ -* @method: twitCurl::getProxyServerIp -* -* @description: method to get proxy server IP address -* -* @input: none -* -* @output: proxy server IP address -* -*--*/ -std::string& twitCurl::getProxyServerIp() -{ - return m_proxyServerIp; -} - -/*++ -* @method: twitCurl::getProxyServerPort -* -* @description: method to get proxy server port -* -* @input: none -* -* @output: proxy server port -* -*--*/ -std::string& twitCurl::getProxyServerPort() -{ - return m_proxyServerPort; -} - -/*++ -* @method: twitCurl::getProxyUserName -* -* @description: method to get proxy user name -* -* @input: none -* -* @output: proxy server user name -* -*--*/ -std::string& twitCurl::getProxyUserName() -{ - return m_proxyUserName; -} - -/*++ -* @method: twitCurl::getProxyPassword -* -* @description: method to get proxy server password -* -* @input: none -* -* @output: proxy server password -* -*--*/ -std::string& twitCurl::getProxyPassword() -{ - return m_proxyPassword; -} - -/*++ -* @method: twitCurl::setProxyServerIp -* -* @description: method to set proxy server IP address -* -* @input: proxyServerIp -* -* @output: none -* -*--*/ -void twitCurl::setProxyServerIp( std::string& proxyServerIp ) -{ - if( proxyServerIp.length() ) - { - m_proxyServerIp = proxyServerIp; - /* - * Reset the flag so that next cURL http request - * would set proxy details again into cURL. - */ - m_curlProxyParamsSet = false; - } -} - -/*++ -* @method: twitCurl::setProxyServerPort -* -* @description: method to set proxy server port -* -* @input: proxyServerPort -* -* @output: none -* -*--*/ -void twitCurl::setProxyServerPort( std::string& proxyServerPort ) -{ - if( proxyServerPort.length() ) - { - m_proxyServerPort = proxyServerPort; - /* - * Reset the flag so that next cURL http request - * would set proxy details again into cURL. - */ - m_curlProxyParamsSet = false; - } -} - -/*++ -* @method: twitCurl::setProxyUserName -* -* @description: method to set proxy server username -* -* @input: proxyUserName -* -* @output: none -* -*--*/ -void twitCurl::setProxyUserName( std::string& proxyUserName ) -{ - if( proxyUserName.length() ) - { - m_proxyUserName = proxyUserName; - /* - * Reset the flag so that next cURL http request - * would set proxy details again into cURL. - */ - m_curlProxyParamsSet = false; - } -} - -/*++ -* @method: twitCurl::setProxyPassword -* -* @description: method to set proxy server password -* -* @input: proxyPassword -* -* @output: none -* -*--*/ -void twitCurl::setProxyPassword( std::string& proxyPassword ) -{ - if( proxyPassword.length() ) - { - m_proxyPassword = proxyPassword; - /* - * Reset the flag so that next cURL http request - * would set proxy details again into cURL. - */ - m_curlProxyParamsSet = false; - } -} - -/*++ -* @method: twitCurl::search -* -* @description: method to return tweets that match a specified query. -* -* @input: searchQuery - search query in string format -* resultCount - optional search result count -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -* @note: Only ATOM and JSON format supported. -* -*--*/ -bool twitCurl::search( std::string& searchQuery, std::string resultCount ) -{ - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_SEARCH_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] + - twitCurlDefaults::TWITCURL_URL_SEP_QUES + twitCurlDefaults::TWITCURL_SEARCHQUERYSTRING + - searchQuery; - - /* Add number of results count if provided */ - if( resultCount.size() ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_AMP + - twitCurlDefaults::TWITCURL_COUNT + urlencode( resultCount ); - } - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::statusUpdate -* -* @description: method to update new status message in twitter profile -* -* @input: newStatus - status message text -* inReplyToStatusId - optional status id to we're replying to -* -* @output: true if POST is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::statusUpdate( std::string& newStatus, std::string inReplyToStatusId ) -{ - if( newStatus.empty() ) - { - return false; - } - - /* Prepare new status message */ - std::string newStatusMsg = twitCurlDefaults::TWITCURL_STATUSSTRING + urlencode( newStatus ); - - /* Append status id to which we're replying to */ - if( inReplyToStatusId.size() ) - { - newStatusMsg += twitCurlDefaults::TWITCURL_URL_SEP_AMP + - twitCurlDefaults::TWITCURL_INREPLYTOSTATUSID + - urlencode( inReplyToStatusId ); - } - - /* Perform POST */ - return performPost( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_STATUSUPDATE_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], - newStatusMsg ); -} - -/*++ -* @method: twitCurl::statusShowById -* -* @description: method to get a status message by its id -* -* @input: statusId - a number in std::string format -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::statusShowById( std::string& statusId ) -{ - if( statusId.empty() ) - { - return false; - } - - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_STATUSSHOW_URL + statusId + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::statusDestroyById -* -* @description: method to delete a status message by its id -* -* @input: statusId - a number in std::string format -* -* @output: true if DELETE is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::statusDestroyById( std::string& statusId ) -{ - if( statusId.empty() ) - { - return false; - } - - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_STATUDESTROY_URL + statusId + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Perform DELETE */ - return performDelete( buildUrl ); -} - -/*++ -* @method: twitCurl::retweetById -* -* @description: method to RETWEET a status message by its id -* -* @input: statusId - a number in std::string format -* -* @output: true if RETWEET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::retweetById( std::string& statusId ) -{ - if( statusId.empty() ) - { - return false; - } - - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_RETWEET_URL + statusId + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Send some dummy data in POST */ - std::string dummyData = twitCurlDefaults::TWITCURL_TEXTSTRING + - urlencode( std::string( "dummy" ) ); - - /* Perform Retweet */ - return performPost( buildUrl, dummyData ); -} - -/*++ -* @method: twitCurl::timelineHomeGet -* -* @description: method to get home timeline -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::timelineHomeGet( std::string sinceId ) -{ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_HOME_TIMELINE_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - if( sinceId.length() ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES + twitCurlDefaults::TWITCURL_SINCEID + sinceId; - } - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::timelinePublicGet -* -* @description: method to get public timeline -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::timelinePublicGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_PUBLIC_TIMELINE_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::featuredUsersGet -* -* @description: method to get featured users -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::featuredUsersGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_FEATURED_USERS_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::timelineFriendsGet -* -* @description: method to get friends timeline -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::timelineFriendsGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_FRIENDS_TIMELINE_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::mentionsGet -* -* @description: method to get mentions -* -* @input: sinceId - String specifying since id parameter -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::mentionsGet( std::string sinceId ) -{ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_MENTIONS_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - if( sinceId.length() ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES + twitCurlDefaults::TWITCURL_SINCEID + sinceId; - } - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::timelineUserGet -* -* @description: method to get mentions -* -* @input: trimUser - Trim user name if true -* tweetCount - Number of tweets to get. Max 200. -* userInfo - screen name or user id in string format, -* isUserId - true if userInfo contains an id -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::timelineUserGet( bool trimUser, bool includeRetweets, unsigned int tweetCount, - std::string userInfo, bool isUserId ) -{ - /* Prepare URL */ - std::string buildUrl; - - utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_USERTIMELINE_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], - userInfo, isUserId ); - - if( userInfo.empty() ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES; - } - - if( tweetCount ) - { - if( tweetCount > twitCurlDefaults::MAX_TIMELINE_TWEET_COUNT ) - { - tweetCount = twitCurlDefaults::MAX_TIMELINE_TWEET_COUNT; - } - std::stringstream tmpStrm; - tmpStrm << twitCurlDefaults::TWITCURL_URL_SEP_AMP + twitCurlDefaults::TWITCURL_COUNT << tweetCount; - buildUrl += tmpStrm.str(); - tmpStrm.str().clear(); - } - - if( includeRetweets ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_AMP + twitCurlDefaults::TWITCURL_INCRETWEETS; - } - - if( trimUser ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_AMP + twitCurlDefaults::TWITCURL_TRIMUSER; - } - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::userLookup -* -* @description: method to get a number of user's profiles -* -* @input: userInfo - vector of screen names or user ids -* isUserId - true if userInfo contains an id -* -* @output: true if POST is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::userLookup( std::vector &userInfo, bool isUserId ) -{ - if( userInfo.empty() ) - { - return false; - } - - std::string userIds = ""; - std::string sep = ""; - for( unsigned int i = 0 ; i < std::min((size_t)100, userInfo.size()); i++, sep = "," ) - { - userIds += sep + userInfo[i]; - } - - userIds = ( isUserId ? twitCurlDefaults::TWITCURL_USERID : twitCurlDefaults::TWITCURL_SCREENNAME ) + - urlencode( userIds ); - - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_LOOKUPUSERS_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Perform POST */ - return performPost( buildUrl, userIds); -} - -/*++ -* @method: twitCurl::userGet -* -* @description: method to get a user's profile -* -* @input: userInfo - screen name or user id in string format, -* isUserId - true if userInfo contains an id -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::userGet( std::string& userInfo, bool isUserId ) -{ - if( userInfo.empty() ) - { - return false; - } - - /* Set URL */ - std::string buildUrl; - utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_SHOWUSERS_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], - userInfo, isUserId ); - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::friendsGet -* -* @description: method to get a user's friends -* -* @input: userInfo - screen name or user id in string format, -* isUserId - true if userInfo contains an id -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::friendsGet( std::string userInfo, bool isUserId ) -{ - /* Set URL */ - std::string buildUrl; - utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_SHOWFRIENDS_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], - userInfo, isUserId ); - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::followersGet -* -* @description: method to get a user's followers -* -* @input: userInfo - screen name or user id in string format, -* isUserId - true if userInfo contains an id -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::followersGet( std::string userInfo, bool isUserId ) -{ - /* Prepare URL */ - std::string buildUrl; - utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_SHOWFOLLOWERS_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], - userInfo, isUserId ); - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::directMessageGet -* -* @description: method to get direct messages -* -* @input: since id -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::directMessageGet( std::string sinceId ) -{ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_DIRECTMESSAGES_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - if( sinceId.length() ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES + twitCurlDefaults::TWITCURL_SINCEID + sinceId; - } - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::directMessageSend -* -* @description: method to send direct message to a user -* -* @input: userInfo - screen name or user id of a user to whom message needs to be sent, -* dMsg - message -* isUserId - true if userInfo contains target user's id -* -* @output: true if POST is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::directMessageSend( std::string& userInfo, std::string& dMsg, bool isUserId ) -{ - if( userInfo.empty() || dMsg.empty() ) - { - return false; - } - - /* Prepare new direct message */ - std::string newDm = twitCurlDefaults::TWITCURL_TEXTSTRING + urlencode( dMsg ); - - /* Prepare URL */ - std::string buildUrl; - utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_DIRECTMESSAGENEW_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], - userInfo, isUserId ); - - /* Perform POST */ - return performPost( buildUrl, newDm ); -} - -/*++ -* @method: twitCurl::directMessageGetSent -* -* @description: method to get sent direct messages -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::directMessageGetSent() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_DIRECTMESSAGESSENT_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::directMessageDestroyById -* -* @description: method to delete direct messages by its id -* -* @input: dMsgId - id of direct message in string format -* -* @output: true if DELETE is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::directMessageDestroyById( std::string& dMsgId ) -{ - if( dMsgId.empty() ) - { - return false; - } - - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_DIRECTMESSAGEDESTROY_URL + dMsgId + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Perform DELETE */ - return performDelete( buildUrl ); -} - -/*++ -* @method: twitCurl::friendshipCreate -* -* @description: method to add a twitter user as friend (follow a user) -* -* @input: userInfo - user id or screen name of a user -* isUserId - true if userInfo contains a user id instead of screen name -* -* @output: true if POST is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::friendshipCreate( std::string& userInfo, bool isUserId ) -{ - if( userInfo.empty() ) - { - return false; - } - - /* Prepare URL */ - std::string buildUrl; - utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_FRIENDSHIPSCREATE_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], - userInfo, isUserId ); - - /* Send some dummy data in POST */ - std::string dummyData = twitCurlDefaults::TWITCURL_TEXTSTRING + - urlencode( std::string( "dummy" ) ); - - /* Perform POST */ - return performPost( buildUrl, dummyData ); -} - -/*++ -* @method: twitCurl::friendshipDestroy -* -* @description: method to delete a twitter user from friend list (unfollow a user) -* -* @input: userInfo - user id or screen name of a user -* isUserId - true if userInfo contains a user id instead of screen name -* -* @output: true if DELETE is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::friendshipDestroy( std::string& userInfo, bool isUserId ) -{ - if( userInfo.empty() ) - { - return false; - } - - /* Prepare URL */ - std::string buildUrl; - utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_FRIENDSHIPSDESTROY_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], - userInfo, isUserId ); - - /* Perform DELETE */ - return performDelete( buildUrl ); -} - -/*++ -* @method: twitCurl::friendshipShow -* -* @description: method to show all friends -* -* @input: userInfo - user id or screen name of a user of whom friends need to be shown -* isUserId - true if userInfo contains a user id instead of screen name -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::friendshipShow( std::string& userInfo, bool isUserId ) -{ - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_FRIENDSHIPSSHOW_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - if( userInfo.length() ) - { - /* Append username to the URL */ - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES; - if( isUserId ) - { - buildUrl += twitCurlDefaults::TWITCURL_TARGETUSERID; - } - else - { - buildUrl += twitCurlDefaults::TWITCURL_TARGETSCREENNAME; - } - buildUrl += userInfo; - } - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::friendsIdsGet -* -* @description: method to show IDs of all friends of a twitter user -* -* @input: userInfo - user id or screen name of a user -* isUserId - true if userInfo contains a user id instead of screen name -* nextCursor - next cursor string returned from a previous call -* to this API, otherwise an empty string -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::friendsIdsGet( std::string& nextCursor, std::string& userInfo, bool isUserId ) -{ - /* Prepare URL */ - std::string buildUrl; - utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_FRIENDSIDS_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], - userInfo, isUserId ); - - if( buildUrl.length() && nextCursor.length() ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_AMP + - twitCurlDefaults::TWITCURL_NEXT_CURSOR + - nextCursor; - } - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::followersIdsGet -* -* @description: method to show IDs of all followers of a twitter user -* -* @input: userInfo - user id or screen name of a user -* isUserId - true if userInfo contains a user id instead of screen name -* nextCursor - next cursor string returned from a previous call -* to this API, otherwise an empty string -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::followersIdsGet( std::string& nextCursor, std::string& userInfo, bool isUserId ) -{ - /* Prepare URL */ - std::string buildUrl; - utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_FOLLOWERSIDS_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], - userInfo, isUserId ); - - if( buildUrl.length() && nextCursor.length() ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_AMP + - twitCurlDefaults::TWITCURL_NEXT_CURSOR + - nextCursor; - } - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::accountRateLimitGet -* -* @description: method to get API rate limit of current user -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::accountRateLimitGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_ACCOUNTRATELIMIT_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::accountVerifyCredGet -* -* @description: method to get information on user identified by given credentials -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::accountVerifyCredGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_ACCOUNTVERIFYCRED_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::favoriteGet -* -* @description: method to get favorite users' statuses -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::favoriteGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_FAVORITESGET_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::favoriteCreate -* -* @description: method to favorite a status message -* -* @input: statusId - id in string format of the status to be favorited -* -* @output: true if POST is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::favoriteCreate( std::string& statusId ) -{ - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_FAVORITECREATE_URL + statusId + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Send some dummy data in POST */ - std::string dummyData = twitCurlDefaults::TWITCURL_TEXTSTRING + - urlencode( std::string( "dummy" ) ); - - /* Perform POST */ - return performPost( buildUrl, dummyData ); -} - -/*++ -* @method: twitCurl::favoriteDestroy -* -* @description: method to delete a favorited the status -* -* @input: statusId - id in string format of the favorite status to be deleted -* -* @output: true if DELETE is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::favoriteDestroy( std::string& statusId ) -{ - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_FAVORITEDESTROY_URL + statusId + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Perform DELETE */ - return performDelete( buildUrl ); -} - -/*++ -* @method: twitCurl::blockCreate -* -* @description: method to block a user -* -* @input: userInfo - user id or screen name who needs to be blocked -* -* @output: true if POST is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::blockCreate( std::string& userInfo ) -{ - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_BLOCKSCREATE_URL + userInfo + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Send some dummy data in POST */ - std::string dummyData = twitCurlDefaults::TWITCURL_TEXTSTRING + - urlencode( std::string( "dummy" ) ); - - /* Perform POST */ - return performPost( buildUrl, dummyData ); -} - -/*++ -* @method: twitCurl::blockDestroy -* -* @description: method to unblock a user -* -* @input: userInfo - user id or screen name who need to unblocked -* -* @output: true if DELETE is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::blockDestroy( std::string& userInfo ) -{ - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_BLOCKSDESTROY_URL + userInfo + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Perform DELETE */ - return performDelete( buildUrl ); -} - -/*++ -* @method: twitCurl::blockListGet -* -* @description: method to get list of users blocked by authenticated user -* -* @input: includeEntities - indicates whether or not to include 'entities' node -* skipStatus - indicates whether or not to include status for returned users -* nextCursor - next cursor string returned from a previous call -* to this API, otherwise an empty string -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::blockListGet( std::string& nextCursor, bool includeEntities, bool skipStatus ) -{ - /* Prepare URL */ - std::string buildUrl, urlParams; - - buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_BLOCKSLIST_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - if( includeEntities ) - { - urlParams += twitCurlDefaults::TWITCURL_INCLUDE_ENTITIES + std::string("true"); - } - if( skipStatus ) - { - if( urlParams.length() ) - { - urlParams += twitCurlDefaults::TWITCURL_URL_SEP_AMP; - } - urlParams += twitCurlDefaults::TWITCURL_SKIP_STATUS + std::string("true"); - } - if( nextCursor.length() ) - { - if( urlParams.length() ) - { - urlParams += twitCurlDefaults::TWITCURL_URL_SEP_AMP; - } - urlParams += twitCurlDefaults::TWITCURL_NEXT_CURSOR + nextCursor; - } - if( urlParams.length() ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES + urlParams; - } - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::blockIdsGet -* -* @description: method to get list of IDs blocked by authenticated user -* -* @input: stringifyIds - indicates whether or not returned ids should -* be in string format -* nextCursor - next cursor string returned from a previous call -* to this API, otherwise an empty string -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::blockIdsGet( std::string& nextCursor, bool stringifyIds ) -{ - /* Prepare URL */ - std::string buildUrl, urlParams; - - buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_BLOCKSIDS_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - if( stringifyIds ) - { - urlParams += twitCurlDefaults::TWITCURL_STRINGIFY_IDS + std::string("true"); - } - if( nextCursor.length() ) - { - if( urlParams.length() ) - { - urlParams += twitCurlDefaults::TWITCURL_URL_SEP_AMP; - } - urlParams += twitCurlDefaults::TWITCURL_NEXT_CURSOR + nextCursor; - } - if( urlParams.length() ) - { - buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES + urlParams; - } - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::savedSearchGet -* -* @description: gets authenticated user's saved search queries. -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::savedSearchGet( ) -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_SAVEDSEARCHGET_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::savedSearchShow -* -* @description: method to retrieve the data for a saved search owned by the authenticating user -* specified by the given id. -* -* @input: searchId - id in string format of the search to be displayed -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::savedSearchShow( std::string& searchId ) -{ - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_SAVEDSEARCHSHOW_URL + searchId + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Perform GET */ - return performGet( buildUrl ); -} - -/*++ -* @method: twitCurl::savedSearchCreate -* -* @description: creates a saved search for the authenticated user -* -* @input: query - the query of the search the user would like to save -* -* @output: true if POST is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::savedSearchCreate( std::string& query ) -{ - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_SAVEDSEARCHCREATE_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Send some dummy data in POST */ - std::string queryStr = twitCurlDefaults::TWITCURL_QUERYSTRING + urlencode( query ); - - /* Perform POST */ - return performPost( buildUrl, queryStr ); -} - - -/*++ -* @method: twitCurl::savedSearchDestroy -* -* @description: method to destroy a saved search for the authenticated user. The search specified -* by id must be owned by the authenticating user. -* -* @input: searchId - search id of item to be deleted -* -* @output: true if DELETE is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::savedSearchDestroy( std::string& searchId ) -{ - /* Prepare URL */ - std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_SAVEDSEARCHDESTROY_URL + searchId + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; - - /* Perform DELETE */ - return performDelete( buildUrl ); -} - - -/*++ -* @method: twitCurl::trendsGet() -* -* @description: gets trends. -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::trendsGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_TRENDS_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - - -/*++ -* @method: twitCurl::trendsDailyGet() -* -* @description: gets daily trends. -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::trendsDailyGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_TRENDSDAILY_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::trendsWeeklyGet() -* -* @description: gets weekly trends. -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::trendsWeeklyGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_TRENDSWEEKLY_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::trendsCurrentGet() -* -* @description: gets current trends. -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::trendsCurrentGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_TRENDSCURRENT_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::trendsAvailableGet() -* -* @description: gets available trends. -* -* @input: none -* -* @output: true if GET is success, otherwise false. This does not check http -* response by twitter. Use getLastWebResponse() for that. -* -*--*/ -bool twitCurl::trendsAvailableGet() -{ - /* Perform GET */ - return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - twitterDefaults::TWITCURL_TRENDSAVAILABLE_URL + - twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); -} - -/*++ -* @method: twitCurl::getLastWebResponse -* -* @description: method to get http response for the most recent request sent. -* twitcurl users need to call this method and parse the XML -* data returned by twitter to see what has happened. -* -* @input: outWebResp - string in which twitter's response is supplied back to caller -* -* @output: none -* -*--*/ -void twitCurl::getLastWebResponse( std::string& outWebResp ) -{ - outWebResp = ""; - if( m_callbackData.length() ) - { - outWebResp = m_callbackData; - } -} - -/*++ -* @method: twitCurl::getLastCurlError -* -* @description: method to get cURL error response for most recent http request. -* twitcurl users can call this method if any of the APIs return -* false. -* -* @input: none -* -* @output: none -* -*--*/ -void twitCurl::getLastCurlError( std::string& outErrResp ) -{ - m_errorBuffer[twitCurlDefaults::TWITCURL_DEFAULT_BUFFSIZE-1] = twitCurlDefaults::TWITCURL_EOS; - outErrResp.assign( m_errorBuffer ); -} - -/*++ -* @method: twitCurl::curlCallback -* -* @description: static method to get http response back from cURL. -* this is an internal method, users of twitcurl need not -* use this. -* -* @input: as per cURL convention. -* -* @output: size of data stored in our buffer -* -* @remarks: internal method -* -*--*/ -int twitCurl::curlCallback( char* data, size_t size, size_t nmemb, twitCurl* pTwitCurlObj ) -{ - if( pTwitCurlObj && data ) - { - /* Save http response in twitcurl object's buffer */ - return pTwitCurlObj->saveLastWebResponse( data, ( size*nmemb ) ); - } - return 0; -} - -/*++ -* @method: twitCurl::saveLastWebResponse -* -* @description: method to save http responses. this is an internal method -* and twitcurl users need not use this. -* -* @input: data - character buffer from cURL, -* size - size of character buffer -* -* @output: size of data stored in our buffer -* -* @remarks: internal method -* -*--*/ -int twitCurl::saveLastWebResponse( char*& data, size_t size ) -{ - if( data && size ) - { - /* Append data in our internal buffer */ - m_callbackData.append( data, size ); - return (int)size; - } - return 0; -} - -/*++ -* @method: twitCurl::clearCurlCallbackBuffers -* -* @description: method to clear callback buffers used by cURL. this is an -* internal method and twitcurl users need not use this. -* -* @input: none -* -* @output: none -* -* @remarks: internal method -* -*--*/ -void twitCurl::clearCurlCallbackBuffers() -{ - m_callbackData = ""; - memset( m_errorBuffer, 0, twitCurlDefaults::TWITCURL_DEFAULT_BUFFSIZE ); -} - -/*++ -* @method: twitCurl::prepareCurlProxy -* -* @description: method to set proxy details into cURL. this is an internal method. -* twitcurl users should not use this method, instead use setProxyXxx -* methods to set proxy server information. -* -* @input: none -* -* @output: none -* -* @remarks: internal method -* -*--*/ -void twitCurl::prepareCurlProxy() -{ - if( m_curlProxyParamsSet ) - { - return; - } - - /* Reset existing proxy details in cURL */ - curl_easy_setopt( m_curlHandle, CURLOPT_PROXY, NULL ); - curl_easy_setopt( m_curlHandle, CURLOPT_PROXYUSERPWD, NULL ); - curl_easy_setopt( m_curlHandle, CURLOPT_PROXYAUTH, (long)CURLAUTH_ANY ); - - /* Set proxy details in cURL */ - std::string proxyIpPort(""); - if( getProxyServerIp().size() ) - { - utilMakeCurlParams( proxyIpPort, getProxyServerIp(), getProxyServerPort() ); - } - curl_easy_setopt( m_curlHandle, CURLOPT_PROXY, proxyIpPort.c_str() ); - - /* Prepare username and password for proxy server */ - if( m_proxyUserName.length() && m_proxyPassword.length() ) - { - std::string proxyUserPass; - utilMakeCurlParams( proxyUserPass, getProxyUserName(), getProxyPassword() ); - curl_easy_setopt( m_curlHandle, CURLOPT_PROXYUSERPWD, proxyUserPass.c_str() ); - } - - /* Set the flag to true indicating that proxy info is set in cURL */ - m_curlProxyParamsSet = true; -} - -/*++ -* @method: twitCurl::prepareCurlCallback -* -* @description: method to set callback details into cURL. this is an internal method. -* twitcurl users should not use this method. -* -* @input: none -* -* @output: none -* -* @remarks: internal method -* -*--*/ -void twitCurl::prepareCurlCallback() -{ - if( m_curlCallbackParamsSet ) - { - return; - } - - /* Set buffer to get error */ - curl_easy_setopt( m_curlHandle, CURLOPT_ERRORBUFFER, m_errorBuffer ); - - /* Set callback function to get response */ - curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, curlCallback ); - curl_easy_setopt( m_curlHandle, CURLOPT_WRITEDATA, this ); - - /* Set the flag to true indicating that callback info is set in cURL */ - m_curlCallbackParamsSet = true; -} - -/*++ -* @method: twitCurl::prepareCurlUserPass -* -* @description: method to set twitter credentials into cURL. this is an internal method. -* twitcurl users should not use this method, instead use setTwitterXxx -* methods to set twitter username and password. -* -* @input: none -* -* @output: none -* -* @remarks: internal method -* -*--*/ -void twitCurl::prepareCurlUserPass() -{ - if( m_curlLoginParamsSet ) - { - return; - } - - /* Reset existing username and password stored in cURL */ - curl_easy_setopt( m_curlHandle, CURLOPT_USERPWD, "" ); - - if( getTwitterUsername().size() ) - { - /* Prepare username:password */ - std::string userNamePassword; - utilMakeCurlParams( userNamePassword, getTwitterUsername(), getTwitterPassword() ); - - /* Set username and password */ - curl_easy_setopt( m_curlHandle, CURLOPT_USERPWD, userNamePassword.c_str() ); - } - - /* Set the flag to true indicating that twitter credentials are set in cURL */ - m_curlLoginParamsSet = true; -} - -/*++ -* @method: twitCurl::prepareStandardParams -* -* @description: method to set standard params into cURL. this is an internal method. -* twitcurl users should not use this method. -* -* @input: none -* -* @output: none -* -* @remarks: internal method -* -*--*/ -void twitCurl::prepareStandardParams() -{ - /* Restore any custom request we may have */ - curl_easy_setopt( m_curlHandle, CURLOPT_CUSTOMREQUEST, NULL ); - - /* All supported encodings */ - curl_easy_setopt( m_curlHandle, CURLOPT_ENCODING, "" ); - - /* Clear callback and error buffers */ - clearCurlCallbackBuffers(); - - /* Prepare proxy */ - prepareCurlProxy(); - - /* Prepare cURL callback data and error buffer */ - prepareCurlCallback(); - - /* Prepare username and password for twitter */ - prepareCurlUserPass(); -} - -/*++ -* @method: twitCurl::performGet -* -* @description: method to send http GET request. this is an internal method. -* twitcurl users should not use this method. -* -* @input: getUrl - url -* -* @output: none -* -* @remarks: internal method -* -*--*/ -bool twitCurl::performGet( const std::string& getUrl ) -{ - /* Return if cURL is not initialized */ - if( !isCurlInit() ) - { - return false; - } - - std::string dataStrDummy; - std::string oAuthHttpHeader; - struct curl_slist* pOAuthHeaderList = NULL; - - /* Prepare standard params */ - prepareStandardParams(); - - /* Set OAuth header */ - m_oAuth.getOAuthHeader( eOAuthHttpGet, getUrl, dataStrDummy, oAuthHttpHeader ); - if( oAuthHttpHeader.length() ) - { - pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); - if( pOAuthHeaderList ) - { - curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); - } - } - - /* Set http request and url */ - curl_easy_setopt( m_curlHandle, CURLOPT_HTTPGET, 1 ); - curl_easy_setopt( m_curlHandle, CURLOPT_URL, getUrl.c_str() ); - - /* Send http request */ - if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) - { - if( pOAuthHeaderList ) - { - curl_slist_free_all( pOAuthHeaderList ); - } - return true; - } - if( pOAuthHeaderList ) - { - curl_slist_free_all( pOAuthHeaderList ); - } - return false; -} - -/*++ -* @method: twitCurl::performGetInternal -* -* @description: method to send http GET request. this is an internal method. -* twitcurl users should not use this method. -* -* @input: const std::string& getUrl, const std::string& oAuthHttpHeader -* -* @output: none -* -* @remarks: internal method -* -*--*/ -bool twitCurl::performGetInternal( const std::string& getUrl, - const std::string& oAuthHttpHeader ) -{ - /* Return if cURL is not initialized */ - if( !isCurlInit() ) - { - return false; - } - - struct curl_slist* pOAuthHeaderList = NULL; - - /* Prepare standard params */ - prepareStandardParams(); - - /* Set http request and url */ - curl_easy_setopt( m_curlHandle, CURLOPT_HTTPGET, 1 ); - curl_easy_setopt( m_curlHandle, CURLOPT_URL, getUrl.c_str() ); - - /* Set header */ - if( oAuthHttpHeader.length() ) - { - pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); - if( pOAuthHeaderList ) - { - curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); - } - } - - /* Send http request */ - if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) - { - if( pOAuthHeaderList ) - { - curl_slist_free_all( pOAuthHeaderList ); - } - return true; - } - if( pOAuthHeaderList ) - { - curl_slist_free_all( pOAuthHeaderList ); - } - return false; -} - -/*++ -* @method: twitCurl::performDelete -* -* @description: method to send http DELETE request. this is an internal method. -* twitcurl users should not use this method. -* -* @input: deleteUrl - url -* -* @output: none -* -* @remarks: internal method -* -*--*/ -bool twitCurl::performDelete( const std::string& deleteUrl ) -{ - /* Return if cURL is not initialized */ - if( !isCurlInit() ) - { - return false; - } - - std::string dataStrDummy; - std::string oAuthHttpHeader; - struct curl_slist* pOAuthHeaderList = NULL; - - /* Prepare standard params */ - prepareStandardParams(); - - /* Set OAuth header */ - m_oAuth.getOAuthHeader( eOAuthHttpDelete, deleteUrl, dataStrDummy, oAuthHttpHeader ); - if( oAuthHttpHeader.length() ) - { - pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); - if( pOAuthHeaderList ) - { - curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); - } - } - - /* Set http request and url */ - curl_easy_setopt( m_curlHandle, CURLOPT_CUSTOMREQUEST, "DELETE" ); - curl_easy_setopt( m_curlHandle, CURLOPT_URL, deleteUrl.c_str() ); - curl_easy_setopt( m_curlHandle, CURLOPT_COPYPOSTFIELDS, dataStrDummy.c_str() ); - - /* Send http request */ - if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) - { - if( pOAuthHeaderList ) - { - curl_slist_free_all( pOAuthHeaderList ); - } - return true; - } - if( pOAuthHeaderList ) - { - curl_slist_free_all( pOAuthHeaderList ); - } - return false; -} - -/*++ -* @method: twitCurl::performPost -* -* @description: method to send http POST request. this is an internal method. -* twitcurl users should not use this method. -* -* @input: postUrl - url, -* dataStr - url encoded data to be posted -* -* @output: none -* -* @remarks: internal method -* data value in dataStr must already be url encoded. -* ex: dataStr = "key=urlencode(value)" -* -*--*/ -bool twitCurl::performPost( const std::string& postUrl, std::string dataStr ) -{ - /* Return if cURL is not initialized */ - if( !isCurlInit() ) - { - return false; - } - - std::string oAuthHttpHeader; - struct curl_slist* pOAuthHeaderList = NULL; - - /* Prepare standard params */ - prepareStandardParams(); - - /* Set OAuth header */ - m_oAuth.getOAuthHeader( eOAuthHttpPost, postUrl, dataStr, oAuthHttpHeader ); - if( oAuthHttpHeader.length() ) - { - pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); - if( pOAuthHeaderList ) - { - curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); - } - } - - /* Set http request, url and data */ - curl_easy_setopt( m_curlHandle, CURLOPT_POST, 1 ); - curl_easy_setopt( m_curlHandle, CURLOPT_URL, postUrl.c_str() ); - if( dataStr.length() ) - { - curl_easy_setopt( m_curlHandle, CURLOPT_COPYPOSTFIELDS, dataStr.c_str() ); - } - - /* Send http request */ - if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) - { - if( pOAuthHeaderList ) - { - curl_slist_free_all( pOAuthHeaderList ); - } - return true; - } - if( pOAuthHeaderList ) - { - curl_slist_free_all( pOAuthHeaderList ); - } - return false; -} - -/*++ -* @method: utilMakeCurlParams -* -* @description: utility function to build parameter strings in the format -* required by cURL ("param1:param2"). twitcurl users should -* not use this function. -* -* @input: inParam1 - first parameter, -* inParam2 - second parameter -* -* @output: outStr - built parameter -* -* @remarks: internal method -* -*--*/ -void utilMakeCurlParams( std::string& outStr, std::string& inParam1, std::string& inParam2 ) -{ - outStr = inParam1; - outStr += twitCurlDefaults::TWITCURL_COLON + inParam2; -} - -/*++ -* @method: utilMakeUrlForUser -* -* @description: utility function to build url compatible to twitter. twitcurl -* users should not use this function. -* -* @input: baseUrl - base twitter url, -* userInfo - user name, -* isUserId - indicates if userInfo contains a user id or scree name -* -* @output: outUrl - built url -* -* @remarks: internal method -* -*--*/ -void utilMakeUrlForUser( std::string& outUrl, const std::string& baseUrl, std::string& userInfo, bool isUserId ) -{ - /* Copy base URL */ - outUrl = baseUrl; - - if( userInfo.length() ) - { - /* Append username to the URL */ - outUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES; - if( isUserId ) - { - outUrl += twitCurlDefaults::TWITCURL_USERID; - } - else - { - outUrl += twitCurlDefaults::TWITCURL_SCREENNAME; - } - outUrl += userInfo; - } -} - -/*++ -* @method: twitCurl::getOAuth -* -* @description: method to get a reference to oAuth object. -* -* @input: none -* -* @output: reference to oAuth object -* -*--*/ -oAuth& twitCurl::getOAuth() -{ - return m_oAuth; -} - -/*++ -* @method: twitCurl::oAuthRequestToken -* -* @description: method to get a request token key and secret. this token -* will be used to get authorize user and get PIN from twitter -* -* @input: authorizeUrl is an output parameter. this method will set the url -* in this string. user should visit this link and get PIN from that page. -* -* @output: true if everything went sucessfully, otherwise false -* -*--*/ -bool twitCurl::oAuthRequestToken( std::string& authorizeUrl /* out */ ) -{ - /* Return if cURL is not initialized */ - if( !isCurlInit() ) - { - return false; - } - - /* Get OAuth header for request token */ - std::string oAuthHeader; - authorizeUrl = ""; - if( m_oAuth.getOAuthHeader( eOAuthHttpGet, - twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - oAuthTwitterApiUrls::OAUTHLIB_TWITTER_REQUEST_TOKEN_URL, - std::string( "" ), - oAuthHeader ) ) - { - if( performGetInternal( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - oAuthTwitterApiUrls::OAUTHLIB_TWITTER_REQUEST_TOKEN_URL, - oAuthHeader ) ) - { - /* Tell OAuth object to save access token and secret from web response */ - std::string twitterResp; - getLastWebResponse( twitterResp ); - m_oAuth.extractOAuthTokenKeySecret( twitterResp ); - - /* Get access token and secret from OAuth object */ - std::string oAuthTokenKey; - m_oAuth.getOAuthTokenKey( oAuthTokenKey ); - - /* Build authorize url so that user can visit in browser and get PIN */ - authorizeUrl.assign(twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - oAuthTwitterApiUrls::OAUTHLIB_TWITTER_AUTHORIZE_URL ); - authorizeUrl.append( oAuthTokenKey.c_str() ); - - return true; - } - } - return false; -} - -/*++ -* @method: twitCurl::oAuthAccessToken -* -* @description: method to exchange request token with access token -* -* @input: none -* -* @output: true if everything went sucessfully, otherwise false -* -*--*/ -bool twitCurl::oAuthAccessToken() -{ - /* Return if cURL is not initialized */ - if( !isCurlInit() ) - { - return false; - } - /* Get OAuth header for access token */ - std::string oAuthHeader; - if( m_oAuth.getOAuthHeader( eOAuthHttpGet, - twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - oAuthTwitterApiUrls::OAUTHLIB_TWITTER_ACCESS_TOKEN_URL, - std::string( "" ), - oAuthHeader, true ) ) - { - if( performGetInternal( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + - oAuthTwitterApiUrls::OAUTHLIB_TWITTER_ACCESS_TOKEN_URL, - oAuthHeader ) ) - { - /* Tell OAuth object to save access token and secret from web response */ - std::string twitterResp; - getLastWebResponse( twitterResp ); - m_oAuth.extractOAuthTokenKeySecret( twitterResp ); - - return true; - } - } - return false; -} - -/*++ -* ADDED BY ANTIROOT -* -* @method: twitCurl::oAuthHandlePIN -* -* @description: method to handle user's PIN code from the authentiation URLs -* -* @input: none -* -* @output: true if everything went sucessfully, otherwise false -* -*--*/ -bool twitCurl::oAuthHandlePIN( const std::string& authorizeUrl /* in */ ) -{ - /* Return if cURL is not initialized */ - if( !isCurlInit() ) - { - return false; - } - - std::string dataStr; - std::string oAuthHttpHeader; - std::string authenticityTokenVal; - std::string oauthTokenVal; - std::string pinCodeVal; - unsigned long httpStatusCode = 0; - size_t nPosStart, nPosEnd; - struct curl_slist* pOAuthHeaderList = NULL; - - /* Prepare standard params */ - prepareStandardParams(); - - /* Set OAuth header */ - m_oAuth.getOAuthHeader( eOAuthHttpGet, authorizeUrl, dataStr, oAuthHttpHeader ); - if( oAuthHttpHeader.length() ) - { - pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); - if( pOAuthHeaderList ) - { - curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); - } - } - - /* Set http request and url */ - curl_easy_setopt( m_curlHandle, CURLOPT_HTTPGET, 1 ); - curl_easy_setopt( m_curlHandle, CURLOPT_URL, authorizeUrl.c_str() ); - - /* Send http request */ - if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) - { - if( pOAuthHeaderList ) - { - curl_easy_getinfo( m_curlHandle, CURLINFO_HTTP_CODE, &httpStatusCode ); - curl_slist_free_all( pOAuthHeaderList ); - - // Now, let's find the authenticity token and oauth token - nPosStart = m_callbackData.find( oAuthLibDefaults::OAUTHLIB_AUTHENTICITY_TOKEN_TWITTER_RESP_KEY ); - if( std::string::npos == nPosStart ) - { - return false; - } - nPosStart += oAuthLibDefaults::OAUTHLIB_AUTHENTICITY_TOKEN_TWITTER_RESP_KEY.length(); - nPosEnd = m_callbackData.substr( nPosStart ).find( oAuthLibDefaults::OAUTHLIB_TOKEN_END_TAG_TWITTER_RESP ); - if( std::string::npos == nPosEnd ) - { - return false; - } - authenticityTokenVal = m_callbackData.substr( nPosStart, nPosEnd ); - - nPosStart = m_callbackData.find( oAuthLibDefaults::OAUTHLIB_TOKEN_TWITTER_RESP_KEY ); - if( std::string::npos == nPosStart ) - { - return false; - } - nPosStart += oAuthLibDefaults::OAUTHLIB_TOKEN_TWITTER_RESP_KEY.length(); - nPosEnd = m_callbackData.substr( nPosStart ).find( oAuthLibDefaults::OAUTHLIB_TOKEN_END_TAG_TWITTER_RESP ); - if( std::string::npos == nPosEnd ) - { - return false; - } - oauthTokenVal = m_callbackData.substr( nPosStart, nPosEnd ); - } - } - else if( pOAuthHeaderList ) - { - curl_slist_free_all( pOAuthHeaderList ); - return false; - } - - // Second phase for the authorization - pOAuthHeaderList = NULL; - oAuthHttpHeader.clear(); - - /* Prepare standard params */ - prepareStandardParams(); - - /* - Now, we need to make a data string for POST operation - which includes oauth token, authenticity token, username, password. - */ - dataStr = oAuthLibDefaults::OAUTHLIB_TOKEN_KEY + "=" + oauthTokenVal + "&" + \ - oAuthLibDefaults::OAUTHLIB_AUTHENTICITY_TOKEN_KEY + "=" + authenticityTokenVal + "&" + \ - oAuthLibDefaults::OAUTHLIB_SESSIONUSERNAME_KEY + "=" + getTwitterUsername() + "&" + \ - oAuthLibDefaults::OAUTHLIB_SESSIONPASSWORD_KEY + "=" + getTwitterPassword(); - - /* Set OAuth header */ - m_oAuth.getOAuthHeader( eOAuthHttpPost, authorizeUrl, dataStr, oAuthHttpHeader ); - if( oAuthHttpHeader.length() ) - { - pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); - if( pOAuthHeaderList ) - { - curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); - } - } - - /* Set http request and url */ - curl_easy_setopt( m_curlHandle, CURLOPT_POST, 1 ); - curl_easy_setopt( m_curlHandle, CURLOPT_URL, authorizeUrl.c_str() ); - curl_easy_setopt( m_curlHandle, CURLOPT_COPYPOSTFIELDS, dataStr.c_str() ); - - /* Send http request */ - if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) - { - if( pOAuthHeaderList ) - { - curl_easy_getinfo( m_curlHandle, CURLINFO_HTTP_CODE, &httpStatusCode ); - curl_slist_free_all( pOAuthHeaderList ); - - // Now, let's find the PIN CODE - nPosStart = m_callbackData.find( oAuthLibDefaults::OAUTHLIB_PIN_TWITTER_RESP_KEY ); - if( std::string::npos == nPosStart ) - { - return false; - } - nPosStart += oAuthLibDefaults::OAUTHLIB_PIN_TWITTER_RESP_KEY.length(); - nPosEnd = m_callbackData.substr( nPosStart ).find( oAuthLibDefaults::OAUTHLIB_PIN_END_TAG_TWITTER_RESP ); - if( std::string::npos == nPosEnd ) - { - return false; - } - pinCodeVal = m_callbackData.substr( nPosStart, nPosEnd ); - getOAuth().setOAuthPin( pinCodeVal ); - return true; - } - } - else if( pOAuthHeaderList ) - { - curl_slist_free_all( pOAuthHeaderList ); - } - return false; -} - +#define NOMINMAX +#include +#include "twitcurlurls.h" +#include "twitcurl.h" +#include "urlencode.h" + +/*++ +* @method: twitCurl::twitCurl +* +* @description: constructor +* +* @input: none +* +* @output: none +* +*--*/ +twitCurl::twitCurl(): +m_curlHandle( NULL ), +m_curlProxyParamsSet( false ), +m_curlLoginParamsSet( false ), +m_curlCallbackParamsSet( false ), +m_eApiFormatType( twitCurlTypes::eTwitCurlApiFormatJson ), +m_eProtocolType( twitCurlTypes::eTwitCurlProtocolHttps ) +{ + /* Alloc memory for cURL error responses */ + m_errorBuffer = (char*)malloc( twitCurlDefaults::TWITCURL_DEFAULT_BUFFSIZE ); + + /* Clear callback buffers */ + clearCurlCallbackBuffers(); + + /* Initialize cURL */ + m_curlHandle = curl_easy_init(); + if( NULL == m_curlHandle ) + { + std::string dummyStr; + getLastCurlError( dummyStr ); + } + curl_easy_setopt(m_curlHandle, CURLOPT_SSL_VERIFYPEER, 0); +} + +/*++ +* @method: twitCurl::~twitCurl +* +* @description: destructor +* +* @input: none +* +* @output: none +* +*--*/ +twitCurl::~twitCurl() +{ + /* Cleanup cURL */ + if( m_curlHandle ) + { + curl_easy_cleanup( m_curlHandle ); + m_curlHandle = NULL; + } + if( m_errorBuffer ) + { + free( m_errorBuffer ); + m_errorBuffer = NULL; + } +} + +/*++ +* @method: twitCurl::clone +* +* @description: creates a clone of twitcurl object +* +* @input: none +* +* @output: cloned object +* +*--*/ +twitCurl* twitCurl::clone() +{ + twitCurl *cloneObj = new twitCurl(); + + /* cURL proxy data */ + cloneObj->setProxyServerIp(m_proxyServerIp); + cloneObj->setProxyServerPort(m_proxyServerPort); + cloneObj->setProxyUserName(m_proxyUserName); + cloneObj->setProxyPassword(m_proxyPassword); + + /* Twitter data */ + cloneObj->setTwitterUsername(m_twitterUsername); + cloneObj->setTwitterPassword(m_twitterPassword); + + /* OAuth data */ + cloneObj->m_oAuth = m_oAuth.clone(); + + return cloneObj; +} + +/*++ +* @method: twitCurl::isCurlInit +* +* @description: method to check if cURL is initialized properly +* +* @input: none +* +* @output: true if cURL is intialized, otherwise false +* +*--*/ +bool twitCurl::isCurlInit() +{ + return ( NULL != m_curlHandle ) ? true : false; +} + +/*++ +* @method: twitCurl::getTwitterUsername +* +* @description: method to get stored Twitter username +* +* @input: none +* +* @output: twitter username +* +*--*/ +std::string& twitCurl::getTwitterUsername() +{ + return m_twitterUsername; +} + +/*++ +* @method: twitCurl::getTwitterPassword +* +* @description: method to get stored Twitter password +* +* @input: none +* +* @output: twitter password +* +*--*/ +std::string& twitCurl::getTwitterPassword() +{ + return m_twitterPassword; +} + +/*++ +* @method: twitCurl::setTwitterUsername +* +* @description: method to set username +* +* @input: userName +* +* @output: none +* +*--*/ +void twitCurl::setTwitterUsername( std::string& userName ) +{ + if( userName.length() ) + { + m_twitterUsername = userName; + m_curlLoginParamsSet = false; + } +} + +/*++ +* @method: twitCurl::setTwitterPassword +* +* @description: method to set password +* +* @input: passWord +* +* @output: none +* +*--*/ +void twitCurl::setTwitterPassword( std::string& passWord ) +{ + if( passWord.length() ) + { + m_twitterPassword = passWord; + m_curlLoginParamsSet = false; + } +} + +/*++ +* @method: twitCurl::getProxyServerIp +* +* @description: method to get proxy server IP address +* +* @input: none +* +* @output: proxy server IP address +* +*--*/ +std::string& twitCurl::getProxyServerIp() +{ + return m_proxyServerIp; +} + +/*++ +* @method: twitCurl::getProxyServerPort +* +* @description: method to get proxy server port +* +* @input: none +* +* @output: proxy server port +* +*--*/ +std::string& twitCurl::getProxyServerPort() +{ + return m_proxyServerPort; +} + +/*++ +* @method: twitCurl::getProxyUserName +* +* @description: method to get proxy user name +* +* @input: none +* +* @output: proxy server user name +* +*--*/ +std::string& twitCurl::getProxyUserName() +{ + return m_proxyUserName; +} + +/*++ +* @method: twitCurl::getProxyPassword +* +* @description: method to get proxy server password +* +* @input: none +* +* @output: proxy server password +* +*--*/ +std::string& twitCurl::getProxyPassword() +{ + return m_proxyPassword; +} + +/*++ +* @method: twitCurl::setProxyServerIp +* +* @description: method to set proxy server IP address +* +* @input: proxyServerIp +* +* @output: none +* +*--*/ +void twitCurl::setProxyServerIp( std::string& proxyServerIp ) +{ + if( proxyServerIp.length() ) + { + m_proxyServerIp = proxyServerIp; + /* + * Reset the flag so that next cURL http request + * would set proxy details again into cURL. + */ + m_curlProxyParamsSet = false; + } +} + +/*++ +* @method: twitCurl::setProxyServerPort +* +* @description: method to set proxy server port +* +* @input: proxyServerPort +* +* @output: none +* +*--*/ +void twitCurl::setProxyServerPort( std::string& proxyServerPort ) +{ + if( proxyServerPort.length() ) + { + m_proxyServerPort = proxyServerPort; + /* + * Reset the flag so that next cURL http request + * would set proxy details again into cURL. + */ + m_curlProxyParamsSet = false; + } +} + +/*++ +* @method: twitCurl::setProxyUserName +* +* @description: method to set proxy server username +* +* @input: proxyUserName +* +* @output: none +* +*--*/ +void twitCurl::setProxyUserName( std::string& proxyUserName ) +{ + if( proxyUserName.length() ) + { + m_proxyUserName = proxyUserName; + /* + * Reset the flag so that next cURL http request + * would set proxy details again into cURL. + */ + m_curlProxyParamsSet = false; + } +} + +/*++ +* @method: twitCurl::setProxyPassword +* +* @description: method to set proxy server password +* +* @input: proxyPassword +* +* @output: none +* +*--*/ +void twitCurl::setProxyPassword( std::string& proxyPassword ) +{ + if( proxyPassword.length() ) + { + m_proxyPassword = proxyPassword; + /* + * Reset the flag so that next cURL http request + * would set proxy details again into cURL. + */ + m_curlProxyParamsSet = false; + } +} + +/*++ +* @method: twitCurl::search +* +* @description: method to return tweets that match a specified query. +* +* @input: searchQuery - search query in string format +* resultCount - optional search result count +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +* @note: Only ATOM and JSON format supported. +* +*--*/ +bool twitCurl::search( std::string& searchQuery, std::string resultCount ) +{ + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_SEARCH_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] + + twitCurlDefaults::TWITCURL_URL_SEP_QUES + twitCurlDefaults::TWITCURL_SEARCHQUERYSTRING + + searchQuery; + + /* Add number of results count if provided */ + if( resultCount.size() ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_AMP + + twitCurlDefaults::TWITCURL_COUNT + urlencode( resultCount ); + } + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::statusUpdate +* +* @description: method to update new status message in twitter profile +* +* @input: newStatus - status message text +* inReplyToStatusId - optional status id to we're replying to +* +* @output: true if POST is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::statusUpdate( std::string& newStatus, std::string inReplyToStatusId ) +{ + if( newStatus.empty() ) + { + return false; + } + + /* Prepare new status message */ + std::string newStatusMsg = twitCurlDefaults::TWITCURL_STATUSSTRING + urlencode( newStatus ); + + /* Append status id to which we're replying to */ + if( inReplyToStatusId.size() ) + { + newStatusMsg += twitCurlDefaults::TWITCURL_URL_SEP_AMP + + twitCurlDefaults::TWITCURL_INREPLYTOSTATUSID + + urlencode( inReplyToStatusId ); + } + + /* Perform POST */ + return performPost( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_STATUSUPDATE_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], + newStatusMsg ); +} + +/*++ +* @method: twitCurl::statusShowById +* +* @description: method to get a status message by its id +* +* @input: statusId - a number in std::string format +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::statusShowById( std::string& statusId ) +{ + if( statusId.empty() ) + { + return false; + } + + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_STATUSSHOW_URL + statusId + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::statusDestroyById +* +* @description: method to delete a status message by its id +* +* @input: statusId - a number in std::string format +* +* @output: true if DELETE is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::statusDestroyById( std::string& statusId ) +{ + if( statusId.empty() ) + { + return false; + } + + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_STATUDESTROY_URL + statusId + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Perform DELETE */ + return performDelete( buildUrl ); +} + +/*++ +* @method: twitCurl::retweetById +* +* @description: method to RETWEET a status message by its id +* +* @input: statusId - a number in std::string format +* +* @output: true if RETWEET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::retweetById( std::string& statusId ) +{ + if( statusId.empty() ) + { + return false; + } + + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_RETWEET_URL + statusId + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Send some dummy data in POST */ + std::string dummyData = twitCurlDefaults::TWITCURL_TEXTSTRING + + urlencode( std::string( "dummy" ) ); + + /* Perform Retweet */ + return performPost( buildUrl, dummyData ); +} + +/*++ +* @method: twitCurl::timelineHomeGet +* +* @description: method to get home timeline +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::timelineHomeGet( std::string sinceId ) +{ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_HOME_TIMELINE_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + if( sinceId.length() ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES + twitCurlDefaults::TWITCURL_SINCEID + sinceId; + } + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::timelinePublicGet +* +* @description: method to get public timeline +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::timelinePublicGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_PUBLIC_TIMELINE_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::featuredUsersGet +* +* @description: method to get featured users +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::featuredUsersGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_FEATURED_USERS_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::timelineFriendsGet +* +* @description: method to get friends timeline +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::timelineFriendsGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_FRIENDS_TIMELINE_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::mentionsGet +* +* @description: method to get mentions +* +* @input: sinceId - String specifying since id parameter +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::mentionsGet( std::string sinceId ) +{ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_MENTIONS_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + if( sinceId.length() ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES + twitCurlDefaults::TWITCURL_SINCEID + sinceId; + } + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::timelineUserGet +* +* @description: method to get mentions +* +* @input: trimUser - Trim user name if true +* tweetCount - Number of tweets to get. Max 200. +* userInfo - screen name or user id in string format, +* isUserId - true if userInfo contains an id +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::timelineUserGet( bool trimUser, bool includeRetweets, unsigned int tweetCount, + std::string userInfo, bool isUserId ) +{ + /* Prepare URL */ + std::string buildUrl; + + utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_USERTIMELINE_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], + userInfo, isUserId ); + + if( userInfo.empty() ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES; + } + + if( tweetCount ) + { + if( tweetCount > twitCurlDefaults::MAX_TIMELINE_TWEET_COUNT ) + { + tweetCount = twitCurlDefaults::MAX_TIMELINE_TWEET_COUNT; + } + std::stringstream tmpStrm; + tmpStrm << twitCurlDefaults::TWITCURL_URL_SEP_AMP + twitCurlDefaults::TWITCURL_COUNT << tweetCount; + buildUrl += tmpStrm.str(); + tmpStrm.str().clear(); + } + + if( includeRetweets ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_AMP + twitCurlDefaults::TWITCURL_INCRETWEETS; + } + + if( trimUser ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_AMP + twitCurlDefaults::TWITCURL_TRIMUSER; + } + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::userLookup +* +* @description: method to get a number of user's profiles +* +* @input: userInfo - vector of screen names or user ids +* isUserId - true if userInfo contains an id +* +* @output: true if POST is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::userLookup( std::vector &userInfo, bool isUserId ) +{ + if( userInfo.empty() ) + { + return false; + } + + std::string userIds = ""; + std::string sep = ""; + for( unsigned int i = 0 ; i < std::min((size_t)100, userInfo.size()); i++, sep = "," ) + { + userIds += sep + userInfo[i]; + } + + userIds = ( isUserId ? twitCurlDefaults::TWITCURL_USERID : twitCurlDefaults::TWITCURL_SCREENNAME ) + + urlencode( userIds ); + + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_LOOKUPUSERS_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Perform POST */ + return performPost( buildUrl, userIds); +} + +/*++ +* @method: twitCurl::userGet +* +* @description: method to get a user's profile +* +* @input: userInfo - screen name or user id in string format, +* isUserId - true if userInfo contains an id +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::userGet( std::string& userInfo, bool isUserId ) +{ + if( userInfo.empty() ) + { + return false; + } + + /* Set URL */ + std::string buildUrl; + utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_SHOWUSERS_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], + userInfo, isUserId ); + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::friendsGet +* +* @description: method to get a user's friends +* +* @input: userInfo - screen name or user id in string format, +* isUserId - true if userInfo contains an id +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::friendsGet( std::string userInfo, bool isUserId ) +{ + /* Set URL */ + std::string buildUrl; + utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_SHOWFRIENDS_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], + userInfo, isUserId ); + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::followersGet +* +* @description: method to get a user's followers +* +* @input: userInfo - screen name or user id in string format, +* isUserId - true if userInfo contains an id +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::followersGet( std::string userInfo, bool isUserId ) +{ + /* Prepare URL */ + std::string buildUrl; + utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_SHOWFOLLOWERS_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], + userInfo, isUserId ); + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::directMessageGet +* +* @description: method to get direct messages +* +* @input: since id +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::directMessageGet( std::string sinceId ) +{ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_DIRECTMESSAGES_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + if( sinceId.length() ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES + twitCurlDefaults::TWITCURL_SINCEID + sinceId; + } + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::directMessageSend +* +* @description: method to send direct message to a user +* +* @input: userInfo - screen name or user id of a user to whom message needs to be sent, +* dMsg - message +* isUserId - true if userInfo contains target user's id +* +* @output: true if POST is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::directMessageSend( std::string& userInfo, std::string& dMsg, bool isUserId ) +{ + if( userInfo.empty() || dMsg.empty() ) + { + return false; + } + + /* Prepare new direct message */ + std::string newDm = twitCurlDefaults::TWITCURL_TEXTSTRING + urlencode( dMsg ); + + /* Prepare URL */ + std::string buildUrl; + utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_DIRECTMESSAGENEW_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], + userInfo, isUserId ); + + /* Perform POST */ + return performPost( buildUrl, newDm ); +} + +/*++ +* @method: twitCurl::directMessageGetSent +* +* @description: method to get sent direct messages +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::directMessageGetSent() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_DIRECTMESSAGESSENT_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::directMessageDestroyById +* +* @description: method to delete direct messages by its id +* +* @input: dMsgId - id of direct message in string format +* +* @output: true if DELETE is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::directMessageDestroyById( std::string& dMsgId ) +{ + if( dMsgId.empty() ) + { + return false; + } + + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_DIRECTMESSAGEDESTROY_URL + dMsgId + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Perform DELETE */ + return performDelete( buildUrl ); +} + +/*++ +* @method: twitCurl::friendshipCreate +* +* @description: method to add a twitter user as friend (follow a user) +* +* @input: userInfo - user id or screen name of a user +* isUserId - true if userInfo contains a user id instead of screen name +* +* @output: true if POST is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::friendshipCreate( std::string& userInfo, bool isUserId ) +{ + if( userInfo.empty() ) + { + return false; + } + + /* Prepare URL */ + std::string buildUrl; + utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_FRIENDSHIPSCREATE_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], + userInfo, isUserId ); + + /* Send some dummy data in POST */ + std::string dummyData = twitCurlDefaults::TWITCURL_TEXTSTRING + + urlencode( std::string( "dummy" ) ); + + /* Perform POST */ + return performPost( buildUrl, dummyData ); +} + +/*++ +* @method: twitCurl::friendshipDestroy +* +* @description: method to delete a twitter user from friend list (unfollow a user) +* +* @input: userInfo - user id or screen name of a user +* isUserId - true if userInfo contains a user id instead of screen name +* +* @output: true if DELETE is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::friendshipDestroy( std::string& userInfo, bool isUserId ) +{ + if( userInfo.empty() ) + { + return false; + } + + /* Prepare URL */ + std::string buildUrl; + utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_FRIENDSHIPSDESTROY_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], + userInfo, isUserId ); + + /* Perform DELETE */ + return performDelete( buildUrl ); +} + +/*++ +* @method: twitCurl::friendshipShow +* +* @description: method to show all friends +* +* @input: userInfo - user id or screen name of a user of whom friends need to be shown +* isUserId - true if userInfo contains a user id instead of screen name +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::friendshipShow( std::string& userInfo, bool isUserId ) +{ + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_FRIENDSHIPSSHOW_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + if( userInfo.length() ) + { + /* Append username to the URL */ + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES; + if( isUserId ) + { + buildUrl += twitCurlDefaults::TWITCURL_TARGETUSERID; + } + else + { + buildUrl += twitCurlDefaults::TWITCURL_TARGETSCREENNAME; + } + buildUrl += userInfo; + } + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::friendsIdsGet +* +* @description: method to show IDs of all friends of a twitter user +* +* @input: userInfo - user id or screen name of a user +* isUserId - true if userInfo contains a user id instead of screen name +* nextCursor - next cursor string returned from a previous call +* to this API, otherwise an empty string +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::friendsIdsGet( std::string& nextCursor, std::string& userInfo, bool isUserId ) +{ + /* Prepare URL */ + std::string buildUrl; + utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_FRIENDSIDS_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], + userInfo, isUserId ); + + if( buildUrl.length() && nextCursor.length() ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_AMP + + twitCurlDefaults::TWITCURL_NEXT_CURSOR + + nextCursor; + } + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::followersIdsGet +* +* @description: method to show IDs of all followers of a twitter user +* +* @input: userInfo - user id or screen name of a user +* isUserId - true if userInfo contains a user id instead of screen name +* nextCursor - next cursor string returned from a previous call +* to this API, otherwise an empty string +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::followersIdsGet( std::string& nextCursor, std::string& userInfo, bool isUserId ) +{ + /* Prepare URL */ + std::string buildUrl; + utilMakeUrlForUser( buildUrl, twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_FOLLOWERSIDS_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType], + userInfo, isUserId ); + + if( buildUrl.length() && nextCursor.length() ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_AMP + + twitCurlDefaults::TWITCURL_NEXT_CURSOR + + nextCursor; + } + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::accountRateLimitGet +* +* @description: method to get API rate limit of current user +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::accountRateLimitGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_ACCOUNTRATELIMIT_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::accountVerifyCredGet +* +* @description: method to get information on user identified by given credentials +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::accountVerifyCredGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_ACCOUNTVERIFYCRED_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::favoriteGet +* +* @description: method to get favorite users' statuses +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::favoriteGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_FAVORITESGET_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::favoriteCreate +* +* @description: method to favorite a status message +* +* @input: statusId - id in string format of the status to be favorited +* +* @output: true if POST is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::favoriteCreate( std::string& statusId ) +{ + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_FAVORITECREATE_URL + statusId + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Send some dummy data in POST */ + std::string dummyData = twitCurlDefaults::TWITCURL_TEXTSTRING + + urlencode( std::string( "dummy" ) ); + + /* Perform POST */ + return performPost( buildUrl, dummyData ); +} + +/*++ +* @method: twitCurl::favoriteDestroy +* +* @description: method to delete a favorited the status +* +* @input: statusId - id in string format of the favorite status to be deleted +* +* @output: true if DELETE is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::favoriteDestroy( std::string& statusId ) +{ + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_FAVORITEDESTROY_URL + statusId + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Perform DELETE */ + return performDelete( buildUrl ); +} + +/*++ +* @method: twitCurl::blockCreate +* +* @description: method to block a user +* +* @input: userInfo - user id or screen name who needs to be blocked +* +* @output: true if POST is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::blockCreate( std::string& userInfo ) +{ + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_BLOCKSCREATE_URL + userInfo + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Send some dummy data in POST */ + std::string dummyData = twitCurlDefaults::TWITCURL_TEXTSTRING + + urlencode( std::string( "dummy" ) ); + + /* Perform POST */ + return performPost( buildUrl, dummyData ); +} + +/*++ +* @method: twitCurl::blockDestroy +* +* @description: method to unblock a user +* +* @input: userInfo - user id or screen name who need to unblocked +* +* @output: true if DELETE is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::blockDestroy( std::string& userInfo ) +{ + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_BLOCKSDESTROY_URL + userInfo + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Perform DELETE */ + return performDelete( buildUrl ); +} + +/*++ +* @method: twitCurl::blockListGet +* +* @description: method to get list of users blocked by authenticated user +* +* @input: includeEntities - indicates whether or not to include 'entities' node +* skipStatus - indicates whether or not to include status for returned users +* nextCursor - next cursor string returned from a previous call +* to this API, otherwise an empty string +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::blockListGet( std::string& nextCursor, bool includeEntities, bool skipStatus ) +{ + /* Prepare URL */ + std::string buildUrl, urlParams; + + buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_BLOCKSLIST_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + if( includeEntities ) + { + urlParams += twitCurlDefaults::TWITCURL_INCLUDE_ENTITIES + std::string("true"); + } + if( skipStatus ) + { + if( urlParams.length() ) + { + urlParams += twitCurlDefaults::TWITCURL_URL_SEP_AMP; + } + urlParams += twitCurlDefaults::TWITCURL_SKIP_STATUS + std::string("true"); + } + if( nextCursor.length() ) + { + if( urlParams.length() ) + { + urlParams += twitCurlDefaults::TWITCURL_URL_SEP_AMP; + } + urlParams += twitCurlDefaults::TWITCURL_NEXT_CURSOR + nextCursor; + } + if( urlParams.length() ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES + urlParams; + } + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::blockIdsGet +* +* @description: method to get list of IDs blocked by authenticated user +* +* @input: stringifyIds - indicates whether or not returned ids should +* be in string format +* nextCursor - next cursor string returned from a previous call +* to this API, otherwise an empty string +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::blockIdsGet( std::string& nextCursor, bool stringifyIds ) +{ + /* Prepare URL */ + std::string buildUrl, urlParams; + + buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_BLOCKSIDS_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + if( stringifyIds ) + { + urlParams += twitCurlDefaults::TWITCURL_STRINGIFY_IDS + std::string("true"); + } + if( nextCursor.length() ) + { + if( urlParams.length() ) + { + urlParams += twitCurlDefaults::TWITCURL_URL_SEP_AMP; + } + urlParams += twitCurlDefaults::TWITCURL_NEXT_CURSOR + nextCursor; + } + if( urlParams.length() ) + { + buildUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES + urlParams; + } + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::savedSearchGet +* +* @description: gets authenticated user's saved search queries. +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::savedSearchGet( ) +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_SAVEDSEARCHGET_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::savedSearchShow +* +* @description: method to retrieve the data for a saved search owned by the authenticating user +* specified by the given id. +* +* @input: searchId - id in string format of the search to be displayed +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::savedSearchShow( std::string& searchId ) +{ + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_SAVEDSEARCHSHOW_URL + searchId + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Perform GET */ + return performGet( buildUrl ); +} + +/*++ +* @method: twitCurl::savedSearchCreate +* +* @description: creates a saved search for the authenticated user +* +* @input: query - the query of the search the user would like to save +* +* @output: true if POST is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::savedSearchCreate( std::string& query ) +{ + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_SAVEDSEARCHCREATE_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Send some dummy data in POST */ + std::string queryStr = twitCurlDefaults::TWITCURL_QUERYSTRING + urlencode( query ); + + /* Perform POST */ + return performPost( buildUrl, queryStr ); +} + + +/*++ +* @method: twitCurl::savedSearchDestroy +* +* @description: method to destroy a saved search for the authenticated user. The search specified +* by id must be owned by the authenticating user. +* +* @input: searchId - search id of item to be deleted +* +* @output: true if DELETE is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::savedSearchDestroy( std::string& searchId ) +{ + /* Prepare URL */ + std::string buildUrl = twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_SAVEDSEARCHDESTROY_URL + searchId + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType]; + + /* Perform DELETE */ + return performDelete( buildUrl ); +} + + +/*++ +* @method: twitCurl::trendsGet() +* +* @description: gets trends. +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::trendsGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_TRENDS_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + + +/*++ +* @method: twitCurl::trendsDailyGet() +* +* @description: gets daily trends. +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::trendsDailyGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_TRENDSDAILY_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::trendsWeeklyGet() +* +* @description: gets weekly trends. +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::trendsWeeklyGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_TRENDSWEEKLY_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::trendsCurrentGet() +* +* @description: gets current trends. +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::trendsCurrentGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_TRENDSCURRENT_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::trendsAvailableGet() +* +* @description: gets available trends. +* +* @input: none +* +* @output: true if GET is success, otherwise false. This does not check http +* response by twitter. Use getLastWebResponse() for that. +* +*--*/ +bool twitCurl::trendsAvailableGet() +{ + /* Perform GET */ + return performGet( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + twitterDefaults::TWITCURL_TRENDSAVAILABLE_URL + + twitCurlDefaults::TWITCURL_EXTENSIONFORMATS[m_eApiFormatType] ); +} + +/*++ +* @method: twitCurl::getLastWebResponse +* +* @description: method to get http response for the most recent request sent. +* twitcurl users need to call this method and parse the XML +* data returned by twitter to see what has happened. +* +* @input: outWebResp - string in which twitter's response is supplied back to caller +* +* @output: none +* +*--*/ +void twitCurl::getLastWebResponse( std::string& outWebResp ) +{ + outWebResp = ""; + if( m_callbackData.length() ) + { + outWebResp = m_callbackData; + } +} + +/*++ +* @method: twitCurl::getLastCurlError +* +* @description: method to get cURL error response for most recent http request. +* twitcurl users can call this method if any of the APIs return +* false. +* +* @input: none +* +* @output: none +* +*--*/ +void twitCurl::getLastCurlError( std::string& outErrResp ) +{ + m_errorBuffer[twitCurlDefaults::TWITCURL_DEFAULT_BUFFSIZE-1] = twitCurlDefaults::TWITCURL_EOS; + outErrResp.assign( m_errorBuffer ); +} + +/*++ +* @method: twitCurl::curlCallback +* +* @description: static method to get http response back from cURL. +* this is an internal method, users of twitcurl need not +* use this. +* +* @input: as per cURL convention. +* +* @output: size of data stored in our buffer +* +* @remarks: internal method +* +*--*/ +int twitCurl::curlCallback( char* data, size_t size, size_t nmemb, twitCurl* pTwitCurlObj ) +{ + if( pTwitCurlObj && data ) + { + /* Save http response in twitcurl object's buffer */ + return pTwitCurlObj->saveLastWebResponse( data, ( size*nmemb ) ); + } + return 0; +} + +/*++ +* @method: twitCurl::saveLastWebResponse +* +* @description: method to save http responses. this is an internal method +* and twitcurl users need not use this. +* +* @input: data - character buffer from cURL, +* size - size of character buffer +* +* @output: size of data stored in our buffer +* +* @remarks: internal method +* +*--*/ +int twitCurl::saveLastWebResponse( char*& data, size_t size ) +{ + if( data && size ) + { + /* Append data in our internal buffer */ + m_callbackData.append( data, size ); + return (int)size; + } + return 0; +} + +/*++ +* @method: twitCurl::clearCurlCallbackBuffers +* +* @description: method to clear callback buffers used by cURL. this is an +* internal method and twitcurl users need not use this. +* +* @input: none +* +* @output: none +* +* @remarks: internal method +* +*--*/ +void twitCurl::clearCurlCallbackBuffers() +{ + m_callbackData = ""; + memset( m_errorBuffer, 0, twitCurlDefaults::TWITCURL_DEFAULT_BUFFSIZE ); +} + +/*++ +* @method: twitCurl::prepareCurlProxy +* +* @description: method to set proxy details into cURL. this is an internal method. +* twitcurl users should not use this method, instead use setProxyXxx +* methods to set proxy server information. +* +* @input: none +* +* @output: none +* +* @remarks: internal method +* +*--*/ +void twitCurl::prepareCurlProxy() +{ + if( m_curlProxyParamsSet ) + { + return; + } + + /* Reset existing proxy details in cURL */ + curl_easy_setopt( m_curlHandle, CURLOPT_PROXY, NULL ); + curl_easy_setopt( m_curlHandle, CURLOPT_PROXYUSERPWD, NULL ); + curl_easy_setopt( m_curlHandle, CURLOPT_PROXYAUTH, (long)CURLAUTH_ANY ); + + /* Set proxy details in cURL */ + std::string proxyIpPort(""); + if( getProxyServerIp().size() ) + { + utilMakeCurlParams( proxyIpPort, getProxyServerIp(), getProxyServerPort() ); + } + curl_easy_setopt( m_curlHandle, CURLOPT_PROXY, proxyIpPort.c_str() ); + + /* Prepare username and password for proxy server */ + if( m_proxyUserName.length() && m_proxyPassword.length() ) + { + std::string proxyUserPass; + utilMakeCurlParams( proxyUserPass, getProxyUserName(), getProxyPassword() ); + curl_easy_setopt( m_curlHandle, CURLOPT_PROXYUSERPWD, proxyUserPass.c_str() ); + } + + /* Set the flag to true indicating that proxy info is set in cURL */ + m_curlProxyParamsSet = true; +} + +/*++ +* @method: twitCurl::prepareCurlCallback +* +* @description: method to set callback details into cURL. this is an internal method. +* twitcurl users should not use this method. +* +* @input: none +* +* @output: none +* +* @remarks: internal method +* +*--*/ +void twitCurl::prepareCurlCallback() +{ + if( m_curlCallbackParamsSet ) + { + return; + } + + /* Set buffer to get error */ + curl_easy_setopt( m_curlHandle, CURLOPT_ERRORBUFFER, m_errorBuffer ); + + /* Set callback function to get response */ + curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, curlCallback ); + curl_easy_setopt( m_curlHandle, CURLOPT_WRITEDATA, this ); + + /* Set the flag to true indicating that callback info is set in cURL */ + m_curlCallbackParamsSet = true; +} + +/*++ +* @method: twitCurl::prepareCurlUserPass +* +* @description: method to set twitter credentials into cURL. this is an internal method. +* twitcurl users should not use this method, instead use setTwitterXxx +* methods to set twitter username and password. +* +* @input: none +* +* @output: none +* +* @remarks: internal method +* +*--*/ +void twitCurl::prepareCurlUserPass() +{ + if( m_curlLoginParamsSet ) + { + return; + } + + /* Reset existing username and password stored in cURL */ + curl_easy_setopt( m_curlHandle, CURLOPT_USERPWD, "" ); + + if( getTwitterUsername().size() ) + { + /* Prepare username:password */ + std::string userNamePassword; + utilMakeCurlParams( userNamePassword, getTwitterUsername(), getTwitterPassword() ); + + /* Set username and password */ + curl_easy_setopt( m_curlHandle, CURLOPT_USERPWD, userNamePassword.c_str() ); + } + + /* Set the flag to true indicating that twitter credentials are set in cURL */ + m_curlLoginParamsSet = true; +} + +/*++ +* @method: twitCurl::prepareStandardParams +* +* @description: method to set standard params into cURL. this is an internal method. +* twitcurl users should not use this method. +* +* @input: none +* +* @output: none +* +* @remarks: internal method +* +*--*/ +void twitCurl::prepareStandardParams() +{ + /* Restore any custom request we may have */ + curl_easy_setopt( m_curlHandle, CURLOPT_CUSTOMREQUEST, NULL ); + + /* All supported encodings */ + curl_easy_setopt( m_curlHandle, CURLOPT_ENCODING, "" ); + + /* Clear callback and error buffers */ + clearCurlCallbackBuffers(); + + /* Prepare proxy */ + prepareCurlProxy(); + + /* Prepare cURL callback data and error buffer */ + prepareCurlCallback(); + + /* Prepare username and password for twitter */ + prepareCurlUserPass(); +} + +/*++ +* @method: twitCurl::performGet +* +* @description: method to send http GET request. this is an internal method. +* twitcurl users should not use this method. +* +* @input: getUrl - url +* +* @output: none +* +* @remarks: internal method +* +*--*/ +bool twitCurl::performGet( const std::string& getUrl ) +{ + /* Return if cURL is not initialized */ + if( !isCurlInit() ) + { + return false; + } + + std::string dataStrDummy; + std::string oAuthHttpHeader; + struct curl_slist* pOAuthHeaderList = NULL; + + /* Prepare standard params */ + prepareStandardParams(); + + /* Set OAuth header */ + m_oAuth.getOAuthHeader( eOAuthHttpGet, getUrl, dataStrDummy, oAuthHttpHeader ); + if( oAuthHttpHeader.length() ) + { + pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); + if( pOAuthHeaderList ) + { + curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); + } + } + + /* Set http request and url */ + curl_easy_setopt( m_curlHandle, CURLOPT_HTTPGET, 1 ); + curl_easy_setopt( m_curlHandle, CURLOPT_URL, getUrl.c_str() ); + + /* Send http request */ + if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) + { + if( pOAuthHeaderList ) + { + curl_slist_free_all( pOAuthHeaderList ); + } + return true; + } + if( pOAuthHeaderList ) + { + curl_slist_free_all( pOAuthHeaderList ); + } + return false; +} + +/*++ +* @method: twitCurl::performGetInternal +* +* @description: method to send http GET request. this is an internal method. +* twitcurl users should not use this method. +* +* @input: const std::string& getUrl, const std::string& oAuthHttpHeader +* +* @output: none +* +* @remarks: internal method +* +*--*/ +bool twitCurl::performGetInternal( const std::string& getUrl, + const std::string& oAuthHttpHeader ) +{ + /* Return if cURL is not initialized */ + if( !isCurlInit() ) + { + return false; + } + + struct curl_slist* pOAuthHeaderList = NULL; + + /* Prepare standard params */ + prepareStandardParams(); + + /* Set http request and url */ + curl_easy_setopt( m_curlHandle, CURLOPT_HTTPGET, 1 ); + curl_easy_setopt( m_curlHandle, CURLOPT_URL, getUrl.c_str() ); + + /* Set header */ + if( oAuthHttpHeader.length() ) + { + pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); + if( pOAuthHeaderList ) + { + curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); + } + } + + /* Send http request */ + if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) + { + if( pOAuthHeaderList ) + { + curl_slist_free_all( pOAuthHeaderList ); + } + return true; + } + if( pOAuthHeaderList ) + { + curl_slist_free_all( pOAuthHeaderList ); + } + return false; +} + +/*++ +* @method: twitCurl::performDelete +* +* @description: method to send http DELETE request. this is an internal method. +* twitcurl users should not use this method. +* +* @input: deleteUrl - url +* +* @output: none +* +* @remarks: internal method +* +*--*/ +bool twitCurl::performDelete( const std::string& deleteUrl ) +{ + /* Return if cURL is not initialized */ + if( !isCurlInit() ) + { + return false; + } + + std::string dataStrDummy; + std::string oAuthHttpHeader; + struct curl_slist* pOAuthHeaderList = NULL; + + /* Prepare standard params */ + prepareStandardParams(); + + /* Set OAuth header */ + m_oAuth.getOAuthHeader( eOAuthHttpDelete, deleteUrl, dataStrDummy, oAuthHttpHeader ); + if( oAuthHttpHeader.length() ) + { + pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); + if( pOAuthHeaderList ) + { + curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); + } + } + + /* Set http request and url */ + curl_easy_setopt( m_curlHandle, CURLOPT_CUSTOMREQUEST, "DELETE" ); + curl_easy_setopt( m_curlHandle, CURLOPT_URL, deleteUrl.c_str() ); + curl_easy_setopt( m_curlHandle, CURLOPT_COPYPOSTFIELDS, dataStrDummy.c_str() ); + + /* Send http request */ + if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) + { + if( pOAuthHeaderList ) + { + curl_slist_free_all( pOAuthHeaderList ); + } + return true; + } + if( pOAuthHeaderList ) + { + curl_slist_free_all( pOAuthHeaderList ); + } + return false; +} + +/*++ +* @method: twitCurl::performPost +* +* @description: method to send http POST request. this is an internal method. +* twitcurl users should not use this method. +* +* @input: postUrl - url, +* dataStr - url encoded data to be posted +* +* @output: none +* +* @remarks: internal method +* data value in dataStr must already be url encoded. +* ex: dataStr = "key=urlencode(value)" +* +*--*/ +bool twitCurl::performPost( const std::string& postUrl, std::string dataStr ) +{ + /* Return if cURL is not initialized */ + if( !isCurlInit() ) + { + return false; + } + + std::string oAuthHttpHeader; + struct curl_slist* pOAuthHeaderList = NULL; + + /* Prepare standard params */ + prepareStandardParams(); + + /* Set OAuth header */ + m_oAuth.getOAuthHeader( eOAuthHttpPost, postUrl, dataStr, oAuthHttpHeader ); + if( oAuthHttpHeader.length() ) + { + pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); + if( pOAuthHeaderList ) + { + curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); + } + } + + /* Set http request, url and data */ + curl_easy_setopt( m_curlHandle, CURLOPT_POST, 1 ); + curl_easy_setopt( m_curlHandle, CURLOPT_URL, postUrl.c_str() ); + if( dataStr.length() ) + { + curl_easy_setopt( m_curlHandle, CURLOPT_COPYPOSTFIELDS, dataStr.c_str() ); + } + + /* Send http request */ + if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) + { + if( pOAuthHeaderList ) + { + curl_slist_free_all( pOAuthHeaderList ); + } + return true; + } + if( pOAuthHeaderList ) + { + curl_slist_free_all( pOAuthHeaderList ); + } + return false; +} + +/*++ +* @method: utilMakeCurlParams +* +* @description: utility function to build parameter strings in the format +* required by cURL ("param1:param2"). twitcurl users should +* not use this function. +* +* @input: inParam1 - first parameter, +* inParam2 - second parameter +* +* @output: outStr - built parameter +* +* @remarks: internal method +* +*--*/ +void utilMakeCurlParams( std::string& outStr, std::string& inParam1, std::string& inParam2 ) +{ + outStr = inParam1; + outStr += twitCurlDefaults::TWITCURL_COLON + inParam2; +} + +/*++ +* @method: utilMakeUrlForUser +* +* @description: utility function to build url compatible to twitter. twitcurl +* users should not use this function. +* +* @input: baseUrl - base twitter url, +* userInfo - user name, +* isUserId - indicates if userInfo contains a user id or scree name +* +* @output: outUrl - built url +* +* @remarks: internal method +* +*--*/ +void utilMakeUrlForUser( std::string& outUrl, const std::string& baseUrl, std::string& userInfo, bool isUserId ) +{ + /* Copy base URL */ + outUrl = baseUrl; + + if( userInfo.length() ) + { + /* Append username to the URL */ + outUrl += twitCurlDefaults::TWITCURL_URL_SEP_QUES; + if( isUserId ) + { + outUrl += twitCurlDefaults::TWITCURL_USERID; + } + else + { + outUrl += twitCurlDefaults::TWITCURL_SCREENNAME; + } + outUrl += userInfo; + } +} + +/*++ +* @method: twitCurl::getOAuth +* +* @description: method to get a reference to oAuth object. +* +* @input: none +* +* @output: reference to oAuth object +* +*--*/ +oAuth& twitCurl::getOAuth() +{ + return m_oAuth; +} + +/*++ +* @method: twitCurl::oAuthRequestToken +* +* @description: method to get a request token key and secret. this token +* will be used to get authorize user and get PIN from twitter +* +* @input: authorizeUrl is an output parameter. this method will set the url +* in this string. user should visit this link and get PIN from that page. +* +* @output: true if everything went sucessfully, otherwise false +* +*--*/ +bool twitCurl::oAuthRequestToken( std::string& authorizeUrl /* out */ ) +{ + /* Return if cURL is not initialized */ + if( !isCurlInit() ) + { + return false; + } + + /* Get OAuth header for request token */ + std::string oAuthHeader; + authorizeUrl = ""; + if( m_oAuth.getOAuthHeader( eOAuthHttpGet, + twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + oAuthTwitterApiUrls::OAUTHLIB_TWITTER_REQUEST_TOKEN_URL, + std::string( "" ), + oAuthHeader ) ) + { + if( performGetInternal( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + oAuthTwitterApiUrls::OAUTHLIB_TWITTER_REQUEST_TOKEN_URL, + oAuthHeader ) ) + { + /* Tell OAuth object to save access token and secret from web response */ + std::string twitterResp; + getLastWebResponse( twitterResp ); + m_oAuth.extractOAuthTokenKeySecret( twitterResp ); + + /* Get access token and secret from OAuth object */ + std::string oAuthTokenKey; + m_oAuth.getOAuthTokenKey( oAuthTokenKey ); + + /* Build authorize url so that user can visit in browser and get PIN */ + authorizeUrl.assign(twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + oAuthTwitterApiUrls::OAUTHLIB_TWITTER_AUTHORIZE_URL ); + authorizeUrl.append( oAuthTokenKey.c_str() ); + + return true; + } + } + return false; +} + +/*++ +* @method: twitCurl::oAuthAccessToken +* +* @description: method to exchange request token with access token +* +* @input: none +* +* @output: true if everything went sucessfully, otherwise false +* +*--*/ +bool twitCurl::oAuthAccessToken() +{ + /* Return if cURL is not initialized */ + if( !isCurlInit() ) + { + return false; + } + /* Get OAuth header for access token */ + std::string oAuthHeader; + if( m_oAuth.getOAuthHeader( eOAuthHttpGet, + twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + oAuthTwitterApiUrls::OAUTHLIB_TWITTER_ACCESS_TOKEN_URL, + std::string( "" ), + oAuthHeader, true ) ) + { + if( performGetInternal( twitCurlDefaults::TWITCURL_PROTOCOLS[m_eProtocolType] + + oAuthTwitterApiUrls::OAUTHLIB_TWITTER_ACCESS_TOKEN_URL, + oAuthHeader ) ) + { + /* Tell OAuth object to save access token and secret from web response */ + std::string twitterResp; + getLastWebResponse( twitterResp ); + m_oAuth.extractOAuthTokenKeySecret( twitterResp ); + + return true; + } + } + return false; +} + +/*++ +* ADDED BY ANTIROOT +* +* @method: twitCurl::oAuthHandlePIN +* +* @description: method to handle user's PIN code from the authentiation URLs +* +* @input: none +* +* @output: true if everything went sucessfully, otherwise false +* +*--*/ +bool twitCurl::oAuthHandlePIN( const std::string& authorizeUrl /* in */ ) +{ + /* Return if cURL is not initialized */ + if( !isCurlInit() ) + { + return false; + } + + std::string dataStr; + std::string oAuthHttpHeader; + std::string authenticityTokenVal; + std::string oauthTokenVal; + std::string pinCodeVal; + unsigned long httpStatusCode = 0; + size_t nPosStart, nPosEnd; + struct curl_slist* pOAuthHeaderList = NULL; + + /* Prepare standard params */ + prepareStandardParams(); + + /* Set OAuth header */ + m_oAuth.getOAuthHeader( eOAuthHttpGet, authorizeUrl, dataStr, oAuthHttpHeader ); + if( oAuthHttpHeader.length() ) + { + pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); + if( pOAuthHeaderList ) + { + curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); + } + } + + /* Set http request and url */ + curl_easy_setopt( m_curlHandle, CURLOPT_HTTPGET, 1 ); + curl_easy_setopt( m_curlHandle, CURLOPT_URL, authorizeUrl.c_str() ); + + /* Send http request */ + if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) + { + if( pOAuthHeaderList ) + { + curl_easy_getinfo( m_curlHandle, CURLINFO_HTTP_CODE, &httpStatusCode ); + curl_slist_free_all( pOAuthHeaderList ); + + // Now, let's find the authenticity token and oauth token + nPosStart = m_callbackData.find( oAuthLibDefaults::OAUTHLIB_AUTHENTICITY_TOKEN_TWITTER_RESP_KEY ); + if( std::string::npos == nPosStart ) + { + return false; + } + nPosStart += oAuthLibDefaults::OAUTHLIB_AUTHENTICITY_TOKEN_TWITTER_RESP_KEY.length(); + nPosEnd = m_callbackData.substr( nPosStart ).find( oAuthLibDefaults::OAUTHLIB_TOKEN_END_TAG_TWITTER_RESP ); + if( std::string::npos == nPosEnd ) + { + return false; + } + authenticityTokenVal = m_callbackData.substr( nPosStart, nPosEnd ); + + nPosStart = m_callbackData.find( oAuthLibDefaults::OAUTHLIB_TOKEN_TWITTER_RESP_KEY ); + if( std::string::npos == nPosStart ) + { + return false; + } + nPosStart += oAuthLibDefaults::OAUTHLIB_TOKEN_TWITTER_RESP_KEY.length(); + nPosEnd = m_callbackData.substr( nPosStart ).find( oAuthLibDefaults::OAUTHLIB_TOKEN_END_TAG_TWITTER_RESP ); + if( std::string::npos == nPosEnd ) + { + return false; + } + oauthTokenVal = m_callbackData.substr( nPosStart, nPosEnd ); + } + } + else if( pOAuthHeaderList ) + { + curl_slist_free_all( pOAuthHeaderList ); + return false; + } + + // Second phase for the authorization + pOAuthHeaderList = NULL; + oAuthHttpHeader.clear(); + + /* Prepare standard params */ + prepareStandardParams(); + + /* + Now, we need to make a data string for POST operation + which includes oauth token, authenticity token, username, password. + */ + dataStr = oAuthLibDefaults::OAUTHLIB_TOKEN_KEY + "=" + oauthTokenVal + "&" + \ + oAuthLibDefaults::OAUTHLIB_AUTHENTICITY_TOKEN_KEY + "=" + authenticityTokenVal + "&" + \ + oAuthLibDefaults::OAUTHLIB_SESSIONUSERNAME_KEY + "=" + getTwitterUsername() + "&" + \ + oAuthLibDefaults::OAUTHLIB_SESSIONPASSWORD_KEY + "=" + getTwitterPassword(); + + /* Set OAuth header */ + m_oAuth.getOAuthHeader( eOAuthHttpPost, authorizeUrl, dataStr, oAuthHttpHeader ); + if( oAuthHttpHeader.length() ) + { + pOAuthHeaderList = curl_slist_append( pOAuthHeaderList, oAuthHttpHeader.c_str() ); + if( pOAuthHeaderList ) + { + curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, pOAuthHeaderList ); + } + } + + /* Set http request and url */ + curl_easy_setopt( m_curlHandle, CURLOPT_POST, 1 ); + curl_easy_setopt( m_curlHandle, CURLOPT_URL, authorizeUrl.c_str() ); + curl_easy_setopt( m_curlHandle, CURLOPT_COPYPOSTFIELDS, dataStr.c_str() ); + + /* Send http request */ + if( CURLE_OK == curl_easy_perform( m_curlHandle ) ) + { + if( pOAuthHeaderList ) + { + curl_easy_getinfo( m_curlHandle, CURLINFO_HTTP_CODE, &httpStatusCode ); + curl_slist_free_all( pOAuthHeaderList ); + + // Now, let's find the PIN CODE + nPosStart = m_callbackData.find( oAuthLibDefaults::OAUTHLIB_PIN_TWITTER_RESP_KEY ); + if( std::string::npos == nPosStart ) + { + return false; + } + nPosStart += oAuthLibDefaults::OAUTHLIB_PIN_TWITTER_RESP_KEY.length(); + nPosEnd = m_callbackData.substr( nPosStart ).find( oAuthLibDefaults::OAUTHLIB_PIN_END_TAG_TWITTER_RESP ); + if( std::string::npos == nPosEnd ) + { + return false; + } + pinCodeVal = m_callbackData.substr( nPosStart, nPosEnd ); + getOAuth().setOAuthPin( pinCodeVal ); + return true; + } + } + else if( pOAuthHeaderList ) + { + curl_slist_free_all( pOAuthHeaderList ); + } + return false; +} + diff --git a/backends/twitter/libtwitcurl/twitcurl.dsp b/backends/twitter/libtwitcurl/twitcurl.dsp index 14230b25..436cb038 100644 --- a/backends/twitter/libtwitcurl/twitcurl.dsp +++ b/backends/twitter/libtwitcurl/twitcurl.dsp @@ -1,140 +1,140 @@ -# Microsoft Developer Studio Project File - Name="twitcurl" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=twitcurl - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "twitcurl.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "twitcurl.mak" CFG="twitcurl - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "twitcurl - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "twitcurl - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "twitcurl - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "./curl" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "twitcurl - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "./curl" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "twitcurl - Win32 Release" -# Name "twitcurl - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\base64.cpp -# End Source File -# Begin Source File - -SOURCE=.\HMAC_SHA1.cpp -# End Source File -# Begin Source File - -SOURCE=.\oauthlib.cpp -# End Source File -# Begin Source File - -SOURCE=.\SHA1.cpp -# End Source File -# Begin Source File - -SOURCE=.\twitcurl.cpp -# End Source File -# Begin Source File - -SOURCE=.\urlencode.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\base64.h -# End Source File -# Begin Source File - -SOURCE=.\HMAC_SHA1.h -# End Source File -# Begin Source File - -SOURCE=.\oauthlib.h -# End Source File -# Begin Source File - -SOURCE=.\SHA1.h -# End Source File -# Begin Source File - -SOURCE=.\twitcurl.h -# End Source File -# Begin Source File - -SOURCE=.\urlencode.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="twitcurl" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=twitcurl - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "twitcurl.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "twitcurl.mak" CFG="twitcurl - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "twitcurl - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "twitcurl - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "twitcurl - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "./curl" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "twitcurl - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "./curl" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "twitcurl - Win32 Release" +# Name "twitcurl - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\base64.cpp +# End Source File +# Begin Source File + +SOURCE=.\HMAC_SHA1.cpp +# End Source File +# Begin Source File + +SOURCE=.\oauthlib.cpp +# End Source File +# Begin Source File + +SOURCE=.\SHA1.cpp +# End Source File +# Begin Source File + +SOURCE=.\twitcurl.cpp +# End Source File +# Begin Source File + +SOURCE=.\urlencode.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\base64.h +# End Source File +# Begin Source File + +SOURCE=.\HMAC_SHA1.h +# End Source File +# Begin Source File + +SOURCE=.\oauthlib.h +# End Source File +# Begin Source File + +SOURCE=.\SHA1.h +# End Source File +# Begin Source File + +SOURCE=.\twitcurl.h +# End Source File +# Begin Source File + +SOURCE=.\urlencode.h +# End Source File +# End Group +# End Target +# End Project diff --git a/backends/twitter/libtwitcurl/twitcurl.dsw b/backends/twitter/libtwitcurl/twitcurl.dsw index 10790bd3..6cff2fd5 100644 --- a/backends/twitter/libtwitcurl/twitcurl.dsw +++ b/backends/twitter/libtwitcurl/twitcurl.dsw @@ -1,29 +1,29 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "twitcurl"=.\twitcurl.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "twitcurl"=.\twitcurl.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/backends/twitter/libtwitcurl/twitcurl.h b/backends/twitter/libtwitcurl/twitcurl.h index 5e491088..8d18f166 100644 --- a/backends/twitter/libtwitcurl/twitcurl.h +++ b/backends/twitter/libtwitcurl/twitcurl.h @@ -1,190 +1,190 @@ -#ifndef _TWITCURL_H_ -#define _TWITCURL_H_ - -#include -#include -#include -#include -#include "oauthlib.h" -#include "curl/curl.h" - -/* Few common types used by twitCurl */ -namespace twitCurlTypes -{ - typedef enum _eTwitCurlApiFormatType - { - eTwitCurlApiFormatJson = 0, - eTwitCurlApiFormatXml, - eTwitCurlApiFormatMax - } eTwitCurlApiFormatType; - - typedef enum _eTwitCurlProtocolType - { - eTwitCurlProtocolHttps = 0, - eTwitCurlProtocolHttp, - eTwitCurlProtocolMax - } eTwitCurlProtocolType; -}; - -/* twitCurl class */ -class twitCurl -{ -public: - twitCurl(); - ~twitCurl(); - - /* Twitter OAuth authorization methods */ - oAuth& getOAuth(); - bool oAuthRequestToken( std::string& authorizeUrl /* out */ ); - bool oAuthAccessToken(); - bool oAuthHandlePIN( const std::string& authorizeUrl /* in */ ); - - /* Twitter login APIs, set once and forget */ - std::string& getTwitterUsername(); - std::string& getTwitterPassword(); - void setTwitterUsername( std::string& userName /* in */ ); - void setTwitterPassword( std::string& passWord /* in */ ); - - /* Twitter search APIs */ - bool search( std::string& searchQuery /* in */, std::string resultCount = "" /* in */ ); - - /* Twitter status APIs */ - bool statusUpdate( std::string& newStatus /* in */, std::string inReplyToStatusId = "" /* in */ ); - bool statusShowById( std::string& statusId /* in */ ); - bool statusDestroyById( std::string& statusId /* in */ ); - bool retweetById( std::string& statusId /* in */ ); - - /* Twitter timeline APIs */ - bool timelineHomeGet( std::string sinceId = "" /* in */ ); - bool timelinePublicGet(); - bool timelineFriendsGet(); - bool timelineUserGet( bool trimUser /* in */, bool includeRetweets /* in */, - unsigned int tweetCount /* in */, - std::string userInfo = "" /* in */, - bool isUserId = false /* in */ ); - bool featuredUsersGet(); - bool mentionsGet( std::string sinceId = "" /* in */ ); - - /* Twitter user APIs */ - bool userLookup( std::vector &userInfo /* in */, bool isUserId = false /* in */ ); - bool userGet( std::string& userInfo /* in */, bool isUserId = false /* in */ ); - bool friendsGet( std::string userInfo = "" /* in */, bool isUserId = false /* in */ ); - bool followersGet( std::string userInfo = "" /* in */, bool isUserId = false /* in */ ); - - /* Twitter direct message APIs */ - bool directMessageGet( std::string sinceId = "" /* in */ ); - bool directMessageSend( std::string& userInfo /* in */, std::string& dMsg /* in */, bool isUserId = false /* in */ ); - bool directMessageGetSent(); - bool directMessageDestroyById( std::string& dMsgId /* in */ ); - - /* Twitter friendships APIs */ - bool friendshipCreate( std::string& userInfo /* in */, bool isUserId = false /* in */ ); - bool friendshipDestroy( std::string& userInfo /* in */, bool isUserId = false /* in */ ); - bool friendshipShow( std::string& userInfo /* in */, bool isUserId = false /* in */ ); - - /* Twitter social graphs APIs */ - bool friendsIdsGet( std::string& nextCursor /* in */, - std::string& userInfo /* in */, bool isUserId = false /* in */ ); - bool followersIdsGet( std::string& nextCursor /* in */, - std::string& userInfo /* in */, bool isUserId = false /* in */ ); - - /* Twitter account APIs */ - bool accountRateLimitGet(); - bool accountVerifyCredGet(); - - /* Twitter favorites APIs */ - bool favoriteGet(); - bool favoriteCreate( std::string& statusId /* in */ ); - bool favoriteDestroy( std::string& statusId /* in */ ); - - /* Twitter block APIs */ - bool blockCreate( std::string& userInfo /* in */ ); - bool blockDestroy( std::string& userInfo /* in */ ); - bool blockListGet( std::string& nextCursor /* in */, - bool includeEntities /* in */, bool skipStatus /* in */ ); - bool blockIdsGet( std::string& nextCursor /* in */, bool stringifyIds /* in */ ); - - /* Twitter search APIs */ - bool savedSearchGet(); - bool savedSearchCreate( std::string& query /* in */ ); - bool savedSearchShow( std::string& searchId /* in */ ); - bool savedSearchDestroy( std::string& searchId /* in */ ); - - /* Twitter trends APIs (JSON) */ - bool trendsGet(); - bool trendsDailyGet(); - bool trendsWeeklyGet(); - bool trendsCurrentGet(); - bool trendsAvailableGet(); - - /* cURL APIs */ - bool isCurlInit(); - void getLastWebResponse( std::string& outWebResp /* out */ ); - void getLastCurlError( std::string& outErrResp /* out */); - - /* Internal cURL related methods */ - int saveLastWebResponse( char*& data, size_t size ); - - /* cURL proxy APIs */ - std::string& getProxyServerIp(); - std::string& getProxyServerPort(); - std::string& getProxyUserName(); - std::string& getProxyPassword(); - void setProxyServerIp( std::string& proxyServerIp /* in */ ); - void setProxyServerPort( std::string& proxyServerPort /* in */ ); - void setProxyUserName( std::string& proxyUserName /* in */ ); - void setProxyPassword( std::string& proxyPassword /* in */ ); - - /* Clones this object */ - twitCurl* clone(); - -private: - /* cURL data */ - CURL* m_curlHandle; - char* m_errorBuffer; - std::string m_callbackData; - - /* cURL flags */ - bool m_curlProxyParamsSet; - bool m_curlLoginParamsSet; - bool m_curlCallbackParamsSet; - - /* cURL proxy data */ - std::string m_proxyServerIp; - std::string m_proxyServerPort; - std::string m_proxyUserName; - std::string m_proxyPassword; - - /* Twitter data */ - std::string m_twitterUsername; - std::string m_twitterPassword; - - /* Twitter API type */ - twitCurlTypes::eTwitCurlApiFormatType m_eApiFormatType; - twitCurlTypes::eTwitCurlProtocolType m_eProtocolType; - - /* OAuth data */ - oAuth m_oAuth; - - /* Private methods */ - void clearCurlCallbackBuffers(); - void prepareCurlProxy(); - void prepareCurlCallback(); - void prepareCurlUserPass(); - void prepareStandardParams(); - bool performGet( const std::string& getUrl ); - bool performGetInternal( const std::string& getUrl, - const std::string& oAuthHttpHeader ); - bool performDelete( const std::string& deleteUrl ); - bool performPost( const std::string& postUrl, std::string dataStr = "" ); - - /* Internal cURL related methods */ - static int curlCallback( char* data, size_t size, size_t nmemb, twitCurl* pTwitCurlObj ); -}; - - -/* Private functions */ -void utilMakeCurlParams( std::string& outStr, std::string& inParam1, std::string& inParam2 ); -void utilMakeUrlForUser( std::string& outUrl, const std::string& baseUrl, std::string& userInfo, bool isUserId ); - -#endif // _TWITCURL_H_ +#ifndef _TWITCURL_H_ +#define _TWITCURL_H_ + +#include +#include +#include +#include +#include "oauthlib.h" +#include "curl/curl.h" + +/* Few common types used by twitCurl */ +namespace twitCurlTypes +{ + typedef enum _eTwitCurlApiFormatType + { + eTwitCurlApiFormatJson = 0, + eTwitCurlApiFormatXml, + eTwitCurlApiFormatMax + } eTwitCurlApiFormatType; + + typedef enum _eTwitCurlProtocolType + { + eTwitCurlProtocolHttps = 0, + eTwitCurlProtocolHttp, + eTwitCurlProtocolMax + } eTwitCurlProtocolType; +}; + +/* twitCurl class */ +class twitCurl +{ +public: + twitCurl(); + ~twitCurl(); + + /* Twitter OAuth authorization methods */ + oAuth& getOAuth(); + bool oAuthRequestToken( std::string& authorizeUrl /* out */ ); + bool oAuthAccessToken(); + bool oAuthHandlePIN( const std::string& authorizeUrl /* in */ ); + + /* Twitter login APIs, set once and forget */ + std::string& getTwitterUsername(); + std::string& getTwitterPassword(); + void setTwitterUsername( std::string& userName /* in */ ); + void setTwitterPassword( std::string& passWord /* in */ ); + + /* Twitter search APIs */ + bool search( std::string& searchQuery /* in */, std::string resultCount = "" /* in */ ); + + /* Twitter status APIs */ + bool statusUpdate( std::string& newStatus /* in */, std::string inReplyToStatusId = "" /* in */ ); + bool statusShowById( std::string& statusId /* in */ ); + bool statusDestroyById( std::string& statusId /* in */ ); + bool retweetById( std::string& statusId /* in */ ); + + /* Twitter timeline APIs */ + bool timelineHomeGet( std::string sinceId = "" /* in */ ); + bool timelinePublicGet(); + bool timelineFriendsGet(); + bool timelineUserGet( bool trimUser /* in */, bool includeRetweets /* in */, + unsigned int tweetCount /* in */, + std::string userInfo = "" /* in */, + bool isUserId = false /* in */ ); + bool featuredUsersGet(); + bool mentionsGet( std::string sinceId = "" /* in */ ); + + /* Twitter user APIs */ + bool userLookup( std::vector &userInfo /* in */, bool isUserId = false /* in */ ); + bool userGet( std::string& userInfo /* in */, bool isUserId = false /* in */ ); + bool friendsGet( std::string userInfo = "" /* in */, bool isUserId = false /* in */ ); + bool followersGet( std::string userInfo = "" /* in */, bool isUserId = false /* in */ ); + + /* Twitter direct message APIs */ + bool directMessageGet( std::string sinceId = "" /* in */ ); + bool directMessageSend( std::string& userInfo /* in */, std::string& dMsg /* in */, bool isUserId = false /* in */ ); + bool directMessageGetSent(); + bool directMessageDestroyById( std::string& dMsgId /* in */ ); + + /* Twitter friendships APIs */ + bool friendshipCreate( std::string& userInfo /* in */, bool isUserId = false /* in */ ); + bool friendshipDestroy( std::string& userInfo /* in */, bool isUserId = false /* in */ ); + bool friendshipShow( std::string& userInfo /* in */, bool isUserId = false /* in */ ); + + /* Twitter social graphs APIs */ + bool friendsIdsGet( std::string& nextCursor /* in */, + std::string& userInfo /* in */, bool isUserId = false /* in */ ); + bool followersIdsGet( std::string& nextCursor /* in */, + std::string& userInfo /* in */, bool isUserId = false /* in */ ); + + /* Twitter account APIs */ + bool accountRateLimitGet(); + bool accountVerifyCredGet(); + + /* Twitter favorites APIs */ + bool favoriteGet(); + bool favoriteCreate( std::string& statusId /* in */ ); + bool favoriteDestroy( std::string& statusId /* in */ ); + + /* Twitter block APIs */ + bool blockCreate( std::string& userInfo /* in */ ); + bool blockDestroy( std::string& userInfo /* in */ ); + bool blockListGet( std::string& nextCursor /* in */, + bool includeEntities /* in */, bool skipStatus /* in */ ); + bool blockIdsGet( std::string& nextCursor /* in */, bool stringifyIds /* in */ ); + + /* Twitter search APIs */ + bool savedSearchGet(); + bool savedSearchCreate( std::string& query /* in */ ); + bool savedSearchShow( std::string& searchId /* in */ ); + bool savedSearchDestroy( std::string& searchId /* in */ ); + + /* Twitter trends APIs (JSON) */ + bool trendsGet(); + bool trendsDailyGet(); + bool trendsWeeklyGet(); + bool trendsCurrentGet(); + bool trendsAvailableGet(); + + /* cURL APIs */ + bool isCurlInit(); + void getLastWebResponse( std::string& outWebResp /* out */ ); + void getLastCurlError( std::string& outErrResp /* out */); + + /* Internal cURL related methods */ + int saveLastWebResponse( char*& data, size_t size ); + + /* cURL proxy APIs */ + std::string& getProxyServerIp(); + std::string& getProxyServerPort(); + std::string& getProxyUserName(); + std::string& getProxyPassword(); + void setProxyServerIp( std::string& proxyServerIp /* in */ ); + void setProxyServerPort( std::string& proxyServerPort /* in */ ); + void setProxyUserName( std::string& proxyUserName /* in */ ); + void setProxyPassword( std::string& proxyPassword /* in */ ); + + /* Clones this object */ + twitCurl* clone(); + +private: + /* cURL data */ + CURL* m_curlHandle; + char* m_errorBuffer; + std::string m_callbackData; + + /* cURL flags */ + bool m_curlProxyParamsSet; + bool m_curlLoginParamsSet; + bool m_curlCallbackParamsSet; + + /* cURL proxy data */ + std::string m_proxyServerIp; + std::string m_proxyServerPort; + std::string m_proxyUserName; + std::string m_proxyPassword; + + /* Twitter data */ + std::string m_twitterUsername; + std::string m_twitterPassword; + + /* Twitter API type */ + twitCurlTypes::eTwitCurlApiFormatType m_eApiFormatType; + twitCurlTypes::eTwitCurlProtocolType m_eProtocolType; + + /* OAuth data */ + oAuth m_oAuth; + + /* Private methods */ + void clearCurlCallbackBuffers(); + void prepareCurlProxy(); + void prepareCurlCallback(); + void prepareCurlUserPass(); + void prepareStandardParams(); + bool performGet( const std::string& getUrl ); + bool performGetInternal( const std::string& getUrl, + const std::string& oAuthHttpHeader ); + bool performDelete( const std::string& deleteUrl ); + bool performPost( const std::string& postUrl, std::string dataStr = "" ); + + /* Internal cURL related methods */ + static int curlCallback( char* data, size_t size, size_t nmemb, twitCurl* pTwitCurlObj ); +}; + + +/* Private functions */ +void utilMakeCurlParams( std::string& outStr, std::string& inParam1, std::string& inParam2 ); +void utilMakeUrlForUser( std::string& outUrl, const std::string& baseUrl, std::string& userInfo, bool isUserId ); + +#endif // _TWITCURL_H_ diff --git a/backends/twitter/libtwitcurl/twitcurl.plg b/backends/twitter/libtwitcurl/twitcurl.plg index 117e130f..d975a9ab 100644 --- a/backends/twitter/libtwitcurl/twitcurl.plg +++ b/backends/twitter/libtwitcurl/twitcurl.plg @@ -1,37 +1,37 @@ - - -
-

Build Log

-

---------------------Configuration: twitcurl - Win32 Release-------------------- -

-

Command Lines

-Creating temporary file "C:\DOCUME~1\Mahesh\LOCALS~1\Temp\RSP239.tmp" with contents -[ -/nologo /ML /W3 /GX /O2 /I "./curl" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"Release/twitcurl.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c -"C:\Projects\twitcurl\base64.cpp" -"C:\Projects\twitcurl\HMAC_SHA1.cpp" -"C:\Projects\twitcurl\oauthlib.cpp" -"C:\Projects\twitcurl\SHA1.cpp" -"C:\Projects\twitcurl\twitcurl.cpp" -"C:\Projects\twitcurl\urlencode.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\Mahesh\LOCALS~1\Temp\RSP239.tmp" -Creating command line "link.exe -lib /nologo /out:"Release\twitcurl.lib" .\Release\base64.obj .\Release\HMAC_SHA1.obj .\Release\oauthlib.obj .\Release\SHA1.obj .\Release\twitcurl.obj .\Release\urlencode.obj " -

Output Window

-Compiling... -base64.cpp -HMAC_SHA1.cpp -oauthlib.cpp -SHA1.cpp -twitcurl.cpp -urlencode.cpp -Creating library... - - - -

Results

-twitcurl.lib - 0 error(s), 0 warning(s) -
- - + + +
+

Build Log

+

+--------------------Configuration: twitcurl - Win32 Release-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\Mahesh\LOCALS~1\Temp\RSP239.tmp" with contents +[ +/nologo /ML /W3 /GX /O2 /I "./curl" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"Release/twitcurl.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c +"C:\Projects\twitcurl\base64.cpp" +"C:\Projects\twitcurl\HMAC_SHA1.cpp" +"C:\Projects\twitcurl\oauthlib.cpp" +"C:\Projects\twitcurl\SHA1.cpp" +"C:\Projects\twitcurl\twitcurl.cpp" +"C:\Projects\twitcurl\urlencode.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\Mahesh\LOCALS~1\Temp\RSP239.tmp" +Creating command line "link.exe -lib /nologo /out:"Release\twitcurl.lib" .\Release\base64.obj .\Release\HMAC_SHA1.obj .\Release\oauthlib.obj .\Release\SHA1.obj .\Release\twitcurl.obj .\Release\urlencode.obj " +

Output Window

+Compiling... +base64.cpp +HMAC_SHA1.cpp +oauthlib.cpp +SHA1.cpp +twitcurl.cpp +urlencode.cpp +Creating library... + + + +

Results

+twitcurl.lib - 0 error(s), 0 warning(s) +
+ + diff --git a/backends/twitter/libtwitcurl/twitcurl.sln b/backends/twitter/libtwitcurl/twitcurl.sln index b416f7d2..ec9fbc96 100644 --- a/backends/twitter/libtwitcurl/twitcurl.sln +++ b/backends/twitter/libtwitcurl/twitcurl.sln @@ -1,20 +1,20 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "twitcurl", "twitcurl.vcproj", "{00175D8C-EA44-48AE-AC59-B3B7BE04E65C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {00175D8C-EA44-48AE-AC59-B3B7BE04E65C}.Debug|Win32.ActiveCfg = Release|Win32 - {00175D8C-EA44-48AE-AC59-B3B7BE04E65C}.Debug|Win32.Build.0 = Release|Win32 - {00175D8C-EA44-48AE-AC59-B3B7BE04E65C}.Release|Win32.ActiveCfg = Release|Win32 - {00175D8C-EA44-48AE-AC59-B3B7BE04E65C}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "twitcurl", "twitcurl.vcproj", "{00175D8C-EA44-48AE-AC59-B3B7BE04E65C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {00175D8C-EA44-48AE-AC59-B3B7BE04E65C}.Debug|Win32.ActiveCfg = Release|Win32 + {00175D8C-EA44-48AE-AC59-B3B7BE04E65C}.Debug|Win32.Build.0 = Release|Win32 + {00175D8C-EA44-48AE-AC59-B3B7BE04E65C}.Release|Win32.ActiveCfg = Release|Win32 + {00175D8C-EA44-48AE-AC59-B3B7BE04E65C}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/backends/twitter/libtwitcurl/twitcurl.vcproj b/backends/twitter/libtwitcurl/twitcurl.vcproj index f62da3eb..9de63b22 100644 --- a/backends/twitter/libtwitcurl/twitcurl.vcproj +++ b/backends/twitter/libtwitcurl/twitcurl.vcproj @@ -1,347 +1,347 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/backends/twitter/libtwitcurl/twitcurlurls.h b/backends/twitter/libtwitcurl/twitcurlurls.h index 4f91961d..418151ea 100644 --- a/backends/twitter/libtwitcurl/twitcurlurls.h +++ b/backends/twitter/libtwitcurl/twitcurlurls.h @@ -1,156 +1,156 @@ -#ifndef _TWITCURLURLS_H_ -#define _TWITCURLURLS_H_ - -#include -#include - -/* Default values used in twitcurl */ -namespace twitCurlDefaults -{ - /* Constants */ - const int TWITCURL_DEFAULT_BUFFSIZE = 1024; - const std::string TWITCURL_COLON = ":"; - const char TWITCURL_EOS = '\0'; - const unsigned int MAX_TIMELINE_TWEET_COUNT = 200; - - /* Miscellaneous data used to build twitter URLs*/ - const std::string TWITCURL_STATUSSTRING = "status="; - const std::string TWITCURL_TEXTSTRING = "text="; - const std::string TWITCURL_QUERYSTRING = "query="; - const std::string TWITCURL_SEARCHQUERYSTRING = "q="; - const std::string TWITCURL_SCREENNAME = "screen_name="; - const std::string TWITCURL_USERID = "user_id="; - const std::string TWITCURL_EXTENSIONFORMATS[2] = { ".json", - ".xml" - }; - const std::string TWITCURL_PROTOCOLS[2] = { "https://", - "http://" - }; - const std::string TWITCURL_TARGETSCREENNAME = "target_screen_name="; - const std::string TWITCURL_TARGETUSERID = "target_id="; - const std::string TWITCURL_SINCEID = "since_id="; - const std::string TWITCURL_TRIMUSER = "trim_user=true"; - const std::string TWITCURL_INCRETWEETS = "include_rts=true"; - const std::string TWITCURL_COUNT = "count="; - const std::string TWITCURL_NEXT_CURSOR = "cursor="; - const std::string TWITCURL_SKIP_STATUS = "skip_status="; - const std::string TWITCURL_INCLUDE_ENTITIES = "include_entities="; - const std::string TWITCURL_STRINGIFY_IDS = "stringify_ids="; - const std::string TWITCURL_INREPLYTOSTATUSID = "in_reply_to_status_id="; - - /* URL separators */ - const std::string TWITCURL_URL_SEP_AMP = "&"; - const std::string TWITCURL_URL_SEP_QUES = "?"; -}; - -/* Default twitter URLs */ -namespace twitterDefaults -{ - /* Base URL */ - const std::string TWITCURL_BASE_URL = "api.twitter.com/1.1/"; - - /* Search URLs */ - const std::string TWITCURL_SEARCH_URL = TWITCURL_BASE_URL + "search/tweets"; - - /* Status URLs */ - const std::string TWITCURL_STATUSUPDATE_URL = TWITCURL_BASE_URL + "statuses/update"; - const std::string TWITCURL_STATUSSHOW_URL = TWITCURL_BASE_URL + "statuses/show/"; - const std::string TWITCURL_STATUDESTROY_URL = TWITCURL_BASE_URL + "statuses/destroy/"; - const std::string TWITCURL_RETWEET_URL = TWITCURL_BASE_URL + "statuses/retweet/"; - - /* Timeline URLs */ - const std::string TWITCURL_HOME_TIMELINE_URL = TWITCURL_BASE_URL + "statuses/home_timeline"; - const std::string TWITCURL_PUBLIC_TIMELINE_URL = TWITCURL_BASE_URL + "statuses/public_timeline"; - const std::string TWITCURL_FEATURED_USERS_URL = TWITCURL_BASE_URL + "statuses/featured"; - const std::string TWITCURL_FRIENDS_TIMELINE_URL = TWITCURL_BASE_URL + "statuses/friends_timeline"; - const std::string TWITCURL_MENTIONS_URL = TWITCURL_BASE_URL + "statuses/mentions"; - const std::string TWITCURL_USERTIMELINE_URL = TWITCURL_BASE_URL + "statuses/user_timeline"; - - /* Users URLs */ - const std::string TWITCURL_LOOKUPUSERS_URL = TWITCURL_BASE_URL + "users/lookup"; - const std::string TWITCURL_SHOWUSERS_URL = TWITCURL_BASE_URL + "users/show"; - const std::string TWITCURL_SHOWFRIENDS_URL = TWITCURL_BASE_URL + "statuses/friends"; - const std::string TWITCURL_SHOWFOLLOWERS_URL = TWITCURL_BASE_URL + "statuses/followers"; - - /* Direct messages URLs */ - const std::string TWITCURL_DIRECTMESSAGES_URL = TWITCURL_BASE_URL + "direct_messages"; - const std::string TWITCURL_DIRECTMESSAGENEW_URL = TWITCURL_BASE_URL + "direct_messages/new"; - const std::string TWITCURL_DIRECTMESSAGESSENT_URL = TWITCURL_BASE_URL + "direct_messages/sent"; - const std::string TWITCURL_DIRECTMESSAGEDESTROY_URL = TWITCURL_BASE_URL + "direct_messages/destroy/"; - - /* Friendships URLs */ - const std::string TWITCURL_FRIENDSHIPSCREATE_URL = TWITCURL_BASE_URL + "friendships/create"; - const std::string TWITCURL_FRIENDSHIPSDESTROY_URL = TWITCURL_BASE_URL + "friendships/destroy"; - const std::string TWITCURL_FRIENDSHIPSSHOW_URL = TWITCURL_BASE_URL + "friendships/show"; - - /* Social graphs URLs */ - const std::string TWITCURL_FRIENDSIDS_URL = TWITCURL_BASE_URL + "friends/ids"; - const std::string TWITCURL_FOLLOWERSIDS_URL = TWITCURL_BASE_URL + "followers/ids"; - - /* Account URLs */ - const std::string TWITCURL_ACCOUNTRATELIMIT_URL = TWITCURL_BASE_URL + "account/rate_limit_status"; - const std::string TWITCURL_ACCOUNTVERIFYCRED_URL = TWITCURL_BASE_URL + "account/verify_credentials"; - - /* Favorites URLs */ - const std::string TWITCURL_FAVORITESGET_URL = TWITCURL_BASE_URL + "favorites"; - const std::string TWITCURL_FAVORITECREATE_URL = TWITCURL_BASE_URL + "favorites/create/"; - const std::string TWITCURL_FAVORITEDESTROY_URL = TWITCURL_BASE_URL + "favorites/destroy/"; - - /* Block URLs */ - const std::string TWITCURL_BLOCKSCREATE_URL = TWITCURL_BASE_URL + "blocks/create/"; - const std::string TWITCURL_BLOCKSDESTROY_URL = TWITCURL_BASE_URL + "blocks/destroy/"; - const std::string TWITCURL_BLOCKSLIST_URL = TWITCURL_BASE_URL + "blocks/list"; - const std::string TWITCURL_BLOCKSIDS_URL = TWITCURL_BASE_URL + "blocks/ids"; - - /* Saved Search URLs */ - const std::string TWITCURL_SAVEDSEARCHGET_URL = TWITCURL_BASE_URL + "saved_searches"; - const std::string TWITCURL_SAVEDSEARCHSHOW_URL = TWITCURL_BASE_URL + "saved_searches/show/"; - const std::string TWITCURL_SAVEDSEARCHCREATE_URL = TWITCURL_BASE_URL + "saved_searches/create"; - const std::string TWITCURL_SAVEDSEARCHDESTROY_URL = TWITCURL_BASE_URL + "saved_searches/destroy/"; - - /* Trends URLs */ - const std::string TWITCURL_TRENDS_URL = TWITCURL_BASE_URL + "trends"; - const std::string TWITCURL_TRENDSDAILY_URL = TWITCURL_BASE_URL + "trends/daily"; - const std::string TWITCURL_TRENDSCURRENT_URL = TWITCURL_BASE_URL + "trends/current"; - const std::string TWITCURL_TRENDSWEEKLY_URL = TWITCURL_BASE_URL + "trends/weekly"; - const std::string TWITCURL_TRENDSAVAILABLE_URL = TWITCURL_BASE_URL + "trends/available"; - -}; - -namespace oAuthLibDefaults -{ - /* Constants */ - const int OAUTHLIB_BUFFSIZE = 1024; - const int OAUTHLIB_BUFFSIZE_LARGE = 1024; - const std::string OAUTHLIB_CONSUMERKEY_KEY = "oauth_consumer_key"; - const std::string OAUTHLIB_CALLBACK_KEY = "oauth_callback"; - const std::string OAUTHLIB_VERSION_KEY = "oauth_version"; - const std::string OAUTHLIB_SIGNATUREMETHOD_KEY = "oauth_signature_method"; - const std::string OAUTHLIB_SIGNATURE_KEY = "oauth_signature"; - const std::string OAUTHLIB_TIMESTAMP_KEY = "oauth_timestamp"; - const std::string OAUTHLIB_NONCE_KEY = "oauth_nonce"; - const std::string OAUTHLIB_TOKEN_KEY = "oauth_token"; - const std::string OAUTHLIB_TOKENSECRET_KEY = "oauth_token_secret"; - const std::string OAUTHLIB_VERIFIER_KEY = "oauth_verifier"; - const std::string OAUTHLIB_SCREENNAME_KEY = "screen_name"; - const std::string OAUTHLIB_AUTHENTICITY_TOKEN_KEY = "authenticity_token"; - const std::string OAUTHLIB_SESSIONUSERNAME_KEY = "session[username_or_email]"; - const std::string OAUTHLIB_SESSIONPASSWORD_KEY = "session[password]"; - const std::string OAUTHLIB_AUTHENTICITY_TOKEN_TWITTER_RESP_KEY = "authenticity_token\" type=\"hidden\" value=\""; - const std::string OAUTHLIB_TOKEN_TWITTER_RESP_KEY = "oauth_token\" type=\"hidden\" value=\""; - const std::string OAUTHLIB_PIN_TWITTER_RESP_KEY = "code-desc\">"; - const std::string OAUTHLIB_TOKEN_END_TAG_TWITTER_RESP = "\" />"; - const std::string OAUTHLIB_PIN_END_TAG_TWITTER_RESP = ""; - - const std::string OAUTHLIB_AUTHHEADER_STRING = "Authorization: OAuth "; -}; - -namespace oAuthTwitterApiUrls -{ - /* Twitter OAuth API URLs */ - const std::string OAUTHLIB_TWITTER_REQUEST_TOKEN_URL = "api.twitter.com/oauth/request_token"; - const std::string OAUTHLIB_TWITTER_AUTHORIZE_URL = "api.twitter.com/oauth/authorize?oauth_token="; - const std::string OAUTHLIB_TWITTER_ACCESS_TOKEN_URL = "api.twitter.com/oauth/access_token"; -}; - -#endif // _TWITCURLURLS_H_ +#ifndef _TWITCURLURLS_H_ +#define _TWITCURLURLS_H_ + +#include +#include + +/* Default values used in twitcurl */ +namespace twitCurlDefaults +{ + /* Constants */ + const int TWITCURL_DEFAULT_BUFFSIZE = 1024; + const std::string TWITCURL_COLON = ":"; + const char TWITCURL_EOS = '\0'; + const unsigned int MAX_TIMELINE_TWEET_COUNT = 200; + + /* Miscellaneous data used to build twitter URLs*/ + const std::string TWITCURL_STATUSSTRING = "status="; + const std::string TWITCURL_TEXTSTRING = "text="; + const std::string TWITCURL_QUERYSTRING = "query="; + const std::string TWITCURL_SEARCHQUERYSTRING = "q="; + const std::string TWITCURL_SCREENNAME = "screen_name="; + const std::string TWITCURL_USERID = "user_id="; + const std::string TWITCURL_EXTENSIONFORMATS[2] = { ".json", + ".xml" + }; + const std::string TWITCURL_PROTOCOLS[2] = { "https://", + "http://" + }; + const std::string TWITCURL_TARGETSCREENNAME = "target_screen_name="; + const std::string TWITCURL_TARGETUSERID = "target_id="; + const std::string TWITCURL_SINCEID = "since_id="; + const std::string TWITCURL_TRIMUSER = "trim_user=true"; + const std::string TWITCURL_INCRETWEETS = "include_rts=true"; + const std::string TWITCURL_COUNT = "count="; + const std::string TWITCURL_NEXT_CURSOR = "cursor="; + const std::string TWITCURL_SKIP_STATUS = "skip_status="; + const std::string TWITCURL_INCLUDE_ENTITIES = "include_entities="; + const std::string TWITCURL_STRINGIFY_IDS = "stringify_ids="; + const std::string TWITCURL_INREPLYTOSTATUSID = "in_reply_to_status_id="; + + /* URL separators */ + const std::string TWITCURL_URL_SEP_AMP = "&"; + const std::string TWITCURL_URL_SEP_QUES = "?"; +}; + +/* Default twitter URLs */ +namespace twitterDefaults +{ + /* Base URL */ + const std::string TWITCURL_BASE_URL = "api.twitter.com/1.1/"; + + /* Search URLs */ + const std::string TWITCURL_SEARCH_URL = TWITCURL_BASE_URL + "search/tweets"; + + /* Status URLs */ + const std::string TWITCURL_STATUSUPDATE_URL = TWITCURL_BASE_URL + "statuses/update"; + const std::string TWITCURL_STATUSSHOW_URL = TWITCURL_BASE_URL + "statuses/show/"; + const std::string TWITCURL_STATUDESTROY_URL = TWITCURL_BASE_URL + "statuses/destroy/"; + const std::string TWITCURL_RETWEET_URL = TWITCURL_BASE_URL + "statuses/retweet/"; + + /* Timeline URLs */ + const std::string TWITCURL_HOME_TIMELINE_URL = TWITCURL_BASE_URL + "statuses/home_timeline"; + const std::string TWITCURL_PUBLIC_TIMELINE_URL = TWITCURL_BASE_URL + "statuses/public_timeline"; + const std::string TWITCURL_FEATURED_USERS_URL = TWITCURL_BASE_URL + "statuses/featured"; + const std::string TWITCURL_FRIENDS_TIMELINE_URL = TWITCURL_BASE_URL + "statuses/friends_timeline"; + const std::string TWITCURL_MENTIONS_URL = TWITCURL_BASE_URL + "statuses/mentions"; + const std::string TWITCURL_USERTIMELINE_URL = TWITCURL_BASE_URL + "statuses/user_timeline"; + + /* Users URLs */ + const std::string TWITCURL_LOOKUPUSERS_URL = TWITCURL_BASE_URL + "users/lookup"; + const std::string TWITCURL_SHOWUSERS_URL = TWITCURL_BASE_URL + "users/show"; + const std::string TWITCURL_SHOWFRIENDS_URL = TWITCURL_BASE_URL + "statuses/friends"; + const std::string TWITCURL_SHOWFOLLOWERS_URL = TWITCURL_BASE_URL + "statuses/followers"; + + /* Direct messages URLs */ + const std::string TWITCURL_DIRECTMESSAGES_URL = TWITCURL_BASE_URL + "direct_messages"; + const std::string TWITCURL_DIRECTMESSAGENEW_URL = TWITCURL_BASE_URL + "direct_messages/new"; + const std::string TWITCURL_DIRECTMESSAGESSENT_URL = TWITCURL_BASE_URL + "direct_messages/sent"; + const std::string TWITCURL_DIRECTMESSAGEDESTROY_URL = TWITCURL_BASE_URL + "direct_messages/destroy/"; + + /* Friendships URLs */ + const std::string TWITCURL_FRIENDSHIPSCREATE_URL = TWITCURL_BASE_URL + "friendships/create"; + const std::string TWITCURL_FRIENDSHIPSDESTROY_URL = TWITCURL_BASE_URL + "friendships/destroy"; + const std::string TWITCURL_FRIENDSHIPSSHOW_URL = TWITCURL_BASE_URL + "friendships/show"; + + /* Social graphs URLs */ + const std::string TWITCURL_FRIENDSIDS_URL = TWITCURL_BASE_URL + "friends/ids"; + const std::string TWITCURL_FOLLOWERSIDS_URL = TWITCURL_BASE_URL + "followers/ids"; + + /* Account URLs */ + const std::string TWITCURL_ACCOUNTRATELIMIT_URL = TWITCURL_BASE_URL + "account/rate_limit_status"; + const std::string TWITCURL_ACCOUNTVERIFYCRED_URL = TWITCURL_BASE_URL + "account/verify_credentials"; + + /* Favorites URLs */ + const std::string TWITCURL_FAVORITESGET_URL = TWITCURL_BASE_URL + "favorites"; + const std::string TWITCURL_FAVORITECREATE_URL = TWITCURL_BASE_URL + "favorites/create/"; + const std::string TWITCURL_FAVORITEDESTROY_URL = TWITCURL_BASE_URL + "favorites/destroy/"; + + /* Block URLs */ + const std::string TWITCURL_BLOCKSCREATE_URL = TWITCURL_BASE_URL + "blocks/create/"; + const std::string TWITCURL_BLOCKSDESTROY_URL = TWITCURL_BASE_URL + "blocks/destroy/"; + const std::string TWITCURL_BLOCKSLIST_URL = TWITCURL_BASE_URL + "blocks/list"; + const std::string TWITCURL_BLOCKSIDS_URL = TWITCURL_BASE_URL + "blocks/ids"; + + /* Saved Search URLs */ + const std::string TWITCURL_SAVEDSEARCHGET_URL = TWITCURL_BASE_URL + "saved_searches"; + const std::string TWITCURL_SAVEDSEARCHSHOW_URL = TWITCURL_BASE_URL + "saved_searches/show/"; + const std::string TWITCURL_SAVEDSEARCHCREATE_URL = TWITCURL_BASE_URL + "saved_searches/create"; + const std::string TWITCURL_SAVEDSEARCHDESTROY_URL = TWITCURL_BASE_URL + "saved_searches/destroy/"; + + /* Trends URLs */ + const std::string TWITCURL_TRENDS_URL = TWITCURL_BASE_URL + "trends"; + const std::string TWITCURL_TRENDSDAILY_URL = TWITCURL_BASE_URL + "trends/daily"; + const std::string TWITCURL_TRENDSCURRENT_URL = TWITCURL_BASE_URL + "trends/current"; + const std::string TWITCURL_TRENDSWEEKLY_URL = TWITCURL_BASE_URL + "trends/weekly"; + const std::string TWITCURL_TRENDSAVAILABLE_URL = TWITCURL_BASE_URL + "trends/available"; + +}; + +namespace oAuthLibDefaults +{ + /* Constants */ + const int OAUTHLIB_BUFFSIZE = 1024; + const int OAUTHLIB_BUFFSIZE_LARGE = 1024; + const std::string OAUTHLIB_CONSUMERKEY_KEY = "oauth_consumer_key"; + const std::string OAUTHLIB_CALLBACK_KEY = "oauth_callback"; + const std::string OAUTHLIB_VERSION_KEY = "oauth_version"; + const std::string OAUTHLIB_SIGNATUREMETHOD_KEY = "oauth_signature_method"; + const std::string OAUTHLIB_SIGNATURE_KEY = "oauth_signature"; + const std::string OAUTHLIB_TIMESTAMP_KEY = "oauth_timestamp"; + const std::string OAUTHLIB_NONCE_KEY = "oauth_nonce"; + const std::string OAUTHLIB_TOKEN_KEY = "oauth_token"; + const std::string OAUTHLIB_TOKENSECRET_KEY = "oauth_token_secret"; + const std::string OAUTHLIB_VERIFIER_KEY = "oauth_verifier"; + const std::string OAUTHLIB_SCREENNAME_KEY = "screen_name"; + const std::string OAUTHLIB_AUTHENTICITY_TOKEN_KEY = "authenticity_token"; + const std::string OAUTHLIB_SESSIONUSERNAME_KEY = "session[username_or_email]"; + const std::string OAUTHLIB_SESSIONPASSWORD_KEY = "session[password]"; + const std::string OAUTHLIB_AUTHENTICITY_TOKEN_TWITTER_RESP_KEY = "authenticity_token\" type=\"hidden\" value=\""; + const std::string OAUTHLIB_TOKEN_TWITTER_RESP_KEY = "oauth_token\" type=\"hidden\" value=\""; + const std::string OAUTHLIB_PIN_TWITTER_RESP_KEY = "code-desc\">"; + const std::string OAUTHLIB_TOKEN_END_TAG_TWITTER_RESP = "\" />"; + const std::string OAUTHLIB_PIN_END_TAG_TWITTER_RESP = ""; + + const std::string OAUTHLIB_AUTHHEADER_STRING = "Authorization: OAuth "; +}; + +namespace oAuthTwitterApiUrls +{ + /* Twitter OAuth API URLs */ + const std::string OAUTHLIB_TWITTER_REQUEST_TOKEN_URL = "api.twitter.com/oauth/request_token"; + const std::string OAUTHLIB_TWITTER_AUTHORIZE_URL = "api.twitter.com/oauth/authorize?oauth_token="; + const std::string OAUTHLIB_TWITTER_ACCESS_TOKEN_URL = "api.twitter.com/oauth/access_token"; +}; + +#endif // _TWITCURLURLS_H_ diff --git a/backends/twitter/libtwitcurl/urlencode.cpp b/backends/twitter/libtwitcurl/urlencode.cpp index 8a906b25..59bb1468 100644 --- a/backends/twitter/libtwitcurl/urlencode.cpp +++ b/backends/twitter/libtwitcurl/urlencode.cpp @@ -1,40 +1,40 @@ -#include "urlencode.h" - -std::string char2hex( char dec ) -{ - char dig1 = (dec&0xF0)>>4; - char dig2 = (dec&0x0F); - if ( 0<= dig1 && dig1<= 9) dig1+=48; //0,48 in ascii - if (10<= dig1 && dig1<=15) dig1+=65-10; //A,65 in ascii - if ( 0<= dig2 && dig2<= 9) dig2+=48; - if (10<= dig2 && dig2<=15) dig2+=65-10; - - std::string r; - r.append( &dig1, 1); - r.append( &dig2, 1); - return r; -} - -std::string urlencode( const std::string &c ) -{ - - std::string escaped; - int max = c.length(); - for(int i=0; i>4; + char dig2 = (dec&0x0F); + if ( 0<= dig1 && dig1<= 9) dig1+=48; //0,48 in ascii + if (10<= dig1 && dig1<=15) dig1+=65-10; //A,65 in ascii + if ( 0<= dig2 && dig2<= 9) dig2+=48; + if (10<= dig2 && dig2<=15) dig2+=65-10; + + std::string r; + r.append( &dig1, 1); + r.append( &dig2, 1); + return r; +} + +std::string urlencode( const std::string &c ) +{ + + std::string escaped; + int max = c.length(); + for(int i=0; i -#include - -std::string char2hex( char dec ); -std::string urlencode( const std::string &c ); - +#ifndef __URLENCODE_H__ +#define __URLENCODE_H__ + +#include +#include + +std::string char2hex( char dec ); +std::string urlencode( const std::string &c ); + #endif // __URLENCODE_H__ \ No newline at end of file diff --git a/cmake_modules/CommuniConfig.cmake b/cmake_modules/CommuniConfig.cmake index e2315310..31add02b 100644 --- a/cmake_modules/CommuniConfig.cmake +++ b/cmake_modules/CommuniConfig.cmake @@ -1,13 +1,14 @@ find_package(Qt4) include( ${QT_USE_FILE} ) -FIND_LIBRARY(IRC_LIBRARY NAMES Communi PATHS ${QT_LIBRARY_DIR}) -FIND_PATH(IRC_INCLUDE_DIR NAMES "ircglobal.h" PATHS ${QT_INCLUDE_DIR} PATH_SUFFIXES Communi) +FIND_LIBRARY(IRC_LIBRARY NAMES IrcCore PATHS ${QT_LIBRARY_DIR}) +FIND_PATH(IRC_INCLUDE_DIR NAMES "IrcCore/ircglobal.h" PATHS ${QT_INCLUDE_DIR} PATH_SUFFIXES Communi) # message( STATUS ${IRC_LIBRARY}) if( IRC_LIBRARY AND IRC_INCLUDE_DIR ) - message( STATUS "Found libCommuni ${IRC_LIBRARY}, ${IRC_INCLUDE_DIR}") - set( IRC_FOUND 1 ) + set(IRC_INCLUDE_DIR ${IRC_INCLUDE_DIR}/IrcCore ${IRC_INCLUDE_DIR}/IrcUtil ${IRC_INCLUDE_DIR}/IrcModel) + message( STATUS "Found libCommuni ${IRC_LIBRARY}, ${IRC_INCLUDE_DIR}") + set( IRC_FOUND 1 ) else() - message( STATUS "Could NOT find libCommuni" ) + message( STATUS "Could NOT find libCommuni" ) endif() diff --git a/cmake_modules/SwiftenConfig.cmake b/cmake_modules/SwiftenConfig.cmake index e79bb785..e0357c03 100644 --- a/cmake_modules/SwiftenConfig.cmake +++ b/cmake_modules/SwiftenConfig.cmake @@ -1,4 +1,4 @@ -FIND_LIBRARY(SWIFTEN_LIBRARY NAMES Swiften HINTS ../lib) +FIND_LIBRARY(SWIFTEN_LIBRARY NAMES Swiften Swiften3 HINTS ../lib) FIND_PATH(SWIFTEN_INCLUDE_DIR NAMES "Swiften/Swiften.h" PATH_SUFFIXES libSwiften Swiften HINTS ../include) if( SWIFTEN_LIBRARY AND SWIFTEN_INCLUDE_DIR ) @@ -10,8 +10,15 @@ if( SWIFTEN_LIBRARY AND SWIFTEN_INCLUDE_DIR ) OUTPUT_VARIABLE SWIFTEN_LIB) string(REGEX REPLACE "[\r\n]" " " SWIFTEN_LIB ${SWIFTEN_LIB}) string(REGEX REPLACE " +$" "" SWIFTEN_LIB ${SWIFTEN_LIB}) - string(REGEX REPLACE " " ";" SWIFTEN_LIB ${SWIFTEN_LIB}) set(SWIFTEN_LIBRARY "") + if (APPLE) + string(REGEX MATCHALL "-framework [A-Za-z]+" APPLE_FRAMEWORKS ${SWIFTEN_LIB}) + foreach(framework ${APPLE_FRAMEWORKS}) + list(APPEND SWIFTEN_LIBRARY ${framework} ) + endforeach(framework) + string(REGEX REPLACE "-framework [A-Za-z]+" "" SWIFTEN_LIB ${SWIFTEN_LIB}) + endif(APPLE) + string(REGEX REPLACE " " ";" SWIFTEN_LIB ${SWIFTEN_LIB}) foreach(f ${SWIFTEN_LIB}) STRING(SUBSTRING ${f} 0 2 f_out) STRING(COMPARE EQUAL ${f_out} "/L" IS_PATH) diff --git a/cmake_modules/eventConfig.cmake b/cmake_modules/eventConfig.cmake index 263c0e0a..aba77891 100644 --- a/cmake_modules/eventConfig.cmake +++ b/cmake_modules/eventConfig.cmake @@ -1,4 +1,4 @@ -FIND_PATH(EVENT_INCLUDE_DIRS event.h PATH_SUFFIXES libev) +FIND_PATH(EVENT_INCLUDE_DIRS event.h ev.h PATH_SUFFIXES libev) SET(EVENT_NAMES ${EVENT_NAMES} ev libev) FIND_LIBRARY(EVENT_LIBRARIES NAMES ${EVENT_NAMES} PATH) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index b9a3ba43..1a79f805 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -1 +1 @@ -ADD_SUBDIRECTORY(transport) +ADD_SUBDIRECTORY(transport) diff --git a/include/Swiften/Elements/PubSubItem.cpp b/include/Swiften/Elements/PubSubItem.cpp deleted file mode 100644 index 730ad89e..00000000 --- a/include/Swiften/Elements/PubSubItem.cpp +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include - -namespace Swift { - -PubSubItem::PubSubItem() { -} - -} diff --git a/include/Swiften/Elements/PubSubItem.h b/include/Swiften/Elements/PubSubItem.h deleted file mode 100644 index f0b3ef70..00000000 --- a/include/Swiften/Elements/PubSubItem.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include - -#include -#include - -namespace Swift { - class PubSubItem : public Payload { - public: - PubSubItem(); - - void addPayload(boost::shared_ptr payload) { - payloads.push_back(payload); - } - - const std::vector > getPayloads() const { - return payloads; - } - - template - const std::vector > getPayloads() const { - std::vector > matched_payloads; - for (std::vector >::const_iterator i = payloads.begin(); i != payloads.end(); ++i) { - boost::shared_ptr result = boost::dynamic_pointer_cast(*i); - if (result) { - matched_payloads.push_back(result); - } - } - - return matched_payloads; - - } - - template - const boost::shared_ptr getPayload() const { - boost::shared_ptr result; - for (std::vector >::const_iterator i = payloads.begin(); i != payloads.end(); ++i) { - result = boost::dynamic_pointer_cast(*i); - if (result) { - return result; - } - } - - return result; - } - - const std::string& getId() const { return id; } - - void setId(const std::string& id) { - this->id = id; - } - - private: - std::vector > payloads; - std::string id; - }; -} diff --git a/include/Swiften/Elements/PubSubPayload.cpp b/include/Swiften/Elements/PubSubPayload.cpp deleted file mode 100644 index 663e8eb7..00000000 --- a/include/Swiften/Elements/PubSubPayload.cpp +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include - -namespace Swift { - -PubSubPayload::PubSubPayload() { -} - -} diff --git a/include/Swiften/Elements/PubSubPayload.h b/include/Swiften/Elements/PubSubPayload.h deleted file mode 100644 index 46c8b82e..00000000 --- a/include/Swiften/Elements/PubSubPayload.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include - -#include -#include - -namespace Swift { - class PubSubPayload : public Payload { - public: - PubSubPayload(); - - void addPayload(boost::shared_ptr payload) { - payloads.push_back(payload); - } - - const std::vector > getPayloads() const { - return payloads; - } - - template - const std::vector > getPayloads() const { - std::vector > matched_payloads; - for (std::vector >::const_iterator i = payloads.begin(); i != payloads.end(); ++i) { - boost::shared_ptr result = boost::dynamic_pointer_cast(*i); - if (result) { - matched_payloads.push_back(result); - } - } - - return matched_payloads; - - } - - template - const boost::shared_ptr getPayload() const { - boost::shared_ptr result; - for (std::vector >::const_iterator i = payloads.begin(); i != payloads.end(); ++i) { - result = boost::dynamic_pointer_cast(*i); - if (result) { - return result; - } - } - - return result; - } - - private: - std::vector > payloads; - }; -} diff --git a/include/Swiften/Elements/PubSubPublishPayload.cpp b/include/Swiften/Elements/PubSubPublishPayload.cpp deleted file mode 100644 index dec34e92..00000000 --- a/include/Swiften/Elements/PubSubPublishPayload.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include - -namespace Swift { - -PubSubPublishPayload::PubSubPublishPayload(const std::string &node) : - node(node) { - - } - -} diff --git a/include/Swiften/Elements/PubSubPublishPayload.h b/include/Swiften/Elements/PubSubPublishPayload.h deleted file mode 100644 index 930cca6b..00000000 --- a/include/Swiften/Elements/PubSubPublishPayload.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include - -#include -#include -#include -#include - -namespace Swift { - class PubSubPublishPayload : public Payload { - public: - enum Type { None, Pending, Subscribed, Unconfigured }; - - PubSubPublishPayload(const std::string &node = ""); - - void setNode(const std::string &node) { - this->node = node; - } - - const std::string &getNode() const { - return node; - } - - void addItem(const boost::shared_ptr &item) { - items.push_back(item); - } - - const std::vector > &getItems() const { - return items; - } - - private: - std::string node; - std::vector > items; - }; -} diff --git a/include/Swiften/Elements/PubSubSubscribePayload.cpp b/include/Swiften/Elements/PubSubSubscribePayload.cpp deleted file mode 100644 index 24aa6fd6..00000000 --- a/include/Swiften/Elements/PubSubSubscribePayload.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include - -namespace Swift { - -PubSubSubscribePayload::PubSubSubscribePayload(const JID &jid, const std::string &node) : - jid(jid), node(node) { - - } - -} diff --git a/include/Swiften/Elements/PubSubSubscribePayload.h b/include/Swiften/Elements/PubSubSubscribePayload.h deleted file mode 100644 index f2b011a2..00000000 --- a/include/Swiften/Elements/PubSubSubscribePayload.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include - -#include -#include -#include - -namespace Swift { - class PubSubSubscribePayload : public Payload { - public: - PubSubSubscribePayload(const JID &jid = JID(), const std::string &node = ""); - - void setJID(const JID &jid) { - this->jid = jid; - } - - const JID &getJID() const { - return jid; - } - - void setNode(const std::string &node) { - this->node = node; - } - - const std::string &getNode() const { - return node; - } - - private: - JID jid; - std::string node; - }; -} diff --git a/include/Swiften/Elements/PubSubSubscriptionPayload.cpp b/include/Swiften/Elements/PubSubSubscriptionPayload.cpp deleted file mode 100644 index 293505ec..00000000 --- a/include/Swiften/Elements/PubSubSubscriptionPayload.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include - -namespace Swift { - -PubSubSubscriptionPayload::PubSubSubscriptionPayload(const JID &jid, const std::string &node) : - jid(jid), node(node), type(None) { - - } - -} diff --git a/include/Swiften/Elements/PubSubSubscriptionPayload.h b/include/Swiften/Elements/PubSubSubscriptionPayload.h deleted file mode 100644 index c404e6ff..00000000 --- a/include/Swiften/Elements/PubSubSubscriptionPayload.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include - -#include -#include -#include - -namespace Swift { - class PubSubSubscriptionPayload : public Payload { - public: - enum Type { None, Pending, Subscribed, Unconfigured }; - - PubSubSubscriptionPayload(const JID &jid = JID(), const std::string &node = ""); - - void setJID(const JID &jid) { - this->jid = jid; - } - - const JID &getJID() const { - return jid; - } - - void setNode(const std::string &node) { - this->node = node; - } - - const std::string &getNode() const { - return node; - } - - void setId(const std::string &id) { - this->id = id; - } - - const std::string &getId() const { - return id; - } - - void setType(const Type &type) { - this->type = type; - } - - const Type &getType() const { - return type; - } - - private: - JID jid; - std::string node; - std::string id; - Type type; - }; -} diff --git a/include/Swiften/FileTransfer/CombinedOutgoingFileTransferManager.cpp b/include/Swiften/FileTransfer/CombinedOutgoingFileTransferManager.cpp index ac06ab75..102de374 100644 --- a/include/Swiften/FileTransfer/CombinedOutgoingFileTransferManager.cpp +++ b/include/Swiften/FileTransfer/CombinedOutgoingFileTransferManager.cpp @@ -43,8 +43,10 @@ boost::shared_ptr CombinedOutgoingFileTransferManager::cre //jsManager->getSession(receipient, idGenerator->generateID()); assert(jingleSession); jsManager->registerOutgoingSession(from, jingleSession); +#if !HAVE_SWIFTEN_3 boost::shared_ptr jingleFT = boost::shared_ptr(new OutgoingJingleFileTransfer(jingleSession, remoteFactory, localFactory, iqRouter, idGenerator, from, receipient, readBytestream, fileInfo, bytestreamRegistry, bytestreamProxy)); return jingleFT; +#endif } if (!fullJID.is_initialized()) { diff --git a/include/Swiften/FileTransfer/CombinedOutgoingFileTransferManager.h b/include/Swiften/FileTransfer/CombinedOutgoingFileTransferManager.h index 17e7fc58..2a5a9ffb 100644 --- a/include/Swiften/FileTransfer/CombinedOutgoingFileTransferManager.h +++ b/include/Swiften/FileTransfer/CombinedOutgoingFileTransferManager.h @@ -11,7 +11,10 @@ #include -#include "transport/presenceoracle.h" +#include "transport/PresenceOracle.h" +#include +#include +#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) namespace Swift { diff --git a/include/Swiften/FileTransfer/MyOutgoingSIFileTransfer.cpp b/include/Swiften/FileTransfer/MyOutgoingSIFileTransfer.cpp index 394cec09..5f1253ec 100644 --- a/include/Swiften/FileTransfer/MyOutgoingSIFileTransfer.cpp +++ b/include/Swiften/FileTransfer/MyOutgoingSIFileTransfer.cpp @@ -40,12 +40,14 @@ void MyOutgoingSIFileTransfer::cancel() { if (ibbSession) { ibbSession->stop(); } +#if !HAVE_SWIFTEN_3 SOCKS5BytestreamServerSession *serverSession = registry->getConnectedSession(SOCKS5BytestreamRegistry::getHostname(id, from, to)); if (serverSession) { serverSession->stop(); } onStateChange(FileTransfer::State(FileTransfer::State::Canceled)); +#endif } void MyOutgoingSIFileTransfer::handleStreamInitiationRequestResponse(StreamInitiation::ref response, ErrorPayload::ref error) { @@ -54,8 +56,10 @@ void MyOutgoingSIFileTransfer::handleStreamInitiationRequestResponse(StreamIniti } else { if (response->getRequestedMethod() == "http://jabber.org/protocol/bytestreams") { +#if !HAVE_SWIFTEN_3 registry->addReadBytestream(SOCKS5BytestreamRegistry::getHostname(id, from, to), bytestream); socksServer->addReadBytestream(id, from, to, bytestream); +#endif Bytestreams::ref bytestreams(new Bytestreams()); bytestreams->setStreamID(id); HostAddressPort addressPort = socksServer->getAddressPort(); @@ -68,8 +72,9 @@ void MyOutgoingSIFileTransfer::handleStreamInitiationRequestResponse(StreamIniti ibbSession = boost::shared_ptr(new IBBSendSession(id, from, to, bytestream, iqRouter)); ibbSession->onFinished.connect(boost::bind(&MyOutgoingSIFileTransfer::handleIBBSessionFinished, this, _1)); ibbSession->start(); - +#if !HAVE_SWIFTEN_3 onStateChange(FileTransfer::State(FileTransfer::State::Transferring)); +#endif } } } @@ -79,13 +84,13 @@ void MyOutgoingSIFileTransfer::handleBytestreamsRequestResponse(Bytestreams::ref finish(FileTransferError()); return; } - +#if !HAVE_SWIFTEN_3 SOCKS5BytestreamServerSession *serverSession = registry->getConnectedSession(SOCKS5BytestreamRegistry::getHostname(id, from, to)); // serverSession->onBytesSent.connect(boost::bind(boost::ref(onProcessedBytes), _1)); // serverSession->onFinished.connect(boost::bind(&OutgoingJingleFileTransfer::handleTransferFinished, this, _1)); serverSession->startTransfer(); onStateChange(FileTransfer::State(FileTransfer::State::Transferring)); - +#endif //socksServer->onTransferFinished.connect(); } @@ -94,6 +99,7 @@ void MyOutgoingSIFileTransfer::finish(boost::optional error) ibbSession->onFinished.disconnect(boost::bind(&MyOutgoingSIFileTransfer::handleIBBSessionFinished, this, _1)); ibbSession.reset(); } +#if !HAVE_SWIFTEN_3 socksServer->removeReadBytestream(id, from, to); if(error) { onStateChange(FileTransfer::State(FileTransfer::State::Canceled)); @@ -101,6 +107,7 @@ void MyOutgoingSIFileTransfer::finish(boost::optional error) else { onStateChange(FileTransfer::State(FileTransfer::State::Finished)); } +#endif onFinished(error); } diff --git a/include/Swiften/FileTransfer/MyOutgoingSIFileTransfer.h b/include/Swiften/FileTransfer/MyOutgoingSIFileTransfer.h index 8fa88ea6..369a29ac 100644 --- a/include/Swiften/FileTransfer/MyOutgoingSIFileTransfer.h +++ b/include/Swiften/FileTransfer/MyOutgoingSIFileTransfer.h @@ -18,6 +18,8 @@ #include #include #include +#include +#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) namespace Swift { class IQRouter; diff --git a/include/Swiften/Network/DummyConnectionServer.cpp b/include/Swiften/Network/DummyConnectionServer.cpp index 7250dce3..e4c8ef2b 100644 --- a/include/Swiften/Network/DummyConnectionServer.cpp +++ b/include/Swiften/Network/DummyConnectionServer.cpp @@ -25,7 +25,7 @@ void DummyConnectionServer::stop() { } -void DummyConnectionServer::acceptConnection(boost::shared_ptr connection) { +void DummyConnectionServer::acceptConnection(boost::shared_ptr connection) { eventLoop->postEvent( boost::bind(boost::ref(onNewConnection), connection), shared_from_this()); diff --git a/include/Swiften/Network/DummyConnectionServer.h b/include/Swiften/Network/DummyConnectionServer.h index 0e2a141c..b80e6af3 100644 --- a/include/Swiften/Network/DummyConnectionServer.h +++ b/include/Swiften/Network/DummyConnectionServer.h @@ -15,6 +15,7 @@ #include #include #include +#include namespace Swift { class DummyConnectionServer : public ConnectionServer, public EventOwner, public boost::enable_shared_from_this { @@ -30,7 +31,13 @@ namespace Swift { return ref(new DummyConnectionServer(eventLoop)); } - void acceptConnection(boost::shared_ptr connection); + void acceptConnection(boost::shared_ptr connection); + +#if (SWIFTEN_VERSION >= 0x030000) + virtual boost::optional tryStart() { + return boost::optional(); + } +#endif virtual void start(); virtual void stop(); diff --git a/include/Swiften/Network/DummyNetworkFactories.cpp b/include/Swiften/Network/DummyNetworkFactories.cpp index 28fbe5b0..a47ec8fe 100644 --- a/include/Swiften/Network/DummyNetworkFactories.cpp +++ b/include/Swiften/Network/DummyNetworkFactories.cpp @@ -9,6 +9,12 @@ #include #include #include +#if HAVE_SWIFTEN_3 +#include +#include +#include +#include +#endif namespace Swift { @@ -18,6 +24,8 @@ DummyNetworkFactories::DummyNetworkFactories(EventLoop* eventLoop) { #if HAVE_SWIFTEN_3 idnConverter = boost::shared_ptr(PlatformIDNConverter::create()); domainNameResolver = new PlatformDomainNameResolver(idnConverter.get(), eventLoop); + cryptoProvider = PlatformCryptoProvider::create(); + networkEnvironment = new PlatformNetworkEnvironment(); #else domainNameResolver = new PlatformDomainNameResolver(eventLoop); #endif diff --git a/include/Swiften/Network/DummyNetworkFactories.h b/include/Swiften/Network/DummyNetworkFactories.h index 2edc85b0..9f2662c1 100644 --- a/include/Swiften/Network/DummyNetworkFactories.h +++ b/include/Swiften/Network/DummyNetworkFactories.h @@ -7,9 +7,7 @@ #pragma once #include -//#define HAVE_SWIFTEN_3 SWIFTEN_VERSION >= 0x030000 -// Swiften 3 was not released yet and these changes are not in 3.0alpha -#define HAVE_SWIFTEN_3 0 +#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) #include #include @@ -38,6 +36,13 @@ namespace Swift { IDNConverter* getIDNConverter() const { return idnConverter.get(); } + Swift::CryptoProvider* getCryptoProvider() const { + return cryptoProvider; + } + Swift::NetworkEnvironment* getNetworkEnvironment() const { + return networkEnvironment; + } + #endif DomainNameResolver* getDomainNameResolver() const { @@ -67,13 +72,14 @@ namespace Swift { Swift::ProxyProvider* getProxyProvider() const { return 0; } - private: PlatformXMLParserFactory *m_platformXMLParserFactory; TimerFactory* timerFactory; ConnectionFactory* connectionFactory; #if HAVE_SWIFTEN_3 boost::shared_ptr idnConverter; + CryptoProvider* cryptoProvider; + NetworkEnvironment* networkEnvironment; #endif DomainNameResolver* domainNameResolver; ConnectionServerFactory* connectionServerFactory; diff --git a/include/Swiften/Parser/PayloadParsers/PubSubItemParser.cpp b/include/Swiften/Parser/PayloadParsers/PubSubItemParser.cpp deleted file mode 100644 index 8f23c41a..00000000 --- a/include/Swiften/Parser/PayloadParsers/PubSubItemParser.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include - -#include - -#include -#include -#include -#include -#include - -namespace Swift { - -void PubSubItemParser::handleTree(ParserElement::ref root) { - std::string id = root->getAttributes().getAttribute("id"); - if (!id.empty()) { - getPayloadInternal()->setId(id); - } - - foreach (ParserElement::ref child, root->getAllChildren()) { - getPayloadInternal()->addPayload(TreeReparser::parseTree(child, factories)); - } -} - -} diff --git a/include/Swiften/Parser/PayloadParsers/PubSubItemParser.h b/include/Swiften/Parser/PayloadParsers/PubSubItemParser.h deleted file mode 100644 index 9326f92d..00000000 --- a/include/Swiften/Parser/PayloadParsers/PubSubItemParser.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include - -#include -#include -#include - -namespace Swift { - class PayloadParserFactoryCollection; - class PubSubItemParser : public GenericPayloadTreeParser { - public: - PubSubItemParser(PayloadParserFactoryCollection* collection) : factories(collection) {} - virtual void handleTree(ParserElement::ref root); - private: - PayloadParserFactoryCollection* factories; - }; -} diff --git a/include/Swiften/Parser/PayloadParsers/PubSubPayloadParser.cpp b/include/Swiften/Parser/PayloadParsers/PubSubPayloadParser.cpp deleted file mode 100644 index c3e151bb..00000000 --- a/include/Swiften/Parser/PayloadParsers/PubSubPayloadParser.cpp +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include - -#include - -#include -#include -#include -#include -#include - -namespace Swift { - -void PubSubPayloadParser::handleTree(ParserElement::ref root) { - foreach (ParserElement::ref child, root->getAllChildren()) { - getPayloadInternal()->addPayload(TreeReparser::parseTree(child, factories)); - } -} - -} diff --git a/include/Swiften/Parser/PayloadParsers/PubSubPayloadParser.h b/include/Swiften/Parser/PayloadParsers/PubSubPayloadParser.h deleted file mode 100644 index 7bbb688c..00000000 --- a/include/Swiften/Parser/PayloadParsers/PubSubPayloadParser.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include - -#include -#include -#include - -namespace Swift { - class PayloadParserFactoryCollection; - class PubSubPayloadParser : public GenericPayloadTreeParser { - public: - PubSubPayloadParser(PayloadParserFactoryCollection* collection) : factories(collection) {} - virtual void handleTree(ParserElement::ref root); - private: - PayloadParserFactoryCollection* factories; - }; -} diff --git a/include/Swiften/Parser/PayloadParsers/PubSubPublishPayloadParser.cpp b/include/Swiften/Parser/PayloadParsers/PubSubPublishPayloadParser.cpp deleted file mode 100644 index 949ceba4..00000000 --- a/include/Swiften/Parser/PayloadParsers/PubSubPublishPayloadParser.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include - -#include - -#include -#include -#include -#include -#include - -namespace Swift { - -void PubSubPublishPayloadParser::handleTree(ParserElement::ref root) { - std::string node = root->getAttributes().getAttribute("node"); - if (!node.empty()) { - getPayloadInternal()->setNode(node); - } - - foreach (ParserElement::ref child, root->getAllChildren()) { - getPayloadInternal()->addItem(TreeReparser::parseTree(child, factories)); - } -} - -} diff --git a/include/Swiften/Parser/PayloadParsers/PubSubPublishPayloadParser.h b/include/Swiften/Parser/PayloadParsers/PubSubPublishPayloadParser.h deleted file mode 100644 index b0575b72..00000000 --- a/include/Swiften/Parser/PayloadParsers/PubSubPublishPayloadParser.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include - -#include -#include -#include - -namespace Swift { - class PayloadParserFactoryCollection; - class PubSubPublishPayloadParser : public GenericPayloadTreeParser { - public: - PubSubPublishPayloadParser(PayloadParserFactoryCollection* collection) : factories(collection) {} - virtual void handleTree(ParserElement::ref root); - private: - PayloadParserFactoryCollection* factories; - }; -} diff --git a/include/Swiften/Parser/PayloadParsers/PubSubSubscribePayloadParser.cpp b/include/Swiften/Parser/PayloadParsers/PubSubSubscribePayloadParser.cpp deleted file mode 100644 index b7913d24..00000000 --- a/include/Swiften/Parser/PayloadParsers/PubSubSubscribePayloadParser.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include - -#include - -#include -#include -#include -#include -#include - -namespace Swift { - -void PubSubSubscribePayloadParser::handleTree(ParserElement::ref root) { - std::string node = root->getAttributes().getAttribute("node"); - if (!node.empty()) { - getPayloadInternal()->setNode(node); - } - - std::string jid = root->getAttributes().getAttribute("jid"); - if (!jid.empty()) { - getPayloadInternal()->setJID(jid); - } - -} - -} diff --git a/include/Swiften/Parser/PayloadParsers/PubSubSubscribePayloadParser.h b/include/Swiften/Parser/PayloadParsers/PubSubSubscribePayloadParser.h deleted file mode 100644 index 54a2b05a..00000000 --- a/include/Swiften/Parser/PayloadParsers/PubSubSubscribePayloadParser.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include - -#include -#include -#include - -namespace Swift { - class PayloadParserFactoryCollection; - class PubSubSubscribePayloadParser : public GenericPayloadTreeParser { - public: - PubSubSubscribePayloadParser(PayloadParserFactoryCollection* collection) : factories(collection) {} - virtual void handleTree(ParserElement::ref root); - private: - PayloadParserFactoryCollection* factories; - }; -} diff --git a/include/Swiften/Parser/PayloadParsers/PubSubSubscriptionPayloadParser.cpp b/include/Swiften/Parser/PayloadParsers/PubSubSubscriptionPayloadParser.cpp deleted file mode 100644 index 0c964762..00000000 --- a/include/Swiften/Parser/PayloadParsers/PubSubSubscriptionPayloadParser.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include - -#include - -#include -#include -#include -#include -#include - -namespace Swift { - -void PubSubSubscriptionPayloadParser::handleTree(ParserElement::ref root) { - std::string node = root->getAttributes().getAttribute("node"); - if (!node.empty()) { - getPayloadInternal()->setNode(node); - } - - std::string jid = root->getAttributes().getAttribute("jid"); - if (!jid.empty()) { - getPayloadInternal()->setJID(jid); - } - - std::string id = root->getAttributes().getAttribute("subid"); - if (!id.empty()) { - getPayloadInternal()->setId(id); - } - - std::string type = root->getAttributes().getAttribute("subscription"); - if (type == "none") { - getPayloadInternal()->setType(PubSubSubscriptionPayload::None); - } - else if (type == "subscribed") { - getPayloadInternal()->setType(PubSubSubscriptionPayload::Subscribed); - } - else if (type == "pending") { - getPayloadInternal()->setType(PubSubSubscriptionPayload::Pending); - } - else if (type == "unconfigured") { - getPayloadInternal()->setType(PubSubSubscriptionPayload::Unconfigured); - } - -} - -} diff --git a/include/Swiften/Parser/PayloadParsers/PubSubSubscriptionPayloadParser.h b/include/Swiften/Parser/PayloadParsers/PubSubSubscriptionPayloadParser.h deleted file mode 100644 index 7bd1c2d1..00000000 --- a/include/Swiften/Parser/PayloadParsers/PubSubSubscriptionPayloadParser.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2012 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include - -#include -#include -#include - -namespace Swift { - class PayloadParserFactoryCollection; - class PubSubSubscriptionPayloadParser : public GenericPayloadTreeParser { - public: - PubSubSubscriptionPayloadParser(PayloadParserFactoryCollection* collection) : factories(collection) {} - virtual void handleTree(ParserElement::ref root); - private: - PayloadParserFactoryCollection* factories; - }; -} diff --git a/include/Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.cpp b/include/Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.cpp deleted file mode 100644 index 47ab6492..00000000 --- a/include/Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include -#include -#include -#include -#include -#include - -namespace Swift { - -PubSubItemSerializer::PubSubItemSerializer(PayloadSerializerCollection *serializers) : - GenericPayloadSerializer(), serializers(serializers) { -} - -std::string PubSubItemSerializer::serializePayload(boost::shared_ptr payload) const { - XMLElement item("item"); - if (!payload->getId().empty()) { - item.setAttribute("id", payload->getId()); - } - - if (!payload->getPayloads().empty()) { - foreach(boost::shared_ptr subPayload, payload->getPayloads()) { - PayloadSerializer* serializer = serializers->getPayloadSerializer(subPayload); - if (serializer) { - item.addNode(boost::shared_ptr(new XMLRawTextNode(serializer->serialize(subPayload)))); - } - } - } - - return item.serialize(); -} - -} diff --git a/include/Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.h b/include/Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.h deleted file mode 100644 index 795c63ba..00000000 --- a/include/Swiften/Serializer/PayloadSerializers/PubSubItemSerializer.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include -#include - -namespace Swift { - class PayloadSerializerCollection; - class PubSubItemSerializer : public GenericPayloadSerializer { - public: - PubSubItemSerializer(PayloadSerializerCollection *serializers); - - virtual std::string serializePayload(boost::shared_ptr item) const; - private: - PayloadSerializerCollection *serializers; - }; -} diff --git a/include/Swiften/Serializer/PayloadSerializers/PubSubPayloadSerializer.cpp b/include/Swiften/Serializer/PayloadSerializers/PubSubPayloadSerializer.cpp deleted file mode 100644 index 9706d681..00000000 --- a/include/Swiften/Serializer/PayloadSerializers/PubSubPayloadSerializer.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include -#include -#include -#include -#include -#include - -namespace Swift { - -PubSubPayloadSerializer::PubSubPayloadSerializer(PayloadSerializerCollection *serializers) - : GenericPayloadSerializer(), - serializers(serializers) { -} - -std::string PubSubPayloadSerializer::serializePayload(boost::shared_ptr payload) const { - XMLElement pubsub("pubsub", "http://jabber.org/protocol/pubsub"); - - if (!payload->getPayloads().empty()) { - foreach(boost::shared_ptr subPayload, payload->getPayloads()) { - PayloadSerializer* serializer = serializers->getPayloadSerializer(subPayload); - if (serializer) { - pubsub.addNode(boost::shared_ptr(new XMLRawTextNode(serializer->serialize(subPayload)))); - } - } - } - - return pubsub.serialize(); -} - -} diff --git a/include/Swiften/Serializer/PayloadSerializers/PubSubPayloadSerializer.h b/include/Swiften/Serializer/PayloadSerializers/PubSubPayloadSerializer.h deleted file mode 100644 index 0f8f251a..00000000 --- a/include/Swiften/Serializer/PayloadSerializers/PubSubPayloadSerializer.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include -#include - -namespace Swift { - class PayloadSerializerCollection; - - class PubSubPayloadSerializer : public GenericPayloadSerializer { - public: - PubSubPayloadSerializer(PayloadSerializerCollection *serializers); - - virtual std::string serializePayload(boost::shared_ptr item) const; - private: - PayloadSerializerCollection *serializers; - }; -} diff --git a/include/Swiften/Serializer/PayloadSerializers/PubSubPublishPayloadSerializer.cpp b/include/Swiften/Serializer/PayloadSerializers/PubSubPublishPayloadSerializer.cpp deleted file mode 100644 index 09cfbb5f..00000000 --- a/include/Swiften/Serializer/PayloadSerializers/PubSubPublishPayloadSerializer.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include -#include -#include -#include -#include -#include - -namespace Swift { - -PubSubPublishPayloadSerializer::PubSubPublishPayloadSerializer(PayloadSerializerCollection *serializers) - : GenericPayloadSerializer(), - serializers(serializers) { -} - -std::string PubSubPublishPayloadSerializer::serializePayload(boost::shared_ptr payload) const { - XMLElement publish("publish"); - - if (!payload->getNode().empty()) { - publish.setAttribute("node", payload->getNode()); - } - - if (!payload->getItems().empty()) { - foreach(boost::shared_ptr subPayload, payload->getItems()) { - PayloadSerializer* serializer = serializers->getPayloadSerializer(subPayload); - if (serializer) { - publish.addNode(boost::shared_ptr(new XMLRawTextNode(serializer->serialize(subPayload)))); - } - } - } - - return publish.serialize(); -} - -} diff --git a/include/Swiften/Serializer/PayloadSerializers/PubSubPublishPayloadSerializer.h b/include/Swiften/Serializer/PayloadSerializers/PubSubPublishPayloadSerializer.h deleted file mode 100644 index ae290559..00000000 --- a/include/Swiften/Serializer/PayloadSerializers/PubSubPublishPayloadSerializer.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include -#include - -namespace Swift { - class PayloadSerializerCollection; - - class PubSubPublishPayloadSerializer : public GenericPayloadSerializer { - public: - PubSubPublishPayloadSerializer(PayloadSerializerCollection *serializers); - - virtual std::string serializePayload(boost::shared_ptr item) const; - private: - PayloadSerializerCollection *serializers; - }; -} diff --git a/include/Swiften/Serializer/PayloadSerializers/PubSubSubscribePayloadSerializer.cpp b/include/Swiften/Serializer/PayloadSerializers/PubSubSubscribePayloadSerializer.cpp deleted file mode 100644 index f6a96626..00000000 --- a/include/Swiften/Serializer/PayloadSerializers/PubSubSubscribePayloadSerializer.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include -#include -#include -#include -#include -#include - -namespace Swift { - -PubSubSubscribePayloadSerializer::PubSubSubscribePayloadSerializer() - : GenericPayloadSerializer() { -} - -std::string PubSubSubscribePayloadSerializer::serializePayload(boost::shared_ptr payload) const { - XMLElement subscribe("subscribe"); - - if (!payload->getJID().isValid()) { - subscribe.setAttribute("jid", payload->getJID().toBare().toString()); - } - - if (!payload->getNode().empty()) { - subscribe.setAttribute("node", payload->getNode()); - } - - return subscribe.serialize(); -} - -} diff --git a/include/Swiften/Serializer/PayloadSerializers/PubSubSubscribePayloadSerializer.h b/include/Swiften/Serializer/PayloadSerializers/PubSubSubscribePayloadSerializer.h deleted file mode 100644 index 327703be..00000000 --- a/include/Swiften/Serializer/PayloadSerializers/PubSubSubscribePayloadSerializer.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include -#include - -namespace Swift { - class PubSubSubscribePayloadSerializer : public GenericPayloadSerializer { - public: - PubSubSubscribePayloadSerializer(); - - virtual std::string serializePayload(boost::shared_ptr item) const; - }; -} diff --git a/include/Swiften/Serializer/PayloadSerializers/PubSubSubscriptionPayloadSerializer.cpp b/include/Swiften/Serializer/PayloadSerializers/PubSubSubscriptionPayloadSerializer.cpp deleted file mode 100644 index 02a634a1..00000000 --- a/include/Swiften/Serializer/PayloadSerializers/PubSubSubscriptionPayloadSerializer.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#include -#include -#include -#include -#include -#include - -namespace Swift { - -PubSubSubscriptionPayloadSerializer::PubSubSubscriptionPayloadSerializer() - : GenericPayloadSerializer() { -} - -std::string PubSubSubscriptionPayloadSerializer::serializePayload(boost::shared_ptr payload) const { - XMLElement subscription("subscription"); - - if (!payload->getJID().isValid()) { - subscription.setAttribute("jid", payload->getJID().toBare().toString()); - } - - if (!payload->getNode().empty()) { - subscription.setAttribute("node", payload->getNode()); - } - - switch (payload->getType()) { - case PubSubSubscriptionPayload::None: - subscription.setAttribute("subscription", "none"); - break; - case PubSubSubscriptionPayload::Subscribed: - subscription.setAttribute("subscription", "subscribed"); - break; - case PubSubSubscriptionPayload::Unconfigured: - subscription.setAttribute("subscription", "unconfigured"); - break; - case PubSubSubscriptionPayload::Pending: - subscription.setAttribute("subscription", "pending"); - break; - } - - return subscription.serialize(); -} - -} diff --git a/include/Swiften/Serializer/PayloadSerializers/PubSubSubscriptionPayloadSerializer.h b/include/Swiften/Serializer/PayloadSerializers/PubSubSubscriptionPayloadSerializer.h deleted file mode 100644 index 0e06a34b..00000000 --- a/include/Swiften/Serializer/PayloadSerializers/PubSubSubscriptionPayloadSerializer.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2011 Jan Kaluza - * Licensed under the Simplified BSD license. - * See Documentation/Licenses/BSD-simplified.txt for more information. - */ - -#pragma once - -#include -#include - -namespace Swift { - class PubSubSubscriptionPayloadSerializer : public GenericPayloadSerializer { - public: - PubSubSubscriptionPayloadSerializer(); - - virtual std::string serializePayload(boost::shared_ptr item) const; - }; -} diff --git a/include/Swiften/Server/ServerFromClientSession.cpp b/include/Swiften/Server/ServerFromClientSession.cpp index de988fcd..c1e667ff 100644 --- a/include/Swiften/Server/ServerFromClientSession.cpp +++ b/include/Swiften/Server/ServerFromClientSession.cpp @@ -29,6 +29,11 @@ #include #include +#include +#if (SWIFTEN_VERSION >= 0x030000) +#include +#endif + namespace Swift { ServerFromClientSession::ServerFromClientSession( @@ -76,7 +81,11 @@ void ServerFromClientSession::handlePasswordInvalid(const std::string &error) { } } -void ServerFromClientSession::handleElement(boost::shared_ptr element) { +#if (SWIFTEN_VERSION >= 0x030000) +void ServerFromClientSession::handleElement(boost::shared_ptr element) { +#else +void ServerFromClientSession::handleElement(boost::shared_ptr element) { +#endif if (isInitialized()) { onElementReceived(element); } diff --git a/include/Swiften/Server/ServerFromClientSession.h b/include/Swiften/Server/ServerFromClientSession.h index 121f3f9a..4496bdf1 100644 --- a/include/Swiften/Server/ServerFromClientSession.h +++ b/include/Swiften/Server/ServerFromClientSession.h @@ -16,6 +16,8 @@ #include #include #include +#include +#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) namespace Swift { class ProtocolHeader; @@ -60,7 +62,11 @@ namespace Swift { void handlePasswordInvalid(const std::string &error = ""); private: +#if HAVE_SWIFTEN_3 + void handleElement(boost::shared_ptr); +#else void handleElement(boost::shared_ptr); +#endif void handleStreamStart(const ProtocolHeader& header); void handleSessionFinished(const boost::optional&); diff --git a/include/Swiften/Server/ServerStanzaChannel.cpp b/include/Swiften/Server/ServerStanzaChannel.cpp index 9597cc1c..d13a0a9b 100644 --- a/include/Swiften/Server/ServerStanzaChannel.cpp +++ b/include/Swiften/Server/ServerStanzaChannel.cpp @@ -63,8 +63,11 @@ void ServerStanzaChannel::handleDataRead(const SafeByteArray &data, const boost: onPresenceReceived(presence); } } - +#if HAVE_SWIFTEN_3 +void ServerStanzaChannel::finishSession(const JID& to, boost::shared_ptr element, bool last) { +#else void ServerStanzaChannel::finishSession(const JID& to, boost::shared_ptr element, bool last) { +#endif std::vector > candidateSessions; for (std::list >::const_iterator i = sessions[to.toBare().toString()].begin(); i != sessions[to.toBare().toString()].end(); ++i) { candidateSessions.push_back(*i); diff --git a/include/Swiften/Server/ServerStanzaChannel.h b/include/Swiften/Server/ServerStanzaChannel.h index 2a562761..cc9c8227 100644 --- a/include/Swiften/Server/ServerStanzaChannel.h +++ b/include/Swiften/Server/ServerStanzaChannel.h @@ -15,6 +15,8 @@ #include "Swiften/Elements/IQ.h" #include "Swiften/Elements/Presence.h" #include "Swiften/TLS/Certificate.h" +#include +#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) namespace Swift { class Error; @@ -26,9 +28,11 @@ namespace Swift { void sendIQ(boost::shared_ptr iq); void sendMessage(boost::shared_ptr message); void sendPresence(boost::shared_ptr presence); - +#if HAVE_SWIFTEN_3 + void finishSession(const JID& to, boost::shared_ptr element, bool last = false); +#else void finishSession(const JID& to, boost::shared_ptr element, bool last = false); - +#endif bool getStreamManagementEnabled() const { return false; } diff --git a/include/Swiften/TLS/OpenSSL/OpenSSLServerContext.cpp b/include/Swiften/TLS/OpenSSL/OpenSSLServerContext.cpp index c224a37a..b12708a1 100644 --- a/include/Swiften/TLS/OpenSSL/OpenSSLServerContext.cpp +++ b/include/Swiften/TLS/OpenSSL/OpenSSLServerContext.cpp @@ -14,7 +14,7 @@ #include #include -#include "transport/logging.h" +#include "transport/Logging.h" DEFINE_LOGGER(logger, "OpenSSLServerContext"); diff --git a/include/transport/admininterface.h b/include/transport/AdminInterface.h similarity index 100% rename from include/transport/admininterface.h rename to include/transport/AdminInterface.h diff --git a/include/transport/buddy.h b/include/transport/Buddy.h similarity index 99% rename from include/transport/buddy.h rename to include/transport/Buddy.h index 9d47cf6f..04dd5c0f 100644 --- a/include/transport/buddy.h +++ b/include/transport/Buddy.h @@ -22,9 +22,8 @@ #include #include -#include "transport/transport.h" #include "Swiften/Elements/VCard.h" - +#include "Swiften/Elements/Presence.h" namespace Transport { diff --git a/include/transport/config.h b/include/transport/Config.h similarity index 100% rename from include/transport/config.h rename to include/transport/Config.h diff --git a/include/transport/conversation.h b/include/transport/Conversation.h similarity index 99% rename from include/transport/conversation.h rename to include/transport/Conversation.h index 241f6662..380e813a 100644 --- a/include/transport/conversation.h +++ b/include/transport/Conversation.h @@ -22,9 +22,9 @@ #include #include -#include "transport/transport.h" - +#include #include "Swiften/Elements/Message.h" +#include "Swiften/Elements/Presence.h" namespace Transport { diff --git a/include/transport/conversationmanager.h b/include/transport/ConversationManager.h similarity index 100% rename from include/transport/conversationmanager.h rename to include/transport/ConversationManager.h diff --git a/include/transport/factory.h b/include/transport/Factory.h similarity index 90% rename from include/transport/factory.h rename to include/transport/Factory.h index 7df6e252..9d24d1ac 100644 --- a/include/transport/factory.h +++ b/include/transport/Factory.h @@ -22,12 +22,7 @@ #include #include -#include "transport/transport.h" - #include "Swiften/Elements/Message.h" -#include "transport/conversation.h" -#include "transport/buddy.h" -#include "transport/storagebackend.h" namespace Transport { @@ -35,6 +30,7 @@ class Conversation; class Buddy; class ConversationManager; class RosterManager; +struct BuddyInfo; class Factory { public: diff --git a/include/transport/filetransfermanager.h b/include/transport/FileTransferManager.h similarity index 87% rename from include/transport/filetransfermanager.h rename to include/transport/FileTransferManager.h index 322962c5..97a0fa58 100644 --- a/include/transport/filetransfermanager.h +++ b/include/transport/FileTransferManager.h @@ -19,16 +19,25 @@ */ #pragma once +#include +#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) #include -#include #include #include -#include -#include #include #include + + +#if HAVE_SWIFTEN_3 +#include +#include +#else +#include +#include +#include #include +#endif namespace Transport { @@ -59,10 +68,15 @@ class FileTransferManager { Swift::LocalJingleTransportCandidateGeneratorFactory* m_localCandidateGeneratorFactory; Swift::JingleSessionManager *m_jingleSessionManager; Swift::SOCKS5BytestreamRegistry* m_bytestreamRegistry; +#if HAVE_SWIFTEN_3 + Swift::SOCKS5BytestreamServerManager* m_proxyServerManager; + Swift::SOCKS5BytestreamProxiesManager *m_proxyManager; +#else Swift::SOCKS5BytestreamServer* m_bytestreamServer; Swift::SOCKS5BytestreamProxy* m_bytestreamProxy; Swift::SOCKS5BytestreamServer *bytestreamServer; Swift::ConnectivityManager* m_connectivityManager; +#endif }; } diff --git a/include/transport/Frontend.h b/include/transport/Frontend.h new file mode 100644 index 00000000..72d099a4 --- /dev/null +++ b/include/transport/Frontend.h @@ -0,0 +1,95 @@ +/** + * XMPP - libpurple transport + * + * Copyright (C) 2009, Jan Kaluza + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#pragma once + +#include +#include +#include +#include +#include "Swiften/Elements/RosterPayload.h" +#include "Swiften/Elements/VCard.h" +#include "Swiften/Elements/Message.h" +#include "Swiften/Elements/IQ.h" +#include "Swiften/Elements/DiscoInfo.h" +#include "Swiften/Elements/Presence.h" + +#include + +namespace Transport { + +class Config; +class UserRegistry; +class Component; +class User; +class Buddy; +class RosterManager; +class UserManager; +class StorageBackend; + +struct UserInfo; + +class Frontend { + public: + Frontend() {} + + virtual ~Frontend() {} + + virtual void init(Component *component, Swift::EventLoop *loop, Swift::NetworkFactories *factories, Config *config, UserRegistry *userRegistry) = 0; + + virtual void connectToServer() = 0; + + virtual void disconnectFromServer() = 0; + + virtual void sendPresence(Swift::Presence::ref presence) = 0; + + virtual void sendVCard(Swift::VCard::ref vcard, Swift::JID to) = 0; + + virtual void sendRosterRequest(Swift::RosterPayload::ref, Swift::JID to) = 0; + + virtual void sendMessage(boost::shared_ptr message) = 0; + + virtual void sendIQ(boost::shared_ptr) = 0; + + virtual boost::shared_ptr sendCapabilitiesRequest(Swift::JID to) = 0; + + virtual void reconnectUser(const std::string &user) = 0; + + virtual RosterManager *createRosterManager(User *user, Component *component) = 0; + + virtual User *createUser(const Swift::JID &jid, UserInfo &userInfo, Component *component, UserManager *userManager) = 0; + + virtual UserManager *createUserManager(Component *component, UserRegistry *userRegistry, StorageBackend *storageBackend = NULL) = 0; + + virtual void clearRoomList() = 0; + virtual void addRoomToRoomList(const std::string &handle, const std::string &name) = 0; + + boost::signal onVCardRequired; + boost::signal vcard)> onVCardUpdated; + boost::signal onBuddyUpdated; + boost::signal onBuddyRemoved; + boost::signal onBuddyAdded; + boost::signal onMessageReceived; + boost::signal onAvailableChanged; + boost::signal) > onPresenceReceived; + boost::signal info)> onCapabilitiesReceived; +}; + +} diff --git a/include/transport/localbuddy.h b/include/transport/LocalBuddy.h similarity index 97% rename from include/transport/localbuddy.h rename to include/transport/LocalBuddy.h index ebe2c945..1f3481d8 100644 --- a/include/transport/localbuddy.h +++ b/include/transport/LocalBuddy.h @@ -23,8 +23,7 @@ #include #include -#include "transport/buddy.h" -#include "transport/rostermanager.h" +#include "transport/Buddy.h" namespace Transport { diff --git a/include/transport/logging.h b/include/transport/Logging.h similarity index 100% rename from include/transport/logging.h rename to include/transport/Logging.h diff --git a/include/transport/memoryreadbytestream.h b/include/transport/MemoryReadBytestream.h similarity index 100% rename from include/transport/memoryreadbytestream.h rename to include/transport/MemoryReadBytestream.h diff --git a/include/transport/memoryusage.h b/include/transport/MemoryUsage.h similarity index 100% rename from include/transport/memoryusage.h rename to include/transport/MemoryUsage.h diff --git a/include/transport/mysqlbackend.h b/include/transport/MySQLBackend.h similarity index 98% rename from include/transport/mysqlbackend.h rename to include/transport/MySQLBackend.h index 60733240..ad0f50a1 100644 --- a/include/transport/mysqlbackend.h +++ b/include/transport/MySQLBackend.h @@ -24,8 +24,8 @@ #include #include -#include "transport/storagebackend.h" -#include "transport/config.h" +#include "transport/StorageBackend.h" +#include "transport/Config.h" #include "mysql.h" namespace Transport { diff --git a/include/transport/networkplugin.h b/include/transport/NetworkPlugin.h similarity index 99% rename from include/transport/networkplugin.h rename to include/transport/NetworkPlugin.h index 3230ddb6..1b1c6f08 100644 --- a/include/transport/networkplugin.h +++ b/include/transport/NetworkPlugin.h @@ -21,6 +21,7 @@ #pragma once #include +#undef TYPE_BOOL #include "transport/protocol.pb.h" // #include "conversation.h" #include diff --git a/include/transport/networkpluginserver.h b/include/transport/NetworkPluginServer.h similarity index 93% rename from include/transport/networkpluginserver.h rename to include/transport/NetworkPluginServer.h index 44a20b26..a579c70d 100644 --- a/include/transport/networkpluginserver.h +++ b/include/transport/NetworkPluginServer.h @@ -20,6 +20,8 @@ #pragma once +#include "transport/FileTransferManager.h" + #include #include "Swiften/Presence/PresenceOracle.h" #include "Swiften/Disco/EntityCapsManager.h" @@ -28,13 +30,18 @@ #include "Swiften/Elements/ChatState.h" #include "Swiften/Elements/RosterItemPayload.h" #include "Swiften/Elements/VCard.h" +#include "Swiften/Elements/Message.h" +#include "Swiften/Elements/Presence.h" +#include "Swiften/Elements/IQ.h" +#include "Swiften/Network/Timer.h" #include "Swiften/Parser/PayloadParsers/FullPayloadParserFactoryCollection.h" #include "Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h" #include "Swiften/Parser/XMPPParser.h" #include "Swiften/Parser/XMPPParserClient.h" #include "Swiften/Serializer/XMPPSerializer.h" -#include "storagebackend.h" -#include "transport/filetransfermanager.h" +#include +#include +#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) namespace Transport { @@ -50,7 +57,8 @@ class RosterResponder; class BlockResponder; class DummyReadBytestream; class AdminInterface; -class DiscoItemsResponder; +class FileTransferManager; +class FileTransfer; class NetworkPluginServer : Swift::XMPPParserClient { public: @@ -68,7 +76,7 @@ class NetworkPluginServer : Swift::XMPPParserClient { std::string id; }; - NetworkPluginServer(Component *component, Config *config, UserManager *userManager, FileTransferManager *ftManager, DiscoItemsResponder *discoItemsResponder); + NetworkPluginServer(Component *component, Config *config, UserManager *userManager, FileTransferManager *ftManager); virtual ~NetworkPluginServer(); @@ -159,9 +167,11 @@ class NetworkPluginServer : Swift::XMPPParserClient { void handleRawPresenceReceived(boost::shared_ptr presence); void handleStreamStart(const Swift::ProtocolHeader&) {} - +#if HAVE_SWIFTEN_3 + void handleElement(boost::shared_ptr element); +#else void handleElement(boost::shared_ptr element); - +#endif void handleStreamEnd() {} UserManager *m_userManager; @@ -183,7 +193,6 @@ class NetworkPluginServer : Swift::XMPPParserClient { std::vector m_crashedBackends; AdminInterface *m_adminInterface; bool m_startingBackend; - DiscoItemsResponder *m_discoItemsResponder; time_t m_lastLogin; Swift::XMPPParser *m_xmppParser; Swift::FullPayloadParserFactoryCollection m_collection; diff --git a/include/transport/pqxxbackend.h b/include/transport/PQXXBackend.h similarity index 98% rename from include/transport/pqxxbackend.h rename to include/transport/PQXXBackend.h index 5ec0c409..de7937cd 100644 --- a/include/transport/pqxxbackend.h +++ b/include/transport/PQXXBackend.h @@ -24,8 +24,8 @@ #include #include -#include "transport/storagebackend.h" -#include "transport/config.h" +#include "transport/StorageBackend.h" +#include "transport/Config.h" #include namespace Transport { diff --git a/include/transport/presenceoracle.h b/include/transport/PresenceOracle.h similarity index 94% rename from include/transport/presenceoracle.h rename to include/transport/PresenceOracle.h index f631d8e9..39acc77f 100644 --- a/include/transport/presenceoracle.h +++ b/include/transport/PresenceOracle.h @@ -30,9 +30,11 @@ namespace Transport { +class Frontend; + class PresenceOracle { public: - PresenceOracle(Swift::StanzaChannel* stanzaChannel); + PresenceOracle(Frontend* frontend); ~PresenceOracle(); Swift::Presence::ref getLastPresence(const Swift::JID&) const; @@ -52,7 +54,7 @@ class PresenceOracle { typedef std::map PresenceMap; typedef std::map PresencesMap; PresencesMap entries_; - Swift::StanzaChannel* stanzaChannel_; + Frontend* frontend_; }; } diff --git a/include/transport/rostermanager.h b/include/transport/RosterManager.h similarity index 82% rename from include/transport/rostermanager.h rename to include/transport/RosterManager.h index fbd652ff..6a36d8a8 100644 --- a/include/transport/rostermanager.h +++ b/include/transport/RosterManager.h @@ -40,16 +40,6 @@ class Component; class StorageBackend; class RosterStorage; -// TODO: Once Swiften GetRosterRequest will support setting to="", this can be removed -class AddressedRosterRequest : public Swift::GenericRequest { - public: - typedef boost::shared_ptr ref; - - AddressedRosterRequest(Swift::IQRouter* router, Swift::JID to) : - Swift::GenericRequest(Swift::IQ::Get, to, boost::shared_ptr(new Swift::RosterPayload()), router) { - } -}; - /// Manages roster of one XMPP user. class RosterManager { public: @@ -62,6 +52,10 @@ class RosterManager { /// Destructor. virtual ~RosterManager(); + virtual void doRemoveBuddy(Buddy *buddy) = 0; + virtual void doAddBuddy(Buddy *buddy) = 0; + virtual void doUpdateBuddy(Buddy *buddy) = 0; + /// Associates the buddy with this roster, /// and if the buddy is not already in XMPP user's server-side roster, the proper requests /// are sent to XMPP user (subscribe presences, Roster Item Exchange stanza or @@ -113,8 +107,6 @@ class RosterManager { void handleSubscription(Swift::Presence::ref presence); - void sendBuddyRosterPush(Buddy *buddy); - void sendBuddyRosterRemove(Buddy *buddy); void sendBuddySubscribePresence(Buddy *buddy); @@ -127,14 +119,10 @@ class RosterManager { void sendUnavailablePresences(const Swift::JID &to); - private: - void setBuddyCallback(Buddy *buddy); - - void sendRIE(); - void handleBuddyRosterPushResponse(Swift::ErrorPayload::ref error, Swift::SetRosterRequest::ref request, const std::string &key); - void handleRemoteRosterResponse(boost::shared_ptr roster, Swift::ErrorPayload::ref error); - + protected: std::map, boost::pool_allocator< std::pair > > m_buddies; + + private: Component *m_component; RosterStorage *m_rosterStorage; User *m_user; @@ -142,7 +130,6 @@ class RosterManager { Swift::Timer::ref m_RIETimer; std::list m_requests; bool m_supportRemoteRoster; - AddressedRosterRequest::ref m_remoteRosterRequest; }; } diff --git a/include/transport/rosterstorage.h b/include/transport/RosterStorage.h similarity index 100% rename from include/transport/rosterstorage.h rename to include/transport/RosterStorage.h diff --git a/include/transport/sqlite3backend.h b/include/transport/SQLite3Backend.h similarity index 98% rename from include/transport/sqlite3backend.h rename to include/transport/SQLite3Backend.h index 3c6411ca..7e0dba53 100644 --- a/include/transport/sqlite3backend.h +++ b/include/transport/SQLite3Backend.h @@ -24,12 +24,13 @@ #include #include -#include "transport/storagebackend.h" -#include "transport/config.h" +#include "transport/StorageBackend.h" #include "sqlite3.h" namespace Transport { +class Config; + /// Used to store transport data into SQLite3 database. class SQLite3Backend : public StorageBackend { diff --git a/include/transport/storagebackend.h b/include/transport/StorageBackend.h similarity index 100% rename from include/transport/storagebackend.h rename to include/transport/StorageBackend.h diff --git a/include/transport/threadpool.h b/include/transport/ThreadPool.h similarity index 98% rename from include/transport/threadpool.h rename to include/transport/ThreadPool.h index 27cb1a08..0758c232 100644 --- a/include/transport/threadpool.h +++ b/include/transport/ThreadPool.h @@ -6,7 +6,6 @@ #include #include #include -#include "transport/logging.h" #include "Swiften/EventLoop/EventLoop.h" diff --git a/include/transport/transport.h b/include/transport/Transport.h similarity index 57% rename from include/transport/transport.h rename to include/transport/Transport.h index 318ec673..c72094e8 100644 --- a/include/transport/transport.h +++ b/include/transport/Transport.h @@ -21,40 +21,25 @@ #pragma once #include -#include "Swiften/Server/Server.h" -#include "Swiften/Disco/GetDiscoInfoRequest.h" -#include "Swiften/Disco/EntityCapsManager.h" -#include "Swiften/Disco/CapsManager.h" -#include "Swiften/Disco/CapsMemoryStorage.h" +#include #include "Swiften/Network/BoostTimerFactory.h" #include "Swiften/Network/BoostIOServiceThread.h" -#include "Swiften/Server/UserRegistry.h" -#include "Swiften/Base/SafeByteArray.h" -#include "Swiften/Queries/IQHandler.h" -#include "Swiften/Jingle/JingleSessionManager.h" -#include "Swiften/Component/ComponentError.h" -#include "Swiften/Component/Component.h" -#include "Swiften/Queries/IQHandler.h" - -#include -#include "transport/config.h" -#include "transport/factory.h" -#include "transport/presenceoracle.h" -#include +#include "Swiften/Network/NetworkFactories.h" +#include "Swiften/Elements/DiscoInfo.h" +#include "Swiften/Elements/Presence.h" +#include "Swiften/Elements/IQ.h" namespace Transport { class StorageBackend; class Factory; class UserRegistry; + class Frontend; + class PresenceOracle; + class Factory; + class Config; + class UserManager; - /// Represents one transport instance. - - /// It's used to connect the Jabber server and provides transaction layer - /// between Jabber server and other classes. - /// - /// In server mode it represents Jabber server to which users can connect and use - /// it as transport. - class Component : Swift::IQHandler { + class Component { public: /// Creates new Component instance. @@ -68,32 +53,17 @@ namespace Transport { /// \param factories Swift::NetworkFactories. /// \param factory Transport Abstract factory used to create basic transport structures. /// \param userRegistery UserRegistry class instance. It's needed only when running transport in server-mode. - Component(Swift::EventLoop *loop, Swift::NetworkFactories *factories, Config *config, Factory *factory, Transport::UserRegistry *userRegistry = NULL); + Component(Frontend *frontend, Swift::EventLoop *loop, Swift::NetworkFactories *factories, Config *config, Factory *factory, Transport::UserRegistry *userRegistry = NULL); /// Component destructor. ~Component(); /// Returns Swift::StanzaChannel associated with this Transport::Component. - /// It can be used to send presences and other stanzas. - /// \return Swift::StanzaChannel associated with this Transport::Component. - Swift::StanzaChannel *getStanzaChannel(); - - /// Returns Swift::IQRouter associated with this Component. - - /// \return Swift::IQRouter associated with this Component. - Swift::IQRouter *getIQRouter() { return m_iqRouter; } - - /// Returns Swift::PresenceOracle associated with this Transport::Component. - - /// You can use it to check current resource connected for particular user. - /// \return Swift::PresenceOracle associated with this Transport::Component. - PresenceOracle *getPresenceOracle(); - /// Returns True if the component is in server mode. /// \return True if the component is in server mode. - bool inServerMode() { return m_server != NULL; } + bool inServerMode(); /// Starts the Component. @@ -122,24 +92,18 @@ namespace Transport { /// This signal is emitted when server disconnects the transport because of some error. /// \param error disconnection error - boost::signal onConnectionError; + boost::signal onConnectionError; /// This signal is emitted when transport successfully connects the server. boost::signal onConnected; /// This signal is emitted when XML stanza is sent to server. - /// \param xml xml stanza - boost::signal onXMLOut; - - /// This signal is emitted when XML stanza is received from server. - - /// \param xml xml stanza - boost::signal onXMLIn; - Config *getConfig() { return m_config; } - /// This signal is emitted when presence from XMPP user is received. + bool isRawXMLEnabled() { + return m_rawXML; + } /// It's emitted only for presences addressed to transport itself /// (for example to="j2j.domain.tld") and for presences comming to @@ -147,52 +111,39 @@ namespace Transport { /// \param presence Presence. boost::signal onUserPresenceReceived; - /// Component class asks the XMPP clients automatically for their capabilities. - /// This signal is emitted when capabilities have been received or changed. - /// \param jid JID of the client for which we received capabilities - /// \param info disco#info with response. - boost::signal info)> onUserDiscoInfoReceived; - boost::signal)> onRawIQReceived; + + void handlePresence(Swift::Presence::ref presence); + void handleConnected(); + void handleConnectionError(const std::string &error); + void handleDataRead(const std::string &data); + void handleDataWritten(const std::string &data); - bool isRawXMLEnabled() { - return m_rawXML; + Frontend *getFrontend() { + return m_frontend; } - private: - void handleConnected(); - void handleConnectionError(const Swift::ComponentError &error); - void handleServerStopped(boost::optional e); - void handlePresence(Swift::Presence::ref presence); - void handleDataRead(const Swift::SafeByteArray &data); - void handleDataWritten(const Swift::SafeByteArray &data); + PresenceOracle *getPresenceOracle(); + private: void handleDiscoInfoResponse(boost::shared_ptr info, Swift::ErrorPayload::ref error, const Swift::JID& jid); void handleCapsChanged(const Swift::JID& jid); void handleBackendConfigChanged(); - bool handleIQ(boost::shared_ptr); Swift::NetworkFactories *m_factories; - Swift::Component *m_component; - Swift::Server *m_server; Swift::Timer::ref m_reconnectTimer; - Swift::EntityCapsManager *m_entityCapsManager; - Swift::CapsManager *m_capsManager; - Swift::CapsMemoryStorage *m_capsMemoryStorage; PresenceOracle *m_presenceOracle; - Swift::StanzaChannel *m_stanzaChannel; - Swift::IQRouter *m_iqRouter; Transport::UserRegistry *m_userRegistry; StorageBackend *m_storageBackend; int m_reconnectCount; Config* m_config; - std::string m_protocol; Swift::JID m_jid; Factory *m_factory; Swift::EventLoop *m_loop; bool m_rawXML; + Frontend *m_frontend; friend class User; friend class UserRegistration; diff --git a/include/transport/user.h b/include/transport/User.h similarity index 93% rename from include/transport/user.h rename to include/transport/User.h index ad259142..c845fa03 100644 --- a/include/transport/user.h +++ b/include/transport/User.h @@ -21,11 +21,13 @@ #pragma once #include -#include "Swiften/Disco/EntityCapsManager.h" -#include "Swiften/Disco/EntityCapsProvider.h" -#include "storagebackend.h" +#include "transport/StorageBackend.h" #include #include "Swiften/Elements/SpectrumErrorPayload.h" +#include "Swiften/JID/JID.h" +#include "Swiften/Elements/Presence.h" +#include "Swiften/Elements/Message.h" +#include "Swiften/Elements/DiscoInfo.h" #include "Swiften/Network/Timer.h" #include "Swiften/Network/Connection.h" @@ -36,10 +38,9 @@ class RosterManager; class ConversationManager; class UserManager; class PresenceOracle; -struct UserInfo; /// Represents online XMPP user. -class User : public Swift::EntityCapsProvider { +class User { public: /// Creates new User class. /// \param jid XMPP JID associated with this user @@ -60,7 +61,7 @@ class User : public Swift::EntityCapsProvider { /// \return full JID which supports particular feature or invalid JID. std::vector getJIDWithFeature(const std::string &feature); - Swift::DiscoInfo::ref getCaps(const Swift::JID &jid) const; +// Swift::DiscoInfo::ref getCaps(const Swift::JID &jid) const; /// Returns UserInfo struct with informations needed to connect the legacy network. /// \return UserInfo struct @@ -73,6 +74,8 @@ class User : public Swift::EntityCapsProvider { Component *getComponent() { return m_component; } UserManager *getUserManager() { return m_userManager; } + + virtual void disconnectUser(const std::string &error, Swift::SpectrumErrorPayload::Error e) = 0; void setData(void *data) { m_data = data; } void *getData() { return m_data; } @@ -146,7 +149,6 @@ class User : public Swift::EntityCapsProvider { RosterManager *m_rosterManager; UserManager *m_userManager; ConversationManager *m_conversationManager; - Swift::EntityCapsManager *m_entityCapsManager; PresenceOracle *m_presenceOracle; UserInfo m_userInfo; void *m_data; diff --git a/include/transport/usermanager.h b/include/transport/UserManager.h similarity index 92% rename from include/transport/usermanager.h rename to include/transport/UserManager.h index b0fd7605..d722970a 100644 --- a/include/transport/usermanager.h +++ b/include/transport/UserManager.h @@ -22,11 +22,12 @@ #include #include -#include "transport/userregistry.h" #include "Swiften/Elements/Message.h" #include "Swiften/Elements/Presence.h" +#include "Swiften/JID/JID.h" #include "Swiften/Disco/EntityCapsProvider.h" #include "Swiften/Elements/DiscoInfo.h" +#include "Swiften/Elements/VCard.h" #include "Swiften/Network/Timer.h" namespace Transport { @@ -36,7 +37,8 @@ class Component; class StorageBackend; class StorageResponder; class RosterResponder; -class DiscoItemsResponder; +class UserRegistration; +class UserRegistry; /// Manages online XMPP Users. @@ -55,15 +57,19 @@ class DiscoItemsResponder; UserManager->User [label="handlePresence(...)", URL="\ref User::handlePresence()"]; \endmsc */ -class UserManager : public Swift::EntityCapsProvider { +class UserManager /*: public Swift::EntityCapsProvider*/ { public: /// Creates new UserManager. /// \param component Component which's presence will be handled /// \param storageBackend Storage backend used to fetch UserInfos - UserManager(Component *component, UserRegistry *userRegistry, DiscoItemsResponder *discoItemsResponder, StorageBackend *storageBackend = NULL); + UserManager(Component *component, UserRegistry *userRegistry, StorageBackend *storageBackend = NULL); /// Destroys UserManager. - ~UserManager(); + virtual ~UserManager(); + + virtual void sendVCard(unsigned int id, Swift::VCard::ref vcard) = 0; + + virtual UserRegistration *getUserRegistration() = 0; /// Returns user according to his bare JID. /// \param barejid bare JID of user @@ -87,9 +93,7 @@ class UserManager : public Swift::EntityCapsProvider { void removeAllUsers(bool onUserBehalf = true); - Swift::DiscoInfo::ref getCaps(const Swift::JID&) const; - - DiscoItemsResponder *getDiscoResponder() { return m_discoItemsResponder; } +// Swift::DiscoInfo::ref getCaps(const Swift::JID&) const; /// Called when new User class is created. /// \param user newly created User class @@ -152,7 +156,6 @@ class UserManager : public Swift::EntityCapsProvider { Swift::Timer::ref m_removeTimer; unsigned long m_sentToXMPP; unsigned long m_sentToBackend; - DiscoItemsResponder *m_discoItemsResponder; friend class RosterResponder; }; diff --git a/include/transport/userregistration.h b/include/transport/UserRegistration.h similarity index 78% rename from include/transport/userregistration.h rename to include/transport/UserRegistration.h index 1c994423..b4c5a13f 100644 --- a/include/transport/userregistration.h +++ b/include/transport/UserRegistration.h @@ -24,6 +24,8 @@ #include "Swiften/Elements/InBandRegistrationPayload.h" #include "Swiften/Elements/RosterPayload.h" #include +#include +#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) namespace Transport { @@ -34,7 +36,7 @@ class UserManager; class Config; /// Allows users to register the transport using service discovery. -class UserRegistration : public Swift::Responder { +class UserRegistration { public: /// Creates new UserRegistration handler. /// \param component Component associated with this class @@ -43,7 +45,7 @@ class UserRegistration : public Swift::Responder onUserRegistered; @@ -69,12 +82,6 @@ class UserRegistration : public Swift::Responder onUserUpdated; private: - virtual bool handleGetRequest(const Swift::JID& from, const Swift::JID& to, const std::string& id, boost::shared_ptr payload); - virtual bool handleSetRequest(const Swift::JID& from, const Swift::JID& to, const std::string& id, boost::shared_ptr payload); - - void handleRegisterRemoteRosterResponse(boost::shared_ptr payload, Swift::ErrorPayload::ref error, const UserInfo &row); - void handleUnregisterRemoteRosterResponse(boost::shared_ptr payload, Swift::ErrorPayload::ref error, const std::string &barejid); - Component *m_component; StorageBackend *m_storageBackend; UserManager *m_userManager; diff --git a/include/transport/userregistry.h b/include/transport/UserRegistry.h similarity index 99% rename from include/transport/userregistry.h rename to include/transport/UserRegistry.h index 58590a01..e4bfa299 100644 --- a/include/transport/userregistry.h +++ b/include/transport/UserRegistry.h @@ -26,10 +26,11 @@ #include "Swiften/Network/NetworkFactories.h" #include "Swiften/Network/Timer.h" #include "Swiften/Network/TimerFactory.h" -#include "transport/config.h" namespace Transport { +class Config; + /// Validates passwords in Server mode. /// Normal login workflow could work like following: diff --git a/include/transport/usersreconnecter.h b/include/transport/UsersReconnecter.h similarity index 100% rename from include/transport/usersreconnecter.h rename to include/transport/UsersReconnecter.h diff --git a/include/transport/util.h b/include/transport/Util.h similarity index 97% rename from include/transport/util.h rename to include/transport/Util.h index 490724bf..13ca3df0 100644 --- a/include/transport/util.h +++ b/include/transport/Util.h @@ -27,10 +27,11 @@ #include "Swiften/StringCodecs/Base64.h" #include -#include "transport/config.h" namespace Transport { +class Config; + namespace Util { void createDirectories(Transport::Config *config, const boost::filesystem::path& ph); diff --git a/msvc-deps/CMakeLists.txt b/msvc-deps/CMakeLists.txt index b9360e97..e830d462 100644 --- a/msvc-deps/CMakeLists.txt +++ b/msvc-deps/CMakeLists.txt @@ -1,2 +1 @@ ADD_SUBDIRECTORY(sqlite3) -ADD_SUBDIRECTORY(curl) diff --git a/msvc-deps/curl b/msvc-deps/curl new file mode 160000 index 00000000..f39b1c08 --- /dev/null +++ b/msvc-deps/curl @@ -0,0 +1 @@ +Subproject commit f39b1c080129c01c8204d3a5a40aad038c7a57f3 diff --git a/msvc-deps/curl/Android.mk b/msvc-deps/curl/Android.mk deleted file mode 100644 index 2c0064fa..00000000 --- a/msvc-deps/curl/Android.mk +++ /dev/null @@ -1,112 +0,0 @@ -# Google Android makefile for curl and libcurl -# -# This file can be used when building curl using the full Android source -# release or the NDK. Most users do not want or need to do this; please -# instead read the Android section in docs/INSTALL for alternate -# methods. -# -# Place the curl source (including this makefile) into external/curl/ in the -# Android source tree. Then build them with 'make curl' or just 'make libcurl' -# from the Android root. Tested with Android versions 1.5, 2.1-2.3 -# -# Note: you must first create a curl_config.h file by running configure in the -# Android environment. The only way I've found to do this is tricky. Perform a -# normal Android build with libcurl in the source tree, providing the target -# "showcommands" to make. The build will eventually fail (because curl_config.h -# doesn't exist yet), but the compiler commands used to build curl will be -# shown. Now, from the external/curl/ directory, run curl's normal configure -# command with flags that match what Android itself uses. This will mean -# putting the compiler directory into the PATH, putting the -I, -isystem and -# -D options into CPPFLAGS, putting the -W, -m, -f, -O and -nostdlib options -# into CFLAGS, and putting the -Wl, -L and -l options into LIBS, along with the -# path to the files libgcc.a, crtbegin_dynamic.o, and ccrtend_android.o. -# Remember that the paths must be absolute since you will not be running -# configure from the same directory as the Android make. The normal -# cross-compiler options must also be set. Note that the -c, -o, -MD and -# similar flags must not be set. -# -# To see all the LIBS options, you'll need to do the "showcommands" trick on an -# executable that's already buildable and watch what flags Android uses to link -# it (dhcpcd is a good choice to watch). You'll also want to add -L options to -# LIBS that point to the out/.../obj/lib/ and out/.../obj/system/lib/ -# directories so that additional libraries can be found and used by curl. -# -# The end result will be a configure command that looks something like this -# (the environment variable A is set to the Android root path which makes the -# command shorter): -# -# A=`realpath ../..` && \ -# PATH="$A/prebuilt/linux-x86/toolchain/arm-eabi-X/bin:$PATH" \ -# ./configure --host=arm-linux CC=arm-eabi-gcc \ -# CPPFLAGS="-I $A/system/core/include ..." \ -# CFLAGS="-nostdlib -fno-exceptions -Wno-multichar ..." \ -# LIBS="$A/prebuilt/linux-x86/toolchain/arm-eabi-X/lib/gcc/arm-eabi/X\ -# /interwork/libgcc.a ..." -# -# Finally, copy the file COPYING to NOTICE so that the curl license gets put -# into the right place (but see the note about this below). -# -# Dan Fandrich -# November 2011 - -LOCAL_PATH:= $(call my-dir) - -common_CFLAGS := -Wpointer-arith -Wwrite-strings -Wunused -Winline -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal -Wno-multichar -Wsign-compare -Wno-format-nonliteral -Wendif-labels -Wstrict-prototypes -Wdeclaration-after-statement -Wno-system-headers -DHAVE_CONFIG_H - -######################### -# Build the libcurl library - -include $(CLEAR_VARS) -include $(LOCAL_PATH)/lib/Makefile.inc -CURL_HEADERS := \ - curlbuild.h \ - curl.h \ - curlrules.h \ - curlver.h \ - easy.h \ - mprintf.h \ - multi.h \ - stdcheaders.h \ - typecheck-gcc.h - -LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES)) -LOCAL_C_INCLUDES += $(LOCAL_PATH)/include/ -LOCAL_CFLAGS += $(common_CFLAGS) - -LOCAL_COPY_HEADERS_TO := libcurl/curl -LOCAL_COPY_HEADERS := $(addprefix include/curl/,$(CURL_HEADERS)) - -LOCAL_MODULE:= libcurl -LOCAL_MODULE_TAGS := optional - -# Copy the licence to a place where Android will find it. -# Actually, this doesn't quite work because the build system searches -# for NOTICE files before it gets to this point, so it will only be seen -# on subsequent builds. -ALL_PREBUILT += $(LOCAL_PATH)/NOTICE -$(LOCAL_PATH)/NOTICE: $(LOCAL_PATH)/COPYING | $(ACP) - $(copy-file-to-target) - -include $(BUILD_STATIC_LIBRARY) - - -######################### -# Build the curl binary - -include $(CLEAR_VARS) -include $(LOCAL_PATH)/src/Makefile.inc -LOCAL_SRC_FILES := $(addprefix src/,$(CURL_CFILES)) - -LOCAL_MODULE := curl -LOCAL_MODULE_TAGS := optional -LOCAL_STATIC_LIBRARIES := libcurl -LOCAL_SYSTEM_SHARED_LIBRARIES := libc - -LOCAL_C_INCLUDES += $(LOCAL_PATH)/include $(LOCAL_PATH)/lib - -# This may also need to include $(CURLX_ONES) in order to correctly link -# if libcurl is changed to be built as a dynamic library -LOCAL_CFLAGS += $(common_CFLAGS) - -include $(BUILD_EXECUTABLE) - diff --git a/msvc-deps/curl/CHANGES b/msvc-deps/curl/CHANGES deleted file mode 100644 index 27f6809d..00000000 --- a/msvc-deps/curl/CHANGES +++ /dev/null @@ -1,5600 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - - Changelog - -Version 7.28.1 (20 Nov 2012) - -Daniel Stenberg (20 Nov 2012) -- RELEASE-NOTES: synced with 52af6e69f079 / 7.28.1 - -Kamil Dudka (20 Nov 2012) -- [Anthony Bryan brought this change] - - RELEASE-NOTES: NSS can be used for metalink hashing - -- [Fabian Keil brought this change] - - Get test 2032 working when using valgrind - - If curl_multi_fdset() sets maxfd to -1, the socket detection - loop is skipped and thus !found_new_socket is no cause for alarm. - -- test2032: spurious failure caused by premature termination - - Bug: http://curl.haxx.se/mail/lib-2012-11/0095.html - -Daniel Stenberg (19 Nov 2012) -- [Fabian Keil brought this change] - - Fix comment typos in test 517 - -- [Fabian Keil brought this change] - - Test 92 and 194: normalize spaces in the Server headers - - It makes no difference from curl's point of view but - makes it more convenient to use the tests with a - lws-normalizing proxy between curl and the test server. - -- [Fabian Keil brought this change] - - Add a HOSTIP precheck for tests 31 and 1105 - - They currently only work for 127.0.0.1 which - is hardcoded and can't be easily changed. - -- [Fabian Keil brought this change] - - Let test 8 work as long as %HOSTIP ends with ".0.0.1" - - .. and add a precheck to skip the test otherwise. - -- [Fabian Keil brought this change] - - Add --resolve to the keywords and name of test 1318 - - This makes it easier to skip it automatically when - the test suite is used with external proxies. - -- [Fabian Keil brought this change] - - Add FTP keywords for a couple of currently keyword-less FTP tests - -- [Fabian Keil brought this change] - - Add keywords for a couple of currently keyword-less HTTP tests - -- [Fabian Keil brought this change] - - Use carriage returns in all headers in test 31 - - Trailing spaces were left unmodifed, assuming they were intentional. - -- [Fabian Keil brought this change] - - Do not mix CRLF and LF header endings in a couple of HTTP tests - - Consistently use CRLF instead. The mixed endings weren't - documented so I assume they were unintentional. - - This change doesn't matter for curl itself but makes using - the tests with a proxy between curl and the test server - more convenient. - - Tests that consistently use no carriage returns were - left unmodified as one can easily work around this. - -- fixed memory leak: CURLOPT_RESOLVE with multi interface - - DNS cache entries populated with CURLOPT_RESOLVE were not properly freed - again when done using the multi interface. - - Test case 1502 added to verify. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3575448 - Reported by: Alex Gruz - -- RELEASE-NOTES: synced with ee588fe08807778 - - 4 more bug fixes and 4 more contributors - -- mem-include-scan: verify memory #includes - - If we use memory functions (malloc, free, strdup etc) in C sources in - libcurl and we fail to include curl_memory.h or memdebug.h we either - fail to properly support user-provided memory callbacks or the memory - leak system of the test suite fails. - - After Ajit's report of a failure in the first category in http_proxy.c, - I spotted a few in the second category as well. These problems are now - tested for by test 1132 which runs a perl program that scans for and - attempts to check that we use the correct include files if a memory - related function is used in the source code. - - Reported by: Ajit Dhumale - Bug: http://curl.haxx.se/mail/lib-2012-11/0125.html - -- tftp_rx: code style cleanup - - Fixed checksrc warnings - -- [Fabian Keil brought this change] - - Fix the libauthretry changes from 7c0cbcf2f61 - - They broke the NTLM tests from 2023 to 2031. - -- [Christian Vogt brought this change] - - tftp_rx: handle resends - - Re-send ACK for block X in case we receive block X data again while - waiting for block X+1. - - Based on an earlier patch by Marcin Adamski. - -- autoconf: don't force-disable compiler debug option - - When nothing is told to configure, we should not enforce switching off - debug options with -g0 (or similar). We instead don't use -g at all in - that situaion and therefore allow the user's CFLAGS settings possibly - dictate what to do. - -- [Mark Snelling brought this change] - - winbuild: Fix PDB file output - - And fix some newlines to be proper CRLF - - Bug: http://curl.haxx.se/bug/view.cgi?id=3586741 - -- RELEASE-NOTES: synced with fa1ae0abcde - -- [Cristian Rodríguez brought this change] - - OpenSSL: Disable SSL/TLS compression - - It either causes increased memory usage or exposes users - to the "CRIME attack" (CVE-2012-4929) - -- [Sebastian Rasmussen brought this change] - - FILE: Make upload-writes unbuffered by not using FILE streams - -Kamil Dudka (13 Nov 2012) -- tool_metalink: fix error detection of hash alg initialization - - The {MD5,SHA1,SHA256}_Init functions from OpenSSL are called directly - without any wrappers and they return 1 for success, 0 otherwise. Hence, - we have to use the same approach in all the wrapper functions that are - used for the other crypto libraries. - - This commit fixes a regression introduced in commit dca8ae5f. - -Daniel Stenberg (13 Nov 2012) -- RELEASE-NOTES: synced with 7c0cbcf2f617b - -- [Sergei Nikulov brought this change] - - fixed Visual Studio 2010 compilation - -- [Anton Malov brought this change] - - ftp: EPSV-disable fix over SOCKS - - Bug: http://curl.haxx.se/bug/view.cgi?id=3586338 - -Patrick Monnerat (12 Nov 2012) -- Merge branch 'master' of github.com:bagder/curl - -- OS400: upgrade wrappers for the 7.28.1 release. - -Daniel Stenberg (12 Nov 2012) -- runtests: limit execessive logging/output - -- [Gabriel Sjoberg brought this change] - - Digst: Add microseconds into nounce calculation - - When using only 1 second precision, curl doesn't create new cnonce - values quickly enough for all uses. - - For example, issuing the following command multiple times to a recent - Tomcat causes authentication failures: - - curl --digest -utest:test http://tomcat.test.com:8080/manager/list - - This is because curl uses the same cnonce for several seconds, but - doesn't increment the nonce counter.  Tomcat correctly interprets - this as a replay attack and rejects the request. - - When microsecond-precision is available, this commit causes curl to - change cnonce values much more frequently. - - With microsecond resolution, increasing the nounce length used in the - headers to 32 was made to further reduce the risk of duplication. - -- SCP/SFTP: improve error code used for send failures - - Instead of relying on the generic CURLE error for SCP or SFTP send - failures, try passing back a more suitable error if possible. - -- Curl_write: remove unneeded typecast - -Kamil Dudka (9 Nov 2012) -- tool_metalink: allow to use hash algorithms provided by NSS - - Fixes bug #3578163: - http://sourceforge.net/tracker/?func=detail&atid=100976&aid=3578163&group_id=976 - -- tool_metalink: allow to handle failure of hash alg initialization - -- tool_metalink: introduce metalink_cleanup() in the internal API - - ... to release resources allocated at global scope - -Daniel Stenberg (8 Nov 2012) -- hostcheck: only build for the actual users - - and make local function static - -- [Oscar Koeroo brought this change] - - SSL: Several SSL-backend related fixes - - axTLS: - - This will make the axTLS backend perform the RFC2818 checks, honoring - the VERIFYHOST setting similar to the OpenSSL backend. - - Generic for OpenSSL and axTLS: - - Move the hostcheck and cert_hostcheck functions from the lib/ssluse.c - files to make them genericly available for both the OpenSSL, axTLS and - other SSL backends. They are now in the new lib/hostcheck.c file. - - CyaSSL: - - CyaSSL now also has the RFC2818 checks enabled by default. There is a - limitation that the verifyhost can not be enabled exclusively on the - Subject CN field comparison. This SSL backend will thus behave like the - NSS and the GnuTLS (meaning: RFC2818 ok, or bust). In other words: - setting verifyhost to 0 or 1 will disable the Subject Alt Names checks - too. - - Schannel: - - Updated the schannel information messages: Split the IP address usage - message from the verifyhost setting and changed the message about - disabling SNI (Server Name Indication, used in HTTP virtual hosting) - into a message stating that the Subject Alternative Names checks are - being disabled when verifyhost is set to 0 or 1. As a side effect of - switching off the RFC2818 related servername checks with - SCH_CRED_NO_SERVERNAME_CHECK - (http://msdn.microsoft.com/en-us/library/aa923430.aspx) the SNI feature - is being disabled. This effect is not documented in MSDN, but Wireshark - output clearly shows the effect (details on the libcurl maillist). - - PolarSSL: - - Fix the prototype change in PolarSSL of ssl_set_session() and the move - of the peer_cert from the ssl_context to the ssl_session. Found this - change in the PolarSSL SVN between r1316 and r1317 where the - POLARSSL_VERSION_NUMBER was at 0x01010100. But to accommodate the Ubuntu - PolarSSL version 1.1.4 the check is to discriminate between lower then - PolarSSL version 1.2.0 and 1.2.0 and higher. Note: The PolarSSL SVN - trunk jumped from version 1.1.1 to 1.2.0. - - Generic: - - All the SSL backends are fixed and checked to work with the - ssl.verifyhost as a boolean, which is an internal API change. - -- libcurl: VERSIONINFO update - - Since we added the curl_multi_wait function, the VERSIONINFO needed - updating. - - Reported by: Patrick Monnerat - -Guenter Knauf (8 Nov 2012) -- Added .def file to output. - - Requested by Johnny Luong on the libcurl list. - -- Added deps for static metalink-aware MinGW builds. - -Daniel Stenberg (8 Nov 2012) -- [Fabian Keil brought this change] - - Fix compilation of lib1501 - -- Curl_readwrite: remove debug output - - The text "additional stuff not fine" text was added for debug purposes a - while ago, but it isn't really helping anyone and for some reason some - Linux distributions provide their libcurls built with debug info still - present and thus (far too many) users get to read this info. - -- RELEASE-NOTES: synced with 487538e87a3d5e - - 6 new bugfixes and 3 more contributors... - -- http_perhapsrewind: consider NTLM over proxy too - - The logic previously checked for a started NTLM negotiation only for - host and not also with proxy, leading to problems doing POSTs over a - proxy NTLM that are larger than 2000 bytes. Now it includes proxy in the - check. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3582321 - Reported by: John Suprock - -- [Lars Buitinck brought this change] - - Curl_connecthost: friendlier "couldn't connect" message - -- test1413: verify redirects to URLs with fragments - - The bug report claimed it didn't work. This problem was probably fixed - in 473003fbdf. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3581898 - -- URL parser: cut off '#' fragments from URLs (better) - - The existing logic only cut off the fragment from the separate 'path' - buffer which is used when sending HTTP to hosts. The buffer that held - the full URL used for proxies were not dealt with. It is now. - - Test case 5 was updated to use a fragment on a URL over a proxy. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3579813 - -- OpenSSL/servercert: use correct buffer size, not size of pointer - - Bug: http://curl.haxx.se/bug/view.cgi?id=3579286 - -- curl: set CURLOPT_SSL_VERIFYHOST to 0 to disable - -- test 2027/2030: take duplicate Digest requests into account - - With the reversion of ce8311c7e49eca and the new clear logic, this flaw - is present and we allow it. - -- Curl_pretransfer: clear out unwanted auth methods - - As a handle can be re-used after having done HTTP auth in a previous - request, it must make sure to clear out the HTTP types that aren't - wanted in this new request. - -- test1412: verify Digest with repeated URLs - - This test case verifies that bug 3582718 is fixed. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3582718 - Reported by: Nick Zitzmann (originally) - -- Revert "Zero out auth structs before transfer" - - This reverts commit ce8311c7e49eca93c136b58efa6763853541ec97. - - The commit made test 2024 work but caused a regression with repeated - Digest authentication. We need to fix this differently. - -- CURLOPT_SSL_VERIFYHOST: stop supporting the 1 value - - After a research team wrote a document[1] that found several live source - codes out there in the wild that misused the CURLOPT_SSL_VERIFYHOST - option thinking it was a boolean, this change now bans 1 as a value and - will make libcurl return error for it. - - 1 was never a sensible value to use in production but was introduced - back in the days to help debugging. It was always documented clearly - this way. - - 1 was never supported by all SSL backends in libcurl, so this cleanup - makes the treatment of it unified. - - The report's list of mistakes for this option were all PHP code and - while there's a binding layer between libcurl and PHP, the PHP team has - decided that they have an as thin layer as possible on top of libcurl so - they will not alter or specifically filter a 'TRUE' value for this - particular option. I sympathize with that position. - - [1] = http://daniel.haxx.se/blog/2012/10/25/libcurl-claimed-to-be-dangerous/ - -- gnutls: fix compiler warnings - -- [Alessandro Ghedini brought this change] - - gnutls: print alerts during handshake - -- [Alessandro Ghedini brought this change] - - gnutls: fix the error_is_fatal logic - -- RELEASE-NOTES: synced with fa6d78829fd30ad - -- httpcustomheader.c: free the headers after use - -- [Dave Reisner brought this change] - - uniformly use AM_CPPFLAGS, avoid deprecated INCLUDES - - Since automake 1.12.4, the warnings are issued on running automake: - - warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS') - - Avoid INCLUDES and roll these flags into AM_CPPFLAGS. - - Compile tested on: - Ubuntu 10.04 (automake 1:1.11.1-1) - Ubuntu 12.04 (automake 1:1.11.3-1ubuntu2) - Arch Linux (automake 1.12.4) - -- libauthretry.c: shorten lines to fit within 80 cols - -- ftp_readresp: fix build without krb4 support - - Oops, my previous commit broke builds with krb support. - -- test/README: mention the 1500 test number range - -- FTP: prevent the multi interface from blocking - - As pointed out in Bug report #3579064, curl_multi_perform() would - wrongly use a blocking mechanism internally for some commands which - could lead to for example a very long block if the LIST response never - showed. - - The solution was to make sure to properly continue to use the multi - interface non-blocking state machine. - - The new test 1501 verifies the fix. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3579064 - Reported by: Guido Berhoerster - -Marc Hoersken (1 Nov 2012) -- winbuild: Use machine type of development environment - - This patch restores the original behavior instead of always - falling back to x86 if no MACHINE-type was specified. - -- winbuild: Additional clean up - -- [Sapien2 brought this change] - - Even more winbuild refactoring - -- [Sapien2 brought this change] - - Minor winbuild refactoring - -- [Sapien2 brought this change] - - Architecture selection for winbuild and minor makefiles refactoring - -Daniel Stenberg (1 Nov 2012) -- BUGS: fix the bug tracker URL - - The URL we used before is the one that goes directly to 'add' a bug - report, but since you can only do that after first having logged in to - sourceforge, the link often doesn't work for visitors. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3582408 - Reported by: Oscar Norlander - -- evhiperfifo: fix the pointer passed to WRITEDATA - - Bug: http://curl.haxx.se/bug/view.cgi?id=3582407 - Reported by: Oscar Norlander - -Guenter Knauf (1 Nov 2012) -- Fixed MSVC libssh2 static build. - - Since libssh2 supports now agent stuff it also depends on user32.lib. - Posted to the list by Jan Ehrhardt. - -Daniel Stenberg (23 Oct 2012) -- tlsauthtype: deal with the string case insensitively - - When given a string as 'srp' it didn't work, but required 'SRP'. - Starting now, the check disregards casing. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3578418 - Reported by: Jeff Connelly - -- asyn-ares: restore working with c-ares < 1.6.1 - - Back in those days the public ares.h header didn't include the - ares_version.h header so it needs to be included here. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3577710 - -- [Nick Zitzmann brought this change] - - metalink/md5: Use CommonCrypto on Apple operating systems - - Previously the Metalink code used Apple's CommonCrypto library only if - curl was built using the --with-darwinssl option. Now we use CommonCrypto - on all Apple operating systems including Tiger or later, or iOS 5 or - later, so you don't need to build --with-darwinssl anymore. Also rolled - out this change to libcurl's md5 code. - -- href_extractor.c: fix the URL - -- [MichaÅ‚ Kowalczyk brought this change] - - href_extractor: example code extracting href elements - - It does so in a streaming manner using the "Streaming HTML parser". - -- [Nick Zitzmann brought this change] - - darwinssl: un-broke iOS build, fix error on server disconnect - - The iOS build was broken by a reference to a function that only existed - under OS X; fixed. Also fixed a hard-to-reproduce problem where, if the - server disconnected before libcurl got the chance to hang up first and - SecureTransport was in use, then we'd raise an error instead of failing - gracefully. - -- [Alessandro Ghedini brought this change] - - gnutls: put reset code into else block - - Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690551 - -Guenter Knauf (13 Oct 2012) -- Fix now broken libmetalink-aware OpenSSL build. - -- Revert c44e674; add OpenSSL includes/defines. - - The makefile is designed to build against a libmetalink devel package; - therefore is does not matter what will change inside libmetalink. - Add OpenSSL includes and defines for libmetalink-aware OpenSSL builds. - -Daniel Stenberg (10 Oct 2012) -- version-bump: towards 7.28.1! - -- THANKS: 14 new contributors from 7.28.0 - -Version 7.28.0 (10 Oct 2012) - -Daniel Stenberg (10 Oct 2012) -- RELEASE-NOTES: synced with 8373ca3641 - - One bug, one contributor. Getting ready for release. - -- curl_multi_wait: no wait if no descriptors to wait for - - This is a minor change in behavior after having been pointed out by Mark - Tully and discussed on the list. Initially this case would internally - call poll() with no sockets and a timeout which would equal a sleep for - that specified time. - - Bug: http://curl.haxx.se/mail/lib-2012-10/0076.html - Reported by: Mark Tully - -- TODO-RELEASE: cleanup for 7.28.0 - - one issue is now KNOWN_BUG #79 - - the other we just skip since nobody is working on it or is planning to - start working on it anytime soon - -- curl_multi_wait.3: style formatting mistake - -Marc Hoersken (8 Oct 2012) -- ssluse.c: md5.h is required for Curl_ossl_md5sum - -Daniel Stenberg (8 Oct 2012) -- curl_multi_wait.3: fix the name of the man page - -- curl_multi_wait.3: renamed the last argument variable for clarity - -Marc Hoersken (6 Oct 2012) -- curl_schannel.c: Fixed caching more data than required - - Do not fill the decrypted data buffer with more data unless - required in order to return the requested amount of data. - -- curl_schannel: Removed buffer limit and optimized buffer strategy - - Since there are servers that seem to return very big encrypted - data packages, we need to be able to handle those without having - an internal size limit. To avoid the buffer growing to fast to - early the initial size was decreased and the minimum free space - in the buffer was decreased as well. - -- lib/socks.c: Merged two size variables into one - -- lib/socks.c: Avoid type conversions where possible - - Streamlined variable names and types to avoid type conversions that - may result in data being lost on non 32-bit systems. - -- lib/curl_schannel.c: Hide size_t conversion warning - -- krb5/curl_rtmp.c: Hide size_t to int type conversion warning - -- security.c: Aligned internal type to return type - - Use ssize_t instead of int to avoid conversion problems on 64-bit - systems. Also added curlx_sztosi where necessary. - -- lib/curl_schannel: Increased maximum buffer size to factor 128 - -- winbuild/MakefileBuild.vc: Follow up on 0c8ccf7 - -Daniel Stenberg (2 Oct 2012) -- RELEASE-NOTES: synced with 971f5bcedd418 - - 9 new bug fixes, 5 changes, 6 more contributors - -- multi_runsingle: CURLOPT_LOW_SPEED_* fix for rate limitation - - During the periods of rate limitation, the speedcheck function wasn't - called and thus the values weren't updated accordingly and it would then - easily trigger wrongly once data got transferred again. - - Also, the progress callback's return code was not acknowledged in this - state so it could make an "abort" return code to get ignored and not - have the documented effect of aborting an ongoing transfer. - - Bug: http://curl.haxx.se/mail/lib-2012-09/0081.html - Reported by: Jie He - -- [Tatsuhiro Tsujikawa brought this change] - - tool_metalink.c: Filtered resource URLs by type - - In Metalink v3, the type attribute of url element indicates the - type of the resource the URL points to. It can include URL to the - meta data, such as BitTorrent metainfo file. In Curl, we are not - interested in these meta data URLs. Instead, we are only - interested in the HTTP and FTP URLs. This change filters out - non-HTTP and FTP URLs. If we don't filter out them, it will be - downloaded by curl and hash check will fail if hash is provided - and next URL will be tried. This change will cut this useless - network transfer. - -Kamil Dudka (1 Oct 2012) -- https.c example: remember to call curl_global_init() - - ... in order not to leak memory on initializing an SSL library. - - Reported by: Tomas Mlcoch - -Daniel Stenberg (28 Sep 2012) -- FAQ: remove the date from the topmost line - -- FAQ: 5.16 I want a different time-out! - -- Curl_reconnect_request: clear pointer on failure - - The Curl_reconnect_request() function could end up returning a pointer - to a free()d struct when Curl_done() failed inside. Clearing the pointer - unconditionally after Curl_done() avoids this risk. - - Reported by: Ho-chi Chen - Bug: http://curl.haxx.se/mail/lib-2012-09/0188.html - -- CURLOPT_CONNECTTIMEOUT: works without signals or posix too! - -Marc Hoersken (24 Sep 2012) -- Makefile.vc6: Follow up on 0c8ccf7 - -- Makefile.vc6: Added missing default library advapi32.lib - -Daniel Stenberg (19 Sep 2012) -- HTTP_ONLY: disable more protocols - -- test2006: Updated expected output to include hash name - - Output changed in commit a34197ef77cb - -- [Sergei Nikulov brought this change] - - cmake: use standard findxxx modules for cmake v2.8+ - -- [Sergei Nikulov brought this change] - - setup.h: fixed for MS VC10 build - - Bug: http://curl.haxx.se/bug/view.cgi?id=3568327 - -- TODO-RELEASE: push new features to 7.29 - - Leave two bug fixes as possibly fixed for 7.28 but as nobody seems to be - working on them I have little hope... - -Marc Hoersken (17 Sep 2012) -- metalink tests: Updated expected output to include hash name - -Daniel Stenberg (16 Sep 2012) -- [Sara Golemon brought this change] - - curl_multi_wait: Add parameter to return number of active sockets - - Minor change to recently introduced function. BC breaking, but since - curl_multi_wait() doesn't exist in any releases that should be fine. - -Marc Hoersken (14 Sep 2012) -- socks.c: Fixed warning: conversion to 'int' from 'long unsigned int' - -- http_negotiate.c: Fxied warning: unused variable 'rc' - -- ssh.c: Fixed warning: implicit conversion from enumeration type - -- socks.c: Check that IPv6 is enabled before using it's features - -- checksrc: Fixed line length and comment indentation - -- socks.c: Updated error messages to handle hostname and IPv6 - -- socks.c: Added support for IPv6 connections through SOCKSv5 proxy - -Daniel Stenberg (13 Sep 2012) -- parse_proxy: treat "socks://x" as a socks4 proxy - - Selected socks proxy in Google's Chrome browser. Resulting in the - following environment variables: - - NO_PROXY=localhost,127.0.0.0/8 - ALL_PROXY=socks://localhost:1080/ - all_proxy=socks://localhost:1080/ - no_proxy=localhost,127.0.0.0/8 - - ... and libcurl didn't treat 'socks://' as socks but instead picked HTTP - proxy. - - Reported by: Scott Bailey - - Bug: http://curl.haxx.se/bug/view.cgi?id=3566860 - -Kamil Dudka (12 Sep 2012) -- ssh: do not crash if MD5 fingerprint is not provided by libssh2 - - The MD5 fingerprint cannot be computed when running in FIPS mode. - -- ssh: move the fingerprint checking code to a separate fnc - -Marc Hoersken (12 Sep 2012) -- tool_metalink.c: Added name of validation hash to messages - - This makes it easier to debug broken hashes or hash functions. - -- wincrypt: Fixed cross-compilation issues caused by include name - - For some reason WinCrypt.h is named wincrypt.h under MinGW. - -- md5.c: Added support for Microsoft Windows CryptoAPI - -- Makefile.m32: Updated to build against libmetalink 0.1.2 - - The include and library path were moved within libmetalink, this - patch adjusts the defaults provided within the curl MinGW makefile. - -- tool_metalink.c: Added support for Microsoft Windows CryptoAPI - - Since Metalink support requires a crypto library for hash functions - and Windows comes with the builtin CryptoAPI, this patch adds that - API as a fallback to the supported crypto libraries. - It is automatically used on Windows if no other library is provided. - -- libntlmconnect.c: Fixed typo and conversion - -- libntlmconnect.c: Fixed warning: curl_easy_getinfo expects long pointer - - Fixed tests/libtest/libntlmconnect.c:52: warning: call to - '_curl_easy_getinfo_err_long' declared with attribute warning: - curl_easy_getinfo expects a pointer to long for this info - -- sws.c: Fixed warning: 'err' may be used uninitialized in this function - -- libntlmconnect.c: Fixed warning: comparison of signed/unsigned integer - - Windows does not use -1 to represent invalid sockets and the - SOCKET type is unsigned. - -- nss.c: Fixed warning: 'err' may be used uninitialized in this function - -- tool_metalink.c: Fixed error: 'O_BINARY' undeclared - - Check for O_BINARY which is not available on every system. - -- tool_metalink.c: Fixed validation of binary files containing EOF - - Since Windows/MinGW threat 0x1A as the EOF character, reading binary - files which contain that byte does not work using text mode. - The read function will only read until the first 0x1A byte. This - means that the hash is not computed from the whole file and the - final validation check using hash comparision fails. - -- winbuild: Added support for building with SPNEGO enabled - - Since Simple and Protected GSSAPI Negotiation Mechanism - is already implemented in curl and supported by the MinGW - builds, this change adds build support to winbuild makefiles. - -- winbuild: Adjusted order of options to generated config name - - Cleaned up order of handled build options by ordering them - nearly alphabetically by using the order of the generated - config name. Preparation for future/more build options. - -Daniel Stenberg (9 Sep 2012) -- [Anthony Bryan brought this change] - - MANUAL: clarified user+password in HTTP URLs - -- RELEASE-NOTES: synced with 6c6f1f64c2 - - 6 bug fixes to mention, 5 contributors - -- TODO-RELEASE: CURLSSH_AUTH_AGENT and curl_multi_wait() are done - - -321 - CURLSSH_AUTH_AGENT patch by Armel Asselin - - -324 - curl_multi_select() vs curl_multi_fdvec() etc - -Marc Hoersken (9 Sep 2012) -- curl_schannel.c: Reference count the credential/session handle - - Reference counting the credential handle should avoid that such a - handle is freed while it is still required for connection shutdown - -Daniel Stenberg (8 Sep 2012) -- [Nick Zitzmann brought this change] - - darwinssl: fixed for older Mac OS X versions - - SSL didn't work on older cats if built on a newer cat with weak-linking - turned on to support the older cat - -- [David Blaikie brought this change] - - tool_easysrc.c: Test pointers against NULL - - While validating a new Clang diagnostic (-Wnon-literal-null-conversion - - yes, the name isn't quite correct in this case, but it suffices) I found - a few violations of it in Curl. - -- SOCKS: truly disable it if CURL_DISABLE_PROXY is defined - - Bug: http://curl.haxx.se/bug/view.cgi?id=3561305 - - Patch by: Marcel Raad - -- mk-ca-bundle: detect start of trust section better - - Each certificate section of the input certdata.txt file has a trust - section following it with details. - - This script failed to detect the start of the trust for at least one - cert[*], which made the script continue pass that section into the next - one where it found an 'untrusted' marker and as a result that certficate - was not included in the output. - - [*] = "Hellenic Academic and Research Institutions RootCA 2011" - - Bug: http://curl.haxx.se/mail/lib-2012-09/0019.html - -- [Alessandro Ghedini brought this change] - - gnutls: do not fail on non-fatal handshake errors - - Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685402 - -- FILEFORMAT: the FTP commands work for more protocols - -- test1411: verify SMTP without SIZE support - -- [FrantiÅ¡ek KuÄera brought this change] - - SMTP: only send SIZE if supported - - SMTP client will send SIZE parameter in MAIL FROM command only if server - supports it. Without this patch server might say "504 Command parameter - not implemented" and reject the message. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3564114 - -- ftpserver: respond with a 250 to SMTP EHLO - - ... and specify that SIZE is supported. 250 is the "correct" response - code according to RFC 2821 - -- RELEASE-NOTES: synced with abb0da919300e - -Dan Fandrich (3 Sep 2012) -- Updated Symbian build files - - This is untested, but at least Symbian still has a chance of - still working now. - -- Updated build docs w.r.t. Android and binary sizes - -Daniel Stenberg (1 Sep 2012) -- symbols-in-versions: new CURL_WAIT_* symbols - -- [Sara Golemon brought this change] - - Unit test for curl_multi_wait() - -- [Sara Golemon brought this change] - - Manpage for curl_multi_wait(). - -- [Sara Golemon brought this change] - - multi: add curl_multi_wait() - - /* - * Name: curl_multi_wait() - * - * Desc: Poll on all fds within a CURLM set as well as any - * additional fds passed to the function. - * - * Returns: CURLMcode type, general multi error code. - */ - CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, - struct curl_waitfd extra_fds[], - unsigned int extra_nfds, - int timeout_ms); - -- [Nick Zitzmann brought this change] - - darwinssl: Bugfix for previous commit for older cats - - I accidentally broke functionality for versions of OS X prior to Mountain - Lion in the previous commit. This commit fixes the problems. - -- [Joe Mason brought this change] - - Use MAX_EASY_HANDLES instead of hardcoding the number of handles twice - -- test2032: bail out after last transfer - - The test would hang and get aborted with a "ABORTING TEST, since it - seems that it would have run forever." until I prevented that from - happening. - - I also fixed the data file which got broken CRLF line endings when I - sucked down the path from Joe's repo == my fault. - - Removed #37 from KNOWN_BUGS as this fix and test case verifies exactly - this. - -- [Joe Mason brought this change] - - NTLM: re-use existing connection better - - If we need an NTLM connection and one already exists, always choose that - one. - -- [Joe Mason brought this change] - - NTLM: verify multiple connections work - - Add test2032 to test that NTLM does not switch connections in the middle - of the handshake - -- curl.1: list the -w variables sorted alphabetically - -- libcurl-share.3: remove wrong info of what can be shared - - "Currently you can only share DNS and/or COOKIE data" is incorrect since - also SSL sessions can be shared. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3562261 - Reported by: Joe Mason - -- [Dave Reisner brought this change] - - examples: use do/while loop for multi examples - - It's conceivable that after the first time curl_multi_perform returns, - the outvalue still_running will be 0, but work will have been done. This - is shown by a workload of small, purely file:// based URLs. Ensure that - we always read pending messages off the multi handle by forcing the - while loop to run at least once. - -- curl.h: fix comment to refer to current names - - CURLOPT_USE_SSL should be set to CURLUSESSL_* and nothing else in modern - libcurl versions. - -- ftpsget: simple example showing a FTPS fetch - -- sftpget: SFTP is not "SSH FTP" - -- [Armel Asselin brought this change] - - sftpget: example showing a simple SFTP download - - ... using SSH-agent - -- curl_multi_perform.3: extended/clarified - -- INSTALL.cmake: clarify some flaws/limits in the cmake build - -- https.c example: spell check used define - - Bug: http://curl.haxx.se/bug/view.cgi?id=3559845 - Reported by: Olivier Berger - -- configure: update the copyright years for the output - -- [Nick Zitzmann brought this change] - - darwinssl: add TLS 1.1 and 1.2 support, replace deprecated functions - - In Mountain Lion, Apple added TLS 1.1 and 1.2, and deprecated a number - of SecureTransport functions, some of which we were using. We now check - to see if the replacement functions are present, and if so, we use them - instead. The old functions are still present for users of older - cats. Also fixed a build warning that started to appear under Mountain - Lion - -- curl_easy_setopt: documented CURLSOCKTYPE_ACCEPT for SOCKOPTFUNCTION - -- [Gokhan Sengun brought this change] - - ftp: active conn, place calling sockopt callback at the end of function - - Commit b91d29a28e170c16d65d956db79f2cd3a82372d2 introduces a bug and breaks Curl_closesocket function. sock_accepted flag for the second socket should be tagged as TRUE before the sockopt callback is called because in case the callback returns an error, Curl_closesocket function is going to call the - fclosesocket - callback for the accept()ed socket - -- [Gokhan Sengun brought this change] - - ftp: active conn, allow application to set sockopt after accept() call - - For active FTP connections, applications may need setting the sockopt after accept() call returns successful. This fix gives a call to the callback registered with CURL_SOCKOPTFUNCTION option. Also a new sock type - CURLSOCKTYPE_ACCEPT - is added. This type is to be passed to application callbacks with - purpose - parameter. Applications may use this parameter to distinguish between socket types. - -- configure: remove the --enable/disable-nonblocking options - - Removing this option as it currently only functions to lure people into - wrongly using it and falsely believing that libcurl will work fine - without using nonblocking sockets internally - which leads to hard to - track or understand errors. - -- [Ant Bryan brought this change] - - MANUAL review - -- curl.1: shorten lines, avoid referring to libcurl instead of curl - -- [Ant Bryan brought this change] - - curl.1: fix more consistent wording - - "If this option is used several times, the last one will be used." - uniformity - -- ssh: use the libssh2 agent API conditionally - - Commit e351972bc89aa4c brought in the ssh agent support but some uses of - the libssh2 agent API was done unconditionally which wasn't good enough - since that API hasn't always been present. - -- white space fix: shorten long line - - ... to please checksrc.pl - -Kamil Dudka (9 Aug 2012) -- docs: update the links to cipher-suites supported by NSS - - ... and make the list of cipher-suites in nss.c readable by humans. - - Bug: http://curl.haxx.se/mail/archive-2012-08/0016.html - -- nss: do not print misleading NSS error codes - -Daniel Stenberg (8 Aug 2012) -- RELEASE-NOTES: synced with 0774386b23 - - 5 more bug fixes, one change, 6 contributors - -- [Armel Asselin brought this change] - - docs: mention CURLSSH_AUTH_AGENT - -- [Armel Asselin brought this change] - - SSH: added agent based authentication - - CURLSSH_AUTH_AGENT is a new auth type for SSH - -- bump version to 7.28.0 - - I am about to merge the first patch that adds changes into the pending - release, and thus we bump the minor number. - -- RELEASE-NOTES: added missing link - -- curl_version: fixed Value stored to 'len' is never read - - Fixed this (harmless) clang-analyzer warning. Also fixed the source - indentation level. - -- TODO-RELEASE: the (nil) bug is fixed - -- add_next_timeout: minor restructure of code - - By reading the ->head pointer and using that instead of the ->size - number to figure out if there's a list remaining we avoid the (false - positive) clang-analyzer warning that we might dereference of a null - pointer. - -- verbose messages: fixed output of hostnames in re-used connections - - I suspect this is a regression introduced in commit 207cf150, included - since 7.24.0. - - Avoid showing '(nil)' as hostname in verbose output by making sure the - hostname fixup function is called early enough to set the pointers that - are used for this. The name data is set again for each request even for - re-used connections to handle multiple hostnames over the same - connection (like with proxy) or that the casing etc of the host name is - changed between requests (which has proven to be important at least once - in the past). - - Test1011 was modified to use a redirect with a re-used a connection - since it then showed the bug and now lo longer does. There's currently - no easy way to have the test suite detect 'nil' texts in verbose ouputs - so no tests will detect if this problem gets reintroduced. - - Bug: http://curl.haxx.se/mail/lib-2012-07/0111.html - Reported by: Gisle Vanem - -- [Nick Zitzmann brought this change] - - metalink: Un-broke the build when building --with-darwinssl - -Guenter Knauf (8 Aug 2012) -- Fix some compiler warnings. - -Daniel Stenberg (8 Aug 2012) -- TODO-RELEASE: two bugs fixed - - These are now addressed: - - 323 - patch - select.c / Curl_socket_check() interrupted - - 325 - Avoid leak of local device string when reusing connection - -- curl.1: minor format fix for --data-ascii - - ... and removal of trailing whitespace on a single line - -- [Ant Bryan brought this change] - - curl man page cleanup - -- [Mike Crowe brought this change] - - Avoid leak of local device string when reusing connection - - Ensure that the copy of the CURLOPT_INTERFACE string is freed if we - decide we can reuse an existing connection. - -- Curl_socket_check: fix timeout return value for select users - - This is the same fix applied for the conditional code that uses select() - that was already done for the poll specific code in commit - b61e8b81f5038. - -- [Maxime Larocque brought this change] - - Curl_socket_check: fix return code for timeout - - We found a problem with ftp transfer using libcurl (7.23 and 7.25) - inside an application which is receiving unix signals (SIGUSR1, - SIGUSR2...) almost continuously. (Linux 2.4, PowerPC, HAVE_POLL_FINE - defined). - - Curl_socket_check() uses poll() to wait for the socket, and retries it - when a signal is received (EINTR). However, if a signal is received and - it also happens that the timeout has been reached, Curl_socket_check() - returns -1 instead of 0 (indicating an error instead of a timeout). - - In our case, the result is an aborted connection even before the ftp - banner is received from the server, and a return value of - CURLE_OUT_OF_MEMORY from curl_easy_perform() (Curl_pp_multi_statemach(), - in pingpong.c, actually returns OOM if Curl_socket_check() fails :-) - Funny to debug on a system on which OOM is a possible cause). - - Bug: http://curl.haxx.se/mail/lib-2012-07/0122.html - -- RELEASE-NOTES: synced with b4a558041fdf65c0 - -- TODO-RELEASE: fixed another bug - - bug #3544688 "crash during retry with libcurl and SFTP" - -- WSAPoll: disabled on all windows builds - - Due to WSAPoll bugs, libcurl does not work as intended. When the cURL - library is used to setup a connection to an incorrect port, normally the - result is CURLE_COULDNT_CONNECT, /* 7 */, but due to the bug in WSAPoll, - the result now is CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was - reached */. - - On August 1, Jan Koen Annot opened a case for this to Microsoft Premier - Online (https://premier.microsoft.com/). The support engineer handling - the case wrote that the case description is quite clear. He will try to - reproduce the issue and then proceed with troubleshooting it. - - Reported by: Jan Koen Annot - Bug: http://curl.haxx.se/mail/lib-2012-07/0310.html - -- retry request: only access the HTTP data if in fact HTTP - - When figuring out if the data stream needs to be rewound when the - request is to be resent, we must not access the HTTP struct unless the - protocol used is indeed HTTP... - - Bug: http://curl.haxx.se/bug/view.cgi?id=3544688 - -- TODO: support DANE, we already support gnutls without gcrypt - -- curl-config: parentheses fix - - Braces, not parentheses, should be used for shell variable names. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3551460 - Reported by: Edward Sheldrake - -- VC build: add define for openssl - - This fixes a build failure of lib/ssluse.c. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3552997 - -- TODO-RELEASE: two bugs fixed! - -- globbing: fix segfault when >9 globs were used - - Stupid lack of range checks caused the code to overwrite local variables - after glob number nine. Added checks now. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3546353 - -- [Joe Mason brought this change] - - sws: close sockets properly - - Fix a bug where closed sockets (fd -1) were left in the all_sockets - list, because of missing parens in a pointer arithmetic expression - - Reenable the tests that were locking up due to this bug. - -- [Joe Mason brought this change] - - Remove debug logs that were accidentally checked in - -- [Joe Mason brought this change] - - Use select in sws, which has better cross-platform support than poll - -- [Joe Mason brought this change] - - Use cross-platform curlx_nonblock instead of fcntl in sws - -- operate: fix clang-analyzer warnings for never read variables - - Two separate "Value stored to 'XXX' is never read" warnings - -- operate: fix clang-analyzer warning - - Value stored to 'separator' is never read - -- metalink: change code order to build with gnutls-nettle - - Bug: http://curl.haxx.se/bug/view.cgi?id=3554668 - Reported by: Anthony G. Basile - -- gtls: fix build failure by including nettle-specific headers - - Bug: http://curl.haxx.se/bug/view.cgi?id=3554668 - Reported by: Anthony G. Basile - -Guenter Knauf (6 Aug 2012) -- Fixed compiler warning - argument is type long. - -Daniel Stenberg (6 Aug 2012) -- DISABLED: disable the new tests that do NTLM - - The tests 2025, 2028 and 2031 don't work for me so I'll have them - disabled for now until we solve the problem. - -Joe Mason (3 Aug 2012) -- Add tests of auth retries - -- Cleanup handshake after clean NTLM failure - -- Zero out auth structs before transfer - -- Add a polling loop in main to read from more than one socket at once. Add the O_NONBLOCK and - SO_KEEPALIVE flag to all sockets. Note that several loops which used to continue on a return value - of 0 (theoretical since 0 would never be returned without O_NONBLOCK) now break on 0 so that they - won't continue reading until after poll is called again. - -- Change return values of get_request, accept_connection and service_connection to add a return code - for non-blocking sockets: now -1 means error or connection finished, 1 means data was read, and 0 - means there is no data available now so need to wait for poll (new return value) - -- Hoist the loop out of get_request, and make sure that it can be reentered when a request is - half-finished. - - Note the the req struct used to be re-initialized AFTER reading pipeline data, so now that we - initialize it from the caller we must be careful not to overwrite the pipeline data. - - Also we now need to handle the case where the buffer is already full when get_request is called - - previously this never happened as it was always called with an empty buffer and looped until done. - - Now get_request is called in a loop, so the next step is to run the loop on a socket only when poll - signals it is readable. - -- Move blocks of code from the sws main loop into their own functions for easier refactoring later. - The next step will be to call the correct function after a poll, rather than looping unconditionally - -- Remove the --fork option of sws, since it makes refactoring to use poll more complicated and should - be redundant once we poll - -Kamil Dudka (30 Jul 2012) -- file: use fdopen() for uploaded files if available - - It eliminates noisy events when using inotify and fixes a TOCTOU issue. - - Bug: https://bugzilla.redhat.com/844385 - -Guenter Knauf (29 Jul 2012) -- Added DWANT_IDN_PROTOTYPES define for MSVC too. - - Discussion on the list: http://curl.haxx.se/mail/lib-2012-07/0271.html - -- Added Win32 problems. - -- Added hint to read docs/INSTALL too. - -- Added new file to distro. - -Steve Holme (28 Jul 2012) -- TODO: Updated after 7.27.0 release - - Removed APOP and SASL authentication from the POP3 section and metalink - support from the client section as these features were implemented in - this release. - - Moved adding gssapi to SASL into it's own section rather than repeat it - for each protocol. - -Daniel Stenberg (28 Jul 2012) -- TODO-RELEASE: updated after 7.27.0 release - -- THANKS: 12 new contributors from the 7.27.0 release - -- version bump: start towards next release - - Let's call it 7.27.1 for now, but it it probably going to become 7.28.0 - when released. - -Version 7.27.0 (27 Jul 2012) - -Guenter Knauf (27 Jul 2012) -- Fixed compiler warning 'unused parameter'. - -- Added prototypes to kill compiler warning. - -- Added --with-winidn to configure. - - This needs another look from the configure experts. I tested that - it works so far with MinGW64 cross-compiler; libcurl builds and - links fine, but curl not yet ... - -Daniel Stenberg (27 Jul 2012) -- [Ant Bryan brought this change] - - Update man page info on --metalink and typo. - -- RELEASE-NOTES: remove mentioned of bug never in a release - - The --silent bug came with 7561a0fc834c435 which was never in a release. - Pointed out by Kamil Dudka - -- RELEASE-NOTES: synced with 33b815e894fb - - 4 more bugfixes, 3 more contributors - -Guenter Knauf (26 Jul 2012) -- Changed Windows IDN text to 'WinIDN'. - - Synced the output to the same short form as we now use for - Windows SSL (WinSSL). - -Daniel Stenberg (25 Jul 2012) -- [Nick Zitzmann brought this change] - - darwinssl: fixed freeze involving the multi interface - - Previously the curl_multi interface would freeze if darwinssl was - enabled and at least one of the handles tried to connect to a Web site - using HTTPS. Removed the "wouldblock" state darwinssl was using because - I figured out a solution for our "would block but in which direction?" - dilemma. - -Guenter Knauf (25 Jul 2012) -- Added support for tls-srp to MinGW builds. - -Daniel Stenberg (24 Jul 2012) -- curl_easy_setopt: fix typo - - Reported by: Santhana Todatry - -- keepalive: multiply value for OS-specific units - - DragonFly uses milliseconds, while our API and Linux use full seconds. - - Reported by: John Marino - Bug: http://curl.haxx.se/bug/view.cgi?id=3546257 - -Kamil Dudka (22 Jul 2012) -- http: print reason phrase from HTTP status line on error - - Bug: https://bugzilla.redhat.com/676596 - -- tool_operate: fix misplaced initialization of orig_noprogress - - ... and orig_isatty which caused --silent to be entirely ignored in case - the standard output was redirected to a file! - -Daniel Stenberg (21 Jul 2012) -- [Anton Yabchinskiy brought this change] - - Client's "qop" value should not be quoted (RFC2617, section 3.2.2). - -Guenter Knauf (21 Jul 2012) -- Fixed typo. - -Daniel Stenberg (20 Jul 2012) -- make: make distclean work again - - The clean-local hook needed some polish to make sure make distclean - works. Added comment describing why. - -- test Makefile: only feature 'unit' once in the list of dirs - -Dan Fandrich (20 Jul 2012) -- Fixed some typos in documentation - -Guenter Knauf (20 Jul 2012) -- Fixed CR issue with Win32 version on MSYS. - - Previous fix didnt work on Linux ... - -- Fixed CR issue with Win32 version on MSYS. - -- Fixed MSYS <-> Windows path convertion. - - Replaced the Windows real path from mount hack with a more - reliable and simpler hack: the MSYS shell has a builtin pwd - which understands a -W option which does convertion to Windows - paths. Tested and confirmed that this works on all MSYS versions - I have back to a 3 year old one. - -- Follow-up fix to detect SSL libs with MinGW. - - 1) the check for winssl needs to come before nss check - 2) the SSL checks must begin with a new if or else we will - never find any SSL lib with MinGW. - -- Tell git to not convert configure-related files. - -- Trial to teach runtests.pl about WinSSL. - -- Fixed warning 'uninitialized value in numeric gt'. - - This is a MSYS/MinGW-only warning; full warning text is: - Use of uninitialized value in numeric gt (>) at ../../curl/tests/runtests.pl line 2227. - -Daniel Stenberg (15 Jul 2012) -- RELEASE-NOTES: synced with 9d11716933616 - - Fixed 6 bugs, added 3 contributors - -- multi_runsingle: added precaution against easy_conn NULL pointer - - In many states the easy_conn pointer is referenced and just assumed to - be working. This is an added extra check since analyzing indicates - there's a risk we can end up in these states with a NULL pointer there. - -- getparam: fix the GetStr() macro - - It should return PARAM_NO_MEM if the strdup fails. Spotted by - clang-analyzer - -Guenter Knauf (15 Jul 2012) -- Tell git to not convert configure-related files. - -Daniel Stenberg (13 Jul 2012) -- parse_proxy: remove dead assignment - - Spotted by clang-analyzer - -- ftp_do_more: add missing check of return code - - Spotted by clang-analyzer. The return code was never checked, just - stored. - -- getinfo: use va_end and cut off Curl_ from static funcs - - va_end() needs to be used after va_start() and we don't normally use - Curl_ prefixes for purely static functions. - -- [Philip Craig brought this change] - - Split up Curl_getinfo - - This avoids false positives from clang's scan-build. - -Guenter Knauf (12 Jul 2012) -- Added error checking for curl_global_init(). - -- Added curl_global_* functions. - -- Minor fixes to MinGW makefiles. - -Daniel Stenberg (12 Jul 2012) -- docs: mention CURL_GLOBAL_DEFAULT - -Guenter Knauf (12 Jul 2012) -- Added curl_global_* functions. - -Daniel Stenberg (12 Jul 2012) -- tests: verify the stricter numeric option parser - - Test 1409 and 1410 verifies the stricter numeric option parser - introduced the other day in commit f2b6ebed7b. - -- SWS: use of uninitialized memory fix - - I made "connmon" not get initialized properly before use, and I use the - big hammer and make sure we always clear the entire struct to avoid any - problem like this in the future. - -- test48: verify that HEAD doesn't close extra - - Two commits ago, we fixed a bug where the connction would be closed - prematurely after a HEAD. Now I added connection-monitor to test 48 and - added a second HEAD and make sure that both are sent over the same - connection. - - This triggered a failure before the bug fix and now works. Will help us - avoid a future regression of this kind. - -- connection-monitor: always log disconnect when enabled - - This makes verifying easier and makes us more sure curl closes the - connection only at the correct point in time. Adjusted test 206 and 1008 - accordingly and updated the docs for it. - -- HEAD: don't force-close after response-headers - - A HEAD response has no body length and gets the headers like the - corresponding GET would so it should not get closed after the response - based on the same rules. This mistake caused connections that did HEAD - to get closed too often without a valid reason. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3542731 - Reported by: Eelco Dolstra - -Guenter Knauf (12 Jul 2012) -- Removed trailing empty strings from awk script. - -- Cleaned up version awk script. - -- Added project copyright header. - -- Removed libcurl.imp from Makefile.am. - - Updated .gitignore for NetWare created files. - -- Added missing dependency to export list. - -- Fixed export list path. - -- Changed NetWare build to generate export list. - -- Added pointer to FAQ for linkage errors. - -- Small NetWare makefile tweak. - -- Changed MinGW makefiles to use WINSSL now. - -Daniel Stenberg (10 Jul 2012) -- test231: fix wrong -C use! - -- cmdline: parse numerical options stricter - - 1 - str2offset() no longer accepts negative numbers since offsets are by - nature positive. - - 2 - introduced str2unum() for the command line parser that accepts - numericals which are not supposed to be negative, so that it will - properly complain on apparent bad uses and mistakes. - - Bug: http://curl.haxx.se/mail/archive-2012-07/0013.html - -- docs: switch to proper UTF-8 for text file encoding - -Yang Tse (9 Jul 2012) -- Make Curl_schannel_version() return "WinSSL" - - Modification based on voting result: - - http://curl.haxx.se/mail/lib-2012-07/0104.html - -Daniel Stenberg (9 Jul 2012) -- test 46: use different path lengths to get reliable sort order - - Since the order of the cookies is sorted by the length of the paths, - having them on the same path length will make the test depend on what - order the qsort() implementation will put them. As seen in the - windows/msys output posted by Guenter in this posting: - http://curl.haxx.se/mail/lib-2012-07/0105.html - -- cookie: fixed typo in comment - -- [Christian Hägele brought this change] - - https_getsock: provided for schannel backend as well - - The function https_getsock was only implemented properly when USE_SSLEAY - or USE_GNUTLS is defined, but it is also necessary for USE_SCHANNEL. - - The problem occurs when Curl_read_plain or Curl_write_plain returns - CURLE_AGAIN. In that case CURL_OK is returned to the multi-interface an - the used socket is set to state CURL_POLL_REMOVE and the easy-state is - set to CURLM_STATE_PROTOCONNECT. This is fine, because later the socket - should be set to CURL_POLL_IN or CURL_POLL_OUT via multi_getsock. That's - where https_getsock is called and doesn't return any sockets. - -- RELEASE-NOTES: added a URL reference to cookie docs - -Guenter Knauf (8 Jul 2012) -- Removed obsolete include path to project root. - -Daniel Stenberg (8 Jul 2012) -- TODO-RELEASE: issue 316 NTLM over proxy is fixed - -- [Nick Zitzmann brought this change] - - darwinssl: don't use arc4random_buf - - Re-wrote Curl_darwinssl_random() to not use arc4random_buf() because the - function is not available prior to iOS 4.3 and OS X 10.7. - -- KNOWN_BUGS: #80 Curl doesn't recognize certs in DER format - -- KNOWN_BUGS: #79 - any RCPT TO failure makes and error - -Marc Hoersken (8 Jul 2012) -- winbuild: Aligned BUILD.WINDOWS.txt and Makefile.vc usage help - -- winbuild: Make USE_WINSSL depend on USE_SSPI - - Since WinSSL cannot be build without SSPI being enabled, - USE_WINSSL now defaults to the value of USE_SSPI. - - The makefile does now raise an error if WinSSL is enabled - while SSPI is disabled. - -- winbuild: Aligned USE_SSPI with other USE_x defines - - Renamed external parameter USE_SSPI = yes/no to ENABLE_SSPI = yes/no. - Backwards compatible change: USE_SSPI can still be passed as external - parameter with yes/no value as long as ENABLE_SSPI is not given. - - USE_x defines are passed around with true/false values internally, - USE_SSPI is now aligned to this approach, but still accepts external - values yes/no being passed, just like the other defines. - -- winbuild: Clean up formatting and variable naming - - - Changed space usage to line up with the whole file - - Renamed CFLAGS_SSPI/IPV6 to SSPI/IPV6_CFLAGS to be - consistent with the other CFLAGS_x variables - - Make use of existing CFLAGS_IPV6 (previously IPV6_CFLAGS) - instead of appending directly to CFLAGS - -Daniel Stenberg (7 Jul 2012) -- [Nick Zitzmann brought this change] - - darwinssl: output cipher with text, remove SNI warning - - The code was printing a warning when SNI was set up successfully. Oops. - - Printing the cipher number in verbose mode was something only TLS/SSL - programmers might understand, so I had it print the name of the cipher, - just like in the OpenSSL code. That'll be at least a little bit easier - to understand. The SecureTransport API doesn't have a method of getting - a string from a cipher like OpenSSL does, so I had to generate the - strings manually. - -- RELEASE-NOTES: synced with 5a99bce07d - -- KNOWN_BUGS: NTLM with unicode works with schannel/winssl! - - Bug #75 updated with additional info, still remains for builds with - other backends. - -- code police: narrow source to < 80 columns - -Yang Tse (5 Jul 2012) -- unicode NTLM SSPI: cleanup follow-up - -- unicode NTLM SSPI: cleanup - - Reduce the number of #ifdef UNICODE directives used in source files. - -Daniel Stenberg (5 Jul 2012) -- tests: use connection-monitor and verify results - - Test 1008 and 206 don't show the disconnect since it happens when SWS - awaits a new request, but 503 does and so the verify section needs that - string added. - -- http-proxy: keep CONNECT connections alive (for NTLM) - - When doing CONNECT requests, libcurl must make sure the connection is - alive as much as possible. NTLM requires it and it is generally good for - other cases as well. - - NTLM over CONNECT requests has been broken since this regression I - introduced in my CONNECT cleanup commits that started with 41b02378342, - included since 7.25.0. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3538625 - Reported by: Marcel Raad - -- sws: support for CONNECT requests - - I moved out the servercmd parsing into a its own function called - parse_servercmd() and made sure it gets used also when the test number - is extracted from CONNECT requests. It turned out sws didn't do that - previously! - -- FILEFORMAT: provided a full description of connection-monitor - -- lib503: enable verbose to ease debugging this - -- sws: add 'connection-monitor' command support - - Using this, the server will output in the protocol log when the - connection gets disconnected and thus we will verify correctly in the - test cases that the connection doesn't get closed prematurely. This is - important for example NTLM to work. - - Documentation added to FILEFORMAT, test 503 updated to use this. - -Guenter Knauf (4 Jul 2012) -- Removed non-used variable. - -- Added error checking for samples. - -- Renamed vars to avoid shadow global declaration. - -Daniel Stenberg (3 Jul 2012) -- docs: clarify how to start with curl_multi_socket_action - - Mention the CURL_SOCKET_TIMEOUT argument in step 6 of the typical - application. - -Guenter Knauf (3 Jul 2012) -- Moved some patterns to subfolder's .gitignore. - -- Merge branch 'master' of ssh://github.com/bagder/curl - -- MinGW makefile tweaks for running from sh. - - Added function macros to make path converting easier. - Added CROSSPREFIX to all compile tools. - -Yang Tse (3 Jul 2012) -- [Marc Hoersken brought this change] - - curl_ntlm_msgs.c: Removed unused variable passwd - -Guenter Knauf (3 Jul 2012) -- Added files generated by mingw32, eclipse and VC. - - Posted by Marc Hoersken. - -Daniel Stenberg (3 Jul 2012) -- cookies: change the URL in the cookie jar file header - -- HTTP-COOKIES: clarified and modified layout - -- HTTP-COOKIES: use the FAQ document layout - -- HTTP-COOKIES: added cookie documentation - -Yang Tse (3 Jul 2012) -- curl_ntlm_msgs.c: include for prototypes - -- [Neil Bowers brought this change] - - testcurl.pl: fix missing semicolon - -Daniel Stenberg (2 Jul 2012) -- [Christian Hägele brought this change] - - unicode NTLM SSPI: heap corruption fixed - - When compiling libcurl with UNICODE defined and using unicode characters - in username. - -Yang Tse (2 Jul 2012) -- testcurl.pl: allow non in-tree c-ares enabled autobuild - -- configure.ac: verify that libmetalink is new enough - - Enabling test2017 to test2022. - -- [Tatsuhiro Tsujikawa brought this change] - - curl: Added runtime version check for libmetalink - -- [Tatsuhiro Tsujikawa brought this change] - - Include metalink/metalink.h for libmetalink functions - -Daniel Stenberg (2 Jul 2012) -- errors: CURLM_CALL_MULTI_PERFORM is not returned anymore - -- release: cleaned up plans for this and coming release - -Yang Tse (29 Jun 2012) -- curl-compilers.m4: remove -Wstrict-aliasing=3 from clang - - Currently it is unknown if there is any version of clang that - actually supports -Wstrict-aliasing. What is known is that there - are several that don't support it. - -- test2017 to test2022: more metalink tests - - With this commit, checks done in previous test2017 are now done in test2018. - - Whole range test2017 to test2022 DISABLED until configure is capable of - requiring a new-enough metalink library. - - Don't try these without mentioned check in place! - -- test2005 to test2016: improve failure detection - -- lib582.c: fix conversion warning - -- nss.c: #include warnless.h for curlx_uztosi and curlx_uztoui prototypes - -- [Marc Hoersken brought this change] - - nss.c: Fixed size_t conversion warnings - -- sslgen.c: cleanup temporary compile-time SSL-backend check - -Daniel Stenberg (28 Jun 2012) -- schannel: provide two additional (dummy) API defines - -Yang Tse (28 Jun 2012) -- [Tatsuhiro Tsujikawa brought this change] - - Metalink: message updates - - Print "parsing (...) OK" only when no warnings are generated. If - no file is found in Metalink, treat it FAILED. - - If no digest is provided, print WARNING in parse_metalink(). - Also print validating FAILED after download. - - These changes make tests 2012 to 2016 pass. - -Daniel Stenberg (27 Jun 2012) -- sslgen: avoid compiler error in SSPI builds - -Yang Tse (27 Jun 2012) -- ssluse.c: fix compiler warning: conversion to 'int' from 'size_t' - - Reported by Tatsuhiro Tsujikawa - - http://curl.haxx.se/mail/lib-2012-06/0371.html - -- sslgen.c: add compile-time check for SSL-backend completeness - -- build: add our standard includes to curl_darwinssl.c and curl_multibyte.c - -- build: add curl_schannel and curl_darwinssl files to other build systems - -- tests: add five more Metalink test cases - -- tests: update Metalink message format - -- [Tatsuhiro Tsujikawa brought this change] - - Metalink: updated message format - -- [Nick Zitzmann brought this change] - - DarwinSSL: allow using NTLM authentication - - Allow NTLM authentication when building using SecureTransport (Darwin) for SSL. - - This uses CommonCrypto, a cryptography library that ships with all versions of - iOS and Mac OS X. It's like OpenSSL's libcrypto, except that it's missing a few - less-common cyphers and doesn't have a big number data structure. - -- curl_darwinssl.h: add newline at end of file - -Daniel Stenberg (26 Jun 2012) -- ossl_seed: remove leftover RAND_screen check - - Before commit 2dded8fedba (dec 2010) there was logic that used - RAND_screen() at times and now I remove the leftover #ifdef check for - it. - - The seeding code that uses Curl_FormBoundary() in ossl_seed() is dubious - to keep since it hardly increases randomness but I fear I'll break - something if I remove it now... - -Yang Tse (26 Jun 2012) -- [Nick Zitzmann brought this change] - - DarwinSSL: several adjustments - - - Renamed st_ function prefix to darwinssl_ - - Renamed Curl_st_ function prefix to Curl_darwinssl_ - - Moved the duplicated ssl_connect_done out of the #ifdef in lib/urldata.h - - Fixed a teensy little bug that made non-blocking connection attempts block - - Made it so that it builds cleanly against the iOS 5.1 SDK - -- curl-compilers.m4: -Wstrict-aliasing=3 for warning enabled gcc and clang builds - -- [Marc Hoersken brought this change] - - sockaddr.h: Fixed dereferencing pointer breakin strict-aliasing - - Fixed warning: dereferencing pointer does break strict-aliasing rules - by using a union inside the struct Curl_sockaddr_storage declaration. - -Daniel Stenberg (26 Jun 2012) -- SSL cleanup: use crypto functions through the sslgen layer - - curl_ntlm_msgs.c would previously use an #ifdef maze and direct - SSL-library calls instead of using the SSL layer we have for this - purpose. - -- [Nick Zitzmann brought this change] - - darwinssl: add support for native Mac OS X/iOS SSL - -- RELEASE-NOTES: link to more metalink info - -- RELEASE-NOTES: synced with d025af9bb576 - -Yang Tse (25 Jun 2012) -- curl_schannel.c: Remove redundant NULL assignments following Curl_safefree() - -- [Marc Hoersken brought this change] - - curl_schannel.c: Replace free() with Curl_safefree() - -- [Tatsuhiro Tsujikawa brought this change] - - curl.1: Updated Metalink description in man page - - Documented that --include will be ignored if both --metalink - and --include are specified. - Also documented that a Metalink file in the local file system - cannot be used if FILE protocol is disabled. - -Steve Holme (24 Jun 2012) -- DOCS: Added clarification to CURLOPT_CUSTOMREQUEST for the POP3 protocol - - Bug: http://curl.haxx.se/mail/lib-2012-06/0302.html - Reported by: Nagai H - -- smtp: Corrected result code for MAIL, RCPT and DATA commands - - Bug: http://curl.haxx.se/mail/lib-2012-06/0094.html - Reported by: Dan - -Daniel Stenberg (24 Jun 2012) -- [Ghennadi Procopciuc brought this change] - - test: Added test HTTP receive cookies over IPv6 - -Yang Tse (22 Jun 2012) -- tests: add another Metalink test case - -- [Tatsuhiro Tsujikawa brought this change] - - tests: Enable test2010 and fixed hash value - -- [Tatsuhiro Tsujikawa brought this change] - - Metalink: ignore --include if --metalink is used. - - Including headers in response body will break Metalink XML parser. - If it is included in the file described in Metalink XML, hash check - will fail. Therefore, --include should be ignored if --metalink is - used. - -- tests: add six Metalink test cases - -- test 2005: add verification of hash checking outcome - -- getpart.pm: remove misleading comment - -- [Tatsuhiro Tsujikawa brought this change] - - curl: Prefixed all Metalink related messages with "Metalink: " - -- [Tatsuhiro Tsujikawa brought this change] - - tests: Added Metalink test case # 2005 - -- [Tatsuhiro Tsujikawa brought this change] - - curl: Restore noprogress and isatty config values. - - The noprogress and isatty in Configurable are global, in a sense - that they persist in one curl invocation. Currently once one - download writes its response data to tty, they are set to FALSE - and they are not restored on successive downloads. This change - first backups the current noprogress and isatty, and restores - them when download does not write its data to tty. - -- [Tatsuhiro Tsujikawa brought this change] - - curl: Made --metalink option toggle Metalink functionality - - In this change, --metalink option no longer takes argument. If - it is specified, given URIs are processed as Metalink XML file. - If given URIs are remote (e.g., http URI), curl downloads it - first. Regardless URI is local file (e.g., file URI scheme) or - remote, Metalink XML file is not written to local file system and - the received data is fed into Metalink XML parser directly. This - means with --metalink option, filename related options like -O - and -o are ignored. - - Usage examples: - - $ curl --metalink http://example.org/foo.metalink - - This will download foo.metalink and parse it and then download - the URI described there. - - $ curl --metalink file://foo.metalink - - This will parse local file foo.metalink and then download the URI - described there. - -- [Tatsuhiro Tsujikawa brought this change] - - curl: Refactored metalink_checksum - - When creating metalink_checksum from metalink_checksum_t, first - check hex digest is valid for the given hash function. We do - this check in the order of digest_aliases so that first good - match will be chosen (strongest hash function available). As a - result, the metalinkfile now only contains at most one - metalink_checksum because other entries are just redundant. - -- [Gisle Vanem brought this change] - - tool_doswin.c: fix djgpp function _use_lfn() used without a prototype - - http://curl.haxx.se/mail/archive-2012-06/0028.html - -- build: fix RESOURCE bug in lib/Makefile.vc* - - Removed two, not intended to exist, RESOURCE declarations. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3535977 - - And sorted configuration hunks to reflect same internal order - as the one shown in the usage message. - -Daniel Stenberg (20 Jun 2012) -- [Marc Hoersken brought this change] - - schannel: Implement new buffer size strategy - - Increase decrypted and encrypted cache buffers using limitted - doubling strategy. More information on the mailinglist: - http://curl.haxx.se/mail/lib-2012-06/0255.html - - It updates the two remaining reallocations that have already been there - and fixes the other one to use the same "do we need to increase the - buffer"-condition as the other two. CURL_SCHANNEL_BUFFER_STEP_SIZE was - renamed to CURL_SCHANNEL_BUFFER_FREE_SIZE since that is actually what it - is now. Since we don't know how much more data we are going to read - during the handshake, CURL_SCHANNEL_BUFFER_FREE_SIZE is used as the - minimum free space required in the buffer for the next operation. - CURL_SCHANNEL_BUFFER_STEP_SIZE was used for that before, too, but since - we don't have a step size now, the define was renamed. - -Yang Tse (20 Jun 2012) -- schannel SSL: fix compiler warning - -- [Mark Salisbury brought this change] - - schannel SSL: fix for renegotiate problem - - In schannel_connect_step2() doread should be initialized based - on connssl->connecting_state. - -- [Tatsuhiro Tsujikawa brought this change] - - runtests.pl: make it support metalink feature - -- getpart.pm: make test definition section/part parser more robust - - Test definition section parts which needed to include xml-lingo as contents - of that part required that the xml-blurb was written as a single line. Now the - xml-data inside the part can be written multiline making it more readable. - - Tested with part which is written to disk before runs. - -Daniel Stenberg (20 Jun 2012) -- schannel_connect_step2: checksrc whitespace fix - -Yang Tse (20 Jun 2012) -- [Mark Salisbury brought this change] - - schannel SSL: changes in schannel_connect_step2 - - Process extra data buffer before returning from schannel_connect_step2. - Without this change I've seen WinCE hang when schannel_connect_step2 - returns and calls Curl_socket_ready. - - If the encrypted handshake does not fit in the intial buffer (seen with - large certificate chain), increasing the encrypted data buffer is necessary. - - Fixed warning in curl_schannel.c line 1215. - -- [Mark Salisbury brought this change] - - config-win32ce.h: WinCE config adjustment - - process.h is not present on WinCE - -- [Mark Salisbury brought this change] - - schannel SSL: Made send method handle unexpected cases better - - Implemented timeout loop in schannel_send while sending data. This - is as close as I think we can get to write buffering; I put a big - comment in to explain my thinking. - - With some committer adjustments - -Daniel Stenberg (19 Jun 2012) -- [Marc Hoersken brought this change] - - curl_schannel.c: Avoid unnecessary realloc calls to reduce buffer size - -Yang Tse (19 Jun 2012) -- [Mark Salisbury brought this change] - - schannel SSL: Use standard Curl read/write methods - - Replaced calls to swrite with Curl_write_plain and calls to sread - with Curl_read_plain. - - With some committer adjustments - -- schannel SSL: make wording of some trace messages better reflect reality - -Daniel Stenberg (19 Jun 2012) -- [Marc Hoersken brought this change] - - curl_schannel.h: Use BUFSIZE as the initial buffer size if available - - Make the Schannel implementation use libcurl's default buffer size - for the initial received encrypted and decrypted data cache buffers. - The implementation still needs to handle more data since more data - might have already been received or decrypted during the handshake - or a read operation which needs to be cached for the next read. - -Guenter Knauf (19 Jun 2012) -- Fixed NetWare makefile broken from last commit. - -Yang Tse (19 Jun 2012) -- [Mark Salisbury brought this change] - - schannel SSL: Implemented SSL shutdown - - curl_schannel.c - implemented graceful SSL shutdown. If we fail to - shutdown the connection gracefully, I've seen schannel try to use a - session ID for future connects and the server aborts the connection - during the handshake. - -- [Mark Salisbury brought this change] - - schannel SSL: certificate validation on WinCE - - curl_schannel.c - auto certificate validation doesn't seem to work - right on CE. I added a method to perform the certificate validation - which uses CertGetCertificateChain and manually handles the result. - -- [Mark Salisbury brought this change] - - schannel SSL: Added helper methods to simplify code - - Added helper methods InitSecBuffer() and InitSecBufferDesc() to make it - easier to set up SecBuffer & SecBufferDesc structs. - -Guenter Knauf (18 Jun 2012) -- Some more NetWare makefile tweaks for metalink. - -Yang Tse (18 Jun 2012) -- tool_cb_see.c: WinCE build adjustment - -- [Mark Salisbury brought this change] - - setup.h: WinCE build adjustment - -- [Mark Salisbury brought this change] - - ftplistparser.c: do not compile if FTP protocol is not enabled - -- Win32: downplay MS bazillion type synonyms game - - Avoid usage of some MS type synonyms to allow compilation with - compiler headers that don't define these, using simpler synonyms. - -Daniel Stenberg (15 Jun 2012) -- Curl_rtsp_parseheader: avoid useless malloc/free - - Coverity actually pointed out flawed logic in the previous call to - Curl_strntoupper() where the code used sizeof() of a pointer to pass in - a size argument. That code still worked since it only needed to - uppercase 4 letters. Still, the entire malloc/uppercase/free sequence - was pointless since the code has already matched the string once in the - condition that starts the block of code. - -- curl_share_setopt: use va_end() - - As spotted by Coverity, va_end() was not used previously. To make it - used I took away a bunch of return statements and made them into - assignments instead. - -Yang Tse (15 Jun 2012) -- SSPI related code: Unicode support for WinCE - kill compiler warnings - -- [Mark Salisbury brought this change] - - SSPI related code: Unicode support for WinCE - commit 46480bb9 follow-up - -- build: add curl_multibyte files to build systems - -- [Mark Salisbury brought this change] - - SSPI related code: Unicode support for WinCE - - SSPI related code now compiles with ANSI and WCHAR versions of security - methods (WinCE requires WCHAR versions of methods). - - Pulled UTF8 to WCHAR conversion methods out of idn_win32.c into their own file. - - curl_sasl.c - include curl_memory.h to use correct memory functions. - - getenv.c and telnet.c - WinCE compatibility fix - - With some committer adjustments - -Guenter Knauf (15 Jun 2012) -- Fixed typo. - -Yang Tse (14 Jun 2012) -- winbuild/MakefileBuild.vc: convert line endings to DOS style - - As per request on mailing list: http://curl.haxx.se/mail/lib-2012-06/0222.html - -- [Marc Hoersken brought this change] - - winbuild: Allow SSPI build with or without Schannel - - The changes introduced in commit 2bfa57bc32 are not enough - to make it actually possible to use the USE_WINSSL option. - Makefile.vc was not updated and the configuration name which is - used in the build path did not match between both build files. - - This patch fixes those issues and introduces the following changes: - - - Replaced the -schannel name with -winssl in order to be consistent - with the other options - - Added ENABLE_WINSSL option to winbuild/Makefile.vc (default yes) - - Changed winbuild/MakefileBuild.vc to set USE_WINSSL to true if - USE_SSL is false and USE_WINSSL was not specified as a parameter - - Separated WINSSL handling from SSPI handling to be consistent with - the other options and their corresponding code path - -- curl.1: 7.27.0 seems next release - -- schannel: fix printf-style format strings - -- Fix bad failf() and info() usage - - Calls to failf() are not supposed to provide trailing newline. - Calls to infof() must provide trailing newline. - - Fixed 30 or so strings. - -- schannel: fix unused parameter warnings - -- schannel: fix comparisons between signed and unsigned - -- schannel: fix discarding qualifier from pointer type - -- schannel: fix shadowing of global declarations - -- schannel: fix Curl_schannel_init() and Curl_schannel_cleanup() declarations - -- [Gisle Vanem brought this change] - - urldata.h: fix cyassl/openssl/ssl.h build clash with wincrypt.h - - Building with CyaSSL failed compilation. Reason being that OCSP_REQUEST and - OCSP_RESPONSE are enum values in CyaSSL and defines in included - via in ldap.c. - - http://curl.haxx.se/mail/lib-2012-06/0196.html - -- MakefileBuild.vc: Allow building without SSL - - In order to use Windows native SSL support define 'USE_WINSSL' - -- configure: new option --with-winssl - - This option may be used to build curl/libcurl using SSL/TLS support provided - by MS windows system libraries. Option is mutually exclusive with any other - SSL library. Default value is --without-winssl. - - --with-winssl option implies --with-sspi option. - - Option meaningful only for Windows builds. - -Guenter Knauf (13 Jun 2012) -- Changed Schannel string to SSL-Windows-native. - - This is more descriptive for the user who might - not even know what schannnel is at all. - -Yang Tse (13 Jun 2012) -- schannel: remove version number and identify its use with 'schannel' literal - - Version number is removed in order to make this info consistent with - how we do it with other MS and Linux system libraries for which we don't - provide this info. - - Identifier changed from 'WinSSPI' to 'schannel' given that this is the - actual provider of the SSL/TLS support. libcurl can still be built with - SSPI and without SCHANNEL support. - -Daniel Stenberg (12 Jun 2012) -- singlesocket: remove dead code - - No need to check if 'entry' is non-NULL in a spot where it is already checked - and guaranteed to be non-NULL. - - (Spotted by a Coverity scan) - -- netrc: remove dead code - - Remove two states from the enum and the corresponding code for them as - these states were never reached or used. - - (Spotted by a Coverity scan) - -Yang Tse (12 Jun 2012) -- Revert "connect.c/ftp.c: Fixed dereferencing pointer breakin strict-aliasing" - - This reverts commit 9c94236e6cc078a0dc5a78b6e2fefc1403e5375e. - - It didn't server its purpose, so lets go back to long-time working code. - -- socks_sspi.c: further cleanup - -- [Marc Hoersken brought this change] - - socks_sspi.c: Clean up and removal of obsolete minor status - - Removed obsolete minor status variable and parameter of status function - which was never used or set at all. Also Curl_sspi_strerror does support - only one status and there is no need for a second sub status. - -Guenter Knauf (12 Jun 2012) -- Removed trailing whitespaces. - -Yang Tse (12 Jun 2012) -- strerror.c: make Curl_sspi_strerror() always return code for errors - -- curl_sspi.h: provide sspi status definitions missing in old headers - -- sspi: make Curl_sspi_strerror() libcurl's sspi status code string function - -- sspi: make Curl_sspi_strerror() libcurl's sspi status code string function - -Daniel Stenberg (11 Jun 2012) -- Revert: 634f7cfee40d4658 partially - - Make sure CURL_VERSION_SSPI is present and works as in previous releases - for ABI and API compatibility reasons. - -- checksrc: shorten a few lines to comply - -- cleanup: remove trailing whitespace - -- [Marc Hoersken brought this change] - - winbuild: Removed WITH_SSL=schannel and tie schannel to SSPI - - Removed specific WITH_SSL=schannel paramter that did not fit the general - schema and complicated the parameters. For now Schannel will be enabled - if SSPI is enabled and OpenSSL is disabled. - -- [Steve Holme brought this change] - - Makefile.vc6: Added version.lib if built with SSPI - -- [Marc Hoersken brought this change] - - winbuild: Updated winbuild scripts to add schannel - -- [Marc Hoersken brought this change] - - mingw32: Fixed warning of USE_SSL being redefined - -- [Marc Hoersken brought this change] - - sspi: Fixed incompatible parameter pointer type in Curl_sspi_version - -- [Marc Hoersken brought this change] - - sspi: Updated RELEASE-NOTES, FEATURES and THANKS - -- [Marc Hoersken brought this change] - - setup.h: Automatically define USE_SSL if USE_SCHANNEL is defined - -- [Marc Hoersken brought this change] - - version: Replaced SSPI feature information with version string details - - Added Windows SSPI version information to the curl version string when - SCHANNEL SSL is not enabled, as the version of the library should also - be included when SSPI is used to generate security contexts. - - Removed SSPI from the feature list as the features are GSS-Negotiate, - NTLM and SSL depending on the usage of the SSPI library. - -- [Steve Holme brought this change] - - sspi.c: Post Curl_sspi_version() rework code tidy up - - Removed duplicate blank lines. - Removed spaces between the not and test in various if statements. - Removed explicit test of NULL in an if statement. - Placed function returns on same line as function declarations. - Replaced the use of curl_maprintf() with aprintf() as it is the - preprocessor job to do this substitution if ENABLE_CURLX_PRINTF - is set. - -- [Steve Holme brought this change] - - sspi: Reworked Curl_sspi_version() to return version components - - Reworked the version function to return four version components rather - than a string that has to be freed by the caller. - -- [Guenter Knauf brought this change] - - configure.ac: Added -lversion if built with SSPI - -- [Marc Hoersken brought this change] - - schannel: Code cleanup and bug fixes - - curl_sspi.c: Fixed mingw32-gcc compiler warnings - curl_sspi.c: Fixed length of error code hex output - - The hex value was printed as signed 64-bit value on 64-bit systems: - SEC_E_WRONG_PRINCIPAL (0xFFFFFFFF80090322) - - It is now correctly printed as the following: - SEC_E_WRONG_PRINCIPAL (0x80090322) - - curl_sspi.c: Fallback to security function table version number - Instead of reporting an unknown version, the interface version is used. - - curl_sspi.c: Removed SSPI/ version prefix from Curl_sspi_version - curl_schannel: Replaced static buffer sizes with defined names - curl_schannel.c: First brace when declaring functions on column 0 - curl_schannel.c: Put the pointer sign directly at variable name - curl_schannel.c: Use structs directly instead of typedef'ed structs - curl_schannel.c: Removed space before opening brace - curl_schannel.c: Fixed lines being longer than 80 chars - -- [Marc Hoersken brought this change] - - curl_sspi: Added Curl_sspi_version function - - Added new function to get SSPI version as string. - Added required library version.lib to makefiles. - Changed curl_schannel.c to use Curl_sspi_version. - -- [Guenter Knauf brought this change] - - schannel: Updated mingw32 makefiles - -- [Marc Hoersken brought this change] - - schannel: Replace ASCII specific code with general defines - -- [Marc Hoersken brought this change] - - schannel: Added definitions which are missing in mingw32 - -- [Marc Hoersken brought this change] - - schannel: Moved interal struct types to urldata.h - - Moved type definitions in order to avoid inclusion loop - -- [Marc Hoersken brought this change] - - schannel: Fixed compiler warnings about pointer type assignments - -- [Marc Hoersken brought this change] - - schannel: Fixed critical typo in conditions and added buffer length checks - -- [Marc Hoersken brought this change] - - sspi: Refactored socks_sspi and schannel to use same error message functions - - Moved the error constant switch to curl_sspi.c and added two new helper - functions to curl_sspi.[ch] which either return the constant or a fully - translated message representing the SSPI security status. - Updated socks_sspi.c and curl_schannel.c to use the new functions. - -- [Marc Hoersken brought this change] - - schannel: Added special shutdown check for Windows 2000 Professional - - Windows 2000 Professional: Schannel returns SEC_E_OK instead - of SEC_I_CONTEXT_EXPIRED. If the length of the output buffer - is zero and the first byte of the encrypted packet is 0x15, - the application can safely assume that the message was a - close_notify message and change the return value to - SEC_I_CONTEXT_EXPIRED. - - Connection shutdown does not mean that there is no data to read - Correctly handle incomplete message and ask curl to re-read - Fixed buffer for decrypted being to small - Re-structured read condition to be more effective - Removed obsolete verbose messages - Changed memory reduction method to keep a minimum buffer of size 4096 - -- [Marc Hoersken brought this change] - - schannel: Implemented SSL/TLS renegotiation - - Updated TODO information and added related MSDN articles - -- [Marc Hoersken brought this change] - - schannel: Save session credential handles in session cache - -- [Marc Hoersken brought this change] - - schannel: Code cleanup - -- [Marc Hoersken brought this change] - - schannel: Check for required context attributes - -- [Marc Hoersken brought this change] - - schannel: Allow certificate and revocation checks being deactivated - -- [Marc Hoersken brought this change] - - schannel: Added SSL/TLS support with Microsoft Windows Schannel SSPI - -- [Marc Hoersken brought this change] - - http: Replaced specific SSL libraries list in https_getsock fallback - -- [Marc Hoersken brought this change] - - connect.c/ftp.c: Fixed dereferencing pointer breakin strict-aliasing - - Fixed warning: dereferencing pointer does break strict-aliasing rules - by using a union instead of separate pointer variables. - Internal union sockaddr_u could probably be moved to generic header. - Thanks to Paul Howarth for the hint about using unions for this. - - Important for winbuild: Separate declaration of sockaddr_u pointer. - The pointer variable *sock cannot be declared and initialized right - after the union declaration. Therefore it has to be a separate statement. - -- [Marc Hoersken brought this change] - - curl_ntlm_msgs.c: Fixed passwdlen not being used and recalculated - -Yang Tse (11 Jun 2012) -- tests: fix test definitions # 1355, 1363, 1385 and 1393 - - -i without HTTP protocol shall not include headers in the output - -Daniel Stenberg (10 Jun 2012) -- Curl_pgrsDone: return int and acknowledge return code - - Since Curl_pgrsDone() itself calls Curl_pgrsUpdate() which may return an - abort instruction or similar we need to return that info back and - subsequently properly handle return codes from Curl_pgrsDone() where - used. - - (Spotted by a Coverity scan) - -Steve Holme (10 Jun 2012) -- [Marc Hoersken brought this change] - - winbuild: Fixed environment variables being lost - - Fixed USE_IPV6 and USE_IDN not being passed - from Makefile.vc to MakefileBuild.vc - Fixed whitespace and formatting issues - Fixed typo and format in help message - -Guenter Knauf (9 Jun 2012) -- Added metalink support to NetWare builds. - -Steve Holme (9 Jun 2012) -- smtp.c: Removed unused variable - -- smtp: Post apop feature code tidy up - -- pop3: Post apop feature code tidy up - -- pop3: Added support for apop authentication - -- pop3: Enhanced the extended authentication mechanism detection - - Enhanced the authentication type / mechanism detection in preparation - for the introduction of APOP support. - -- pop3.c: Fixed length of SASL check - -Yang Tse (9 Jun 2012) -- Fixes allowing 26 more test cases in 1334 to 1393 range to succeed - -- tests: fix test definitions # 1370 and 1371 - - -J without -O shall not honor C-D filename - -Daniel Stenberg (9 Jun 2012) -- OpenSSL: support longer certificate subject names - - Previously it would use a 256 byte buffer and thus cut off very long - subject names. The limit is now upped to the receive buffer size, 16K. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3533045 - Reported by: Anthony G. Basile - -Kamil Dudka (8 Jun 2012) -- ssl: fix duplicated SSL handshake with multi interface and proxy - - Bug: https://bugzilla.redhat.com/788526 - Reported by: Enrico Scholz - -Daniel Stenberg (8 Jun 2012) -- tool_getparam.h: fix compiler error - - forward declare the Configurable struct - -- metalink: restore some includes - - Commit eeeba1496cbca removed them and thus broke my Linux build - -- openldap: OOM fixes - - when calloc fails, return error! (Detected by Fortify) - - Reported by: Robert B. Harris - -Steve Holme (8 Jun 2012) -- sasl: Re-factored mechanism constants in preparation for APOP work - -Yang Tse (8 Jun 2012) -- metalink: build fixes and adjustments II - - Additionally, make hash checking ability mandatory in order to allow metalink - support in curl. - - A command line option could be introduced to skip hash checking at runtime, - but the ability to check hashes should always be built-in when providing - metalink support. - -Guenter Knauf (8 Jun 2012) -- Added metalink support to MinGW builds. - -Daniel Stenberg (7 Jun 2012) -- log2changes.pl: fix the Version output - - Previously it could easily wrongly get repeated - -Yang Tse (7 Jun 2012) -- metalink: build fixes and adjustments I - -Daniel Stenberg (7 Jun 2012) -- lib554.c: use curl_formadd() properly - - The length/size options take longs so make sure to pass on such types. - - Reported by: Neil Bowers - Bug: http://curl.haxx.se/mail/lib-2012-06/0001.html - -Steve Holme (7 Jun 2012) -- smtp.c: Re-factored the smtp_state_*_resp() functions - - Re-factored the smtp_state_*_resp() functions to 1) Match the constants - that were refactored in commit 00fddba6727c, 2) To be more readable and - 3) To match their counterparties in pop3.c. - -Yang Tse (7 Jun 2012) -- Fixes allowing HTTP test cases 1338, 1339, 1368 and 1369 to succeed - -- tests 1364 to 1393: several -o filename -J -i -D combinations for HTTP and FTP - -- tests 1348 to 1363: test definition polishing - - Verify that the "Saved to filename 'blabla'" message is only displayed when - the 'blabla' filename being used _actually_ has been specified by the server - in the Content-Disposition header. - - Use relative path for unintended file creation postcheck. - -Steve Holme (6 Jun 2012) -- smtp: Re-factored the SMTP_AUTH* state machine constants - - Re-factored the SMTP_AUTH* constants, that are used by the state - machine, to be clearer to read. - -Guenter Knauf (6 Jun 2012) -- Added hint for pkg-config wrapper script. - -- Updated Android section with recent NDK. - - The r7b had some bugs, and shouldnt be used. - -Yang Tse (6 Jun 2012) -- Disable non-HTTP header related tests - - These now detect incompleate header data and fail - -- tests 1348 to 1363: compleate header data part of test definition - -- tests 1334 to 1363 revisited. - - Add a postcheck section to verify unintended file creation. - - Remove needless checks in verify section. Renumbering where appropriate. - -- tests: adjust file part behavior in test verify section. - - When a part is now specified with no contents at all, this - will actually verify that the specified file has no contents at all. - Previously file contents would be ignored. - -Steve Holme (5 Jun 2012) -- smtp.c: Removed whitespace - -- pop3: Another small code tidy up - - Missed some comments that we identified during the SMTP tidy up earlier. - -- smtp: Post authentication code tidy up - - Corrected lines longer than 78 characters. - - Removed unnecessary braces in smtp_state_helo_resp(). - - Introduced some comments in data sending functions. - - Tidied up comments to match changes made in pop3.c. - -Yang Tse (5 Jun 2012) -- tests 1348 to 1363: add a comma in test description - -Steve Holme (5 Jun 2012) -- email: Removed duplicated header file - -- sasl: Renamed Curl_sasl_decode_ntlm_type2_message() - - For consistency with other SASL based functions renamed this function - to Curl_sasl_create_ntlm_type3_message() which better describes its - usage. - -- pop3: Post authentication code tidy up - - Corrected lines longer than 78 characters. - - Changed POP3_AUTH_FINAL to POP3_AUTH to match SMTP code now that the - AUTH command is no longer sent on its own. - - Introduced some comments in data sending functions. - - Another attempt at trying to rational code and comment style. - -- pop3: Added support for sasl digest-md5 authentication - -Yang Tse (4 Jun 2012) -- sasl: add reference for curl_sasl - -- Makefile.inc: tab adjustment - -Daniel Stenberg (4 Jun 2012) -- pop3 tests: CAPA instead of AUTH - - After Steve's commit e336bc7c42c7340 test 1319 and 1407 need to check - for CAPA instead of AUTH. - -Steve Holme (4 Jun 2012) -- sasl: Added service parameter to Curl_sasl_create_digest_md5_message() - - Added a service type parameter to Curl_sasl_create_digest_md5_message() - to allow the function to be used by different services rather than being - hard coded to "smtp". - -Yang Tse (4 Jun 2012) -- tests 1356 to 1363: several -O -J -i -D combinations with FTP protocol - - Currently 1356 to 1362 succeed but a write failure is logged in traceNNNN. - - Currently 1363 fails, so disabled for now. - -Steve Holme (4 Jun 2012) -- tests: Updated pop3 tests for change in auth mechanism detection - -- pop3: Changed the sasl mechanism detection from auth to capa - - Not all SASL enabled POP3 servers support the AUTH command on its own - when trying to detect the supported mechanisms. As such changed the - mechanism detection to use the CAPA command instead. - -Daniel Stenberg (4 Jun 2012) -- curl_easy_setopt.3: proto updates + cleanups - - - For all *FUNCTION options, they now all show the complete prototype in - the description. Previously some of them would just refer to a - typedef'ed function pointer in the curl.h header. - - - I made the phrasing of that "Pass a pointer to a function that matches - the following prototype" the same for all *FUNCTION option descriptions. - - - I removed some uses of 'should'. I think I sometimes over-use this - word as in many places I actually mean MUST or otherwise more specific - and not-so-optional synonyms. - -Yang Tse (4 Jun 2012) -- tests 1348 to 1355: several -O -J -i -D combinations with FTP protocol - - Currently 1348 to 1354 succeed but a write failure is logged in traceNNNN. - - Currently 1355 fails, so disabled for now. - -- tests 1346 to 1347: several -O -J -i -D combinations with HTTP protocol - -Steve Holme (4 Jun 2012) -- sasl: Small code tidy up - - Reworked variable names in Curl_sasl_create_cram_md5_message() to match - those in Curl_sasl_create_digest_md5_message() as they are more - appropriate. - -- sasl: Moved digest-md5 authentication message creation from smtp.c - - Moved the digest-md5 message creation from smtp.c into the sasl module - to allow for use by other modules such as pop3. - -- sasl: Small code tidy up before moving digest-md5 over - - Correction of comments and variable names. - -- RELEASE-NOTES: Added missing addition of sasl login support - -- pop3: Added support for sasl cram-md5 authentication - -Daniel Stenberg (3 Jun 2012) -- Curl_sasl_create_plain_message: remove TAB - -Steve Holme (3 Jun 2012) -- sasl: Small code tidy up - - Added some comments and removed an unreferenced variable. - -- pop3.c: Added conditional compilation for NTLM function calls - - Added USE_NTLM condition compilation around the NTLM functions called - from pop3_statemach_act() introduced in commit 69f7156ad96877. - -- sasl: Moved cram-md5 authentication message creation from smtp.c - - Moved the cram-md5 message creation from smtp.c into the sasl module - to allow for use by other modules such as pop3. - -- pop3: Fixed an issue with changes introduced in commit c267c53017bc - - Because pop3_endofresp() is called for each line of data yet is not - passed the line and line length, so we have to use the data pointed to - by pp->linestart_resp which contains the whole packet, the mechanisms - were being detected in one call yet the function would be called for - each line of data. - - Using curl with verbose mode enabled would show that one line of data - would be received in response to the AUTH command, before the AUTH - command was sent to the server and then the next few lines - of the original AUTH command would be displayed before the response from - the AUTH command. This would then cause problems when - parsing the CRAM-MD5 challenge data as extra data was contained in the - buffer. - - Changed the parsing so that each line is checked for the mechanisms - and the function returns FALSE until the whole of the AUTH response has - been processed. - -Daniel Stenberg (3 Jun 2012) -- version: bump to 7.27.0 for next release - - Due to new features - -- RELEASE-NOTES: synced with c4e3578e4bf - - Also bumped the contributor number and next release is to become 7.27.0 - -- THANKS: 16 new contributors from the 7.26.0 release - -Steve Holme (3 Jun 2012) -- DOCS: Fixed list in Section 18.2 not displaying correctly on web site - -- DOCS: Corrected missed heading renumbering from commit 530675a1ad7 - -- DOCS: Added IMAP and LDAP sections - - Added new sections 11. IMAP and 12. LDAP to document adding SASL based - authentication. - - Renumbered current sections 11 to 17 as 13 to 19. - - Additionally added 19.10 Add CURLOPT_MAIL_CLIENT option. - -- sasl.c: Fix to avoid warnings introduced in commit d9ca9e9869e8 - - Applied a fix to avoid warnings on systems where Curl_ntlm_sspi_cleanup() - is just a nop. - -- pop3.c:Corrected typo in commit 69ba0da8272d - -- pop3: Fixed the issue of having to supply the user name for all requests - - Previously it wasn't possible to connect to POP3 and not specify the - user name as a CURLE_ACCESS_DENIED error would be returned. This error - occurred because USER would be sent to the server with a blank user name - if no mailbox user was specified as the server would reply with -ERR. - - This wasn't a problem prior to the 7.26.0 release but with the - introduction of custom commands the user and/or application developer - might want to issue a CAPA command without having to log in as a - specific mailbox user. - - Additionally this fix won't send the newly introduced AUTH command if no - user name is specified. - -- pop3.c: Small code tidy up - - Corrected lines exceeding 78 characters. - - Repositioned some comments and added extra clarity. - -- sasl: Corrected variable names in comments and parameters - -- pop3: Added support for sasl ntlm authentication - -- sasl: Small comment style tidy up following ntlm commit - -- sasl: Moved ntlm authentication message handling from smtp.c - - Moved the ntlm message creation and decoding from smtp.c into the sasl - module to allow for use by other modules such as pop3. - -- pop3: Added support for sasl login authentication - -Yang Tse (1 Jun 2012) -- tests 1334 to 1345: several -O -J -i -D combinations with HTTP protocol - -- tests: support test definitions with up to 5 file checks in section - - This is done introducing tags to besides existing one, - as well as corresponding to ones, that can be used - in the section in the same way as the non-numbered ones. - -Steve Holme (31 May 2012) -- sasl: Moved login authentication message creation from smtp.c - - Moved the login message creation from smtp.c into the sasl module - to allow for use by other modules such as pop3. - -- smtp.c: Reworked message encoding in smtp_state_authpasswd_resp() - - Rather than encoding the password message itself the - smtp_state_authpasswd_resp() function now delegates the work to the same - function that smtp_state_authlogin_resp() and smtp_authenticate() use - when constructing the encoded user name. - -- smtp.c: Re-factored smtp_auth_login_user() for use with passwords - - In preparation for moving to the SASL module re-factored the - smtp_auth_login_user() function to smtp_auth_login() so that it can be - used for both user names and passwords as sending both of these under - the login authentication mechanism is the same. - -- pop3: Added support for sasl plain text authentication - -- curl_ntlm_msgs.c: Corrected small spelling mistake in comments - -- sasl: Moved plain text authentication message creation from smtp.c - - Moved the plain text message creation from smtp.c into the sasl module - to allow for use by other modules such as pop3. - -Yang Tse (30 May 2012) -- configure: fix LDAPS disabling related misplaced closing parenthesis - -- pop3 test server: allow pop3 test server verification to succeed again - - Introduce SUPPORTCAPA and SUPPORTAUTH config commands to allow further - pop3 test server expansion for tests that require CAPA or AUTH support, - although this will need some extra work to make it fully functional. - -Steve Holme (28 May 2012) -- pop3: Introduced the continue response in pop3_endofresp() - -- pop3: Changed response code from O and E to + and - - - The POP3 protocol doesn't really have the concept of error codes and - uses +, +OK and -ERR in response to commands to indicate continue, - success and error. - - The AUTH command is one of those commands that requires multiple pieces - of data to be sent to the server where the server will respond with + as - part of the handshaking. This meant changing the values before - continuing with the next stage of adding authentication support. - -- pop3: Small code tidy up following authentication work so far - - Changed the order of the state machine to match the order of actual - events. - - Reworked some comments and function parameter positioning that I missed - the other day. - -Kamil Dudka (28 May 2012) -- nss: use human-readable error messages provided by NSS - - Bug: http://lists.baseurl.org/pipermail/yum-devel/2012-January/009002.html - -Daniel Stenberg (27 May 2012) -- test1013.pl: filter out Metalink - - Since it isn't a feature supported by curl-config we can't compare that - with the --version output - -- pop3: remove variable-not-used warnings - -Steve Holme (27 May 2012) -- DOCS: Corrected the "Added in" version number for CURLOPT_MAIL_AUTH - - Additionally corrected another RFC link that I missed yesterday. - -- pop3: Added support for SASL based authentication mechanism detection - - Added support for detecting the supported SASL authentication mechanisms - via the AUTH command. There are two ways of detecting them, either by - using the AUTH command, that will return -ERR if not supported or by - using the CAPA command which will return SASL and the list of mechanisms - if supported, not include SASL if SASL authentication is not supported - or -ERR if the CAPA command is not supported. As such it seems simpler - to use the AUTH command and fallback to normal clear text authentication - if the the command is not supported. - - Additionally updated the test cases to return -ERR when the AUTH command - is encountered. Additional test cases will be added when support for the - individual authentication mechanisms is added. - -Daniel Stenberg (27 May 2012) -- pop3: remove trailing whitespace - -Steve Holme (27 May 2012) -- pop3: Code tidy up before the introduction of authentication code - - Moved EOB definition into header file. - - Switched the logic around in pop3_endofresp() to allow for the - introduction of auth-mechanism detection. - - Repositioned second and third function variables where they will fit - within the 78 character line limit. - - Tidied up some comments. - -Guenter Knauf (27 May 2012) -- Enabled OpenSSL static linkage. - -- Enabled OpenSSL static linkage. - -- Try to detect OpenSSL build type automatically. - -Daniel Stenberg (26 May 2012) -- metalink: fix build errors when disabled - -- [Tatsuhiro Tsujikawa brought this change] - - Reduced #ifdef HAVE_METALINK - -- [Tatsuhiro Tsujikawa brought this change] - - Disable hash check if neither OpenSSL nor GNUTLS is installed. - -- [Tatsuhiro Tsujikawa brought this change] - - Format GETOUT_METALINK nicely - -- [Tatsuhiro Tsujikawa brought this change] - - Minimize usage of structs from libmetalink - -- [Tatsuhiro Tsujikawa brought this change] - - Check checksum of downloaded file if checksum is available - - Metalink file contains several hash types of checksums, such as - md5, sha-1, sha-256, etc. To deal with these checksums, I created - abstraction layer based on lib/curl_md5.h and - lib/md5.c. Basically, they are almost the same but I changed the - code so that it is not hash type dependent. Currently, - GNUTLS(nettle or gcrypt) and OpenSSL functions are supported. - - Checksum checking is done by reopening download file. If there - is an I/O error, the current implementation just prints error - message and does not try next resource. - - In this patch, the supported hash types are: md5, sha-1 and sha-256. - -- [Tatsuhiro Tsujikawa brought this change] - - Always create directory hierarchy for Metalink. - - Filenames contained in Metalink file can include directory information. - Filenames are unique in Metalink file, taking into account the directory - information. So we need to create the directory hierarchy. - - Curl has --create-dirs option, but we create directory hierarchy for - Metalink downloads regardless of the option value. - - This patch also put metalink int variable outside of HAVE_LIBMETALINK - guard. This reduces the number of #ifdefs. - -- [Tatsuhiro Tsujikawa brought this change] - - Fixed segmentation fault when Metalink has no valid file or no resource. - -- [Tatsuhiro Tsujikawa brought this change] - - Support media-type parameter in Content-Type - -- [Tatsuhiro Tsujikawa brought this change] - - Print "Metalink" in Features if Metalink support is enabled. - -- [Tatsuhiro Tsujikawa brought this change] - - Removed trailing space - -- [ant brought this change] - - Add --metalink to --help - -- [ant brought this change] - - Add Metalink information and --metalink option to man page - -- [ant brought this change] - - Add Metalink information and --metalink option to man page - -- [ant brought this change] - - Adds Metalink information to INSTALL - -- [Tatsuhiro Tsujikawa brought this change] - - --metalink option is available regardless of Metalink support. - -- [Tatsuhiro Tsujikawa brought this change] - - metalink: parse downloaded Metalink file - - Parse downloaded Metalink file and add downloads described there. Fixed - compile error without metalink support. - -- [Tatsuhiro Tsujikawa brought this change] - - Fixed HAVE_LIBMETALINK conditional is always true - -- [Tatsuhiro Tsujikawa brought this change] - - metalink: minor metalinkfile fix - - Don't update config->metalinkfile_last in operate(). Use local variable - to point to the current metalinkfile. - -- [Tatsuhiro Tsujikawa brought this change] - - metalink: show help message even if disabled - - Print message if --metalink is used while metalink support is not - enabled. Migrated Metalink support in tool_operate.c and removed - operatemetalink(). - -- [Tatsuhiro Tsujikawa brought this change] - - Applied patches from Daniel - -- [Tatsuhiro Tsujikawa brought this change] - - Support Metalink. - - This change adds experimental Metalink support to curl. - To enable Metalink support, run configure with --with-libmetalink. - To feed Metalink file to curl, use --metalink option like this: - - $ curl -O --metalink foo.metalink - - We use libmetalink to parse Metalink files. - -Steve Holme (26 May 2012) -- DOCS: Fixed line spacing of authentication examples in CURLOPT_URL - -- DOCS: Changed domain names in various examples to example.com - - Updated various references of real domain names to example.com as per - RFC-2606. - -- DOCS: Fixed meaning of bit 2 in CURLOPT_POSTREDIR - - Setting bit 2 for this value was documented as having a constant value - defined as CURL_REDIR_POST_303 yet referenced a 302 request. - - Additionally corrected the meaning of CURL_REDIR_POST_ALL for all three - bits and fixed problems with the bolding of keywords in this section. - -- DOCS: Standardised how RFCs are referenced. - - Standardised how RFCs are referenced so that the website may autolink to - the correct documentation on ietf.org. Additionally removed the one link - to RFC3986 on curl.haxx.se. - -Yang Tse (26 May 2012) -- Fix libcurl.pc and curl-config generation for static MingW* cross builds - -Daniel Stenberg (25 May 2012) -- [Tatsuhiro Tsujikawa brought this change] - - Made -D option work with -O and -J. - - To achieve this, first new structure HeaderData is defined to hold - necessary data to perform header-related work. Then tool_header_cb now - receives HeaderData pointer as userdata. All header-related work - (currently, dumping header and Content-Disposition inspection) are done - in this callback function. HeaderData.outs->config is used to determine - whether each work is done. - - Unit tests were also updated because after this change, curl code always - sets CURLOPT_HEADERFUNCTION and CURLOPT_HEADERDATA. - - Tested with -O -J -D, -O -J -i and -O -J -D -i and all worked fine. - -Steve Holme (25 May 2012) -- sasl: Re-factored auth-mechanism constants to be more generic - -- smtp: Moved auth-mechanism constants into a separate header file - - Move the SMTP_AUTH constants into a separate header file in - preparation for adding SASL based authentication to POP3 as the two - protocols will need to share them. - -Kamil Dudka (25 May 2012) -- nss: avoid using explicit casts of code pointers - -Steve Holme (24 May 2012) -- DOCS: Added LDAP to the CURLOPT_URL section - -- TODO: Removed DIGEST-MD5 authentication from SMTP to do list - - Removed DIGEST-MD5 from Section 9.1 Other authentication mechanisms as - the feature was added to SMTP in 7.26.0. - - Also corrected small spelling mistake. - -Daniel Stenberg (24 May 2012) -- bump to 7.26.1: start working towards next release - -Version 7.26.0 (24 May 2012) - -Daniel Stenberg (24 May 2012) -- RELEASE-NOTES: synced with ef60fdbd73 - - Just before 7.26.0 is about to ship - -Steve Holme (22 May 2012) -- smtp: Fixed an issue with the multi-interface always sending postdata - - Due to the result code being reset to CURLE_OK when smtp_dophase_done() - was called, postdata would incorrectly be sent to the server when the - MAIL FROM or RCPT command was rejected. - - As such, libcurl would return the wrong result code from performing the - operation and additionally set CURLINFO_RESPONSE_CODE to be that - returned by the postdata command. - - Bug: http://curl.haxx.se/mail/lib-2012-05/0108.html - Reported by: Gokhan Sengun - -- DOCS: Updated version number for features added in the pending release - -Daniel Stenberg (22 May 2012) -- [Tatsuhiro Tsujikawa brought this change] - - Fixed compile error with GNUTLS+NETTLE - - In nettle/md5.h, md5_init and md5_update are defined as macros to - nettle_md5_init and nettle_md5_update respectively. This causes - error when using MD5_params.md5_init and md5_update. This patch - renames these members as md5_init_func and md5_update_func to - avoid name conflict. For completeness, MD5_params.md5_final was - also renamed as md5_final_func. - - The changes in curl_ntlm_core.c is conversion error and fixed by - casting to proper type. - -- TODO-RELEASE: mention the pending biggies for 7.27.0 - -- [Jan Ehrhardt brought this change] - - winbuild: fix IPv6 enabled build - - The existing check was wrong so IPv6 support would never be enabled - -- 7.26.0: will be the next release version - -- RELEASE-NOTES: synced with 8ae1e657e82a - - And mention that this will become 7.26.0 - -Guenter Knauf (22 May 2012) -- Updated dependency libary versions. - -Daniel Stenberg (20 May 2012) -- curl-config.1: fix curl-config usage in example - - The curl-config command must be used twice in the single command line to - work properly in some environments. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3528241 - Reported by: Julian Taylor - -Steve Holme (17 May 2012) -- smtp: Fixed non-escaping of dot character at beginning of line - - A dot character at the beginning of a line would not be escaped to a - double dot as required by RFC-2821, instead it would be deleted by the - mail server. Please see section 4.5.2 of the RFC for more information. - - Note: This fix also simplifies the detection of repeated CRLF.CRLF - combinations, such as CRLF.CRLF.CRLF, a little rather than having to - advance the eob counter to 2. - -Daniel Stenberg (16 May 2012) -- FAQ: updated 1.10 How many are using curl? - - Now linking to http://daniel.haxx.se/blog/2012/05/16/300m-users/ - -- disable-versioned-symbols: removed superfluous 'fi' - - The commit e315927a1a left this in - -- MakefileBuild.vc: use the correct IDN variable - - The variable that control IDN enablement is called USE_IDN within these - Makefiles - -- [Pierre Chapuis brought this change] - - autoconf: improve handling of versioned symbols - - It checks whether versioned symbols should be enabled before checking - whether it is possible (i.e. the linker supports --version-script) or - not. This avoids a useless warning when building cURL on a platform that - does not use GNU ld. - - Moreover, it fixes broken indentation of this chunk of code. - -- curl.1: clarify -x usage - - 1 - fix the syntax in the .IP line - - 2 - Provided user names and passwords are URL decoded by libcurl - - Bug: http://curl.haxx.se/bug/view.cgi?id=3525935 - -- NTLM: is supported in GnuTLS builds too - - ... since commit 9a4c887c4a7 introduced in libcurl 7.19.4 - -- TODO: happy eyeballs is now RFC6555 - -- my_useragent: shorten user-agent - - The built-in user-agent will now only say curl/[version] and nothing - else in an attempt to decrease overhead in HTTP requests. - -- CURLOPT_HEADERFUNCTION: works for non-HTTP protocols too - -Claes Jakobsson (3 May 2012) -- Add note about default timeout in CURLOPT_TIMEOUT - -Daniel Stenberg (2 May 2012) -- [Gokhan Sengun brought this change] - - MD5: OOM fix - - check whether md5 initialization succeeded before updating digest of - buffers onto it - -- REALEASE-NOTES: synced with 64f48e884e3c1 - -- [Jan Schaumann brought this change] - - add newly created manual page - -- [Jan Schaumann brought this change] - - add a manual page for mk-ca-bundle - -Guenter Knauf (26 Apr 2012) -- Updated dependency lib versions. - -Daniel Stenberg (23 Apr 2012) -- URL parse: reject numerical IPv6 addresses outside brackets - - Roman Mamedov spotted (in - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670126) that curl would - not complain when given a URL with an IPv6 numerical address without - brackets. It would simply cut off the last ":[hex]" part and thus not - work correctly. - - That's a URL using an illegal syntax and now libcurl will instead return - a clear error code and error message detailing the error. - - The above mentioned bug report claims this to be a regression but - libcurl does not guarantee functionality when given URLs that aren't - following the URL spec (RFC3986 mostly). I consider the fact that it - used to handle this differently a mere coincidence. - -- Curl_MD5_init: fix OOM memory leak - - Bug: http://curl.haxx.se/mail/lib-2012-04/0246.html - Reported by: Michael Mueller - -- [Gokhan Sengun brought this change] - - OpenSSL cert: provide more details when cert check fails - - curl needs to be more chatty regarding certificate verification failure - during SSL handshake - -Yang Tse (23 Apr 2012) -- Revert "sspi: Added version information" - - This reverts commit 2976de480808119dae08fc6f52c8d75ba1aedb1a. - -- Revert "sspi - Small code tidy up" - - This reverts commit 46cd5f1daddad3b3e542e6d93eee52e8bb9a8687. - -- Revert "Fixed 'extra tokens at end of #endif directive'." - - This reverts commit 77172a242fc0c820f97eae39d0e3e0f265222fe6. - -- Revert "Fixed 'Trailing whitespace' found by checksrc." - - This reverts commit 683bfa60ad0b52505947e59b03515e5f44378523. - -- Revert "sspi: Code tidy up to remove unused variable." - - This reverts commit 412510f97407d617426d93b80e6b6bf0a8ff11ac. - -- Revert "Add -lversion if build with SSPI." - - This reverts commit 9ec0b7e0c44d29eca6f45916fe5af3501168fe85. - -Guenter Knauf (23 Apr 2012) -- Add -lversion if build with SSPI. - -Steve Holme (22 Apr 2012) -- sspi: Code tidy up to remove unused variable. - -Guenter Knauf (22 Apr 2012) -- Fixed 'Trailing whitespace' found by checksrc. - -- Fixed 'extra tokens at end of #endif directive'. - -Steve Holme (22 Apr 2012) -- sspi - Small code tidy up - -- sspi: Added version information - - Added version information for Windows SSPI to curl's main version - string and removed SSPI from the features string. - -Daniel Stenberg (20 Apr 2012) -- HTTP: empty chunked POST ended up in two zero size chunks - - When doing a chunked-encoded POST with -d (CURLOPT_POSTFIELDS) and the - size of the POST was zero length, it made libcurl first send a zero - chunk and then the terminating one. This could confuse a receiver and it - should rather just send the terminating chunk as it does with this fix. - - Test case 1333 is added to verify. - - Bug: http://curl.haxx.se/mail/archive-2012-04/0060.html - Reported by: Arnaud Compan - -Guenter Knauf (20 Apr 2012) -- Updated dependency lib versions. - -Daniel Stenberg (19 Apr 2012) -- singleipconnect: return OK even when Curl_socket() fails - - Commit 9109cdec11ee5a brought this regression (shipped since 7.24.0). - - The singleipconnect() function must not return an error if Curl_socket() - returns an error. It should then simply return OK and pass a SOCKET_BAD - back simply because that is how the user of this function expects it to - work and something else is not fine. - - Reported by: Blaise Potard - Bug: http://curl.haxx.se/bug/view.cgi?id=3516508 - -Yang Tse (19 Apr 2012) -- Take in account that CURLAUTH_* bitmasks are now 'unsigned long' - follow-up - - MIPSPro compiler detected curl_easy_getinfo() related missing adjustments. - SunPro compiler detected curl tool --libcurl option related missing adjustments. - -- url.c: CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH fixes - - Fail with CURLE_NOT_BUILT_IN when none of requested auth methods is supported. - - Reject CURLAUTH_ONLY bit when given alone or with CURLAUTH_NONE. - -- Take in account that CURLAUTH_* bitmasks are now 'unsigned long' - - Data type of internal vars holding CURLAUTH_* bitmasks changed from 'long' to - 'unsigned long' for proper handling and operating. - -- curl.h: CURLAUTH_* bitmasks adjusted to become 'unsigned long' typed - - Info: http://curl.haxx.se/mail/lib-2012-04/0170.html - -- Some explicit conversion to 'long' of curl_easy_setopt() third argument - - Explicit conversion to 'long' of curl_easy_setopt() third argument for options - CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH given that this is how its bitmasks are - docummented to be used. - -- build adjustments: commit 9e24b9c7 follow-up - -Daniel Stenberg (17 Apr 2012) -- -# progress meter: avoid superfluous updates and duplicate lines - - By comparing if a different "progress point" is reached or not since the - previous update, the progress function callback for this now avoids many - superfluous screen updates. This has the nice side-effect that it fixes - a problem that causes a second progress meter line. - - The second line output happened because when we use the -# progress - meter, we force a newline output after the transfer in the main loop in - curl, but when libcurl calls the progress callback from - curl_easy_cleanup() it would then output the progress display - again. Possibly the naive newline output is wrong but this optimization - was suitable anyway... - - Reported by: Daniel Theron - Bug: http://curl.haxx.se/bug/view.cgi?id=3517418 - -Yang Tse (16 Apr 2012) -- nss.c: fix compiler warning - -- curl-compilers.m4: -Wno-pedantic-ms-format for Windows gcc 4.5 builds - - When building a Windows target with gcc 4.5 or newer and strict compiler - warnings enabled use -Wno-pedantic-ms-format in addition to other flags. - -Kamil Dudka (16 Apr 2012) -- tests/valgrind.pm: suppress memleaks of NSS_InitContext() - - Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=745224 - -Yang Tse (14 Apr 2012) -- setup_once.h: tighten requirements for stdbool.h header inclusion - - Include stdbool.h only when it is available and configure is capable of - detecting a proper 'bool' data type when the header is included. - - Compilation fix for old or unpatched versions of XL C compiler. - - Report: http://curl.haxx.se/mail/archive-2012-04/0022.html - -- headers: require GCC 2.7 or newer in order to allow attribute GCC'isms usage - - Usage in other code paths already protected and requiring even newer versions. - -- [Jonathan Nieder brought this change] - - headers: surround GCC attribute names with double underscores - - This protects from attribute names being defined by third party's code. - - Improvement: http://curl.haxx.se/mail/lib-2012-04/0127.html - -Guenter Knauf (13 Apr 2012) -- Updated copyright year. - -Yang Tse (13 Apr 2012) -- testcurl.pl: build example programs for Android cross-compiles - -- nss.c: fix compiler warning - -- examples: fix compiler warnings - -Kamil Dudka (13 Apr 2012) -- nss: provide human-readable names for NSS errors - -- nss: use NSS_InitContext() to initialize NSS if available - - NSS_InitContext() was introduced in NSS 3.12.5 and helps to prevent - collisions on NSS initialization/shutdown with other libraries. - - Bug: https://bugzilla.redhat.com/738456 - -- nss: unconditionally require PK11_CreateGenericObject() - - This bumps the minimal supported version of NSS to 3.12.x. - -Guenter Knauf (13 Apr 2012) -- Set batch mode to 755 to make Cygwin git pulls work. - -- Added section for Android configure cross-compile. - -- Added NetWare export. - -Yang Tse (12 Apr 2012) -- testcurl.pl: build example programs for MinGW cross-compiles - -- tool_operate.c: fix compiler warning - -- url.c: fix compiler warning - -Guenter Knauf (12 Apr 2012) -- Updated dependency lib versions (2nd try). - -- Updated dependency lib versions. - -Yang Tse (12 Apr 2012) -- tool_formparse.c: rename a couple of vars to avoid declaration shadowing - -- OS400/initscript.sh: fix db2_name() module name generation - - Allow repeatable file name length reduction on file names with underscore or - dash characters. This is done in order to better support libcurl's existing - source file names and allow OS/400 package to build out of the box again. - -- testcurl.pl: log more environment vars that modify configure and build behavior - -- configure: NATIVE_WINDOWS no longer defined in config files - -- build adjustments: CURL_HIDDEN_SYMBOLS no longer defined in config files - - configure script now provides conditional definitions for Makefile.am - that result in CURL_HIDDEN_SYMBOLS being defined by resulting makefiles - when appropriate. - - Additionally, configure script option for symbol hiding control is now - named --enable-symbol-hiding --disable-symbol-hiding. While still valid, - old option name --enable-hidden-symbols --disable-hidden-symbols will - be deprecated in some future release. - -- build adjustments: functionally revert commits 4d3fb91f and bbfe1182 - - Undefining CURL_HIDDEN_SYMBOLS in source files isn't the proper fix. - -- test servers: build adjustment - - Undefine CURL_HIDDEN_SYMBOLS libcurl private preprocessor macro that might - leak from lib/setup.h into source files where this should not be defined. - -- libtests: build adjustment - - Undefine CURL_HIDDEN_SYMBOLS libcurl private preprocessor macro that might - leak from lib/setup.h into source files where this should not be defined. - -- curl tool: make setup.h first header included in tool_setup.h again - -- curl tool: use configuration files from lib directory - follow-up II - - lib/config-win32.h no longer copied to src/config-win32.h - -- configure: Windows cross-compilation fixes - - BUILDING_LIBCURL and CURL_STATICLIB are no longer defined in curl_config.h, - configure will generate appropriate conditionals so that mentioned symbols - get defined and used in Makefiles at compilation time - -- curl tool: make curl.h first header included in tool_setup.h - -- curl tool: use configuration files from lib directory - follow-up I - - amigaos.[ch] now integrates nicely with any libcurl build - -- curl tool: use configuration files from lib directory - - Configuration files such as curl_config.h and all config-*.h no longer exist - nor are generated/copied into 'src' directory, now these only exist in 'lib' - directory from where curl tool sources uses them. - - Additionally old src/setup.h has been refactored into src/tool_setup.h which - now pulls lib/setup.h - - The possibility of a makefile needing an include path adjustment exists. - -Daniel Stenberg (6 Apr 2012) -- PolarSSL: correct return code for CRL matches - - When a server certificate matches one in the given CRL file, the code - now returns CURLE_SSL_CACERT as test case 313 expects and verifies. - -- PolarSSL: include version number in version string - - Previously it would say PolarSSL only, now it says PolarSSL/1.1.0 in the - same style other libs and components do. - -- test: added test 1332 that tests --post303 - -- curl: add --post303 to set the CURL_REDIR_POST_303 option - -- [Andrei Cipu brought this change] - - CURLOPT_POSTREDIR: also allow 303 to do POST on the redirected URL - - As it turns out, some people do want that after all. - -- test1331: cookies on a 407 response - - Verify that cookies are sent back even after a 407 response has been - received - -- [Dag Ekengren brought this change] - - PolarSSL: add support for asynchronous connect - -- [Tim Heckman brought this change] - - Revert "access the CA source file using HTTPS" - - This reverts commit f7e2ab6. - - This change caused fetching of the certificates to become unreliable. - - Bug: http://curl.haxx.se/mail/lib-2012-03/0238.html - Reported by: Tim Heckman - -- [Andrei Cipu brought this change] - - IPv6 cookie domain: get rid of the first bracket before the second. - - Commit 97b66ebe was copying a smaller buffer, thus duplicating the last - character. - -- MAIL-ETIQUETTE: Added "How to unsubscribe" - - ... as it seems to hard for some people - -Yang Tse (4 Apr 2012) -- ftp.c: ftplistparser related OOM handling fix - -- smtp.c: fix compiler warnings - -- lib599.c: fix compiler warning - -Daniel Stenberg (4 Apr 2012) -- runtests: yassl and polarssl are not openssl - - Don't set the "has_openssl" variable if yassl or polarssl is found as - they will simply not work as 100% drop-in replacements for some of the - stuff the "OpenSSL" feature is used for. - - I spotted this problem when doing test runs with PolarSSL builds. - -- [Lijo Antony brought this change] - - connect.c: return changed to CURLE_COULDNT_CONNECT when opensocket fails - - Curl_socket returns CURLE_COULDNT_CONNECT when the opensocket callback - returns CURL_SOCKET_BAD. Previous return value CURLE_FAILED_INIT - conveys incorrect information to the user. - -Steve Holme (2 Apr 2012) -- pop3: Reworked the command sending and handling - - Reworked the command sending from two specific LIST and RETR command - functions into a single command based function as well as the two - associated response handlers into a generic command handler. - -Daniel Stenberg (1 Apr 2012) -- [Dave Reisner brought this change] - - curl tool: add filename_effective token for --write-out - - By modifying the parameter list for ourWriteOut() and passing the - OutStruct that collects data in tool_operate, we get access to the - remote name that we're writing to. Shell scripters should find this - useful when used in conjuntion with the --remote-header-name option. - -Steve Holme (1 Apr 2012) -- smtp.c: Code policing and tidy up - -Daniel Stenberg (1 Apr 2012) -- [Armel Asselin brought this change] - - SSH: public key can now be an empty string - - If an empty string is passed to CURLOPT_SSH_PUBLIC_KEYFILE, libcurl will - pass no public key to libssh2 which then tries to compute it from the - private key. This is known to work when libssh2 1.4.0+ is linked against - OpenSSL. - -- [Tatsuhiro Tsujikawa brought this change] - - OpenSSL: Made cert hostname check conform to RFC 6125 - - This change replaces RFC 2818 based hostname check in OpenSSL build with - RFC 6125 [1] based one. - - The hostname check in RFC 2818 is ambiguous and each project implements - it in the their own way and they are slightly different. I check curl, - gnutls, Firefox and Chrome and they are all different. - - I don't think there is a bug in current implementation of hostname - check. But it is not as strict as the modern browsers do. Currently, - curl allows multiple wildcard character '*' and it matches '.'. (as - described in the comment in ssluse.c). - - Firefox implementation is also based on RFC 2818 but it only allows at - most one wildcard character and it must be in the left-most label in the - pattern and the wildcard must not be followed by any character in the - label.[2] Chromium implementation is based on RFC 6125 as my patch does. - Firefox and Chromium both require wildcard in the left-most label in the - presented identifier. - - This patch is more strict than the current implementation, so there may - be some cases where old curl works but new one does not. But at the same - time I think it is good practice to follow the modern browsers do and - follow the newer RFC. - - [1] http://tools.ietf.org/html/rfc6125#section-6.4.3 - [2] https://bugzilla.mozilla.org/show_bug.cgi?id=159483 - -- HTTP: reset expected DL/UL sizes on redirects - - With FOLLOWLOCATION enabled. When a 3xx page is downloaded and the - download size was known (like with a Content-Length header), but the - subsequent URL (transfered after the 3xx page) was chunked encoded, then - the previous "known download size" would linger and cause the progress - meter to get incorrect information, ie the former value would remain - being sent in. This could easily result in downloads that were WAY - larger than "expected" and would cause >100% outputs with the curl - command line tool. - - Test case 599 was created and it was used to repeat the bug and then - verify the fix. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3510057 - Reported by: Michael Wallner - -Steve Holme (31 Mar 2012) -- [Gökhan Åžengün brought this change] - - smtp: Add support for DIGEST-MD5 authentication - -- [Gökhan Åžengün brought this change] - - smtp: Cody tidy up of md5 digest length - - Replaced the hard coded md5 digest length (16) with a preprocessor - constant - -- [Gökhan Åžengün brought this change] - - md5: Add support for calculating the md5 sum of buffers incrementally - - It is now possible to calculate the md5 sum as the stream of buffers - becomes known where as previously it was only possible to calculate the - md5 sum of a pre-prepared buffer. - -Daniel Stenberg (31 Mar 2012) -- Revert "mk-ca-bundle.pl: use LWP::UserAgent for https" - - This reverts commit 9f0e1689f169b83b8fbdae23e0024cc57dcbc770. - - It turned out that "improvement" instead made the fetching of the - certificates unreliable - - Bug: http://curl.haxx.se/mail/lib-2012-03/0238.html - Reported by: Tim Heckman - -Steve Holme (31 Mar 2012) -- DOCS: Added information regarding POP3 commands to CURLOPT_CUSTOMREQUEST - -- pop3: Added support for additional pop3 commands - - This feature allows the user to specify and use additional POP3 - commands such as UIDL and DELE via libcurl's CURLOPT_CUSTOMREQUEST or - curl's -X command line option. - -Yang Tse (30 Mar 2012) -- [tetetest tetetest brought this change] - - CMakeLists.txt: fix Windows LDAP/LDAPS option handling - - bug: http://curl.haxx.se/mail/lib-2012-03/0278.html - -- [tetetest tetetest brought this change] - - CMakeLists.txt: fix MS Visual Studio x64 unsigned long long literal suffix - - bug: http://curl.haxx.se/mail/lib-2012-03/0255.html - -Steve Holme (28 Mar 2012) -- TODO: Corrected POP3 section heading - -Yang Tse (28 Mar 2012) -- curl-functions.m4: update detection logic of getaddrinfo() thread-safeness - - Take in account that h_errno might be a modifiable lvalue not defined as - a C preprocessor macro - -Steve Holme (27 Mar 2012) -- TODO: Added SMTP and POP3 specific features - -Yang Tse (27 Mar 2012) -- [Olaf Flebbe brought this change] - - tool_cb_dbg.c: fix tool_cb_dbg() to behave properly even for size 0 - - curl segfault in debug callback triggered with CURLINFO_HEADER_OUT and size 0 - - bug: http://curl.haxx.se/bug/view.cgi?id=3511794 - -- test #1405: support HTTP disabled builds - -Steve Holme (26 Mar 2012) -- test #809: Updated error code to match recent pop3 changes - -Yang Tse (25 Mar 2012) -- ssh.c: code cleanup, Curl_safefree() already nullifies pointer - -- fix some compiler warnings - -Steve Holme (25 Mar 2012) -- pop3.c: Corrected problem with state() introduced in 01690ed2bce5 - -- pop.c: Small code tidy up - -- pop3: Removed the need for the single message LIST command handler - - Simplified the code to remove the need for a separate "LIST " - command handler and state machine and instead use the LIST command - handler for both operations. - -- pop3.c: Code policing and tidy up - - Corrected character and line spacing and re-ordered list and retr - functions based on the order of their state machines. - -- email: Moved server greeting responses into separate functions - - Moved the server greeting response handling code from the statemach_act - functions to separate response functions. This makes the code simpler - to follow and provides consistency with the other responses that are - handled here. - -- pop3.c: Fixed body data being written when CURLOPT_NOBODY is specified - - Body data would be forwarded to the client application in both the RETR - and LIST commands even if CURLOPT_NOBODY was specified. - -Daniel Stenberg (23 Mar 2012) -- [Rodrigo Silva (MestreLion) brought this change] - - docs: clarify -z/--time-cond with filename (mention mtime) - - Original wording could lead users in thinking it tries to - somehow parse the filename for a date expression (like - news_2012_03_05.html). It never mentions that it actually - reads the mtime of the file in filesystem. - -Yang Tse (23 Mar 2012) -- tests #1316 #1319 #1320 #1321: add missing keywords - -- test #598: add missing keywords - -- version: start working on 7.25.1-DEV - -Daniel Stenberg (22 Mar 2012) -- [Benjamin Johnson brought this change] - - configure: check for gethostbyname in the watt lib - - This allows building of libcurl on DOS using DJGPP 2.04 and Watt-32 - sockets. I know there's already Makefile.djgpp, but I find this more - convenient since I'm used to using the ./configure script from other - platforms - -- THANKS: 8 new contributors from 7.25.0 - -Version 7.25.0 (22 Mar 2012) - -Daniel Stenberg (22 Mar 2012) -- RELEASE-NOTES: synced with b8b2cf612b2 - -Yang Tse (22 Mar 2012) -- tests #1400 #1401: add missing keywords - -- http_proxy.h: fix builds with proxy or http disabled - -- parsedate.c: fix a numeric overflow - -Daniel Stenberg (22 Mar 2012) -- [Andrei Cipu brought this change] - - cookies: strip the numerical ipv6 host properly - - The commit e650dbde86d4 that stripped off [brackets] from ipv6-only host - headers for the sake of cookie parsing wrongly incremented the host - pointer which would cause a bad free() call later on. - -Yang Tse (22 Mar 2012) -- test #598: add to Makefile.am - -- test #598: OOM handling fixes - -- fix several compiler warnings - -Daniel Stenberg (22 Mar 2012) -- CONNECT: fix multi interface regression - - The refactoring of HTTP CONNECT handling in commit 41b0237834232 that - made it protocol independent broke it for the multi interface. This fix - now introduce a better state handling and moved some logic to the - http_proxy.c source file. - - Reported by: Yang Tse - Bug: http://curl.haxx.se/mail/lib-2012-03/0162.html - -- SWS: refuse to serve CONNECT unless running as proxy - -Yang Tse (21 Mar 2012) -- curl-functions.m4: update detection logic of getaddrinfo() thread-safeness - - Take in account that POSIX standard Issue 7 drops h_errno support. Now, we also - consider getaddrinfo() to be thread-safe when (_POSIX_C_SOURCE >= 200809L) or - (_XOPEN_SOURCE >= 700) independently of whether h_errno exists or not. - -- fix several compiler warnings - -- tests 140X: fix --libcurl generated source file reading mode for MSYS builds - -- tool_easysrc.c: fix --libcurl option output file text translation mode - - Use fopen() with "w" mode instead of "wt" to fix cygwin builds. - -- build: remove tool_cb_skt.[ch] references - -Daniel Stenberg (18 Mar 2012) -- RELEASE-NOTES: synced with ad77420ac761b - - 3 more bugs, 1 more contributor - -- lwip: basic checks and macros for compatiblity - -Yang Tse (17 Mar 2012) -- tool_setopt.c: more OOM handling fixes - -Daniel Stenberg (16 Mar 2012) -- cmake: list_spaces_append_once fails with spaces in filename - - Windows standard libraries are located in C:/Program Files/Microsoft - SDKs/[...]. They are already included in the default MSVC - LIBPATH. Hence, find_library(WSOCK32_LIBRARY wsock32) and - find_library(WS2_32_LIBRARY ws2_32) are not needed. They return the full - path to the libraries including spaces. Of course, - list_spaces_append_once will mangle the result and the build fails. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3494968 - -Yang Tse (16 Mar 2012) -- http_proxy.c: fix OOM handling - -- tool_setopt.c: fix OOM handling - -- fix several compiler warnings - -- fix some compiler warnings - -Daniel Stenberg (13 Mar 2012) -- [Maxim Prohorov brought this change] - - resolve with c-ares: don't resolve IPv6 when not working - - If the Curl_ipv6works() function says no, there is no reason to try AAAA - names even if libcurl was built with IPv6 support enabled. - - Bug: http://curl.haxx.se/mail/lib-2012-03/0045.html - -unknown (10 Mar 2012) -- [Steve Holme brought this change] - - smtp.c: Changed the curl error code for EHLO and HELO responses - - Changed the returned curl error codes for EHLO and HELO responses from - CURLE_LOGIN_DENIED to CURLE_REMOTE_ACCESS_DENIED as a negative response - from these commands represents no service as opposed to a login error. - -Daniel Stenberg (10 Mar 2012) -- RELEASE-NOTES: synced with e650dbde86 - - New: 12 bugs, 3 changes, 6 contributors and updated counters at the top - -- [Andrei Cipu brought this change] - - Curl_http: strip off [brackets] from ipv6-only host headers - - Since the host name is passed in to the cookie engine it will not work - correctly if the brackets are left in the name. - - Bug:http://curl.haxx.se/mail/lib-2012-03/0036.html - -- [Armel Asselin brought this change] - - CURLSSH_OPT_AUTH: documented it has no effect - -- [John Joseph Bachir brought this change] - - mk-ca-bundle.pl: use LWP::UserAgent with proper https verify behavior. - - An alternative would be: - - 1. specify HTTPS_CA_DIR and/or HTTPS_CA_FILE - 2. ensure that Net::SSL is being used, and IO::Socket::SSL is NOT being - used - - This question and answer explain: - http://stackoverflow.com/questions/74358/ - -- [John Joseph Bachir brought this change] - - access the CA source file using HTTPS - -- includes: remove inclusion of unused file http_proxy.h - -- CONNECT: made generically not per-protocol - - Curl_protocol_connect() now does the tunneling through the HTTP proxy if - requested instead of letting each protocol specific connection function - do it. - -- ssh_connect: tunnel through HTTP proxy if requested - -- LWIP: don't consider HAVE_ERRNO_H to be winsock - - The check for Winsock definition was a bit too broad - - Bug: http://curl.haxx.se/mail/lib-2012-03/0046.html - -- [Dave Reisner brought this change] - - curl-config: only provide libraries with --libs - - In line with the manpage, curl-config --libs should only provide the necessary - library flags for the linker in order to compile software with libcurl. Also - with this change, we match what the pkg-config file provides. - -- CONTRIB: Please don't send pull requests - -- libcurl docs: version corrections - - Correct some inconsistencies in which version some things were added. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3494091 - Reported by: "curlybugs" - -- CONNECT: fix ipv6 address in the Request-Line - - Commit 466150bc64d fixed the Host: header with CONNECT, but I then - forgot the preceeding request-line. Now this too uses [brackets] - properly if a ipv6 numerical address was given. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3493129 - Reported by: "Blacat" - -- [Steve Holme brought this change] - - SMTP: Added support for returning SMTP response codes - - Set the conn->data->info.httpcode variable in smtp_statemach_act() to - allow Curl_getinfo() to return the SMTP response code via the - CURLINFO_RESPONSE_CODE action. - -- curl.1: updated --libcurl - - With Colin Hogben's recent work, --libcurl now also works with -F and - more. Remove the previous caveat. - -- test: --libcurl fixes - - The line endings broke when I saved the three recent patches (my fault, - not Colin's) to 'git am' them. - - Adjusted the stripping of the test program for comparing to also exclude - the SSH key file name as that will differ and use a local path name. - -- [Colin Hogben brought this change] - - Add helper script convsrctest.pl to manipulate --libcurl tests. - - The intention is to take the output of curl's --libcurl option, - as exercised in test 14xx, and generate a corresponding test15xx - in which the generated code is compiled and run. This will verify - that the generated code behaves equivalently to the original - invocation of the curl command. - - The script is not yet integrated into the configure / makefile - machinery. - -- [Colin Hogben brought this change] - - Add tests for curl's --libcurl output. - - These tests check the output of the --libcurl option of curl, - including the improved option handling added in a related patch. - -- [Colin Hogben brought this change] - - Generate lists and use symbols in --libcurl code output. - - This patch improves the output of curl's --libcurl option by - generating code which builds curl_httppost and curl_slist lists, and - uses symbolic names for enum and flag values. Variants of the - my_setopt macro in tool_setopt.h are added in order to pass extra type - information to the code-generation step in tool_setopt.c. - - If curl is configured with --disable-libcurl-option then the macros - call curl_easy_setopt directly. - -- [Steve Holme brought this change] - - smtp.c: Fixed an issue with writing postdata - - Fixed a problem in smtp_done() when writing out the postdata as - Curl_write() would periodically return zero bytes written. - -- CURLOPT_MAIL_AUTH: added in 7.25.0 - - Brought in commit 0cf0ab6f300 - -- pop3 test server: send terminating ".CRLF" only - - With commit 035ef06bda7 applied, the test pop3 server needs to send - ".\r\n" as the body terminating sequence and there needs to be a final - CRLF in the actual body in the test data file. - -- [Steve Holme brought this change] - - pop3.c: Fixed drop of final CRLF in EOB checking - - Curl_pop3_write() would drop the final CRLF of a message as it was - considered part of the EOB as opposed to part of the message. Whilst - the EOB sequence needs to be searched for by the function only the - final 3 characters should be removed as per RFC-1939 section 3. - - Reported by: Rich Gray - Bug: http://curl.haxx.se/mail/lib-2012-02/0051.html - -- [Steve Holme brought this change] - - smtp.c: Fixed an issue with the EOB checking - - Curl_smtp_escape_eob() would leave off final CRLFs from emails ending - in multiple blank lines additionally leaving the smtpc->eob variable - with the character count in, which would cause problems for additional - emails when sent through multiple calls to curl_easy_perform() after a - CURLOPT_CONNECT_ONLY. - -- CURLE_FTP_PRET_FAILED: listed twice - - Make sure it is mentioned once and with the correct description - -- --mail-auth documented - -- [Steve Holme brought this change] - - SMTP: Code policing and tidy up - -- [Steve Holme brought this change] - - curl: Added support for --mail-auth - - Added an extra command-line argument to support the optional AUTH - parameter in SMTPs MAIL FROM command. - -Kamil Dudka (16 Feb 2012) -- docs: mention that NTLM works with NSS, too - -Daniel Stenberg (15 Feb 2012) -- [Steve Holme brought this change] - - DOCS: Added information for CURLOPT_MAIL_AUTH. - - Added information relating to the new CURLOPT_MAIL_AUTH parameter and - reworked CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT to be a clearer. - - Fixed inconsistencies of "vocalisation of the abbreviation" versus - "vocalisation of the first word" for all abbreviations. - - Corrected a typo in CURLOPT_NOPROXY. - -- [Steve Holme brought this change] - - smtp.c: Fixed use of angled brackets in AUTH parameter. - - Fixed the use of angled brackets "<>" in the optional AUTH parameter as - per RFC-2554 section 5. The address should not include them but an - empty address should be replaced by them. - -- [Steve Holme brought this change] - - smtp_mail: Added support to MAIL FROM for the optional AUTH parameter - - Added a new CURLOPT_MAIL_AUTH option that allows the calling program to - set the optional AUTH parameter in the MAIL FROM command. - - When this option is specified and an authentication mechanism is used - to communicate with the mail server then the AUTH parameter will be - included in the MAIL FROM command. This is particularly useful when the - calling program is acting as a relay in a trusted environment and - performing server to server communication, as it allows the relaying - server to specify the address of the mailbox that was used to - authenticate and send the original email. - -- [toddouska brought this change] - - cyassl: update to CyaSSL 2.0.x API - - Modify configure.ac to test for new CyaSSL Init function and remove - default install path to system. Change to CyaSSL OpenSSL header and - proper Init in code as well. - - Note that this no longer detects or works with CyaSSL before v2 - -- LIBCURL_VERSION_NUM: 0x071900 - - I accidentally left the lowest bits 01 before - -- [Steve Holme brought this change] - - SMTP: Fixed error when using CURLOPT_CONNECT_ONLY - - Fixed incorrect behavior in smtp_done() which would cause the end of - block data to be sent to the SMTP server if libcurl was operating in - connect only mode. This would cause the server to return an error as - data would not be expected which in turn caused libcurl to return - CURLE_RECV_ERROR. - -- s/7.24.1/7.25.0 - - We will go straight to 7.25.0 due to the new additions - -- curlver.h: bumped to 7.25.0 - - and updated the end year in the generic copyright string - -- RELEASE-NOTES: synced with 2b26eb985 - - 9 bug fixes, 4 changes and numerous contributors - - Bumped release version and option counters - -- [Colin Hogben brought this change] - - configure: add option disable --libcurl output - -- [Alessandro Ghedini brought this change] - - curl tool: allow negative numbers as option values - - Fix the str2num() function to not check if the input string starts with a - digit, since strtol() supports numbers prepended with '-' (and '+') too. - This makes the --max-redirs option work as documented. - -- parse_proxy: simply memory handling - - ... by making sure that the string is always freed after the invoke as - parse_proxy will always copy the data and this way there's a single - free() instead of multiple ones. - -- parse_proxy: bail out on zero-length proxy names! - - The proxy parser function strips off trailing slashes off the proxy name - which could lead to a mistaken zero length proxy name which would be - treated as no proxy at all by subsequent functions! - - This is now detected and an error is returned. Verified by the new test - 1329. - - Reported by: Chandrakant Bagul - Bug: http://curl.haxx.se/mail/lib-2012-02/0000.html - -Kamil Dudka (9 Feb 2012) -- nss: add support for the CURLSSLOPT_ALLOW_BEAST option - - ... and fix some typos from the 62d15f1 commit. - -Daniel Stenberg (9 Feb 2012) -- [Rob Ward brought this change] - - configure: don't modify LD_LIBRARY_PATH for cross compiles - -- --ssl-allow-beast added - - This new option tells curl to not work around a security flaw in the - SSL3 and TLS1.0 protocols. It uses the new libcurl option - CURLOPT_SSL_OPTIONS with the CURLSSLOPT_ALLOW_BEAST bit set. - -- CURLOPT_SSL_OPTIONS: added - - Allow an appliction to set libcurl specific SSL options. The first and - only options supported right now is CURLSSLOPT_ALLOW_BEAST. - - It will make libcurl to disable any work-arounds the underlying SSL - library may have to address a known security flaw in the SSL3 and TLS1.0 - protocol versions. - - This is a reaction to us unconditionally removing that behavior after - this security advisory: - - http://curl.haxx.se/docs/adv_20120124B.html - - ... it did however cause a lot of programs to fail because of old - servers not liking this work-around. Now programs can opt to decrease - the security in order to interoperate with old servers better. - -- [Dave Reisner brought this change] - - curl: use new library-side TCP_KEEPALIVE options - - Use the new library CURLOPT_TCP_KEEPALIVE rather than disabling this via - the sockopt callback. If --keepalive-time is used, apply the value to - CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL. - -- [Dave Reisner brought this change] - - add library support for tuning TCP_KEEPALIVE - - This adds three new options to control the behavior of TCP keepalives: - - - CURLOPT_TCP_KEEPALIVE: enable/disable probes - - CURLOPT_TCP_KEEPIDLE: idle time before sending first probe - - CURLOPT_TCP_KEEPINTVL: delay between successive probes - - While not all operating systems support the TCP_KEEPIDLE and - TCP_KEEPINTVL knobs, the library will still allow these options to be - set by clients, silently ignoring the values. - -- curl_easy_reset: reset the referer string - - When CURLOPT_REFERER has been used, curl_easy_reset() did not properly - clear it. - - Verified with the new test 598 - - Bug: http://curl.haxx.se/bug/view.cgi?id=3481551 - Reported by: Michael Day - -Yang Tse (7 Feb 2012) -- curl tool: allow glob-loops to abort again upon critical errors - - This prevents clobbering of non recoverable error return codes while - retaining intended functionality of commit 65103efe - -Daniel Stenberg (6 Feb 2012) -- curl tool: don't abort glob-loop due to failures - - We want to continue to the next URL to try even on failures returned - from libcurl. This makes -f with ranges still get subsequent URLs even - if occasional ones return error. This was a regression as it used to - work and broke in the 7.23.0 release. - - Added test case 1328 to verify the fix. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3481223 - Reported by: Juan Barreto - -- CONNECT: send correct Host: with IPv6 numerical address - - When the target host was given as a IPv6 numerical address, it was not - properly put within square brackets for the Host: header in the CONNECT - request. The "normal" request did fine. - - Reported by: "zooloo" - Bug: http://curl.haxx.se/bug/view.cgi?id=3482093 - -- [Martin Storsjo brought this change] - - Explicitly link to the nettle/gcrypt libraries - - When support for nettle was added in 64f328c787ab, I overlooked - the fact that AC_CHECK_LIB doesn't add the tested lib to LIBS - if the check succeeded, if a custom success code block was present. - (The previous version of the check had an empty block for - successful checks, adding the lib to LIBS implicitly.) - - Therefore, explicitly add either nettle or gcrypt to LIBS, after - deciding which one to use. Even if they can be linked in - transitively, it is safer to actually link explicitly to them. - - This fixes building with gnutls with linkers that don't allow - linking transitively, such as for windows. - -- [Pierre Ynard brought this change] - - more resilient connection times among IP addresses - - When connecting to a domain with multiple IP addresses, allow different, - decreasing connection timeout values. This should guarantee some - connections attempts with sufficiently long timeouts, while still - providing fallback. - -- [Pierre Ynard brought this change] - - remove write-only variable - -Pierre Joye (26 Jan 2012) -- Merge branch 'master' of github.com:bagder/curl - -- - fix IPV6 and IDN options - -Yang Tse (25 Jan 2012) -- TODO-RELEASE: added item #308 - -Daniel Stenberg (25 Jan 2012) -- THANKS: imported contributors from 7.24.0 RELEASE-NOTES - -Yang Tse (25 Jan 2012) -- test harness: update stunnel.pem Diffie-Hellman parameters from 512 to 1024 bit - -- version: start working on 7.24.1-DEV - -Dan Fandrich (24 Jan 2012) -- curl_easy_setopt.3: Fixed SEEKDATA & CLOSESOCKETDATA descriptions - -Version 7.24.0 (24 Jan 2012) - -Daniel Stenberg (24 Jan 2012) -- RELEASE-NOTES: synced with 70f71bb99f7ed9 - - Synced and prepared for 7.24.0 release. Two security problems, one bug fix, - two more contributors. - -- gnutls: enforced use of SSLv3 - - With advice from Nikos Mavrogiannopoulos, changed the priority string to - add "actual priorities" and favour ARCFOUR. This makes libcurl work - better when enforcing SSLv3 with GnuTLS. Both in the sense that the - libmicrohttpd test is now working again but also that it mitigates a - weakness in the older SSL/TLS protocols. - - Bug: http://curl.haxx.se/mail/lib-2012-01/0225.html - Reported by: Christian Grothoff - -- tests: test CRLF in URLs - - Related to the security vulnerability: CVE-2012-0036 - - Bug: http://curl.haxx.se/docs/adv_20120124.html - -- URL sanitize: reject URLs containing bad data - - Protocols (IMAP, POP3 and SMTP) that use the path part of a URL in a - decoded manner now use the new Curl_urldecode() function to reject URLs - with embedded control codes (anything that is or decodes to a byte value - less than 32). - - URLs containing such codes could easily otherwise be used to do harm and - allow users to do unintended actions with otherwise innocent tools and - applications. Like for example using a URL like - pop3://pop3.example.com/1%0d%0aDELE%201 when the app wants a URL to get - a mail and instead this would delete one. - - This flaw is considered a security vulnerability: CVE-2012-0036 - - Security advisory at: http://curl.haxx.se/docs/adv_20120124.html - - Reported by: Dan Fandrich - -- OpenSSL: don't disable security work-around - - OpenSSL added a work-around for a SSL 3.0/TLS 1.0 CBC vulnerability - (http://www.openssl.org/~bodo/tls-cbc.txt). In 0.9.6e they added a bit - to SSL_OP_ALL that _disables_ that work-around despite the fact that - SSL_OP_ALL is documented to do "rather harmless" workarounds. - - The libcurl code uses the SSL_OP_ALL define and thus logically always - disables the OpenSSL fix. - - In order to keep the secure work-around workding, the - SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS bit must not be set and this change - makes sure of this. - - Reported by: product-security at Apple - -- RELEASE-NOTES: synced with 6e2fd2c9ea - - 3 more bugfixes, 3 more contributors - -- CURLOPT_ACCEPTTIMEOUT_MS: spellfix - -Dan Fandrich (20 Jan 2012) -- examples: updated README with two new example programs - -Daniel Stenberg (20 Jan 2012) -- URL parse: user name with ipv6 numerical address - - Using a URL with embedded user name and password didn't work if the host - was given as a numerical IPv6 string, like ftp://user:password@[::1]/ - - Reported by: Brandon Wang - Bug: http://curl.haxx.se/mail/archive-2012-01/0047.html - -Yang Tse (20 Jan 2012) -- telnet.c: fix OOM triggered segfault - -- testtrace.c: fix compiler warning - -- OpenSSL: follow-up for commit a20daf90e3 - - avoid checking preprocessor definition official value - -Pierre Joye (19 Jan 2012) -- - s, use, enable, for options name, avoiding conflicts with the names used in the makefile - -Daniel Stenberg (19 Jan 2012) -- curl.1: improve --stderr wording - - As is pointed out in this bug report, there can indeed be situation - where --stderr has a point even when the "real" stderr can be - redirected. Remove the superfluous and wrong comment. - - bug: http://curl.haxx.se/bug/view.cgi?id=3476020 - -- KNOWN_BUGS: can't receive zero bytes file properly - - http://curl.haxx.se/bug/view.cgi?id=3438362 - -Yang Tse (18 Jan 2012) -- ssl session caching: fix compiler warnings - -Daniel Stenberg (18 Jan 2012) -- polarssl: show cipher suite name correctly with 1.1.0 - - Apparently ssl_get_ciphersuite() is needed to get the name of the used - cipher suite. - -- polarssl: show error code correctly - - The value was turned negative when it shouldn't have been - -- polarssl: havege_rand is not present in version 1.1.0 - - ... it is now named havege_random! - - Reported by: Robert Schumann - Bug: http://curl.haxx.se/mail/lib-2012-01/0178.html - -- RELEASE-NOTES: synced with 5d70a61b94604 - - 5 more bug fixes, 1 more contributor - -- [Colin Hogben brought this change] - - Add two tests for telnet: URLs - - Add simple telnet tests which (ab)use the http server. - The second test checks for an input file handling bug. - -- [Colin Hogben brought this change] - - Remove bogus optimisation of telnet upload. - - Remove wrongly implemented optimisation of telnet upload, apparently - intended to allow the library to avoid manually polling for input. - -- [Colin Hogben brought this change] - - Use correct file descriptor for telnet upload. - - Fix a bug where input was read from stdin even when a different FILE * - had been configured via CURLOPT_READDATA - -Yang Tse (18 Jan 2012) -- OpenLDAP: fix LDAP connection phase memory leak - - bug: http://curl.haxx.se/bug/view.cgi?id=3474308 - -- [Johannes Bauer brought this change] - - OpenSSL: fix PKCS#12 certificate parsing related memory leak - - Leak triggered when CURLOPT_SSLCERTTYPE and CURLOPT_SSLKEYTYPE set to P12 - and both CURLOPT_SSLCERT and CURLOPT_SSLKEY point to the same PKCS#12 file. - -- OpenSSL: SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG option is no longer enabled - - SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG option enabling allowed successfull - interoperability with web server Netscape Enterprise Server 2.0.1 released - back in 1996 more than 15 years ago. - - Due to CVE-2010-4180, option SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG has - become ineffective as of OpenSSL 0.9.8q and 1.0.0c. In order to mitigate - CVE-2010-4180 when using previous OpenSSL versions we no longer enable - this option regardless of OpenSSL version and SSL_OP_ALL definition. - -- tests: enable time tracing on tests 500, 573 and 585 - -- tests: testtrace.[ch] provides debug callback for libtest usage - - Allows tests from the libtest subdir to generate log traces - similar to those of curl with --tracetime and --trace-ascii - options but with output going to stderr. - -- sws.c: fix proxy mode secondary connection monitoring condition - -- add LF termination to infof() trace string - -- sws.c: improve proxy mode torture testing support - followup to 18c6c8a5 - -Daniel Stenberg (16 Jan 2012) -- url2file: new simple example - - Just showing how to download the contents of a given URL into a local - file. - - Based on a suggestion and example code by Georg Potthast - -- imap.c: a dead simple imap example - - Just to show that IMAP is used just like other protocols - -Yang Tse (16 Jan 2012) -- sws.c: improve proxy mode torture testing support - followup to c731fc58 - -- sws.c: improve proxy mode torture testing support - followup to d4bf87dc - -- Curl_proxyCONNECT() trace known bug #39 - -Daniel Stenberg (14 Jan 2012) -- test: verify HTTP response code 308 - - This newly speced HTTP status code already works as intended in the new - spec: - http://greenbytes.de/tech/webdav/draft-reschke-http-status-308-02.html - - Test 1325 is added to verify that the method is kept after the redirect - -Yang Tse (13 Jan 2012) -- http_negotiate_sspi.c: fix compiler warning - -- ssh.c: fix compiler warning - -- sws.c: improve proxy mode torture testing support - -Daniel Stenberg (12 Jan 2012) -- RELEASE-NOTES: synced with 9f20379fe4 - - 5 bug fixes, 3 more contributors - -- hostip: avoid getaddrinfo when c-ares is used - - Some functions using getaddrinfo and gethostbyname were still - mistakingly being used/linked even if c-ares was selected as resolver - backend. - - Reported by: Arthur Murray - Bug: http://curl.haxx.se/mail/lib-2012-01/0160.html - -Yang Tse (9 Jan 2012) -- sws.c: replace sleep() usage with wait_ms() - -Daniel Stenberg (9 Jan 2012) -- [gsengun brought this change] - - FTP: CURLE_PARTIAL_FILE should not cause control connection to be closed - - Test 161 updated accordingly - -Yang Tse (8 Jan 2012) -- sws.c: some compiler warning fixes - -- lib/setup.h: portable symbolic names for Winsock shutdown() mode flags - -- sws.c: 812fa73057 follow-up - -- sws.c: some IPv6 proxy mode peparatory adjustments - -Daniel Stenberg (5 Jan 2012) -- curl.h: provide backwards compatible symbols - - In commit c834213ad52 we re-used some obsolete error codes, and here are - two defines that makes sure existing source codes that happen to use any - of these deprecated ones will still compile. - - As usual, define CURL_NO_OLDIES to avoid getting these "precaution - defines". - -- win32-threaded-resolver: stop using a dummy socket - - Previously the code would create a dummy socket while resolving just to - have curl_multi_fdset() return something but the non-win32 version - doesn't do it this way and the creation and use of a socket that isn't - made with the common create-socket callback can be confusing to apps - using the multi_socket API etc. - - This change removes the dummy socket and thus will cause - curl_multi_fdset() to return with maxfd == -1 more often. - -- [Peter Sylvester brought this change] - - OpenSSL: remove reference to openssl internal struct - - With this change, curl compiles with the new OPENSSL_NO_SSL_INTERN - cflag. This flag might become the default in some distant future. - -Yang Tse (4 Jan 2012) -- test1320 test1321: avoid User-Agent comparison - -- httpserver.pl: reorder sws command line options - - make 'pidfile' and 'logfile' options appear first on command line in order - to ensure that processing of other options which write to logfile do this - to intended file and not the default one. - -- sws.c: fix proxy mode segfault - -- tool_formparse.c: fix compiler warning: enumerated type mixed with another type - -- krb5.c: fix compiler warning: variable set but not used - -Daniel Stenberg (4 Jan 2012) -- KNOWN_BUGS: #77 CURLOPT_FORBID_REUSE kills NTLM - -- [Steve Holme brought this change] - - Fixed use of CURLUSESSL_TRY for POP3 and IMAP based connections. - - Fixed a problem in POP3 and IMAP where a connection would fail when - CURLUSESSL_TRY was specified for a server that didn't support - SSL/TLS connections rather than continuing. - -- [Steve Holme brought this change] - - Fixed incorrect error code being returned in STARTTLS - - The STARTTLS response code in SMTP, POP3 and IMAP would return - CURLE_LOGIN_DENIED rather than CURLE_USE_SSL_FAILED when SSL/TLS - was not available on the server. - - Reported by: Gokhan Sengun - Bug: http://curl.haxx.se/mail/lib-2012-01/0018.html - -- curl_easy_setopt: refer to the most recent URI RFC - -- RELEASE-NOTES: synced with 2f4a487a68 - - Two bugfixes, two more contributors - -- tests: test IMAP, POP3 and SMTP over HTTP proxy tunnel - -- test proxy supports CONNECT - - There's a new 'http-proxy' server for tests that runs on a separate port - and lets clients do HTTP CONNECT to other ports on the same host to - allow us to test HTTP "tunneling" properly. - - Test cases now have a section in to check that the - proxy protocol part matches correctly. - - Test case 80, 83, 95, 275, 503 and 1078 have been converted. Test 1316 - was added. - -- curl_easy_strerror.3: minor synopsis edit of the look - -Yang Tse (2 Jan 2012) -- hostip.c: fix potential write past the end of string buffer - -- hostip.c: fix Curl_loadhostpairs() OOM handling - -- runtests.pl: on test failure, don't show trace log files of other tests - -Daniel Stenberg (1 Jan 2012) -- Curl_input_negotiate: use the correct buffer for input - - Unfortunately we have no test cases for this and I have no SSPI build or - server to verify this with. The change seems simple enough though. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3466497 - Reported by: Patrice Guerin - -- runtests: put trace outputs in log/trace[num] for all tests - -- just a stupid typo - -- SFTP dir: increase buffer size counter - - When the buffer gets realloced to hold the file name in the - SSH_SFTP_READDIR_LINK state, the counter was not bumped accordingly. - - Reported by: Armel Asselin - Patch by: Armel Asselin - Bug: http://curl.haxx.se/mail/lib-2011-12/0249.html - -- RELEASE-NOTES: synced with 81ebdd9e287 - - 6 more bugfixes, 3 more contributors - -- create_hostcache_id: use the key lower cased - - ... to make sure the DNS cache is properly case insensitive - -- changed case: use new host name for subsequent HTTP requests - - When a HTTP connection is re-used for a subsequent request without - proxy, it would always re-use the Host: header of the first request. As - host names are case insensitive it would make curl send another host - name case that what the particular request used. - - Now it will instead always use the most recent host name to always use - the desired casing. - - Added test case 1318 to verify. - - Bug: http://curl.haxx.se/mail/lib-2011-12/0314.html - Reported by: Alex Vinnik - -- CURLOPT_RESOLVE: avoid adding already present host names - - The load host names to DNS cache function was moved to hostip.c and it - now makes sure to not add host names that already are present in the - cache. It would previously lead to memory leaks when for example using - the --resolve and multiple URLs on the command line. - -Dan Fandrich (31 Dec 2011) -- runtests.pl: Use logmsg more consistently - -Daniel Stenberg (30 Dec 2011) -- [Alessandro Ghedini brought this change] - - examples: update README, Makefile.inc and gitignore with pop3s examples - -- [Alessandro Ghedini brought this change] - - examples: add a couple of simple pop3s examples - - These examples show how to fetch a single message (RETR command) and how to - list all the messages in a given mailbox (LIST command), with authentication - via SSL. - - They were both based on the https.c example. - -Yang Tse (30 Dec 2011) -- removed execute file permission - -- removed trailing whitespace - -- ftpserver.pl: arbitrary application data splitting among TCP packets [II] - - Take in account that 'pingpong' server commands may arrive splitted among - several sockfilt 'DATA' PDU's. - -- ftpserver.pl: arbitrary application data splitting among TCP packets [I] - - Initial step in order to allow our pingpong server to better support arbitrary - application data splitting among TCP packets. This first commit only addresses - reasembly of data that sockfilter processes reads from soockets and pingpong - server later reads from sockfilters stdout. - -- testcurl.pl: 82c344a3 follow-up - -- testcurl.pl: log ACLOCAL_FLAGS - -- testcurl.pl: third party m4 warnings filtering adjustment - - Make testcurl.pl ignore messages pertaining to third party m4 files we don't - care nor use on a file basis policy while retaining all other warnings. - - This closes temporary commit e71e226f - -Kamil Dudka (25 Dec 2011) -- transfer: avoid unnecessary timeout event when waiting for 100-continue - - The commit 9dd85bc unintentionally changed the way we compute the time - spent waiting for 100-continue. In particular, when using a SSL client - certificate, the time spent by SSL handshake was included and could - cause the CURL_TIMEOUT_EXPECT_100 timeout to be mistakenly fired up. - - Bug: https://bugzilla.redhat.com/767490 - Reported by: Mamoru Tasaka - -Yang Tse (25 Dec 2011) -- transfer.c: move a logging statement placement - -- hash.c: fix OOM triggered segfault - -Daniel Stenberg (24 Dec 2011) -- ftp_do_more: don't return success until all is done - - ftp_do_more() returns after accepting the server connect however it - needs to fall through and set "*complete" to TRUE before exit from the - function. - - Bug: http://curl.haxx.se/mail/lib-2011-12/0250.html - Reported by: Gokhan Sengun - -- Curl_do_more: fix typo logic - - In the recent do_more fix the new logic was mistakenly checking the - pointer instead of what it points to. - - Reported by: Gokhan Sengun - Bug: http://curl.haxx.se/mail/lib-2011-12/0250.html - -- SFTP mkdir: use correct permission - - When sending quote command to a SFTP server and 'mkdir' was used, it - would send fixed permissions and not use the CURLOPT_NEW_DIRECTORY_PERMS - as it should. - - Reported by: Armel - Patch by: Armel - Bug: http://curl.haxx.se/mail/lib-2011-12/0249.html - -Yang Tse (23 Dec 2011) -- buildconf: minor tweaks commit 430527a1 follow-up - -Daniel Stenberg (23 Dec 2011) -- [Colin Hogben brought this change] - - Require a less ancient version of perl - - The INTERNALS document suggested that compatibility should be - maintained with perl version 4, but this was untrue - scripts such as - chksource.pl and runtests.pl use perl5-isms. - -- resolve: don't leak pre-populated dns entries - - CURLOPT_RESOLVE populates the DNS cache with entries that are marked as - eternally in use. Those entries need to be taken care of when the cache - is killed off. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3463121 - Reported by: "tw84452852" - -- new test: verify --resolve - - Test 1317 verifies --resolve (leaked memory) - - Bug: http://curl.haxx.se/bug/view.cgi?id=3463121 - Reported by: "tw84452852" - -Yang Tse (23 Dec 2011) -- testcurl.pl: temporary change - - Allow autobuilds to run a couple of days without filtering out aclocal - underquoted definition warnings. - -Daniel Stenberg (21 Dec 2011) -- operate: removed a single trailing space - -Dan Fandrich (21 Dec 2011) -- --retry: Retry transfers on timeout and DNS errors - -Yang Tse (21 Dec 2011) -- buildconf: minor tweaks - -- formdata.c: OOM handling fixes - -Daniel Stenberg (21 Dec 2011) -- TODO: 1.7 Happy Eyeball dual stack connect - -Dan Fandrich (20 Dec 2011) -- runtests.pl: Fixed perl warning when using the -l option - -Daniel Stenberg (20 Dec 2011) -- RELEASE-NOTES: added two references - -- Curl_socket_check: enlarge poll struct array to 3 - - This function was introduced in commit 5527417afae0 and as pointed out - by Gokhan Sengun, the array with poll structs must large enough to hold - 3 sockets since that is what the function can accept. It could be noted - that he had this fixed in his patch as posted in - http://curl.haxx.se/mail/lib-2011-12/0179.html - - Bug: http://curl.haxx.se/mail/lib-2011-12/0228.html - Reported by: Gokhan Sengun - -- RELEASE-NOTES: synced with 380bade777 - - 5 new bugfixes, 2 new changes and 4 new contributors - -- TODO: remove active FTP from section 2.1 - - It is no longer done blocking in the multi interface - -- libcurl docs: add the new FTP accept option + errors - -- timeleft_accept: ack global timeout, moved to ftp.c - - First off the timeout for accepting a server connect back must of course - respect a global timeout. Then the timeleft function is only used by ftp - code so it was moved to ftp.c and made static. - -- libcurl-tutorial.3: curl doesn't sent pragma no-cache - - It did a long time ago - -- libcurl-multi.3: active FTP is no longer blocking! - -- FTP: move FTP-specific struct field to ftpc_conn - - "wait_data_conn" was added to the connectionbits in commit c834213ad5 for - handling active FTP connections but as it is purely FTP specific and now - only ever accessed by ftp.c I moved it into the FTP connection struct. - -- non-blocking active FTP: cleanup multi state usage - - Backpedaled out the funny double-change of state in the multi state - machine by adding a new argument to the do_more() function to signal - completion. This way it can remain in the DO_MORE state properly until - done. Long term, the entire DO_MORE logic should be moved into the FTP - code and be hidden from the multi code as the logic is only used for - FTP. - -- [Gokhan Sengun brought this change] - - FTP: perform active connections non-blocking - - 1- Two new error codes are introduced. - - CURLE_FTP_ACCEPT_FAILED to be set whenever ACCEPTing fails because of - FTP server connected. - - CURLE_FTP_ACCEPT_TIMEOUT to be set whenever ACCEPTing timeouts. - - Neither of these errors are considered fatal and control connection - remains OK because it could just be a firewall blocking server to - connect to the client. - - 2- One new setopt option was introduced. - - CURLOPT_ACCEPTTIMEOUT_MS - - It sets the maximum amount of time FTP client is going to wait for a - server to connect. Internal default accept timeout is 60 seconds. - -- sockets: new Curl_socket_check() can wait for 3 sockets - - This offers an alternative to the existing Curl_socket_ready() API which - only checks one socket for read and one for write. - -- [CeÌdric Deltheil brought this change] - - curl.h: add __ANDROID__ macro check - - When working with the Android Standalone Toolchain the compiler defines - this macro: - - /path/to/arm-linux-androideabi-gcc -E -dM - < /dev/null \ - | grep -i android - #define __ANDROID__ 1 - - We really need to check both ANDROID and __ANDROID__ since I've observed - that: - - * if you use Android.mk file(s) and the 'ndk-build' script (aka vanilla - way), ANDROID is predefined (see -DANDROID extra C flag), - - * if you use the Android Standalone Toolchain, then __ANDROID__ is - predefined as stated by the compiler - -- lib500: verify timers relative each other - - As commit ce896875f8 fixed a timer that accidentally had been moved in - code and then returned a bad timer, the lib500.c code (used in test 500 - and some others) now verifies 5 timers against each other to verify that - they have the correct relative values. We cannot compare against - absolute values as the timings will vary a lot. - -- Curl_pgrsTime: store now in an auto variable - - It makes it easier to introduce debug outputs in this function, and - everything in the function is using the value anyway so it might even be - more efficient. - -- timer: restore PRETRANSFER timing - - Regression introduced in 7.23.0 with commit 9dd85bce. The function in - which the PRETRANSFER time stamp was recorded was moved in time causing - it be stored very quickly after the start timestamp. On most systems - shorter than 1 millisecond and thus it wouldn't even show with -w - "%{time_pretransfer}" using the command line tool. - - Bug: http://curl.haxx.se/mail/archive-2011-12/0022.html - Reported by: Toni Moreno - -- [Bernhard Reutner-Fischer brought this change] - - libcurl.m4: Fix quoting arguments of AC_LANG_PROGRAM - - Parameters were underquoted, resulting in - warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body - - Signed-off-by: Bernhard Reutner-Fischer - -- gitignore: ignore the symbol versioning file - -- tutorial: remove CURLM_CALL_MULTI_PERFORM add sharing - - The CURLM_CALL_MULTI_PERFORM reference is an old leftover I had to - remove. - - I also added some blurb to the previously blank "sharing" section. - -- [Alessandro Ghedini brought this change] - - configure: add symbols versioning option - - Allow, at configure time, the production of versioned symbols. The - symbols will look like "CURL__ ", where - represents the SSL flavour (e.g. OPENSSL, GNUTLS, NSS, ...), - is the major SONAME version and is the actual symbol - name. If no SSL library is enabled the symbols will be just - "CURL_ ". - -- [Sven Wegener brought this change] - - Use Curl_ssl_connect for non-blocking connect fallback - - This gets the appconnect time right for ssl backends, which don't - support non-blocking connects. - - Signed-off-by: Sven Wegener - -- RELEASE-NOTES: synced with af9bc1604c1 - - One new feature, one bug fix. Introduced references in this file for - mentioned issues after this discussion: - http://curl.haxx.se/mail/lib-2011-12/0187.html - - The plan is to let the references get moved over to the changes.html - file at release-time - -- curl.1: minor white space cleanup - -- [Alessandro Ghedini brought this change] - - docs: improve description of the --capath option - - Document the possibility of providing multiple values using the ":" - separator, and the fact that the default value will be ignored if the - option is used. - -- [Steve Holme brought this change] - - DOCS: Added SMTP information to CURLOPT_INFILESIZE - -- Curl_proxyCONNECT: use newlines in debug output - -- curl -F: fix multiple file upload with custom type - - Test case 1315 was added to verify this functionality. When passing in - multiple files to a single -F, the parser would get all confused if one - of the specified files had a custom type= assigned. - - Reported by: Colin Hogben - -- [Colin Hogben brought this change] - - New test for multiple file upload - - test 1315 checks correct behaviour when uploading multiple files. - Buggy behaviour has been seen where only two attachments are sent. - -Yang Tse (15 Dec 2011) -- configure: libtool 1.5 tweaks - -Daniel Stenberg (15 Dec 2011) -- [Colin Hogben brought this change] - - Correct substitution var names - - Two variable names were wrong in the documentation. - -- [Colin Hogben brought this change] - - Correct default upload mimetype in manual - - The default content-type for file uploads is application/octet-stream, - not text/plain as stated in the MANUAL. - -- [Alessandro Ghedini brought this change] - - docs: fix typo in curl_easy_setopt manpage - -Yang Tse (13 Dec 2011) -- if2ip.[ch]: fix compilation with MinGW - - Avoid 'interface' literal that some MinGW versions define as a macro - -- connect.c: fix compiler warning 'enumerated type is mixed with another type' - -- if2ip.c: fix compiler warning 'unused parameter' - -- pop3.c: fix compiler warning variable may be used uninitialized - -- if2ip.c: fix compiler warning 'enumerated type is mixed with another type' - -Daniel Stenberg (12 Dec 2011) -- [Jason Glasgow brought this change] - - CURLOPT_INTERFACE: avoid resolving interfaces names - - Do not try to resolve interfaces names via DNS by recognizing interface - names in a few ways. If the interface option argument has a prefix of - "if!" then treat the argument as only an interface. Similarly, if the - interface argument is the name of an interface (even if it does not have - an IP address assigned), treat it as an interface name. Finally, if the - interface argument is prefixed by "host!" treat it as a hostname that - must be resolved by /etc/hosts or DNS. - - These changes allow a client using the multi interfaces to avoid - blocking on name resolution if the interface loses its IP address or - disappears. - -- RELEASE-NOTES: synced with 1259ccf7474 - - 5 more bugfixes, 5 more contributors - -- [Steve Holme brought this change] - - ConnectionExists: Fix reuse for TLS upgraded connections - - Fixed the connection reuse detection in ConnectionExists() when - comparing a new connection that is non-SSL based against that of a SSL - based connection that has become so by being upgraded via TLS. - -- create_conn: don't switch to HTTP protocol if tunneling is enabled - - This is a regression since who knows when. When spotting that a HTTP - proxy is used we must not uncondititionally enable the HTTP protocol - since if we do tunneling through the proxy we're still using the target - protocol. - - Reported by: Naveen Chandran - -- FAQ: add --resolve details to question 3.19 - -- [Gokhan Sengun brought this change] - - Curl_closesocket: clear sock_accepted on close - - As a follow-up from commit d5b5f64bce3a8, clear the sock_accepted status - when such a socket is closed to avoid a re-used connection to retain the - state wrongly. - - Bug: http://curl.haxx.se/mail/lib-2011-12/0079.html - -- static SSL windows builds: add more libs to the link - - Starting with some recent OpenSSL versions (1.0.0e was mentioned) - linking with a static openssl requires a set of more libs to be linked - on Windows. - - Thanks also to Steve Holme and Martin Storsjö for additional feedback. - - Bug: http://curl.haxx.se/mail/lib-2011-12/0063.html - Reported by: Ward Willats - -- [Gokhan Sengun brought this change] - - multi interface: fix block when CONNECT_ONLY option is used - -Dan Fandrich (6 Dec 2011) -- Added some include files in a couple of example programs - - This improves portability of the examples. This patch was - submitted to the OpenBSD ports collection by naddy. - -Daniel Stenberg (6 Dec 2011) -- MakefileBuild: fix the static build - - This is a left-over fix from commit b7e242de0e that Tom Wright - suggested. - - Reported by: Ward Willats - -- OpenSSL: check for the SSLv2 function in configure - - If no SSLv2 was detected in OpenSSL by configure, then we enforce the - OPENSSL_NO_SSL2 define as it seems some people report it not being - defined properly in the OpenSSL headers. - -- CURLOPT_CONNECTTIMEOUT: default is 300 seconds - - If the option is set to 0, the default timeout will be used - which in - modern libcurl versions equals 300 seconds (== 5 minutes). - - Bug: http://curl.haxx.se/mail/lib-2011-12/0051.html - Reported by: Vladimir Grishchenko - -- [Rob Ward brought this change] - - progress function example: include timed interval - - Adds a timer based off of CURLINFO_TOTAL_TIME that is used to perform - certain actions after a minimum amount of time has passed using the - progress function. As a consequence the curl handle is now also passed - into the progress function. Progress example now also includes an - example of how to retreive the TOTAL_TIME and print it out. - -- RELEASE-NOTES: synced with 347f951c390 - - 8 more bugs, 5 more contributors - -- SSH: fix CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 - - When a 32 digit hex key is given as a hostkey md5 checksum, the code - would still run it against the knownhost check and not properly - acknowledge that the md5 should then be the sole guide for. - - The verbose output now includes the evaluated MD5 hostkey checksum. - - Some related source code comments were also updated. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3451592 - Reported by: Reza Arbab - -- Curl_resolver_is_resolved: differentiate between host/proxy errors - - As there are different return codes for host vs proxy errors, this function - now properly returns the code properly depending on what was attempted to get - resolved. - - Bug: http://curl.haxx.se/mail/archive-2011-12/0010.html - Reported by: Jason Liu - -- c-ares: return proxy failure for all proxy types - - When making a distinction which return code to return, the code previously - only regarded HTTP proxies to be proxies and thus return host-related errors - for failures on other proxy types than HTTP. Now all proxy types will be - considered proxies... - -- FTP: close callback fix - - Keep track of which sockets that are the result of accept() calls and - refuse to call the closesocket callback for those sockets. Test case 596 - now verifies that the open socket callback is called the same number of - times as the closed socket callback for active FTP connections. - - Bug: http://curl.haxx.se/mail/lib-2011-12/0018.html - Reported by: Gokhan Sengun - -- FTP: call opensocket callback properly - - When the new socket is created for an active connection, it is now done - using the open socket callback. - - Test case 596 was modified to run fine, although it hides the fact that - the close callback is still called too many times, as it also gets - called for closing sockets that were created with accept(). - -- Curl_socket: internal replacement for socket() - - Moved out into a separate function to work as a "generic" socket() - replacement. - -- test: verify the opensocket callback for FTP - - test 595: for passive FTP - test 596: for active FTP - -- [Jason Glasgow brought this change] - - CURLOPT_DNS_SERVERS: set name servers if possible (fix) - - Ensure that CURLE_OK is returned if setting the name servers is successfull. - -- multi interface: only use non-NULL function pointer! - - If the socket callback function pointer hasn't been set, we must not - attempt to use it. Commit adc88ca20 made it more likely to occur. - -- [Jason Glasgow brought this change] - - multi: handle timeouts on DNS servers by checking for new sockets - - If the first name server is not available, the multi interface does - not invoke the socket_cb when the DNS request to the first name server - timesout. Ensure that the list of sockets are always updated after - calling Curl_resolver_is_resolved. - - This bug can be reproduced if Curl is complied with --enable_ares and - your code uses the multi socket interfaces and the - CURLMOPT_SOCKETFUNCTION option. To test try: - iptables -I INPUT \ - -s $(sed -n -e '/name/{s/.* //p;q}' /etc/resolv.conf)/32 \ - -j REJECT - and then run a program which uses the multi-interface. - -- test 815: verify POP3 dot-first-on-line unescaping diff --git a/msvc-deps/curl/CMake/CMakeConfigurableFile.in b/msvc-deps/curl/CMake/CMakeConfigurableFile.in deleted file mode 100644 index 4cf74a12..00000000 --- a/msvc-deps/curl/CMake/CMakeConfigurableFile.in +++ /dev/null @@ -1,2 +0,0 @@ -@CMAKE_CONFIGURABLE_FILE_CONTENT@ - diff --git a/msvc-deps/curl/CMake/CurlCheckCSourceCompiles.cmake b/msvc-deps/curl/CMake/CurlCheckCSourceCompiles.cmake deleted file mode 100644 index b6327680..00000000 --- a/msvc-deps/curl/CMake/CurlCheckCSourceCompiles.cmake +++ /dev/null @@ -1,75 +0,0 @@ -# - Check if the source code provided in the SOURCE argument compiles. -# CURL_CHECK_C_SOURCE_COMPILES(SOURCE VAR) -# - macro which checks if the source code compiles -# SOURCE - source code to try to compile -# VAR - variable to store whether the source code compiled -# -# The following variables may be set before calling this macro to -# modify the way the check is run: -# -# CMAKE_REQUIRED_FLAGS = string of compile command line flags -# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) -# CMAKE_REQUIRED_INCLUDES = list of include directories -# CMAKE_REQUIRED_LIBRARIES = list of libraries to link - -macro(CURL_CHECK_C_SOURCE_COMPILES SOURCE VAR) - if("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN") - set(message "${VAR}") - # If the number of arguments is greater than 2 (SOURCE VAR) - if(${ARGC} GREATER 2) - # then add the third argument as a message - set(message "${ARGV2} (${VAR})") - endif(${ARGC} GREATER 2) - set(MACRO_CHECK_FUNCTION_DEFINITIONS - "-D${VAR} ${CMAKE_REQUIRED_FLAGS}") - if(CMAKE_REQUIRED_LIBRARIES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - else(CMAKE_REQUIRED_LIBRARIES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES) - endif(CMAKE_REQUIRED_LIBRARIES) - if(CMAKE_REQUIRED_INCLUDES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES - "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") - else(CMAKE_REQUIRED_INCLUDES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES) - endif(CMAKE_REQUIRED_INCLUDES) - set(src "") - foreach(def ${EXTRA_DEFINES}) - set(src "${src}#define ${def} 1\n") - endforeach(def) - foreach(inc ${HEADER_INCLUDES}) - set(src "${src}#include <${inc}>\n") - endforeach(inc) - - set(src "${src}\nint main() { ${SOURCE} ; return 0; }") - set(CMAKE_CONFIGURABLE_FILE_CONTENT "${src}") - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMake/CMakeConfigurableFile.in - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c" - IMMEDIATE) - message(STATUS "Performing Test ${message}") - try_compile(${VAR} - ${CMAKE_BINARY_DIR} - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c - COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} - "${CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}" - "${CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}" - OUTPUT_VARIABLE OUTPUT) - if(${VAR}) - set(${VAR} 1 CACHE INTERNAL "Test ${message}") - message(STATUS "Performing Test ${message} - Success") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Performing C SOURCE FILE Test ${message} succeded with the following output:\n" - "${OUTPUT}\n" - "Source file was:\n${src}\n") - else(${VAR}) - message(STATUS "Performing Test ${message} - Failed") - set(${VAR} "" CACHE INTERNAL "Test ${message}") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Performing C SOURCE FILE Test ${message} failed with the following output:\n" - "${OUTPUT}\n" - "Source file was:\n${src}\n") - endif(${VAR}) - endif("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN") -endmacro(CURL_CHECK_C_SOURCE_COMPILES) diff --git a/msvc-deps/curl/CMake/CurlCheckCSourceRuns.cmake b/msvc-deps/curl/CMake/CurlCheckCSourceRuns.cmake deleted file mode 100644 index 6b14af80..00000000 --- a/msvc-deps/curl/CMake/CurlCheckCSourceRuns.cmake +++ /dev/null @@ -1,83 +0,0 @@ -# - Check if the source code provided in the SOURCE argument compiles and runs. -# CURL_CHECK_C_SOURCE_RUNS(SOURCE VAR) -# - macro which checks if the source code runs -# SOURCE - source code to try to compile -# VAR - variable to store size if the type exists. -# -# The following variables may be set before calling this macro to -# modify the way the check is run: -# -# CMAKE_REQUIRED_FLAGS = string of compile command line flags -# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) -# CMAKE_REQUIRED_INCLUDES = list of include directories -# CMAKE_REQUIRED_LIBRARIES = list of libraries to link - -macro(CURL_CHECK_C_SOURCE_RUNS SOURCE VAR) - if("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN") - set(message "${VAR}") - # If the number of arguments is greater than 2 (SOURCE VAR) - if(${ARGC} GREATER 2) - # then add the third argument as a message - set(message "${ARGV2} (${VAR})") - endif(${ARGC} GREATER 2) - set(MACRO_CHECK_FUNCTION_DEFINITIONS - "-D${VAR} ${CMAKE_REQUIRED_FLAGS}") - if(CMAKE_REQUIRED_LIBRARIES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - else(CMAKE_REQUIRED_LIBRARIES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES) - endif(CMAKE_REQUIRED_LIBRARIES) - if(CMAKE_REQUIRED_INCLUDES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES - "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") - else(CMAKE_REQUIRED_INCLUDES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES) - endif(CMAKE_REQUIRED_INCLUDES) - set(src "") - foreach(def ${EXTRA_DEFINES}) - set(src "${src}#define ${def} 1\n") - endforeach(def) - foreach(inc ${HEADER_INCLUDES}) - set(src "${src}#include <${inc}>\n") - endforeach(inc) - - set(src "${src}\nint main() { ${SOURCE} ; return 0; }") - set(CMAKE_CONFIGURABLE_FILE_CONTENT "${src}") - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMake/CMakeConfigurableFile.in - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c" - IMMEDIATE) - message(STATUS "Performing Test ${message}") - try_run(${VAR} ${VAR}_COMPILED - ${CMAKE_BINARY_DIR} - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c - COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} - "${CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}" - "${CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}" - OUTPUT_VARIABLE OUTPUT) - # if it did not compile make the return value fail code of 1 - if(NOT ${VAR}_COMPILED) - set(${VAR} 1) - endif(NOT ${VAR}_COMPILED) - # if the return value was 0 then it worked - set(result_var ${${VAR}}) - if("${result_var}" EQUAL 0) - set(${VAR} 1 CACHE INTERNAL "Test ${message}") - message(STATUS "Performing Test ${message} - Success") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Performing C SOURCE FILE Test ${message} succeded with the following output:\n" - "${OUTPUT}\n" - "Return value: ${${VAR}}\n" - "Source file was:\n${src}\n") - else("${result_var}" EQUAL 0) - message(STATUS "Performing Test ${message} - Failed") - set(${VAR} "" CACHE INTERNAL "Test ${message}") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Performing C SOURCE FILE Test ${message} failed with the following output:\n" - "${OUTPUT}\n" - "Return value: ${result_var}\n" - "Source file was:\n${src}\n") - endif("${result_var}" EQUAL 0) - endif("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN") -endmacro(CURL_CHECK_C_SOURCE_RUNS) diff --git a/msvc-deps/curl/CMake/CurlTests.c b/msvc-deps/curl/CMake/CurlTests.c deleted file mode 100644 index 199871aa..00000000 --- a/msvc-deps/curl/CMake/CurlTests.c +++ /dev/null @@ -1,711 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2011, 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. - * - ***************************************************************************/ -#ifdef TIME_WITH_SYS_TIME -/* Time with sys/time test */ - -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} - -#endif - -#ifdef HAVE_FCNTL_O_NONBLOCK - -/* headers for FCNTL_O_NONBLOCK test */ -#include -#include -#include -/* */ -#if defined(sun) || defined(__sun__) || \ - defined(__SUNPRO_C) || defined(__SUNPRO_CC) -# if defined(__SVR4) || defined(__srv4__) -# define PLATFORM_SOLARIS -# else -# define PLATFORM_SUNOS4 -# endif -#endif -#if (defined(_AIX) || defined(__xlC__)) && !defined(_AIX41) -# define PLATFORM_AIX_V3 -#endif -/* */ -#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__) -#error "O_NONBLOCK does not work on this platform" -#endif - -int -main () -{ - /* O_NONBLOCK source test */ - int flags = 0; - if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK)) - return 1; - return 0; -} -#endif - -#ifdef HAVE_GETHOSTBYADDR_R_5 -#include -#include -int -main () -{ - -char * address; -int length; -int type; -struct hostent h; -struct hostent_data hdata; -int rc; -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -rc = gethostbyaddr_r(address, length, type, &h, &hdata); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYADDR_R_5_REENTRANT -#define _REENTRANT -#include -#include -int -main () -{ - -char * address; -int length;q -int type; -struct hostent h; -struct hostent_data hdata; -int rc; -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -rc = gethostbyaddr_r(address, length, type, &h, &hdata); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYADDR_R_7 -#include -#include -int -main () -{ - -char * address; -int length; -int type; -struct hostent h; -char buffer[8192]; -int h_errnop; -struct hostent * hp; - -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -hp = gethostbyaddr_r(address, length, type, &h, - buffer, 8192, &h_errnop); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYADDR_R_7_REENTRANT -#define _REENTRANT -#include -#include -int -main () -{ - -char * address; -int length; -int type; -struct hostent h; -char buffer[8192]; -int h_errnop; -struct hostent * hp; - -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -hp = gethostbyaddr_r(address, length, type, &h, - buffer, 8192, &h_errnop); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYADDR_R_8 -#include -#include -int -main () -{ - -char * address; -int length; -int type; -struct hostent h; -char buffer[8192]; -int h_errnop; -struct hostent * hp; -int rc; - -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -rc = gethostbyaddr_r(address, length, type, &h, - buffer, 8192, &hp, &h_errnop); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYADDR_R_8_REENTRANT -#define _REENTRANT -#include -#include -int -main () -{ - -char * address; -int length; -int type; -struct hostent h; -char buffer[8192]; -int h_errnop; -struct hostent * hp; -int rc; - -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -rc = gethostbyaddr_r(address, length, type, &h, - buffer, 8192, &hp, &h_errnop); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_3 -#include -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ - -struct hostent_data data; -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_3_REENTRANT -#define _REENTRANT -#include -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ - -struct hostent_data data; -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_5 -#include -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL, 0, NULL); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_5_REENTRANT -#define _REENTRANT -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ - -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL, 0, NULL); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_6 -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ - -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_6_REENTRANT -#define _REENTRANT -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ - -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL); - ; - return 0; -} -#endif -#ifdef HAVE_SOCKLEN_T -#ifdef _WIN32 -#include -#else -#include -#include -#endif -int -main () -{ -if ((socklen_t *) 0) - return 0; -if (sizeof (socklen_t)) - return 0; - ; - return 0; -} -#endif -#ifdef HAVE_IN_ADDR_T -#include -#include -#include - -int -main () -{ -if ((in_addr_t *) 0) - return 0; -if (sizeof (in_addr_t)) - return 0; - ; - return 0; -} -#endif - -#ifdef HAVE_BOOL_T -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_STDBOOL_H -#include -#endif -int -main () -{ -if (sizeof (bool *) ) - return 0; - ; - return 0; -} -#endif - -#ifdef STDC_HEADERS -#include -#include -#include -#include -int main() { return 0; } -#endif -#ifdef RETSIGTYPE_TEST -#include -#include -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -int -main () -{ - return 0; -} -#endif -#ifdef HAVE_INET_NTOA_R_DECL -#include - -typedef void (*func_type)(); - -int main() -{ -#ifndef inet_ntoa_r - func_type func; - func = (func_type)inet_ntoa_r; -#endif - return 0; -} -#endif -#ifdef HAVE_INET_NTOA_R_DECL_REENTRANT -#define _REENTRANT -#include - -typedef void (*func_type)(); - -int main() -{ -#ifndef inet_ntoa_r - func_type func; - func = (func_type)&inet_ntoa_r; -#endif - return 0; -} -#endif -#ifdef HAVE_GETADDRINFO -#include -#include -#include - -int main(void) { - struct addrinfo hints, *ai; - int error; - - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; -#ifndef getaddrinfo - (void)getaddrinfo; -#endif - error = getaddrinfo("127.0.0.1", "8080", &hints, &ai); - if (error) { - return 1; - } - return 0; -} -#endif -#ifdef HAVE_FILE_OFFSET_BITS -#ifdef _FILE_OFFSET_BITS -#undef _FILE_OFFSET_BITS -#endif -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main () { ; return 0; } -#endif -#ifdef HAVE_IOCTLSOCKET -/* includes start */ -#ifdef HAVE_WINDOWS_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# ifdef HAVE_WINSOCK2_H -# include -# else -# ifdef HAVE_WINSOCK_H -# include -# endif -# endif -#endif - -int -main () -{ - -/* ioctlsocket source code */ - int socket; - unsigned long flags = ioctlsocket(socket, FIONBIO, &flags); - - ; - return 0; -} - -#endif -#ifdef HAVE_IOCTLSOCKET_CAMEL -/* includes start */ -#ifdef HAVE_WINDOWS_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# ifdef HAVE_WINSOCK2_H -# include -# else -# ifdef HAVE_WINSOCK_H -# include -# endif -# endif -#endif - -int -main () -{ - -/* IoctlSocket source code */ - if(0 != IoctlSocket(0, 0, 0)) - return 1; - ; - return 0; -} -#endif -#ifdef HAVE_IOCTLSOCKET_CAMEL_FIONBIO -/* includes start */ -#ifdef HAVE_WINDOWS_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# ifdef HAVE_WINSOCK2_H -# include -# else -# ifdef HAVE_WINSOCK_H -# include -# endif -# endif -#endif - -int -main () -{ - -/* IoctlSocket source code */ - long flags = 0; - if(0 != ioctlsocket(0, FIONBIO, &flags)) - return 1; - ; - return 0; -} -#endif -#ifdef HAVE_IOCTLSOCKET_FIONBIO -/* includes start */ -#ifdef HAVE_WINDOWS_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# ifdef HAVE_WINSOCK2_H -# include -# else -# ifdef HAVE_WINSOCK_H -# include -# endif -# endif -#endif - -int -main () -{ - - int flags = 0; - if(0 != ioctlsocket(0, FIONBIO, &flags)) - return 1; - - ; - return 0; -} -#endif -#ifdef HAVE_IOCTL_FIONBIO -/* headers for FIONBIO test */ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -#ifdef HAVE_SYS_IOCTL_H -# include -#endif -#ifdef HAVE_STROPTS_H -# include -#endif - -int -main () -{ - - int flags = 0; - if(0 != ioctl(0, FIONBIO, &flags)) - return 1; - - ; - return 0; -} -#endif -#ifdef HAVE_IOCTL_SIOCGIFADDR -/* headers for FIONBIO test */ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -#ifdef HAVE_SYS_IOCTL_H -# include -#endif -#ifdef HAVE_STROPTS_H -# include -#endif -#include - -int -main () -{ - struct ifreq ifr; - if(0 != ioctl(0, SIOCGIFADDR, &ifr)) - return 1; - - ; - return 0; -} -#endif -#ifdef HAVE_SETSOCKOPT_SO_NONBLOCK -/* includes start */ -#ifdef HAVE_WINDOWS_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# ifdef HAVE_WINSOCK2_H -# include -# else -# ifdef HAVE_WINSOCK_H -# include -# endif -# endif -#endif -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -/* includes end */ - -int -main () -{ - if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0)) - return 1; - ; - return 0; -} -#endif -#ifdef HAVE_GLIBC_STRERROR_R -#include -#include -int -main () { - char buffer[1024]; /* big enough to play with */ - char *string = - strerror_r(EACCES, buffer, sizeof(buffer)); - /* this should've returned a string */ - if(!string || !string[0]) - return 99; - return 0; -} -#endif -#ifdef HAVE_POSIX_STRERROR_R -#include -#include -int -main () { - char buffer[1024]; /* big enough to play with */ - int error = - strerror_r(EACCES, buffer, sizeof(buffer)); - /* This should've returned zero, and written an error string in the - buffer.*/ - if(!buffer[0] || error) - return 99; - return 0; -} -#endif diff --git a/msvc-deps/curl/CMake/FindOpenSSL.cmake b/msvc-deps/curl/CMake/FindOpenSSL.cmake deleted file mode 100644 index 279428be..00000000 --- a/msvc-deps/curl/CMake/FindOpenSSL.cmake +++ /dev/null @@ -1,21 +0,0 @@ -# Extension of the standard FindOpenSSL.cmake -# Adds OPENSSL_INCLUDE_DIRS and libeay32 -include("${CMAKE_ROOT}/Modules/FindOpenSSL.cmake") - -# starting 2.8 it is better to use standard modules -if(CMAKE_MAJOR_VERSION EQUAL "2" AND CMAKE_MINOR_VERSION LESS "8") - # Bill Hoffman told that libeay32 is necessary for him: - find_library(SSL_LIBEAY NAMES libeay32) - - if(OPENSSL_FOUND) - if(SSL_LIBEAY) - list(APPEND OPENSSL_LIBRARIES ${SSL_LIBEAY}) - else() - set(OPENSSL_FOUND FALSE) - endif() - endif() -endif() # if (CMAKE_MAJOR_VERSION EQUAL "2" AND CMAKE_MINOR_VERSION LESS "8") - -if(OPENSSL_FOUND) - set(OPENSSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR}) -endif() diff --git a/msvc-deps/curl/CMake/FindZLIB.cmake b/msvc-deps/curl/CMake/FindZLIB.cmake deleted file mode 100644 index b2cfe187..00000000 --- a/msvc-deps/curl/CMake/FindZLIB.cmake +++ /dev/null @@ -1,10 +0,0 @@ -# Locate zlib -include("${CMAKE_ROOT}/Modules/FindZLIB.cmake") - -# starting 2.8 it is better to use standard modules -if(CMAKE_MAJOR_VERSION EQUAL "2" AND CMAKE_MINOR_VERSION LESS "8") - find_library(ZLIB_LIBRARY_DEBUG NAMES zd zlibd zdlld zlib1d ) - if(ZLIB_FOUND AND ZLIB_LIBRARY_DEBUG) - set( ZLIB_LIBRARIES optimized "${ZLIB_LIBRARY}" debug ${ZLIB_LIBRARY_DEBUG}) - endif() -endif() diff --git a/msvc-deps/curl/CMake/OtherTests.cmake b/msvc-deps/curl/CMake/OtherTests.cmake deleted file mode 100644 index 89d00484..00000000 --- a/msvc-deps/curl/CMake/OtherTests.cmake +++ /dev/null @@ -1,250 +0,0 @@ -include(CurlCheckCSourceCompiles) -set(EXTRA_DEFINES "__unused1\n#undef inline\n#define __unused2") -set(HEADER_INCLUDES) -set(headers_hack) - -macro(add_header_include check header) - if(${check}) - set(headers_hack - "${headers_hack}\n#include <${header}>") - #SET(HEADER_INCLUDES - # ${HEADER_INCLUDES} - # "${header}") - endif(${check}) -endmacro(add_header_include) - -set(signature_call_conv) -if(HAVE_WINDOWS_H) - add_header_include(HAVE_WINDOWS_H "windows.h") - add_header_include(HAVE_WINSOCK2_H "winsock2.h") - add_header_include(HAVE_WINSOCK_H "winsock.h") - set(EXTRA_DEFINES ${EXTRA_DEFINES} - "__unused7\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif\n#define __unused3") - set(signature_call_conv "PASCAL") -else(HAVE_WINDOWS_H) - add_header_include(HAVE_SYS_TYPES_H "sys/types.h") - add_header_include(HAVE_SYS_SOCKET_H "sys/socket.h") -endif(HAVE_WINDOWS_H) - -set(EXTRA_DEFINES_BACKUP "${EXTRA_DEFINES}") -set(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5") -curl_check_c_source_compiles("recv(0, 0, 0, 0)" curl_cv_recv) -if(curl_cv_recv) - # AC_CACHE_CHECK([types of arguments and return type for recv], - #[curl_cv_func_recv_args], [ - #SET(curl_cv_func_recv_args "unknown") - #for recv_retv in 'int' 'ssize_t'; do - if(NOT DEFINED curl_cv_func_recv_args OR "${curl_cv_func_recv_args}" STREQUAL "unknown") - foreach(recv_retv "int" "ssize_t" ) - foreach(recv_arg1 "int" "ssize_t" "SOCKET") - foreach(recv_arg2 "void *" "char *") - foreach(recv_arg3 "size_t" "int" "socklen_t" "unsigned int") - foreach(recv_arg4 "int" "unsigned int") - if(NOT curl_cv_func_recv_done) - set(curl_cv_func_recv_test "UNKNOWN") - set(extern_line "extern ${recv_retv} ${signature_call_conv} recv(${recv_arg1}, ${recv_arg2}, ${recv_arg3}, ${recv_arg4})\;") - set(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5") - curl_check_c_source_compiles(" - ${recv_arg1} s=0; - ${recv_arg2} buf=0; - ${recv_arg3} len=0; - ${recv_arg4} flags=0; - ${recv_retv} res = recv(s, buf, len, flags)" - curl_cv_func_recv_test - "${recv_retv} recv(${recv_arg1}, ${recv_arg2}, ${recv_arg3}, ${recv_arg4})") - if(curl_cv_func_recv_test) - set(curl_cv_func_recv_args - "${recv_arg1},${recv_arg2},${recv_arg3},${recv_arg4},${recv_retv}") - set(RECV_TYPE_ARG1 "${recv_arg1}") - set(RECV_TYPE_ARG2 "${recv_arg2}") - set(RECV_TYPE_ARG3 "${recv_arg3}") - set(RECV_TYPE_ARG4 "${recv_arg4}") - set(RECV_TYPE_RETV "${recv_retv}") - set(HAVE_RECV 1) - set(curl_cv_func_recv_done 1) - endif(curl_cv_func_recv_test) - endif(NOT curl_cv_func_recv_done) - endforeach(recv_arg4) - endforeach(recv_arg3) - endforeach(recv_arg2) - endforeach(recv_arg1) - endforeach(recv_retv) - else(NOT DEFINED curl_cv_func_recv_args OR "${curl_cv_func_recv_args}" STREQUAL "unknown") - string(REGEX REPLACE "^([^,]*),[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG1 "${curl_cv_func_recv_args}") - string(REGEX REPLACE "^[^,]*,([^,]*),[^,]*,[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG2 "${curl_cv_func_recv_args}") - string(REGEX REPLACE "^[^,]*,[^,]*,([^,]*),[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG3 "${curl_cv_func_recv_args}") - string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,([^,]*),[^,]*$" "\\1" RECV_TYPE_ARG4 "${curl_cv_func_recv_args}") - string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,[^,]*,([^,]*)$" "\\1" RECV_TYPE_RETV "${curl_cv_func_recv_args}") - #MESSAGE("RECV_TYPE_ARG1 ${RECV_TYPE_ARG1}") - #MESSAGE("RECV_TYPE_ARG2 ${RECV_TYPE_ARG2}") - #MESSAGE("RECV_TYPE_ARG3 ${RECV_TYPE_ARG3}") - #MESSAGE("RECV_TYPE_ARG4 ${RECV_TYPE_ARG4}") - #MESSAGE("RECV_TYPE_RETV ${RECV_TYPE_RETV}") - endif(NOT DEFINED curl_cv_func_recv_args OR "${curl_cv_func_recv_args}" STREQUAL "unknown") - - if("${curl_cv_func_recv_args}" STREQUAL "unknown") - message(FATAL_ERROR "Cannot find proper types to use for recv args") - endif("${curl_cv_func_recv_args}" STREQUAL "unknown") -else(curl_cv_recv) - message(FATAL_ERROR "Unable to link function recv") -endif(curl_cv_recv) -set(curl_cv_func_recv_args "${curl_cv_func_recv_args}" CACHE INTERNAL "Arguments for recv") -set(HAVE_RECV 1) - -curl_check_c_source_compiles("send(0, 0, 0, 0)" curl_cv_send) -if(curl_cv_send) - # AC_CACHE_CHECK([types of arguments and return type for send], - #[curl_cv_func_send_args], [ - #SET(curl_cv_func_send_args "unknown") - #for send_retv in 'int' 'ssize_t'; do - if(NOT DEFINED curl_cv_func_send_args OR "${curl_cv_func_send_args}" STREQUAL "unknown") - foreach(send_retv "int" "ssize_t" ) - foreach(send_arg1 "int" "ssize_t" "SOCKET") - foreach(send_arg2 "const void *" "void *" "char *" "const char *") - foreach(send_arg3 "size_t" "int" "socklen_t" "unsigned int") - foreach(send_arg4 "int" "unsigned int") - if(NOT curl_cv_func_send_done) - set(curl_cv_func_send_test "UNKNOWN") - set(extern_line "extern ${send_retv} ${signature_call_conv} send(${send_arg1}, ${send_arg2}, ${send_arg3}, ${send_arg4})\;") - set(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5") - curl_check_c_source_compiles(" - ${send_arg1} s=0; - ${send_arg2} buf=0; - ${send_arg3} len=0; - ${send_arg4} flags=0; - ${send_retv} res = send(s, buf, len, flags)" - curl_cv_func_send_test - "${send_retv} send(${send_arg1}, ${send_arg2}, ${send_arg3}, ${send_arg4})") - if(curl_cv_func_send_test) - #MESSAGE("Found arguments: ${curl_cv_func_send_test}") - string(REGEX REPLACE "(const) .*" "\\1" send_qual_arg2 "${send_arg2}") - string(REGEX REPLACE "const (.*)" "\\1" send_arg2 "${send_arg2}") - set(curl_cv_func_send_args - "${send_arg1},${send_arg2},${send_arg3},${send_arg4},${send_retv},${send_qual_arg2}") - set(SEND_TYPE_ARG1 "${send_arg1}") - set(SEND_TYPE_ARG2 "${send_arg2}") - set(SEND_TYPE_ARG3 "${send_arg3}") - set(SEND_TYPE_ARG4 "${send_arg4}") - set(SEND_TYPE_RETV "${send_retv}") - set(HAVE_SEND 1) - set(curl_cv_func_send_done 1) - endif(curl_cv_func_send_test) - endif(NOT curl_cv_func_send_done) - endforeach(send_arg4) - endforeach(send_arg3) - endforeach(send_arg2) - endforeach(send_arg1) - endforeach(send_retv) - else(NOT DEFINED curl_cv_func_send_args OR "${curl_cv_func_send_args}" STREQUAL "unknown") - string(REGEX REPLACE "^([^,]*),[^,]*,[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" SEND_TYPE_ARG1 "${curl_cv_func_send_args}") - string(REGEX REPLACE "^[^,]*,([^,]*),[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" SEND_TYPE_ARG2 "${curl_cv_func_send_args}") - string(REGEX REPLACE "^[^,]*,[^,]*,([^,]*),[^,]*,[^,]*,[^,]*$" "\\1" SEND_TYPE_ARG3 "${curl_cv_func_send_args}") - string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,([^,]*),[^,]*,[^,]*$" "\\1" SEND_TYPE_ARG4 "${curl_cv_func_send_args}") - string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,[^,]*,([^,]*),[^,]*$" "\\1" SEND_TYPE_RETV "${curl_cv_func_send_args}") - string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,([^,]*)$" "\\1" SEND_QUAL_ARG2 "${curl_cv_func_send_args}") - #MESSAGE("SEND_TYPE_ARG1 ${SEND_TYPE_ARG1}") - #MESSAGE("SEND_TYPE_ARG2 ${SEND_TYPE_ARG2}") - #MESSAGE("SEND_TYPE_ARG3 ${SEND_TYPE_ARG3}") - #MESSAGE("SEND_TYPE_ARG4 ${SEND_TYPE_ARG4}") - #MESSAGE("SEND_TYPE_RETV ${SEND_TYPE_RETV}") - #MESSAGE("SEND_QUAL_ARG2 ${SEND_QUAL_ARG2}") - endif(NOT DEFINED curl_cv_func_send_args OR "${curl_cv_func_send_args}" STREQUAL "unknown") - - if("${curl_cv_func_send_args}" STREQUAL "unknown") - message(FATAL_ERROR "Cannot find proper types to use for send args") - endif("${curl_cv_func_send_args}" STREQUAL "unknown") - set(SEND_QUAL_ARG2 "const") -else(curl_cv_send) - message(FATAL_ERROR "Unable to link function send") -endif(curl_cv_send) -set(curl_cv_func_send_args "${curl_cv_func_send_args}" CACHE INTERNAL "Arguments for send") -set(HAVE_SEND 1) - -set(EXTRA_DEFINES "${EXTRA_DEFINES}\n${headers_hack}\n#define __unused5") -curl_check_c_source_compiles("int flag = MSG_NOSIGNAL" HAVE_MSG_NOSIGNAL) - -set(EXTRA_DEFINES "__unused1\n#undef inline\n#define __unused2") -set(HEADER_INCLUDES) -set(headers_hack) - -macro(add_header_include check header) - if(${check}) - set(headers_hack - "${headers_hack}\n#include <${header}>") - #SET(HEADER_INCLUDES - # ${HEADER_INCLUDES} - # "${header}") - endif(${check}) -endmacro(add_header_include header) - -if(HAVE_WINDOWS_H) - set(EXTRA_DEFINES ${EXTRA_DEFINES} - "__unused7\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif\n#define __unused3") - add_header_include(HAVE_WINDOWS_H "windows.h") - add_header_include(HAVE_WINSOCK2_H "winsock2.h") - add_header_include(HAVE_WINSOCK_H "winsock.h") -else(HAVE_WINDOWS_H) - add_header_include(HAVE_SYS_TYPES_H "sys/types.h") - add_header_include(HAVE_SYS_TIME_H "sys/time.h") - add_header_include(TIME_WITH_SYS_TIME "time.h") - add_header_include(HAVE_TIME_H "time.h") -endif(HAVE_WINDOWS_H) -set(EXTRA_DEFINES "${EXTRA_DEFINES}\n${headers_hack}\n#define __unused5") -curl_check_c_source_compiles("struct timeval ts;\nts.tv_sec = 0;\nts.tv_usec = 0" HAVE_STRUCT_TIMEVAL) - - -include(CurlCheckCSourceRuns) -set(EXTRA_DEFINES) -set(HEADER_INCLUDES) -if(HAVE_SYS_POLL_H) - set(HEADER_INCLUDES "sys/poll.h") -endif(HAVE_SYS_POLL_H) -curl_check_c_source_runs("return poll((void *)0, 0, 10 /*ms*/)" HAVE_POLL_FINE) - -set(HAVE_SIG_ATOMIC_T 1) -set(EXTRA_DEFINES) -set(HEADER_INCLUDES) -if(HAVE_SIGNAL_H) - set(HEADER_INCLUDES "signal.h") - set(CMAKE_EXTRA_INCLUDE_FILES "signal.h") -endif(HAVE_SIGNAL_H) -check_type_size("sig_atomic_t" SIZEOF_SIG_ATOMIC_T) -if(HAVE_SIZEOF_SIG_ATOMIC_T) - curl_check_c_source_compiles("static volatile sig_atomic_t dummy = 0" HAVE_SIG_ATOMIC_T_NOT_VOLATILE) - if(NOT HAVE_SIG_ATOMIC_T_NOT_VOLATILE) - set(HAVE_SIG_ATOMIC_T_VOLATILE 1) - endif(NOT HAVE_SIG_ATOMIC_T_NOT_VOLATILE) -endif(HAVE_SIZEOF_SIG_ATOMIC_T) - -set(CHECK_TYPE_SIZE_PREINCLUDE - "#undef inline") - -if(HAVE_WINDOWS_H) - set(CHECK_TYPE_SIZE_PREINCLUDE "${CHECK_TYPE_SIZE_PREINCLUDE} - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif - #include ") - if(HAVE_WINSOCK2_H) - set(CHECK_TYPE_SIZE_PREINCLUDE "${CHECK_TYPE_SIZE_PREINCLUDE}\n#include ") - endif(HAVE_WINSOCK2_H) -else(HAVE_WINDOWS_H) - if(HAVE_SYS_SOCKET_H) - set(CMAKE_EXTRA_INCLUDE_FILES ${CMAKE_EXTRA_INCLUDE_FILES} - "sys/socket.h") - endif(HAVE_SYS_SOCKET_H) - if(HAVE_NETINET_IN_H) - set(CMAKE_EXTRA_INCLUDE_FILES ${CMAKE_EXTRA_INCLUDE_FILES} - "netinet/in.h") - endif(HAVE_NETINET_IN_H) - if(HAVE_ARPA_INET_H) - set(CMAKE_EXTRA_INCLUDE_FILES ${CMAKE_EXTRA_INCLUDE_FILES} - "arpa/inet.h") - endif(HAVE_ARPA_INET_H) -endif(HAVE_WINDOWS_H) - -check_type_size("struct sockaddr_storage" SIZEOF_STRUCT_SOCKADDR_STORAGE) -if(HAVE_SIZEOF_STRUCT_SOCKADDR_STORAGE) - set(HAVE_STRUCT_SOCKADDR_STORAGE 1) -endif(HAVE_SIZEOF_STRUCT_SOCKADDR_STORAGE) - diff --git a/msvc-deps/curl/CMake/Platforms/WindowsCache.cmake b/msvc-deps/curl/CMake/Platforms/WindowsCache.cmake deleted file mode 100644 index 49161f86..00000000 --- a/msvc-deps/curl/CMake/Platforms/WindowsCache.cmake +++ /dev/null @@ -1,121 +0,0 @@ -if(NOT UNIX) - if(WIN32) - set(HAVE_LIBDL 0) - set(HAVE_LIBUCB 0) - set(HAVE_LIBSOCKET 0) - set(NOT_NEED_LIBNSL 0) - set(HAVE_LIBNSL 0) - set(HAVE_LIBZ 0) - set(HAVE_LIBCRYPTO 0) - - set(HAVE_DLOPEN 0) - - set(HAVE_ALLOCA_H 0) - set(HAVE_ARPA_INET_H 0) - set(HAVE_DLFCN_H 0) - set(HAVE_FCNTL_H 1) - set(HAVE_FEATURES_H 0) - set(HAVE_INTTYPES_H 0) - set(HAVE_IO_H 1) - set(HAVE_MALLOC_H 1) - set(HAVE_MEMORY_H 1) - set(HAVE_NETDB_H 0) - set(HAVE_NETINET_IF_ETHER_H 0) - set(HAVE_NETINET_IN_H 0) - set(HAVE_NET_IF_H 0) - set(HAVE_PROCESS_H 1) - set(HAVE_PWD_H 0) - set(HAVE_SETJMP_H 1) - set(HAVE_SGTTY_H 0) - set(HAVE_SIGNAL_H 1) - set(HAVE_SOCKIO_H 0) - set(HAVE_STDINT_H 0) - set(HAVE_STDLIB_H 1) - set(HAVE_STRINGS_H 0) - set(HAVE_STRING_H 1) - set(HAVE_SYS_PARAM_H 0) - set(HAVE_SYS_POLL_H 0) - set(HAVE_SYS_SELECT_H 0) - set(HAVE_SYS_SOCKET_H 0) - set(HAVE_SYS_SOCKIO_H 0) - set(HAVE_SYS_STAT_H 1) - set(HAVE_SYS_TIME_H 0) - set(HAVE_SYS_TYPES_H 1) - set(HAVE_SYS_UTIME_H 1) - set(HAVE_TERMIOS_H 0) - set(HAVE_TERMIO_H 0) - set(HAVE_TIME_H 1) - set(HAVE_UNISTD_H 0) - set(HAVE_UTIME_H 0) - set(HAVE_X509_H 0) - set(HAVE_ZLIB_H 0) - - set(HAVE_SIZEOF_LONG_DOUBLE 1) - set(SIZEOF_LONG_DOUBLE 8) - - set(HAVE_SOCKET 1) - set(HAVE_POLL 0) - set(HAVE_SELECT 1) - set(HAVE_STRDUP 1) - set(HAVE_STRSTR 1) - set(HAVE_STRTOK_R 0) - set(HAVE_STRFTIME 1) - set(HAVE_UNAME 0) - set(HAVE_STRCASECMP 0) - set(HAVE_STRICMP 1) - set(HAVE_STRCMPI 1) - set(HAVE_GETHOSTBYADDR 1) - set(HAVE_GETTIMEOFDAY 0) - set(HAVE_INET_ADDR 1) - set(HAVE_INET_NTOA 1) - set(HAVE_INET_NTOA_R 0) - set(HAVE_TCGETATTR 0) - set(HAVE_TCSETATTR 0) - set(HAVE_PERROR 1) - set(HAVE_CLOSESOCKET 1) - set(HAVE_SETVBUF 0) - set(HAVE_SIGSETJMP 0) - set(HAVE_GETPASS_R 0) - set(HAVE_STRLCAT 0) - set(HAVE_GETPWUID 0) - set(HAVE_GETEUID 0) - set(HAVE_UTIME 1) - set(HAVE_RAND_EGD 0) - set(HAVE_RAND_SCREEN 0) - set(HAVE_RAND_STATUS 0) - set(HAVE_GMTIME_R 0) - set(HAVE_LOCALTIME_R 0) - set(HAVE_GETHOSTBYADDR_R 0) - set(HAVE_GETHOSTBYNAME_R 0) - set(HAVE_SIGNAL_FUNC 1) - set(HAVE_SIGNAL_MACRO 0) - - set(HAVE_GETHOSTBYADDR_R_5 0) - set(HAVE_GETHOSTBYADDR_R_5_REENTRANT 0) - set(HAVE_GETHOSTBYADDR_R_7 0) - set(HAVE_GETHOSTBYADDR_R_7_REENTRANT 0) - set(HAVE_GETHOSTBYADDR_R_8 0) - set(HAVE_GETHOSTBYADDR_R_8_REENTRANT 0) - set(HAVE_GETHOSTBYNAME_R_3 0) - set(HAVE_GETHOSTBYNAME_R_3_REENTRANT 0) - set(HAVE_GETHOSTBYNAME_R_5 0) - set(HAVE_GETHOSTBYNAME_R_5_REENTRANT 0) - set(HAVE_GETHOSTBYNAME_R_6 0) - set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 0) - - set(TIME_WITH_SYS_TIME 0) - set(HAVE_O_NONBLOCK 0) - set(HAVE_IN_ADDR_T 0) - set(HAVE_INET_NTOA_R_DECL 0) - set(HAVE_INET_NTOA_R_DECL_REENTRANT 0) - set(HAVE_GETADDRINFO 0) - set(STDC_HEADERS 1) - set(RETSIGTYPE_TEST 1) - - set(HAVE_SIGACTION 0) - set(HAVE_MACRO_SIGSETJMP 0) - else(WIN32) - message("This file should be included on Windows platform only") - endif(WIN32) -endif(NOT UNIX) - diff --git a/msvc-deps/curl/CMake/Utilities.cmake b/msvc-deps/curl/CMake/Utilities.cmake deleted file mode 100644 index 37cdfe3b..00000000 --- a/msvc-deps/curl/CMake/Utilities.cmake +++ /dev/null @@ -1,31 +0,0 @@ -# File containing various utilities - -# Converts a CMake list to a string containing elements separated by spaces -function(TO_LIST_SPACES _LIST_NAME OUTPUT_VAR) - set(NEW_LIST_SPACE) - foreach(ITEM ${${_LIST_NAME}}) - set(NEW_LIST_SPACE "${NEW_LIST_SPACE} ${ITEM}") - endforeach() - string(STRIP ${NEW_LIST_SPACE} NEW_LIST_SPACE) - set(${OUTPUT_VAR} "${NEW_LIST_SPACE}" PARENT_SCOPE) -endfunction() - -# Appends a lis of item to a string which is a space-separated list, if they don't already exist. -function(LIST_SPACES_APPEND_ONCE LIST_NAME) - string(REPLACE " " ";" _LIST ${${LIST_NAME}}) - list(APPEND _LIST ${ARGN}) - list(REMOVE_DUPLICATES _LIST) - to_list_spaces(_LIST NEW_LIST_SPACE) - set(${LIST_NAME} "${NEW_LIST_SPACE}" PARENT_SCOPE) -endfunction() - -# Convinience function that does the same as LIST(FIND ...) but with a TRUE/FALSE return value. -# Ex: IN_STR_LIST(MY_LIST "Searched item" WAS_FOUND) -function(IN_STR_LIST LIST_NAME ITEM_SEARCHED RETVAL) - list(FIND ${LIST_NAME} ${ITEM_SEARCHED} FIND_POS) - if(${FIND_POS} EQUAL -1) - set(${RETVAL} FALSE PARENT_SCOPE) - else() - set(${RETVAL} TRUE PARENT_SCOPE) - endif() -endfunction() diff --git a/msvc-deps/curl/CMakeLists.txt b/msvc-deps/curl/CMakeLists.txt deleted file mode 100644 index e571e556..00000000 --- a/msvc-deps/curl/CMakeLists.txt +++ /dev/null @@ -1,871 +0,0 @@ -# cURL/libcurl CMake script -# by Tetetest and Sukender (Benoit Neil) - -# TODO: -# The output .so file lacks the soname number which we currently have within the lib/Makefile.am file -# Add full (4 or 5 libs) SSL support -# Add INSTALL target (EXTRA_DIST variables in Makefile.am may be moved to Makefile.inc so that CMake/CPack is aware of what's to include). -# Add CTests(?) -# Check on all possible platforms -# Test with as many configurations possible (With or without any option) -# Create scripts that help keeping the CMake build system up to date (to reduce maintenance). According to Tetetest: -# - lists of headers that 'configure' checks for; -# - curl-specific tests (the ones that are in m4/curl-*.m4 files); -# - (most obvious thing:) curl version numbers. -# Add documentation subproject -# -# To check: -# (From Daniel Stenberg) The cmake build selected to run gcc with -fPIC on my box while the plain configure script did not. -# (From Daniel Stenberg) The gcc command line use neither -g nor any -O options. As a developer, I also treasure our configure scripts's --enable-debug option that sets a long range of "picky" compiler options. -cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR) -set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}") -include(Utilities) - -project( CURL C ) - -file (READ ${CURL_SOURCE_DIR}/include/curl/curlver.h CURL_VERSION_H_CONTENTS) -string (REGEX MATCH "LIBCURL_VERSION_MAJOR[ \t]+([0-9]+)" - LIBCURL_VERSION_MJ ${CURL_VERSION_H_CONTENTS}) -string (REGEX MATCH "([0-9]+)" - LIBCURL_VERSION_MJ ${LIBCURL_VERSION_MJ}) -string (REGEX MATCH - "LIBCURL_VERSION_MINOR[ \t]+([0-9]+)" - LIBCURL_VERSION_MI ${CURL_VERSION_H_CONTENTS}) -string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_MI ${LIBCURL_VERSION_MI}) -string (REGEX MATCH - "LIBCURL_VERSION_PATCH[ \t]+([0-9]+)" - LIBCURL_VERSION_PT ${CURL_VERSION_H_CONTENTS}) -string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_PT ${LIBCURL_VERSION_PT}) -set (CURL_MAJOR_VERSION ${LIBCURL_VERSION_MJ}) -set (CURL_MINOR_VERSION ${LIBCURL_VERSION_MI}) -set (CURL_PATCH_VERSION ${LIBCURL_VERSION_PT}) - -include_regular_expression("^.*$") # Sukender: Is it necessary? - -# Setup package meta-data -# SET(PACKAGE "curl") -set(CURL_VERSION ${CURL_MAJOR_VERSION}.${CURL_MINOR_VERSION}.${CURL_PATCH_VERSION}) -message(STATUS "curl version=[${CURL_VERSION}]") -# SET(PACKAGE_TARNAME "curl") -# SET(PACKAGE_NAME "curl") -# SET(PACKAGE_VERSION "-") -# SET(PACKAGE_STRING "curl-") -# SET(PACKAGE_BUGREPORT "a suitable curl mailing list => http://curl.haxx.se/mail/") -set(OPERATING_SYSTEM "${CMAKE_SYSTEM_NAME}") -set(OS "\"${CMAKE_SYSTEM_NAME}\"") - -include_directories(${PROJECT_BINARY_DIR}/include/curl) -include_directories( ${CURL_SOURCE_DIR}/include ) - -option(BUILD_CURL_EXE "Set to ON to build cURL executable." ON) -option(BUILD_CURL_TESTS "Set to ON to build cURL tests." ON) -option(CURL_STATICLIB "Set to ON to build libcurl with static linking." OFF) -option(CURL_USE_ARES "Set to ON to enable c-ares support" OFF) -# initialize CURL_LIBS -set(CURL_LIBS "") - -if(CURL_USE_ARES) - set(USE_ARES ${CURL_USE_ARES}) - find_package(CARES REQUIRED) - list(APPEND CURL_LIBS ${CARES_LIBRARY} ) - set(CURL_LIBS ${CURL_LIBS} ${CARES_LIBRARY}) -endif() - -option(BUILD_DASHBOARD_REPORTS "Set to ON to activate reporting of cURL builds here http://www.cdash.org/CDashPublic/index.php?project=CURL" OFF) -if(BUILD_DASHBOARD_REPORTS) - #INCLUDE(Dart) - include(CTest) -endif(BUILD_DASHBOARD_REPORTS) - -if(MSVC) - option(BUILD_RELEASE_DEBUG_DIRS "Set OFF to build each configuration to a separate directory" OFF) - mark_as_advanced(BUILD_RELEASE_DEBUG_DIRS) -endif() - -option(CURL_HIDDEN_SYMBOLS "Set to ON to hide libcurl internal symbols (=hide all symbols that aren't officially external)." ON) -mark_as_advanced(CURL_HIDDEN_SYMBOLS) - -# IF(WIN32) -# OPTION(CURL_WINDOWS_SSPI "Use windows libraries to allow NTLM authentication without openssl" ON) -# MARK_AS_ADVANCED(CURL_WINDOWS_SSPI) -# ENDIF() - -option(HTTP_ONLY "disables all protocols except HTTP (This overrides all CURL_DISABLE_* options)" OFF) -mark_as_advanced(HTTP_ONLY) -option(CURL_DISABLE_FTP "disables FTP" OFF) -mark_as_advanced(CURL_DISABLE_FTP) -option(CURL_DISABLE_LDAP "disables LDAP" OFF) -mark_as_advanced(CURL_DISABLE_LDAP) -option(CURL_DISABLE_TELNET "disables Telnet" OFF) -mark_as_advanced(CURL_DISABLE_TELNET) -option(CURL_DISABLE_DICT "disables DICT" OFF) -mark_as_advanced(CURL_DISABLE_DICT) -option(CURL_DISABLE_FILE "disables FILE" OFF) -mark_as_advanced(CURL_DISABLE_FILE) -option(CURL_DISABLE_TFTP "disables TFTP" OFF) -mark_as_advanced(CURL_DISABLE_TFTP) -option(CURL_DISABLE_HTTP "disables HTTP" OFF) -mark_as_advanced(CURL_DISABLE_HTTP) - -option(CURL_DISABLE_LDAPS "to disable LDAPS" OFF) -mark_as_advanced(CURL_DISABLE_LDAPS) - -if(HTTP_ONLY) - set(CURL_DISABLE_FTP ON) - set(CURL_DISABLE_LDAP ON) - set(CURL_DISABLE_LDAPS ON) - set(CURL_DISABLE_TELNET ON) - set(CURL_DISABLE_DICT ON) - set(CURL_DISABLE_FILE ON) - set(CURL_DISABLE_TFTP ON) -endif() - -option(CURL_DISABLE_COOKIES "to disable cookies support" OFF) -mark_as_advanced(CURL_DISABLE_COOKIES) - -option(CURL_DISABLE_CRYPTO_AUTH "to disable cryptographic authentication" OFF) -mark_as_advanced(CURL_DISABLE_CRYPTO_AUTH) -option(CURL_DISABLE_VERBOSE_STRINGS "to disable verbose strings" OFF) -mark_as_advanced(CURL_DISABLE_VERBOSE_STRINGS) -option(DISABLED_THREADSAFE "Set to explicitly specify we don't want to use thread-safe functions" OFF) -mark_as_advanced(DISABLED_THREADSAFE) -option(ENABLE_IPV6 "Define if you want to enable IPv6 support" OFF) -mark_as_advanced(ENABLE_IPV6) - -if(WIN32) - # Windows standard libraries are located in C:/Program Files/Microsoft SDKs/[...] - # They are already included in the default MSVC LIBPATH => no find_library is needed! - list_spaces_append_once(CMAKE_C_STANDARD_LIBRARIES wsock32.lib ws2_32.lib) # bufferoverflowu.lib - if(CURL_DISABLE_LDAP) - # Remove wldap32.lib from space-separated list - string(REPLACE " " ";" _LIST ${CMAKE_C_STANDARD_LIBRARIES}) - list(REMOVE_ITEM _LIST "wldap32.lib") - to_list_spaces(_LIST CMAKE_C_STANDARD_LIBRARIES) - else() - # Append wldap32.lib - list_spaces_append_once(CMAKE_C_STANDARD_LIBRARIES wldap32.lib) - endif() - set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES}" CACHE STRING "" FORCE) -endif() - - -# We need ansi c-flags, especially on HP -set(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}") -set(CMAKE_REQUIRED_FLAGS ${CMAKE_ANSI_CFLAGS}) - -# Disable warnings on Borland to avoid changing 3rd party code. -if(BORLAND) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w-") -endif(BORLAND) - -# If we are on AIX, do the _ALL_SOURCE magic -if(${CMAKE_SYSTEM_NAME} MATCHES AIX) - set(_ALL_SOURCE 1) -endif(${CMAKE_SYSTEM_NAME} MATCHES AIX) - -# Include all the necessary files for macros -include (CheckFunctionExists) -include (CheckIncludeFile) -include (CheckIncludeFiles) -include (CheckLibraryExists) -include (CheckSymbolExists) -include (CheckTypeSize) - -# On windows preload settings -if(WIN32) - include(${CMAKE_CURRENT_SOURCE_DIR}/CMake/Platforms/WindowsCache.cmake) -endif(WIN32) - -# This macro checks if the symbol exists in the library and if it -# does, it prepends library to the list. -macro(CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE) - check_library_exists("${LIBRARY};${CURL_LIBS}" ${SYMBOL} "${CMAKE_LIBRARY_PATH}" - ${VARIABLE}) - if(${VARIABLE}) - set(CURL_LIBS ${LIBRARY} ${CURL_LIBS}) - endif(${VARIABLE}) -endmacro(CHECK_LIBRARY_EXISTS_CONCAT) - -# Check for all needed libraries -check_library_exists_concat("dl" dlopen HAVE_LIBDL) -check_library_exists_concat("socket" connect HAVE_LIBSOCKET) -check_library_exists("c" gethostbyname "" NOT_NEED_LIBNSL) - -# Yellowtab Zeta needs different libraries than BeOS 5. -if(BEOS) - set(NOT_NEED_LIBNSL 1) - check_library_exists_concat("bind" gethostbyname HAVE_LIBBIND) - check_library_exists_concat("bnetapi" closesocket HAVE_LIBBNETAPI) -endif(BEOS) - -if(NOT NOT_NEED_LIBNSL) - check_library_exists_concat("nsl" gethostbyname HAVE_LIBNSL) -endif(NOT NOT_NEED_LIBNSL) - -check_library_exists_concat("ws2_32" getch HAVE_LIBWS2_32) -check_library_exists_concat("winmm" getch HAVE_LIBWINMM) -check_library_exists("wldap32" cldap_open "" HAVE_WLDAP32) - -if(WIN32) - set(CURL_DEFAULT_DISABLE_LDAP OFF) - # some windows compilers do not have wldap32 - if(NOT HAVE_WLDAP32) - set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE) - message(STATUS "wldap32 not found CURL_DISABLE_LDAP set ON") - option(CURL_LDAP_WIN "Use Windows LDAP implementation" OFF) - else() - option(CURL_LDAP_WIN "Use Windows LDAP implementation" ON) - endif() - mark_as_advanced(CURL_LDAP_WIN) -endif() - - -# IF(NOT CURL_SPECIAL_LIBZ) -# CHECK_LIBRARY_EXISTS_CONCAT("z" inflateEnd HAVE_LIBZ) -# ENDIF(NOT CURL_SPECIAL_LIBZ) - -# Check for idn -check_library_exists_concat("idn" idna_to_ascii_lz HAVE_LIBIDN) - -# Check for LDAP -check_library_exists_concat("ldap" ldap_init HAVE_LIBLDAP) -# if(NOT HAVE_LIBLDAP) -# SET(CURL_DISABLE_LDAP ON) -# endif(NOT HAVE_LIBLDAP) - -# Check for symbol dlopen (same as HAVE_LIBDL) -check_library_exists("${CURL_LIBS}" dlopen "" HAVE_DLOPEN) - -# For other tests to use the same libraries -set(CMAKE_REQUIRED_LIBRARIES ${CURL_LIBS}) - -option(CURL_ZLIB "Set to ON to enable building cURL with zlib support." ON) -set(HAVE_LIBZ OFF) -set(HAVE_ZLIB_H OFF) -set(HAVE_ZLIB OFF) -if(CURL_ZLIB) # AND CURL_CONFIG_HAS_BEEN_RUN_BEFORE - find_package(ZLIB QUIET) - if(ZLIB_FOUND) - set(HAVE_ZLIB_H ON) - set(HAVE_ZLIB ON) - set(HAVE_LIBZ ON) - endif() -endif() - -option(CMAKE_USE_OPENSSL "Use OpenSSL code. Experimental" ON) -mark_as_advanced(CMAKE_USE_OPENSSL) -if(CMAKE_USE_OPENSSL) - if(WIN32) - find_package(OpenSSL) - if(OPENSSL_FOUND) - set(USE_SSLEAY TRUE) - set(USE_OPENSSL TRUE) - list(APPEND CURL_LIBS ${OPENSSL_LIBRARIES} ) - else() - set(CMAKE_USE_OPENSSL FALSE) - message(STATUS "OpenSSL NOT Found, disabling CMAKE_USE_OPENSSL") - endif() - else(WIN32) - check_library_exists_concat("crypto" CRYPTO_lock HAVE_LIBCRYPTO) - check_library_exists_concat("ssl" SSL_connect HAVE_LIBSSL) - endif(WIN32) -endif(CMAKE_USE_OPENSSL) - -# If we have features.h, then do the _BSD_SOURCE magic -check_include_file("features.h" HAVE_FEATURES_H) - -# Check if header file exists and add it to the list. -macro(CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE) - check_include_files("${CURL_INCLUDES};${FILE}" ${VARIABLE}) - if(${VARIABLE}) - set(CURL_INCLUDES ${CURL_INCLUDES} ${FILE}) - set(CURL_TEST_DEFINES "${CURL_TEST_DEFINES} -D${VARIABLE}") - endif(${VARIABLE}) -endmacro(CHECK_INCLUDE_FILE_CONCAT) - - -# Check for header files -if(NOT UNIX) - check_include_file_concat("ws2tcpip.h" HAVE_WS2TCPIP_H) - check_include_file_concat("winsock2.h" HAVE_WINSOCK2_H) -endif(NOT UNIX) -check_include_file_concat("stdio.h" HAVE_STDIO_H) -if(NOT UNIX) - check_include_file_concat("windows.h" HAVE_WINDOWS_H) - check_include_file_concat("winsock.h" HAVE_WINSOCK_H) -endif(NOT UNIX) - -check_include_file_concat("inttypes.h" HAVE_INTTYPES_H) -check_include_file_concat("sys/filio.h" HAVE_SYS_FILIO_H) -check_include_file_concat("sys/ioctl.h" HAVE_SYS_IOCTL_H) -check_include_file_concat("sys/param.h" HAVE_SYS_PARAM_H) -check_include_file_concat("sys/poll.h" HAVE_SYS_POLL_H) -check_include_file_concat("sys/resource.h" HAVE_SYS_RESOURCE_H) -check_include_file_concat("sys/select.h" HAVE_SYS_SELECT_H) -check_include_file_concat("sys/socket.h" HAVE_SYS_SOCKET_H) -check_include_file_concat("sys/sockio.h" HAVE_SYS_SOCKIO_H) -check_include_file_concat("sys/stat.h" HAVE_SYS_STAT_H) -check_include_file_concat("sys/time.h" HAVE_SYS_TIME_H) -check_include_file_concat("sys/types.h" HAVE_SYS_TYPES_H) -check_include_file_concat("sys/uio.h" HAVE_SYS_UIO_H) -check_include_file_concat("sys/un.h" HAVE_SYS_UN_H) -check_include_file_concat("sys/utime.h" HAVE_SYS_UTIME_H) -check_include_file_concat("alloca.h" HAVE_ALLOCA_H) -check_include_file_concat("arpa/inet.h" HAVE_ARPA_INET_H) -check_include_file_concat("arpa/tftp.h" HAVE_ARPA_TFTP_H) -check_include_file_concat("assert.h" HAVE_ASSERT_H) -check_include_file_concat("crypto.h" HAVE_CRYPTO_H) -check_include_file_concat("des.h" HAVE_DES_H) -check_include_file_concat("err.h" HAVE_ERR_H) -check_include_file_concat("errno.h" HAVE_ERRNO_H) -check_include_file_concat("fcntl.h" HAVE_FCNTL_H) -check_include_file_concat("gssapi/gssapi.h" HAVE_GSSAPI_GSSAPI_H) -check_include_file_concat("gssapi/gssapi_generic.h" HAVE_GSSAPI_GSSAPI_GENERIC_H) -check_include_file_concat("gssapi/gssapi_krb5.h" HAVE_GSSAPI_GSSAPI_KRB5_H) -check_include_file_concat("idn-free.h" HAVE_IDN_FREE_H) -check_include_file_concat("ifaddrs.h" HAVE_IFADDRS_H) -check_include_file_concat("io.h" HAVE_IO_H) -check_include_file_concat("krb.h" HAVE_KRB_H) -check_include_file_concat("libgen.h" HAVE_LIBGEN_H) -check_include_file_concat("libssh2.h" HAVE_LIBSSH2_H) -check_include_file_concat("limits.h" HAVE_LIMITS_H) -check_include_file_concat("locale.h" HAVE_LOCALE_H) -check_include_file_concat("net/if.h" HAVE_NET_IF_H) -check_include_file_concat("netdb.h" HAVE_NETDB_H) -check_include_file_concat("netinet/in.h" HAVE_NETINET_IN_H) -check_include_file_concat("netinet/tcp.h" HAVE_NETINET_TCP_H) -check_include_file_concat("openssl/crypto.h" HAVE_OPENSSL_CRYPTO_H) -check_include_file_concat("openssl/engine.h" HAVE_OPENSSL_ENGINE_H) -check_include_file_concat("openssl/err.h" HAVE_OPENSSL_ERR_H) -check_include_file_concat("openssl/pem.h" HAVE_OPENSSL_PEM_H) -check_include_file_concat("openssl/pkcs12.h" HAVE_OPENSSL_PKCS12_H) -check_include_file_concat("openssl/rsa.h" HAVE_OPENSSL_RSA_H) -check_include_file_concat("openssl/ssl.h" HAVE_OPENSSL_SSL_H) -check_include_file_concat("openssl/x509.h" HAVE_OPENSSL_X509_H) -check_include_file_concat("pem.h" HAVE_PEM_H) -check_include_file_concat("poll.h" HAVE_POLL_H) -check_include_file_concat("pwd.h" HAVE_PWD_H) -check_include_file_concat("rsa.h" HAVE_RSA_H) -check_include_file_concat("setjmp.h" HAVE_SETJMP_H) -check_include_file_concat("sgtty.h" HAVE_SGTTY_H) -check_include_file_concat("signal.h" HAVE_SIGNAL_H) -check_include_file_concat("ssl.h" HAVE_SSL_H) -check_include_file_concat("stdbool.h" HAVE_STDBOOL_H) -check_include_file_concat("stdint.h" HAVE_STDINT_H) -check_include_file_concat("stdio.h" HAVE_STDIO_H) -check_include_file_concat("stdlib.h" HAVE_STDLIB_H) -check_include_file_concat("string.h" HAVE_STRING_H) -check_include_file_concat("strings.h" HAVE_STRINGS_H) -check_include_file_concat("stropts.h" HAVE_STROPTS_H) -check_include_file_concat("termio.h" HAVE_TERMIO_H) -check_include_file_concat("termios.h" HAVE_TERMIOS_H) -check_include_file_concat("time.h" HAVE_TIME_H) -check_include_file_concat("tld.h" HAVE_TLD_H) -check_include_file_concat("unistd.h" HAVE_UNISTD_H) -check_include_file_concat("utime.h" HAVE_UTIME_H) -check_include_file_concat("x509.h" HAVE_X509_H) - -check_include_file_concat("process.h" HAVE_PROCESS_H) -check_include_file_concat("stddef.h" HAVE_STDDEF_H) -check_include_file_concat("dlfcn.h" HAVE_DLFCN_H) -check_include_file_concat("malloc.h" HAVE_MALLOC_H) -check_include_file_concat("memory.h" HAVE_MEMORY_H) -check_include_file_concat("ldap.h" HAVE_LDAP_H) -check_include_file_concat("netinet/if_ether.h" HAVE_NETINET_IF_ETHER_H) -check_include_file_concat("stdint.h" HAVE_STDINT_H) -check_include_file_concat("sockio.h" HAVE_SOCKIO_H) -check_include_file_concat("sys/utsname.h" HAVE_SYS_UTSNAME_H) -check_include_file_concat("idna.h" HAVE_IDNA_H) - -if(CMAKE_USE_OPENSSL) - check_include_file_concat("openssl/rand.h" HAVE_OPENSSL_RAND_H) -endif(CMAKE_USE_OPENSSL) - -if(NOT HAVE_LDAP_H) - message(STATUS "LDAP_H not found CURL_DISABLE_LDAP set ON") - set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE) -endif() - -# No ldap, no ldaps. -if(CURL_DISABLE_LDAP) - if(NOT CURL_DISABLE_LDAPS) - message(STATUS "LDAP needs to be enabled to support LDAPS") - set(CURL_DISABLE_LDAPS ON CACHE BOOL "" FORCE) - endif() -endif() - -check_type_size(size_t SIZEOF_SIZE_T) -check_type_size(ssize_t SIZEOF_SSIZE_T) -check_type_size("long long" SIZEOF_LONG_LONG) -check_type_size("long" SIZEOF_LONG) -check_type_size("short" SIZEOF_SHORT) -check_type_size("int" SIZEOF_INT) -check_type_size("__int64" SIZEOF___INT64) -check_type_size("long double" SIZEOF_LONG_DOUBLE) -check_type_size("time_t" SIZEOF_TIME_T) -if(NOT HAVE_SIZEOF_SSIZE_T) - if(SIZEOF_LONG EQUAL SIZEOF_SIZE_T) - set(ssize_t long) - endif(SIZEOF_LONG EQUAL SIZEOF_SIZE_T) - if(NOT ssize_t AND SIZEOF___INT64 EQUAL SIZEOF_SIZE_T) - set(ssize_t __int64) - endif(NOT ssize_t AND SIZEOF___INT64 EQUAL SIZEOF_SIZE_T) -endif(NOT HAVE_SIZEOF_SSIZE_T) - -# Different sizeofs, etc. - -# 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 - -set(CURL_SIZEOF_LONG ${SIZEOF_LONG}) - -if(SIZEOF_LONG EQUAL 8) - set(CURL_TYPEOF_CURL_OFF_T long) - set(CURL_SIZEOF_CURL_OFF_T 8) - set(CURL_FORMAT_CURL_OFF_T "ld") - set(CURL_FORMAT_CURL_OFF_TU "lu") - set(CURL_FORMAT_OFF_T "%ld") - set(CURL_SUFFIX_CURL_OFF_T L) - set(CURL_SUFFIX_CURL_OFF_TU UL) -endif(SIZEOF_LONG EQUAL 8) - -if(SIZEOF_LONG_LONG EQUAL 8) - set(CURL_TYPEOF_CURL_OFF_T "long long") - set(CURL_SIZEOF_CURL_OFF_T 8) - set(CURL_FORMAT_CURL_OFF_T "lld") - set(CURL_FORMAT_CURL_OFF_TU "llu") - set(CURL_FORMAT_OFF_T "%lld") - set(CURL_SUFFIX_CURL_OFF_T LL) - set(CURL_SUFFIX_CURL_OFF_TU ULL) -endif(SIZEOF_LONG_LONG EQUAL 8) - -if(NOT CURL_TYPEOF_CURL_OFF_T) - set(CURL_TYPEOF_CURL_OFF_T ${ssize_t}) - set(CURL_SIZEOF_CURL_OFF_T ${SIZEOF_SSIZE_T}) - # TODO: need adjustment here. - set(CURL_FORMAT_CURL_OFF_T "ld") - set(CURL_FORMAT_CURL_OFF_TU "lu") - set(CURL_FORMAT_OFF_T "%ld") - set(CURL_SUFFIX_CURL_OFF_T L) - set(CURL_SUFFIX_CURL_OFF_TU LU) -endif(NOT CURL_TYPEOF_CURL_OFF_T) - -if(HAVE_SIZEOF_LONG_LONG) - set(HAVE_LONGLONG 1) - set(HAVE_LL 1) -endif(HAVE_SIZEOF_LONG_LONG) - -find_file(RANDOM_FILE urandom /dev) -mark_as_advanced(RANDOM_FILE) - -# Check for some functions that are used -check_symbol_exists(basename "${CURL_INCLUDES}" HAVE_BASENAME) -check_symbol_exists(socket "${CURL_INCLUDES}" HAVE_SOCKET) -check_symbol_exists(poll "${CURL_INCLUDES}" HAVE_POLL) -check_symbol_exists(select "${CURL_INCLUDES}" HAVE_SELECT) -check_symbol_exists(strdup "${CURL_INCLUDES}" HAVE_STRDUP) -check_symbol_exists(strstr "${CURL_INCLUDES}" HAVE_STRSTR) -check_symbol_exists(strtok_r "${CURL_INCLUDES}" HAVE_STRTOK_R) -check_symbol_exists(strftime "${CURL_INCLUDES}" HAVE_STRFTIME) -check_symbol_exists(uname "${CURL_INCLUDES}" HAVE_UNAME) -check_symbol_exists(strcasecmp "${CURL_INCLUDES}" HAVE_STRCASECMP) -check_symbol_exists(stricmp "${CURL_INCLUDES}" HAVE_STRICMP) -check_symbol_exists(strcmpi "${CURL_INCLUDES}" HAVE_STRCMPI) -check_symbol_exists(strncmpi "${CURL_INCLUDES}" HAVE_STRNCMPI) -check_symbol_exists(alarm "${CURL_INCLUDES}" HAVE_ALARM) -if(NOT HAVE_STRNCMPI) - set(HAVE_STRCMPI) -endif(NOT HAVE_STRNCMPI) -check_symbol_exists(gethostbyaddr "${CURL_INCLUDES}" HAVE_GETHOSTBYADDR) -check_symbol_exists(gethostbyaddr_r "${CURL_INCLUDES}" HAVE_GETHOSTBYADDR_R) -check_symbol_exists(gettimeofday "${CURL_INCLUDES}" HAVE_GETTIMEOFDAY) -check_symbol_exists(inet_addr "${CURL_INCLUDES}" HAVE_INET_ADDR) -check_symbol_exists(inet_ntoa "${CURL_INCLUDES}" HAVE_INET_NTOA) -check_symbol_exists(inet_ntoa_r "${CURL_INCLUDES}" HAVE_INET_NTOA_R) -check_symbol_exists(tcsetattr "${CURL_INCLUDES}" HAVE_TCSETATTR) -check_symbol_exists(tcgetattr "${CURL_INCLUDES}" HAVE_TCGETATTR) -check_symbol_exists(perror "${CURL_INCLUDES}" HAVE_PERROR) -check_symbol_exists(closesocket "${CURL_INCLUDES}" HAVE_CLOSESOCKET) -check_symbol_exists(setvbuf "${CURL_INCLUDES}" HAVE_SETVBUF) -check_symbol_exists(sigsetjmp "${CURL_INCLUDES}" HAVE_SIGSETJMP) -check_symbol_exists(getpass_r "${CURL_INCLUDES}" HAVE_GETPASS_R) -check_symbol_exists(strlcat "${CURL_INCLUDES}" HAVE_STRLCAT) -check_symbol_exists(getpwuid "${CURL_INCLUDES}" HAVE_GETPWUID) -check_symbol_exists(geteuid "${CURL_INCLUDES}" HAVE_GETEUID) -check_symbol_exists(utime "${CURL_INCLUDES}" HAVE_UTIME) -if(CMAKE_USE_OPENSSL) - check_symbol_exists(RAND_status "${CURL_INCLUDES}" HAVE_RAND_STATUS) - check_symbol_exists(RAND_screen "${CURL_INCLUDES}" HAVE_RAND_SCREEN) - check_symbol_exists(RAND_egd "${CURL_INCLUDES}" HAVE_RAND_EGD) - check_symbol_exists(CRYPTO_cleanup_all_ex_data "${CURL_INCLUDES}" - HAVE_CRYPTO_CLEANUP_ALL_EX_DATA) - if(HAVE_LIBCRYPTO AND HAVE_LIBSSL) - set(USE_OPENSSL 1) - set(USE_SSLEAY 1) - endif(HAVE_LIBCRYPTO AND HAVE_LIBSSL) -endif(CMAKE_USE_OPENSSL) -check_symbol_exists(gmtime_r "${CURL_INCLUDES}" HAVE_GMTIME_R) -check_symbol_exists(localtime_r "${CURL_INCLUDES}" HAVE_LOCALTIME_R) - -check_symbol_exists(gethostbyname "${CURL_INCLUDES}" HAVE_GETHOSTBYNAME) -check_symbol_exists(gethostbyname_r "${CURL_INCLUDES}" HAVE_GETHOSTBYNAME_R) - -check_symbol_exists(signal "${CURL_INCLUDES}" HAVE_SIGNAL_FUNC) -check_symbol_exists(SIGALRM "${CURL_INCLUDES}" HAVE_SIGNAL_MACRO) -if(HAVE_SIGNAL_FUNC AND HAVE_SIGNAL_MACRO) - set(HAVE_SIGNAL 1) -endif(HAVE_SIGNAL_FUNC AND HAVE_SIGNAL_MACRO) -check_symbol_exists(uname "${CURL_INCLUDES}" HAVE_UNAME) -check_symbol_exists(strtoll "${CURL_INCLUDES}" HAVE_STRTOLL) -check_symbol_exists(_strtoi64 "${CURL_INCLUDES}" HAVE__STRTOI64) -check_symbol_exists(strerror_r "${CURL_INCLUDES}" HAVE_STRERROR_R) -check_symbol_exists(siginterrupt "${CURL_INCLUDES}" HAVE_SIGINTERRUPT) -check_symbol_exists(perror "${CURL_INCLUDES}" HAVE_PERROR) -check_symbol_exists(fork "${CURL_INCLUDES}" HAVE_FORK) -check_symbol_exists(freeaddrinfo "${CURL_INCLUDES}" HAVE_FREEADDRINFO) -check_symbol_exists(freeifaddrs "${CURL_INCLUDES}" HAVE_FREEIFADDRS) -check_symbol_exists(pipe "${CURL_INCLUDES}" HAVE_PIPE) -check_symbol_exists(ftruncate "${CURL_INCLUDES}" HAVE_FTRUNCATE) -check_symbol_exists(getprotobyname "${CURL_INCLUDES}" HAVE_GETPROTOBYNAME) -check_symbol_exists(getrlimit "${CURL_INCLUDES}" HAVE_GETRLIMIT) -check_symbol_exists(idn_free "${CURL_INCLUDES}" HAVE_IDN_FREE) -check_symbol_exists(idna_strerror "${CURL_INCLUDES}" HAVE_IDNA_STRERROR) -check_symbol_exists(tld_strerror "${CURL_INCLUDES}" HAVE_TLD_STRERROR) -check_symbol_exists(setlocale "${CURL_INCLUDES}" HAVE_SETLOCALE) -check_symbol_exists(setrlimit "${CURL_INCLUDES}" HAVE_SETRLIMIT) -check_symbol_exists(fcntl "${CURL_INCLUDES}" HAVE_FCNTL) -check_symbol_exists(ioctl "${CURL_INCLUDES}" HAVE_IOCTL) -check_symbol_exists(setsockopt "${CURL_INCLUDES}" HAVE_SETSOCKOPT) - -# symbol exists in win32, but function does not. -check_function_exists(inet_pton HAVE_INET_PTON) - -# sigaction and sigsetjmp are special. Use special mechanism for -# detecting those, but only if previous attempt failed. -if(HAVE_SIGNAL_H) - check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION) -endif(HAVE_SIGNAL_H) - -if(NOT HAVE_SIGSETJMP) - if(HAVE_SETJMP_H) - check_symbol_exists(sigsetjmp "setjmp.h" HAVE_MACRO_SIGSETJMP) - if(HAVE_MACRO_SIGSETJMP) - set(HAVE_SIGSETJMP 1) - endif(HAVE_MACRO_SIGSETJMP) - endif(HAVE_SETJMP_H) -endif(NOT HAVE_SIGSETJMP) - -# If there is no stricmp(), do not allow LDAP to parse URLs -if(NOT HAVE_STRICMP) - set(HAVE_LDAP_URL_PARSE 1) -endif(NOT HAVE_STRICMP) - -# For other curl specific tests, use this macro. -macro(CURL_INTERNAL_TEST CURL_TEST) - if("${CURL_TEST}" MATCHES "^${CURL_TEST}$") - set(MACRO_CHECK_FUNCTION_DEFINITIONS - "-D${CURL_TEST} ${CURL_TEST_DEFINES} ${CMAKE_REQUIRED_FLAGS}") - if(CMAKE_REQUIRED_LIBRARIES) - set(CURL_TEST_ADD_LIBRARIES - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - endif(CMAKE_REQUIRED_LIBRARIES) - - message(STATUS "Performing Curl Test ${CURL_TEST}") - try_compile(${CURL_TEST} - ${CMAKE_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/CMake/CurlTests.c - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} - "${CURL_TEST_ADD_LIBRARIES}" - OUTPUT_VARIABLE OUTPUT) - if(${CURL_TEST}) - set(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}") - message(STATUS "Performing Curl Test ${CURL_TEST} - Success") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Performing Curl Test ${CURL_TEST} passed with the following output:\n" - "${OUTPUT}\n") - else(${CURL_TEST}) - message(STATUS "Performing Curl Test ${CURL_TEST} - Failed") - set(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Performing Curl Test ${CURL_TEST} failed with the following output:\n" - "${OUTPUT}\n") - endif(${CURL_TEST}) - endif("${CURL_TEST}" MATCHES "^${CURL_TEST}$") -endmacro(CURL_INTERNAL_TEST) - -macro(CURL_INTERNAL_TEST_RUN CURL_TEST) - if("${CURL_TEST}_COMPILE" MATCHES "^${CURL_TEST}_COMPILE$") - set(MACRO_CHECK_FUNCTION_DEFINITIONS - "-D${CURL_TEST} ${CMAKE_REQUIRED_FLAGS}") - if(CMAKE_REQUIRED_LIBRARIES) - set(CURL_TEST_ADD_LIBRARIES - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - endif(CMAKE_REQUIRED_LIBRARIES) - - message(STATUS "Performing Curl Test ${CURL_TEST}") - try_run(${CURL_TEST} ${CURL_TEST}_COMPILE - ${CMAKE_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/CMake/CurlTests.c - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} - "${CURL_TEST_ADD_LIBRARIES}" - OUTPUT_VARIABLE OUTPUT) - if(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) - set(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}") - message(STATUS "Performing Curl Test ${CURL_TEST} - Success") - else(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) - message(STATUS "Performing Curl Test ${CURL_TEST} - Failed") - set(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}") - file(APPEND "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" - "Performing Curl Test ${CURL_TEST} failed with the following output:\n" - "${OUTPUT}") - if(${CURL_TEST}_COMPILE) - file(APPEND - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" - "There was a problem running this test\n") - endif(${CURL_TEST}_COMPILE) - file(APPEND "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" - "\n\n") - endif(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) - endif("${CURL_TEST}_COMPILE" MATCHES "^${CURL_TEST}_COMPILE$") -endmacro(CURL_INTERNAL_TEST_RUN) - -# Do curl specific tests -foreach(CURL_TEST - HAVE_FCNTL_O_NONBLOCK - HAVE_IOCTLSOCKET - HAVE_IOCTLSOCKET_CAMEL - HAVE_IOCTLSOCKET_CAMEL_FIONBIO - HAVE_IOCTLSOCKET_FIONBIO - HAVE_IOCTL_FIONBIO - HAVE_IOCTL_SIOCGIFADDR - HAVE_SETSOCKOPT_SO_NONBLOCK - HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID - TIME_WITH_SYS_TIME - HAVE_O_NONBLOCK - HAVE_GETHOSTBYADDR_R_5 - HAVE_GETHOSTBYADDR_R_7 - HAVE_GETHOSTBYADDR_R_8 - HAVE_GETHOSTBYADDR_R_5_REENTRANT - HAVE_GETHOSTBYADDR_R_7_REENTRANT - HAVE_GETHOSTBYADDR_R_8_REENTRANT - HAVE_GETHOSTBYNAME_R_3 - HAVE_GETHOSTBYNAME_R_5 - HAVE_GETHOSTBYNAME_R_6 - HAVE_GETHOSTBYNAME_R_3_REENTRANT - HAVE_GETHOSTBYNAME_R_5_REENTRANT - HAVE_GETHOSTBYNAME_R_6_REENTRANT - HAVE_SOCKLEN_T - HAVE_IN_ADDR_T - HAVE_BOOL_T - STDC_HEADERS - RETSIGTYPE_TEST - HAVE_INET_NTOA_R_DECL - HAVE_INET_NTOA_R_DECL_REENTRANT - HAVE_GETADDRINFO - HAVE_FILE_OFFSET_BITS - ) - curl_internal_test(${CURL_TEST}) -endforeach(CURL_TEST) -if(HAVE_FILE_OFFSET_BITS) - set(_FILE_OFFSET_BITS 64) -endif(HAVE_FILE_OFFSET_BITS) -foreach(CURL_TEST - HAVE_GLIBC_STRERROR_R - HAVE_POSIX_STRERROR_R - ) - curl_internal_test_run(${CURL_TEST}) -endforeach(CURL_TEST) - -# Check for reentrant -foreach(CURL_TEST - HAVE_GETHOSTBYADDR_R_5 - HAVE_GETHOSTBYADDR_R_7 - HAVE_GETHOSTBYADDR_R_8 - HAVE_GETHOSTBYNAME_R_3 - HAVE_GETHOSTBYNAME_R_5 - HAVE_GETHOSTBYNAME_R_6 - HAVE_INET_NTOA_R_DECL_REENTRANT) - if(NOT ${CURL_TEST}) - if(${CURL_TEST}_REENTRANT) - set(NEED_REENTRANT 1) - endif(${CURL_TEST}_REENTRANT) - endif(NOT ${CURL_TEST}) -endforeach(CURL_TEST) - -if(NEED_REENTRANT) - foreach(CURL_TEST - HAVE_GETHOSTBYADDR_R_5 - HAVE_GETHOSTBYADDR_R_7 - HAVE_GETHOSTBYADDR_R_8 - HAVE_GETHOSTBYNAME_R_3 - HAVE_GETHOSTBYNAME_R_5 - HAVE_GETHOSTBYNAME_R_6) - set(${CURL_TEST} 0) - if(${CURL_TEST}_REENTRANT) - set(${CURL_TEST} 1) - endif(${CURL_TEST}_REENTRANT) - endforeach(CURL_TEST) -endif(NEED_REENTRANT) - -if(HAVE_INET_NTOA_R_DECL_REENTRANT) - set(HAVE_INET_NTOA_R_DECL 1) - set(NEED_REENTRANT 1) -endif(HAVE_INET_NTOA_R_DECL_REENTRANT) - -# Some other minor tests - -if(NOT HAVE_IN_ADDR_T) - set(in_addr_t "unsigned long") -endif(NOT HAVE_IN_ADDR_T) - -# Fix libz / zlib.h - -if(NOT CURL_SPECIAL_LIBZ) - if(NOT HAVE_LIBZ) - set(HAVE_ZLIB_H 0) - endif(NOT HAVE_LIBZ) - - if(NOT HAVE_ZLIB_H) - set(HAVE_LIBZ 0) - endif(NOT HAVE_ZLIB_H) -endif(NOT CURL_SPECIAL_LIBZ) - -if(_FILE_OFFSET_BITS) - set(_FILE_OFFSET_BITS 64) -endif(_FILE_OFFSET_BITS) -set(CMAKE_REQUIRED_FLAGS "-D_FILE_OFFSET_BITS=64") -set(CMAKE_EXTRA_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/curl/curl.h") -check_type_size("curl_off_t" SIZEOF_CURL_OFF_T) -set(CMAKE_EXTRA_INCLUDE_FILES) -set(CMAKE_REQUIRED_FLAGS) - - -# Check for nonblocking -set(HAVE_DISABLED_NONBLOCKING 1) -if(HAVE_FIONBIO OR - HAVE_IOCTLSOCKET OR - HAVE_IOCTLSOCKET_CASE OR - HAVE_O_NONBLOCK) - set(HAVE_DISABLED_NONBLOCKING) -endif(HAVE_FIONBIO OR - HAVE_IOCTLSOCKET OR - HAVE_IOCTLSOCKET_CASE OR - HAVE_O_NONBLOCK) - -if(RETSIGTYPE_TEST) - set(RETSIGTYPE void) -else(RETSIGTYPE_TEST) - set(RETSIGTYPE int) -endif(RETSIGTYPE_TEST) - -if(CMAKE_COMPILER_IS_GNUCC AND APPLE) - include(CheckCCompilerFlag) - check_c_compiler_flag(-Wno-long-double HAVE_C_FLAG_Wno_long_double) - if(HAVE_C_FLAG_Wno_long_double) - # The Mac version of GCC warns about use of long double. Disable it. - get_source_file_property(MPRINTF_COMPILE_FLAGS mprintf.c COMPILE_FLAGS) - if(MPRINTF_COMPILE_FLAGS) - set(MPRINTF_COMPILE_FLAGS "${MPRINTF_COMPILE_FLAGS} -Wno-long-double") - else(MPRINTF_COMPILE_FLAGS) - set(MPRINTF_COMPILE_FLAGS "-Wno-long-double") - endif(MPRINTF_COMPILE_FLAGS) - set_source_files_properties(mprintf.c PROPERTIES - COMPILE_FLAGS ${MPRINTF_COMPILE_FLAGS}) - endif(HAVE_C_FLAG_Wno_long_double) -endif(CMAKE_COMPILER_IS_GNUCC AND APPLE) - -if(HAVE_SOCKLEN_T) - set(CURL_TYPEOF_CURL_SOCKLEN_T "socklen_t") - if(WIN32) - set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h;ws2tcpip.h") - elseif(HAVE_SYS_SOCKET_H) - set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h") - endif() - check_type_size("socklen_t" CURL_SIZEOF_CURL_SOCKLEN_T) - set(CMAKE_EXTRA_INCLUDE_FILES) - if(NOT HAVE_CURL_SIZEOF_CURL_SOCKLEN_T) - message(FATAL_ERROR - "Check for sizeof socklen_t failed, see CMakeFiles/CMakerror.log") - endif() -else() - set(CURL_TYPEOF_CURL_SOCKLEN_T int) - set(CURL_SIZEOF_CURL_SOCKLEN_T ${SIZEOF_INT}) -endif() - -include(CMake/OtherTests.cmake) - -add_definitions(-DHAVE_CONFIG_H) - -# For windows, do not allow the compiler to use default target (Vista). -if(WIN32) - add_definitions(-D_WIN32_WINNT=0x0501) -endif(WIN32) - -if(MSVC) - add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) -endif(MSVC) - -# Sets up the dependencies (zlib, OpenSSL, etc.) of a cURL subproject according to options. -# TODO This is far to be complete! -function(SETUP_CURL_DEPENDENCIES TARGET_NAME) - if(CURL_ZLIB AND ZLIB_FOUND) - include_directories(${ZLIB_INCLUDE_DIR}) - endif() - if(CURL_ZLIB AND ZLIB_FOUND) - target_link_libraries(${TARGET_NAME} ${ZLIB_LIBRARIES}) - #ADD_DEFINITIONS( -DHAVE_ZLIB_H -DHAVE_ZLIB -DHAVE_LIBZ ) - endif() - - if(CMAKE_USE_OPENSSL AND OPENSSL_FOUND) - include_directories(${OPENSSL_INCLUDE_DIR}) - endif() - if(CMAKE_USE_OPENSSL AND CURL_CONFIG_HAS_BEEN_RUN_BEFORE) - target_link_libraries(${TARGET_NAME} ${OPENSSL_LIBRARIES}) - #ADD_DEFINITIONS( -DUSE_SSLEAY ) - endif() -endfunction() - -# Ugly (but functional) way to include "Makefile.inc" by transforming it (= regenerate it). -function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE) - file(READ ${INPUT_FILE} MAKEFILE_INC_TEXT) - string(REPLACE "$(top_srcdir)" "\${CURL_SOURCE_DIR}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) - string(REPLACE "$(top_builddir)" "\${CURL_BINARY_DIR}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) - - string(REGEX REPLACE "\\\\\n" "§!§" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) - string(REGEX REPLACE "([a-zA-Z_][a-zA-Z0-9_]*)[\t ]*=[\t ]*([^\n]*)" "SET(\\1 \\2)" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) - string(REPLACE "§!§" "\n" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) - - string(REGEX REPLACE "\\$\\(([a-zA-Z_][a-zA-Z0-9_]*)\\)" "\${\\1}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) # Replace $() with ${} - string(REGEX REPLACE "@([a-zA-Z_][a-zA-Z0-9_]*)@" "\${\\1}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) # Replace @@ with ${}, even if that may not be read by CMake scripts. - file(WRITE ${OUTPUT_FILE} ${MAKEFILE_INC_TEXT}) - -endfunction() - -add_subdirectory(lib) -if(BUILD_CURL_EXE) - add_subdirectory(src) -endif() -if(BUILD_CURL_TESTS) - add_subdirectory(tests) -endif() - -# This needs to be run very last so other parts of the scripts can take advantage of this. -if(NOT CURL_CONFIG_HAS_BEEN_RUN_BEFORE) - set(CURL_CONFIG_HAS_BEEN_RUN_BEFORE 1 CACHE INTERNAL "Flag to track whether this is the first time running CMake or if CMake has been configured before") -endif() - -# Installation. -# First, install generated curlbuild.h -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/curl/curlbuild.h" - DESTINATION include/curl ) -# Next, install other headers excluding curlbuild.h -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/curl" - DESTINATION include - FILES_MATCHING PATTERN "*.h" - PATTERN "curlbuild.h" EXCLUDE) diff --git a/msvc-deps/curl/COPYING b/msvc-deps/curl/COPYING deleted file mode 100644 index 18f1684b..00000000 --- a/msvc-deps/curl/COPYING +++ /dev/null @@ -1,21 +0,0 @@ -COPYRIGHT AND PERMISSION NOTICE - -Copyright (c) 1996 - 2012, 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/msvc-deps/curl/MacOSX-Framework b/msvc-deps/curl/MacOSX-Framework deleted file mode 100644 index 0c97acdc..00000000 --- a/msvc-deps/curl/MacOSX-Framework +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/bash -# This script performs all of the steps needed to build a -# universal binary libcurl.framework for Mac OS X 10.4 or greater. -# -# Hendrik Visage: -# Generalizations added since Snowleopard (10.6) do not include -# the 10.4u SDK. -# -# Also note: -# 10.5 is the *ONLY* SDK that support PPC64 :( -- 10.6 do not have ppc64 support -#If you need to have PPC64 support then change below to 1 -PPC64_NEEDED=0 - -# For me the default is to develop for the platform I am on, and if you -#desire compatibility with older versions then change USE_OLD to 1 :) -USE_OLD=0 - -VERSION=`/usr/bin/sed -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' include/curl/curlver.h` -FRAMEWORK_VERSION=Versions/Release-$VERSION - -#I also wanted to "copy over" the system, and thus the reason I added the -# version to Versions/Release-7.20.1 etc. -# now a simple rsync -vaP libcurl.framework /Library/Frameworks will install it -# and setup the right paths to this version, leaving the system version -# "intact", so you can "fix" it later with the links to Versions/A/... - - -OLD_SDK=`ls /Developer/SDKs|head -1` -NEW_SDK=`ls -r /Developer/SDKs|head -1` - -if test "0"$USE_OLD -gt 0 -then - SDK32=$OLD_SDK -else - SDK32=$NEW_SDK -fi - -MACVER=`echo $SDK32|sed -e s/[a-zA-Z]//g -e s/.\$//` - -SDK32_DIR='/Developer/SDKs/'$SDK32 -MINVER32='-mmacosx-version-min='$MACVER -ARCHES32='-arch i386 -arch ppc' - - -if test $PPC64_NEEDED -gt 0 -then - SDK64=10.5 - ARCHES64='-arch x86_64 -arch ppc64' - SDK64=`ls /Developer/SDKs|grep 10.5|head -1` -else - ARCHES64='-arch x86_64' - #We "know" that 10.4 and earlier do not support 64bit - OLD_SDK64=`ls /Developer/SDKs|egrep -v "10.[0-4]"|head -1` - NEW_SDK64=`ls -r /Developer/SDKs|egrep -v "10.[0-4]"|head -1` - if test $USE_OLD -gt 0 - then - SDK64=$OLD_SDK64 - else - SDK64=$NEW_SDK64 - fi -fi - -SDK64_DIR='/Developer/SDKs/'$SDK64 -MACVER64=`echo $SDK64|sed -e s/[a-zA-Z]//g -e s/.\$//` - -MINVER64='-mmacosx-version-min='$MACVER64 - -if test ! -z $SDK32; then - echo "----Configuring libcurl for 32 bit universal framework..." - make clean - ./configure --disable-dependency-tracking --disable-static --with-gssapi \ - CFLAGS="-Os -isysroot $SDK32_DIR $ARCHES32 $MINVER32" \ - LDFLAGS="-Wl,-syslibroot,$SDK32_DIR $ARCHES32 $MINVER32 -Wl,-headerpad_max_install_names" \ - CC=$CC - - echo "----Building 32 bit libcurl..." - make - - echo "----Creating 32 bit framework..." - rm -r libcurl.framework - mkdir -p libcurl.framework/${FRAMEWORK_VERSION}/Resources - cp lib/.libs/libcurl.dylib libcurl.framework/${FRAMEWORK_VERSION}/libcurl - install_name_tool -id @executable_path/../Frameworks/libcurl.framework/${FRAMEWORK_VERSION}/libcurl libcurl.framework/${FRAMEWORK_VERSION}/libcurl - /usr/bin/sed -e "s/7\.12\.3/$VERSION/" lib/libcurl.plist >libcurl.framework/${FRAMEWORK_VERSION}/Resources/Info.plist - mkdir -p libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl - cp include/curl/*.h libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl - pushd libcurl.framework - ln -fs ${FRAMEWORK_VERSION}/libcurl libcurl - ln -fs ${FRAMEWORK_VERSION}/Resources Resources - ln -fs ${FRAMEWORK_VERSION}/Headers Headers - cd Versions - ln -fs ${FRAMEWORK_VERSION} Current - - echo TEsting for SDK64 - if test -d $SDK64_DIR; then - echo entering... - popd - make clean - echo "----Configuring libcurl for 64 bit universal framework..." - ./configure --disable-dependency-tracking --disable-static --with-gssapi \ - CFLAGS="-Os -isysroot $SDK64_DIR $ARCHES64 $MINVER64" \ - LDFLAGS="-Wl,-syslibroot,$SDK64_DIR $ARCHES64 $MINVER64 -Wl,-headerpad_max_install_names" \ - CC=$CC - - echo "----Building 64 bit libcurl..." - make - - echo "----Appending 64 bit framework to 32 bit framework..." - cp lib/.libs/libcurl.dylib libcurl.framework/${FRAMEWORK_VERSION}/libcurl64 - install_name_tool -id @executable_path/../Frameworks/libcurl.framework/${FRAMEWORK_VERSION}/libcurl libcurl.framework/${FRAMEWORK_VERSION}/libcurl64 - cp libcurl.framework/${FRAMEWORK_VERSION}/libcurl libcurl.framework/${FRAMEWORK_VERSION}/libcurl32 - pwd - lipo libcurl.framework/${FRAMEWORK_VERSION}/libcurl32 libcurl.framework/${FRAMEWORK_VERSION}/libcurl64 -create -output libcurl.framework/${FRAMEWORK_VERSION}/libcurl - rm libcurl.framework/${FRAMEWORK_VERSION}/libcurl32 libcurl.framework/${FRAMEWORK_VERSION}/libcurl64 - cp libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild.h libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild32.h - cp include/curl/curlbuild.h libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild64.h - cat >libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild.h <, 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. -# -########################################################################### - -VC=vc6 - -all: - ./configure - make - -ssl: - ./configure --with-ssl - make - -borland: - cd lib - $(MAKE) -f Makefile.b32 - cd ..\src - $(MAKE) -f Makefile.b32 - -borland-ssl: - cd lib - $(MAKE) -f Makefile.b32 WITH_SSL=1 - cd ..\src - $(MAKE) -f Makefile.b32 WITH_SSL=1 - -borland-ssl-zlib: - cd lib - $(MAKE) -f Makefile.b32 WITH_SSL=1 WITH_ZLIB=1 - cd ..\src - $(MAKE) -f Makefile.b32 WITH_SSL=1 WITH_ZLIB=1 - -borland-clean: - cd lib - $(MAKE) -f Makefile.b32 clean - cd ..\src - $(MAKE) -f Makefile.b32 clean - -watcom: .SYMBOLIC - cd lib && $(MAKE) -u -f Makefile.Watcom - cd src && $(MAKE) -u -f Makefile.Watcom - -watcom-clean: .SYMBOLIC - cd lib && $(MAKE) -u -f Makefile.Watcom clean - cd src && $(MAKE) -u -f Makefile.Watcom clean - -watcom-vclean: .SYMBOLIC - cd lib && $(MAKE) -u -f Makefile.Watcom vclean - cd src && $(MAKE) -u -f Makefile.Watcom vclean - -mingw32: - $(MAKE) -C lib -f Makefile.m32 - $(MAKE) -C src -f Makefile.m32 - -mingw32-clean: - $(MAKE) -C lib -f Makefile.m32 clean - $(MAKE) -C src -f Makefile.m32 clean - $(MAKE) -C docs/examples -f Makefile.m32 clean - -mingw32-vclean mingw32-distclean: - $(MAKE) -C lib -f Makefile.m32 vclean - $(MAKE) -C src -f Makefile.m32 vclean - $(MAKE) -C docs/examples -f Makefile.m32 vclean - -mingw32-examples%: - $(MAKE) -C docs/examples -f Makefile.m32 CFG=$@ - -mingw32%: - $(MAKE) -C lib -f Makefile.m32 CFG=$@ - $(MAKE) -C src -f Makefile.m32 CFG=$@ - -vc-clean: $(VC) - cd lib - nmake -f Makefile.$(VC) clean - cd ..\src - nmake -f Makefile.$(VC) clean - -vc-all: $(VC) - cd lib - nmake -f Makefile.$(VC) cfg=release - nmake -f Makefile.$(VC) cfg=release-ssl - nmake -f Makefile.$(VC) cfg=release-zlib - nmake -f Makefile.$(VC) cfg=release-ssl-zlib - nmake -f Makefile.$(VC) cfg=release-ssl-dll - nmake -f Makefile.$(VC) cfg=release-zlib-dll - nmake -f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll - nmake -f Makefile.$(VC) cfg=release-dll - nmake -f Makefile.$(VC) cfg=release-dll-ssl-dll - nmake -f Makefile.$(VC) cfg=release-dll-zlib-dll - nmake -f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll - nmake -f Makefile.$(VC) cfg=debug - nmake -f Makefile.$(VC) cfg=debug-ssl - nmake -f Makefile.$(VC) cfg=debug-zlib - nmake -f Makefile.$(VC) cfg=debug-ssl-zlib - nmake -f Makefile.$(VC) cfg=debug-ssl-dll - nmake -f Makefile.$(VC) cfg=debug-zlib-dll - nmake -f Makefile.$(VC) cfg=debug-ssl-dll-zlib-dll - nmake -f Makefile.$(VC) cfg=debug-dll - nmake -f Makefile.$(VC) cfg=debug-dll-ssl-dll - nmake -f Makefile.$(VC) cfg=debug-dll-zlib-dll - nmake -f Makefile.$(VC) cfg=debug-dll-ssl-dll-zlib-dll - -vc: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release - cd ..\src - nmake /f Makefile.$(VC) - -vc-x64: $(VC) - cd lib - nmake /f Makefile.$(VC) MACHINE=x64 cfg=release - cd ..\src - nmake /f Makefile.$(VC) MACHINE=x64 cfg=release - -vc-zlib: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-zlib - cd ..\src - nmake /f Makefile.$(VC) cfg=release-zlib - -vc-ssl: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-ssl - cd ..\src - nmake /f Makefile.$(VC) cfg=release-ssl - -vc-ssl-zlib: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-ssl-zlib - cd ..\src - nmake /f Makefile.$(VC) cfg=release-ssl-zlib - -vc-x64-ssl-zlib: $(VC) - cd lib - nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib - cd ..\src - nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib - -vc-ssl-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-ssl-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-ssl-dll - -vc-dll-ssl-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll - -vc-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-dll - -vc-dll-zlib-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-dll-zlib-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-dll-zlib-dll - -vc-dll-ssl-dll-zlib-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll - -vc-ssl-dll-zlib-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll - -vc-zlib-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-zlib-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-zlib-dll - -vc-sspi: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release WINDOWS_SSPI=1 - cd ..\src - nmake /f Makefile.$(VC) cfg=release WINDOWS_SSPI=1 - -djgpp: - $(MAKE) -C lib -f Makefile.dj - $(MAKE) -C src -f Makefile.dj - -cygwin: - ./configure - make - -cygwin-ssl: - ./configure --with-ssl - make - -amiga: - cd ./lib && make -f makefile.amiga - cd ./src && make -f makefile.amiga - -netware: - $(MAKE) -C lib -f Makefile.netware - $(MAKE) -C src -f Makefile.netware - -netware-clean: - $(MAKE) -C lib -f Makefile.netware clean - $(MAKE) -C src -f Makefile.netware clean - $(MAKE) -C docs/examples -f Makefile.netware clean - -netware-vclean netware-distclean: - $(MAKE) -C lib -f Makefile.netware vclean - $(MAKE) -C src -f Makefile.netware vclean - $(MAKE) -C docs/examples -f Makefile.netware vclean - -netware-install: - $(MAKE) -C lib -f Makefile.netware install - $(MAKE) -C src -f Makefile.netware install - -netware-examples-%: - $(MAKE) -C docs/examples -f Makefile.netware CFG=$@ - -netware-%: - $(MAKE) -C lib -f Makefile.netware CFG=$@ - $(MAKE) -C src -f Makefile.netware CFG=$@ - -unix: all - -unix-ssl: ssl - -linux: all - -linux-ssl: ssl - -# We don't need to do anything for vc6. -vc6: - -vc8: lib/Makefile.vc8 src/Makefile.vc8 - -lib/Makefile.vc8: lib/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib bufferoverflowu.lib/g" -e "s/VC6/VC8/g" lib/Makefile.vc6 > lib/Makefile.vc8 - -src/Makefile.vc8: src/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib bufferoverflowu.lib/g" -e "s/VC6/VC8/g" src/Makefile.vc6 > src/Makefile.vc8 - -# VC9 makefiles are for use with VS2008 -vc9: lib/Makefile.vc9 src/Makefile.vc9 - -lib/Makefile.vc9: lib/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc9/g" -e "s/VC6/VC9/g" lib/Makefile.vc6 > lib/Makefile.vc9 - -src/Makefile.vc9: src/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc9/g" -e "s/VC6/VC9/g" src/Makefile.vc6 > src/Makefile.vc9 - -# VC10 makefiles are for use with VS2010 -vc10: lib/Makefile.vc10 src/Makefile.vc10 - -lib/Makefile.vc10: lib/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc10/g" -e "s/VC6/VC10/g" lib/Makefile.vc6 > lib/Makefile.vc10 - -src/Makefile.vc10: src/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc10/g" -e "s/VC6/VC10/g" src/Makefile.vc6 > src/Makefile.vc10 - -ca-bundle: lib/mk-ca-bundle.pl - @echo "generate a fresh ca-bundle.crt" - @perl $< -b -l -u lib/ca-bundle.crt - -ca-firefox: lib/firefox-db2pem.sh - @echo "generate a fresh ca-bundle.crt" - ./lib/firefox-db2pem.sh lib/ca-bundle.crt diff --git a/msvc-deps/curl/Makefile.am b/msvc-deps/curl/Makefile.am deleted file mode 100644 index 6ff1d51e..00000000 --- a/msvc-deps/curl/Makefile.am +++ /dev/null @@ -1,165 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2012, 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. -# -########################################################################### - -AUTOMAKE_OPTIONS = foreign - -ACLOCAL_AMFLAGS = -I m4 - -CMAKE_DIST = CMakeLists.txt CMake/CMakeConfigurableFile.in \ -CMake/CurlCheckCSourceCompiles.cmake CMake/CurlCheckCSourceRuns.cmake \ -CMake/CurlTests.c CMake/FindOpenSSL.cmake CMake/FindZLIB.cmake \ -CMake/OtherTests.cmake CMake/Platforms/WindowsCache.cmake \ -CMake/Utilities.cmake include/curl/curlbuild.h.cmake - -WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \ -winbuild/MakefileBuild.vc winbuild/Makefile.vc - -EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \ - curl-style.el sample.emacs RELEASE-NOTES buildconf \ - libcurl.pc.in vc6curl.dsw MacOSX-Framework Android.mk $(CMAKE_DIST) \ - Makefile.msvc.names $(WINBUILD_DIST) lib/libcurl.vers.in - -bin_SCRIPTS = curl-config - -SUBDIRS = lib src include -DIST_SUBDIRS = $(SUBDIRS) tests packages docs - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libcurl.pc - -dist-hook: - rm -rf $(top_builddir)/tests/log - find $(distdir) -name "*.dist" -exec rm {} \; - (distit=`find $(srcdir) -name "*.dist" | grep -v ./ares/`; \ - for file in $$distit; do \ - strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \ - cp $$file $(distdir)$$strip; \ - done) - -html: - cd docs; make html - -pdf: - cd docs; make pdf - -check: test examples - -if CROSSCOMPILING -test-full: test -test-torture: test - -test: - @echo "NOTICE: we can't run the tests when cross-compiling!" - -else - -test: - @(cd tests; $(MAKE) all quiet-test) - -test-full: - @(cd tests; $(MAKE) all full-test) - -test-torture: - @(cd tests; $(MAKE) all torture-test) - -endif - -examples: - @(cd docs/examples; $(MAKE) check) - -# This is a hook to have 'make clean' also clean up the dosc and the tests -# dir. The extra check for the Makefiles being present is necessary because -# 'make distcheck' will make clean first in these directories _before_ it runs -# this hook. -clean-local: - @(if test -f tests/Makefile; then cd tests; $(MAKE) clean; fi) - @(if test -f docs/Makefile; then cd docs; $(MAKE) clean; fi) - -# -# Build source and binary rpms. For rpm-3.0 and above, the ~/.rpmmacros -# must contain the following line: -# %_topdir /home/loic/local/rpm -# and that /home/loic/local/rpm contains the directory SOURCES, BUILD etc. -# -# cd /home/loic/local/rpm ; mkdir -p SOURCES BUILD RPMS/i386 SPECS SRPMS -# -# If additional configure flags are needed to build the package, add the -# following in ~/.rpmmacros -# %configure CFLAGS="%{optflags}" ./configure %{_target_platform} --prefix=%{_prefix} ${AM_CONFIGFLAGS} -# and run make rpm in the following way: -# AM_CONFIGFLAGS='--with-uri=/home/users/loic/local/RedHat-6.2' make rpm -# - -rpms: - $(MAKE) RPMDIST=curl rpm - $(MAKE) RPMDIST=curl-ssl rpm - -rpm: - RPM_TOPDIR=`rpm --showrc | $(PERL) -n -e 'print if(s/.*_topdir\s+(.*)/$$1/)'` ; \ - cp $(srcdir)/packages/Linux/RPM/$(RPMDIST).spec $$RPM_TOPDIR/SPECS ; \ - cp $(PACKAGE)-$(VERSION).tar.gz $$RPM_TOPDIR/SOURCES ; \ - rpm -ba --clean --rmsource $$RPM_TOPDIR/SPECS/$(RPMDIST).spec ; \ - mv $$RPM_TOPDIR/RPMS/i386/$(RPMDIST)-*.rpm . ; \ - mv $$RPM_TOPDIR/SRPMS/$(RPMDIST)-*.src.rpm . - -# -# Build a Solaris pkgadd format file -# run 'make pkgadd' once you've done './configure' and 'make' to make a Solaris pkgadd format -# file (which ends up back in this directory). -# The pkgadd file is in 'pkgtrans' format, so to install on Solaris, do -# pkgadd -d ./HAXXcurl-* -# - -# gak - libtool requires an absoulte directory, hence the pwd below... -pkgadd: - umask 022 ; \ - make install DESTDIR=`/bin/pwd`/packages/Solaris/root ; \ - cat COPYING > $(srcdir)/packages/Solaris/copyright ; \ - cd $(srcdir)/packages/Solaris && $(MAKE) package - -# -# Build a cygwin binary tarball installation file -# resulting .tar.bz2 file will end up at packages/Win32/cygwin -cygwinbin: - $(MAKE) -C packages/Win32/cygwin cygwinbin - -# We extend the standard install with a custom hook: -install-data-hook: - cd include && $(MAKE) install - cd docs && $(MAKE) install - -# We extend the standard uninstall with a custom hook: -uninstall-hook: - cd include && $(MAKE) uninstall - cd docs && $(MAKE) uninstall - -ca-bundle: lib/mk-ca-bundle.pl - @echo "generate a fresh ca-bundle.crt" - @perl $< -b -l -u lib/ca-bundle.crt - -ca-firefox: lib/firefox-db2pem.sh - @echo "generate a fresh ca-bundle.crt" - ./lib/firefox-db2pem.sh lib/ca-bundle.crt - -checksrc: - cd lib && $(MAKE) checksrc - cd src && $(MAKE) checksrc diff --git a/msvc-deps/curl/Makefile.in b/msvc-deps/curl/Makefile.in deleted file mode 100644 index 7f6cb281..00000000 --- a/msvc-deps/curl/Makefile.in +++ /dev/null @@ -1,932 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2012, 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. -# -########################################################################### - - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/curl-config.in \ - $(srcdir)/libcurl.pc.in $(top_srcdir)/configure COPYING \ - compile config.guess config.sub depcomp install-sh ltmain.sh \ - missing mkinstalldirs -subdir = . -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-openssl.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)/m4/xc-translit.m4 \ - $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno configure.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \ - $(top_builddir)/include/curl/curlbuild.h -CONFIG_CLEAN_FILES = curl-config libcurl.pc -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)" -binSCRIPT_INSTALL = $(INSTALL_SCRIPT) -SCRIPTS = $(bin_SCRIPTS) -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -pkgconfigDATA_INSTALL = $(INSTALL_DATA) -DATA = $(pkgconfig_DATA) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_LIBHOSTNAME_FALSE = @BUILD_LIBHOSTNAME_FALSE@ -BUILD_LIBHOSTNAME_TRUE = @BUILD_LIBHOSTNAME_TRUE@ -BUILD_UNITTESTS_FALSE = @BUILD_UNITTESTS_FALSE@ -BUILD_UNITTESTS_TRUE = @BUILD_UNITTESTS_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@ -CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@ -CROSSCOMPILING_FALSE = @CROSSCOMPILING_FALSE@ -CROSSCOMPILING_TRUE = @CROSSCOMPILING_TRUE@ -CURLDEBUG_FALSE = @CURLDEBUG_FALSE@ -CURLDEBUG_TRUE = @CURLDEBUG_TRUE@ -CURLVERSION = @CURLVERSION@ -CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ -CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@ -CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ -CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ -CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ -CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@ -CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ -CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@ -CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ -CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ -CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@ -CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@ -CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@ -CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@ -CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ -CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ -CURL_LIBS = @CURL_LIBS@ -CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOING_CURL_SYMBOL_HIDING_FALSE = @DOING_CURL_SYMBOL_HIDING_FALSE@ -DOING_CURL_SYMBOL_HIDING_TRUE = @DOING_CURL_SYMBOL_HIDING_TRUE@ -DOING_NATIVE_WINDOWS_FALSE = @DOING_NATIVE_WINDOWS_FALSE@ -DOING_NATIVE_WINDOWS_TRUE = @DOING_NATIVE_WINDOWS_TRUE@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_SHARED = @ENABLE_SHARED@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@ -HAVE_LDAP_SSL = @HAVE_LDAP_SSL@ -HAVE_LIBZ = @HAVE_LIBZ@ -HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@ -HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@ -HAVE_NSS_INITCONTEXT = @HAVE_NSS_INITCONTEXT@ -HAVE_SSLEAY_SRP = @HAVE_SSLEAY_SRP@ -IDN_ENABLED = @IDN_ENABLED@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -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@ -LIBMETALINK_CFLAGS = @LIBMETALINK_CFLAGS@ -LIBMETALINK_LDFLAGS = @LIBMETALINK_LDFLAGS@ -LIBMETALINK_LIBS = @LIBMETALINK_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -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_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH = @PATH@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PKGADD_NAME = @PKGADD_NAME@ -PKGADD_PKG = @PKGADD_PKG@ -PKGADD_VENDOR = @PKGADD_VENDOR@ -PKGCONFIG = @PKGCONFIG@ -RANDOM_FILE = @RANDOM_FILE@ -RANLIB = @RANLIB@ -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@ -STRIP = @STRIP@ -SUPPORT_FEATURES = @SUPPORT_FEATURES@ -SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ -TEST_SERVER_LIBS = @TEST_SERVER_LIBS@ -USE_ARES = @USE_ARES@ -USE_AXTLS = @USE_AXTLS@ -USE_CPPFLAG_BUILDING_LIBCURL_FALSE = @USE_CPPFLAG_BUILDING_LIBCURL_FALSE@ -USE_CPPFLAG_BUILDING_LIBCURL_TRUE = @USE_CPPFLAG_BUILDING_LIBCURL_TRUE@ -USE_CPPFLAG_CURL_STATICLIB_FALSE = @USE_CPPFLAG_CURL_STATICLIB_FALSE@ -USE_CPPFLAG_CURL_STATICLIB_TRUE = @USE_CPPFLAG_CURL_STATICLIB_TRUE@ -USE_CYASSL = @USE_CYASSL@ -USE_DARWINSSL = @USE_DARWINSSL@ -USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@ -USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@ -USE_GNUTLS = @USE_GNUTLS@ -USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@ -USE_LIBRTMP = @USE_LIBRTMP@ -USE_LIBSSH2 = @USE_LIBSSH2@ -USE_MANUAL_FALSE = @USE_MANUAL_FALSE@ -USE_MANUAL_TRUE = @USE_MANUAL_TRUE@ -USE_NSS = @USE_NSS@ -USE_OPENLDAP = @USE_OPENLDAP@ -USE_POLARSSL = @USE_POLARSSL@ -USE_SCHANNEL = @USE_SCHANNEL@ -USE_SSLEAY = @USE_SSLEAY@ -USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ -VERSION = @VERSION@ -VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@ -VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@ -VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@ -VERSIONNUM = @VERSIONNUM@ -ac_ct_AR = @ac_ct_AR@ -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@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libext = @libext@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -AUTOMAKE_OPTIONS = foreign -ACLOCAL_AMFLAGS = -I m4 -CMAKE_DIST = CMakeLists.txt CMake/CMakeConfigurableFile.in \ -CMake/CurlCheckCSourceCompiles.cmake CMake/CurlCheckCSourceRuns.cmake \ -CMake/CurlTests.c CMake/FindOpenSSL.cmake CMake/FindZLIB.cmake \ -CMake/OtherTests.cmake CMake/Platforms/WindowsCache.cmake \ -CMake/Utilities.cmake include/curl/curlbuild.h.cmake - -WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \ -winbuild/MakefileBuild.vc winbuild/Makefile.vc - -EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \ - curl-style.el sample.emacs RELEASE-NOTES buildconf \ - libcurl.pc.in vc6curl.dsw MacOSX-Framework Android.mk $(CMAKE_DIST) \ - Makefile.msvc.names $(WINBUILD_DIST) lib/libcurl.vers.in - -bin_SCRIPTS = curl-config -SUBDIRS = lib src include -DIST_SUBDIRS = $(SUBDIRS) tests packages docs -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libcurl.pc -all: all-recursive - -.SUFFIXES: -am--refresh: - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ - cd $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -curl-config: $(top_builddir)/config.status $(srcdir)/curl-config.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -libcurl.pc: $(top_builddir)/config.status $(srcdir)/libcurl.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -install-binSCRIPTS: $(bin_SCRIPTS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" - @list='$(bin_SCRIPTS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f $$d$$p; then \ - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ - echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ - else :; fi; \ - done - -uninstall-binSCRIPTS: - @$(NORMAL_UNINSTALL) - @list='$(bin_SCRIPTS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ - rm -f "$(DESTDIR)$(bindir)/$$f"; \ - done - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)" - @list='$(pkgconfig_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ - $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ - rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ - done - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(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 | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - 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 | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - 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 | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - $(am__remove_distdir) - mkdir $(distdir) - $(mkdir_p) $(distdir)/. $(distdir)/CMake $(distdir)/CMake/Platforms $(distdir)/include/curl $(distdir)/lib $(distdir)/m4 $(distdir)/packages/AIX/RPM $(distdir)/packages/EPM $(distdir)/packages/Linux/RPM $(distdir)/winbuild - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod u+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile $(SCRIPTS) $(DATA) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool clean-local mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: install-pkgconfigDATA - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-data-hook - -install-exec-am: install-binSCRIPTS - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-binSCRIPTS uninstall-info-am \ - uninstall-pkgconfigDATA - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) uninstall-hook - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ - check-am clean clean-generic clean-libtool clean-local \ - clean-recursive ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-hook dist-shar dist-tarZ dist-zip distcheck \ - distclean distclean-generic distclean-libtool \ - distclean-recursive distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-binSCRIPTS install-data \ - install-data-am install-data-hook install-exec install-exec-am \ - install-info install-info-am install-man install-pkgconfigDATA \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am \ - uninstall-binSCRIPTS uninstall-hook uninstall-info-am \ - uninstall-pkgconfigDATA - - -dist-hook: - rm -rf $(top_builddir)/tests/log - find $(distdir) -name "*.dist" -exec rm {} \; - (distit=`find $(srcdir) -name "*.dist" | grep -v ./ares/`; \ - for file in $$distit; do \ - strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \ - cp $$file $(distdir)$$strip; \ - done) - -html: - cd docs; make html - -pdf: - cd docs; make pdf - -check: test examples - -@CROSSCOMPILING_TRUE@test-full: test -@CROSSCOMPILING_TRUE@test-torture: test - -@CROSSCOMPILING_TRUE@test: -@CROSSCOMPILING_TRUE@ @echo "NOTICE: we can't run the tests when cross-compiling!" - -@CROSSCOMPILING_FALSE@test: -@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all quiet-test) - -@CROSSCOMPILING_FALSE@test-full: -@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all full-test) - -@CROSSCOMPILING_FALSE@test-torture: -@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all torture-test) - -examples: - @(cd docs/examples; $(MAKE) check) - -# This is a hook to have 'make clean' also clean up the dosc and the tests -# dir. The extra check for the Makefiles being present is necessary because -# 'make distcheck' will make clean first in these directories _before_ it runs -# this hook. -clean-local: - @(if test -f tests/Makefile; then cd tests; $(MAKE) clean; fi) - @(if test -f docs/Makefile; then cd docs; $(MAKE) clean; fi) - -# -# Build source and binary rpms. For rpm-3.0 and above, the ~/.rpmmacros -# must contain the following line: -# %_topdir /home/loic/local/rpm -# and that /home/loic/local/rpm contains the directory SOURCES, BUILD etc. -# -# cd /home/loic/local/rpm ; mkdir -p SOURCES BUILD RPMS/i386 SPECS SRPMS -# -# If additional configure flags are needed to build the package, add the -# following in ~/.rpmmacros -# %configure CFLAGS="%{optflags}" ./configure %{_target_platform} --prefix=%{_prefix} ${AM_CONFIGFLAGS} -# and run make rpm in the following way: -# AM_CONFIGFLAGS='--with-uri=/home/users/loic/local/RedHat-6.2' make rpm -# - -rpms: - $(MAKE) RPMDIST=curl rpm - $(MAKE) RPMDIST=curl-ssl rpm - -rpm: - RPM_TOPDIR=`rpm --showrc | $(PERL) -n -e 'print if(s/.*_topdir\s+(.*)/$$1/)'` ; \ - cp $(srcdir)/packages/Linux/RPM/$(RPMDIST).spec $$RPM_TOPDIR/SPECS ; \ - cp $(PACKAGE)-$(VERSION).tar.gz $$RPM_TOPDIR/SOURCES ; \ - rpm -ba --clean --rmsource $$RPM_TOPDIR/SPECS/$(RPMDIST).spec ; \ - mv $$RPM_TOPDIR/RPMS/i386/$(RPMDIST)-*.rpm . ; \ - mv $$RPM_TOPDIR/SRPMS/$(RPMDIST)-*.src.rpm . - -# -# Build a Solaris pkgadd format file -# run 'make pkgadd' once you've done './configure' and 'make' to make a Solaris pkgadd format -# file (which ends up back in this directory). -# The pkgadd file is in 'pkgtrans' format, so to install on Solaris, do -# pkgadd -d ./HAXXcurl-* -# - -# gak - libtool requires an absoulte directory, hence the pwd below... -pkgadd: - umask 022 ; \ - make install DESTDIR=`/bin/pwd`/packages/Solaris/root ; \ - cat COPYING > $(srcdir)/packages/Solaris/copyright ; \ - cd $(srcdir)/packages/Solaris && $(MAKE) package - -# -# Build a cygwin binary tarball installation file -# resulting .tar.bz2 file will end up at packages/Win32/cygwin -cygwinbin: - $(MAKE) -C packages/Win32/cygwin cygwinbin - -# We extend the standard install with a custom hook: -install-data-hook: - cd include && $(MAKE) install - cd docs && $(MAKE) install - -# We extend the standard uninstall with a custom hook: -uninstall-hook: - cd include && $(MAKE) uninstall - cd docs && $(MAKE) uninstall - -ca-bundle: lib/mk-ca-bundle.pl - @echo "generate a fresh ca-bundle.crt" - @perl $< -b -l -u lib/ca-bundle.crt - -ca-firefox: lib/firefox-db2pem.sh - @echo "generate a fresh ca-bundle.crt" - ./lib/firefox-db2pem.sh lib/ca-bundle.crt - -checksrc: - cd lib && $(MAKE) checksrc - cd src && $(MAKE) checksrc -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/msvc-deps/curl/Makefile.msvc.names b/msvc-deps/curl/Makefile.msvc.names deleted file mode 100644 index a18f74a0..00000000 --- a/msvc-deps/curl/Makefile.msvc.names +++ /dev/null @@ -1,81 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1999 - 2010, 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. -# -#*************************************************************************** - -# -# This file is included from MSVC makefiles located in lib and src, -# providing libcurl common file names required by these makefiles. -# - -# ------------------ -# libcurl base name -# ------------------ - -!IF !DEFINED(LIB_NAME) || "$(LIB_NAME)" == "" -LIB_NAME = libcurl -!ENDIF - -# ------------------------------------------------- -# libcurl static and dynamic libraries common base -# file names for release and debug configurations -# ------------------------------------------------- - -!IF !DEFINED(LIB_NAME_STA_REL) || "$(LIB_NAME_STA_REL)" == "" -LIB_NAME_STA_REL = $(LIB_NAME) -!ENDIF - -!IF !DEFINED(LIB_NAME_STA_DBG) || "$(LIB_NAME_STA_DBG)" == "" -LIB_NAME_STA_DBG = $(LIB_NAME_STA_REL)d -!ENDIF - -!IF !DEFINED(LIB_NAME_DYN_REL) || "$(LIB_NAME_DYN_REL)" == "" -LIB_NAME_DYN_REL = $(LIB_NAME) -!ENDIF - -!IF !DEFINED(LIB_NAME_DYN_DBG) || "$(LIB_NAME_DYN_DBG)" == "" -LIB_NAME_DYN_DBG = $(LIB_NAME_DYN_REL)d -!ENDIF - -# -------------------------------------------- -# Base names for libcurl DLL import libraries -# -------------------------------------------- - -!IF !DEFINED(LIB_NAME_IMP_REL) || "$(LIB_NAME_IMP_REL)" == "" -LIB_NAME_IMP_REL = $(LIB_NAME_DYN_REL)_imp -!ENDIF - -!IF !DEFINED(LIB_NAME_IMP_DBG) || "$(LIB_NAME_IMP_DBG)" == "" -LIB_NAME_IMP_DBG = $(LIB_NAME_DYN_DBG)_imp -!ENDIF - -# -------------------------------------- -# File names with extension and no path -# -------------------------------------- - -LIBCURL_STA_LIB_REL = $(LIB_NAME_STA_REL).lib -LIBCURL_STA_LIB_DBG = $(LIB_NAME_STA_DBG).lib -LIBCURL_DYN_LIB_REL = $(LIB_NAME_DYN_REL).dll -LIBCURL_DYN_LIB_DBG = $(LIB_NAME_DYN_DBG).dll -LIBCURL_IMP_LIB_REL = $(LIB_NAME_IMP_REL).lib -LIBCURL_IMP_LIB_DBG = $(LIB_NAME_IMP_DBG).lib -LIBCURL_DYN_LIB_PDB = $(LIB_NAME_IMP_DBG).pdb - -# End of Makefile.msvc.names diff --git a/msvc-deps/curl/README b/msvc-deps/curl/README deleted file mode 100644 index 2ffacc32..00000000 --- a/msvc-deps/curl/README +++ /dev/null @@ -1,49 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - -README - - Curl is a command line tool for transferring data specified with URL - syntax. Find out how to use curl by reading the curl.1 man page or the - MANUAL document. Find out how to install Curl by reading the INSTALL - document. - - libcurl is the library curl is using to do its job. It is readily - available to be used by your software. Read the libcurl.3 man page to - learn how! - - You find answers to the most frequent questions we get in the FAQ document. - - 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. - -CONTACT - - If you have problems, questions, ideas or suggestions, please contact us - by posting to a suitable mailing list. See http://curl.haxx.se/mail/ - - All contributors to the project are listed in the THANKS document. - -WEB SITE - - Visit the curl web site for the latest news and downloads: - - http://curl.haxx.se/ - -GIT - - To download the very latest source off the GIT server do this: - - git clone git://github.com/bagder/curl.git - - (you'll get a directory named curl created, filled with the source code) - -NOTICE - - Curl contains pieces of source code that is Copyright (c) 1998, 1999 - Kungliga Tekniska Högskolan. This notice is included here to comply with the - distribution terms. diff --git a/msvc-deps/curl/RELEASE-NOTES b/msvc-deps/curl/RELEASE-NOTES deleted file mode 100644 index ce4002fd..00000000 --- a/msvc-deps/curl/RELEASE-NOTES +++ /dev/null @@ -1,87 +0,0 @@ -Curl and libcurl 7.28.1 - - Public curl releases: 130 - Command line options: 152 - curl_easy_setopt() options: 199 - Public functions in libcurl: 58 - Known libcurl bindings: 39 - Contributors: 979 - -This release includes the following changes: - - o metalink/md5: Use CommonCrypto on Apple operating systems - o href_extractor: new example code extracting href elements - o NSS can be used for metalink hashing [13] - -This release includes the following bugfixes: - - o Fix broken libmetalink-aware OpenSSL build - o gnutls: fix the error is fatal logic [1] - o darwinssl: un-broke iOS build, fix error on server disconnect - o asyn-ares: restore functionality with c-ares < 1.6.1 [2] - o tlsauthtype: deal with the string case insensitively [3] - o Fixed MSVC libssh2 static build - o evhiperfifo: fix the pointer passed to WRITEDATA [6] - o BUGS: fix the bug tracker URL [4] - o winbuild: Use machine type of development environment - o FTP: prevent the multi interface from blocking [5] - o uniformly use AM_CPPFLAGS, avoid deprecated INCLUDES - o httpcustomheader.c: free the headers after use - o fix >2000 bytes POST over NTLM-using proxy [7] - o redirects to URLs with fragments [8] - o don't send '#' fragments when using proxy [9] - o OpenSSL: show full issuer string [10] - o fix HTTP auth regression [11] - o CURLOPT_SSL_VERIFYHOST: stop supporting the 1 value [12] - o ftp: EPSV-disable fix over SOCKS [14] - o Digest: Add microseconds into nounce calculation [15] - o SCP/SFTP: improve error code used for send failures - o SSL: Several SSL-backend related fixes - o removed the notorious "additional stuff not fine" debug output - o OpenSSL: Disable SSL/TLS compression - avoid the "CRIME" attack - o FILE: Make upload-writes unbuffered - o custom memory callbacks failure with HTTP proxy (and more) [16] - o TFTP: handle resends - o autoconf: don't force-disable compiler debug option - o winbuild: Fix PDB file output [17] - o test2032: spurious failure caused by premature termination [18] - o memory leak: CURLOPT_RESOLVE with multi interface [19] - -This release includes the following known bugs: - - o see docs/KNOWN_BUGS (http://curl.haxx.se/docs/knownbugs.html) - -This release would not have looked like this without help, code, reports and -advice from friends like these: - - Guenter Knauf, Alessandro Ghedini, Nick Zitzmann, Michal Kowalczyk, - Jeff Connelly, Oscar Norlander, Guido Berhoerster, Marc Hoersken, - Dave Reisner, Jan Ehrhardt, John Suprock, Alessandro Ghedini, - Lars Buitinck, Anton Malov, Sergei Nikulov, Patrick Monnerat, - Gabriel Sjoberg, Oscar Koeroo, Fabian Keil, Johnny Luong, Cristian Rodríguez, - Sebastian Rasmussen, Mark Snelling, Christian Vogt, Marcin Adamski, - Ajit Dhumale, Alex Gruz - - Thanks! (and sorry if I forgot to mention someone) - -References to bug reports and discussions on issues: - - [1] = http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690551 - [2] = http://curl.haxx.se/bug/view.cgi?id=3577710 - [3] = http://curl.haxx.se/bug/view.cgi?id=3578418 - [4] = http://curl.haxx.se/bug/view.cgi?id=3582408 - [5] = http://curl.haxx.se/bug/view.cgi?id=3579064 - [6] = http://curl.haxx.se/bug/view.cgi?id=3582407 - [7] = http://curl.haxx.se/bug/view.cgi?id=3582321 - [8] = http://curl.haxx.se/bug/view.cgi?id=3581898 - [9] = http://curl.haxx.se/bug/view.cgi?id=3579813 - [10] = http://curl.haxx.se/bug/view.cgi?id=3579286 - [11] = http://curl.haxx.se/bug/view.cgi?id=3582718 - [12] = http://daniel.haxx.se/blog/2012/10/25/libcurl-claimed-to-be-dangerous/ - [13] = http://curl.haxx.se/bug/view.cgi?id=3578163 - [14] = http://curl.haxx.se/bug/view.cgi?id=3586338 - [15] = https://github.com/bagder/curl/pull/50 - [16] = http://curl.haxx.se/mail/lib-2012-11/0125.html - [17] = http://curl.haxx.se/bug/view.cgi?id=3586741 - [18] = http://curl.haxx.se/mail/lib-2012-11/0095.html - [19] = http://curl.haxx.se/bug/view.cgi?id=3575448 diff --git a/msvc-deps/curl/acinclude.m4 b/msvc-deps/curl/acinclude.m4 deleted file mode 100644 index 93057454..00000000 --- a/msvc-deps/curl/acinclude.m4 +++ /dev/null @@ -1,3297 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2012, 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. -# -#*************************************************************************** - - -dnl CURL_CHECK_DEF (SYMBOL, [INCLUDES], [SILENT]) -dnl ------------------------------------------------- -dnl Use the C preprocessor to find out if the given object-style symbol -dnl is defined and get its expansion. This macro will not use default -dnl includes even if no INCLUDES argument is given. This macro will run -dnl silently when invoked with three arguments. If the expansion would -dnl result in a set of double-quoted strings the returned expansion will -dnl actually be a single double-quoted string concatenating all them. - -AC_DEFUN([CURL_CHECK_DEF], [ - AS_VAR_PUSHDEF([ac_HaveDef], [curl_cv_have_def_$1])dnl - AS_VAR_PUSHDEF([ac_Def], [curl_cv_def_$1])dnl - if test -z "$SED"; then - AC_MSG_ERROR([SED not set. Cannot continue without SED being set.]) - fi - if test -z "$GREP"; then - AC_MSG_ERROR([GREP not set. Cannot continue without GREP being set.]) - fi - ifelse($3,,[AC_MSG_CHECKING([for preprocessor definition of $1])]) - tmp_exp="" - AC_PREPROC_IFELSE([ - AC_LANG_SOURCE( -ifelse($2,,,[$2])[[ -#ifdef $1 -CURL_DEF_TOKEN $1 -#endif - ]]) - ],[ - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[[ ]][[ ]]*//' 2>/dev/null | \ - "$SED" 's/[["]][[ ]]*[["]]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "$1"; then - tmp_exp="" - fi - ]) - if test -z "$tmp_exp"; then - AS_VAR_SET(ac_HaveDef, no) - ifelse($3,,[AC_MSG_RESULT([no])]) - else - AS_VAR_SET(ac_HaveDef, yes) - AS_VAR_SET(ac_Def, $tmp_exp) - ifelse($3,,[AC_MSG_RESULT([$tmp_exp])]) - fi - AS_VAR_POPDEF([ac_Def])dnl - AS_VAR_POPDEF([ac_HaveDef])dnl -]) - - -dnl CURL_CHECK_DEF_CC (SYMBOL, [INCLUDES], [SILENT]) -dnl ------------------------------------------------- -dnl Use the C compiler to find out only if the given symbol is defined -dnl or not, this can not find out its expansion. This macro will not use -dnl default includes even if no INCLUDES argument is given. This macro -dnl will run silently when invoked with three arguments. - -AC_DEFUN([CURL_CHECK_DEF_CC], [ - AS_VAR_PUSHDEF([ac_HaveDef], [curl_cv_have_def_$1])dnl - ifelse($3,,[AC_MSG_CHECKING([for compiler definition of $1])]) - AC_COMPILE_IFELSE([ - AC_LANG_SOURCE( -ifelse($2,,,[$2])[[ -int main (void) -{ -#ifdef $1 - return 0; -#else - force compilation error -#endif -} - ]]) - ],[ - tst_symbol_defined="yes" - ],[ - tst_symbol_defined="no" - ]) - if test "$tst_symbol_defined" = "yes"; then - AS_VAR_SET(ac_HaveDef, yes) - ifelse($3,,[AC_MSG_RESULT([yes])]) - else - AS_VAR_SET(ac_HaveDef, no) - ifelse($3,,[AC_MSG_RESULT([no])]) - fi - AS_VAR_POPDEF([ac_HaveDef])dnl -]) - - -dnl CURL_CHECK_LIB_XNET -dnl ------------------------------------------------- -dnl Verify if X/Open network library is required. - -AC_DEFUN([CURL_CHECK_LIB_XNET], [ - AC_MSG_CHECKING([if X/Open network library is required]) - tst_lib_xnet_required="no" - AC_COMPILE_IFELSE([ - AC_LANG_SOURCE([[ -int main (void) -{ -#if defined(__hpux) && defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 600) - return 0; -#elif defined(__hpux) && defined(_XOPEN_SOURCE_EXTENDED) - return 0; -#else - force compilation error -#endif -} - ]]) - ],[ - tst_lib_xnet_required="yes" - LIBS="$LIBS -lxnet" - ]) - AC_MSG_RESULT([$tst_lib_xnet_required]) -]) - - -dnl CURL_CHECK_AIX_ALL_SOURCE -dnl ------------------------------------------------- -dnl Provides a replacement of traditional AC_AIX with -dnl an uniform behaviour across all autoconf versions, -dnl and with our own placement rules. - -AC_DEFUN([CURL_CHECK_AIX_ALL_SOURCE], [ - AH_VERBATIM([_ALL_SOURCE], - [/* Define to 1 if OS is AIX. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif]) - AC_BEFORE([$0], [AC_SYS_LARGEFILE])dnl - AC_BEFORE([$0], [CURL_CONFIGURE_REENTRANT])dnl - AC_MSG_CHECKING([if OS is AIX (to define _ALL_SOURCE)]) - AC_EGREP_CPP([yes_this_is_aix],[ -#ifdef _AIX - yes_this_is_aix -#endif - ],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(_ALL_SOURCE) - ],[ - AC_MSG_RESULT([no]) - ]) -]) - - -dnl CURL_CHECK_HEADER_WINDOWS -dnl ------------------------------------------------- -dnl Check for compilable and valid windows.h header - -AC_DEFUN([CURL_CHECK_HEADER_WINDOWS], [ - AC_CACHE_CHECK([for windows.h], [ac_cv_header_windows_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include - ]],[[ -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINDOWS_H shall not be defined. -#else - int dummy=2*WINVER; -#endif - ]]) - ],[ - ac_cv_header_windows_h="yes" - ],[ - ac_cv_header_windows_h="no" - ]) - ]) - case "$ac_cv_header_windows_h" in - yes) - AC_DEFINE_UNQUOTED(HAVE_WINDOWS_H, 1, - [Define to 1 if you have the windows.h header file.]) - AC_DEFINE_UNQUOTED(WIN32_LEAN_AND_MEAN, 1, - [Define to avoid automatic inclusion of winsock.h]) - ;; - esac -]) - - -dnl CURL_CHECK_NATIVE_WINDOWS -dnl ------------------------------------------------- -dnl Check if building a native Windows target - -AC_DEFUN([CURL_CHECK_NATIVE_WINDOWS], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl - AC_CACHE_CHECK([whether build target is a native Windows one], [ac_cv_native_windows], [ - if test "$ac_cv_header_windows_h" = "no"; then - ac_cv_native_windows="no" - else - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - ]],[[ -#if defined(__MINGW32__) || defined(__MINGW32CE__) || \ - (defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64))) - int dummy=1; -#else - Not a native Windows build target. -#endif - ]]) - ],[ - ac_cv_native_windows="yes" - ],[ - ac_cv_native_windows="no" - ]) - fi - ]) - AM_CONDITIONAL(DOING_NATIVE_WINDOWS, test "x$ac_cv_native_windows" = xyes) -]) - - -dnl CURL_CHECK_HEADER_WINSOCK -dnl ------------------------------------------------- -dnl Check for compilable and valid winsock.h header - -AC_DEFUN([CURL_CHECK_HEADER_WINSOCK], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl - AC_CACHE_CHECK([for winsock.h], [ac_cv_header_winsock_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - ]],[[ -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINSOCK_H shall not be defined. -#else - int dummy=WSACleanup(); -#endif - ]]) - ],[ - ac_cv_header_winsock_h="yes" - ],[ - ac_cv_header_winsock_h="no" - ]) - ]) - case "$ac_cv_header_winsock_h" in - yes) - AC_DEFINE_UNQUOTED(HAVE_WINSOCK_H, 1, - [Define to 1 if you have the winsock.h header file.]) - ;; - esac -]) - - -dnl CURL_CHECK_HEADER_WINSOCK2 -dnl ------------------------------------------------- -dnl Check for compilable and valid winsock2.h header - -AC_DEFUN([CURL_CHECK_HEADER_WINSOCK2], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl - AC_CACHE_CHECK([for winsock2.h], [ac_cv_header_winsock2_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - ]],[[ -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WINSOCK2_H shall not be defined. -#else - int dummy=2*IPPROTO_ESP; -#endif - ]]) - ],[ - ac_cv_header_winsock2_h="yes" - ],[ - ac_cv_header_winsock2_h="no" - ]) - ]) - case "$ac_cv_header_winsock2_h" in - yes) - AC_DEFINE_UNQUOTED(HAVE_WINSOCK2_H, 1, - [Define to 1 if you have the winsock2.h header file.]) - ;; - esac -]) - - -dnl CURL_CHECK_HEADER_WS2TCPIP -dnl ------------------------------------------------- -dnl Check for compilable and valid ws2tcpip.h header - -AC_DEFUN([CURL_CHECK_HEADER_WS2TCPIP], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl - AC_CACHE_CHECK([for ws2tcpip.h], [ac_cv_header_ws2tcpip_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include -#include - ]],[[ -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WS2TCPIP_H shall not be defined. -#else - int dummy=2*IP_PKTINFO; -#endif - ]]) - ],[ - ac_cv_header_ws2tcpip_h="yes" - ],[ - ac_cv_header_ws2tcpip_h="no" - ]) - ]) - case "$ac_cv_header_ws2tcpip_h" in - yes) - AC_DEFINE_UNQUOTED(HAVE_WS2TCPIP_H, 1, - [Define to 1 if you have the ws2tcpip.h header file.]) - ;; - esac -]) - - -dnl CURL_CHECK_HEADER_WINLDAP -dnl ------------------------------------------------- -dnl Check for compilable and valid winldap.h header - -AC_DEFUN([CURL_CHECK_HEADER_WINLDAP], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl - AC_CACHE_CHECK([for winldap.h], [ac_cv_header_winldap_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#endif -#include - ]],[[ -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINLDAP_H shall not be defined. -#else - LDAP *ldp = ldap_init("dummy", LDAP_PORT); - ULONG res = ldap_unbind(ldp); -#endif - ]]) - ],[ - ac_cv_header_winldap_h="yes" - ],[ - ac_cv_header_winldap_h="no" - ]) - ]) - case "$ac_cv_header_winldap_h" in - yes) - AC_DEFINE_UNQUOTED(HAVE_WINLDAP_H, 1, - [Define to 1 if you have the winldap.h header file.]) - ;; - esac -]) - - -dnl CURL_CHECK_HEADER_WINBER -dnl ------------------------------------------------- -dnl Check for compilable and valid winber.h header - -AC_DEFUN([CURL_CHECK_HEADER_WINBER], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINLDAP])dnl - AC_CACHE_CHECK([for winber.h], [ac_cv_header_winber_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#endif -#include -#include - ]],[[ -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINBER_H shall not be defined. -#else - BERVAL *bvp = NULL; - BerElement *bep = ber_init(bvp); - ber_free(bep, 1); -#endif - ]]) - ],[ - ac_cv_header_winber_h="yes" - ],[ - ac_cv_header_winber_h="no" - ]) - ]) - case "$ac_cv_header_winber_h" in - yes) - AC_DEFINE_UNQUOTED(HAVE_WINBER_H, 1, - [Define to 1 if you have the winber.h header file.]) - ;; - esac -]) - - -dnl CURL_CHECK_HEADER_LBER -dnl ------------------------------------------------- -dnl Check for compilable and valid lber.h header, -dnl and check if it is needed even with ldap.h - -AC_DEFUN([CURL_CHECK_HEADER_LBER], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl - AC_CACHE_CHECK([for lber.h], [ac_cv_header_lber_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#include - ]],[[ - BerValue *bvp = NULL; - BerElement *bep = ber_init(bvp); - ber_free(bep, 1); - ]]) - ],[ - ac_cv_header_lber_h="yes" - ],[ - ac_cv_header_lber_h="no" - ]) - ]) - if test "$ac_cv_header_lber_h" = "yes"; then - AC_DEFINE_UNQUOTED(HAVE_LBER_H, 1, - [Define to 1 if you have the lber.h header file.]) - # - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#include - ]],[[ - BerValue *bvp = NULL; - BerElement *bep = ber_init(bvp); - ber_free(bep, 1); - ]]) - ],[ - curl_cv_need_header_lber_h="no" - ],[ - curl_cv_need_header_lber_h="yes" - ]) - # - case "$curl_cv_need_header_lber_h" in - yes) - AC_DEFINE_UNQUOTED(NEED_LBER_H, 1, - [Define to 1 if you need the lber.h header file even with ldap.h]) - ;; - esac - fi -]) - - -dnl CURL_CHECK_HEADER_LDAP -dnl ------------------------------------------------- -dnl Check for compilable and valid ldap.h header - -AC_DEFUN([CURL_CHECK_HEADER_LDAP], [ - AC_REQUIRE([CURL_CHECK_HEADER_LBER])dnl - AC_CACHE_CHECK([for ldap.h], [ac_cv_header_ldap_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#include - ]],[[ - LDAP *ldp = ldap_init("dummy", LDAP_PORT); - int res = ldap_unbind(ldp); - ]]) - ],[ - ac_cv_header_ldap_h="yes" - ],[ - ac_cv_header_ldap_h="no" - ]) - ]) - case "$ac_cv_header_ldap_h" in - yes) - AC_DEFINE_UNQUOTED(HAVE_LDAP_H, 1, - [Define to 1 if you have the ldap.h header file.]) - ;; - esac -]) - - -dnl CURL_CHECK_HEADER_LDAP_SSL -dnl ------------------------------------------------- -dnl Check for compilable and valid ldap_ssl.h header - -AC_DEFUN([CURL_CHECK_HEADER_LDAP_SSL], [ - AC_REQUIRE([CURL_CHECK_HEADER_LDAP])dnl - AC_CACHE_CHECK([for ldap_ssl.h], [ac_cv_header_ldap_ssl_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#ifdef HAVE_LDAP_H -#include -#endif -#include - ]],[[ - LDAP *ldp = ldapssl_init("dummy", LDAPS_PORT, 1); - ]]) - ],[ - ac_cv_header_ldap_ssl_h="yes" - ],[ - ac_cv_header_ldap_ssl_h="no" - ]) - ]) - case "$ac_cv_header_ldap_ssl_h" in - yes) - AC_DEFINE_UNQUOTED(HAVE_LDAP_SSL_H, 1, - [Define to 1 if you have the ldap_ssl.h header file.]) - ;; - esac -]) - - -dnl CURL_CHECK_HEADER_LDAPSSL -dnl ------------------------------------------------- -dnl Check for compilable and valid ldapssl.h header - -AC_DEFUN([CURL_CHECK_HEADER_LDAPSSL], [ - AC_REQUIRE([CURL_CHECK_HEADER_LDAP])dnl - AC_CACHE_CHECK([for ldapssl.h], [ac_cv_header_ldapssl_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#ifdef HAVE_LDAP_H -#include -#endif -#include - ]],[[ - char *cert_label = NULL; - LDAP *ldp = ldap_ssl_init("dummy", LDAPS_PORT, cert_label); - ]]) - ],[ - ac_cv_header_ldapssl_h="yes" - ],[ - ac_cv_header_ldapssl_h="no" - ]) - ]) - case "$ac_cv_header_ldapssl_h" in - yes) - AC_DEFINE_UNQUOTED(HAVE_LDAPSSL_H, 1, - [Define to 1 if you have the ldapssl.h header file.]) - ;; - esac -]) - - -dnl CURL_CHECK_LIBS_WINLDAP -dnl ------------------------------------------------- -dnl Check for libraries needed for WINLDAP support, -dnl and prepended to LIBS any needed libraries. -dnl This macro can take an optional parameter with a -dnl white space separated list of libraries to check -dnl before the WINLDAP default ones. - -AC_DEFUN([CURL_CHECK_LIBS_WINLDAP], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINBER])dnl - # - AC_MSG_CHECKING([for WINLDAP libraries]) - # - u_libs="" - # - ifelse($1,,,[ - for x_lib in $1; do - case "$x_lib" in - -l*) - l_lib="$x_lib" - ;; - *) - l_lib="-l$x_lib" - ;; - esac - if test -z "$u_libs"; then - u_libs="$l_lib" - else - u_libs="$u_libs $l_lib" - fi - done - ]) - # - curl_cv_save_LIBS="$LIBS" - curl_cv_ldap_LIBS="unknown" - # - for x_nlibs in '' "$u_libs" \ - '-lwldap32' ; do - if test "$curl_cv_ldap_LIBS" = "unknown"; then - if test -z "$x_nlibs"; then - LIBS="$curl_cv_save_LIBS" - else - LIBS="$x_nlibs $curl_cv_save_LIBS" - fi - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINLDAP_H -#include -#endif -#ifdef HAVE_WINBER_H -#include -#endif -#endif - ]],[[ - BERVAL *bvp = NULL; - BerElement *bep = ber_init(bvp); - LDAP *ldp = ldap_init("dummy", LDAP_PORT); - ULONG res = ldap_unbind(ldp); - ber_free(bep, 1); - ]]) - ],[ - curl_cv_ldap_LIBS="$x_nlibs" - ]) - fi - done - # - LIBS="$curl_cv_save_LIBS" - # - case X-"$curl_cv_ldap_LIBS" in - X-unknown) - AC_MSG_RESULT([cannot find WINLDAP libraries]) - ;; - X-) - AC_MSG_RESULT([no additional lib required]) - ;; - *) - if test -z "$curl_cv_save_LIBS"; then - LIBS="$curl_cv_ldap_LIBS" - else - LIBS="$curl_cv_ldap_LIBS $curl_cv_save_LIBS" - fi - AC_MSG_RESULT([$curl_cv_ldap_LIBS]) - ;; - esac - # -]) - - -dnl CURL_CHECK_LIBS_LDAP -dnl ------------------------------------------------- -dnl Check for libraries needed for LDAP support, -dnl and prepended to LIBS any needed libraries. -dnl This macro can take an optional parameter with a -dnl white space separated list of libraries to check -dnl before the default ones. - -AC_DEFUN([CURL_CHECK_LIBS_LDAP], [ - AC_REQUIRE([CURL_CHECK_HEADER_LDAP])dnl - # - AC_MSG_CHECKING([for LDAP libraries]) - # - u_libs="" - # - ifelse($1,,,[ - for x_lib in $1; do - case "$x_lib" in - -l*) - l_lib="$x_lib" - ;; - *) - l_lib="-l$x_lib" - ;; - esac - if test -z "$u_libs"; then - u_libs="$l_lib" - else - u_libs="$u_libs $l_lib" - fi - done - ]) - # - curl_cv_save_LIBS="$LIBS" - curl_cv_ldap_LIBS="unknown" - # - for x_nlibs in '' "$u_libs" \ - '-lldap' \ - '-llber -lldap' \ - '-lldap -llber' \ - '-lldapssl -lldapx -lldapsdk' \ - '-lldapsdk -lldapx -lldapssl' ; do - if test "$curl_cv_ldap_LIBS" = "unknown"; then - if test -z "$x_nlibs"; then - LIBS="$curl_cv_save_LIBS" - else - LIBS="$x_nlibs $curl_cv_save_LIBS" - fi - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#ifdef HAVE_LDAP_H -#include -#endif - ]],[[ - BerValue *bvp = NULL; - BerElement *bep = ber_init(bvp); - LDAP *ldp = ldap_init("dummy", LDAP_PORT); - int res = ldap_unbind(ldp); - ber_free(bep, 1); - ]]) - ],[ - curl_cv_ldap_LIBS="$x_nlibs" - ]) - fi - done - # - LIBS="$curl_cv_save_LIBS" - # - case X-"$curl_cv_ldap_LIBS" in - X-unknown) - AC_MSG_RESULT([cannot find LDAP libraries]) - ;; - X-) - AC_MSG_RESULT([no additional lib required]) - ;; - *) - if test -z "$curl_cv_save_LIBS"; then - LIBS="$curl_cv_ldap_LIBS" - else - LIBS="$curl_cv_ldap_LIBS $curl_cv_save_LIBS" - fi - AC_MSG_RESULT([$curl_cv_ldap_LIBS]) - ;; - esac - # -]) - - -dnl CURL_CHECK_HEADER_MALLOC -dnl ------------------------------------------------- -dnl Check for compilable and valid malloc.h header, -dnl and check if it is needed even with stdlib.h - -AC_DEFUN([CURL_CHECK_HEADER_MALLOC], [ - AC_CACHE_CHECK([for malloc.h], [ac_cv_header_malloc_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#include - ]],[[ - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - ]]) - ],[ - ac_cv_header_malloc_h="yes" - ],[ - ac_cv_header_malloc_h="no" - ]) - ]) - if test "$ac_cv_header_malloc_h" = "yes"; then - AC_DEFINE_UNQUOTED(HAVE_MALLOC_H, 1, - [Define to 1 if you have the malloc.h header file.]) - # - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#include - ]],[[ - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - ]]) - ],[ - curl_cv_need_header_malloc_h="no" - ],[ - curl_cv_need_header_malloc_h="yes" - ]) - # - case "$curl_cv_need_header_malloc_h" in - yes) - AC_DEFINE_UNQUOTED(NEED_MALLOC_H, 1, - [Define to 1 if you need the malloc.h header file even with stdlib.h]) - ;; - esac - fi -]) - - -dnl CURL_CHECK_HEADER_MEMORY -dnl ------------------------------------------------- -dnl Check for compilable and valid memory.h header, -dnl and check if it is needed even with stdlib.h for -dnl memory related functions. - -AC_DEFUN([CURL_CHECK_HEADER_MEMORY], [ - AC_CACHE_CHECK([for memory.h], [ac_cv_header_memory_h], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#include - ]],[[ - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - ]]) - ],[ - ac_cv_header_memory_h="yes" - ],[ - ac_cv_header_memory_h="no" - ]) - ]) - if test "$ac_cv_header_memory_h" = "yes"; then - AC_DEFINE_UNQUOTED(HAVE_MEMORY_H, 1, - [Define to 1 if you have the memory.h header file.]) - # - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#include - ]],[[ - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - ]]) - ],[ - curl_cv_need_header_memory_h="no" - ],[ - curl_cv_need_header_memory_h="yes" - ]) - # - case "$curl_cv_need_header_memory_h" in - yes) - AC_DEFINE_UNQUOTED(NEED_MEMORY_H, 1, - [Define to 1 if you need the memory.h header file even with stdlib.h]) - ;; - esac - fi -]) - - -dnl CURL_CHECK_FUNC_GETNAMEINFO -dnl ------------------------------------------------- -dnl Test if the getnameinfo function is available, -dnl and check the types of five of its arguments. -dnl If the function succeeds HAVE_GETNAMEINFO will be -dnl defined, defining the types of the arguments in -dnl GETNAMEINFO_TYPE_ARG1, GETNAMEINFO_TYPE_ARG2, -dnl GETNAMEINFO_TYPE_ARG46 and GETNAMEINFO_TYPE_ARG7, -dnl and also defining the type qualifier of first -dnl argument in GETNAMEINFO_QUAL_ARG1. - -AC_DEFUN([CURL_CHECK_FUNC_GETNAMEINFO], [ - AC_REQUIRE([CURL_CHECK_HEADER_WS2TCPIP])dnl - AC_CHECK_HEADERS(sys/types.h sys/socket.h netdb.h) - # - AC_MSG_CHECKING([for getnameinfo]) - AC_LINK_IFELSE([ - AC_LANG_FUNC_LINK_TRY([getnameinfo]) - ],[ - AC_MSG_RESULT([yes]) - curl_cv_getnameinfo="yes" - ],[ - AC_MSG_RESULT([no]) - curl_cv_getnameinfo="no" - ]) - # - if test "$curl_cv_getnameinfo" != "yes"; then - AC_MSG_CHECKING([deeper for getnameinfo]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ - ]],[[ - getnameinfo(); - ]]) - ],[ - AC_MSG_RESULT([yes]) - curl_cv_getnameinfo="yes" - ],[ - AC_MSG_RESULT([but still no]) - curl_cv_getnameinfo="no" - ]) - fi - # - if test "$curl_cv_getnameinfo" != "yes"; then - AC_MSG_CHECKING([deeper and deeper for getnameinfo]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#ifdef HAVE_WS2TCPIP_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#endif - ]],[[ - getnameinfo(0, 0, 0, 0, 0, 0, 0); - ]]) - ],[ - AC_MSG_RESULT([yes]) - curl_cv_getnameinfo="yes" - ],[ - AC_MSG_RESULT([but still no]) - curl_cv_getnameinfo="no" - ]) - fi - # - if test "$curl_cv_getnameinfo" = "yes"; then - AC_CACHE_CHECK([types of arguments for getnameinfo], - [curl_cv_func_getnameinfo_args], [ - curl_cv_func_getnameinfo_args="unknown" - for gni_arg1 in 'struct sockaddr *' 'const struct sockaddr *' 'void *'; do - for gni_arg2 in 'socklen_t' 'size_t' 'int'; do - for gni_arg46 in 'size_t' 'int' 'socklen_t' 'unsigned int' 'DWORD'; do - for gni_arg7 in 'int' 'unsigned int'; do - if test "$curl_cv_func_getnameinfo_args" = "unknown"; then - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#if (!defined(_WIN32_WINNT)) || (_WIN32_WINNT < 0x0501) -#undef _WIN32_WINNT -#define _WIN32_WINNT 0x0501 -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#ifdef HAVE_WS2TCPIP_H -#include -#endif -#endif -#define GNICALLCONV WSAAPI -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#define GNICALLCONV -#endif - extern int GNICALLCONV getnameinfo($gni_arg1, $gni_arg2, - char *, $gni_arg46, - char *, $gni_arg46, - $gni_arg7); - ]],[[ - $gni_arg2 salen=0; - $gni_arg46 hostlen=0; - $gni_arg46 servlen=0; - $gni_arg7 flags=0; - int res = getnameinfo(0, salen, 0, hostlen, 0, servlen, flags); - ]]) - ],[ - curl_cv_func_getnameinfo_args="$gni_arg1,$gni_arg2,$gni_arg46,$gni_arg7" - ]) - fi - done - done - done - done - ]) # AC-CACHE-CHECK - if test "$curl_cv_func_getnameinfo_args" = "unknown"; then - AC_MSG_WARN([Cannot find proper types to use for getnameinfo args]) - AC_MSG_WARN([HAVE_GETNAMEINFO will not be defined]) - else - gni_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_getnameinfo_args" | sed 's/\*/\*/g'` - IFS=$gni_prev_IFS - shift - # - gni_qual_type_arg1=$[1] - # - AC_DEFINE_UNQUOTED(GETNAMEINFO_TYPE_ARG2, $[2], - [Define to the type of arg 2 for getnameinfo.]) - AC_DEFINE_UNQUOTED(GETNAMEINFO_TYPE_ARG46, $[3], - [Define to the type of args 4 and 6 for getnameinfo.]) - AC_DEFINE_UNQUOTED(GETNAMEINFO_TYPE_ARG7, $[4], - [Define to the type of arg 7 for getnameinfo.]) - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$gni_qual_type_arg1" in - const*) - gni_qual_arg1=const - gni_type_arg1=`echo $gni_qual_type_arg1 | sed 's/^const //'` - ;; - *) - gni_qual_arg1= - gni_type_arg1=$gni_qual_type_arg1 - ;; - esac - # - AC_DEFINE_UNQUOTED(GETNAMEINFO_QUAL_ARG1, $gni_qual_arg1, - [Define to the type qualifier of arg 1 for getnameinfo.]) - AC_DEFINE_UNQUOTED(GETNAMEINFO_TYPE_ARG1, $gni_type_arg1, - [Define to the type of arg 1 for getnameinfo.]) - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - AC_DEFINE_UNQUOTED(HAVE_GETNAMEINFO, 1, - [Define to 1 if you have the getnameinfo function.]) - ac_cv_func_getnameinfo="yes" - fi - fi -]) - - -dnl TYPE_SOCKADDR_STORAGE -dnl ------------------------------------------------- -dnl Check for struct sockaddr_storage. Most IPv6-enabled -dnl hosts have it, but AIX 4.3 is one known exception. - -AC_DEFUN([TYPE_SOCKADDR_STORAGE], -[ - AC_CHECK_TYPE([struct sockaddr_storage], - AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, - [if struct sockaddr_storage is defined]), , - [ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif -#endif - ]) -]) - - -dnl CURL_CHECK_NI_WITHSCOPEID -dnl ------------------------------------------------- -dnl Check for working NI_WITHSCOPEID in getnameinfo() - -AC_DEFUN([CURL_CHECK_NI_WITHSCOPEID], [ - AC_REQUIRE([CURL_CHECK_FUNC_GETNAMEINFO])dnl - AC_REQUIRE([TYPE_SOCKADDR_STORAGE])dnl - AC_CHECK_HEADERS(stdio.h sys/types.h sys/socket.h \ - netdb.h netinet/in.h arpa/inet.h) - # - AC_CACHE_CHECK([for working NI_WITHSCOPEID], - [ac_cv_working_ni_withscopeid], [ - AC_RUN_IFELSE([ - AC_LANG_PROGRAM([[ -#ifdef HAVE_STDLIB_H -#include -#endif -#ifdef HAVE_STDIO_H -#include -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif - ]],[[ -#if defined(NI_WITHSCOPEID) && defined(HAVE_GETNAMEINFO) -#ifdef HAVE_STRUCT_SOCKADDR_STORAGE - struct sockaddr_storage sa; -#else - unsigned char sa[256]; -#endif - char hostbuf[NI_MAXHOST]; - int rc; - GETNAMEINFO_TYPE_ARG2 salen = (GETNAMEINFO_TYPE_ARG2)sizeof(sa); - GETNAMEINFO_TYPE_ARG46 hostlen = (GETNAMEINFO_TYPE_ARG46)sizeof(hostbuf); - GETNAMEINFO_TYPE_ARG7 flags = NI_NUMERICHOST | NI_NUMERICSERV | NI_WITHSCOPEID; - int fd = socket(AF_INET6, SOCK_STREAM, 0); - if(fd < 0) { - perror("socket()"); - return 1; /* Error creating socket */ - } - rc = getsockname(fd, (GETNAMEINFO_TYPE_ARG1)&sa, &salen); - if(rc) { - perror("getsockname()"); - return 2; /* Error retrieving socket name */ - } - rc = getnameinfo((GETNAMEINFO_TYPE_ARG1)&sa, salen, hostbuf, hostlen, NULL, 0, flags); - if(rc) { - printf("rc = %s\n", gai_strerror(rc)); - return 3; /* Error translating socket address */ - } - return 0; /* Ok, NI_WITHSCOPEID works */ -#else - return 4; /* Error, NI_WITHSCOPEID not defined or no getnameinfo() */ -#endif - ]]) # AC-LANG-PROGRAM - ],[ - # Exit code == 0. Program worked. - ac_cv_working_ni_withscopeid="yes" - ],[ - # Exit code != 0. Program failed. - ac_cv_working_ni_withscopeid="no" - ],[ - # Program is not run when cross-compiling. So we assume - # NI_WITHSCOPEID will work if we are able to compile it. - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#include -#include -#include - ]],[[ - unsigned int dummy= NI_NUMERICHOST | NI_NUMERICSERV | NI_WITHSCOPEID; - ]]) - ],[ - ac_cv_working_ni_withscopeid="yes" - ],[ - ac_cv_working_ni_withscopeid="no" - ]) # AC-COMPILE-IFELSE - ]) # AC-RUN-IFELSE - ]) # AC-CACHE-CHECK - case "$ac_cv_working_ni_withscopeid" in - yes) - AC_DEFINE(HAVE_NI_WITHSCOPEID, 1, - [Define to 1 if NI_WITHSCOPEID exists and works.]) - ;; - esac -]) - - -dnl CURL_CHECK_FUNC_RECV -dnl ------------------------------------------------- -dnl Test if the socket recv() function is available, -dnl and check its return type and the types of its -dnl arguments. If the function succeeds HAVE_RECV -dnl will be defined, defining the types of the arguments -dnl in RECV_TYPE_ARG1, RECV_TYPE_ARG2, RECV_TYPE_ARG3 -dnl and RECV_TYPE_ARG4, defining the type of the function -dnl return value in RECV_TYPE_RETV. - -AC_DEFUN([CURL_CHECK_FUNC_RECV], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl - AC_CHECK_HEADERS(sys/types.h sys/socket.h) - # - AC_MSG_CHECKING([for recv]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - ]],[[ - recv(0, 0, 0, 0); - ]]) - ],[ - AC_MSG_RESULT([yes]) - curl_cv_recv="yes" - ],[ - AC_MSG_RESULT([no]) - curl_cv_recv="no" - ]) - # - if test "$curl_cv_recv" = "yes"; then - AC_CACHE_CHECK([types of args and return type for recv], - [curl_cv_func_recv_args], [ - curl_cv_func_recv_args="unknown" - for recv_retv in 'int' 'ssize_t'; do - for recv_arg1 in 'int' 'ssize_t' 'SOCKET'; do - for recv_arg2 in 'char *' 'void *'; do - for recv_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do - for recv_arg4 in 'int' 'unsigned int'; do - if test "$curl_cv_func_recv_args" = "unknown"; then - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define RECVCALLCONV PASCAL -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define RECVCALLCONV -#endif - extern $recv_retv RECVCALLCONV - recv($recv_arg1, $recv_arg2, $recv_arg3, $recv_arg4); - ]],[[ - $recv_arg1 s=0; - $recv_arg2 buf=0; - $recv_arg3 len=0; - $recv_arg4 flags=0; - $recv_retv res = recv(s, buf, len, flags); - ]]) - ],[ - curl_cv_func_recv_args="$recv_arg1,$recv_arg2,$recv_arg3,$recv_arg4,$recv_retv" - ]) - fi - done - done - done - done - done - ]) # AC-CACHE-CHECK - if test "$curl_cv_func_recv_args" = "unknown"; then - AC_MSG_ERROR([Cannot find proper types to use for recv args]) - else - recv_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_recv_args" | sed 's/\*/\*/g'` - IFS=$recv_prev_IFS - shift - # - AC_DEFINE_UNQUOTED(RECV_TYPE_ARG1, $[1], - [Define to the type of arg 1 for recv.]) - AC_DEFINE_UNQUOTED(RECV_TYPE_ARG2, $[2], - [Define to the type of arg 2 for recv.]) - AC_DEFINE_UNQUOTED(RECV_TYPE_ARG3, $[3], - [Define to the type of arg 3 for recv.]) - AC_DEFINE_UNQUOTED(RECV_TYPE_ARG4, $[4], - [Define to the type of arg 4 for recv.]) - AC_DEFINE_UNQUOTED(RECV_TYPE_RETV, $[5], - [Define to the function return type for recv.]) - # - AC_DEFINE_UNQUOTED(HAVE_RECV, 1, - [Define to 1 if you have the recv function.]) - ac_cv_func_recv="yes" - fi - else - AC_MSG_ERROR([Unable to link function recv]) - fi -]) - - -dnl CURL_CHECK_FUNC_SEND -dnl ------------------------------------------------- -dnl Test if the socket send() function is available, -dnl and check its return type and the types of its -dnl arguments. If the function succeeds HAVE_SEND -dnl will be defined, defining the types of the arguments -dnl in SEND_TYPE_ARG1, SEND_TYPE_ARG2, SEND_TYPE_ARG3 -dnl and SEND_TYPE_ARG4, defining the type of the function -dnl return value in SEND_TYPE_RETV, and also defining the -dnl type qualifier of second argument in SEND_QUAL_ARG2. - -AC_DEFUN([CURL_CHECK_FUNC_SEND], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl - AC_CHECK_HEADERS(sys/types.h sys/socket.h) - # - AC_MSG_CHECKING([for send]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - ]],[[ - send(0, 0, 0, 0); - ]]) - ],[ - AC_MSG_RESULT([yes]) - curl_cv_send="yes" - ],[ - AC_MSG_RESULT([no]) - curl_cv_send="no" - ]) - # - if test "$curl_cv_send" = "yes"; then - AC_CACHE_CHECK([types of args and return type for send], - [curl_cv_func_send_args], [ - curl_cv_func_send_args="unknown" - for send_retv in 'int' 'ssize_t'; do - for send_arg1 in 'int' 'ssize_t' 'SOCKET'; do - for send_arg2 in 'char *' 'void *' 'const char *' 'const void *'; do - for send_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do - for send_arg4 in 'int' 'unsigned int'; do - if test "$curl_cv_func_send_args" = "unknown"; then - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define SENDCALLCONV PASCAL -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define SENDCALLCONV -#endif - extern $send_retv SENDCALLCONV - send($send_arg1, $send_arg2, $send_arg3, $send_arg4); - ]],[[ - $send_arg1 s=0; - $send_arg3 len=0; - $send_arg4 flags=0; - $send_retv res = send(s, 0, len, flags); - ]]) - ],[ - curl_cv_func_send_args="$send_arg1,$send_arg2,$send_arg3,$send_arg4,$send_retv" - ]) - fi - done - done - done - done - done - ]) # AC-CACHE-CHECK - if test "$curl_cv_func_send_args" = "unknown"; then - AC_MSG_ERROR([Cannot find proper types to use for send args]) - else - send_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_send_args" | sed 's/\*/\*/g'` - IFS=$send_prev_IFS - shift - # - send_qual_type_arg2=$[2] - # - AC_DEFINE_UNQUOTED(SEND_TYPE_ARG1, $[1], - [Define to the type of arg 1 for send.]) - AC_DEFINE_UNQUOTED(SEND_TYPE_ARG3, $[3], - [Define to the type of arg 3 for send.]) - AC_DEFINE_UNQUOTED(SEND_TYPE_ARG4, $[4], - [Define to the type of arg 4 for send.]) - AC_DEFINE_UNQUOTED(SEND_TYPE_RETV, $[5], - [Define to the function return type for send.]) - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$send_qual_type_arg2" in - const*) - send_qual_arg2=const - send_type_arg2=`echo $send_qual_type_arg2 | sed 's/^const //'` - ;; - *) - send_qual_arg2= - send_type_arg2=$send_qual_type_arg2 - ;; - esac - # - AC_DEFINE_UNQUOTED(SEND_QUAL_ARG2, $send_qual_arg2, - [Define to the type qualifier of arg 2 for send.]) - AC_DEFINE_UNQUOTED(SEND_TYPE_ARG2, $send_type_arg2, - [Define to the type of arg 2 for send.]) - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - AC_DEFINE_UNQUOTED(HAVE_SEND, 1, - [Define to 1 if you have the send function.]) - ac_cv_func_send="yes" - fi - else - AC_MSG_ERROR([Unable to link function send]) - fi -]) - - -dnl CURL_CHECK_FUNC_RECVFROM -dnl ------------------------------------------------- -dnl Test if the socket recvfrom() function is available, -dnl and check its return type and the types of its -dnl arguments. If the function succeeds HAVE_RECVFROM -dnl will be defined, defining the types of the arguments -dnl in RECVFROM_TYPE_ARG1, RECVFROM_TYPE_ARG2, and so on -dnl to RECVFROM_TYPE_ARG6, defining also the type of the -dnl function return value in RECVFROM_TYPE_RETV. -dnl Notice that the types returned for pointer arguments -dnl will actually be the type pointed by the pointer. - -AC_DEFUN([CURL_CHECK_FUNC_RECVFROM], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl - AC_CHECK_HEADERS(sys/types.h sys/socket.h) - # - AC_MSG_CHECKING([for recvfrom]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - ]],[[ - recvfrom(0, 0, 0, 0, 0, 0); - ]]) - ],[ - AC_MSG_RESULT([yes]) - curl_cv_recvfrom="yes" - ],[ - AC_MSG_RESULT([no]) - curl_cv_recvfrom="no" - ]) - # - if test "$curl_cv_recvfrom" = "yes"; then - AC_CACHE_CHECK([types of args and return type for recvfrom], - [curl_cv_func_recvfrom_args], [ - curl_cv_func_recvfrom_args="unknown" - for recvfrom_retv in 'int' 'ssize_t'; do - for recvfrom_arg1 in 'int' 'ssize_t' 'SOCKET'; do - for recvfrom_arg2 in 'char *' 'void *'; do - for recvfrom_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do - for recvfrom_arg4 in 'int' 'unsigned int'; do - for recvfrom_arg5 in 'struct sockaddr *' 'void *' 'const struct sockaddr *'; do - for recvfrom_arg6 in 'socklen_t *' 'int *' 'unsigned int *' 'size_t *' 'void *'; do - if test "$curl_cv_func_recvfrom_args" = "unknown"; then - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define RECVFROMCALLCONV PASCAL -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define RECVFROMCALLCONV -#endif - extern $recvfrom_retv RECVFROMCALLCONV - recvfrom($recvfrom_arg1, $recvfrom_arg2, - $recvfrom_arg3, $recvfrom_arg4, - $recvfrom_arg5, $recvfrom_arg6); - ]],[[ - $recvfrom_arg1 s=0; - $recvfrom_arg2 buf=0; - $recvfrom_arg3 len=0; - $recvfrom_arg4 flags=0; - $recvfrom_arg5 addr=0; - $recvfrom_arg6 addrlen=0; - $recvfrom_retv res=0; - res = recvfrom(s, buf, len, flags, addr, addrlen); - ]]) - ],[ - curl_cv_func_recvfrom_args="$recvfrom_arg1,$recvfrom_arg2,$recvfrom_arg3,$recvfrom_arg4,$recvfrom_arg5,$recvfrom_arg6,$recvfrom_retv" - ]) - fi - done - done - done - done - done - done - done - ]) # AC-CACHE-CHECK - # Nearly last minute change for this release starts here - AC_DEFINE_UNQUOTED(HAVE_RECVFROM, 1, - [Define to 1 if you have the recvfrom function.]) - ac_cv_func_recvfrom="yes" - # Nearly last minute change for this release ends here - if test "$curl_cv_func_recvfrom_args" = "unknown"; then - AC_MSG_WARN([Cannot find proper types to use for recvfrom args]) - else - recvfrom_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_recvfrom_args" | sed 's/\*/\*/g'` - IFS=$recvfrom_prev_IFS - shift - # - recvfrom_ptrt_arg2=$[2] - recvfrom_qual_ptrt_arg5=$[5] - recvfrom_ptrt_arg6=$[6] - # - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG1, $[1], - [Define to the type of arg 1 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG3, $[3], - [Define to the type of arg 3 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG4, $[4], - [Define to the type of arg 4 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_RETV, $[7], - [Define to the function return type for recvfrom.]) - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$recvfrom_qual_ptrt_arg5" in - const*) - recvfrom_qual_arg5=const - recvfrom_ptrt_arg5=`echo $recvfrom_qual_ptrt_arg5 | sed 's/^const //'` - ;; - *) - recvfrom_qual_arg5= - recvfrom_ptrt_arg5=$recvfrom_qual_ptrt_arg5 - ;; - esac - # - recvfrom_type_arg2=`echo $recvfrom_ptrt_arg2 | sed 's/ \*//'` - recvfrom_type_arg5=`echo $recvfrom_ptrt_arg5 | sed 's/ \*//'` - recvfrom_type_arg6=`echo $recvfrom_ptrt_arg6 | sed 's/ \*//'` - # - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG2, $recvfrom_type_arg2, - [Define to the type pointed by arg 2 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_QUAL_ARG5, $recvfrom_qual_arg5, - [Define to the type qualifier pointed by arg 5 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG5, $recvfrom_type_arg5, - [Define to the type pointed by arg 5 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG6, $recvfrom_type_arg6, - [Define to the type pointed by arg 6 for recvfrom.]) - # - if test "$recvfrom_type_arg2" = "void"; then - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG2_IS_VOID, 1, - [Define to 1 if the type pointed by arg 2 for recvfrom is void.]) - fi - if test "$recvfrom_type_arg5" = "void"; then - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG5_IS_VOID, 1, - [Define to 1 if the type pointed by arg 5 for recvfrom is void.]) - fi - if test "$recvfrom_type_arg6" = "void"; then - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG6_IS_VOID, 1, - [Define to 1 if the type pointed by arg 6 for recvfrom is void.]) - fi - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - AC_DEFINE_UNQUOTED(HAVE_RECVFROM, 1, - [Define to 1 if you have the recvfrom function.]) - ac_cv_func_recvfrom="yes" - fi - else - AC_MSG_WARN([Unable to link function recvfrom]) - fi -]) - - -dnl CURL_CHECK_MSG_NOSIGNAL -dnl ------------------------------------------------- -dnl Check for MSG_NOSIGNAL - -AC_DEFUN([CURL_CHECK_MSG_NOSIGNAL], [ - AC_CHECK_HEADERS(sys/types.h sys/socket.h) - AC_CACHE_CHECK([for MSG_NOSIGNAL], [ac_cv_msg_nosignal], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - ]],[[ - int flag=MSG_NOSIGNAL; - ]]) - ],[ - ac_cv_msg_nosignal="yes" - ],[ - ac_cv_msg_nosignal="no" - ]) - ]) - case "$ac_cv_msg_nosignal" in - yes) - AC_DEFINE_UNQUOTED(HAVE_MSG_NOSIGNAL, 1, - [Define to 1 if you have the MSG_NOSIGNAL flag.]) - ;; - esac -]) - - -dnl CURL_CHECK_STRUCT_TIMEVAL -dnl ------------------------------------------------- -dnl Check for timeval struct - -AC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [ - AC_REQUIRE([AC_HEADER_TIME])dnl - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl - AC_CHECK_HEADERS(sys/types.h sys/time.h time.h sys/socket.h) - AC_CACHE_CHECK([for struct timeval], [ac_cv_struct_timeval], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif - ]],[[ - struct timeval ts; - ts.tv_sec = 0; - ts.tv_usec = 0; - ]]) - ],[ - ac_cv_struct_timeval="yes" - ],[ - ac_cv_struct_timeval="no" - ]) - ]) - case "$ac_cv_struct_timeval" in - yes) - AC_DEFINE_UNQUOTED(HAVE_STRUCT_TIMEVAL, 1, - [Define to 1 if you have the timeval struct.]) - ;; - esac -]) - - -dnl TYPE_SIG_ATOMIC_T -dnl ------------------------------------------------- -dnl Check if the sig_atomic_t type is available, and -dnl verify if it is already defined as volatile. - -AC_DEFUN([TYPE_SIG_ATOMIC_T], [ - AC_CHECK_HEADERS(signal.h) - AC_CHECK_TYPE([sig_atomic_t],[ - AC_DEFINE(HAVE_SIG_ATOMIC_T, 1, - [Define to 1 if sig_atomic_t is an available typedef.]) - ], ,[ -#ifdef HAVE_SIGNAL_H -#include -#endif - ]) - case "$ac_cv_type_sig_atomic_t" in - yes) - # - AC_MSG_CHECKING([if sig_atomic_t is already defined as volatile]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#ifdef HAVE_SIGNAL_H -#include -#endif - ]],[[ - static volatile sig_atomic_t dummy = 0; - ]]) - ],[ - AC_MSG_RESULT([no]) - ac_cv_sig_atomic_t_volatile="no" - ],[ - AC_MSG_RESULT([yes]) - ac_cv_sig_atomic_t_volatile="yes" - ]) - # - if test "$ac_cv_sig_atomic_t_volatile" = "yes"; then - AC_DEFINE(HAVE_SIG_ATOMIC_T_VOLATILE, 1, - [Define to 1 if sig_atomic_t is already defined as volatile.]) - fi - ;; - esac -]) - - -dnl TYPE_IN_ADDR_T -dnl ------------------------------------------------- -dnl Check for in_addr_t: it is used to receive the return code of inet_addr() -dnl and a few other things. - -AC_DEFUN([TYPE_IN_ADDR_T], [ - AC_CHECK_TYPE([in_addr_t], ,[ - dnl in_addr_t not available - AC_CACHE_CHECK([for in_addr_t equivalent], - [curl_cv_in_addr_t_equiv], [ - curl_cv_in_addr_t_equiv="unknown" - for t in "unsigned long" int size_t unsigned long; do - if test "$curl_cv_in_addr_t_equiv" = "unknown"; then - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif -#endif - ]],[[ - $t data = inet_addr ("1.2.3.4"); - ]]) - ],[ - curl_cv_in_addr_t_equiv="$t" - ]) - fi - done - ]) - case "$curl_cv_in_addr_t_equiv" in - unknown) - AC_MSG_ERROR([Cannot find a type to use in place of in_addr_t]) - ;; - *) - AC_DEFINE_UNQUOTED(in_addr_t, $curl_cv_in_addr_t_equiv, - [Type to use in place of in_addr_t when system does not provide it.]) - ;; - esac - ],[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif -#endif - ]) -]) - - -dnl CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC -dnl ------------------------------------------------- -dnl Check if monotonic clock_gettime is available. - -AC_DEFUN([CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC], [ - AC_REQUIRE([AC_HEADER_TIME])dnl - AC_CHECK_HEADERS(sys/types.h sys/time.h time.h) - AC_MSG_CHECKING([for monotonic clock_gettime]) - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif - ]],[[ - struct timespec ts; - (void)clock_gettime(CLOCK_MONOTONIC, &ts); - ]]) - ],[ - AC_MSG_RESULT([yes]) - ac_cv_func_clock_gettime="yes" - ],[ - AC_MSG_RESULT([no]) - ac_cv_func_clock_gettime="no" - ]) - dnl Definition of HAVE_CLOCK_GETTIME_MONOTONIC is intentionally postponed - dnl until library linking and run-time checks for clock_gettime succeed. -]) - - -dnl CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC -dnl ------------------------------------------------- -dnl If monotonic clock_gettime is available then, -dnl check and prepended to LIBS any needed libraries. - -AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [ - AC_REQUIRE([CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC])dnl - # - if test "$ac_cv_func_clock_gettime" = "yes"; then - # - AC_MSG_CHECKING([for clock_gettime in libraries]) - # - curl_cv_save_LIBS="$LIBS" - curl_cv_gclk_LIBS="unknown" - # - for x_xlibs in '' '-lrt' '-lposix4' ; do - if test "$curl_cv_gclk_LIBS" = "unknown"; then - if test -z "$x_xlibs"; then - LIBS="$curl_cv_save_LIBS" - else - LIBS="$x_xlibs $curl_cv_save_LIBS" - fi - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif - ]],[[ - struct timespec ts; - (void)clock_gettime(CLOCK_MONOTONIC, &ts); - ]]) - ],[ - curl_cv_gclk_LIBS="$x_xlibs" - ]) - fi - done - # - LIBS="$curl_cv_save_LIBS" - # - case X-"$curl_cv_gclk_LIBS" in - X-unknown) - AC_MSG_RESULT([cannot find clock_gettime]) - AC_MSG_WARN([HAVE_CLOCK_GETTIME_MONOTONIC will not be defined]) - ac_cv_func_clock_gettime="no" - ;; - X-) - AC_MSG_RESULT([no additional lib required]) - ac_cv_func_clock_gettime="yes" - ;; - *) - if test -z "$curl_cv_save_LIBS"; then - LIBS="$curl_cv_gclk_LIBS" - else - LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS" - fi - CURL_LIBS="$CURL_LIBS $curl_cv_gclk_LIBS" - AC_MSG_RESULT([$curl_cv_gclk_LIBS]) - ac_cv_func_clock_gettime="yes" - ;; - esac - # - dnl only do runtime verification when not cross-compiling - if test "x$cross_compiling" != "xyes" && - test "$ac_cv_func_clock_gettime" = "yes"; then - AC_MSG_CHECKING([if monotonic clock_gettime works]) - AC_RUN_IFELSE([ - AC_LANG_PROGRAM([[ -#ifdef HAVE_STDLIB_H -#include -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif - ]],[[ - struct timespec ts; - if (0 == clock_gettime(CLOCK_MONOTONIC, &ts)) - exit(0); - else - exit(1); - ]]) - ],[ - AC_MSG_RESULT([yes]) - ],[ - AC_MSG_RESULT([no]) - AC_MSG_WARN([HAVE_CLOCK_GETTIME_MONOTONIC will not be defined]) - ac_cv_func_clock_gettime="no" - LIBS="$curl_cv_save_LIBS" - ]) - fi - # - case "$ac_cv_func_clock_gettime" in - yes) - AC_DEFINE_UNQUOTED(HAVE_CLOCK_GETTIME_MONOTONIC, 1, - [Define to 1 if you have the clock_gettime function and monotonic timer.]) - ;; - esac - # - fi - # -]) - - -dnl CURL_CHECK_LIBS_CONNECT -dnl ------------------------------------------------- -dnl Verify if network connect function is already available -dnl using current libraries or if another one is required. - -AC_DEFUN([CURL_CHECK_LIBS_CONNECT], [ - AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl - AC_MSG_CHECKING([for connect in libraries]) - tst_connect_save_LIBS="$LIBS" - tst_connect_need_LIBS="unknown" - for tst_lib in '' '-lsocket' ; do - if test "$tst_connect_need_LIBS" = "unknown"; then - LIBS="$tst_lib $tst_connect_save_LIBS" - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ - $curl_includes_winsock2 - #ifndef HAVE_WINDOWS_H - int connect(int, void*, int); - #endif - ]],[[ - if(0 != connect(0, 0, 0)) - return 1; - ]]) - ],[ - tst_connect_need_LIBS="$tst_lib" - ]) - fi - done - LIBS="$tst_connect_save_LIBS" - # - case X-"$tst_connect_need_LIBS" in - X-unknown) - AC_MSG_RESULT([cannot find connect]) - AC_MSG_ERROR([cannot find connect function in libraries.]) - ;; - X-) - AC_MSG_RESULT([yes]) - ;; - *) - AC_MSG_RESULT([$tst_connect_need_LIBS]) - LIBS="$tst_connect_need_LIBS $tst_connect_save_LIBS" - ;; - esac -]) - - -dnl CURL_DEFINE_UNQUOTED (VARIABLE, [VALUE]) -dnl ------------------------------------------------- -dnl Like AC_DEFINE_UNQUOTED this macro will define a C preprocessor -dnl symbol that can be further used in custom template configuration -dnl files. This macro, unlike AC_DEFINE_UNQUOTED, does not use a third -dnl argument for the description. Symbol definitions done with this -dnl macro are intended to be exclusively used in handcrafted *.h.in -dnl template files. Contrary to what AC_DEFINE_UNQUOTED does, this one -dnl prevents autoheader generation and insertion of symbol template -dnl stub and definition into the first configuration header file. Do -dnl not use this macro as a replacement for AC_DEFINE_UNQUOTED, each -dnl one serves different functional needs. - -AC_DEFUN([CURL_DEFINE_UNQUOTED], [ -cat >>confdefs.h <<_EOF -[@%:@define] $1 ifelse($#, 2, [$2], 1) -_EOF -]) - - -dnl CURL_CONFIGURE_LONG -dnl ------------------------------------------------- -dnl Find out the size of long as reported by sizeof() and define -dnl CURL_SIZEOF_LONG as appropriate to be used in template file -dnl include/curl/curlbuild.h.in to properly configure the library. -dnl The size of long is a build time characteristic and as such -dnl must be recorded in curlbuild.h - -AC_DEFUN([CURL_CONFIGURE_LONG], [ - if test -z "$ac_cv_sizeof_long" || - test "$ac_cv_sizeof_long" -eq "0"; then - AC_MSG_ERROR([cannot find out size of long.]) - fi - CURL_DEFINE_UNQUOTED([CURL_SIZEOF_LONG], [$ac_cv_sizeof_long]) -]) - - -dnl CURL_CONFIGURE_CURL_SOCKLEN_T -dnl ------------------------------------------------- -dnl Find out suitable curl_socklen_t data type definition and size, making -dnl appropriate definitions for template file include/curl/curlbuild.h.in -dnl to properly configure and use the library. -dnl -dnl The need for the curl_socklen_t definition arises mainly to properly -dnl interface HP-UX systems which on one hand have a typedef'ed socklen_t -dnl data type which is 32 or 64-Bit wide depending on the data model being -dnl used, and that on the other hand is only actually used when interfacing -dnl the X/Open sockets provided in the xnet library. - -AC_DEFUN([CURL_CONFIGURE_CURL_SOCKLEN_T], [ - AC_REQUIRE([CURL_INCLUDES_WS2TCPIP])dnl - AC_REQUIRE([CURL_INCLUDES_SYS_SOCKET])dnl - AC_REQUIRE([CURL_PREPROCESS_CALLCONV])dnl - # - AC_MSG_CHECKING([for curl_socklen_t data type]) - curl_typeof_curl_socklen_t="unknown" - for arg1 in int SOCKET; do - for arg2 in 'struct sockaddr' void; do - for t in socklen_t int size_t 'unsigned int' long 'unsigned long' void; do - if test "$curl_typeof_curl_socklen_t" = "unknown"; then - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_preprocess_callconv - extern int FUNCALLCONV getpeername($arg1, $arg2 *, $t *); - ]],[[ - $t *lenptr = 0; - if(0 != getpeername(0, 0, lenptr)) - return 1; - ]]) - ],[ - curl_typeof_curl_socklen_t="$t" - ]) - fi - done - done - done - for t in socklen_t int; do - if test "$curl_typeof_curl_socklen_t" = "void"; then - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - $curl_includes_sys_socket - typedef $t curl_socklen_t; - ]],[[ - curl_socklen_t dummy; - ]]) - ],[ - curl_typeof_curl_socklen_t="$t" - ]) - fi - done - AC_MSG_RESULT([$curl_typeof_curl_socklen_t]) - if test "$curl_typeof_curl_socklen_t" = "void" || - test "$curl_typeof_curl_socklen_t" = "unknown"; then - AC_MSG_ERROR([cannot find data type for curl_socklen_t.]) - fi - # - AC_MSG_CHECKING([size of curl_socklen_t]) - curl_sizeof_curl_socklen_t="unknown" - curl_pull_headers_socklen_t="unknown" - if test "$ac_cv_header_ws2tcpip_h" = "yes"; then - tst_pull_header_checks='none ws2tcpip' - tst_size_checks='4' - else - tst_pull_header_checks='none systypes syssocket' - tst_size_checks='4 8 2' - fi - for tst_size in $tst_size_checks; do - for tst_pull_headers in $tst_pull_header_checks; do - if test "$curl_sizeof_curl_socklen_t" = "unknown"; then - case $tst_pull_headers in - ws2tcpip) - tmp_includes="$curl_includes_ws2tcpip" - ;; - systypes) - tmp_includes="$curl_includes_sys_types" - ;; - syssocket) - tmp_includes="$curl_includes_sys_socket" - ;; - *) - tmp_includes="" - ;; - esac - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - $tmp_includes - typedef $curl_typeof_curl_socklen_t curl_socklen_t; - typedef char dummy_arr[sizeof(curl_socklen_t) == $tst_size ? 1 : -1]; - ]],[[ - curl_socklen_t dummy; - ]]) - ],[ - curl_sizeof_curl_socklen_t="$tst_size" - curl_pull_headers_socklen_t="$tst_pull_headers" - ]) - fi - done - done - AC_MSG_RESULT([$curl_sizeof_curl_socklen_t]) - if test "$curl_sizeof_curl_socklen_t" = "unknown"; then - AC_MSG_ERROR([cannot find out size of curl_socklen_t.]) - fi - # - case $curl_pull_headers_socklen_t in - ws2tcpip) - CURL_DEFINE_UNQUOTED([CURL_PULL_WS2TCPIP_H]) - ;; - systypes) - CURL_DEFINE_UNQUOTED([CURL_PULL_SYS_TYPES_H]) - ;; - syssocket) - CURL_DEFINE_UNQUOTED([CURL_PULL_SYS_TYPES_H]) - CURL_DEFINE_UNQUOTED([CURL_PULL_SYS_SOCKET_H]) - ;; - esac - CURL_DEFINE_UNQUOTED([CURL_TYPEOF_CURL_SOCKLEN_T], [$curl_typeof_curl_socklen_t]) - CURL_DEFINE_UNQUOTED([CURL_SIZEOF_CURL_SOCKLEN_T], [$curl_sizeof_curl_socklen_t]) -]) - - -dnl CURL_CHECK_FUNC_SELECT -dnl ------------------------------------------------- -dnl Test if the socket select() function is available, -dnl and check its return type and the types of its -dnl arguments. If the function succeeds HAVE_SELECT -dnl will be defined, defining the types of the -dnl arguments in SELECT_TYPE_ARG1, SELECT_TYPE_ARG234 -dnl and SELECT_TYPE_ARG5, defining the type of the -dnl function return value in SELECT_TYPE_RETV, and -dnl also defining the type qualifier of fifth argument -dnl in SELECT_QUAL_ARG5. - -AC_DEFUN([CURL_CHECK_FUNC_SELECT], [ - AC_REQUIRE([CURL_CHECK_STRUCT_TIMEVAL])dnl - AC_CHECK_HEADERS(sys/select.h sys/socket.h) - # - AC_MSG_CHECKING([for select]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif -#ifndef HAVE_WINDOWS_H -#ifdef HAVE_SYS_SELECT_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - ]],[[ - select(0, 0, 0, 0, 0); - ]]) - ],[ - AC_MSG_RESULT([yes]) - curl_cv_select="yes" - ],[ - AC_MSG_RESULT([no]) - curl_cv_select="no" - ]) - # - if test "$curl_cv_select" = "yes"; then - AC_CACHE_CHECK([types of args and return type for select], - [curl_cv_func_select_args], [ - curl_cv_func_select_args="unknown" - for sel_retv in 'int' 'ssize_t'; do - for sel_arg1 in 'int' 'ssize_t' 'size_t' 'unsigned long int' 'unsigned int'; do - for sel_arg234 in 'fd_set *' 'int *' 'void *'; do - for sel_arg5 in 'struct timeval *' 'const struct timeval *'; do - if test "$curl_cv_func_select_args" = "unknown"; then - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define SELECTCALLCONV PASCAL -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif -#ifndef HAVE_WINDOWS_H -#ifdef HAVE_SYS_SELECT_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define SELECTCALLCONV -#endif -#ifndef HAVE_STRUCT_TIMEVAL - struct timeval { - long tv_sec; - long tv_usec; - }; -#endif - extern $sel_retv SELECTCALLCONV select($sel_arg1, - $sel_arg234, - $sel_arg234, - $sel_arg234, - $sel_arg5); - ]],[[ - $sel_arg1 nfds=0; - $sel_arg234 rfds=0; - $sel_arg234 wfds=0; - $sel_arg234 efds=0; - $sel_retv res = select(nfds, rfds, wfds, efds, 0); - ]]) - ],[ - curl_cv_func_select_args="$sel_arg1,$sel_arg234,$sel_arg5,$sel_retv" - ]) - fi - done - done - done - done - ]) # AC-CACHE-CHECK - if test "$curl_cv_func_select_args" = "unknown"; then - AC_MSG_WARN([Cannot find proper types to use for select args]) - AC_MSG_WARN([HAVE_SELECT will not be defined]) - else - select_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_select_args" | sed 's/\*/\*/g'` - IFS=$select_prev_IFS - shift - # - sel_qual_type_arg5=$[3] - # - AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1, $[1], - [Define to the type of arg 1 for select.]) - AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234, $[2], - [Define to the type of args 2, 3 and 4 for select.]) - AC_DEFINE_UNQUOTED(SELECT_TYPE_RETV, $[4], - [Define to the function return type for select.]) - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$sel_qual_type_arg5" in - const*) - sel_qual_arg5=const - sel_type_arg5=`echo $sel_qual_type_arg5 | sed 's/^const //'` - ;; - *) - sel_qual_arg5= - sel_type_arg5=$sel_qual_type_arg5 - ;; - esac - # - AC_DEFINE_UNQUOTED(SELECT_QUAL_ARG5, $sel_qual_arg5, - [Define to the type qualifier of arg 5 for select.]) - AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5, $sel_type_arg5, - [Define to the type of arg 5 for select.]) - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - AC_DEFINE_UNQUOTED(HAVE_SELECT, 1, - [Define to 1 if you have the select function.]) - ac_cv_func_select="yes" - fi - fi -]) - - -# This is only a temporary fix. This macro is here to replace the broken one -# delivered by the automake project (including the 1.9.6 release). As soon as -# they ship a working version we SHOULD remove this work-around. - -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} \"$am_aux_dir/missing\"" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - - -dnl CURL_VERIFY_RUNTIMELIBS -dnl ------------------------------------------------- -dnl Verify that the shared libs found so far can be used when running -dnl programs, since otherwise the situation will create odd configure errors -dnl that are misleading people. -dnl -dnl Make sure this test is run BEFORE the first test in the script that -dnl runs anything, which at the time of this writing is the AC_CHECK_SIZEOF -dnl macro. It must also run AFTER all lib-checking macros are complete. - -AC_DEFUN([CURL_VERIFY_RUNTIMELIBS], [ - - dnl this test is of course not sensible if we are cross-compiling! - if test "x$cross_compiling" != xyes; then - - dnl just run a program to verify that the libs checked for previous to this - dnl point also is available run-time! - AC_MSG_CHECKING([run-time libs availability]) - AC_TRY_RUN([ -main() -{ - return 0; -} -], - AC_MSG_RESULT([fine]), - AC_MSG_RESULT([failed]) - AC_MSG_ERROR([one or more libs available at link-time are not available run-time. Libs used at link-time: $LIBS]) - ) - - dnl if this test fails, configure has already stopped - fi -]) - - -dnl CURL_CHECK_VARIADIC_MACROS -dnl ------------------------------------------------- -dnl Check compiler support of variadic macros - -AC_DEFUN([CURL_CHECK_VARIADIC_MACROS], [ - AC_CACHE_CHECK([for compiler support of C99 variadic macro style], - [curl_cv_variadic_macros_c99], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#define c99_vmacro3(first, ...) fun3(first, __VA_ARGS__) -#define c99_vmacro2(first, ...) fun2(first, __VA_ARGS__) - int fun3(int arg1, int arg2, int arg3); - int fun2(int arg1, int arg2); - int fun3(int arg1, int arg2, int arg3) - { return arg1 + arg2 + arg3; } - int fun2(int arg1, int arg2) - { return arg1 + arg2; } - ]],[[ - int res3 = c99_vmacro3(1, 2, 3); - int res2 = c99_vmacro2(1, 2); - ]]) - ],[ - curl_cv_variadic_macros_c99="yes" - ],[ - curl_cv_variadic_macros_c99="no" - ]) - ]) - case "$curl_cv_variadic_macros_c99" in - yes) - AC_DEFINE_UNQUOTED(HAVE_VARIADIC_MACROS_C99, 1, - [Define to 1 if compiler supports C99 variadic macro style.]) - ;; - esac - AC_CACHE_CHECK([for compiler support of old gcc variadic macro style], - [curl_cv_variadic_macros_gcc], [ - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#define gcc_vmacro3(first, args...) fun3(first, args) -#define gcc_vmacro2(first, args...) fun2(first, args) - int fun3(int arg1, int arg2, int arg3); - int fun2(int arg1, int arg2); - int fun3(int arg1, int arg2, int arg3) - { return arg1 + arg2 + arg3; } - int fun2(int arg1, int arg2) - { return arg1 + arg2; } - ]],[[ - int res3 = gcc_vmacro3(1, 2, 3); - int res2 = gcc_vmacro2(1, 2); - ]]) - ],[ - curl_cv_variadic_macros_gcc="yes" - ],[ - curl_cv_variadic_macros_gcc="no" - ]) - ]) - case "$curl_cv_variadic_macros_gcc" in - yes) - AC_DEFINE_UNQUOTED(HAVE_VARIADIC_MACROS_GCC, 1, - [Define to 1 if compiler supports old gcc variadic macro style.]) - ;; - esac -]) - - -dnl CURL_CHECK_CA_BUNDLE -dnl ------------------------------------------------- -dnl Check if a default ca-bundle should be used -dnl -dnl regarding the paths this will scan: -dnl /etc/ssl/certs/ca-certificates.crt Debian systems -dnl /etc/pki/tls/certs/ca-bundle.crt Redhat and Mandriva -dnl /usr/share/ssl/certs/ca-bundle.crt old(er) Redhat -dnl /usr/local/share/certs/ca-root.crt FreeBSD -dnl /etc/ssl/cert.pem OpenBSD -dnl /etc/ssl/certs/ (ca path) SUSE - -AC_DEFUN([CURL_CHECK_CA_BUNDLE], [ - - AC_MSG_CHECKING([default CA cert bundle/path]) - - AC_ARG_WITH(ca-bundle, -AC_HELP_STRING([--with-ca-bundle=FILE], [File name to use as CA bundle]) -AC_HELP_STRING([--without-ca-bundle], [Don't use a default CA bundle]), - [ - want_ca="$withval" - if test "x$want_ca" = "xyes"; then - AC_MSG_ERROR([--with-ca-bundle=FILE requires a path to the CA bundle]) - fi - ], - [ want_ca="unset" ]) - AC_ARG_WITH(ca-path, -AC_HELP_STRING([--with-ca-path=DIRECTORY], [Directory to use as CA path]) -AC_HELP_STRING([--without-ca-path], [Don't use a default CA path]), - [ - want_capath="$withval" - if test "x$want_capath" = "xyes"; then - AC_MSG_ERROR([--with-ca-path=DIRECTORY requires a path to the CA path directory]) - fi - ], - [ want_capath="unset"]) - - if test "x$want_ca" != "xno" -a "x$want_ca" != "xunset" -a \ - "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then - dnl both given - AC_MSG_ERROR([Can't specify both --with-ca-bundle and --with-ca-path.]) - elif test "x$want_ca" != "xno" -a "x$want_ca" != "xunset"; then - dnl --with-ca-bundle given - ca="$want_ca" - capath="no" - elif test "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then - dnl --with-ca-path given - if test "x$OPENSSL_ENABLED" != "x1"; then - AC_MSG_ERROR([--with-ca-path only works with openSSL]) - fi - capath="$want_capath" - ca="no" - else - dnl neither of --with-ca-* given - dnl first try autodetecting a CA bundle , then a CA path - dnl both autodetections can be skipped by --without-ca-* - ca="no" - capath="no" - if test "x$want_ca" = "xunset"; then - dnl the path we previously would have installed the curl ca bundle - dnl to, and thus we now check for an already existing cert in that place - dnl in case we find no other - if test "x$prefix" != xNONE; then - cac="${prefix}/share/curl/curl-ca-bundle.crt" - else - cac="$ac_default_prefix/share/curl/curl-ca-bundle.crt" - fi - - for a in /etc/ssl/certs/ca-certificates.crt \ - /etc/pki/tls/certs/ca-bundle.crt \ - /usr/share/ssl/certs/ca-bundle.crt \ - /usr/local/share/certs/ca-root.crt \ - /etc/ssl/cert.pem \ - "$cac"; do - if test -f "$a"; then - ca="$a" - break - fi - done - fi - if test "x$want_capath" = "xunset" -a "x$ca" = "xno" -a \ - "x$OPENSSL_ENABLED" = "x1"; then - for a in /etc/ssl/certs/; do - if test -d "$a" && ls "$a"/[[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]].0 >/dev/null 2>/dev/null; then - capath="$a" - break - fi - done - fi - fi - - - - if test "x$ca" != "xno"; then - CURL_CA_BUNDLE='"'$ca'"' - AC_DEFINE_UNQUOTED(CURL_CA_BUNDLE, "$ca", [Location of default ca bundle]) - AC_SUBST(CURL_CA_BUNDLE) - AC_MSG_RESULT([$ca]) - elif test "x$capath" != "xno"; then - CURL_CA_PATH="\"$capath\"" - AC_DEFINE_UNQUOTED(CURL_CA_PATH, "$capath", [Location of default ca path]) - AC_MSG_RESULT([$capath (capath)]) - else - AC_MSG_RESULT([no]) - fi -]) - - -dnl DO_CURL_OFF_T_CHECK (TYPE, SIZE) -dnl ------------------------------------------------- -dnl Internal macro for CURL_CONFIGURE_CURL_OFF_T - -AC_DEFUN([DO_CURL_OFF_T_CHECK], [ - AC_REQUIRE([CURL_INCLUDES_INTTYPES])dnl - if test "$curl_typeof_curl_off_t" = "unknown" && test ! -z "$1"; then - tmp_includes="" - tmp_source="" - tmp_fmt="" - case XC_SH_TR_SH([$1]) in - int64_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f@<:@@:>@ = PRId64;" - tmp_fmt="PRId64" - ;; - int32_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f@<:@@:>@ = PRId32;" - tmp_fmt="PRId32" - ;; - int16_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f@<:@@:>@ = PRId16;" - tmp_fmt="PRId16" - ;; - esac - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - $tmp_includes - typedef $1 curl_off_t; - typedef char dummy_arr[sizeof(curl_off_t) == $2 ? 1 : -1]; - ]],[[ - $tmp_source - curl_off_t dummy; - ]]) - ],[ - if test -z "$tmp_fmt"; then - curl_typeof_curl_off_t="$1" - curl_sizeof_curl_off_t="$2" - else - CURL_CHECK_DEF([$tmp_fmt], [$curl_includes_inttypes], [silent]) - AS_VAR_PUSHDEF([tmp_HaveFmtDef], [curl_cv_have_def_$tmp_fmt])dnl - AS_VAR_PUSHDEF([tmp_FmtDef], [curl_cv_def_$tmp_fmt])dnl - if test AS_VAR_GET(tmp_HaveFmtDef) = "yes"; then - curl_format_curl_off_t=AS_VAR_GET(tmp_FmtDef) - curl_typeof_curl_off_t="$1" - curl_sizeof_curl_off_t="$2" - fi - AS_VAR_POPDEF([tmp_FmtDef])dnl - AS_VAR_POPDEF([tmp_HaveFmtDef])dnl - fi - ]) - fi -]) - - -dnl DO_CURL_OFF_T_SUFFIX_CHECK (TYPE) -dnl ------------------------------------------------- -dnl Internal macro for CURL_CONFIGURE_CURL_OFF_T - -AC_DEFUN([DO_CURL_OFF_T_SUFFIX_CHECK], [ - AC_REQUIRE([CURL_INCLUDES_INTTYPES])dnl - AC_MSG_CHECKING([constant suffix string for curl_off_t]) - # - curl_suffix_curl_off_t="unknown" - curl_suffix_curl_off_tu="unknown" - # - case XC_SH_TR_SH([$1]) in - long_long | __longlong | __longlong_t) - tst_suffixes="LL::" - ;; - long) - tst_suffixes="L::" - ;; - int) - tst_suffixes="::" - ;; - __int64 | int64_t) - tst_suffixes="LL:i64::" - ;; - __int32 | int32_t) - tst_suffixes="L:i32::" - ;; - __int16 | int16_t) - tst_suffixes="L:i16::" - ;; - *) - AC_MSG_ERROR([unexpected data type $1]) - ;; - esac - # - old_IFS=$IFS; IFS=':' - for tmp_ssuf in $tst_suffixes ; do - IFS=$old_IFS - if test "x$curl_suffix_curl_off_t" = "xunknown"; then - case $tmp_ssuf in - i64 | i32 | i16) - tmp_usuf="u$tmp_ssuf" - ;; - LL | L) - tmp_usuf="U$tmp_ssuf" - ;; - *) - tmp_usuf="" - ;; - esac - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - $curl_includes_inttypes - typedef $1 new_t; - ]],[[ - new_t s1; - new_t s2; - s1 = -10$tmp_ssuf ; - s2 = 20$tmp_ssuf ; - if(s1 > s2) - return 1; - ]]) - ],[ - curl_suffix_curl_off_t="$tmp_ssuf" - curl_suffix_curl_off_tu="$tmp_usuf" - ]) - fi - done - IFS=$old_IFS - # - if test "x$curl_suffix_curl_off_t" = "xunknown"; then - AC_MSG_ERROR([cannot find constant suffix string for curl_off_t.]) - else - AC_MSG_RESULT([$curl_suffix_curl_off_t]) - AC_MSG_CHECKING([constant suffix string for unsigned curl_off_t]) - AC_MSG_RESULT([$curl_suffix_curl_off_tu]) - fi - # -]) - - -dnl CURL_CONFIGURE_CURL_OFF_T -dnl ------------------------------------------------- -dnl Find out suitable curl_off_t data type definition and associated -dnl items, and make the appropriate definitions used in template file -dnl include/curl/curlbuild.h.in to properly configure the library. - -AC_DEFUN([CURL_CONFIGURE_CURL_OFF_T], [ - AC_REQUIRE([CURL_INCLUDES_INTTYPES])dnl - # - AC_BEFORE([$0],[AC_SYS_LARGEFILE])dnl - AC_BEFORE([$0],[CURL_CONFIGURE_REENTRANT])dnl - AC_BEFORE([$0],[CURL_CHECK_AIX_ALL_SOURCE])dnl - # - if test -z "$SED"; then - AC_MSG_ERROR([SED not set. Cannot continue without SED being set.]) - fi - # - AC_CHECK_SIZEOF(long) - AC_CHECK_SIZEOF(void*) - # - if test -z "$ac_cv_sizeof_long" || - test "$ac_cv_sizeof_long" -eq "0"; then - AC_MSG_ERROR([cannot find out size of long.]) - fi - if test -z "$ac_cv_sizeof_voidp" || - test "$ac_cv_sizeof_voidp" -eq "0"; then - AC_MSG_ERROR([cannot find out size of void*.]) - fi - # - x_LP64_long="" - x_LP32_long="" - x_LP16_long="" - # - if test "$ac_cv_sizeof_long" -eq "8" && - test "$ac_cv_sizeof_voidp" -ge "8"; then - x_LP64_long="long" - elif test "$ac_cv_sizeof_long" -eq "4" && - test "$ac_cv_sizeof_voidp" -ge "4"; then - x_LP32_long="long" - elif test "$ac_cv_sizeof_long" -eq "2" && - test "$ac_cv_sizeof_voidp" -ge "2"; then - x_LP16_long="long" - fi - # - dnl DO_CURL_OFF_T_CHECK results are stored in next 3 vars - # - curl_typeof_curl_off_t="unknown" - curl_sizeof_curl_off_t="unknown" - curl_format_curl_off_t="unknown" - curl_format_curl_off_tu="unknown" - # - if test "$curl_typeof_curl_off_t" = "unknown"; then - AC_MSG_CHECKING([for 64-bit curl_off_t data type]) - for t8 in \ - "$x_LP64_long" \ - 'int64_t' \ - '__int64' \ - 'long long' \ - '__longlong' \ - '__longlong_t' ; do - DO_CURL_OFF_T_CHECK([$t8], [8]) - done - AC_MSG_RESULT([$curl_typeof_curl_off_t]) - fi - if test "$curl_typeof_curl_off_t" = "unknown"; then - AC_MSG_CHECKING([for 32-bit curl_off_t data type]) - for t4 in \ - "$x_LP32_long" \ - 'int32_t' \ - '__int32' \ - 'int' ; do - DO_CURL_OFF_T_CHECK([$t4], [4]) - done - AC_MSG_RESULT([$curl_typeof_curl_off_t]) - fi - if test "$curl_typeof_curl_off_t" = "unknown"; then - AC_MSG_CHECKING([for 16-bit curl_off_t data type]) - for t2 in \ - "$x_LP16_long" \ - 'int16_t' \ - '__int16' \ - 'int' ; do - DO_CURL_OFF_T_CHECK([$t2], [2]) - done - AC_MSG_RESULT([$curl_typeof_curl_off_t]) - fi - if test "$curl_typeof_curl_off_t" = "unknown"; then - AC_MSG_ERROR([cannot find data type for curl_off_t.]) - fi - # - AC_MSG_CHECKING([size of curl_off_t]) - AC_MSG_RESULT([$curl_sizeof_curl_off_t]) - # - AC_MSG_CHECKING([formatting string directive for curl_off_t]) - if test "$curl_format_curl_off_t" != "unknown"; then - x_pull_headers="yes" - curl_format_curl_off_t=`echo "$curl_format_curl_off_t" | "$SED" 's/[["]]//g'` - curl_format_curl_off_tu=`echo "$curl_format_curl_off_t" | "$SED" 's/i$/u/'` - curl_format_curl_off_tu=`echo "$curl_format_curl_off_tu" | "$SED" 's/d$/u/'` - curl_format_curl_off_tu=`echo "$curl_format_curl_off_tu" | "$SED" 's/D$/U/'` - else - x_pull_headers="no" - case XC_SH_TR_SH([$curl_typeof_curl_off_t]) in - long_long | __longlong | __longlong_t) - curl_format_curl_off_t="lld" - curl_format_curl_off_tu="llu" - ;; - long) - curl_format_curl_off_t="ld" - curl_format_curl_off_tu="lu" - ;; - int) - curl_format_curl_off_t="d" - curl_format_curl_off_tu="u" - ;; - __int64) - curl_format_curl_off_t="I64d" - curl_format_curl_off_tu="I64u" - ;; - __int32) - curl_format_curl_off_t="I32d" - curl_format_curl_off_tu="I32u" - ;; - __int16) - curl_format_curl_off_t="I16d" - curl_format_curl_off_tu="I16u" - ;; - *) - AC_MSG_ERROR([cannot find print format string for curl_off_t.]) - ;; - esac - fi - AC_MSG_RESULT(["$curl_format_curl_off_t"]) - # - AC_MSG_CHECKING([formatting string directive for unsigned curl_off_t]) - AC_MSG_RESULT(["$curl_format_curl_off_tu"]) - # - DO_CURL_OFF_T_SUFFIX_CHECK([$curl_typeof_curl_off_t]) - # - if test "$x_pull_headers" = "yes"; then - if test "x$ac_cv_header_sys_types_h" = "xyes"; then - CURL_DEFINE_UNQUOTED([CURL_PULL_SYS_TYPES_H]) - fi - if test "x$ac_cv_header_stdint_h" = "xyes"; then - CURL_DEFINE_UNQUOTED([CURL_PULL_STDINT_H]) - fi - if test "x$ac_cv_header_inttypes_h" = "xyes"; then - CURL_DEFINE_UNQUOTED([CURL_PULL_INTTYPES_H]) - fi - fi - # - CURL_DEFINE_UNQUOTED([CURL_TYPEOF_CURL_OFF_T], [$curl_typeof_curl_off_t]) - CURL_DEFINE_UNQUOTED([CURL_FORMAT_CURL_OFF_T], ["$curl_format_curl_off_t"]) - CURL_DEFINE_UNQUOTED([CURL_FORMAT_CURL_OFF_TU], ["$curl_format_curl_off_tu"]) - CURL_DEFINE_UNQUOTED([CURL_FORMAT_OFF_T], ["%$curl_format_curl_off_t"]) - CURL_DEFINE_UNQUOTED([CURL_SIZEOF_CURL_OFF_T], [$curl_sizeof_curl_off_t]) - CURL_DEFINE_UNQUOTED([CURL_SUFFIX_CURL_OFF_T], [$curl_suffix_curl_off_t]) - CURL_DEFINE_UNQUOTED([CURL_SUFFIX_CURL_OFF_TU], [$curl_suffix_curl_off_tu]) - # -]) - - -dnl CURL_CHECK_WIN32_LARGEFILE -dnl ------------------------------------------------- -dnl Check if curl's WIN32 large file will be used - -AC_DEFUN([CURL_CHECK_WIN32_LARGEFILE], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl - AC_MSG_CHECKING([whether build target supports WIN32 file API]) - curl_win32_file_api="no" - if test "$ac_cv_header_windows_h" = "yes"; then - if test x"$enable_largefile" != "xno"; then - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - ]],[[ -#if !defined(_WIN32_WCE) && \ - (defined(__MINGW32__) || \ - (defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64)))) - int dummy=1; -#else - WIN32 large file API not supported. -#endif - ]]) - ],[ - curl_win32_file_api="win32_large_files" - ]) - fi - if test "$curl_win32_file_api" = "no"; then - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - ]],[[ -#if defined(_WIN32_WCE) || defined(__MINGW32__) || defined(_MSC_VER) - int dummy=1; -#else - WIN32 small file API not supported. -#endif - ]]) - ],[ - curl_win32_file_api="win32_small_files" - ]) - fi - fi - case "$curl_win32_file_api" in - win32_large_files) - AC_MSG_RESULT([yes (large file enabled)]) - AC_DEFINE_UNQUOTED(USE_WIN32_LARGE_FILES, 1, - [Define to 1 if you are building a Windows target with large file support.]) - ;; - win32_small_files) - AC_MSG_RESULT([yes (large file disabled)]) - AC_DEFINE_UNQUOTED(USE_WIN32_SMALL_FILES, 1, - [Define to 1 if you are building a Windows target without large file support.]) - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -]) - -dnl CURL_EXPORT_PCDIR ($pcdir) -dnl ------------------------ -dnl if $pcdir is not empty, set PKG_CONFIG_LIBDIR to $pcdir and export -dnl -dnl we need this macro since pkg-config distinguishes among empty and unset -dnl variable while checking PKG_CONFIG_LIBDIR -dnl - -AC_DEFUN([CURL_EXPORT_PCDIR], [ - if test -n "$1"; then - PKG_CONFIG_LIBDIR="$1" - export PKG_CONFIG_LIBDIR - fi -]) - -dnl CURL_CHECK_PKGCONFIG ($module, [$pcdir]) -dnl ------------------------ -dnl search for the pkg-config tool (if not cross-compiling). Set the PKGCONFIG -dnl variable to hold the path to it, or 'no' if not found/present. -dnl -dnl If pkg-config is present, check that it has info about the $module or -dnl return "no" anyway! -dnl -dnl Optionally PKG_CONFIG_LIBDIR may be given as $pcdir. -dnl - -AC_DEFUN([CURL_CHECK_PKGCONFIG], [ - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - dnl see if there's a pkg-specific for this host setup - AC_PATH_PROG( PKGCONFIG, ${host}-pkg-config, no, - $PATH:/usr/bin:/usr/local/bin) - fi - - if test x$PKGCONFIG = xno; then - AC_PATH_PROG( PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin) - fi - - if test x$PKGCONFIG != xno; then - AC_MSG_CHECKING([for $1 options with pkg-config]) - dnl ask pkg-config about $1 - itexists=`CURL_EXPORT_PCDIR([$2]) dnl - $PKGCONFIG --exists $1 >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - dnl pkg-config does not have info about the given module! set the - dnl variable to 'no' - PKGCONFIG="no" - AC_MSG_RESULT([no]) - else - AC_MSG_RESULT([found]) - fi - fi -]) - - -dnl CURL_GENERATE_CONFIGUREHELP_PM -dnl ------------------------------------------------- -dnl Generate test harness configurehelp.pm module, defining and -dnl initializing some perl variables with values which are known -dnl when the configure script runs. For portability reasons, test -dnl harness needs information on how to run the C preprocessor. - -AC_DEFUN([CURL_GENERATE_CONFIGUREHELP_PM], [ - AC_REQUIRE([AC_PROG_CPP])dnl - tmp_cpp=`eval echo "$ac_cpp" 2>/dev/null` - if test -z "$tmp_cpp"; then - tmp_cpp='cpp' - fi - cat >./tests/configurehelp.pm <<_EOF -[@%:@] This is a generated file. Do not edit. - -package configurehelp; - -use strict; -use warnings; -use Exporter; - -use vars qw( - @ISA - @EXPORT_OK - \$Cpreprocessor - ); - -@ISA = qw(Exporter); - -@EXPORT_OK = qw( - \$Cpreprocessor - ); - -\$Cpreprocessor = '$tmp_cpp'; - -1; -_EOF -]) diff --git a/msvc-deps/curl/aclocal.m4 b/msvc-deps/curl/aclocal.m4 deleted file mode 100644 index 5305ee23..00000000 --- a/msvc-deps/curl/aclocal.m4 +++ /dev/null @@ -1,906 +0,0 @@ -# generated automatically by aclocal 1.9.6 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.9.6])]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 7 - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH]) -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -#serial 3 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 12 - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.58])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -]) -]) - - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $1 | $1:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"$am_aux_dir/install-sh"} -AC_SUBST(install_sh)]) - -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_MKDIR_P -# --------------- -# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. -# -# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories -# created by `make install' are always world readable, even if the -# installer happens to have an overly restrictive umask (e.g. 077). -# This was a mistake. There are at least two reasons why we must not -# use `-m 0755': -# - it causes special bits like SGID to be ignored, -# - it may be too restrictive (some setups expect 775 directories). -# -# Do not use -m 0755 and let people choose whatever they expect by -# setting umask. -# -# We cannot accept any implementation of `mkdir' that recognizes `-p'. -# Some implementations (such as Solaris 8's) are not thread-safe: if a -# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' -# concurrently, both version can detect that a/ is missing, but only -# one can create it and the other will error out. Consequently we -# restrict ourselves to GNU make (using the --version option ensures -# this.) -AC_DEFUN([AM_PROG_MKDIR_P], -[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi -AC_SUBST([mkdir_p])]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) - -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir - -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([m4/curl-compilers.m4]) -m4_include([m4/curl-confopts.m4]) -m4_include([m4/curl-functions.m4]) -m4_include([m4/curl-openssl.m4]) -m4_include([m4/curl-override.m4]) -m4_include([m4/curl-reentrant.m4]) -m4_include([m4/curl-system.m4]) -m4_include([m4/libtool.m4]) -m4_include([m4/ltoptions.m4]) -m4_include([m4/ltsugar.m4]) -m4_include([m4/ltversion.m4]) -m4_include([m4/lt~obsolete.m4]) -m4_include([m4/xc-translit.m4]) -m4_include([m4/zz50-xc-ovr.m4]) -m4_include([acinclude.m4]) diff --git a/msvc-deps/curl/buildconf b/msvc-deps/curl/buildconf deleted file mode 100644 index a7eb51a1..00000000 --- a/msvc-deps/curl/buildconf +++ /dev/null @@ -1,461 +0,0 @@ -#!/bin/sh -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2012, 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. -# -########################################################################### - -#-------------------------------------------------------------------------- -# die prints argument string to stdout and exits this shell script. -# -die(){ - echo "buildconf: $@" - exit 1 -} - -#-------------------------------------------------------------------------- -# findtool works as 'which' but we use a different name to make it more -# obvious we aren't using 'which'! ;-) -# -findtool(){ - file="$1" - - if { echo "$file" | grep "/" >/dev/null 2>&1; } then - # when file is given with a path check it first - if test -f "$file"; then - echo "$file" - return - fi - fi - - old_IFS=$IFS; IFS=':' - for path in $PATH - do - IFS=$old_IFS - # echo "checks for $file in $path" >&2 - if test -f "$path/$file"; then - echo "$path/$file" - return - fi - done - IFS=$old_IFS -} - -#-------------------------------------------------------------------------- -# removethis() removes all files and subdirectories with the given name, -# inside and below the current subdirectory at invocation time. -# -removethis(){ - if test "$#" = "1"; then - find . -depth -name $1 -print > buildconf.tmp.$$ - while read fdname - do - if test -f "$fdname"; then - rm -f "$fdname" - elif test -d "$fdname"; then - rm -f -r "$fdname" - fi - done < buildconf.tmp.$$ - rm -f buildconf.tmp.$$ - fi -} - -#-------------------------------------------------------------------------- -# Ensure that buildconf runs from the subdirectory where configure.ac lives -# -if test ! -f configure.ac || - test ! -f src/tool_main.c || - test ! -f lib/urldata.h || - test ! -f include/curl/curl.h || - test ! -f m4/curl-functions.m4; then - echo "Can not run buildconf from outside of curl's source subdirectory!" - echo "Change to the subdirectory where buildconf is found, and try again." - exit 1 -fi - -#-------------------------------------------------------------------------- -# autoconf 2.57 or newer. Unpatched version 2.67 does not generate proper -# configure script. Unpatched version 2.68 is simply unusable, we should -# disallow 2.68 usage. -# -need_autoconf="2.57" -ac_version=`${AUTOCONF:-autoconf} --version 2>/dev/null|head -n 1| sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'` -if test -z "$ac_version"; then - echo "buildconf: autoconf not found." - echo " You need autoconf version $need_autoconf or newer installed." - exit 1 -fi -old_IFS=$IFS; IFS='.'; set $ac_version; IFS=$old_IFS -if test "$1" = "2" -a "$2" -lt "57" || test "$1" -lt "2"; then - echo "buildconf: autoconf version $ac_version found." - echo " You need autoconf version $need_autoconf or newer installed." - echo " If you have a sufficient autoconf installed, but it" - echo " is not named 'autoconf', then try setting the" - echo " AUTOCONF environment variable." - exit 1 -fi - -if test "$1" = "2" -a "$2" -eq "67"; then - echo "buildconf: autoconf version $ac_version (BAD)" - echo " Unpatched version generates broken configure script." -elif test "$1" = "2" -a "$2" -eq "68"; then - echo "buildconf: autoconf version $ac_version (BAD)" - echo " Unpatched version generates unusable configure script." -else - echo "buildconf: autoconf version $ac_version (ok)" -fi - -am4te_version=`${AUTOM4TE:-autom4te} --version 2>/dev/null|head -n 1| sed -e 's/autom4te\(.*\)/\1/' -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'` -if test -z "$am4te_version"; then - echo "buildconf: autom4te not found. Weird autoconf installation!" - exit 1 -fi -if test "$am4te_version" = "$ac_version"; then - echo "buildconf: autom4te version $am4te_version (ok)" -else - echo "buildconf: autom4te version $am4te_version (ERROR: does not match autoconf version)" - exit 1 -fi - -#-------------------------------------------------------------------------- -# autoheader 2.50 or newer -# -ah_version=`${AUTOHEADER:-autoheader} --version 2>/dev/null|head -n 1| sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'` -if test -z "$ah_version"; then - echo "buildconf: autoheader not found." - echo " You need autoheader version 2.50 or newer installed." - exit 1 -fi -old_IFS=$IFS; IFS='.'; set $ah_version; IFS=$old_IFS -if test "$1" = "2" -a "$2" -lt "50" || test "$1" -lt "2"; then - echo "buildconf: autoheader version $ah_version found." - echo " You need autoheader version 2.50 or newer installed." - echo " If you have a sufficient autoheader installed, but it" - echo " is not named 'autoheader', then try setting the" - echo " AUTOHEADER environment variable." - exit 1 -fi - -echo "buildconf: autoheader version $ah_version (ok)" - -#-------------------------------------------------------------------------- -# automake 1.7 or newer -# -need_automake="1.7" -am_version=`${AUTOMAKE:-automake} --version 2>/dev/null|head -n 1| sed -e 's/^.* \([0-9]\)/\1/' -e 's/[a-z]* *$//' -e 's/\(.*\)\(-p.*\)/\1/'` -if test -z "$am_version"; then - echo "buildconf: automake not found." - echo " You need automake version $need_automake or newer installed." - exit 1 -fi -old_IFS=$IFS; IFS='.'; set $am_version; IFS=$old_IFS -if test "$1" = "1" -a "$2" -lt "7" || test "$1" -lt "1"; then - echo "buildconf: automake version $am_version found." - echo " You need automake version $need_automake or newer installed." - echo " If you have a sufficient automake installed, but it" - echo " is not named 'automake', then try setting the" - echo " AUTOMAKE environment variable." - exit 1 -fi - -echo "buildconf: automake version $am_version (ok)" - -acloc_version=`${ACLOCAL:-aclocal} --version 2>/dev/null|head -n 1| sed -e 's/^.* \([0-9]\)/\1/' -e 's/[a-z]* *$//' -e 's/\(.*\)\(-p.*\)/\1/'` -if test -z "$acloc_version"; then - echo "buildconf: aclocal not found. Weird automake installation!" - exit 1 -fi -if test "$acloc_version" = "$am_version"; then - echo "buildconf: aclocal version $acloc_version (ok)" -else - echo "buildconf: aclocal version $acloc_version (ERROR: does not match automake version)" - exit 1 -fi - -#-------------------------------------------------------------------------- -# GNU libtool preliminary check -# -want_lt_major=1 -want_lt_minor=4 -want_lt_patch=2 -want_lt_version=1.4.2 - -# This approach that tries 'glibtool' first is intended for systems that -# have GNU libtool named as 'glibtool' and libtool not being GNU's. - -libtool=`findtool glibtool 2>/dev/null` -if test ! -x "$libtool"; then - libtool=`findtool ${LIBTOOL:-libtool}` -fi -if test -z "$libtool"; then - echo "buildconf: libtool not found." - echo " You need GNU libtool $want_lt_version or newer installed." - exit 1 -fi - -lt_pver=`$libtool --version 2>/dev/null|head -n 1` -lt_qver=`echo $lt_pver|sed -e "s/([^)]*)//g" -e "s/^[^0-9]*//g"` -lt_version=`echo $lt_qver|sed -e "s/[- ].*//" -e "s/\([a-z]*\)$//"` -if test -z "$lt_version"; then - echo "buildconf: libtool not found." - echo " You need GNU libtool $want_lt_version or newer installed." - exit 1 -fi -old_IFS=$IFS; IFS='.'; set $lt_version; IFS=$old_IFS -lt_major=$1 -lt_minor=$2 -lt_patch=$3 - -if test -z "$lt_major"; then - lt_status="bad" -elif test "$lt_major" -gt "$want_lt_major"; then - lt_status="good" -elif test "$lt_major" -lt "$want_lt_major"; then - lt_status="bad" -elif test -z "$lt_minor"; then - lt_status="bad" -elif test "$lt_minor" -gt "$want_lt_minor"; then - lt_status="good" -elif test "$lt_minor" -lt "$want_lt_minor"; then - lt_status="bad" -elif test -z "$lt_patch"; then - lt_status="bad" -elif test "$lt_patch" -gt "$want_lt_patch"; then - lt_status="good" -elif test "$lt_patch" -lt "$want_lt_patch"; then - lt_status="bad" -else - lt_status="good" -fi -if test "$lt_status" != "good"; then - echo "buildconf: libtool version $lt_version found." - echo " You need GNU libtool $want_lt_version or newer installed." - exit 1 -fi - -echo "buildconf: libtool version $lt_version (ok)" - -#-------------------------------------------------------------------------- -# GNU libtoolize check -# -if test -z "$LIBTOOLIZE"; then - # use (g)libtoolize from same location as (g)libtool - libtoolize="${libtool}ize" -else - libtoolize=`findtool $LIBTOOLIZE` -fi -if test ! -f "$libtoolize"; then - echo "buildconf: libtoolize not found." - echo " You need GNU libtoolize $want_lt_version or newer installed." - exit 1 -fi - -#-------------------------------------------------------------------------- -# m4 check -# -m4=`(${M4:-m4} --version || ${M4:-gm4} --version) 2>/dev/null | head -n 1`; -m4_version=`echo $m4 | sed -e 's/^.* \([0-9]\)/\1/' -e 's/[a-z]* *$//'` - -if { echo $m4 | grep "GNU" >/dev/null 2>&1; } then - echo "buildconf: GNU m4 version $m4_version (ok)" -else - if test -z "$m4"; then - echo "buildconf: m4 version not recognized. You need a GNU m4 installed!" - else - echo "buildconf: m4 version $m4 found. You need a GNU m4 installed!" - fi - exit 1 -fi - -#-------------------------------------------------------------------------- -# perl check -# -PERL=`findtool ${PERL:-perl}` -if test -z "$PERL"; then - echo "buildconf: perl not found" - exit 1 -fi - -#-------------------------------------------------------------------------- -# Remove files generated on previous buildconf/configure run. -# -for fname in .deps \ - .libs \ - *.la \ - *.lo \ - *.a \ - *.o \ - Makefile \ - Makefile.in \ - aclocal.m4 \ - aclocal.m4.bak \ - ares_build.h \ - ares_config.h \ - ares_config.h.in \ - autom4te.cache \ - compile \ - config.guess \ - curl_config.h \ - curl_config.h.in \ - config.log \ - config.lt \ - config.status \ - config.sub \ - configure \ - configurehelp.pm \ - curl-config \ - curlbuild.h \ - depcomp \ - libcares.pc \ - libcurl.pc \ - libtool \ - libtool.m4 \ - libtool.m4.tmp \ - ltmain.sh \ - ltoptions.m4 \ - ltsugar.m4 \ - ltversion.m4 \ - lt~obsolete.m4 \ - stamp-h1 \ - stamp-h2 \ - stamp-h3 ; do - removethis "$fname" -done - -#-------------------------------------------------------------------------- -# run the correct scripts now -# - -echo "buildconf: running libtoolize" -${libtoolize} --copy --automake --force || die "libtoolize command failed" - -# When using libtool 1.5.X (X < 26) we copy libtool.m4 to our local m4 -# subdirectory and this local copy is patched to fix some warnings that -# are triggered when running aclocal and using autoconf 2.62 or later. - -if test "$lt_major" = "1" && test "$lt_minor" = "5"; then - if test -z "$lt_patch" || test "$lt_patch" -lt "26"; then - echo "buildconf: copying libtool.m4 to local m4 subdir" - ac_dir=`${ACLOCAL:-aclocal} --print-ac-dir` - if test -f $ac_dir/libtool.m4; then - cp -f $ac_dir/libtool.m4 m4/libtool.m4 - else - echo "buildconf: $ac_dir/libtool.m4 not found" - fi - if test -f m4/libtool.m4; then - echo "buildconf: renaming some variables in local m4/libtool.m4" - $PERL -i.tmp -pe \ - 's/lt_prog_compiler_pic_works/lt_cv_prog_compiler_pic_works/g; \ - s/lt_prog_compiler_static_works/lt_cv_prog_compiler_static_works/g;' \ - m4/libtool.m4 - rm -f m4/libtool.m4.tmp - fi - fi -fi - -if test -f m4/libtool.m4; then - echo "buildconf: converting all mv to mv -f in local m4/libtool.m4" - $PERL -i.tmp -pe 's/\bmv +([^-\s])/mv -f $1/g' m4/libtool.m4 - rm -f m4/libtool.m4.tmp -fi - -echo "buildconf: running aclocal" -${ACLOCAL:-aclocal} -I m4 $ACLOCAL_FLAGS || die "aclocal command failed" - -echo "buildconf: converting all mv to mv -f in local aclocal.m4" -$PERL -i.bak -pe 's/\bmv +([^-\s])/mv -f $1/g' aclocal.m4 - -echo "buildconf: running autoheader" -${AUTOHEADER:-autoheader} || die "autoheader command failed" - -echo "buildconf: running autoconf" -${AUTOCONF:-autoconf} || die "autoconf command failed" - -if test -d ares; then - cd ares - echo "buildconf: running in ares" - ./buildconf - cd .. -fi - -echo "buildconf: running automake" -${AUTOMAKE:-automake} --add-missing --copy || die "automake command failed" - -#-------------------------------------------------------------------------- -# GNU libtool complementary check -# -# Depending on the libtool and automake versions being used, config.guess -# might not be installed in the subdirectory until automake has finished. -# So we can not attempt to use it until this very last buildconf stage. -# -if test ! -f ./config.guess; then - echo "buildconf: config.guess not found" -else - buildhost=`./config.guess 2>/dev/null|head -n 1` - case $buildhost in - *-*-darwin*) - need_lt_major=1 - need_lt_minor=5 - need_lt_patch=26 - need_lt_check="yes" - ;; - *-*-hpux*) - need_lt_major=1 - need_lt_minor=5 - need_lt_patch=24 - need_lt_check="yes" - ;; - esac - if test ! -z "$need_lt_check"; then - if test -z "$lt_major"; then - lt_status="bad" - elif test "$lt_major" -gt "$need_lt_major"; then - lt_status="good" - elif test "$lt_major" -lt "$need_lt_major"; then - lt_status="bad" - elif test -z "$lt_minor"; then - lt_status="bad" - elif test "$lt_minor" -gt "$need_lt_minor"; then - lt_status="good" - elif test "$lt_minor" -lt "$need_lt_minor"; then - lt_status="bad" - elif test -z "$lt_patch"; then - lt_status="bad" - elif test "$lt_patch" -gt "$need_lt_patch"; then - lt_status="good" - elif test "$lt_patch" -lt "$need_lt_patch"; then - lt_status="bad" - else - lt_status="good" - fi - if test "$lt_status" != "good"; then - need_lt_version="$need_lt_major.$need_lt_minor.$need_lt_patch" - echo "buildconf: libtool version $lt_version found." - echo " $buildhost requires GNU libtool $need_lt_version or newer installed." - rm -f configure - exit 1 - fi - fi -fi - -#-------------------------------------------------------------------------- -# Finished successfully. -# -echo "buildconf: OK" -exit 0 diff --git a/msvc-deps/curl/compile b/msvc-deps/curl/compile deleted file mode 100644 index 1b1d2321..00000000 --- a/msvc-deps/curl/compile +++ /dev/null @@ -1,142 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. - -scriptversion=2005-05-14.22 - -# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. -# Written by Tom Tromey . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand `-c -o'. -Remove `-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file `INSTALL'. - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; -esac - -ofile= -cfile= -eat= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we strip `-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` - -# Create the lock directory. -# Note: use `[/.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/msvc-deps/curl/config.guess b/msvc-deps/curl/config.guess deleted file mode 100644 index d622a44e..00000000 --- a/msvc-deps/curl/config.guess +++ /dev/null @@ -1,1530 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011, 2012 Free Software Foundation, Inc. - -timestamp='2012-02-10' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - echo ${UNAME_MACHINE}-unknown-linux-gnueabi - else - echo ${UNAME_MACHINE}-unknown-linux-gnueabihf - fi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-gnu - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; - x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx - exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/msvc-deps/curl/config.sub b/msvc-deps/curl/config.sub deleted file mode 100644 index 6205f842..00000000 --- a/msvc-deps/curl/config.sub +++ /dev/null @@ -1,1782 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011, 2012 Free Software Foundation, Inc. - -timestamp='2012-04-18' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | be32 | be64 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 \ - | ns16k | ns32k \ - | open8 \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown - ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none - ;; - xscaleeb) - basic_machine=armeb-unknown - ;; - - xscaleel) - basic_machine=armel-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze) - basic_machine=microblaze-xilinx - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i386-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tile*) - basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -nacl*) - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - hexagon-*) - os=-elf - ;; - tic54x-*) - os=-coff - ;; - tic55x-*) - os=-coff - ;; - tic6x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/msvc-deps/curl/configure b/msvc-deps/curl/configure deleted file mode 100644 index 0e7b519f..00000000 --- a/msvc-deps/curl/configure +++ /dev/null @@ -1,41269 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.64 for curl -. -# -# Report bugs to . -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software -# Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -# -# Copyright (c) 1998 - 2012 Daniel Stenberg, -# This configure script may be copied, distributed and modified under the -# terms of the curl license; see COPYING for more details -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - - - if test -z "$curl_cv_PATH_SEPARATOR"; then - if test -z "$PATH"; then - as_fn_error "PATH not set. Cannot continue without PATH being set." - fi - tst_dirs_col=0 - tst_save_IFS=$IFS; IFS=':' - for tst_dir in $PATH; do - IFS=$tst_save_IFS - test -d "$tst_dir" && tst_dirs_col=`expr $tst_dirs_col + 1` - done - IFS=$tst_save_IFS - tst_dirs_sem=0 - tst_save_IFS=$IFS; IFS=';' - for tst_dir in $PATH; do - IFS=$tst_save_IFS - test -d "$tst_dir" && tst_dirs_sem=`expr $tst_dirs_sem + 1` - done - IFS=$tst_save_IFS - if test $tst_dirs_sem -eq $tst_dirs_col; then - if test -z "$PATH_SEPARATOR"; then - as_fn_error "PATH_SEPARATOR not set. Cannot continue without it." - fi - else - if test $tst_dirs_sem -gt $tst_dirs_col; then - tst_auto_separator=';' - else - tst_auto_separator=':' - fi - if test -z "$PATH_SEPARATOR"; then - PATH_SEPARATOR="$tst_auto_separator" - fi - fi - curl_cv_PATH_SEPARATOR="$PATH_SEPARATOR" - fi - - - - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1 - - test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ - || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and a suitable curl -$0: mailing list: http://curl.haxx.se/mail/ about your -$0: system, including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. -as_fn_error () -{ - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 - fi - $as_echo "$as_me: error: $1" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - -SHELL=${CONFIG_SHELL-/bin/sh} - - -exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='curl' -PACKAGE_TARNAME='curl' -PACKAGE_VERSION='-' -PACKAGE_STRING='curl -' -PACKAGE_BUGREPORT='a suitable curl mailing list: http://curl.haxx.se/mail/' -PACKAGE_URL='' - -ac_unique_file="lib/urldata.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -enable_option_checking=no -ac_subst_vars='LTLIBOBJS -LIBOBJS -SUPPORT_PROTOCOLS -SUPPORT_FEATURES -ENABLE_SHARED -CROSSCOMPILING_FALSE -CROSSCOMPILING_TRUE -CURL_NETWORK_LIBS -TEST_SERVER_LIBS -CURL_LIBS -LIBCURL_LIBS -SONAME_BUMP_FALSE -SONAME_BUMP_TRUE -CFLAG_CURL_SYMBOL_HIDING -DOING_CURL_SYMBOL_HIDING_FALSE -DOING_CURL_SYMBOL_HIDING_TRUE -BUILD_LIBHOSTNAME_FALSE -BUILD_LIBHOSTNAME_TRUE -USE_EMBEDDED_ARES_FALSE -USE_EMBEDDED_ARES_TRUE -USE_ARES -subdirs -USE_MANUAL_FALSE -USE_MANUAL_TRUE -MANOPT -NROFF -PERL -IPV6_ENABLED -IDN_ENABLED -VERSIONED_SYMBOLS_FALSE -VERSIONED_SYMBOLS_TRUE -VERSIONED_FLAVOUR -USE_LIBRTMP -USE_LIBSSH2 -LIBMETALINK_CFLAGS -LIBMETALINK_LDFLAGS -LIBMETALINK_LIBS -CURL_CA_BUNDLE -SSL_ENABLED -USE_AXTLS -HAVE_NSS_INITCONTEXT -USE_NSS -USE_CYASSL -USE_POLARSSL -HAVE_GNUTLS_SRP -USE_GNUTLS_NETTLE -USE_GNUTLS -HAVE_SSLEAY_SRP -RANDOM_FILE -HAVE_LIBZ_FALSE -HAVE_LIBZ_TRUE -HAVE_LIBZ -USE_SSLEAY -PKGCONFIG -USE_DARWINSSL -USE_WINDOWS_SSPI -USE_SCHANNEL -KRB4_ENABLED -USE_OPENLDAP -CURL_DISABLE_GOPHER -CURL_DISABLE_SMTP -CURL_DISABLE_IMAP -CURL_DISABLE_POP3 -CURL_DISABLE_TFTP -CURL_DISABLE_TELNET -CURL_DISABLE_DICT -CURL_DISABLE_PROXY -HAVE_LDAP_SSL -CURL_DISABLE_LDAPS -CURL_DISABLE_LDAP -CURL_DISABLE_FILE -CURL_DISABLE_FTP -CURL_DISABLE_RTSP -CURL_DISABLE_HTTP -DOING_NATIVE_WINDOWS_FALSE -DOING_NATIVE_WINDOWS_TRUE -BUILD_UNITTESTS_FALSE -BUILD_UNITTESTS_TRUE -CURLDEBUG_FALSE -CURLDEBUG_TRUE -NO_UNDEFINED_FALSE -NO_UNDEFINED_TRUE -REQUIRE_LIB_DEPS -CPPFLAG_CURL_STATICLIB -USE_CPPFLAG_CURL_STATICLIB_FALSE -USE_CPPFLAG_CURL_STATICLIB_TRUE -USE_CPPFLAG_BUILDING_LIBCURL_FALSE -USE_CPPFLAG_BUILDING_LIBCURL_TRUE -MIMPURE_FALSE -MIMPURE_TRUE -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -MANIFEST_TOOL -RANLIB -ac_ct_AR -LN_S -NM -ac_ct_DUMPBIN -DUMPBIN -LD -FGREP -LIBTOOL -OBJDUMP -DLLTOOL -AS -CPP -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -PKGADD_VENDOR -PKGADD_NAME -PKGADD_PKG -VERSIONNUM -CURLVERSION -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -libext -AR -EGREP -GREP -SED -CURL_CFLAG_EXTRAS -CONFIGURE_OPTIONS -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -SHELL -PATH -PATH_SEPARATOR' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_maintainer_mode -enable_debug -enable_optimize -enable_warnings -enable_werror -enable_curldebug -enable_symbol_hiding -enable_hidden_symbols -enable_ares -enable_dependency_tracking -enable_largefile -enable_shared -enable_static -with_pic -enable_fast_install -with_gnu_ld -with_sysroot -enable_libtool_lock -enable_http -enable_ftp -enable_file -enable_ldap -enable_ldaps -enable_rtsp -enable_proxy -enable_dict -enable_telnet -enable_tftp -enable_pop3 -enable_imap -enable_smtp -enable_gopher -enable_manual -enable_libcurl_option -enable_libgcc -with_ldap_lib -with_lber_lib -enable_ipv6 -with_krb4_includes -with_krb4_libs -with_krb4 -with_spnego -with_gssapi_includes -with_gssapi_libs -with_gssapi -with_winssl -with_darwinssl -with_ssl -with_zlib -with_egd_socket -with_random -with_gnutls -with_polarssl -with_cyassl -with_nss -with_axtls -with_ca_bundle -with_ca_path -with_libmetalink -with_libssh2 -with_librtmp -enable_versioned_symbols -with_winidn -with_libidn -enable_threaded_resolver -enable_verbose -enable_sspi -enable_crypto_auth -enable_ntlm_wb -enable_tls_srp -enable_cookies -enable_soname_bump -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP' -ac_subdirs_all='ares' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information." - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures curl - to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/curl] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of curl -:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --enable-debug Enable debug build options - --disable-debug Disable debug build options - --enable-optimize Enable compiler optimizations - --disable-optimize Disable compiler optimizations - --enable-warnings Enable strict compiler warnings - --disable-warnings Disable strict compiler warnings - --enable-werror Enable compiler warnings as errors - --disable-werror Disable compiler warnings as errors - --enable-curldebug Enable curl debug memory tracking - --disable-curldebug Disable curl debug memory tracking - --enable-symbol-hiding Enable hiding of library internal symbols - --disable-symbol-hiding Disable hiding of library internal symbols - --enable-hidden-symbols To be deprecated, use --enable-symbol-hiding - --disable-hidden-symbols - To be deprecated, use --disable-symbol-hiding - --enable-ares[=PATH] Enable c-ares for DNS lookups - --disable-ares Disable c-ares for DNS lookups - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --disable-largefile omit support for large files - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-static[=PKGS] build static libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --enable-http Enable HTTP support - --disable-http Disable HTTP support - --enable-ftp Enable FTP support - --disable-ftp Disable FTP support - --enable-file Enable FILE support - --disable-file Disable FILE support - --enable-ldap Enable LDAP support - --disable-ldap Disable LDAP support - --enable-ldaps Enable LDAPS support - --disable-ldaps Disable LDAPS support - --enable-rtsp Enable RTSP support - --disable-rtsp Disable RTSP support - --enable-proxy Enable proxy support - --disable-proxy Disable proxy support - --enable-dict Enable DICT support - --disable-dict Disable DICT support - --enable-telnet Enable TELNET support - --disable-telnet Disable TELNET support - --enable-tftp Enable TFTP support - --disable-tftp Disable TFTP support - --enable-pop3 Enable POP3 support - --disable-pop3 Disable POP3 support - --enable-imap Enable IMAP support - --disable-imap Disable IMAP support - --enable-smtp Enable SMTP support - --disable-smtp Disable SMTP support - --enable-gopher Enable Gopher support - --disable-gopher Disable Gopher support - --enable-manual Enable built-in manual - --disable-manual Disable built-in manual - --enable-libcurl-option Enable --libcurl C code generation support - --disable-libcurl-option - Disable --libcurl C code generation support - --enable-libgcc use libgcc when linking - --enable-ipv6 Enable ipv6 (with ipv4) support - --disable-ipv6 Disable ipv6 support - --enable-versioned-symbols - Enable versioned symbols in shared library - --disable-versioned-symbols - Disable versioned symbols in shared library - --enable-threaded-resolver - Enable threaded resolver - --disable-threaded-resolver - Disable threaded resolver - --enable-verbose Enable verbose strings - --disable-verbose Disable verbose strings - --enable-sspi Enable SSPI - --disable-sspi Disable SSPI - --enable-crypto-auth Enable cryptographic authentication - --disable-crypto-auth Disable cryptographic authentication - --enable-ntlm-wb[=FILE] Enable NTLM delegation to winbind's ntlm_auth - helper, where FILE is ntlm_auth's absolute filename - (default: /usr/bin/ntlm_auth) - --disable-ntlm-wb Disable NTLM delegation to winbind's ntlm_auth - helper - --enable-tls-srp Enable TLS-SRP authentication - --disable-tls-srp Disable TLS-SRP authentication - --enable-cookies Enable cookies support - --disable-cookies Disable cookies support - --enable-soname-bump Enable enforced SONAME bump - --disable-soname-bump Disable enforced SONAME bump - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sysroot=DIR Search for dependent libraries within DIR - (or the compiler's sysroot if not specified). - --with-ldap-lib=libname Specify name of ldap lib file - --with-lber-lib=libname Specify name of lber lib file - --with-krb4-includes=DIR - Specify location of kerberos4 headers - --with-krb4-libs=DIR Specify location of kerberos4 libs - --with-krb4=DIR where to look for Kerberos4 - --with-spnego=DIR Specify location of SPNEGO library fbopenssl - --with-gssapi-includes=DIR - Specify location of GSSAPI header - --with-gssapi-libs=DIR Specify location of GSSAPI libs - --with-gssapi=DIR Where to look for GSSAPI - --with-winssl enable Windows native SSL/TLS - --without-winssl disable Windows native SSL/TLS - --with-darwinssl enable iOS/Mac OS X native SSL/TLS - --without-darwinssl disable iOS/Mac OS X native SSL/TLS - --with-ssl=PATH Where to look for OpenSSL, PATH points to the SSL - installation (default: /usr/local/ssl); when - possible, set the PKG_CONFIG_PATH environment - variable instead of using this option - --without-ssl disable OpenSSL - --with-zlib=PATH search for zlib in PATH - --without-zlib disable use of zlib - --with-egd-socket=FILE Entropy Gathering Daemon socket pathname - --with-random=FILE read randomness from FILE (default=/dev/urandom) - --with-gnutls=PATH where to look for GnuTLS, PATH points to the - installation root - --without-gnutls disable GnuTLS detection - --with-polarssl=PATH where to look for PolarSSL, PATH points to the - installation root - --without-polarssl disable PolarSSL detection - --with-cyassl=PATH where to look for CyaSSL, PATH points to the - installation root (default: system lib default) - --without-cyassl disable CyaSSL detection - --with-nss=PATH where to look for NSS, PATH points to the - installation root - --without-nss disable NSS detection - --with-axtls=PATH Where to look for axTLS, PATH points to the axTLS - installation prefix (default: /usr/local). Ignored - if another SSL engine is selected. - --without-axtls disable axTLS - --with-ca-bundle=FILE File name to use as CA bundle - --without-ca-bundle Don't use a default CA bundle - --with-ca-path=DIRECTORY - Directory to use as CA path - --without-ca-path Don't use a default CA path - --with-libmetalink=PATH where to look for libmetalink, PATH points to the - installation root - --without-libmetalink disable libmetalink detection - --with-libssh2=PATH Where to look for libssh2, PATH points to the - LIBSSH2 installation; when possible, set the - PKG_CONFIG_PATH environment variable instead of - using this option - --without-libssh2 disable LIBSSH2 - --with-librtmp=PATH Where to look for librtmp, PATH points to the - LIBRTMP installation; when possible, set the - PKG_CONFIG_PATH environment variable instead of - using this option - --without-librtmp disable LIBRTMP - --with-winidn=PATH enable Windows native IDN - --without-winidn disable Windows native IDN - --with-libidn=PATH Enable libidn usage - --without-libidn Disable libidn usage - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -curl configure - -generated by GNU Autoconf 2.64 - -Copyright (C) 2009 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. - -Copyright (c) 1998 - 2012 Daniel Stenberg, -This configure script may be copied, distributed and modified under the -terms of the curl license; see COPYING for more details -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_header_compile - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -# -------------------------------------------- -# Tries to find the compile-time value of EXPR in a program that includes -# INCLUDES, setting VAR accordingly. Returns whether the value could be -# computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in #(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -#include -#include -int main (void) -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - echo >>conftest.val; read $3 &5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define $2 innocuous_$2 -#ifdef __STDC__ -# include -#else -# include -#endif -#undef $2 -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int main (void) -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_func - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( cat <<\_ASBOX -## ---------------------------------------------------------------------- ## -## Report this to a suitable curl mailing list: http://curl.haxx.se/mail/ ## -## ---------------------------------------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_header_mongrel - -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_type -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by curl $as_me -, which was -generated by GNU Autoconf 2.64. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - -# using curl-override.m4 - - - - - -ac_config_headers="$ac_config_headers lib/curl_config.h include/curl/curlbuild.h" - -: -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - - -if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable debug build options" >&5 -$as_echo_n "checking whether to enable debug build options... " >&6; } - OPT_DEBUG_BUILD="default" - # Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; OPT_DEBUG_BUILD=$enableval -fi - - case "$OPT_DEBUG_BUILD" in - no) - want_debug="no" - ;; - default) - want_debug="no" - ;; - *) - want_debug="yes" - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_debug" >&5 -$as_echo "$want_debug" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler optimizer" >&5 -$as_echo_n "checking whether to enable compiler optimizer... " >&6; } - OPT_COMPILER_OPTIMIZE="default" - # Check whether --enable-optimize was given. -if test "${enable_optimize+set}" = set; then : - enableval=$enable_optimize; OPT_COMPILER_OPTIMIZE=$enableval -fi - - case "$OPT_COMPILER_OPTIMIZE" in - no) - want_optimize="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - default) - if test "$want_debug" = "yes"; then - want_optimize="assume_no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) no" >&5 -$as_echo "(assumed) no" >&6; } - else - want_optimize="assume_yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5 -$as_echo "(assumed) yes" >&6; } - fi - ;; - *) - want_optimize="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable strict compiler warnings" >&5 -$as_echo_n "checking whether to enable strict compiler warnings... " >&6; } - OPT_COMPILER_WARNINGS="default" - # Check whether --enable-warnings was given. -if test "${enable_warnings+set}" = set; then : - enableval=$enable_warnings; OPT_COMPILER_WARNINGS=$enableval -fi - - case "$OPT_COMPILER_WARNINGS" in - no) - want_warnings="no" - ;; - default) - want_warnings="$want_debug" - ;; - *) - want_warnings="yes" - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_warnings" >&5 -$as_echo "$want_warnings" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler warnings as errors" >&5 -$as_echo_n "checking whether to enable compiler warnings as errors... " >&6; } - OPT_COMPILER_WERROR="default" - # Check whether --enable-werror was given. -if test "${enable_werror+set}" = set; then : - enableval=$enable_werror; OPT_COMPILER_WERROR=$enableval -fi - - case "$OPT_COMPILER_WERROR" in - no) - want_werror="no" - ;; - default) - want_werror="no" - ;; - *) - want_werror="yes" - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_werror" >&5 -$as_echo "$want_werror" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable curl debug memory tracking" >&5 -$as_echo_n "checking whether to enable curl debug memory tracking... " >&6; } - OPT_CURLDEBUG_BUILD="default" - # Check whether --enable-curldebug was given. -if test "${enable_curldebug+set}" = set; then : - enableval=$enable_curldebug; OPT_CURLDEBUG_BUILD=$enableval -fi - - case "$OPT_CURLDEBUG_BUILD" in - no) - want_curldebug="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - default) - if test "$want_debug" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5 -$as_echo "(assumed) yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - want_curldebug_assumed="yes" - want_curldebug="$want_debug" - ;; - *) - want_curldebug="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable hiding of library internal symbols" >&5 -$as_echo_n "checking whether to enable hiding of library internal symbols... " >&6; } - OPT_SYMBOL_HIDING="default" - # Check whether --enable-symbol-hiding was given. -if test "${enable_symbol_hiding+set}" = set; then : - enableval=$enable_symbol_hiding; OPT_SYMBOL_HIDING=$enableval -fi - - # Check whether --enable-hidden-symbols was given. -if test "${enable_hidden_symbols+set}" = set; then : - enableval=$enable_hidden_symbols; OPT_SYMBOL_HIDING=$enableval -fi - - case "$OPT_SYMBOL_HIDING" in - no) - want_symbol_hiding="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - default) - want_symbol_hiding="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - *) - want_symbol_hiding="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable c-ares for DNS lookups" >&5 -$as_echo_n "checking whether to enable c-ares for DNS lookups... " >&6; } - OPT_ARES="default" - # Check whether --enable-ares was given. -if test "${enable_ares+set}" = set; then : - enableval=$enable_ares; OPT_ARES=$enableval -fi - - case "$OPT_ARES" in - no) - want_ares="no" - ;; - default) - want_ares="no" - ;; - *) - want_ares="yes" - if test -n "$enableval" && test "$enableval" != "yes"; then - want_ares_path="$enableval" - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_ares" >&5 -$as_echo "$want_ares" >&6; } - - - - - -# -# save the configure arguments -# -CONFIGURE_OPTIONS="\"$ac_configure_args\"" - - -CURL_CFLAG_EXTRAS="" -if test X"$want_werror" = Xyes; then - CURL_CFLAG_EXTRAS="-Werror" -fi - - -if test -z "$SED"; then - # Extract the first word of "sed", so it can be a program name with args. -set dummy sed; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $SED in - [\\/]* | ?:[\\/]*) - ac_cv_path_SED="$SED" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_SED" && ac_cv_path_SED="not_found" - ;; -esac -fi -SED=$ac_cv_path_SED -if test -n "$SED"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 -$as_echo "$SED" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test -z "$SED" || test "$SED" = "not_found"; then - as_fn_error "sed not found in PATH. Cannot continue without sed." "$LINENO" 5 - fi -fi - - -if test -z "$GREP"; then - # Extract the first word of "grep", so it can be a program name with args. -set dummy grep; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $GREP in - [\\/]* | ?:[\\/]*) - ac_cv_path_GREP="$GREP" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GREP="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GREP" && ac_cv_path_GREP="not_found" - ;; -esac -fi -GREP=$ac_cv_path_GREP -if test -n "$GREP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 -$as_echo "$GREP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test -z "$GREP" || test "$GREP" = "not_found"; then - as_fn_error "grep not found in PATH. Cannot continue without grep." "$LINENO" 5 - fi -fi - - -if test -z "$EGREP"; then - if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } - EGREP="$GREP -E" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5 -$as_echo "$EGREP" >&6; } - else - # Extract the first word of "egrep", so it can be a program name with args. -set dummy egrep; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $EGREP in - [\\/]* | ?:[\\/]*) - ac_cv_path_EGREP="$EGREP" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_EGREP="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_EGREP" && ac_cv_path_EGREP="not_found" - ;; -esac -fi -EGREP=$ac_cv_path_EGREP -if test -n "$EGREP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5 -$as_echo "$EGREP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$EGREP" || test "$EGREP" = "not_found"; then - as_fn_error "egrep not found in PATH. Cannot continue without egrep." "$LINENO" 5 -fi - - -if test -z "$AR"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_AR+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $AR in - [\\/]* | ?:[\\/]*) - ac_cv_path_AR="$AR" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -AR=$ac_cv_path_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_AR"; then - ac_pt_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_ac_pt_AR+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_AR in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_AR="$ac_pt_AR" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_ac_pt_AR="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_AR=$ac_cv_path_ac_pt_AR -if test -n "$ac_pt_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_AR" >&5 -$as_echo "$ac_pt_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_AR" = x; then - AR="not_found" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_pt_AR - fi -else - AR="$ac_cv_path_AR" -fi - - if test -z "$AR" || test "$AR" = "not_found"; then - as_fn_error "ar not found in PATH. Cannot continue without ar." "$LINENO" 5 - fi -fi - - - - -if test -f ${srcdir}/include/curl/curlbuild.h; then - rm -f ${srcdir}/include/curl/curlbuild.h -fi - -CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h` -am__api_version="1.9" -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - for ac_t in install-sh install.sh shtool; do - if test -f "$ac_dir/$ac_t"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/$ac_t -c" - break 2 - fi - done -done -if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" = xset || MISSING="\${SHELL} \"$am_aux_dir/missing\"" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='curl' - VERSION='-' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -install_sh=${install_sh-"$am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking curl version" >&5 -$as_echo_n "checking curl version... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CURLVERSION" >&5 -$as_echo "$CURLVERSION" >&6; } - - - -VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\(.*\)/\1/p' ${srcdir}/include/curl/curlver.h` - - -PKGADD_PKG="HAXXcurl" -PKGADD_NAME="cURL - a client that groks URLs" -PKGADD_VENDOR="curl.haxx.se" - - - - - curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl} )" - curl_ssh_msg="no (--with-libssh2)" - curl_zlib_msg="no (--with-zlib)" - curl_krb4_msg="no (--with-krb4*)" - curl_gss_msg="no (--with-gssapi)" - curl_spnego_msg="no (--with-spnego)" -curl_tls_srp_msg="no (--enable-tls-srp)" - curl_res_msg="default (--enable-ares / --enable-threaded-resolver)" - curl_ipv6_msg="no (--enable-ipv6)" - curl_idn_msg="no (--with-{libidn,winidn})" - curl_manual_msg="no (--enable-manual)" -curl_libcurl_msg="enabled (--disable-libcurl-option)" -curl_verbose_msg="enabled (--disable-verbose)" - curl_sspi_msg="no (--enable-sspi)" - curl_ldap_msg="no (--enable-ldap / --with-ldap-lib / --with-lber-lib)" - curl_ldaps_msg="no (--enable-ldaps)" - curl_rtsp_msg="no (--enable-rtsp)" - curl_rtmp_msg="no (--with-librtmp)" - curl_mtlnk_msg="no (--with-libmetalink)" - - init_ssl_msg=${curl_ssl_msg} - -ALL_LIBS=$LIBS - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - -cat >>confdefs.h <<_ACEOF -#define OS "${host}" -_ACEOF - - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - - -if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - - - ac_save_CFLAGS="$CFLAGS" - ac_save_CPPFLAGS="$CPPFLAGS" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - rm -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int main (void) -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -if test -z "$ac_file"; then : - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "C compiler cannot create executables -See \`config.log' for more details." "$LINENO" 5; }; } -fi -ac_exeext=$ac_cv_exeext - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out -ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." "$LINENO" 5; } -fi -rm -f conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of object files: cannot compile -See \`config.log' for more details." "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int main (void) -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - - -if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - CFLAGS="$ac_save_CFLAGS" - CPPFLAGS="$ac_save_CPPFLAGS" - - - - -curl_includes_inttypes="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -/* includes end */" - case $host_os in - irix*) - ac_cv_header_stdint_h="no" - ;; - esac - for ac_header in sys/types.h stdint.h inttypes.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_inttypes -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - # - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - # - # The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - - # The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void*" >&5 -$as_echo_n "checking size of void*... " >&6; } -if test "${ac_cv_sizeof_voidp+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void*))" "ac_cv_sizeof_voidp" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_voidp" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (void*) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_voidp=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_voidp" >&5 -$as_echo "$ac_cv_sizeof_voidp" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_VOIDP $ac_cv_sizeof_voidp -_ACEOF - - - # - if test -z "$ac_cv_sizeof_long" || - test "$ac_cv_sizeof_long" -eq "0"; then - as_fn_error "cannot find out size of long." "$LINENO" 5 - fi - if test -z "$ac_cv_sizeof_voidp" || - test "$ac_cv_sizeof_voidp" -eq "0"; then - as_fn_error "cannot find out size of void*." "$LINENO" 5 - fi - # - x_LP64_long="" - x_LP32_long="" - x_LP16_long="" - # - if test "$ac_cv_sizeof_long" -eq "8" && - test "$ac_cv_sizeof_voidp" -ge "8"; then - x_LP64_long="long" - elif test "$ac_cv_sizeof_long" -eq "4" && - test "$ac_cv_sizeof_voidp" -ge "4"; then - x_LP32_long="long" - elif test "$ac_cv_sizeof_long" -eq "2" && - test "$ac_cv_sizeof_voidp" -ge "2"; then - x_LP16_long="long" - fi - # - # - curl_typeof_curl_off_t="unknown" - curl_sizeof_curl_off_t="unknown" - curl_format_curl_off_t="unknown" - curl_format_curl_off_tu="unknown" - # - if test "$curl_typeof_curl_off_t" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit curl_off_t data type" >&5 -$as_echo_n "checking for 64-bit curl_off_t data type... " >&6; } - for t8 in \ - "$x_LP64_long" \ - 'int64_t' \ - '__int64' \ - 'long long' \ - '__longlong' \ - '__longlong_t' ; do - - if test "$curl_typeof_curl_off_t" = "unknown" && test ! -z "$t8"; then - tmp_includes="" - tmp_source="" - tmp_fmt="" - case `echo "$t8" | sed 's/[^a-zA-Z0-9_]/_/g'` in - int64_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId64;" - tmp_fmt="PRId64" - ;; - int32_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId32;" - tmp_fmt="PRId32" - ;; - int16_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId16;" - tmp_fmt="PRId16" - ;; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $tmp_includes - typedef $t8 curl_off_t; - typedef char dummy_arr[sizeof(curl_off_t) == 8 ? 1 : -1]; - -int main (void) -{ - - $tmp_source - curl_off_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - if test -z "$tmp_fmt"; then - curl_typeof_curl_off_t="$t8" - curl_sizeof_curl_off_t="8" - else - - as_ac_HaveDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_ac_Def=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_inttypes -#ifdef $tmp_fmt -CURL_DEF_TOKEN $tmp_fmt -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "$tmp_fmt"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - eval "$as_ac_HaveDef=no" - - else - eval "$as_ac_HaveDef=yes" - eval "$as_ac_Def=\$tmp_exp" - - fi - - as_tmp_HaveFmtDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_tmp_FmtDef=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test `eval 'as_val=${'$as_tmp_HaveFmtDef'};$as_echo "$as_val"'` = "yes"; then - curl_format_curl_off_t=`eval 'as_val=${'$as_tmp_FmtDef'};$as_echo "$as_val"'` - curl_typeof_curl_off_t="$t8" - curl_sizeof_curl_off_t="8" - fi - fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_typeof_curl_off_t" >&5 -$as_echo "$curl_typeof_curl_off_t" >&6; } - fi - if test "$curl_typeof_curl_off_t" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 32-bit curl_off_t data type" >&5 -$as_echo_n "checking for 32-bit curl_off_t data type... " >&6; } - for t4 in \ - "$x_LP32_long" \ - 'int32_t' \ - '__int32' \ - 'int' ; do - - if test "$curl_typeof_curl_off_t" = "unknown" && test ! -z "$t4"; then - tmp_includes="" - tmp_source="" - tmp_fmt="" - case `echo "$t4" | sed 's/[^a-zA-Z0-9_]/_/g'` in - int64_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId64;" - tmp_fmt="PRId64" - ;; - int32_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId32;" - tmp_fmt="PRId32" - ;; - int16_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId16;" - tmp_fmt="PRId16" - ;; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $tmp_includes - typedef $t4 curl_off_t; - typedef char dummy_arr[sizeof(curl_off_t) == 4 ? 1 : -1]; - -int main (void) -{ - - $tmp_source - curl_off_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - if test -z "$tmp_fmt"; then - curl_typeof_curl_off_t="$t4" - curl_sizeof_curl_off_t="4" - else - - as_ac_HaveDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_ac_Def=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_inttypes -#ifdef $tmp_fmt -CURL_DEF_TOKEN $tmp_fmt -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "$tmp_fmt"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - eval "$as_ac_HaveDef=no" - - else - eval "$as_ac_HaveDef=yes" - eval "$as_ac_Def=\$tmp_exp" - - fi - - as_tmp_HaveFmtDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_tmp_FmtDef=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test `eval 'as_val=${'$as_tmp_HaveFmtDef'};$as_echo "$as_val"'` = "yes"; then - curl_format_curl_off_t=`eval 'as_val=${'$as_tmp_FmtDef'};$as_echo "$as_val"'` - curl_typeof_curl_off_t="$t4" - curl_sizeof_curl_off_t="4" - fi - fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_typeof_curl_off_t" >&5 -$as_echo "$curl_typeof_curl_off_t" >&6; } - fi - if test "$curl_typeof_curl_off_t" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 16-bit curl_off_t data type" >&5 -$as_echo_n "checking for 16-bit curl_off_t data type... " >&6; } - for t2 in \ - "$x_LP16_long" \ - 'int16_t' \ - '__int16' \ - 'int' ; do - - if test "$curl_typeof_curl_off_t" = "unknown" && test ! -z "$t2"; then - tmp_includes="" - tmp_source="" - tmp_fmt="" - case `echo "$t2" | sed 's/[^a-zA-Z0-9_]/_/g'` in - int64_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId64;" - tmp_fmt="PRId64" - ;; - int32_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId32;" - tmp_fmt="PRId32" - ;; - int16_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId16;" - tmp_fmt="PRId16" - ;; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $tmp_includes - typedef $t2 curl_off_t; - typedef char dummy_arr[sizeof(curl_off_t) == 2 ? 1 : -1]; - -int main (void) -{ - - $tmp_source - curl_off_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - if test -z "$tmp_fmt"; then - curl_typeof_curl_off_t="$t2" - curl_sizeof_curl_off_t="2" - else - - as_ac_HaveDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_ac_Def=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_inttypes -#ifdef $tmp_fmt -CURL_DEF_TOKEN $tmp_fmt -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "$tmp_fmt"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - eval "$as_ac_HaveDef=no" - - else - eval "$as_ac_HaveDef=yes" - eval "$as_ac_Def=\$tmp_exp" - - fi - - as_tmp_HaveFmtDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_tmp_FmtDef=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test `eval 'as_val=${'$as_tmp_HaveFmtDef'};$as_echo "$as_val"'` = "yes"; then - curl_format_curl_off_t=`eval 'as_val=${'$as_tmp_FmtDef'};$as_echo "$as_val"'` - curl_typeof_curl_off_t="$t2" - curl_sizeof_curl_off_t="2" - fi - fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_typeof_curl_off_t" >&5 -$as_echo "$curl_typeof_curl_off_t" >&6; } - fi - if test "$curl_typeof_curl_off_t" = "unknown"; then - as_fn_error "cannot find data type for curl_off_t." "$LINENO" 5 - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of curl_off_t" >&5 -$as_echo_n "checking size of curl_off_t... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_sizeof_curl_off_t" >&5 -$as_echo "$curl_sizeof_curl_off_t" >&6; } - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking formatting string directive for curl_off_t" >&5 -$as_echo_n "checking formatting string directive for curl_off_t... " >&6; } - if test "$curl_format_curl_off_t" != "unknown"; then - x_pull_headers="yes" - curl_format_curl_off_t=`echo "$curl_format_curl_off_t" | "$SED" 's/["]//g'` - curl_format_curl_off_tu=`echo "$curl_format_curl_off_t" | "$SED" 's/i$/u/'` - curl_format_curl_off_tu=`echo "$curl_format_curl_off_tu" | "$SED" 's/d$/u/'` - curl_format_curl_off_tu=`echo "$curl_format_curl_off_tu" | "$SED" 's/D$/U/'` - else - x_pull_headers="no" - case `echo "$curl_typeof_curl_off_t" | sed 's/[^a-zA-Z0-9_]/_/g'` in - long_long | __longlong | __longlong_t) - curl_format_curl_off_t="lld" - curl_format_curl_off_tu="llu" - ;; - long) - curl_format_curl_off_t="ld" - curl_format_curl_off_tu="lu" - ;; - int) - curl_format_curl_off_t="d" - curl_format_curl_off_tu="u" - ;; - __int64) - curl_format_curl_off_t="I64d" - curl_format_curl_off_tu="I64u" - ;; - __int32) - curl_format_curl_off_t="I32d" - curl_format_curl_off_tu="I32u" - ;; - __int16) - curl_format_curl_off_t="I16d" - curl_format_curl_off_tu="I16u" - ;; - *) - as_fn_error "cannot find print format string for curl_off_t." "$LINENO" 5 - ;; - esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$curl_format_curl_off_t\"" >&5 -$as_echo "\"$curl_format_curl_off_t\"" >&6; } - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking formatting string directive for unsigned curl_off_t" >&5 -$as_echo_n "checking formatting string directive for unsigned curl_off_t... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$curl_format_curl_off_tu\"" >&5 -$as_echo "\"$curl_format_curl_off_tu\"" >&6; } - # - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking constant suffix string for curl_off_t" >&5 -$as_echo_n "checking constant suffix string for curl_off_t... " >&6; } - # - curl_suffix_curl_off_t="unknown" - curl_suffix_curl_off_tu="unknown" - # - case `echo "$curl_typeof_curl_off_t" | sed 's/[^a-zA-Z0-9_]/_/g'` in - long_long | __longlong | __longlong_t) - tst_suffixes="LL::" - ;; - long) - tst_suffixes="L::" - ;; - int) - tst_suffixes="::" - ;; - __int64 | int64_t) - tst_suffixes="LL:i64::" - ;; - __int32 | int32_t) - tst_suffixes="L:i32::" - ;; - __int16 | int16_t) - tst_suffixes="L:i16::" - ;; - *) - as_fn_error "unexpected data type $curl_typeof_curl_off_t" "$LINENO" 5 - ;; - esac - # - old_IFS=$IFS; IFS=':' - for tmp_ssuf in $tst_suffixes ; do - IFS=$old_IFS - if test "x$curl_suffix_curl_off_t" = "xunknown"; then - case $tmp_ssuf in - i64 | i32 | i16) - tmp_usuf="u$tmp_ssuf" - ;; - LL | L) - tmp_usuf="U$tmp_ssuf" - ;; - *) - tmp_usuf="" - ;; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_inttypes - typedef $curl_typeof_curl_off_t new_t; - -int main (void) -{ - - new_t s1; - new_t s2; - s1 = -10$tmp_ssuf ; - s2 = 20$tmp_ssuf ; - if(s1 > s2) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_suffix_curl_off_t="$tmp_ssuf" - curl_suffix_curl_off_tu="$tmp_usuf" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - IFS=$old_IFS - # - if test "x$curl_suffix_curl_off_t" = "xunknown"; then - as_fn_error "cannot find constant suffix string for curl_off_t." "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_suffix_curl_off_t" >&5 -$as_echo "$curl_suffix_curl_off_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking constant suffix string for unsigned curl_off_t" >&5 -$as_echo_n "checking constant suffix string for unsigned curl_off_t... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_suffix_curl_off_tu" >&5 -$as_echo "$curl_suffix_curl_off_tu" >&6; } - fi - # - - # - if test "$x_pull_headers" = "yes"; then - if test "x$ac_cv_header_sys_types_h" = "xyes"; then - -cat >>confdefs.h <<_EOF -#define CURL_PULL_SYS_TYPES_H 1 -_EOF - - fi - if test "x$ac_cv_header_stdint_h" = "xyes"; then - -cat >>confdefs.h <<_EOF -#define CURL_PULL_STDINT_H 1 -_EOF - - fi - if test "x$ac_cv_header_inttypes_h" = "xyes"; then - -cat >>confdefs.h <<_EOF -#define CURL_PULL_INTTYPES_H 1 -_EOF - - fi - fi - # - -cat >>confdefs.h <<_EOF -#define CURL_TYPEOF_CURL_OFF_T $curl_typeof_curl_off_t -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_FORMAT_CURL_OFF_T "$curl_format_curl_off_t" -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_FORMAT_CURL_OFF_TU "$curl_format_curl_off_tu" -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_FORMAT_OFF_T "%$curl_format_curl_off_t" -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_SIZEOF_CURL_OFF_T $curl_sizeof_curl_off_t -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_SUFFIX_CURL_OFF_T $curl_suffix_curl_off_t -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_SUFFIX_CURL_OFF_TU $curl_suffix_curl_off_tu -_EOF - - # - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OS is AIX (to define _ALL_SOURCE)" >&5 -$as_echo_n "checking if OS is AIX (to define _ALL_SOURCE)... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef _AIX - yes_this_is_aix -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes_this_is_aix" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - $as_echo "#define _ALL_SOURCE 1" >>confdefs.h - - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f conftest* - - - - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is already defined" >&5 -$as_echo_n "checking if _THREAD_SAFE is already defined... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#ifdef _THREAD_SAFE - int dummy=1; -#else - force compilation error -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tmp_thread_safe_initially_defined="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tmp_thread_safe_initially_defined="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # - if test "$tmp_thread_safe_initially_defined" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is actually needed" >&5 -$as_echo_n "checking if _THREAD_SAFE is actually needed... " >&6; } - - case $host_os in - aix[123].* | aix4.[012].*) - tmp_need_thread_safe="no" - ;; - aix*) - tmp_need_thread_safe="yes" - ;; - *) - tmp_need_thread_safe="no" - ;; - esac - - if test "$tmp_need_thread_safe" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is onwards defined" >&5 -$as_echo_n "checking if _THREAD_SAFE is onwards defined... " >&6; } - if test "$tmp_thread_safe_initially_defined" = "yes" || - test "$tmp_need_thread_safe" = "yes"; then - - -$as_echo "#define NEED_THREAD_SAFE 1" >>confdefs.h - -cat >>confdefs.h <<_EOF -#ifndef _THREAD_SAFE -# define _THREAD_SAFE -#endif -_EOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - # - - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is already defined" >&5 -$as_echo_n "checking if _REENTRANT is already defined... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#ifdef _REENTRANT - int dummy=1; -#else - force compilation error -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tmp_reentrant_initially_defined="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tmp_reentrant_initially_defined="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # - if test "$tmp_reentrant_initially_defined" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is actually needed" >&5 -$as_echo_n "checking if _REENTRANT is actually needed... " >&6; } - - case $host_os in - solaris*) - tmp_need_reentrant="yes" - ;; - *) - tmp_need_reentrant="no" - ;; - esac - - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - - if(0 != errno) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_errno="yes" - -else - - tmp_errno="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tmp_errno" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - -#ifdef errno - int dummy=1; -#else - force compilation error -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_errno="errno_macro_defined" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define _REENTRANT -#include - -int main (void) -{ - -#ifdef errno - int dummy=1; -#else - force compilation error -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_errno="errno_macro_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gmtime_r innocuous_gmtime_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gmtime_r -#ifdef __cplusplus -extern "C" -#endif -char gmtime_r (); -#if defined __stub_gmtime_r || defined __stub___gmtime_r -choke me -#endif - -int main (void) -{ -return gmtime_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_gmtime_r="yes" - -else - - tmp_gmtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_gmtime_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gmtime_r" >/dev/null 2>&1; then : - - tmp_gmtime_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gmtime_r" >/dev/null 2>&1; then : - - tmp_gmtime_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define localtime_r innocuous_localtime_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef localtime_r -#ifdef __cplusplus -extern "C" -#endif -char localtime_r (); -#if defined __stub_localtime_r || defined __stub___localtime_r -choke me -#endif - -int main (void) -{ -return localtime_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_localtime_r="yes" - -else - - tmp_localtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_localtime_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "localtime_r" >/dev/null 2>&1; then : - - tmp_localtime_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "localtime_r" >/dev/null 2>&1; then : - - tmp_localtime_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strerror_r innocuous_strerror_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strerror_r -#ifdef __cplusplus -extern "C" -#endif -char strerror_r (); -#if defined __stub_strerror_r || defined __stub___strerror_r -choke me -#endif - -int main (void) -{ -return strerror_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_strerror_r="yes" - -else - - tmp_strerror_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_strerror_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strerror_r" >/dev/null 2>&1; then : - - tmp_strerror_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strerror_r" >/dev/null 2>&1; then : - - tmp_strerror_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strtok_r innocuous_strtok_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strtok_r -#ifdef __cplusplus -extern "C" -#endif -char strtok_r (); -#if defined __stub_strtok_r || defined __stub___strtok_r -choke me -#endif - -int main (void) -{ -return strtok_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_strtok_r="yes" - -else - - tmp_strtok_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_strtok_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strtok_r" >/dev/null 2>&1; then : - - tmp_strtok_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strtok_r" >/dev/null 2>&1; then : - - tmp_strtok_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define inet_ntoa_r innocuous_inet_ntoa_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef inet_ntoa_r -#ifdef __cplusplus -extern "C" -#endif -char inet_ntoa_r (); -#if defined __stub_inet_ntoa_r || defined __stub___inet_ntoa_r -choke me -#endif - -int main (void) -{ -return inet_ntoa_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_inet_ntoa_r="yes" - -else - - tmp_inet_ntoa_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_inet_ntoa_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "inet_ntoa_r" >/dev/null 2>&1; then : - - tmp_inet_ntoa_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "inet_ntoa_r" >/dev/null 2>&1; then : - - tmp_inet_ntoa_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gethostbyaddr_r innocuous_gethostbyaddr_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gethostbyaddr_r -#ifdef __cplusplus -extern "C" -#endif -char gethostbyaddr_r (); -#if defined __stub_gethostbyaddr_r || defined __stub___gethostbyaddr_r -choke me -#endif - -int main (void) -{ -return gethostbyaddr_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_gethostbyaddr_r="yes" - -else - - tmp_gethostbyaddr_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_gethostbyaddr_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyaddr_r" >/dev/null 2>&1; then : - - tmp_gethostbyaddr_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyaddr_r" >/dev/null 2>&1; then : - - tmp_gethostbyaddr_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gethostbyname_r innocuous_gethostbyname_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gethostbyname_r -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname_r (); -#if defined __stub_gethostbyname_r || defined __stub___gethostbyname_r -choke me -#endif - -int main (void) -{ -return gethostbyname_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_gethostbyname_r="yes" - -else - - tmp_gethostbyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_gethostbyname_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyname_r" >/dev/null 2>&1; then : - - tmp_gethostbyname_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyname_r" >/dev/null 2>&1; then : - - tmp_gethostbyname_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define getprotobyname_r innocuous_getprotobyname_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef getprotobyname_r -#ifdef __cplusplus -extern "C" -#endif -char getprotobyname_r (); -#if defined __stub_getprotobyname_r || defined __stub___getprotobyname_r -choke me -#endif - -int main (void) -{ -return getprotobyname_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_getprotobyname_r="yes" - -else - - tmp_getprotobyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_getprotobyname_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getprotobyname_r" >/dev/null 2>&1; then : - - tmp_getprotobyname_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getprotobyname_r" >/dev/null 2>&1; then : - - tmp_getprotobyname_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define getservbyport_r innocuous_getservbyport_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef getservbyport_r -#ifdef __cplusplus -extern "C" -#endif -char getservbyport_r (); -#if defined __stub_getservbyport_r || defined __stub___getservbyport_r -choke me -#endif - -int main (void) -{ -return getservbyport_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_getservbyport_r="yes" - -else - - tmp_getservbyport_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_getservbyport_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getservbyport_r" >/dev/null 2>&1; then : - - tmp_getservbyport_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getservbyport_r" >/dev/null 2>&1; then : - - tmp_getservbyport_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - - fi - if test "$tmp_need_reentrant" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is onwards defined" >&5 -$as_echo_n "checking if _REENTRANT is onwards defined... " >&6; } - if test "$tmp_reentrant_initially_defined" = "yes" || - test "$tmp_need_reentrant" = "yes"; then - - -$as_echo "#define NEED_REENTRANT 1" >>confdefs.h - -cat >>confdefs.h <<_EOF -#ifndef _REENTRANT -# define _REENTRANT -#endif -_EOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - # - - -# Check whether --enable-largefile was given. -if test "${enable_largefile+set}" = set; then : - enableval=$enable_largefile; -fi - -if test "$enable_largefile" != no; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if test "${ac_cv_sys_largefile_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main (void) -{ - - ; - return 0; -} -_ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - break -fi -rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -$as_echo "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if test "${ac_cv_sys_file_offset_bits+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF -;; -esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if test "${ac_cv_sys_large_files+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF -;; -esac -rm -rf conftest* - fi -fi - - -enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AS="${ac_tool_prefix}as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AS=$ac_cv_prog_AS -if test -n "$AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 -$as_echo "$AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AS"; then - ac_ct_AS=$AS - # Extract the first word of "as", so it can be a program name with args. -set dummy as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AS"; then - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AS="as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AS=$ac_cv_prog_ac_ct_AS -if test -n "$ac_ct_AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 -$as_echo "$ac_ct_AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AS" = x; then - AS="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AS=$ac_ct_AS - fi -else - AS="$ac_cv_prog_AS" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - - ;; -esac - -test -z "$AS" && AS=as - - - - - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)" >&5 -$as_echo_n "checking if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)... " >&6; } -case $host in - x86_64*linux*|amd64*freebsd*|ia64*freebsd*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - with_pic=yes - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is icc (to build with PIC)" >&5 -$as_echo_n "checking if compiler is icc (to build with PIC)... " >&6; } -case $CC in - icc | */icc) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - with_pic=yes - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; -esac - -case `pwd` in - *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -esac - - - -macro_version='2.4.2' -macro_revision='1.3337' - - - - - - - - - - - - - -ltmain="$ac_aux_dir/ltmain.sh" - -# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 -$as_echo_n "checking how to print strings... " >&6; } -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "" -} - -case "$ECHO" in - printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 -$as_echo "printf" >&6; } ;; - print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 -$as_echo "print -r" >&6; } ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 -$as_echo "cat" >&6; } ;; -esac - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if test "${ac_cv_path_FGREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - -test -z "$GREP" && GREP=grep - - - - - - - - - - - - - - - - - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if test "${lt_cv_path_LD+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if test "${lt_cv_path_NM+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - if test -n "$ac_tool_prefix"; then - for ac_prog in dumpbin "link -dump" - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DUMPBIN+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DUMPBIN"; then - ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DUMPBIN=$ac_cv_prog_DUMPBIN -if test -n "$DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -$as_echo "$DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$DUMPBIN" && break - done -fi -if test -z "$DUMPBIN"; then - ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in dumpbin "link -dump" -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DUMPBIN"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -if test -n "$ac_ct_DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -$as_echo "$ac_ct_DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_DUMPBIN" && break -done - - if test "x$ac_ct_DUMPBIN" = x; then - DUMPBIN=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DUMPBIN=$ac_ct_DUMPBIN - fi -fi - - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -$as_echo_n "checking the name lister ($NM) interface... " >&6; } -if test "${lt_cv_nm_interface+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -# find the maximum length of command line arguments -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if test "${lt_cv_sys_max_cmd_len+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len - - - - - - -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi - - - - - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -if test "${lt_cv_to_host_file_cmd+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac - -fi - -to_host_file_cmd=$lt_cv_to_host_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -$as_echo "$lt_cv_to_host_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -if test "${lt_cv_to_tool_file_cmd+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - #assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac - -fi - -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -$as_echo "$lt_cv_to_tool_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if test "${lt_cv_ld_reload_flag+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test "$GCC" != yes; then - reload_cmds=false - fi - ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if test "${lt_cv_deplibs_check_method+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - - - - - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - - - - - - - -if test -n "$ac_tool_prefix"; then - for ac_prog in ar - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AR" && break - done -fi -if test -z "$AR"; then - ac_ct_AR=$AR - for ac_prog in ar -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_AR" && break -done - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -fi - -: ${AR=ar} -: ${AR_FLAGS=cru} - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -$as_echo_n "checking for archiver @FILE support... " >&6; } -if test "${lt_cv_ar_at_file+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ar_at_file=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -$as_echo "$lt_cv_ar_at_file" >&6; } - -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -test -z "$STRIP" && STRIP=: - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -test -z "$RANLIB" && RANLIB=: - - - - - - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[ABCDGISTW]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK '"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv -f conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -$as_echo_n "checking for sysroot... " >&6; } - -# Check whether --with-sysroot was given. -if test "${with_sysroot+set}" = set; then : - withval=$with_sysroot; -else - with_sysroot=no -fi - - -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 -$as_echo "${with_sysroot}" >&6; } - as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 - ;; -esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -$as_echo "${lt_sysroot:-no}" >&6; } - - - - - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 -$as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if test "${lt_cv_cc_needs_belf+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_cc_needs_belf=yes -else - lt_cv_cc_needs_belf=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks="$enable_libtool_lock" - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -set dummy ${ac_tool_prefix}mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MANIFEST_TOOL"; then - ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -if test -n "$MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -$as_echo "$MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_MANIFEST_TOOL"; then - ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL - # Extract the first word of "mt", so it can be a program name with args. -set dummy mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_MANIFEST_TOOL"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -if test -n "$ac_ct_MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_MANIFEST_TOOL" = x; then - MANIFEST_TOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL - fi -else - MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -fi - -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -if test "${lt_cv_path_mainfest_tool+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&5 - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -$as_echo "$lt_cv_path_mainfest_tool" >&6; } -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi - - - - - - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -$as_echo "$DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -$as_echo "$ac_ct_DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DSYMUTIL=$ac_ct_DSYMUTIL - fi -else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NMEDIT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -$as_echo "$NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_NMEDIT"; then - ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_NMEDIT="nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -if test -n "$ac_ct_NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -$as_echo "$ac_ct_NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_NMEDIT" = x; then - NMEDIT=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - NMEDIT=$ac_ct_NMEDIT - fi -else - NMEDIT="$ac_cv_prog_NMEDIT" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. -set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LIPO"; then - ac_cv_prog_LIPO="$LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LIPO=$ac_cv_prog_LIPO -if test -n "$LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -$as_echo "$LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_LIPO"; then - ac_ct_LIPO=$LIPO - # Extract the first word of "lipo", so it can be a program name with args. -set dummy lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_LIPO"; then - ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_LIPO="lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO -if test -n "$ac_ct_LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -$as_echo "$ac_ct_LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_LIPO" = x; then - LIPO=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LIPO=$ac_ct_LIPO - fi -else - LIPO="$ac_cv_prog_LIPO" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OTOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL"; then - ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL=$ac_cv_prog_OTOOL -if test -n "$OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -$as_echo "$OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL"; then - ac_ct_OTOOL=$OTOOL - # Extract the first word of "otool", so it can be a program name with args. -set dummy otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL"; then - ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OTOOL="otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL -if test -n "$ac_ct_OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -$as_echo "$ac_ct_OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL" = x; then - OTOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL=$ac_ct_OTOOL - fi -else - OTOOL="$ac_cv_prog_OTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OTOOL64+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL64"; then - ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL64=$ac_cv_prog_OTOOL64 -if test -n "$OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -$as_echo "$OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL64"; then - ac_ct_OTOOL64=$OTOOL64 - # Extract the first word of "otool64", so it can be a program name with args. -set dummy otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL64"; then - ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OTOOL64="otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 -if test -n "$ac_ct_OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -$as_echo "$ac_ct_OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL64" = x; then - OTOOL64=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL64=$ac_ct_OTOOL64 - fi -else - OTOOL64="$ac_cv_prog_OTOOL64" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 -$as_echo_n "checking for -single_module linker flag... " >&6; } -if test "${lt_cv_apple_cc_single_mod+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&5 - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&5 - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -$as_echo "$lt_cv_apple_cc_single_mod" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 -$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 -$as_echo_n "checking for -force_load linker flag... " >&6; } -if test "${lt_cv_ld_force_load+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 - echo "$RANLIB libconftest.a" >&5 - $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&5 - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&5 - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -$as_echo "$lt_cv_ld_force_load" >&6; } - case $host_os in - rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -for ac_header in dlfcn.h -do : - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - -fi - -done - - - - - -# Set options - - - - enable_dlopen=no - - - - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi - - - - - - - - - - # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=yes -fi - - - - - - - - - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : - withval=$with_pic; lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for lt_pkg in $withval; do - IFS="$lt_save_ifs" - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - pic_mode=default -fi - - -test -z "$pic_mode" && pic_mode=default - - - - - - - - # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi - - - - - - - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -test -z "$LN_S" && LN_S="ln -s" - - - - - - - - - - - - - - -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if test "${lt_cv_objdir+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` - - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -# Use C for the default configuration in the libtool script - -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; - *) - lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - - - - - - - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - lt_prog_compiler_static= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - lt_prog_compiler_wl='-Xlinker ' - if test -n "$lt_prog_compiler_pic"; then - lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-qpic' - lt_prog_compiler_static='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - *Sun\ F* | *Sun*Fortran*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Intel*\ [CF]*Compiler*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - *Portland\ Group*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - esac - ;; - esac - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -if test "${lt_cv_prog_compiler_pic+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -$as_echo "$lt_cv_prog_compiler_pic" >&6; } -lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } - -if test x"$lt_cv_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi - - - - - - - - - - - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_cv_prog_compiler_static_works+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works=yes - fi - else - lt_cv_prog_compiler_static_works=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -$as_echo "$lt_cv_prog_compiler_static_works" >&6; } - -if test x"$lt_cv_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - always_export_symbols=no - archive_cmds= - archive_expsym_cmds= - compiler_needs_object=no - enable_shared_with_static_runtimes=no - export_dynamic_flag_spec= - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - hardcode_automatic=no - hardcode_direct=no - hardcode_direct_absolute=no - hardcode_libdir_flag_spec= - hardcode_libdir_separator= - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - inherit_rpath=no - link_all_deplibs=unknown - module_cmds= - module_expsym_cmds= - old_archive_from_new_cmds= - old_archive_from_expsyms_cmds= - thread_safe_flag_spec= - whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - linux* | k*bsd*-gnu | gnu*) - link_all_deplibs=no - ;; - esac - - ld_shlibs=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; - *\ \(GNU\ Binutils\)\ [3-9]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='${wl}--export-all-symbols' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - link_all_deplibs=yes - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - whole_archive_flag_spec= - tmp_sharedflag='--shared' ;; - xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - ld_shlibs=no - fi - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_direct_absolute=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - file_list_spec='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - link_all_deplibs=no - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - export_dynamic_flag_spec='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - if test "${lt_cv_aix_libpath_+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - if test "${lt_cv_aix_libpath_+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - fi - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - always_export_symbols=yes - file_list_spec='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, )='true' - enable_shared_with_static_runtimes=yes - exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - old_postinstall_cmds='chmod 644 $oldlib' - postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - enable_shared_with_static_runtimes=yes - ;; - esac - ;; - - darwin* | rhapsody*) - - - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - - else - whole_archive_flag_spec='' - fi - link_all_deplibs=yes - allow_undefined_flag="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - - else - ld_shlibs=no - fi - - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv -f $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv -f $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 -$as_echo_n "checking if $CC understands -b... " >&6; } -if test "${lt_cv_prog_compiler__b+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler__b=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -b" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler__b=yes - fi - else - lt_cv_prog_compiler__b=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -$as_echo "$lt_cv_prog_compiler__b" >&6; } - -if test x"$lt_cv_prog_compiler__b" = xyes; then - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -fi - - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -if test "${lt_cv_irix_exported_symbol+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo (void) { return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_irix_exported_symbol=yes -else - lt_cv_irix_exported_symbol=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -$as_echo "$lt_cv_irix_exported_symbol" >&6; } - if test "$lt_cv_irix_exported_symbol" = yes; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - inherit_rpath=yes - link_all_deplibs=yes - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - archive_cmds_need_lc='no' - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-R,$libdir' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' - ;; - esac - fi - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no - -with_gnu_ld=$with_gnu_ld - - - - - - - - - - - - - - - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } -if test "${lt_cv_archive_cmds_need_lc+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 - (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - then - lt_cv_archive_cmds_need_lc=no - else - lt_cv_archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 -$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } - archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc - ;; - esac - fi - ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } - -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([A-Za-z]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[4-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[23].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[3-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - lt_cv_shlibpath_overrides_runpath=yes -fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - -fi - - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || - test -n "$runpath_var" || - test "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } - -if test "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int main (void) -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = x""yes; then : - lt_cv_dlopen="shl_load" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int main (void) -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = x""yes; then : - lt_cv_dlopen="dlopen" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int main (void) -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int main (void) -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int main (void) -{ -return dld_link (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - - - - - - - - - - - - - - - - -striplib= -old_striplib= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -fi - - - - - - - - - - - - - # Report which library types will actually be built - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - - - - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - - - - - - - - - - - - - - - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need -mimpure-text" >&5 -$as_echo_n "checking if we need -mimpure-text... " >&6; } -mimpure=no -case $host in - *-*-solaris2*) - if test "$GCC" = "yes"; then - mimpure="yes" - fi - ;; - *) - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mimpure" >&5 -$as_echo "$mimpure" >&6; } - - -if test x$mimpure = xyes; then - MIMPURE_TRUE= - MIMPURE_FALSE='#' -else - MIMPURE_TRUE='#' - MIMPURE_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need BUILDING_LIBCURL" >&5 -$as_echo_n "checking if we need BUILDING_LIBCURL... " >&6; } -use_cppflag_building_libcurl="no" -use_cppflag_curl_staticlib="no" -CPPFLAG_CURL_STATICLIB="" -case $host in - *-*-mingw*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - use_cppflag_building_libcurl="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need CURL_STATICLIB" >&5 -$as_echo_n "checking if we need CURL_STATICLIB... " >&6; } - if test "X$enable_shared" = "Xno" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - use_cppflag_curl_staticlib="yes" - CPPFLAG_CURL_STATICLIB="-DCURL_STATICLIB" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; -esac - - -if test x$use_cppflag_building_libcurl = xyes; then - USE_CPPFLAG_BUILDING_LIBCURL_TRUE= - USE_CPPFLAG_BUILDING_LIBCURL_FALSE='#' -else - USE_CPPFLAG_BUILDING_LIBCURL_TRUE='#' - USE_CPPFLAG_BUILDING_LIBCURL_FALSE= -fi - - - -if test x$use_cppflag_curl_staticlib = xyes; then - USE_CPPFLAG_CURL_STATICLIB_TRUE= - USE_CPPFLAG_CURL_STATICLIB_FALSE='#' -else - USE_CPPFLAG_CURL_STATICLIB_TRUE='#' - USE_CPPFLAG_CURL_STATICLIB_FALSE= -fi - - - -# Determine whether all dependent libraries must be specified when linking -if test "X$enable_shared" = "Xyes" -a "X$link_all_deplibs" = "Xno" -then - REQUIRE_LIB_DEPS=no -else - REQUIRE_LIB_DEPS=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if test "${ac_cv_c_inline+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - - - - - # - compiler_id="unknown" - compiler_num="0" - # - flags_dbg_all="unknown" - flags_dbg_yes="unknown" - flags_dbg_off="unknown" - flags_opt_all="unknown" - flags_opt_yes="unknown" - flags_opt_off="unknown" - # - flags_prefer_cppflags="no" - # - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is DEC/Compaq/HP C" >&5 -$as_echo_n "checking if compiler is DEC/Compaq/HP C... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __DECC -CURL_DEF_TOKEN __DECC -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__DECC"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___DECC=no - - else - curl_cv_have_def___DECC=yes - curl_cv_def___DECC=$tmp_exp - - fi - - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __DECC_VER -CURL_DEF_TOKEN __DECC_VER -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__DECC_VER"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___DECC_VER=no - - else - curl_cv_have_def___DECC_VER=yes - curl_cv_def___DECC_VER=$tmp_exp - - fi - - if test "$curl_cv_have_def___DECC" = "yes" && - test "$curl_cv_have_def___DECC_VER" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="DEC_C" - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_yes="-g2" - flags_dbg_off="" - flags_opt_all="-O -O0 -O1 -O2 -O3 -O4" - flags_opt_yes="-O1" - flags_opt_off="-O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is HP-UX C" >&5 -$as_echo_n "checking if compiler is HP-UX C... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __HP_cc -CURL_DEF_TOKEN __HP_cc -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__HP_cc"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___HP_cc=no - - else - curl_cv_have_def___HP_cc=yes - curl_cv_def___HP_cc=$tmp_exp - - fi - - if test "$curl_cv_have_def___HP_cc" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="HP_UX_C" - flags_dbg_all="-g -s" - flags_dbg_yes="-g" - flags_dbg_off="-s" - flags_opt_all="-O +O0 +O1 +O2 +O3 +O4" - flags_opt_yes="+O2" - flags_opt_off="+O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is IBM C" >&5 -$as_echo_n "checking if compiler is IBM C... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __IBMC__ -CURL_DEF_TOKEN __IBMC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__IBMC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___IBMC__=no - - else - curl_cv_have_def___IBMC__=yes - curl_cv_def___IBMC__=$tmp_exp - - fi - - if test "$curl_cv_have_def___IBMC__" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="IBM_C" - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="-O -O0 -O1 -O2 -O3 -O4 -O5" - flags_opt_all="$flags_opt_all -qnooptimize" - flags_opt_all="$flags_opt_all -qoptimize=0" - flags_opt_all="$flags_opt_all -qoptimize=1" - flags_opt_all="$flags_opt_all -qoptimize=2" - flags_opt_all="$flags_opt_all -qoptimize=3" - flags_opt_all="$flags_opt_all -qoptimize=4" - flags_opt_all="$flags_opt_all -qoptimize=5" - flags_opt_yes="-O2" - flags_opt_off="-qnooptimize" - flags_prefer_cppflags="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is Intel C" >&5 -$as_echo_n "checking if compiler is Intel C... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __INTEL_COMPILER -CURL_DEF_TOKEN __INTEL_COMPILER -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__INTEL_COMPILER"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___INTEL_COMPILER=no - - else - curl_cv_have_def___INTEL_COMPILER=yes - curl_cv_def___INTEL_COMPILER=$tmp_exp - - fi - - if test "$curl_cv_have_def___INTEL_COMPILER" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_num="$curl_cv_def___INTEL_COMPILER" - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __unix__ -CURL_DEF_TOKEN __unix__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = ""; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___unix__=no - - else - curl_cv_have_def___unix__=yes - curl_cv_def___unix__=$tmp_exp - - fi - - if test "$curl_cv_have_def___unix__" = "yes"; then - compiler_id="INTEL_UNIX_C" - flags_dbg_all="-g -g0" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="-O -O0 -O1 -O2 -O3 -Os" - flags_opt_yes="-O2" - flags_opt_off="-O0" - else - compiler_id="INTEL_WINDOWS_C" - flags_dbg_all="/ZI /Zi /zI /zi /ZD /Zd /zD /zd /Z7 /z7 /Oy /Oy-" - flags_dbg_all="$flags_dbg_all /debug" - flags_dbg_all="$flags_dbg_all /debug:none" - flags_dbg_all="$flags_dbg_all /debug:minimal" - flags_dbg_all="$flags_dbg_all /debug:partial" - flags_dbg_all="$flags_dbg_all /debug:full" - flags_dbg_all="$flags_dbg_all /debug:semantic_stepping" - flags_dbg_all="$flags_dbg_all /debug:extended" - flags_dbg_yes="/Zi /Oy-" - flags_dbg_off="/debug:none /Oy-" - flags_opt_all="/O /O0 /O1 /O2 /O3 /Od /Og /Og- /Oi /Oi-" - flags_opt_yes="/O2" - flags_opt_off="/Od" - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is clang" >&5 -$as_echo_n "checking if compiler is clang... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __clang__ -CURL_DEF_TOKEN __clang__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__clang__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___clang__=no - - else - curl_cv_have_def___clang__=yes - curl_cv_def___clang__=$tmp_exp - - fi - - if test "$curl_cv_have_def___clang__" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="CLANG" - clangver=`$CC -dumpversion` - clangvhi=`echo $clangver | cut -d . -f1` - clangvlo=`echo $clangver | cut -d . -f2` - compiler_num=`(expr $clangvhi "*" 100 + $clangvlo) 2>/dev/null` - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_all="$flags_dbg_all -ggdb" - flags_dbg_all="$flags_dbg_all -gstabs" - flags_dbg_all="$flags_dbg_all -gstabs+" - flags_dbg_all="$flags_dbg_all -gcoff" - flags_dbg_all="$flags_dbg_all -gxcoff" - flags_dbg_all="$flags_dbg_all -gdwarf-2" - flags_dbg_all="$flags_dbg_all -gvms" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="-O -O0 -O1 -O2 -Os -O3 -O4" - flags_opt_yes="-Os" - flags_opt_off="-O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is GNU C" >&5 -$as_echo_n "checking if compiler is GNU C... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __GNUC__ -CURL_DEF_TOKEN __GNUC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__GNUC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___GNUC__=no - - else - curl_cv_have_def___GNUC__=yes - curl_cv_def___GNUC__=$tmp_exp - - fi - - if test "$curl_cv_have_def___GNUC__" = "yes" && - test "$compiler_id" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="GNU_C" - gccver=`$CC -dumpversion` - gccvhi=`echo $gccver | cut -d . -f1` - gccvlo=`echo $gccver | cut -d . -f2` - compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null` - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_all="$flags_dbg_all -ggdb" - flags_dbg_all="$flags_dbg_all -gstabs" - flags_dbg_all="$flags_dbg_all -gstabs+" - flags_dbg_all="$flags_dbg_all -gcoff" - flags_dbg_all="$flags_dbg_all -gxcoff" - flags_dbg_all="$flags_dbg_all -gdwarf-2" - flags_dbg_all="$flags_dbg_all -gvms" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="-O -O0 -O1 -O2 -O3 -Os" - flags_opt_yes="-O2" - flags_opt_off="-O0" - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef _WIN32 -CURL_DEF_TOKEN _WIN32 -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "_WIN32"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def__WIN32=no - - else - curl_cv_have_def__WIN32=yes - curl_cv_def__WIN32=$tmp_exp - - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is LCC" >&5 -$as_echo_n "checking if compiler is LCC... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __LCC__ -CURL_DEF_TOKEN __LCC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__LCC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___LCC__=no - - else - curl_cv_have_def___LCC__=yes - curl_cv_def___LCC__=$tmp_exp - - fi - - if test "$curl_cv_have_def___LCC__" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="LCC" - flags_dbg_all="-g" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="" - flags_opt_yes="" - flags_opt_off="" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is SGI MIPSpro C" >&5 -$as_echo_n "checking if compiler is SGI MIPSpro C... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __GNUC__ -CURL_DEF_TOKEN __GNUC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__GNUC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___GNUC__=no - - else - curl_cv_have_def___GNUC__=yes - curl_cv_def___GNUC__=$tmp_exp - - fi - - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef _COMPILER_VERSION -CURL_DEF_TOKEN _COMPILER_VERSION -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "_COMPILER_VERSION"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def__COMPILER_VERSION=no - - else - curl_cv_have_def__COMPILER_VERSION=yes - curl_cv_def__COMPILER_VERSION=$tmp_exp - - fi - - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef _SGI_COMPILER_VERSION -CURL_DEF_TOKEN _SGI_COMPILER_VERSION -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "_SGI_COMPILER_VERSION"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def__SGI_COMPILER_VERSION=no - - else - curl_cv_have_def__SGI_COMPILER_VERSION=yes - curl_cv_def__SGI_COMPILER_VERSION=$tmp_exp - - fi - - if test "$curl_cv_have_def___GNUC__" = "no" && - (test "$curl_cv_have_def__SGI_COMPILER_VERSION" = "yes" || - test "$curl_cv_have_def__COMPILER_VERSION" = "yes"); then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="SGI_MIPSPRO_C" - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="-O -O0 -O1 -O2 -O3 -Ofast" - flags_opt_yes="-O2" - flags_opt_off="-O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is SGI MIPS C" >&5 -$as_echo_n "checking if compiler is SGI MIPS C... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __GNUC__ -CURL_DEF_TOKEN __GNUC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__GNUC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___GNUC__=no - - else - curl_cv_have_def___GNUC__=yes - curl_cv_def___GNUC__=$tmp_exp - - fi - - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __sgi -CURL_DEF_TOKEN __sgi -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__sgi"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___sgi=no - - else - curl_cv_have_def___sgi=yes - curl_cv_def___sgi=$tmp_exp - - fi - - if test "$curl_cv_have_def___GNUC__" = "no" && - test "$curl_cv_have_def___sgi" = "yes" && - test "$compiler_id" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="SGI_MIPS_C" - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="-O -O0 -O1 -O2 -O3 -Ofast" - flags_opt_yes="-O2" - flags_opt_off="-O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is SunPro C" >&5 -$as_echo_n "checking if compiler is SunPro C... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __SUNPRO_C -CURL_DEF_TOKEN __SUNPRO_C -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__SUNPRO_C"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___SUNPRO_C=no - - else - curl_cv_have_def___SUNPRO_C=yes - curl_cv_def___SUNPRO_C=$tmp_exp - - fi - - if test "$curl_cv_have_def___SUNPRO_C" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="SUNPRO_C" - flags_dbg_all="-g -s" - flags_dbg_yes="-g" - flags_dbg_off="-s" - flags_opt_all="-O -xO -xO1 -xO2 -xO3 -xO4 -xO5" - flags_opt_yes="-xO2" - flags_opt_off="" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is Tiny C" >&5 -$as_echo_n "checking if compiler is Tiny C... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __TINYC__ -CURL_DEF_TOKEN __TINYC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__TINYC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___TINYC__=no - - else - curl_cv_have_def___TINYC__=yes - curl_cv_def___TINYC__=$tmp_exp - - fi - - if test "$curl_cv_have_def___TINYC__" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="TINY_C" - flags_dbg_all="-g -b" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="" - flags_opt_yes="" - flags_opt_off="" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is Watcom C" >&5 -$as_echo_n "checking if compiler is Watcom C... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __WATCOMC__ -CURL_DEF_TOKEN __WATCOMC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__WATCOMC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___WATCOMC__=no - - else - curl_cv_have_def___WATCOMC__=yes - curl_cv_def___WATCOMC__=$tmp_exp - - fi - - if test "$curl_cv_have_def___WATCOMC__" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __UNIX__ -CURL_DEF_TOKEN __UNIX__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__UNIX__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___UNIX__=no - - else - curl_cv_have_def___UNIX__=yes - curl_cv_def___UNIX__=$tmp_exp - - fi - - if test "$curl_cv_have_def___UNIX__" = "yes"; then - compiler_id="WATCOM_UNIX_C" - flags_dbg_all="-g1 -g1+ -g2 -g3" - flags_dbg_yes="-g2" - flags_dbg_off="" - flags_opt_all="-O0 -O1 -O2 -O3" - flags_opt_yes="-O2" - flags_opt_off="-O0" - else - compiler_id="WATCOM_WINDOWS_C" - flags_dbg_all="" - flags_dbg_yes="" - flags_dbg_off="" - flags_opt_all="" - flags_opt_yes="" - flags_opt_off="" - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - # - if test "$compiler_id" = "unknown"; then - cat <<_EOF 1>&2 -*** -*** Warning: This configure script does not have information about the -*** compiler you are using, relative to the flags required to enable or -*** disable generation of debug info, optimization options or warnings. -*** -*** Whatever settings are present in CFLAGS will be used for this run. -*** -*** If you wish to help the cURL project to better support your compiler -*** you can report this and the required info on the libcurl development -*** mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ -*** -_EOF - fi - - -squeeze() { - _sqz_result="" - eval _sqz_input=\$$1 - for _sqz_token in $_sqz_input; do - if test -z "$_sqz_result"; then - _sqz_result="$_sqz_token" - else - _sqz_result="$_sqz_result $_sqz_token" - fi - done - eval $1=\$_sqz_result - return 0 -} - - - # - if test "$compiler_id" != "unknown"; then - # - if test "$compiler_id" = "GNU_C" || - test "$compiler_id" = "CLANG"; then - - if test "$compiler_id" = "GNU_C" || - test "$compiler_id" = "CLANG"; then - tmp_has_include="no" - tmp_chg_FLAGS="$CFLAGS" - for word1 in $tmp_chg_FLAGS; do - case "$word1" in - -I*) - tmp_has_include="yes" - ;; - esac - done - if test "$tmp_has_include" = "yes"; then - tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/^-I/ -isystem /g'` - tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/ -I/ -isystem /g'` - CFLAGS="$tmp_chg_FLAGS" - squeeze CFLAGS - fi - tmp_has_include="no" - tmp_chg_FLAGS="$CPPFLAGS" - for word1 in $tmp_chg_FLAGS; do - case "$word1" in - -I*) - tmp_has_include="yes" - ;; - esac - done - if test "$tmp_has_include" = "yes"; then - tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/^-I/ -isystem /g'` - tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/ -I/ -isystem /g'` - CPPFLAGS="$tmp_chg_FLAGS" - squeeze CPPFLAGS - fi - fi - - fi - # - tmp_save_CPPFLAGS="$CPPFLAGS" - tmp_save_CFLAGS="$CFLAGS" - tmp_CPPFLAGS="" - tmp_CFLAGS="" - # - case "$compiler_id" in - # - CLANG) - # - tmp_CFLAGS="$tmp_CFLAGS -Qunused-arguments" - ;; - # - DEC_C) - # - tmp_CFLAGS="$tmp_CFLAGS -std1" - tmp_CFLAGS="$tmp_CFLAGS -noansi_alias" - tmp_CFLAGS="$tmp_CFLAGS -warnprotos" - tmp_CFLAGS="$tmp_CFLAGS -msg_fatal toofewargs,toomanyargs" - ;; - # - GNU_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - HP_UX_C) - # - tmp_CFLAGS="$tmp_CFLAGS -z" - tmp_CFLAGS="$tmp_CFLAGS +W 4227,4255" - ;; - # - IBM_C) - # - tmp_CPPFLAGS="$tmp_CPPFLAGS -qthreaded" - tmp_CPPFLAGS="$tmp_CPPFLAGS -qnoansialias" - tmp_CPPFLAGS="$tmp_CPPFLAGS -qhalt=e" - ;; - # - INTEL_UNIX_C) - # - tmp_CFLAGS="$tmp_CFLAGS -std=gnu89" - tmp_CPPFLAGS="$tmp_CPPFLAGS -we 140,147,165,266" - tmp_CPPFLAGS="$tmp_CPPFLAGS -wd 279,981,1469" - ;; - # - INTEL_WINDOWS_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - LCC) - # - tmp_CFLAGS="$tmp_CFLAGS -n" - ;; - # - SGI_MIPS_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - SGI_MIPSPRO_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - SUNPRO_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - TINY_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - WATCOM_UNIX_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - WATCOM_WINDOWS_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - esac - # - squeeze tmp_CPPFLAGS - squeeze tmp_CFLAGS - # - if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts some basic options" >&5 -$as_echo_n "checking if compiler accepts some basic options... " >&6; } - CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" - squeeze CPPFLAGS - squeeze CFLAGS - - tmp_compiler_works="unknown" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/cc-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tmp_compiler_works" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/link-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "x$cross_compiling" != "xyes" && - test "$tmp_compiler_works" = "yes"; then - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# ifdef __STDC__ -# include -# endif - -int main (void) -{ - - int i = 0; - exit(i); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - echo "run-fail: test program exited with status $ac_status" >&6 - echo " " >&6 - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - if test "$tmp_compiler_works" = "yes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 -$as_echo "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;} - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 -$as_echo "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;} - CPPFLAGS="$tmp_save_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS" - - fi - - fi - # - fi - - - # - if test "$compiler_id" != "unknown"; then - # - tmp_save_CFLAGS="$CFLAGS" - tmp_save_CPPFLAGS="$CPPFLAGS" - # - tmp_options="" - tmp_CFLAGS="$CFLAGS" - tmp_CPPFLAGS="$CPPFLAGS" - - ac_var_stripped="" - for word1 in $tmp_CFLAGS; do - ac_var_strip_word="no" - for word2 in $flags_dbg_all; do - if test "$word1" = "$word2"; then - ac_var_strip_word="yes" - fi - done - if test "$ac_var_strip_word" = "no"; then - ac_var_stripped="$ac_var_stripped $word1" - fi - done - tmp_CFLAGS="$ac_var_stripped" - squeeze tmp_CFLAGS - - - ac_var_stripped="" - for word1 in $tmp_CPPFLAGS; do - ac_var_strip_word="no" - for word2 in $flags_dbg_all; do - if test "$word1" = "$word2"; then - ac_var_strip_word="yes" - fi - done - if test "$ac_var_strip_word" = "no"; then - ac_var_stripped="$ac_var_stripped $word1" - fi - done - tmp_CPPFLAGS="$ac_var_stripped" - squeeze tmp_CPPFLAGS - - # - if test "$want_debug" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts debug enabling options" >&5 -$as_echo_n "checking if compiler accepts debug enabling options... " >&6; } - tmp_options="$flags_dbg_yes" - fi - if test "$want_debug" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts debug disabling options" >&5 -$as_echo_n "checking if compiler accepts debug disabling options... " >&6; } - tmp_options="$flags_dbg_off" - fi - # - if test "$flags_prefer_cppflags" = "yes"; then - CPPFLAGS="$tmp_CPPFLAGS $tmp_options" - CFLAGS="$tmp_CFLAGS" - else - CPPFLAGS="$tmp_CPPFLAGS" - CFLAGS="$tmp_CFLAGS $tmp_options" - fi - squeeze CPPFLAGS - squeeze CFLAGS - - tmp_compiler_works="unknown" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/cc-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tmp_compiler_works" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/link-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "x$cross_compiling" != "xyes" && - test "$tmp_compiler_works" = "yes"; then - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# ifdef __STDC__ -# include -# endif - -int main (void) -{ - - int i = 0; - exit(i); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - echo "run-fail: test program exited with status $ac_status" >&6 - echo " " >&6 - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - if test "$tmp_compiler_works" = "yes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_options" >&5 -$as_echo "$as_me: compiler options added: $tmp_options" >&6;} - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_options" >&5 -$as_echo "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;} - CPPFLAGS="$tmp_save_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS" - - fi - - # - fi - - - # - if test "$compiler_id" != "unknown"; then - # - tmp_save_CFLAGS="$CFLAGS" - tmp_save_CPPFLAGS="$CPPFLAGS" - # - tmp_options="" - tmp_CFLAGS="$CFLAGS" - tmp_CPPFLAGS="$CPPFLAGS" - honor_optimize_option="yes" - # - # - if test "$want_optimize" = "assume_no" || - test "$want_optimize" = "assume_yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler optimizer assumed setting might be used" >&5 -$as_echo_n "checking if compiler optimizer assumed setting might be used... " >&6; } - - - ac_var_match_word="no" - for word1 in $tmp_CFLAGS; do - for word2 in $flags_opt_all; do - if test "$word1" = "$word2"; then - ac_var_match_word="yes" - fi - done - done - - if test "$ac_var_match_word" = "yes"; then - - honor_optimize_option="no" - - - fi - - - - ac_var_match_word="no" - for word1 in $tmp_CPPFLAGS; do - for word2 in $flags_opt_all; do - if test "$word1" = "$word2"; then - ac_var_match_word="yes" - fi - done - done - - if test "$ac_var_match_word" = "yes"; then - - honor_optimize_option="no" - - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $honor_optimize_option" >&5 -$as_echo "$honor_optimize_option" >&6; } - if test "$honor_optimize_option" = "yes"; then - if test "$want_optimize" = "assume_yes"; then - want_optimize="yes" - fi - if test "$want_optimize" = "assume_no"; then - want_optimize="no" - fi - fi - fi - # - if test "$honor_optimize_option" = "yes"; then - - ac_var_stripped="" - for word1 in $tmp_CFLAGS; do - ac_var_strip_word="no" - for word2 in $flags_opt_all; do - if test "$word1" = "$word2"; then - ac_var_strip_word="yes" - fi - done - if test "$ac_var_strip_word" = "no"; then - ac_var_stripped="$ac_var_stripped $word1" - fi - done - tmp_CFLAGS="$ac_var_stripped" - squeeze tmp_CFLAGS - - - ac_var_stripped="" - for word1 in $tmp_CPPFLAGS; do - ac_var_strip_word="no" - for word2 in $flags_opt_all; do - if test "$word1" = "$word2"; then - ac_var_strip_word="yes" - fi - done - if test "$ac_var_strip_word" = "no"; then - ac_var_stripped="$ac_var_stripped $word1" - fi - done - tmp_CPPFLAGS="$ac_var_stripped" - squeeze tmp_CPPFLAGS - - if test "$want_optimize" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer enabling options" >&5 -$as_echo_n "checking if compiler accepts optimizer enabling options... " >&6; } - tmp_options="$flags_opt_yes" - fi - if test "$want_optimize" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer disabling options" >&5 -$as_echo_n "checking if compiler accepts optimizer disabling options... " >&6; } - tmp_options="$flags_opt_off" - fi - if test "$flags_prefer_cppflags" = "yes"; then - CPPFLAGS="$tmp_CPPFLAGS $tmp_options" - CFLAGS="$tmp_CFLAGS" - else - CPPFLAGS="$tmp_CPPFLAGS" - CFLAGS="$tmp_CFLAGS $tmp_options" - fi - squeeze CPPFLAGS - squeeze CFLAGS - - tmp_compiler_works="unknown" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/cc-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tmp_compiler_works" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/link-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "x$cross_compiling" != "xyes" && - test "$tmp_compiler_works" = "yes"; then - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# ifdef __STDC__ -# include -# endif - -int main (void) -{ - - int i = 0; - exit(i); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - echo "run-fail: test program exited with status $ac_status" >&6 - echo " " >&6 - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - if test "$tmp_compiler_works" = "yes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_options" >&5 -$as_echo "$as_me: compiler options added: $tmp_options" >&6;} - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_options" >&5 -$as_echo "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;} - CPPFLAGS="$tmp_save_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS" - - fi - - fi - # - fi - - - # - if test "$compiler_id" != "unknown"; then - # - tmp_save_CPPFLAGS="$CPPFLAGS" - tmp_save_CFLAGS="$CFLAGS" - tmp_CPPFLAGS="" - tmp_CFLAGS="" - # - case "$compiler_id" in - # - CLANG) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -pedantic" - tmp_CFLAGS="$tmp_CFLAGS -Wall -Wextra" - tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings" - tmp_CFLAGS="$tmp_CFLAGS -Wshadow" - tmp_CFLAGS="$tmp_CFLAGS -Winline -Wnested-externs" - tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations" - tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes" - tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long" - tmp_CFLAGS="$tmp_CFLAGS -Wfloat-equal" - tmp_CFLAGS="$tmp_CFLAGS -Wno-multichar -Wsign-compare" - tmp_CFLAGS="$tmp_CFLAGS -Wundef" - tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral" - tmp_CFLAGS="$tmp_CFLAGS -Wendif-labels -Wstrict-prototypes" - tmp_CFLAGS="$tmp_CFLAGS -Wdeclaration-after-statement" - tmp_CFLAGS="$tmp_CFLAGS -Wcast-align" - tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers" - tmp_CFLAGS="$tmp_CFLAGS -Wshorten-64-to-32" - # - if test "$compiler_num" -ge "101"; then - tmp_CFLAGS="$tmp_CFLAGS -Wunused" - fi - fi - ;; - # - DEC_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -msg_enable level3" - fi - ;; - # - GNU_C) - # - if test "$want_warnings" = "yes"; then - # - if test "x$cross_compiling" != "xyes" || - test "$compiler_num" -ge "300"; then - tmp_CFLAGS="$tmp_CFLAGS -pedantic" - fi - # - tmp_CFLAGS="$tmp_CFLAGS -Wall -W" - # - if test "$compiler_num" -ge "104"; then - tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings" - if test "x$cross_compiling" != "xyes" || - test "$compiler_num" -ge "300"; then - tmp_CFLAGS="$tmp_CFLAGS -Wunused -Wshadow" - fi - fi - # - if test "$compiler_num" -ge "207"; then - tmp_CFLAGS="$tmp_CFLAGS -Winline -Wnested-externs" - if test "x$cross_compiling" != "xyes" || - test "$compiler_num" -ge "300"; then - tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations" - tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes" - fi - fi - # - if test "$compiler_num" -ge "295"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long" - fi - # - if test "$compiler_num" -ge "296"; then - tmp_CFLAGS="$tmp_CFLAGS -Wfloat-equal" - tmp_CFLAGS="$tmp_CFLAGS -Wno-multichar -Wsign-compare" - tmp_CFLAGS="$tmp_CFLAGS -Wundef" - fi - # - if test "$compiler_num" -ge "297"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral" - fi - # - if test "$compiler_num" -ge "300"; then - tmp_CFLAGS="$tmp_CFLAGS" - fi - # - if test "$compiler_num" -ge "303"; then - tmp_CFLAGS="$tmp_CFLAGS -Wendif-labels -Wstrict-prototypes" - fi - # - if test "$compiler_num" -ge "304"; then - tmp_CFLAGS="$tmp_CFLAGS -Wdeclaration-after-statement" - fi - # - if test "$compiler_num" -ge "400"; then - tmp_CFLAGS="$tmp_CFLAGS -Wstrict-aliasing=3" - fi - # - if test "$compiler_num" -ge "402"; then - tmp_CFLAGS="$tmp_CFLAGS -Wcast-align" - fi - # - if test "$compiler_num" -ge "403"; then - tmp_CFLAGS="$tmp_CFLAGS -Wtype-limits -Wold-style-declaration" - tmp_CFLAGS="$tmp_CFLAGS -Wmissing-parameter-type -Wempty-body" - tmp_CFLAGS="$tmp_CFLAGS -Wclobbered -Wignored-qualifiers" - tmp_CFLAGS="$tmp_CFLAGS -Wconversion -Wno-sign-conversion -Wvla" - fi - # - if test "$compiler_num" -ge "405"; then - if test "$curl_cv_have_def__WIN32" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-pedantic-ms-format" - fi - fi - # - fi - # - if test "$compiler_num" -ge "300"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers" - else - if test "x$cross_compiling" = "xyes"; then - if test "$compiler_num" -ge "104"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-unused -Wno-shadow" - fi - if test "$compiler_num" -ge "207"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-declarations" - tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-prototypes" - fi - fi - fi - ;; - # - HP_UX_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS +w1" - fi - ;; - # - IBM_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - INTEL_UNIX_C) - # - if test "$want_warnings" = "yes"; then - if test "$compiler_num" -gt "600"; then - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wall -w2" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wcheck" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wcomment" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wdeprecated" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wmissing-prototypes" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wp64" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wpointer-arith" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wreturn-type" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wshadow" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wuninitialized" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wunused-function" - fi - fi - tmp_CFLAGS="$tmp_CFLAGS -fno-omit-frame-pointer" - tmp_CFLAGS="$tmp_CFLAGS -fno-strict-aliasing" - tmp_CFLAGS="$tmp_CFLAGS -fp-model precise" - if test "$compiler_num" -ge "1000"; then - tmp_CFLAGS="$tmp_CFLAGS -vec-report0" - fi - ;; - # - INTEL_WINDOWS_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - LCC) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS" - fi - ;; - # - SGI_MIPS_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -fullwarn" - fi - ;; - # - SGI_MIPSPRO_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -fullwarn" - tmp_CFLAGS="$tmp_CFLAGS -woff 1209" - fi - ;; - # - SUNPRO_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -v" - fi - ;; - # - TINY_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -Wall" - tmp_CFLAGS="$tmp_CFLAGS -Wwrite-strings" - tmp_CFLAGS="$tmp_CFLAGS -Wunsupported" - fi - ;; - # - WATCOM_UNIX_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -Wall -Wextra" - fi - ;; - # - WATCOM_WINDOWS_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - esac - # - squeeze tmp_CPPFLAGS - squeeze tmp_CFLAGS - # - if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts strict warning options" >&5 -$as_echo_n "checking if compiler accepts strict warning options... " >&6; } - CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" - squeeze CPPFLAGS - squeeze CFLAGS - - tmp_compiler_works="unknown" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/cc-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tmp_compiler_works" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/link-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "x$cross_compiling" != "xyes" && - test "$tmp_compiler_works" = "yes"; then - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# ifdef __STDC__ -# include -# endif - -int main (void) -{ - - int i = 0; - exit(i); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - echo "run-fail: test program exited with status $ac_status" >&6 - echo " " >&6 - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - if test "$tmp_compiler_works" = "yes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 -$as_echo "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;} - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 -$as_echo "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;} - CPPFLAGS="$tmp_save_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS" - - fi - - fi - # - fi - - -if test "$compiler_id" = "INTEL_UNIX_C"; then - # - if test "$compiler_num" -ge "1000"; then - CFLAGS="$CFLAGS -shared-intel" - elif test "$compiler_num" -ge "900"; then - CFLAGS="$CFLAGS -i-dynamic" - fi - # -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler halts on compilation errors" >&5 -$as_echo_n "checking if compiler halts on compilation errors... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - force compilation error - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error "compiler does not halt on compilation errors." "$LINENO" 5 - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler halts on negative sized arrays" >&5 -$as_echo_n "checking if compiler halts on negative sized arrays... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - typedef char bad_t[sizeof(char) == sizeof(int) ? -1 : -1 ]; - -int main (void) -{ - - bad_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error "compiler does not halt on negative sized arrays." "$LINENO" 5 - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports hiding library internal symbols" >&5 -$as_echo_n "checking if compiler supports hiding library internal symbols... " >&6; } - supports_symbol_hiding="no" - symbol_hiding_CFLAGS="" - symbol_hiding_EXTERN="" - tmp_CFLAGS="" - tmp_EXTERN="" - case "$compiler_id" in - CLANG) - tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))" - tmp_CFLAGS="-fvisibility=hidden" - supports_symbol_hiding="yes" - ;; - GNU_C) - if test "$compiler_num" -ge "304"; then - if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then - tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))" - tmp_CFLAGS="-fvisibility=hidden" - supports_symbol_hiding="yes" - fi - fi - ;; - INTEL_UNIX_C) - if test "$compiler_num" -ge "900"; then - if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then - tmp_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# include - -int main (void) -{ - - printf("icc fvisibility bug test"); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))" - tmp_CFLAGS="-fvisibility=hidden" - supports_symbol_hiding="yes" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$tmp_save_CFLAGS" - fi - fi - ;; - SUNPRO_C) - if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then - tmp_EXTERN="__global" - tmp_CFLAGS="-xldscope=hidden" - supports_symbol_hiding="yes" - fi - ;; - esac - if test "$supports_symbol_hiding" = "yes"; then - tmp_save_CFLAGS="$CFLAGS" - CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" - squeeze CFLAGS - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $tmp_EXTERN char *dummy(char *buff); - char *dummy(char *buff) - { - if(buff) - return ++buff; - else - return buff; - } - -int main (void) -{ - - char b[16]; - char *r = dummy(&b[0]); - if(r) - return (int)*r; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - supports_symbol_hiding="yes" - if test -f conftest.err; then - grep 'visibility' conftest.err >/dev/null - if test "$?" -eq "0"; then - supports_symbol_hiding="no" - fi - fi - -else - - supports_symbol_hiding="no" - echo " " >&6 - sed 's/^/cc-src: /' conftest.$ac_ext >&6 - sed 's/^/cc-err: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$tmp_save_CFLAGS" - fi - if test "$supports_symbol_hiding" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - symbol_hiding_CFLAGS="$tmp_CFLAGS" - symbol_hiding_EXTERN="$tmp_EXTERN" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if shared libraries need -no-undefined" >&5 -$as_echo_n "checking if shared libraries need -no-undefined... " >&6; } - need_no_undefined="no" - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc* | *-*-aix*) - need_no_undefined="yes" - ;; - esac - if test "x$allow_undefined" = "xno"; then - need_no_undefined="yes" - elif test "x$allow_undefined_flag" = "xunsupported"; then - need_no_undefined="yes" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $need_no_undefined" >&5 -$as_echo "$need_no_undefined" >&6; } - - - -if test x$need_no_undefined = xyes; then - NO_UNDEFINED_TRUE= - NO_UNDEFINED_FALSE='#' -else - NO_UNDEFINED_TRUE='#' - NO_UNDEFINED_FALSE= -fi - - - - supports_curldebug="unknown" - if test "$want_curldebug" = "yes"; then - if test "x$enable_shared" != "xno" && - test "x$enable_shared" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown enable_shared setting." >&5 -$as_echo "$as_me: WARNING: unknown enable_shared setting." >&2;} - supports_curldebug="no" - fi - if test "x$enable_static" != "xno" && - test "x$enable_static" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown enable_static setting." >&5 -$as_echo "$as_me: WARNING: unknown enable_static setting." >&2;} - supports_curldebug="no" - fi - if test "$supports_curldebug" != "no"; then - if test "$enable_shared" = "yes" && - test "$need_no_undefined" = "yes"; then - supports_curldebug="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: shared library does not support undefined symbols." >&5 -$as_echo "$as_me: WARNING: shared library does not support undefined symbols." >&2;} - fi - fi - fi - # - if test "$want_curldebug" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if curl debug memory tracking can be enabled" >&5 -$as_echo_n "checking if curl debug memory tracking can be enabled... " >&6; } - test "$supports_curldebug" = "no" || supports_curldebug="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports_curldebug" >&5 -$as_echo "$supports_curldebug" >&6; } - if test "$supports_curldebug" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot enable curl debug memory tracking." >&5 -$as_echo "$as_me: WARNING: cannot enable curl debug memory tracking." >&2;} - want_curldebug="no" - fi - fi - # - if test "$want_curldebug" = "yes"; then - CPPFLAGS="-DCURLDEBUG $CPPFLAGS" - squeeze CPPFLAGS - fi - if test "$want_debug" = "yes"; then - CPPFLAGS="-DDEBUGBUILD $CPPFLAGS" - squeeze CPPFLAGS - fi - - - -if test x$want_curldebug = xyes; then - CURLDEBUG_TRUE= - CURLDEBUG_FALSE='#' -else - CURLDEBUG_TRUE='#' - CURLDEBUG_FALSE= -fi - - -supports_unittests=yes -# cross-compilation of unit tests static library/programs fails when -# libcurl shared library is built. This might be due to a libtool or -# automake issue. In this case we disable unit tests. -if test "x$cross_compiling" != "xno" && - test "x$enable_shared" != "xno"; then - supports_unittests=no -fi - -# IRIX 6.5.24 gcc 3.3 autobuilds fail unittests library compilation due to -# a problem related with OpenSSL headers and library versions not matching. -# Disable unit tests while time to further investigate this is found. -case $host in - mips-sgi-irix6.5) - if test "$compiler_id" = "GNU_C"; then - supports_unittests=no - fi - ;; -esac - -# All AIX autobuilds fails unit tests linking against unittests library -# due to unittests library being built with no symbols or members. Libtool ? -# Disable unit tests while time to further investigate this is found. -case $host_os in - aix*) - supports_unittests=no - ;; -esac - -if test "x$want_debug" = "xyes" && - test "x$supports_unittests" = "xyes"; then - want_unittests=yes -else - want_unittests=no -fi - - -if test x$want_unittests = xyes; then - BUILD_UNITTESTS_TRUE= - BUILD_UNITTESTS_FALSE='#' -else - BUILD_UNITTESTS_TRUE='#' - BUILD_UNITTESTS_FALSE= -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5 -$as_echo_n "checking for windows.h... " >&6; } -if test "${ac_cv_header_windows_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINDOWS_H shall not be defined. -#else - int dummy=2*WINVER; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_windows_h="yes" - -else - - ac_cv_header_windows_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_windows_h" >&5 -$as_echo "$ac_cv_header_windows_h" >&6; } - case "$ac_cv_header_windows_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINDOWS_H 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define WIN32_LEAN_AND_MEAN 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build target is a native Windows one" >&5 -$as_echo_n "checking whether build target is a native Windows one... " >&6; } -if test "${ac_cv_native_windows+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - if test "$ac_cv_header_windows_h" = "no"; then - ac_cv_native_windows="no" - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#if defined(__MINGW32__) || defined(__MINGW32CE__) || \ - (defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64))) - int dummy=1; -#else - Not a native Windows build target. -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_native_windows="yes" - -else - - ac_cv_native_windows="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_native_windows" >&5 -$as_echo "$ac_cv_native_windows" >&6; } - - -if test "x$ac_cv_native_windows" = xyes; then - DOING_NATIVE_WINDOWS_TRUE= - DOING_NATIVE_WINDOWS_FALSE='#' -else - DOING_NATIVE_WINDOWS_TRUE='#' - DOING_NATIVE_WINDOWS_FALSE= -fi - - -case X-"$ac_cv_native_windows" in - X-yes) - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock.h" >&5 -$as_echo_n "checking for winsock.h... " >&6; } -if test "${ac_cv_header_winsock_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINSOCK_H shall not be defined. -#else - int dummy=WSACleanup(); -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winsock_h="yes" - -else - - ac_cv_header_winsock_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock_h" >&5 -$as_echo "$ac_cv_header_winsock_h" >&6; } - case "$ac_cv_header_winsock_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINSOCK_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5 -$as_echo_n "checking for winsock2.h... " >&6; } -if test "${ac_cv_header_winsock2_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WINSOCK2_H shall not be defined. -#else - int dummy=2*IPPROTO_ESP; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winsock2_h="yes" - -else - - ac_cv_header_winsock2_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock2_h" >&5 -$as_echo "$ac_cv_header_winsock2_h" >&6; } - case "$ac_cv_header_winsock2_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINSOCK2_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5 -$as_echo_n "checking for ws2tcpip.h... " >&6; } -if test "${ac_cv_header_ws2tcpip_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WS2TCPIP_H shall not be defined. -#else - int dummy=2*IP_PKTINFO; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_ws2tcpip_h="yes" - -else - - ac_cv_header_ws2tcpip_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ws2tcpip_h" >&5 -$as_echo "$ac_cv_header_ws2tcpip_h" >&6; } - case "$ac_cv_header_ws2tcpip_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WS2TCPIP_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winldap.h" >&5 -$as_echo_n "checking for winldap.h... " >&6; } -if test "${ac_cv_header_winldap_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#endif -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINLDAP_H shall not be defined. -#else - LDAP *ldp = ldap_init("dummy", LDAP_PORT); - ULONG res = ldap_unbind(ldp); -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winldap_h="yes" - -else - - ac_cv_header_winldap_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winldap_h" >&5 -$as_echo "$ac_cv_header_winldap_h" >&6; } - case "$ac_cv_header_winldap_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINLDAP_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winber.h" >&5 -$as_echo_n "checking for winber.h... " >&6; } -if test "${ac_cv_header_winber_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINBER_H shall not be defined. -#else - BERVAL *bvp = NULL; - BerElement *bep = ber_init(bvp); - ber_free(bep, 1); -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winber_h="yes" - -else - - ac_cv_header_winber_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winber_h" >&5 -$as_echo "$ac_cv_header_winber_h" >&6; } - case "$ac_cv_header_winber_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINBER_H 1 -_ACEOF - - ;; - esac - - ;; - *) - ac_cv_header_winsock_h="no" - ac_cv_header_winsock2_h="no" - ac_cv_header_ws2tcpip_h="no" - ac_cv_header_winldap_h="no" - ac_cv_header_winber_h="no" - ;; -esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build target supports WIN32 file API" >&5 -$as_echo_n "checking whether build target supports WIN32 file API... " >&6; } - curl_win32_file_api="no" - if test "$ac_cv_header_windows_h" = "yes"; then - if test x"$enable_largefile" != "xno"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#if !defined(_WIN32_WCE) && \ - (defined(__MINGW32__) || \ - (defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64)))) - int dummy=1; -#else - WIN32 large file API not supported. -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_win32_file_api="win32_large_files" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$curl_win32_file_api" = "no"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#if defined(_WIN32_WCE) || defined(__MINGW32__) || defined(_MSC_VER) - int dummy=1; -#else - WIN32 small file API not supported. -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_win32_file_api="win32_small_files" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - fi - case "$curl_win32_file_api" in - win32_large_files) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (large file enabled)" >&5 -$as_echo "yes (large file enabled)" >&6; } - -cat >>confdefs.h <<_ACEOF -#define USE_WIN32_LARGE_FILES 1 -_ACEOF - - ;; - win32_small_files) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (large file disabled)" >&5 -$as_echo "yes (large file disabled)" >&6; } - -cat >>confdefs.h <<_ACEOF -#define USE_WIN32_SMALL_FILES 1 -_ACEOF - - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support http" >&5 -$as_echo_n "checking whether to support http... " >&6; } -# Check whether --enable-http was given. -if test "${enable_http+set}" = set; then : - enableval=$enable_http; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_HTTP 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disable HTTP disables FTP over proxy and RTSP" >&5 -$as_echo "$as_me: WARNING: disable HTTP disables FTP over proxy and RTSP" >&2;} - CURL_DISABLE_HTTP=1 - - -$as_echo "#define CURL_DISABLE_RTSP 1" >>confdefs.h - - CURL_DISABLE_RTSP=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support ftp" >&5 -$as_echo_n "checking whether to support ftp... " >&6; } -# Check whether --enable-ftp was given. -if test "${enable_ftp+set}" = set; then : - enableval=$enable_ftp; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_FTP 1" >>confdefs.h - - CURL_DISABLE_FTP=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support file" >&5 -$as_echo_n "checking whether to support file... " >&6; } -# Check whether --enable-file was given. -if test "${enable_file+set}" = set; then : - enableval=$enable_file; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_FILE 1" >>confdefs.h - - CURL_DISABLE_FILE=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support ldap" >&5 -$as_echo_n "checking whether to support ldap... " >&6; } -# Check whether --enable-ldap was given. -if test "${enable_ldap+set}" = set; then : - enableval=$enable_ldap; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h - - CURL_DISABLE_LDAP=1 - - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support ldaps" >&5 -$as_echo_n "checking whether to support ldaps... " >&6; } -# Check whether --enable-ldaps was given. -if test "${enable_ldaps+set}" = set; then : - enableval=$enable_ldaps; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - - ;; - *) if test "x$CURL_DISABLE_LDAP" = "x1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: LDAP needs to be enabled to support LDAPS" >&5 -$as_echo "LDAP needs to be enabled to support LDAPS" >&6; } - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_LDAP_SSL 1" >>confdefs.h - - HAVE_LDAP_SSL=1 - - fi - ;; - esac -else - - if test "x$CURL_DISABLE_LDAP" = "x1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_LDAP_SSL 1" >>confdefs.h - - HAVE_LDAP_SSL=1 - - fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support rtsp" >&5 -$as_echo_n "checking whether to support rtsp... " >&6; } -# Check whether --enable-rtsp was given. -if test "${enable_rtsp+set}" = set; then : - enableval=$enable_rtsp; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_RTSP 1" >>confdefs.h - - CURL_DISABLE_RTSP=1 - - ;; - *) if test x$CURL_DISABLE_HTTP = x1 ; then - as_fn_error "HTTP support needs to be enabled in order to enable RTSP support!" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_rtsp_msg="enabled" - fi - ;; - esac -else - if test "x$CURL_DISABLE_HTTP" != "x1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_rtsp_msg="enabled" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support proxies" >&5 -$as_echo_n "checking whether to support proxies... " >&6; } -# Check whether --enable-proxy was given. -if test "${enable_proxy+set}" = set; then : - enableval=$enable_proxy; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_PROXY 1" >>confdefs.h - - CURL_DISABLE_PROXY=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support dict" >&5 -$as_echo_n "checking whether to support dict... " >&6; } -# Check whether --enable-dict was given. -if test "${enable_dict+set}" = set; then : - enableval=$enable_dict; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_DICT 1" >>confdefs.h - - CURL_DISABLE_DICT=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support telnet" >&5 -$as_echo_n "checking whether to support telnet... " >&6; } -# Check whether --enable-telnet was given. -if test "${enable_telnet+set}" = set; then : - enableval=$enable_telnet; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_TELNET 1" >>confdefs.h - - CURL_DISABLE_TELNET=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support tftp" >&5 -$as_echo_n "checking whether to support tftp... " >&6; } -# Check whether --enable-tftp was given. -if test "${enable_tftp+set}" = set; then : - enableval=$enable_tftp; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_TFTP 1" >>confdefs.h - - CURL_DISABLE_TFTP=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support pop3" >&5 -$as_echo_n "checking whether to support pop3... " >&6; } -# Check whether --enable-pop3 was given. -if test "${enable_pop3+set}" = set; then : - enableval=$enable_pop3; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_POP3 1" >>confdefs.h - - CURL_DISABLE_POP3=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support imap" >&5 -$as_echo_n "checking whether to support imap... " >&6; } -# Check whether --enable-imap was given. -if test "${enable_imap+set}" = set; then : - enableval=$enable_imap; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_IMAP 1" >>confdefs.h - - CURL_DISABLE_IMAP=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support smtp" >&5 -$as_echo_n "checking whether to support smtp... " >&6; } -# Check whether --enable-smtp was given. -if test "${enable_smtp+set}" = set; then : - enableval=$enable_smtp; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_SMTP 1" >>confdefs.h - - CURL_DISABLE_SMTP=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support gopher" >&5 -$as_echo_n "checking whether to support gopher... " >&6; } -# Check whether --enable-gopher was given. -if test "${enable_gopher+set}" = set; then : - enableval=$enable_gopher; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_GOPHER 1" >>confdefs.h - - CURL_DISABLE_GOPHER=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to provide built-in manual" >&5 -$as_echo_n "checking whether to provide built-in manual... " >&6; } -# Check whether --enable-manual was given. -if test "${enable_manual+set}" = set; then : - enableval=$enable_manual; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - USE_MANUAL="1" - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - USE_MANUAL="1" - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable generation of C code" >&5 -$as_echo_n "checking whether to enable generation of C code... " >&6; } -# Check whether --enable-libcurl_option was given. -if test "${enable_libcurl_option+set}" = set; then : - enableval=$enable_libcurl_option; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_LIBCURL_OPTION 1" >>confdefs.h - - curl_libcurl_msg="no" - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if X/Open network library is required" >&5 -$as_echo_n "checking if X/Open network library is required... " >&6; } - tst_lib_xnet_required="no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -int main (void) -{ -#if defined(__hpux) && defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 600) - return 0; -#elif defined(__hpux) && defined(_XOPEN_SOURCE_EXTENDED) - return 0; -#else - force compilation error -#endif -} - - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tst_lib_xnet_required="yes" - LIBS="$LIBS -lxnet" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_lib_xnet_required" >&5 -$as_echo "$tst_lib_xnet_required" >&6; } - - -ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" -if test "x$ac_cv_func_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 -$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int main (void) -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nsl_gethostbyname=yes -else - ac_cv_lib_nsl_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 -$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnsl" - -fi - - -fi - - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lsocket" >&5 -$as_echo_n "checking for gethostbyname in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int main (void) -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_socket_gethostbyname=yes -else - ac_cv_lib_socket_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gethostbyname" >&5 -$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; } -if test "x$ac_cv_lib_socket_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lsocket" - -fi - -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lwatt" >&5 -$as_echo_n "checking for gethostbyname in -lwatt... " >&6; } -if test "${ac_cv_lib_watt_gethostbyname+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lwatt $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int main (void) -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_watt_gethostbyname=yes -else - ac_cv_lib_watt_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_watt_gethostbyname" >&5 -$as_echo "$ac_cv_lib_watt_gethostbyname" >&6; } -if test "x$ac_cv_lib_watt_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - CPPFLAGS="-I/dev/env/WATT_ROOT/inc" - LDFLAGS="-L/dev/env/WATT_ROOT/lib" - LIBS="$LIBS -lwatt" - -fi - -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname with both nsl and socket libs" >&5 -$as_echo_n "checking for gethostbyname with both nsl and socket libs... " >&6; } - my_ac_save_LIBS=$LIBS - LIBS="-lnsl -lsocket $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - gethostbyname(); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_GETHOSTBYNAME="1" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - LIBS=$my_ac_save_LIBS - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - if test "$ac_cv_header_windows_h" = "yes"; then - if test "$ac_cv_header_winsock_h" = "yes"; then - case $host in - *-*-mingw32ce*) - winsock_LIB="-lwinsock" - ;; - *) - winsock_LIB="-lwsock32" - ;; - esac - fi - if test "$ac_cv_header_winsock2_h" = "yes"; then - winsock_LIB="-lws2_32" - fi - if test ! -z "$winsock_LIB"; then - my_ac_save_LIBS=$LIBS - LIBS="$winsock_LIB $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in $winsock_LIB" >&5 -$as_echo_n "checking for gethostbyname in $winsock_LIB... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#endif - -int main (void) -{ - - gethostbyname("www.dummysite.com"); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_GETHOSTBYNAME="1" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - winsock_LIB="" - LIBS=$my_ac_save_LIBS - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - fi -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for Minix 3" >&5 -$as_echo_n "checking for gethostbyname for Minix 3... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -/* Older Minix versions may need here instead */ -#include - -int main (void) -{ - - gethostbyname("www.dummysite.com"); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_GETHOSTBYNAME="1" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for eCos" >&5 -$as_echo_n "checking for gethostbyname for eCos... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include -#include - -int main (void) -{ - - gethostbyname("www.dummysite.com"); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_GETHOSTBYNAME="1" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnetwork" >&5 -$as_echo_n "checking for gethostbyname in -lnetwork... " >&6; } -if test "${ac_cv_lib_network_gethostbyname+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnetwork $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int main (void) -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_network_gethostbyname=yes -else - ac_cv_lib_network_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_gethostbyname" >&5 -$as_echo "$ac_cv_lib_network_gethostbyname" >&6; } -if test "x$ac_cv_lib_network_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnetwork" - -fi - -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnet" >&5 -$as_echo_n "checking for gethostbyname in -lnet... " >&6; } -if test "${ac_cv_lib_net_gethostbyname+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnet $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int main (void) -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_net_gethostbyname=yes -else - ac_cv_lib_net_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_net_gethostbyname" >&5 -$as_echo "$ac_cv_lib_net_gethostbyname" >&6; } -if test "x$ac_cv_lib_net_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnet" - -fi - -fi - - -if test "$HAVE_GETHOSTBYNAME" != "1"; then - as_fn_error "couldn't find libraries for gethostbyname()" "$LINENO" 5 -fi - -ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" -if test "x$ac_cv_func_strcasecmp" = x""yes; then : - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strcasecmp in -lresolve" >&5 -$as_echo_n "checking for strcasecmp in -lresolve... " >&6; } -if test "${ac_cv_lib_resolve_strcasecmp+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolve $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char strcasecmp (); -int main (void) -{ -return strcasecmp (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_resolve_strcasecmp=yes -else - ac_cv_lib_resolve_strcasecmp=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolve_strcasecmp" >&5 -$as_echo "$ac_cv_lib_resolve_strcasecmp" >&6; } -if test "x$ac_cv_lib_resolve_strcasecmp" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRESOLVE 1 -_ACEOF - - LIBS="-lresolve $LIBS" - -fi - -fi - - -if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strcasecmp in -lresolve" >&5 -$as_echo_n "checking for strcasecmp in -lresolve... " >&6; } -if test "${ac_cv_lib_resolve_strcasecmp+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolve -lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char strcasecmp (); -int main (void) -{ -return strcasecmp (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_resolve_strcasecmp=yes -else - ac_cv_lib_resolve_strcasecmp=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolve_strcasecmp" >&5 -$as_echo "$ac_cv_lib_resolve_strcasecmp" >&6; } -if test "x$ac_cv_lib_resolve_strcasecmp" = x""yes; then : - LIBS="-lresolve $LIBS" -fi - -fi -ac_cv_func_strcasecmp="no" - - -curl_includes_winsock2="\ -/* includes start */ -#ifdef HAVE_WINDOWS_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# ifdef HAVE_WINSOCK2_H -# include -# else -# ifdef HAVE_WINSOCK_H -# include -# endif -# endif -#endif -/* includes end */" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5 -$as_echo_n "checking for windows.h... " >&6; } -if test "${ac_cv_header_windows_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINDOWS_H shall not be defined. -#else - int dummy=2*WINVER; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_windows_h="yes" - -else - - ac_cv_header_windows_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_windows_h" >&5 -$as_echo "$ac_cv_header_windows_h" >&6; } - case "$ac_cv_header_windows_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINDOWS_H 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define WIN32_LEAN_AND_MEAN 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock.h" >&5 -$as_echo_n "checking for winsock.h... " >&6; } -if test "${ac_cv_header_winsock_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINSOCK_H shall not be defined. -#else - int dummy=WSACleanup(); -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winsock_h="yes" - -else - - ac_cv_header_winsock_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock_h" >&5 -$as_echo "$ac_cv_header_winsock_h" >&6; } - case "$ac_cv_header_winsock_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINSOCK_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5 -$as_echo_n "checking for winsock2.h... " >&6; } -if test "${ac_cv_header_winsock2_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WINSOCK2_H shall not be defined. -#else - int dummy=2*IPPROTO_ESP; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winsock2_h="yes" - -else - - ac_cv_header_winsock2_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock2_h" >&5 -$as_echo "$ac_cv_header_winsock2_h" >&6; } - case "$ac_cv_header_winsock2_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINSOCK2_H 1 -_ACEOF - - ;; - esac - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in libraries" >&5 -$as_echo_n "checking for connect in libraries... " >&6; } - tst_connect_save_LIBS="$LIBS" - tst_connect_need_LIBS="unknown" - for tst_lib in '' '-lsocket' ; do - if test "$tst_connect_need_LIBS" = "unknown"; then - LIBS="$tst_lib $tst_connect_save_LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - #ifndef HAVE_WINDOWS_H - int connect(int, void*, int); - #endif - -int main (void) -{ - - if(0 != connect(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_connect_need_LIBS="$tst_lib" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - done - LIBS="$tst_connect_save_LIBS" - # - case X-"$tst_connect_need_LIBS" in - X-unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot find connect" >&5 -$as_echo "cannot find connect" >&6; } - as_fn_error "cannot find connect function in libraries." "$LINENO" 5 - ;; - X-) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_connect_need_LIBS" >&5 -$as_echo "$tst_connect_need_LIBS" >&6; } - LIBS="$tst_connect_need_LIBS $tst_connect_save_LIBS" - ;; - esac - - -CURL_NETWORK_LIBS=$LIBS - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if test "${ac_cv_header_time+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int main (void) -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - - - for ac_header in sys/types.h sys/time.h time.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for monotonic clock_gettime" >&5 -$as_echo_n "checking for monotonic clock_gettime... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif - -int main (void) -{ - - struct timespec ts; - (void)clock_gettime(CLOCK_MONOTONIC, &ts); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ac_cv_func_clock_gettime="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_clock_gettime="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - - # - if test "$ac_cv_func_clock_gettime" = "yes"; then - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in libraries" >&5 -$as_echo_n "checking for clock_gettime in libraries... " >&6; } - # - curl_cv_save_LIBS="$LIBS" - curl_cv_gclk_LIBS="unknown" - # - for x_xlibs in '' '-lrt' '-lposix4' ; do - if test "$curl_cv_gclk_LIBS" = "unknown"; then - if test -z "$x_xlibs"; then - LIBS="$curl_cv_save_LIBS" - else - LIBS="$x_xlibs $curl_cv_save_LIBS" - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif - -int main (void) -{ - - struct timespec ts; - (void)clock_gettime(CLOCK_MONOTONIC, &ts); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - curl_cv_gclk_LIBS="$x_xlibs" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - done - # - LIBS="$curl_cv_save_LIBS" - # - case X-"$curl_cv_gclk_LIBS" in - X-unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot find clock_gettime" >&5 -$as_echo "cannot find clock_gettime" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5 -$as_echo "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;} - ac_cv_func_clock_gettime="no" - ;; - X-) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no additional lib required" >&5 -$as_echo "no additional lib required" >&6; } - ac_cv_func_clock_gettime="yes" - ;; - *) - if test -z "$curl_cv_save_LIBS"; then - LIBS="$curl_cv_gclk_LIBS" - else - LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS" - fi - CURL_LIBS="$CURL_LIBS $curl_cv_gclk_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_gclk_LIBS" >&5 -$as_echo "$curl_cv_gclk_LIBS" >&6; } - ac_cv_func_clock_gettime="yes" - ;; - esac - # - if test "x$cross_compiling" != "xyes" && - test "$ac_cv_func_clock_gettime" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if monotonic clock_gettime works" >&5 -$as_echo_n "checking if monotonic clock_gettime works... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_STDLIB_H -#include -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif - -int main (void) -{ - - struct timespec ts; - if (0 == clock_gettime(CLOCK_MONOTONIC, &ts)) - exit(0); - else - exit(1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5 -$as_echo "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;} - ac_cv_func_clock_gettime="no" - LIBS="$curl_cv_save_LIBS" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - case "$ac_cv_func_clock_gettime" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_GETTIME_MONOTONIC 1 -_ACEOF - - ;; - esac - # - fi - # - - -TEST_SERVER_LIBS=$LIBS - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use libgcc" >&5 -$as_echo_n "checking whether to use libgcc... " >&6; } -# Check whether --enable-libgcc was given. -if test "${enable_libgcc+set}" = set; then : - enableval=$enable_libgcc; case "$enableval" in - yes) - ALL_LIBS="$ALL_LIBS -lgcc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -LDAPLIBNAME="" - -# Check whether --with-ldap-lib was given. -if test "${with_ldap_lib+set}" = set; then : - withval=$with_ldap_lib; LDAPLIBNAME="$withval" -fi - - -LBERLIBNAME="" - -# Check whether --with-lber-lib was given. -if test "${with_lber_lib+set}" = set; then : - withval=$with_lber_lib; LBERLIBNAME="$withval" -fi - - -if test x$CURL_DISABLE_LDAP != x1 ; then - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lber.h" >&5 -$as_echo_n "checking for lber.h... " >&6; } -if test "${ac_cv_header_lber_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#include - -int main (void) -{ - - BerValue *bvp = NULL; - BerElement *bep = ber_init(bvp); - ber_free(bep, 1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_lber_h="yes" - -else - - ac_cv_header_lber_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_lber_h" >&5 -$as_echo "$ac_cv_header_lber_h" >&6; } - if test "$ac_cv_header_lber_h" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_LBER_H 1 -_ACEOF - - # - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#include - -int main (void) -{ - - BerValue *bvp = NULL; - BerElement *bep = ber_init(bvp); - ber_free(bep, 1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_need_header_lber_h="no" - -else - - curl_cv_need_header_lber_h="yes" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # - case "$curl_cv_need_header_lber_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define NEED_LBER_H 1 -_ACEOF - - ;; - esac - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap.h" >&5 -$as_echo_n "checking for ldap.h... " >&6; } -if test "${ac_cv_header_ldap_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#include - -int main (void) -{ - - LDAP *ldp = ldap_init("dummy", LDAP_PORT); - int res = ldap_unbind(ldp); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_ldap_h="yes" - -else - - ac_cv_header_ldap_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ldap_h" >&5 -$as_echo "$ac_cv_header_ldap_h" >&6; } - case "$ac_cv_header_ldap_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_LDAP_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldapssl.h" >&5 -$as_echo_n "checking for ldapssl.h... " >&6; } -if test "${ac_cv_header_ldapssl_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#ifdef HAVE_LDAP_H -#include -#endif -#include - -int main (void) -{ - - char *cert_label = NULL; - LDAP *ldp = ldap_ssl_init("dummy", LDAPS_PORT, cert_label); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_ldapssl_h="yes" - -else - - ac_cv_header_ldapssl_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ldapssl_h" >&5 -$as_echo "$ac_cv_header_ldapssl_h" >&6; } - case "$ac_cv_header_ldapssl_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_LDAPSSL_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_ssl.h" >&5 -$as_echo_n "checking for ldap_ssl.h... " >&6; } -if test "${ac_cv_header_ldap_ssl_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#ifdef HAVE_LDAP_H -#include -#endif -#include - -int main (void) -{ - - LDAP *ldp = ldapssl_init("dummy", LDAPS_PORT, 1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_ldap_ssl_h="yes" - -else - - ac_cv_header_ldap_ssl_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ldap_ssl_h" >&5 -$as_echo "$ac_cv_header_ldap_ssl_h" >&6; } - case "$ac_cv_header_ldap_ssl_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_LDAP_SSL_H 1 -_ACEOF - - ;; - esac - - - if test -z "$LDAPLIBNAME" ; then - if test "$ac_cv_native_windows" = "yes"; then - LDAPLIBNAME="wldap32" - LBERLIBNAME="no" - fi - fi - - if test "$LDAPLIBNAME" ; then - as_ac_Lib=`$as_echo "ac_cv_lib_"$LDAPLIBNAME"''_ldap_init" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_init in -l\"$LDAPLIBNAME\"" >&5 -$as_echo_n "checking for ldap_init in -l\"$LDAPLIBNAME\"... " >&6; } -if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l"$LDAPLIBNAME" $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char ldap_init (); -int main (void) -{ -return ldap_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" -else - eval "$as_ac_Lib=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -eval as_val=\$$as_ac_Lib - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_LIB"$LDAPLIBNAME"" | $as_tr_cpp` 1 -_ACEOF - - LIBS="-l"$LDAPLIBNAME" $LIBS" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"$LDAPLIBNAME\" is not an LDAP library: LDAP disabled" >&5 -$as_echo "$as_me: WARNING: \"$LDAPLIBNAME\" is not an LDAP library: LDAP disabled" >&2;} - -$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h - - CURL_DISABLE_LDAP=1 - - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - -fi - - else - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LDAP libraries" >&5 -$as_echo_n "checking for LDAP libraries... " >&6; } - # - u_libs="" - # - - # - curl_cv_save_LIBS="$LIBS" - curl_cv_ldap_LIBS="unknown" - # - for x_nlibs in '' "$u_libs" \ - '-lldap' \ - '-llber -lldap' \ - '-lldap -llber' \ - '-lldapssl -lldapx -lldapsdk' \ - '-lldapsdk -lldapx -lldapssl' ; do - if test "$curl_cv_ldap_LIBS" = "unknown"; then - if test -z "$x_nlibs"; then - LIBS="$curl_cv_save_LIBS" - else - LIBS="$x_nlibs $curl_cv_save_LIBS" - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#ifdef HAVE_LDAP_H -#include -#endif - -int main (void) -{ - - BerValue *bvp = NULL; - BerElement *bep = ber_init(bvp); - LDAP *ldp = ldap_init("dummy", LDAP_PORT); - int res = ldap_unbind(ldp); - ber_free(bep, 1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - curl_cv_ldap_LIBS="$x_nlibs" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - done - # - LIBS="$curl_cv_save_LIBS" - # - case X-"$curl_cv_ldap_LIBS" in - X-unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot find LDAP libraries" >&5 -$as_echo "cannot find LDAP libraries" >&6; } - ;; - X-) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no additional lib required" >&5 -$as_echo "no additional lib required" >&6; } - ;; - *) - if test -z "$curl_cv_save_LIBS"; then - LIBS="$curl_cv_ldap_LIBS" - else - LIBS="$curl_cv_ldap_LIBS $curl_cv_save_LIBS" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_ldap_LIBS" >&5 -$as_echo "$curl_cv_ldap_LIBS" >&6; } - ;; - esac - # - - case X-"$curl_cv_ldap_LIBS" in - X-unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for LDAP support: LDAP disabled" >&5 -$as_echo "$as_me: WARNING: Cannot find libraries for LDAP support: LDAP disabled" >&2;} - -$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h - - CURL_DISABLE_LDAP=1 - - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - - ;; - esac - fi -fi - -if test x$CURL_DISABLE_LDAP != x1 ; then - - if test "$LBERLIBNAME" ; then - if test "$LBERLIBNAME" != "no" ; then - as_ac_Lib=`$as_echo "ac_cv_lib_"$LBERLIBNAME"''_ber_free" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ber_free in -l\"$LBERLIBNAME\"" >&5 -$as_echo_n "checking for ber_free in -l\"$LBERLIBNAME\"... " >&6; } -if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l"$LBERLIBNAME" $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char ber_free (); -int main (void) -{ -return ber_free (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" -else - eval "$as_ac_Lib=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -eval as_val=\$$as_ac_Lib - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_LIB"$LBERLIBNAME"" | $as_tr_cpp` 1 -_ACEOF - - LIBS="-l"$LBERLIBNAME" $LIBS" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"$LBERLIBNAME\" is not an LBER library: LDAP disabled" >&5 -$as_echo "$as_me: WARNING: \"$LBERLIBNAME\" is not an LBER library: LDAP disabled" >&2;} - -$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h - - CURL_DISABLE_LDAP=1 - - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - -fi - - fi - fi -fi - -if test x$CURL_DISABLE_LDAP != x1 ; then - for ac_func in ldap_url_parse ldap_init_fd -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - if test "$LDAPLIBNAME" = "wldap32"; then - curl_ldap_msg="enabled (winldap)" - -$as_echo "#define CURL_LDAP_WIN 1" >>confdefs.h - - else - curl_ldap_msg="enabled (OpenLDAP)" - if test "x$ac_cv_func_ldap_init_fd" = "xyes"; then - -$as_echo "#define USE_OPENLDAP 1" >>confdefs.h - - USE_OPENLDAP=1 - - fi - fi -fi - -if test x$CURL_DISABLE_LDAPS != x1 ; then - curl_ldaps_msg="enabled" -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable ipv6" >&5 -$as_echo_n "checking whether to enable ipv6... " >&6; } -# Check whether --enable-ipv6 was given. -if test "${enable_ipv6+set}" = set; then : - enableval=$enable_ipv6; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ipv6=no - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ipv6=yes - ;; - esac -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ipv6=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - /* is AF_INET6 available? */ -#include -#include -main() -{ - if (socket(AF_INET6, SOCK_STREAM, 0) < 0) - exit(1); - else - exit(0); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ipv6=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ipv6=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - -if test "$ipv6" = "yes"; then - curl_ipv6_msg="enabled" -fi - -# Check if struct sockaddr_in6 have sin6_scope_id member -if test "$ipv6" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if struct sockaddr_in6 has sin6_scope_id member" >&5 -$as_echo_n "checking if struct sockaddr_in6 has sin6_scope_id member... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -int main (void) -{ -struct sockaddr_in6 s; s.sin6_scope_id = 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - have_sin6_scope_id=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$have_sin6_scope_id" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1" >>confdefs.h - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if argv can be written to" >&5 -$as_echo_n "checking if argv can be written to... " >&6; } -if test "$cross_compiling" = yes; then : - - curl_cv_writable_argv=cross - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -int main(int argc, char ** argv) { - argv[0][0] = ' '; - return (argv[0][0] == ' ')?0:1; -} - - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - curl_cv_writable_argv=yes - -else - - curl_cv_writable_argv=no - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -case $curl_cv_writable_argv in -yes) - -$as_echo "#define HAVE_WRITABLE_ARGV 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; -no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; -*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: the previous check could not be made default was used" >&5 -$as_echo "$as_me: WARNING: the previous check could not be made default was used" >&2;} - ;; -esac - - - -# Check whether --with-krb4-includes was given. -if test "${with_krb4_includes+set}" = set; then : - withval=$with_krb4_includes; - CPPFLAGS="$CPPFLAGS -I$withval" - KRB4INC="$withval" - want_krb4=yes - -fi - - - -# Check whether --with-krb4-libs was given. -if test "${with_krb4_libs+set}" = set; then : - withval=$with_krb4_libs; - LDFLAGS="$LDFLAGS -L$withval" - KRB4LIB="$withval" - want_krb4=yes - -fi - - - -OPT_KRB4=off - -# Check whether --with-krb4 was given. -if test "${with_krb4+set}" = set; then : - withval=$with_krb4; - OPT_KRB4="$withval" - if test X"$OPT_KRB4" != Xno; then - want_krb4="yes" - if test X"$OPT_KRB4" != Xyes; then - LDFLAGS="$LDFLAGS -L$OPT_KRB4/lib$libsuff" - KRB4LIB="$OPT_KRB4/lib$libsuff" - CPPFLAGS="$CPPFLAGS -I$OPT_KRB4/include" - KRB4INC="$OPT_KRB4/include" - fi - fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Kerberos4 support is requested" >&5 -$as_echo_n "checking if Kerberos4 support is requested... " >&6; } - -if test "$want_krb4" = yes -then - if test "$ipv6" = "yes"; then - echo krb4 is not compatible with IPv6 - exit 1 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to look for Kerberos4" >&5 -$as_echo_n "checking where to look for Kerberos4... " >&6; } - if test X"$OPT_KRB4" = Xyes - then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaults" >&5 -$as_echo "defaults" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: libs in $KRB4LIB, headers in $KRB4INC" >&5 -$as_echo "libs in $KRB4LIB, headers in $KRB4INC" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for des_pcbc_encrypt in -ldes" >&5 -$as_echo_n "checking for des_pcbc_encrypt in -ldes... " >&6; } -if test "${ac_cv_lib_des_des_pcbc_encrypt+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldes $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char des_pcbc_encrypt (); -int main (void) -{ -return des_pcbc_encrypt (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_des_des_pcbc_encrypt=yes -else - ac_cv_lib_des_des_pcbc_encrypt=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_des_des_pcbc_encrypt" >&5 -$as_echo "$ac_cv_lib_des_des_pcbc_encrypt" >&6; } -if test "x$ac_cv_lib_des_des_pcbc_encrypt" = x""yes; then : - - for ac_header in des.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "des.h" "ac_cv_header_des_h" "$ac_includes_default" -if test "x$ac_cv_header_des_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DES_H 1 -_ACEOF - -fi - -done - - - ac_fn_c_check_func "$LINENO" "res_search" "ac_cv_func_res_search" -if test "x$ac_cv_func_res_search" = x""yes; then : - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 -$as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char res_search (); -int main (void) -{ -return res_search (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_resolv_res_search=yes -else - ac_cv_lib_resolv_res_search=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 -$as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRESOLV 1 -_ACEOF - - LIBS="-lresolv $LIBS" - -fi - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb_net_read in -lkrb" >&5 -$as_echo_n "checking for krb_net_read in -lkrb... " >&6; } -if test "${ac_cv_lib_krb_krb_net_read+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lkrb $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char krb_net_read (); -int main (void) -{ -return krb_net_read (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_krb_krb_net_read=yes -else - ac_cv_lib_krb_krb_net_read=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb_krb_net_read" >&5 -$as_echo "$ac_cv_lib_krb_krb_net_read" >&6; } -if test "x$ac_cv_lib_krb_krb_net_read" = x""yes; then : - - for ac_header in krb.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "krb.h" "ac_cv_header_krb_h" "$ac_includes_default" -if test "x$ac_cv_header_krb_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_KRB_H 1 -_ACEOF - -fi - -done - - - LIBS="-lkrb -lcom_err -ldes $LIBS" - - for ac_func in krb_get_our_ip_for_realm -do : - ac_fn_c_check_func "$LINENO" "krb_get_our_ip_for_realm" "ac_cv_func_krb_get_our_ip_for_realm" -if test "x$ac_cv_func_krb_get_our_ip_for_realm" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_KRB_GET_OUR_IP_FOR_REALM 1 -_ACEOF - -fi -done - - - -$as_echo "#define HAVE_KRB4 1" >>confdefs.h - - - KRB4_ENABLED=1 - - - curl_krb4_msg="enabled" - - for ac_func in strlcpy -do : - ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy" -if test "x$ac_cv_func_strlcpy" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_STRLCPY 1 -_ACEOF - -fi -done - - - -fi - - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -# Check whether --with-spnego was given. -if test "${with_spnego+set}" = set; then : - withval=$with_spnego; - SPNEGO_ROOT="$withval" - if test x"$SPNEGO_ROOT" != xno; then - want_spnego="yes" - fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if SPNEGO support is requested" >&5 -$as_echo_n "checking if SPNEGO support is requested... " >&6; } -if test x"$want_spnego" = xyes; then - - if test X"$SPNEGO_ROOT" = Xyes; then - as_fn_error "FBOpenSSL libs and/or directories were not found where specified!" "$LINENO" 5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - if test -z "$SPNEGO_LIB_DIR"; then - LDFLAGS="$LDFLAGS -L$SPNEGO_ROOT -lfbopenssl" - else - LDFLAGS="$LDFLAGS $SPNEGO_LIB_DIR" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_SPNEGO 1" >>confdefs.h - - curl_spnego_msg="enabled" - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -GSSAPI_ROOT="/usr" - -# Check whether --with-gssapi-includes was given. -if test "${with_gssapi_includes+set}" = set; then : - withval=$with_gssapi_includes; GSSAPI_INCS="-I$withval" - want_gss="yes" - -fi - - - -# Check whether --with-gssapi-libs was given. -if test "${with_gssapi_libs+set}" = set; then : - withval=$with_gssapi_libs; GSSAPI_LIB_DIR="-L$withval" - want_gss="yes" - -fi - - - -# Check whether --with-gssapi was given. -if test "${with_gssapi+set}" = set; then : - withval=$with_gssapi; - GSSAPI_ROOT="$withval" - if test x"$GSSAPI_ROOT" != xno; then - want_gss="yes" - if test x"$GSSAPI_ROOT" = xyes; then - GSSAPI_ROOT="/usr" - fi - fi - -fi - - -save_CPPFLAGS="$CPPFLAGS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if GSSAPI support is requested" >&5 -$as_echo_n "checking if GSSAPI support is requested... " >&6; } -if test x"$want_gss" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -z "$GSSAPI_INCS"; then - if test -f "$GSSAPI_ROOT/bin/krb5-config"; then - GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi` - elif test "$GSSAPI_ROOT" != "yes"; then - GSSAPI_INCS="-I$GSSAPI_ROOT/include" - fi - fi - - CPPFLAGS="$CPPFLAGS $GSSAPI_INCS" - - ac_fn_c_check_header_mongrel "$LINENO" "gss.h" "ac_cv_header_gss_h" "$ac_includes_default" -if test "x$ac_cv_header_gss_h" = x""yes; then : - - -$as_echo "#define HAVE_GSSGNU 1" >>confdefs.h - - gnu_gss=yes - -else - - for ac_header in gssapi/gssapi.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "gssapi/gssapi.h" "ac_cv_header_gssapi_gssapi_h" "$ac_includes_default" -if test "x$ac_cv_header_gssapi_gssapi_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GSSAPI_GSSAPI_H 1 -_ACEOF - -else - not_mit=1 -fi - -done - - for ac_header in gssapi/gssapi_generic.h gssapi/gssapi_krb5.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" " -$ac_includes_default -#ifdef HAVE_GSSAPI_GSSAPI_H -#include -#endif - -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -else - not_mit=1 -fi - -done - - if test "x$not_mit" = "x1"; then - ac_fn_c_check_header_mongrel "$LINENO" "gssapi.h" "ac_cv_header_gssapi_h" "$ac_includes_default" -if test "x$ac_cv_header_gssapi_h" = x""yes; then : - - -$as_echo "#define HAVE_GSSHEIMDAL 1" >>confdefs.h - - -else - - want_gss=no - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling GSSAPI since no header files was found" >&5 -$as_echo "$as_me: WARNING: disabling GSSAPI since no header files was found" >&2;} - - -fi - - - else - -$as_echo "#define HAVE_GSSMIT 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE" >&5 -$as_echo_n "checking if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include -#include -#include - -int main (void) -{ - - gss_import_name( - (OM_uint32 *)0, - (gss_buffer_t)0, - GSS_C_NT_HOSTBASED_SERVICE, - (gss_name_t *)0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define HAVE_OLD_GSSMIT 1" >>confdefs.h - - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - -fi - - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -if test x"$want_gss" = xyes; then - -$as_echo "#define HAVE_GSSAPI 1" >>confdefs.h - - - curl_gss_msg="enabled (MIT/Heimdal)" - - if test -n "$gnu_gss"; then - curl_gss_msg="enabled (GNU GSS)" - LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" - LIBS="$LIBS -lgss" - elif test -z "$GSSAPI_LIB_DIR"; then - case $host in - *-*-darwin*) - LIBS="$LIBS -lgssapi_krb5 -lresolv" - ;; - *) - if test -f "$GSSAPI_ROOT/bin/krb5-config"; then - gss_libs=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi` - LIBS="$LIBS $gss_libs" - elif test "$GSSAPI_ROOT" != "yes"; then - LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff" - LIBS="$LIBS -lgssapi" - else - LIBS="$LIBS -lgssapi" - fi - ;; - esac - else - LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" - LIBS="$LIBS -lgssapi" - fi -else - CPPFLAGS="$save_CPPFLAGS" -fi - - -OPT_WINSSL=no - -# Check whether --with-winssl was given. -if test "${with_winssl+set}" = set; then : - withval=$with_winssl; OPT_WINSSL=$withval -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Windows native SSL/TLS (Windows native builds only)" >&5 -$as_echo_n "checking whether to enable Windows native SSL/TLS (Windows native builds only)... " >&6; } -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - if test "x$OPT_WINSSL" != "xno" && - test "x$ac_cv_native_windows" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define USE_SCHANNEL 1" >>confdefs.h - - USE_SCHANNEL=1 - - curl_ssl_msg="enabled (Windows-native)" - WINSSL_ENABLED=1 - # --with-winssl implies --enable-sspi - -$as_echo "#define USE_WINDOWS_SSPI 1" >>confdefs.h - - USE_WINDOWS_SSPI=1 - - curl_sspi_msg="enabled" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -OPT_DARWINSSL=no - -# Check whether --with-darwinssl was given. -if test "${with_darwinssl+set}" = set; then : - withval=$with_darwinssl; OPT_DARWINSSL=$withval -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable iOS/Mac OS X native SSL/TLS" >&5 -$as_echo_n "checking whether to enable iOS/Mac OS X native SSL/TLS... " >&6; } -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - if test "x$OPT_DARWINSSL" != "xno" && - test -d "/System/Library/Frameworks/Security.framework"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define USE_DARWINSSL 1" >>confdefs.h - - USE_DARWINSSL=1 - - curl_ssl_msg="enabled (iOS/Mac OS X-native)" - DARWINSSL_ENABLED=1 - LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -OPT_SSL=off -ca="no" - -# Check whether --with-ssl was given. -if test "${with_ssl+set}" = set; then : - withval=$with_ssl; OPT_SSL=$withval -fi - - -if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_SSL" in - yes) - if test x$cross_compiling != xyes; then - PKGTEST="yes" - fi - PREFIX_OPENSSL=/usr/local/ssl - LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff" - ;; - off) - if test x$cross_compiling != xyes; then - PKGTEST="yes" - fi - PREFIX_OPENSSL= - ;; - *) - PKGTEST="no" - PREFIX_OPENSSL=$OPT_SSL - - OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig" - { $as_echo "$as_me:${as_lineno-$LINENO}: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&5 -$as_echo "$as_me: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&6;} - if test -f "$OPENSSL_PCDIR/openssl.pc"; then - PKGTEST="yes" - fi - - LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff" - if test "$PREFIX_OPENSSL" != "/usr" ; then - SSL_LDFLAGS="-L$LIB_OPENSSL" - SSL_CPPFLAGS="-I$PREFIX_OPENSSL/include" - fi - SSL_CPPFLAGS="$SSL_CPPFLAGS -I$PREFIX_OPENSSL/include/openssl" - ;; - esac - - if test "$PKGTEST" = "yes"; then - - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl options with pkg-config" >&5 -$as_echo_n "checking for openssl options with pkg-config... " >&6; } - itexists=` - if test -n "$OPENSSL_PCDIR"; then - PKG_CONFIG_LIBDIR="$OPENSSL_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists openssl >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - - if test "$PKGCONFIG" != "no" ; then - SSL_LIBS=` - if test -n "$OPENSSL_PCDIR"; then - PKG_CONFIG_LIBDIR="$OPENSSL_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --libs-only-l openssl 2>/dev/null` - - SSL_LDFLAGS=` - if test -n "$OPENSSL_PCDIR"; then - PKG_CONFIG_LIBDIR="$OPENSSL_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --libs-only-L openssl 2>/dev/null` - - SSL_CPPFLAGS=` - if test -n "$OPENSSL_PCDIR"; then - PKG_CONFIG_LIBDIR="$OPENSSL_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --cflags-only-I openssl 2>/dev/null` - - { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&5 -$as_echo "$as_me: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LDFLAGS: \"$SSL_LDFLAGS\"" >&5 -$as_echo "$as_me: pkg-config: SSL_LDFLAGS: \"$SSL_LDFLAGS\"" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_CPPFLAGS: \"$SSL_CPPFLAGS\"" >&5 -$as_echo "$as_me: pkg-config: SSL_CPPFLAGS: \"$SSL_CPPFLAGS\"" >&6;} - - LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'` - - LIBS="$LIBS $SSL_LIBS" - fi - fi - - CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS" - LDFLAGS="$LDFLAGS $SSL_LDFLAGS" - - case $host in - *-*-msys* | *-*-mingw*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdi32" >&5 -$as_echo_n "checking for gdi32... " >&6; } - my_ac_save_LIBS=$LIBS - LIBS="-lgdi32 $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include -int main (void) -{ -GdiFlush(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - LIBS=$my_ac_save_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRYPTO_lock in -lcrypto" >&5 -$as_echo_n "checking for CRYPTO_lock in -lcrypto... " >&6; } -if test "${ac_cv_lib_crypto_CRYPTO_lock+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcrypto $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char CRYPTO_lock (); -int main (void) -{ -return CRYPTO_lock (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_crypto_CRYPTO_lock=yes -else - ac_cv_lib_crypto_CRYPTO_lock=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_CRYPTO_lock" >&5 -$as_echo "$ac_cv_lib_crypto_CRYPTO_lock" >&6; } -if test "x$ac_cv_lib_crypto_CRYPTO_lock" = x""yes; then : - - HAVECRYPTO="yes" - LIBS="-lcrypto $LIBS" - -else - - LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL" - CPPFLAGS="$CLEANCPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRYPTO_add_lock in -lcrypto" >&5 -$as_echo_n "checking for CRYPTO_add_lock in -lcrypto... " >&6; } -if test "${ac_cv_lib_crypto_CRYPTO_add_lock+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcrypto $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char CRYPTO_add_lock (); -int main (void) -{ -return CRYPTO_add_lock (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_crypto_CRYPTO_add_lock=yes -else - ac_cv_lib_crypto_CRYPTO_add_lock=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_CRYPTO_add_lock" >&5 -$as_echo "$ac_cv_lib_crypto_CRYPTO_add_lock" >&6; } -if test "x$ac_cv_lib_crypto_CRYPTO_add_lock" = x""yes; then : - - HAVECRYPTO="yes" - LIBS="-lcrypto $LIBS" -else - - LDFLAGS="$CLEANLDFLAGS" - CPPFLAGS="$CLEANCPPFLAGS" - LIBS="$CLEANLIBS" - -fi - - -fi - - - - if test X"$HAVECRYPTO" = X"yes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_connect in -lssl" >&5 -$as_echo_n "checking for SSL_connect in -lssl... " >&6; } -if test "${ac_cv_lib_ssl_SSL_connect+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lssl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char SSL_connect (); -int main (void) -{ -return SSL_connect (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ssl_SSL_connect=yes -else - ac_cv_lib_ssl_SSL_connect=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_connect" >&5 -$as_echo "$ac_cv_lib_ssl_SSL_connect" >&6; } -if test "x$ac_cv_lib_ssl_SSL_connect" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSSL 1 -_ACEOF - - LIBS="-lssl $LIBS" - -fi - - - if test "$ac_cv_lib_ssl_SSL_connect" != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssl with RSAglue/rsaref libs in use" >&5 -$as_echo_n "checking for ssl with RSAglue/rsaref libs in use... " >&6; }; - OLIBS=$LIBS - LIBS="$LIBS -lRSAglue -lrsaref" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_connect in -lssl" >&5 -$as_echo_n "checking for SSL_connect in -lssl... " >&6; } -if test "${ac_cv_lib_ssl_SSL_connect+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lssl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char SSL_connect (); -int main (void) -{ -return SSL_connect (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ssl_SSL_connect=yes -else - ac_cv_lib_ssl_SSL_connect=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_connect" >&5 -$as_echo "$ac_cv_lib_ssl_SSL_connect" >&6; } -if test "x$ac_cv_lib_ssl_SSL_connect" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSSL 1 -_ACEOF - - LIBS="-lssl $LIBS" - -fi - - if test "$ac_cv_lib_ssl_SSL_connect" != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - LIBS=$OLIBS - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi - - else - - for ac_header in openssl/x509.h openssl/rsa.h openssl/crypto.h \ - openssl/pem.h openssl/ssl.h openssl/err.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - curl_ssl_msg="enabled (OpenSSL)" - OPENSSL_ENABLED=1 - -$as_echo "#define USE_OPENSSL 1" >>confdefs.h - -fi - -done - - - if test $ac_cv_header_openssl_x509_h = no; then - for ac_header in x509.h rsa.h crypto.h pem.h ssl.h err.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - if test $ac_cv_header_x509_h = yes && - test $ac_cv_header_crypto_h = yes && - test $ac_cv_header_ssl_h = yes; then - curl_ssl_msg="enabled (OpenSSL)" - OPENSSL_ENABLED=1 - fi - fi - fi - - if test X"$OPENSSL_ENABLED" = X"1"; then - -$as_echo "#define USE_SSLEAY 1" >>confdefs.h - - - for ac_header in openssl/pkcs12.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "openssl/pkcs12.h" "ac_cv_header_openssl_pkcs12_h" "$ac_includes_default" -if test "x$ac_cv_header_openssl_pkcs12_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPENSSL_PKCS12_H 1 -_ACEOF - -fi - -done - - else - LIBS="$CLEANLIBS" - fi - USE_SSLEAY="$OPENSSL_ENABLED" - - - if test X"$OPT_SSL" != Xoff && - test "$OPENSSL_ENABLED" != "1"; then - as_fn_error "OpenSSL libs and/or directories were not found where specified!" "$LINENO" 5 - fi - fi - - if test X"$OPENSSL_ENABLED" = X"1"; then - ac_fn_c_check_func "$LINENO" "ENGINE_init" "ac_cv_func_ENGINE_init" -if test "x$ac_cv_func_ENGINE_init" = x""yes; then : - - for ac_header in openssl/engine.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "openssl/engine.h" "ac_cv_header_openssl_engine_h" "$ac_includes_default" -if test "x$ac_cv_header_openssl_engine_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPENSSL_ENGINE_H 1 -_ACEOF - -fi - -done - - for ac_func in ENGINE_load_builtin_engines -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -fi - - - - for ac_func in RAND_status \ - RAND_screen \ - RAND_egd \ - ENGINE_cleanup \ - CRYPTO_cleanup_all_ex_data \ - SSL_get_shutdown \ - SSLv2_client_method -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yaSSL using OpenSSL compatibility mode" >&5 -$as_echo_n "checking for yaSSL using OpenSSL compatibility mode... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - -#if defined(YASSL_VERSION) && defined(OPENSSL_VERSION_NUMBER) - int dummy = SSL_ERROR_NONE; -#else - Not the yaSSL OpenSSL compatibility header. -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define USE_YASSLEMUL 1 -_ACEOF - - curl_ssl_msg="enabled (OpenSSL emulation by yaSSL)" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - if test "$OPENSSL_ENABLED" = "1"; then - if test -n "$LIB_OPENSSL"; then - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $LIB_OPENSSL to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $LIB_OPENSSL to LD_LIBRARY_PATH" >&6;} - fi - fi - - # - - # - tst_api="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL headers version" >&5 -$as_echo_n "checking for OpenSSL headers version... " >&6; } - - if test -z "$SED"; then - as_fn_error "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# ifdef USE_OPENSSL -# include -# else -# include -# endif - -#ifdef OPENSSL_VERSION_NUMBER -CURL_DEF_TOKEN OPENSSL_VERSION_NUMBER -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "OPENSSL_VERSION_NUMBER"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def_OPENSSL_VERSION_NUMBER=no - - else - curl_cv_have_def_OPENSSL_VERSION_NUMBER=yes - curl_cv_def_OPENSSL_VERSION_NUMBER=$tmp_exp - - fi - - if test "$curl_cv_have_def_OPENSSL_VERSION_NUMBER" = "yes"; then - tst_verlen=`expr "$curl_cv_def_OPENSSL_VERSION_NUMBER" : '.*'` - case "x$tst_verlen" in - x6) - tst_vermaj=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 3` - tst_vermin=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 4` - tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5` - tst_api=0x$tst_vermaj$tst_vermin$tst_verfix - ;; - x11|x10) - tst_vermaj=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 3` - tst_vermin=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5` - tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 7` - tst_api=0x$tst_vermaj$tst_vermin$tst_verfix - ;; - *) - tst_api="unknown" - ;; - esac - case $tst_api in - 0x110) tst_show="1.1.0" ;; - 0x101) tst_show="1.0.1" ;; - 0x100) tst_show="1.0.0" ;; - 0x099) tst_show="0.9.9" ;; - 0x098) tst_show="0.9.8" ;; - 0x097) tst_show="0.9.7" ;; - 0x096) tst_show="0.9.6" ;; - 0x095) tst_show="0.9.5" ;; - 0x094) tst_show="0.9.4" ;; - 0x093) tst_show="0.9.3" ;; - 0x092) tst_show="0.9.2" ;; - 0x091) tst_show="0.9.1" ;; - *) tst_show="unknown" ;; - esac - tst_show="$tst_show - $curl_cv_def_OPENSSL_VERSION_NUMBER" - else - tst_show="unknown" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_show" >&5 -$as_echo "$tst_show" >&6; } - # - curl_openssl_api_headers=$tst_api - - - # - tst_api="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL library version" >&5 -$as_echo_n "checking for OpenSSL library version... " >&6; } - if test "$tst_api" = "unknown"; then - case $host in - *-*-vms*) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define SSL_CTX_set_not_resumbl_sess_cb innocuous_SSL_CTX_set_not_resumbl_sess_cb -#ifdef __STDC__ -# include -#else -# include -#endif -#undef SSL_CTX_set_not_resumbl_sess_cb -#ifdef __cplusplus -extern "C" -#endif -char SSL_CTX_set_not_resumbl_sess_cb (); -#if defined __stub_SSL_CTX_set_not_resumbl_sess_cb || defined __stub___SSL_CTX_set_not_resumbl_sess_cb -choke me -#endif - -int main (void) -{ -return SSL_CTX_set_not_resumbl_sess_cb (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x110" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ;; - *) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define SSL_CTX_set_not_resumable_session_callback innocuous_SSL_CTX_set_not_resumable_session_callback -#ifdef __STDC__ -# include -#else -# include -#endif -#undef SSL_CTX_set_not_resumable_session_callback -#ifdef __cplusplus -extern "C" -#endif -char SSL_CTX_set_not_resumable_session_callback (); -#if defined __stub_SSL_CTX_set_not_resumable_session_callback || defined __stub___SSL_CTX_set_not_resumable_session_callback -choke me -#endif - -int main (void) -{ -return SSL_CTX_set_not_resumable_session_callback (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x110" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ;; - esac - fi - if test "$tst_api" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define SSL_renegotiate_abbreviated innocuous_SSL_renegotiate_abbreviated -#ifdef __STDC__ -# include -#else -# include -#endif -#undef SSL_renegotiate_abbreviated -#ifdef __cplusplus -extern "C" -#endif -char SSL_renegotiate_abbreviated (); -#if defined __stub_SSL_renegotiate_abbreviated || defined __stub___SSL_renegotiate_abbreviated -choke me -#endif - -int main (void) -{ -return SSL_renegotiate_abbreviated (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x101" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$tst_api" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define OBJ_add_sigid innocuous_OBJ_add_sigid -#ifdef __STDC__ -# include -#else -# include -#endif -#undef OBJ_add_sigid -#ifdef __cplusplus -extern "C" -#endif -char OBJ_add_sigid (); -#if defined __stub_OBJ_add_sigid || defined __stub___OBJ_add_sigid -choke me -#endif - -int main (void) -{ -return OBJ_add_sigid (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x100" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$tst_api" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define ERR_set_mark innocuous_ERR_set_mark -#ifdef __STDC__ -# include -#else -# include -#endif -#undef ERR_set_mark -#ifdef __cplusplus -extern "C" -#endif -char ERR_set_mark (); -#if defined __stub_ERR_set_mark || defined __stub___ERR_set_mark -choke me -#endif - -int main (void) -{ -return ERR_set_mark (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x098" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$tst_api" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define ERR_peek_last_error innocuous_ERR_peek_last_error -#ifdef __STDC__ -# include -#else -# include -#endif -#undef ERR_peek_last_error -#ifdef __cplusplus -extern "C" -#endif -char ERR_peek_last_error (); -#if defined __stub_ERR_peek_last_error || defined __stub___ERR_peek_last_error -choke me -#endif - -int main (void) -{ -return ERR_peek_last_error (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x097" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$tst_api" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define c2i_ASN1_OBJECT innocuous_c2i_ASN1_OBJECT -#ifdef __STDC__ -# include -#else -# include -#endif -#undef c2i_ASN1_OBJECT -#ifdef __cplusplus -extern "C" -#endif -char c2i_ASN1_OBJECT (); -#if defined __stub_c2i_ASN1_OBJECT || defined __stub___c2i_ASN1_OBJECT -choke me -#endif - -int main (void) -{ -return c2i_ASN1_OBJECT (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x096" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$tst_api" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define SSL_CTX_set_purpose innocuous_SSL_CTX_set_purpose -#ifdef __STDC__ -# include -#else -# include -#endif -#undef SSL_CTX_set_purpose -#ifdef __cplusplus -extern "C" -#endif -char SSL_CTX_set_purpose (); -#if defined __stub_SSL_CTX_set_purpose || defined __stub___SSL_CTX_set_purpose -choke me -#endif - -int main (void) -{ -return SSL_CTX_set_purpose (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x095" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$tst_api" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define OBJ_obj2txt innocuous_OBJ_obj2txt -#ifdef __STDC__ -# include -#else -# include -#endif -#undef OBJ_obj2txt -#ifdef __cplusplus -extern "C" -#endif -char OBJ_obj2txt (); -#if defined __stub_OBJ_obj2txt || defined __stub___OBJ_obj2txt -choke me -#endif - -int main (void) -{ -return OBJ_obj2txt (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x094" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$tst_api" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define SSL_get_verify_depth innocuous_SSL_get_verify_depth -#ifdef __STDC__ -# include -#else -# include -#endif -#undef SSL_get_verify_depth -#ifdef __cplusplus -extern "C" -#endif -char SSL_get_verify_depth (); -#if defined __stub_SSL_get_verify_depth || defined __stub___SSL_get_verify_depth -choke me -#endif - -int main (void) -{ -return SSL_get_verify_depth (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x093" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$tst_api" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define SSL_library_init innocuous_SSL_library_init -#ifdef __STDC__ -# include -#else -# include -#endif -#undef SSL_library_init -#ifdef __cplusplus -extern "C" -#endif -char SSL_library_init (); -#if defined __stub_SSL_library_init || defined __stub___SSL_library_init -choke me -#endif - -int main (void) -{ -return SSL_library_init (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x092" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$tst_api" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define SSL_CTX_set_cipher_list innocuous_SSL_CTX_set_cipher_list -#ifdef __STDC__ -# include -#else -# include -#endif -#undef SSL_CTX_set_cipher_list -#ifdef __cplusplus -extern "C" -#endif -char SSL_CTX_set_cipher_list (); -#if defined __stub_SSL_CTX_set_cipher_list || defined __stub___SSL_CTX_set_cipher_list -choke me -#endif - -int main (void) -{ -return SSL_CTX_set_cipher_list (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_api="0x091" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - case $tst_api in - 0x110) tst_show="1.1.0" ;; - 0x101) tst_show="1.0.1" ;; - 0x100) tst_show="1.0.0" ;; - 0x099) tst_show="0.9.9" ;; - 0x098) tst_show="0.9.8" ;; - 0x097) tst_show="0.9.7" ;; - 0x096) tst_show="0.9.6" ;; - 0x095) tst_show="0.9.5" ;; - 0x094) tst_show="0.9.4" ;; - 0x093) tst_show="0.9.3" ;; - 0x092) tst_show="0.9.2" ;; - 0x091) tst_show="0.9.1" ;; - *) tst_show="unknown" ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_show" >&5 -$as_echo "$tst_show" >&6; } - # - curl_openssl_api_library=$tst_api - - # - tst_match="yes" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL headers and library versions matching" >&5 -$as_echo_n "checking for OpenSSL headers and library versions matching... " >&6; } - if test "$curl_openssl_api_headers" = "unknown" || - test "$curl_openssl_api_library" = "unknown"; then - tst_match="fail" - tst_warns="Can not compare OpenSSL headers and library versions." - elif test "$curl_openssl_api_headers" != "$curl_openssl_api_library"; then - tst_match="no" - tst_warns="OpenSSL headers and library versions do not match." - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_match" >&5 -$as_echo "$tst_match" >&6; } - if test "$tst_match" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $tst_warns" >&5 -$as_echo "$as_me: WARNING: $tst_warns" >&2;} - fi - - fi - -fi - - - -_cppflags=$CPPFLAGS -_ldflags=$LDFLAGS - -# Check whether --with-zlib was given. -if test "${with_zlib+set}" = set; then : - withval=$with_zlib; OPT_ZLIB="$withval" -fi - - -if test "$OPT_ZLIB" = "no" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: zlib disabled" >&5 -$as_echo "$as_me: WARNING: zlib disabled" >&2;} -else - if test "$OPT_ZLIB" = "yes" ; then - OPT_ZLIB="" - fi - - if test -z "$OPT_ZLIB" ; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateEnd in -lz" >&5 -$as_echo_n "checking for inflateEnd in -lz... " >&6; } -if test "${ac_cv_lib_z_inflateEnd+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char inflateEnd (); -int main (void) -{ -return inflateEnd (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_inflateEnd=yes -else - ac_cv_lib_z_inflateEnd=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateEnd" >&5 -$as_echo "$ac_cv_lib_z_inflateEnd" >&6; } -if test "x$ac_cv_lib_z_inflateEnd" = x""yes; then : - HAVE_LIBZ="1" -else - OPT_ZLIB="/usr/local" -fi - - - fi - - if test -n "$OPT_ZLIB"; then - CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include" - LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff" - fi - - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = x""yes; then : - - HAVE_ZLIB_H="1" - if test "$HAVE_LIBZ" != "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 -$as_echo_n "checking for gzread in -lz... " >&6; } -if test "${ac_cv_lib_z_gzread+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gzread (); -int main (void) -{ -return gzread (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_gzread=yes -else - ac_cv_lib_z_gzread=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 -$as_echo "$ac_cv_lib_z_gzread" >&6; } -if test "x$ac_cv_lib_z_gzread" = x""yes; then : - - HAVE_LIBZ="1" - -else - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags -fi - - fi - -else - - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags - -fi - - - - if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configure found only the libz lib, not the header file!" >&5 -$as_echo "$as_me: WARNING: configure found only the libz lib, not the header file!" >&2;} - HAVE_LIBZ="" - elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configure found only the libz header file, not the lib!" >&5 -$as_echo "$as_me: WARNING: configure found only the libz header file, not the lib!" >&2;} - elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1" - then - - -$as_echo "#define HAVE_ZLIB_H 1" >>confdefs.h - - -$as_echo "#define HAVE_LIBZ 1" >>confdefs.h - - - CURL_LIBS="$CURL_LIBS -lz" - LIBS="$LIBS -lz" - - AMFIXLIB="1" - { $as_echo "$as_me:${as_lineno-$LINENO}: found both libz and libz.h header" >&5 -$as_echo "$as_me: found both libz and libz.h header" >&6;} - curl_zlib_msg="enabled" - fi -fi - - - -if test x"$AMFIXLIB" = x1; then - HAVE_LIBZ_TRUE= - HAVE_LIBZ_FALSE='#' -else - HAVE_LIBZ_TRUE='#' - HAVE_LIBZ_FALSE= -fi - - - -if test X"$OPENSSL_ENABLED" = X"1"; then - -# Check whether --with-egd-socket was given. -if test "${with_egd_socket+set}" = set; then : - withval=$with_egd_socket; EGD_SOCKET="$withval" - -fi - - if test -n "$EGD_SOCKET" ; then - -cat >>confdefs.h <<_ACEOF -#define EGD_SOCKET "$EGD_SOCKET" -_ACEOF - - fi - - -# Check whether --with-random was given. -if test "${with_random+set}" = set; then : - withval=$with_random; RANDOM_FILE="$withval" -else - - if test x$cross_compiling != xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"/dev/urandom\"" >&5 -$as_echo_n "checking for \"/dev/urandom\"... " >&6; } -if test "${ac_cv_file___dev_urandom_+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - test "$cross_compiling" = yes && - as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 -if test -r ""/dev/urandom""; then - ac_cv_file___dev_urandom_=yes -else - ac_cv_file___dev_urandom_=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file___dev_urandom_" >&5 -$as_echo "$ac_cv_file___dev_urandom_" >&6; } -if test "x$ac_cv_file___dev_urandom_" = x""yes; then : - RANDOM_FILE="/dev/urandom" -fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: skipped the /dev/urandom detection when cross-compiling" >&5 -$as_echo "$as_me: WARNING: skipped the /dev/urandom detection when cross-compiling" >&2;} - fi - - -fi - - if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then - - -cat >>confdefs.h <<_ACEOF -#define RANDOM_FILE "$RANDOM_FILE" -_ACEOF - - fi -fi - -if test "$OPENSSL_ENABLED" = "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SRP_Calc_client_key in -lcrypto" >&5 -$as_echo_n "checking for SRP_Calc_client_key in -lcrypto... " >&6; } -if test "${ac_cv_lib_crypto_SRP_Calc_client_key+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcrypto $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char SRP_Calc_client_key (); -int main (void) -{ -return SRP_Calc_client_key (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_crypto_SRP_Calc_client_key=yes -else - ac_cv_lib_crypto_SRP_Calc_client_key=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_SRP_Calc_client_key" >&5 -$as_echo "$ac_cv_lib_crypto_SRP_Calc_client_key" >&6; } -if test "x$ac_cv_lib_crypto_SRP_Calc_client_key" = x""yes; then : - - -$as_echo "#define HAVE_SSLEAY_SRP 1" >>confdefs.h - - HAVE_SSLEAY_SRP=1 - - -fi - -fi - - -OPT_GNUTLS=no - - -# Check whether --with-gnutls was given. -if test "${with_gnutls+set}" = set; then : - withval=$with_gnutls; OPT_GNUTLS=$withval -fi - - -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - - if test X"$OPT_GNUTLS" != Xno; then - - addld="" - if test "x$OPT_GNUTLS" = "xyes"; then - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls options with pkg-config" >&5 -$as_echo_n "checking for gnutls options with pkg-config... " >&6; } - itexists=` - if test -n ""; then - PKG_CONFIG_LIBDIR="" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists gnutls >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - - if test "$PKGCONFIG" != "no" ; then - addlib=`$PKGCONFIG --libs-only-l gnutls` - addld=`$PKGCONFIG --libs-only-L gnutls` - addcflags=`$PKGCONFIG --cflags-only-I gnutls` - version=`$PKGCONFIG --modversion gnutls` - gtlslib=`echo $addld | $SED -e 's/-L//'` - else - check=`libgnutls-config --version 2>/dev/null` - if test -n "$check"; then - addlib=`libgnutls-config --libs` - addcflags=`libgnutls-config --cflags` - version=`libgnutls-config --version` - gtlslib=`libgnutls-config --prefix`/lib$libsuff - fi - fi - else - cfg=$OPT_GNUTLS/bin/libgnutls-config - check=`$cfg --version 2>/dev/null` - if test -n "$check"; then - addlib=`$cfg --libs` - addcflags=`$cfg --cflags` - version=`$cfg --version` - gtlslib=`$cfg --prefix`/lib$libsuff - else - addlib=-lgnutls - addld=-L$OPT_GNUTLS/lib$libsuff - addcflags=-I$OPT_GNUTLS/include - version="" # we just don't know - gtlslib=$OPT_GNUTLS/lib$libsuff - fi - fi - - if test -z "$version"; then - version="unknown" - fi - - if test -n "$addlib"; then - - CLEANLIBS="$LIBS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEADLDFLAGS="$LDFLAGS" - - LIBS="$LIBS $addlib" - LDFLAGS="$LDFLAGS $addld" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_check_version in -lgnutls" >&5 -$as_echo_n "checking for gnutls_check_version in -lgnutls... " >&6; } -if test "${ac_cv_lib_gnutls_gnutls_check_version+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgnutls $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gnutls_check_version (); -int main (void) -{ -return gnutls_check_version (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gnutls_gnutls_check_version=yes -else - ac_cv_lib_gnutls_gnutls_check_version=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_check_version" >&5 -$as_echo "$ac_cv_lib_gnutls_gnutls_check_version" >&6; } -if test "x$ac_cv_lib_gnutls_gnutls_check_version" = x""yes; then : - - -$as_echo "#define USE_GNUTLS 1" >>confdefs.h - - USE_GNUTLS=1 - - GNUTLS_ENABLED=1 - USE_GNUTLS="yes" - curl_ssl_msg="enabled (GnuTLS)" - -else - - LIBS="$CLEANLIBS" - CPPFLAGS="$CLEANCPPFLAGS" - -fi - - - if test "x$USE_GNUTLS" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: detected GnuTLS version $version" >&5 -$as_echo "$as_me: detected GnuTLS version $version" >&6;} - - if test -n "$gtlslib"; then - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $gtlslib to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $gtlslib to LD_LIBRARY_PATH" >&6;} - fi - fi - fi - - fi - - fi -fi - - -if test "$GNUTLS_ENABLED" = "1"; then - USE_GNUTLS_NETTLE= - # First check if we can detect either crypto library via transitive linking - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nettle_MD5Init in -lgnutls" >&5 -$as_echo_n "checking for nettle_MD5Init in -lgnutls... " >&6; } -if test "${ac_cv_lib_gnutls_nettle_MD5Init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgnutls $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char nettle_MD5Init (); -int main (void) -{ -return nettle_MD5Init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gnutls_nettle_MD5Init=yes -else - ac_cv_lib_gnutls_nettle_MD5Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_nettle_MD5Init" >&5 -$as_echo "$ac_cv_lib_gnutls_nettle_MD5Init" >&6; } -if test "x$ac_cv_lib_gnutls_nettle_MD5Init" = x""yes; then : - USE_GNUTLS_NETTLE=1 -fi - - if test "$USE_GNUTLS_NETTLE" = ""; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcry_control in -lgnutls" >&5 -$as_echo_n "checking for gcry_control in -lgnutls... " >&6; } -if test "${ac_cv_lib_gnutls_gcry_control+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgnutls $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gcry_control (); -int main (void) -{ -return gcry_control (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gnutls_gcry_control=yes -else - ac_cv_lib_gnutls_gcry_control=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gcry_control" >&5 -$as_echo "$ac_cv_lib_gnutls_gcry_control" >&6; } -if test "x$ac_cv_lib_gnutls_gcry_control" = x""yes; then : - USE_GNUTLS_NETTLE=0 -fi - - fi - # If not, try linking directly to both of them to see if they are available - if test "$USE_GNUTLS_NETTLE" = ""; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nettle_MD5Init in -lnettle" >&5 -$as_echo_n "checking for nettle_MD5Init in -lnettle... " >&6; } -if test "${ac_cv_lib_nettle_nettle_MD5Init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnettle $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char nettle_MD5Init (); -int main (void) -{ -return nettle_MD5Init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nettle_nettle_MD5Init=yes -else - ac_cv_lib_nettle_nettle_MD5Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nettle_nettle_MD5Init" >&5 -$as_echo "$ac_cv_lib_nettle_nettle_MD5Init" >&6; } -if test "x$ac_cv_lib_nettle_nettle_MD5Init" = x""yes; then : - USE_GNUTLS_NETTLE=1 -fi - - fi - if test "$USE_GNUTLS_NETTLE" = ""; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcry_control in -lgcrypt" >&5 -$as_echo_n "checking for gcry_control in -lgcrypt... " >&6; } -if test "${ac_cv_lib_gcrypt_gcry_control+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgcrypt $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gcry_control (); -int main (void) -{ -return gcry_control (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gcrypt_gcry_control=yes -else - ac_cv_lib_gcrypt_gcry_control=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gcrypt_gcry_control" >&5 -$as_echo "$ac_cv_lib_gcrypt_gcry_control" >&6; } -if test "x$ac_cv_lib_gcrypt_gcry_control" = x""yes; then : - USE_GNUTLS_NETTLE=0 -fi - - fi - if test "$USE_GNUTLS_NETTLE" = ""; then - as_fn_error "GnuTLS found, but neither gcrypt nor nettle found" "$LINENO" 5 - fi - if test "$USE_GNUTLS_NETTLE" = "1"; then - -$as_echo "#define USE_GNUTLS_NETTLE 1" >>confdefs.h - - USE_GNUTLS_NETTLE=1 - - LIBS="$LIBS -lnettle" - else - LIBS="$LIBS -lgcrypt" - fi -fi - -if test "$GNUTLS_ENABLED" = "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_srp_verifier in -lgnutls" >&5 -$as_echo_n "checking for gnutls_srp_verifier in -lgnutls... " >&6; } -if test "${ac_cv_lib_gnutls_gnutls_srp_verifier+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgnutls $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gnutls_srp_verifier (); -int main (void) -{ -return gnutls_srp_verifier (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gnutls_gnutls_srp_verifier=yes -else - ac_cv_lib_gnutls_gnutls_srp_verifier=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_srp_verifier" >&5 -$as_echo "$ac_cv_lib_gnutls_gnutls_srp_verifier" >&6; } -if test "x$ac_cv_lib_gnutls_gnutls_srp_verifier" = x""yes; then : - - -$as_echo "#define HAVE_GNUTLS_SRP 1" >>confdefs.h - - HAVE_GNUTLS_SRP=1 - - -fi - -fi - - -OPT_POLARSSL=no - -_cppflags=$CPPFLAGS -_ldflags=$LDFLAGS - -# Check whether --with-polarssl was given. -if test "${with_polarssl+set}" = set; then : - withval=$with_polarssl; OPT_POLARSSL=$withval -fi - - -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - - if test X"$OPT_POLARSSL" != Xno; then - - if test "$OPT_POLARSSL" = "yes"; then - OPT_POLARSSL="" - fi - - if test -z "$OPT_POLARSSL" ; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for havege_init in -lpolarssl" >&5 -$as_echo_n "checking for havege_init in -lpolarssl... " >&6; } -if test "${ac_cv_lib_polarssl_havege_init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpolarssl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char havege_init (); -int main (void) -{ -return havege_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_polarssl_havege_init=yes -else - ac_cv_lib_polarssl_havege_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_polarssl_havege_init" >&5 -$as_echo "$ac_cv_lib_polarssl_havege_init" >&6; } -if test "x$ac_cv_lib_polarssl_havege_init" = x""yes; then : - - -$as_echo "#define USE_POLARSSL 1" >>confdefs.h - - USE_POLARSSL=1 - - POLARSSL_ENABLED=1 - USE_POLARSSL="yes" - curl_ssl_msg="enabled (PolarSSL)" - -fi - - fi - - if test "x$USE_POLARSSL" != "xyes"; then - addld=-L$OPT_POLARSSL/lib$libsuff - addcflags=-I$OPT_POLARSSL/include - polarssllib=$OPT_POLARSSL/lib$libsuff - - LDFLAGS="$LDFLAGS $addld" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssl_init in -lpolarssl" >&5 -$as_echo_n "checking for ssl_init in -lpolarssl... " >&6; } -if test "${ac_cv_lib_polarssl_ssl_init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpolarssl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char ssl_init (); -int main (void) -{ -return ssl_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_polarssl_ssl_init=yes -else - ac_cv_lib_polarssl_ssl_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_polarssl_ssl_init" >&5 -$as_echo "$ac_cv_lib_polarssl_ssl_init" >&6; } -if test "x$ac_cv_lib_polarssl_ssl_init" = x""yes; then : - - -$as_echo "#define USE_POLARSSL 1" >>confdefs.h - - USE_POLARSSL=1 - - POLARSSL_ENABLED=1 - USE_POLARSSL="yes" - curl_ssl_msg="enabled (PolarSSL)" - -else - - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags - -fi - - fi - - if test "x$USE_POLARSSL" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: detected PolarSSL" >&5 -$as_echo "$as_me: detected PolarSSL" >&6;} - - CURL_LIBS="$CURL_LIBS -lpolarssl" - LIBS="$LIBS -lpolarssl" - - if test -n "$polarssllib"; then - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $polarssllib to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $polarssllib to LD_LIBRARY_PATH" >&6;} - fi - fi - fi - - fi -fi - - -OPT_CYASSL=no - -_cppflags=$CPPFLAGS -_ldflags=$LDFLAGS - -# Check whether --with-cyassl was given. -if test "${with_cyassl+set}" = set; then : - withval=$with_cyassl; OPT_CYASSL=$withval -fi - - -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - - if test X"$OPT_CYASSL" != Xno; then - - if test "$OPT_CYASSL" = "yes"; then - OPT_CYASSL="" - fi - - if test -z "$OPT_CYASSL" ; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CyaSSL_Init in -lcyassl" >&5 -$as_echo_n "checking for CyaSSL_Init in -lcyassl... " >&6; } -if test "${ac_cv_lib_cyassl_CyaSSL_Init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcyassl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char CyaSSL_Init (); -int main (void) -{ -return CyaSSL_Init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_cyassl_CyaSSL_Init=yes -else - ac_cv_lib_cyassl_CyaSSL_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cyassl_CyaSSL_Init" >&5 -$as_echo "$ac_cv_lib_cyassl_CyaSSL_Init" >&6; } -if test "x$ac_cv_lib_cyassl_CyaSSL_Init" = x""yes; then : - - -$as_echo "#define USE_CYASSL 1" >>confdefs.h - - USE_CYASSL=1 - - CYASSL_ENABLED=1 - USE_CYASSL="yes" - curl_ssl_msg="enabled (CyaSSL)" - -fi - - fi - - if test "x$USE_CYASSL" != "xyes"; then - addld=-L$OPT_CYASSL/lib$libsuff - addcflags=-I$OPT_CYASSL/include - cyassllib=$OPT_CYASSL/lib$libsuff - - LDFLAGS="$LDFLAGS $addld" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CyaSSL_Init in -lcyassl" >&5 -$as_echo_n "checking for CyaSSL_Init in -lcyassl... " >&6; } -if test "${ac_cv_lib_cyassl_CyaSSL_Init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcyassl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char CyaSSL_Init (); -int main (void) -{ -return CyaSSL_Init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_cyassl_CyaSSL_Init=yes -else - ac_cv_lib_cyassl_CyaSSL_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cyassl_CyaSSL_Init" >&5 -$as_echo "$ac_cv_lib_cyassl_CyaSSL_Init" >&6; } -if test "x$ac_cv_lib_cyassl_CyaSSL_Init" = x""yes; then : - - -$as_echo "#define USE_CYASSL 1" >>confdefs.h - - USE_CYASSL=1 - - CYASSL_ENABLED=1 - USE_CYASSL="yes" - curl_ssl_msg="enabled (CyaSSL)" - -else - - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags - -fi - - fi - - if test "x$USE_CYASSL" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: detected CyaSSL" >&5 -$as_echo "$as_me: detected CyaSSL" >&6;} - - CURL_LIBS="$CURL_LIBS -lcyassl -lm" - LIBS="$LIBS -lcyassl -lm" - - if test -n "$cyassllib"; then - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $cyassllib to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $cyassllib to LD_LIBRARY_PATH" >&6;} - fi - fi - - fi - - fi -fi - - -OPT_NSS=no - - -# Check whether --with-nss was given. -if test "${with_nss+set}" = set; then : - withval=$with_nss; OPT_NSS=$withval -fi - - -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - - if test X"$OPT_NSS" != Xno; then - if test "x$OPT_NSS" = "xyes"; then - - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nss options with pkg-config" >&5 -$as_echo_n "checking for nss options with pkg-config... " >&6; } - itexists=` - if test -n ""; then - PKG_CONFIG_LIBDIR="" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists nss >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - - if test "$PKGCONFIG" != "no" ; then - addlib=`$PKGCONFIG --libs nss` - addcflags=`$PKGCONFIG --cflags nss` - version=`$PKGCONFIG --modversion nss` - nssprefix=`$PKGCONFIG --variable=prefix nss` - else - - check=`nss-config --version 2>/dev/null` - if test -n "$check"; then - addlib=`nss-config --libs` - addcflags=`nss-config --cflags` - version=`nss-config --version` - nssprefix=`nss-config --prefix` - else - addlib="-lnss3" - addcflags="" - version="unknown" - fi - fi - else - # Without pkg-config, we'll kludge in some defaults - addlib="-L$OPT_NSS/lib -lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl" - addcflags="-I$OPT_NSS/include" - version="unknown" - nssprefix=$OPT_NSS - fi - - if test -n "$addlib"; then - - CLEANLIBS="$LIBS" - CLEANCPPFLAGS="$CPPFLAGS" - - LIBS="$LIBS $addlib" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PK11_CreateGenericObject in -lnss3" >&5 -$as_echo_n "checking for PK11_CreateGenericObject in -lnss3... " >&6; } -if test "${ac_cv_lib_nss3_PK11_CreateGenericObject+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnss3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char PK11_CreateGenericObject (); -int main (void) -{ -return PK11_CreateGenericObject (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nss3_PK11_CreateGenericObject=yes -else - ac_cv_lib_nss3_PK11_CreateGenericObject=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nss3_PK11_CreateGenericObject" >&5 -$as_echo "$ac_cv_lib_nss3_PK11_CreateGenericObject" >&6; } -if test "x$ac_cv_lib_nss3_PK11_CreateGenericObject" = x""yes; then : - - -$as_echo "#define USE_NSS 1" >>confdefs.h - - USE_NSS=1 - - USE_NSS="yes" - NSS_ENABLED=1 - curl_ssl_msg="enabled (NSS)" - -else - - LIBS="$CLEANLIBS" - CPPFLAGS="$CLEANCPPFLAGS" - -fi - - - if test "x$USE_NSS" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: detected NSS version $version" >&5 -$as_echo "$as_me: detected NSS version $version" >&6;} - - ac_fn_c_check_func "$LINENO" "NSS_InitContext" "ac_cv_func_NSS_InitContext" -if test "x$ac_cv_func_NSS_InitContext" = x""yes; then : - - -$as_echo "#define HAVE_NSS_INITCONTEXT 1" >>confdefs.h - - HAVE_NSS_INITCONTEXT=1 - - -fi - - - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH" >&6;} - fi - fi - - fi - - fi -fi -OPT_AXTLS=off - - -# Check whether --with-axtls was given. -if test "${with_axtls+set}" = set; then : - withval=$with_axtls; OPT_AXTLS=$withval -fi - - -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - if test X"$OPT_AXTLS" != Xno; then - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_AXTLS" in - yes) - PREFIX_AXTLS=/usr/local - LIB_AXTLS="$PREFIX_AXTLS/lib" - LDFLAGS="$LDFLAGS -L$LIB_AXTLS" - CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include" - ;; - off) - PREFIX_AXTLS= - ;; - *) - PREFIX_AXTLS=$OPT_AXTLS - LIB_AXTLS="$PREFIX_AXTLS/lib" - LDFLAGS="$LDFLAGS -L$LIB_AXTLS" - CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include" - ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssl_version in -laxtls" >&5 -$as_echo_n "checking for ssl_version in -laxtls... " >&6; } -if test "${ac_cv_lib_axtls_ssl_version+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-laxtls $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char ssl_version (); -int main (void) -{ -return ssl_version (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_axtls_ssl_version=yes -else - ac_cv_lib_axtls_ssl_version=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_axtls_ssl_version" >&5 -$as_echo "$ac_cv_lib_axtls_ssl_version" >&6; } -if test "x$ac_cv_lib_axtls_ssl_version" = x""yes; then : - - LIBS="-laxtls $LIBS" - -$as_echo "#define USE_AXTLS 1" >>confdefs.h - - USE_AXTLS=1 - - AXTLS_ENABLED=1 - USE_AXTLS="yes" - curl_ssl_msg="enabled (axTLS)" - - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $LIB_AXTLS to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $LIB_AXTLS to LD_LIBRARY_PATH" >&6;} - -else - - LDFLAGS="$CLEANLDFLAGS" - CPPFLAGS="$CLEANCPPFLAGS" - LIBS="$CLEANLIBS" - -fi - - fi -fi - -if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&5 -$as_echo "$as_me: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls or --with-winssl to address this." >&5 -$as_echo "$as_me: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls or --with-winssl to address this." >&2;} -else - # SSL is enabled, genericly - - SSL_ENABLED="1" -fi - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking default CA cert bundle/path" >&5 -$as_echo_n "checking default CA cert bundle/path... " >&6; } - - -# Check whether --with-ca-bundle was given. -if test "${with_ca_bundle+set}" = set; then : - withval=$with_ca_bundle; - want_ca="$withval" - if test "x$want_ca" = "xyes"; then - as_fn_error "--with-ca-bundle=FILE requires a path to the CA bundle" "$LINENO" 5 - fi - -else - want_ca="unset" -fi - - -# Check whether --with-ca-path was given. -if test "${with_ca_path+set}" = set; then : - withval=$with_ca_path; - want_capath="$withval" - if test "x$want_capath" = "xyes"; then - as_fn_error "--with-ca-path=DIRECTORY requires a path to the CA path directory" "$LINENO" 5 - fi - -else - want_capath="unset" -fi - - - if test "x$want_ca" != "xno" -a "x$want_ca" != "xunset" -a \ - "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then - as_fn_error "Can't specify both --with-ca-bundle and --with-ca-path." "$LINENO" 5 - elif test "x$want_ca" != "xno" -a "x$want_ca" != "xunset"; then - ca="$want_ca" - capath="no" - elif test "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then - if test "x$OPENSSL_ENABLED" != "x1"; then - as_fn_error "--with-ca-path only works with openSSL" "$LINENO" 5 - fi - capath="$want_capath" - ca="no" - else - ca="no" - capath="no" - if test "x$want_ca" = "xunset"; then - if test "x$prefix" != xNONE; then - cac="${prefix}/share/curl/curl-ca-bundle.crt" - else - cac="$ac_default_prefix/share/curl/curl-ca-bundle.crt" - fi - - for a in /etc/ssl/certs/ca-certificates.crt \ - /etc/pki/tls/certs/ca-bundle.crt \ - /usr/share/ssl/certs/ca-bundle.crt \ - /usr/local/share/certs/ca-root.crt \ - /etc/ssl/cert.pem \ - "$cac"; do - if test -f "$a"; then - ca="$a" - break - fi - done - fi - if test "x$want_capath" = "xunset" -a "x$ca" = "xno" -a \ - "x$OPENSSL_ENABLED" = "x1"; then - for a in /etc/ssl/certs/; do - if test -d "$a" && ls "$a"/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f].0 >/dev/null 2>/dev/null; then - capath="$a" - break - fi - done - fi - fi - - - - if test "x$ca" != "xno"; then - CURL_CA_BUNDLE='"'$ca'"' - -cat >>confdefs.h <<_ACEOF -#define CURL_CA_BUNDLE "$ca" -_ACEOF - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ca" >&5 -$as_echo "$ca" >&6; } - elif test "x$capath" != "xno"; then - CURL_CA_PATH="\"$capath\"" - -cat >>confdefs.h <<_ACEOF -#define CURL_CA_PATH "$capath" -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $capath (capath)" >&5 -$as_echo "$capath (capath)" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - -OPT_LIBMETALINK=no - - -# Check whether --with-libmetalink was given. -if test "${with_libmetalink+set}" = set; then : - withval=$with_libmetalink; OPT_LIBMETALINK=$withval -fi - - -if test X"$OPT_LIBMETALINK" != Xno; then - - addlib="" - addld="" - addcflags="" - version="" - libmetalinklib="" - PKGTEST="no" - if test "x$OPT_LIBMETALINK" = "xyes"; then - PKGTEST="yes" - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libmetalink options with pkg-config" >&5 -$as_echo_n "checking for libmetalink options with pkg-config... " >&6; } - itexists=` - if test -n ""; then - PKG_CONFIG_LIBDIR="" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists libmetalink >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - else - LIBMETALINK_PCDIR="$OPT_LIBMETALINK/lib/pkgconfig" - { $as_echo "$as_me:${as_lineno-$LINENO}: PKG_CONFIG_LIBDIR will be set to \"$LIBMETALINK_PCDIR\"" >&5 -$as_echo "$as_me: PKG_CONFIG_LIBDIR will be set to \"$LIBMETALINK_PCDIR\"" >&6;} - if test -f "$LIBMETALINK_PCDIR/libmetalink.pc"; then - PKGTEST="yes" - fi - if test "$PKGTEST" = "yes"; then - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libmetalink options with pkg-config" >&5 -$as_echo_n "checking for libmetalink options with pkg-config... " >&6; } - itexists=` - if test -n "$LIBMETALINK_PCDIR"; then - PKG_CONFIG_LIBDIR="$LIBMETALINK_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists libmetalink >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - fi - fi - if test "$PKGTEST" = "yes" && test "$PKGCONFIG" != "no"; then - addlib=` - if test -n "$LIBMETALINK_PCDIR"; then - PKG_CONFIG_LIBDIR="$LIBMETALINK_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --libs-only-l libmetalink` - addld=` - if test -n "$LIBMETALINK_PCDIR"; then - PKG_CONFIG_LIBDIR="$LIBMETALINK_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --libs-only-L libmetalink` - addcflags=` - if test -n "$LIBMETALINK_PCDIR"; then - PKG_CONFIG_LIBDIR="$LIBMETALINK_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --cflags-only-I libmetalink` - version=` - if test -n "$LIBMETALINK_PCDIR"; then - PKG_CONFIG_LIBDIR="$LIBMETALINK_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --modversion libmetalink` - libmetalinklib=`echo $addld | $SED -e 's/-L//'` - fi - if test -n "$addlib"; then - - clean_CPPFLAGS="$CPPFLAGS" - clean_LDFLAGS="$LDFLAGS" - clean_LIBS="$LIBS" - CPPFLAGS="$addcflags $clean_CPPFLAGS" - LDFLAGS="$addld $clean_LDFLAGS" - LIBS="$addlib $clean_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmetalink is recent enough" >&5 -$as_echo_n "checking if libmetalink is recent enough... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# include - -int main (void) -{ - - if(0 != metalink_strerror(0)) /* added in 0.1.0 */ - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($version)" >&5 -$as_echo "yes ($version)" >&6; } - want_metalink="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no ($version)" >&5 -$as_echo "no ($version)" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: libmetalink library defective or too old" >&5 -$as_echo "$as_me: libmetalink library defective or too old" >&6;} - want_metalink="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LIBS="$clean_LIBS" - if test "$want_metalink" = "yes"; then - -$as_echo "#define USE_METALINK 1" >>confdefs.h - - LIBMETALINK_LIBS=$addlib - LIBMETALINK_LDFLAGS=$addld - LIBMETALINK_CFLAGS=$addcflags - - - - curl_mtlnk_msg="enabled" - fi - - fi -fi - - -OPT_LIBSSH2=off - -# Check whether --with-libssh2 was given. -if test "${with_libssh2+set}" = set; then : - withval=$with_libssh2; OPT_LIBSSH2=$withval -fi - - -if test X"$OPT_LIBSSH2" != Xno; then - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_LIBSSH2" in - yes) - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libssh2 options with pkg-config" >&5 -$as_echo_n "checking for libssh2 options with pkg-config... " >&6; } - itexists=` - if test -n ""; then - PKG_CONFIG_LIBDIR="" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists libssh2 >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - - if test "$PKGCONFIG" != "no" ; then - LIB_SSH2=`$PKGCONFIG --libs-only-l libssh2` - LD_SSH2=`$PKGCONFIG --libs-only-L libssh2` - CPP_SSH2=`$PKGCONFIG --cflags-only-I libssh2` - version=`$PKGCONFIG --modversion libssh2` - DIR_SSH2=`echo $LD_SSH2 | $SED -e 's/-L//'` - fi - - ;; - off) - ;; - *) - PREFIX_SSH2=$OPT_LIBSSH2 - ;; - esac - - if test -n "$PREFIX_SSH2"; then - LIB_SSH2="-lssh2" - LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff - CPP_SSH2=-I${PREFIX_SSH2}/include - DIR_SSH2=${PREFIX_SSH2}/lib$libsuff - fi - - LDFLAGS="$LDFLAGS $LD_SSH2" - CPPFLAGS="$CPPFLAGS $CPP_SSH2" - LIBS="$LIBS $LIB_SSH2" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libssh2_channel_open_ex in -lssh2" >&5 -$as_echo_n "checking for libssh2_channel_open_ex in -lssh2... " >&6; } -if test "${ac_cv_lib_ssh2_libssh2_channel_open_ex+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lssh2 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char libssh2_channel_open_ex (); -int main (void) -{ -return libssh2_channel_open_ex (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ssh2_libssh2_channel_open_ex=yes -else - ac_cv_lib_ssh2_libssh2_channel_open_ex=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssh2_libssh2_channel_open_ex" >&5 -$as_echo "$ac_cv_lib_ssh2_libssh2_channel_open_ex" >&6; } -if test "x$ac_cv_lib_ssh2_libssh2_channel_open_ex" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSSH2 1 -_ACEOF - - LIBS="-lssh2 $LIBS" - -fi - - - for ac_header in libssh2.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "libssh2.h" "ac_cv_header_libssh2_h" "$ac_includes_default" -if test "x$ac_cv_header_libssh2_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSSH2_H 1 -_ACEOF - curl_ssh_msg="enabled (libSSH2)" - LIBSSH2_ENABLED=1 - -$as_echo "#define USE_LIBSSH2 1" >>confdefs.h - - USE_LIBSSH2=1 - - -fi - -done - - - if test X"$OPT_LIBSSH2" != Xoff && - test "$LIBSSH2_ENABLED" != "1"; then - as_fn_error "libSSH2 libs and/or directories were not found where specified!" "$LINENO" 5 - fi - - if test "$LIBSSH2_ENABLED" = "1"; then - if test -n "$DIR_SSH2"; then - - for ac_func in libssh2_version libssh2_init libssh2_exit \ - libssh2_scp_send64 libssh2_session_handshake -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_SSH2 to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $DIR_SSH2 to LD_LIBRARY_PATH" >&6;} - fi - fi - else - LDFLAGS=$CLEANLDFLAGS - CPPFLAGS=$CLEANCPPFLAGS - LIBS=$CLEANLIBS - fi -fi - - -OPT_LIBRTMP=off - -# Check whether --with-librtmp was given. -if test "${with_librtmp+set}" = set; then : - withval=$with_librtmp; OPT_LIBRTMP=$withval -fi - - -if test X"$OPT_LIBRTMP" != Xno; then - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_LIBRTMP" in - yes) - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for librtmp options with pkg-config" >&5 -$as_echo_n "checking for librtmp options with pkg-config... " >&6; } - itexists=` - if test -n ""; then - PKG_CONFIG_LIBDIR="" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists librtmp >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - - if test "$PKGCONFIG" != "no" ; then - LIB_RTMP=`$PKGCONFIG --libs-only-l librtmp` - LD_RTMP=`$PKGCONFIG --libs-only-L librtmp` - CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp` - version=`$PKGCONFIG --modversion librtmp` - DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'` - else - as_fn_error "--librtmp was specified but could not find librtmp pkgconfig file." "$LINENO" 5 - fi - - ;; - off) - LIB_RTMP="-lrtmp" - ;; - *) - PREFIX_RTMP=$OPT_LIBRTMP - ;; - esac - - if test -n "$PREFIX_RTMP"; then - LD_RTMP=-L${PREFIX_RTMP}/lib$libsuff - CPP_RTMP=-I${PREFIX_RTMP}/include - DIR_RTMP=${PREFIX_RTMP}/lib$libsuff - fi - - LDFLAGS="$LDFLAGS $LD_RTMP" - CPPFLAGS="$CPPFLAGS $CPP_RTMP" - LIBS="$LIBS $LIB_RTMP" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RTMP_Init in -lrtmp" >&5 -$as_echo_n "checking for RTMP_Init in -lrtmp... " >&6; } -if test "${ac_cv_lib_rtmp_RTMP_Init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrtmp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char RTMP_Init (); -int main (void) -{ -return RTMP_Init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rtmp_RTMP_Init=yes -else - ac_cv_lib_rtmp_RTMP_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rtmp_RTMP_Init" >&5 -$as_echo "$ac_cv_lib_rtmp_RTMP_Init" >&6; } -if test "x$ac_cv_lib_rtmp_RTMP_Init" = x""yes; then : - - for ac_header in librtmp/rtmp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "librtmp/rtmp.h" "ac_cv_header_librtmp_rtmp_h" "$ac_includes_default" -if test "x$ac_cv_header_librtmp_rtmp_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRTMP_RTMP_H 1 -_ACEOF - curl_rtmp_msg="enabled (librtmp)" - LIBRTMP_ENABLED=1 - -$as_echo "#define USE_LIBRTMP 1" >>confdefs.h - - USE_LIBRTMP=1 - - -fi - -done - - -else - LDFLAGS=$CLEANLDFLAGS - CPPFLAGS=$CLEANCPPFLAGS - LIBS=$CLEANLIBS - -fi - - - if test X"$OPT_LIBRTMP" != Xoff && - test "$LIBRTMP_ENABLED" != "1"; then - as_fn_error "librtmp libs and/or directories were not found where specified!" "$LINENO" 5 - fi - -fi - - -versioned_symbols_flavour= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether versioned symbols are wanted" >&5 -$as_echo_n "checking whether versioned symbols are wanted... " >&6; } -# Check whether --enable-versioned-symbols was given. -if test "${enable_versioned_symbols+set}" = set; then : - enableval=$enable_versioned_symbols; case "$enableval" in - yes) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libraries can be versioned" >&5 -$as_echo_n "checking if libraries can be versioned... " >&6; } - GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script` - if test -z "$GLD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You need an ld version supporting the --version-script option" >&5 -$as_echo "$as_me: WARNING: You need an ld version supporting the --version-script option" >&2;} - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test "x$OPENSSL_ENABLED" = "x1"; then - versioned_symbols_flavour="OPENSSL_" - elif test "x$GNUTLS_ENABLED" == "x1"; then - versioned_symbols_flavour="GNUTLS_" - elif test "x$NSS_ENABLED" == "x1"; then - versioned_symbols_flavour="NSS_" - elif test "x$POLARSSL_ENABLED" == "x1"; then - versioned_symbols_flavour="POLARSSL_" - elif test "x$CYASSL_ENABLED" == "x1"; then - versioned_symbols_flavour="CYASSL_" - elif test "x$AXTLS_ENABLED" == "x1"; then - versioned_symbols_flavour="AXTLS_" - elif test "x$WINSSL_ENABLED" == "x1"; then - versioned_symbols_flavour="WINSSL_" - elif test "x$DARWINSSL_ENABLED" == "x1"; then - versioned_symbols_flavour="DARWINSSL_" - else - versioned_symbols_flavour="" - fi - versioned_symbols="yes" - fi - ;; - - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac - -else - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - -fi - - -VERSIONED_FLAVOUR="$versioned_symbols_flavour" - - - -if test "x$versioned_symbols" = "xyes"; then - VERSIONED_SYMBOLS_TRUE= - VERSIONED_SYMBOLS_FALSE='#' -else - VERSIONED_SYMBOLS_TRUE='#' - VERSIONED_SYMBOLS_FALSE= -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Windows native IDN (Windows native builds only)" >&5 -$as_echo_n "checking whether to enable Windows native IDN (Windows native builds only)... " >&6; } -OPT_WINIDN="default" - -# Check whether --with-winidn was given. -if test "${with_winidn+set}" = set; then : - withval=$with_winidn; OPT_WINIDN=$withval -fi - -case "$OPT_WINIDN" in - no|default) - want_winidn="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - yes) - want_winidn="yes" - want_winidn_path="default" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - *) - want_winidn="yes" - want_winidn_path="$withval" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($withval)" >&5 -$as_echo "yes ($withval)" >&6; } - ;; -esac - -if test "$want_winidn" = "yes"; then - clean_CPPFLAGS="$CPPFLAGS" - clean_LDFLAGS="$LDFLAGS" - clean_LIBS="$LIBS" - WINIDN_LIBS="-lnormaliz" - # - if test "$want_winidn_path" != "default"; then - WINIDN_LDFLAGS="-L$want_winidn_path/lib$libsuff" - WINIDN_CPPFLAGS="-I$want_winidn_path/include" - WINIDN_DIR="$want_winidn_path/lib$libsuff" - fi - # - CPPFLAGS="$WINIDN_CPPFLAGS $CPPFLAGS" - LDFLAGS="$WINIDN_LDFLAGS $LDFLAGS" - LIBS="$WINIDN_LIBS $LIBS" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IdnToUnicode can be linked" >&5 -$as_echo_n "checking if IdnToUnicode can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define IdnToUnicode innocuous_IdnToUnicode -#ifdef __STDC__ -# include -#else -# include -#endif -#undef IdnToUnicode -#ifdef __cplusplus -extern "C" -#endif -char IdnToUnicode (); -#if defined __stub_IdnToUnicode || defined __stub___IdnToUnicode -choke me -#endif - -int main (void) -{ -return IdnToUnicode (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_winidn="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_winidn="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_winidn" = "yes"; then - -$as_echo "#define USE_WIN32_IDN 1" >>confdefs.h - - -$as_echo "#define WANT_IDN_PROTOTYPES 1" >>confdefs.h - - IDN_ENABLED=1 - - curl_idn_msg="enabled (Windows-native)" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for IDN support: IDN disabled" >&5 -$as_echo "$as_me: WARNING: Cannot find libraries for IDN support: IDN disabled" >&2;} - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LIBS="$clean_LIBS" - fi -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with libidn" >&5 -$as_echo_n "checking whether to build with libidn... " >&6; } -OPT_IDN="default" - -# Check whether --with-libidn was given. -if test "${with_libidn+set}" = set; then : - withval=$with_libidn; OPT_IDN=$withval -fi - -case "$OPT_IDN" in - no) - want_idn="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - default) - want_idn="yes" - want_idn_path="default" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5 -$as_echo "(assumed) yes" >&6; } - ;; - yes) - want_idn="yes" - want_idn_path="default" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - *) - want_idn="yes" - want_idn_path="$withval" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($withval)" >&5 -$as_echo "yes ($withval)" >&6; } - ;; -esac - -if test "$want_idn" = "yes"; then - clean_CPPFLAGS="$CPPFLAGS" - clean_LDFLAGS="$LDFLAGS" - clean_LIBS="$LIBS" - PKGCONFIG="no" - # - if test "$want_idn_path" != "default"; then - IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig" - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libidn options with pkg-config" >&5 -$as_echo_n "checking for libidn options with pkg-config... " >&6; } - itexists=` - if test -n "$IDN_PCDIR"; then - PKG_CONFIG_LIBDIR="$IDN_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists libidn >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - if test "$PKGCONFIG" != "no"; then - IDN_LIBS=` - if test -n "$IDN_PCDIR"; then - PKG_CONFIG_LIBDIR="$IDN_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --libs-only-l libidn 2>/dev/null` - IDN_LDFLAGS=` - if test -n "$IDN_PCDIR"; then - PKG_CONFIG_LIBDIR="$IDN_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --libs-only-L libidn 2>/dev/null` - IDN_CPPFLAGS=` - if test -n "$IDN_PCDIR"; then - PKG_CONFIG_LIBDIR="$IDN_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --cflags-only-I libidn 2>/dev/null` - IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'` - else - IDN_LIBS="-lidn" - IDN_LDFLAGS="-L$want_idn_path/lib$libsuff" - IDN_CPPFLAGS="-I$want_idn_path/include" - IDN_DIR="$want_idn_path/lib$libsuff" - fi - else - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libidn options with pkg-config" >&5 -$as_echo_n "checking for libidn options with pkg-config... " >&6; } - itexists=` - if test -n ""; then - PKG_CONFIG_LIBDIR="" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists libidn >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - if test "$PKGCONFIG" != "no"; then - IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null` - IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null` - IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null` - IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'` - else - IDN_LIBS="-lidn" - fi - fi - # - if test "$PKGCONFIG" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_LIBS: \"$IDN_LIBS\"" >&5 -$as_echo "$as_me: pkg-config: IDN_LIBS: \"$IDN_LIBS\"" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&5 -$as_echo "$as_me: pkg-config: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&5 -$as_echo "$as_me: pkg-config: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_DIR: \"$IDN_DIR\"" >&5 -$as_echo "$as_me: pkg-config: IDN_DIR: \"$IDN_DIR\"" >&6;} - else - { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_LIBS: \"$IDN_LIBS\"" >&5 -$as_echo "$as_me: IDN_LIBS: \"$IDN_LIBS\"" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&5 -$as_echo "$as_me: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&5 -$as_echo "$as_me: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_DIR: \"$IDN_DIR\"" >&5 -$as_echo "$as_me: IDN_DIR: \"$IDN_DIR\"" >&6;} - fi - # - CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS" - LDFLAGS="$IDN_LDFLAGS $LDFLAGS" - LIBS="$IDN_LIBS $LIBS" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if idna_to_ascii_4i can be linked" >&5 -$as_echo_n "checking if idna_to_ascii_4i can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define idna_to_ascii_4i innocuous_idna_to_ascii_4i -#ifdef __STDC__ -# include -#else -# include -#endif -#undef idna_to_ascii_4i -#ifdef __cplusplus -extern "C" -#endif -char idna_to_ascii_4i (); -#if defined __stub_idna_to_ascii_4i || defined __stub___idna_to_ascii_4i -choke me -#endif - -int main (void) -{ -return idna_to_ascii_4i (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_libidn="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_libidn="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tst_links_libidn" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if idna_to_ascii_lz can be linked" >&5 -$as_echo_n "checking if idna_to_ascii_lz can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define idna_to_ascii_lz innocuous_idna_to_ascii_lz -#ifdef __STDC__ -# include -#else -# include -#endif -#undef idna_to_ascii_lz -#ifdef __cplusplus -extern "C" -#endif -char idna_to_ascii_lz (); -#if defined __stub_idna_to_ascii_lz || defined __stub___idna_to_ascii_lz -choke me -#endif - -int main (void) -{ -return idna_to_ascii_lz (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_libidn="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_libidn="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - # - if test "$tst_links_libidn" = "yes"; then - -$as_echo "#define HAVE_LIBIDN 1" >>confdefs.h - - for ac_func in idn_free idna_strerror tld_strerror -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - for ac_header in idn-free.h tld.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - if test "x$ac_cv_header_tld_h" = "xyes"; then - IDN_ENABLED=1 - - curl_idn_msg="enabled" - if test -n "$IDN_DIR"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $IDN_DIR to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $IDN_DIR to LD_LIBRARY_PATH" >&6;} - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libraries for IDN support too old: IDN disabled" >&5 -$as_echo "$as_me: WARNING: Libraries for IDN support too old: IDN disabled" >&2;} - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LIBS="$clean_LIBS" - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for IDN support: IDN disabled" >&5 -$as_echo "$as_me: WARNING: Cannot find libraries for IDN support: IDN disabled" >&2;} - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LIBS="$clean_LIBS" - fi -fi - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for malloc.h" >&5 -$as_echo_n "checking for malloc.h... " >&6; } -if test "${ac_cv_header_malloc_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_malloc_h="yes" - -else - - ac_cv_header_malloc_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_malloc_h" >&5 -$as_echo "$ac_cv_header_malloc_h" >&6; } - if test "$ac_cv_header_malloc_h" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_MALLOC_H 1 -_ACEOF - - # - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_need_header_malloc_h="no" - -else - - curl_cv_need_header_malloc_h="yes" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # - case "$curl_cv_need_header_malloc_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define NEED_MALLOC_H 1 -_ACEOF - - ;; - esac - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for memory.h" >&5 -$as_echo_n "checking for memory.h... " >&6; } -if test "${ac_cv_header_memory_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_memory_h="yes" - -else - - ac_cv_header_memory_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_memory_h" >&5 -$as_echo "$ac_cv_header_memory_h" >&6; } - if test "$ac_cv_header_memory_h" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_MEMORY_H 1 -_ACEOF - - # - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_need_header_memory_h="no" - -else - - curl_cv_need_header_memory_h="yes" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # - case "$curl_cv_need_header_memory_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define NEED_MEMORY_H 1 -_ACEOF - - ;; - esac - fi - - -for ac_header in sys/types.h \ - sys/time.h \ - sys/select.h \ - sys/socket.h \ - sys/ioctl.h \ - sys/uio.h \ - assert.h \ - unistd.h \ - stdlib.h \ - limits.h \ - arpa/inet.h \ - net/if.h \ - netinet/in.h \ - sys/un.h \ - netinet/tcp.h \ - netdb.h \ - sys/sockio.h \ - sys/stat.h \ - sys/param.h \ - termios.h \ - termio.h \ - sgtty.h \ - fcntl.h \ - alloca.h \ - time.h \ - io.h \ - pwd.h \ - utime.h \ - sys/utime.h \ - sys/poll.h \ - poll.h \ - socket.h \ - sys/resource.h \ - libgen.h \ - locale.h \ - errno.h \ - stdbool.h \ - arpa/tftp.h \ - sys/filio.h \ - sys/wait.h \ - setjmp.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" " -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_SELECT_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_SYS_UN_H -#include -#endif - - -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if test "${ac_cv_c_const+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes -else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -$as_echo "#define const /**/" >>confdefs.h - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler support of C99 variadic macro style" >&5 -$as_echo_n "checking for compiler support of C99 variadic macro style... " >&6; } -if test "${curl_cv_variadic_macros_c99+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define c99_vmacro3(first, ...) fun3(first, __VA_ARGS__) -#define c99_vmacro2(first, ...) fun2(first, __VA_ARGS__) - int fun3(int arg1, int arg2, int arg3); - int fun2(int arg1, int arg2); - int fun3(int arg1, int arg2, int arg3) - { return arg1 + arg2 + arg3; } - int fun2(int arg1, int arg2) - { return arg1 + arg2; } - -int main (void) -{ - - int res3 = c99_vmacro3(1, 2, 3); - int res2 = c99_vmacro2(1, 2); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_variadic_macros_c99="yes" - -else - - curl_cv_variadic_macros_c99="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_variadic_macros_c99" >&5 -$as_echo "$curl_cv_variadic_macros_c99" >&6; } - case "$curl_cv_variadic_macros_c99" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_VARIADIC_MACROS_C99 1 -_ACEOF - - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler support of old gcc variadic macro style" >&5 -$as_echo_n "checking for compiler support of old gcc variadic macro style... " >&6; } -if test "${curl_cv_variadic_macros_gcc+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gcc_vmacro3(first, args...) fun3(first, args) -#define gcc_vmacro2(first, args...) fun2(first, args) - int fun3(int arg1, int arg2, int arg3); - int fun2(int arg1, int arg2); - int fun3(int arg1, int arg2, int arg3) - { return arg1 + arg2 + arg3; } - int fun2(int arg1, int arg2) - { return arg1 + arg2; } - -int main (void) -{ - - int res3 = gcc_vmacro3(1, 2, 3); - int res2 = gcc_vmacro2(1, 2); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_variadic_macros_gcc="yes" - -else - - curl_cv_variadic_macros_gcc="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_variadic_macros_gcc" >&5 -$as_echo "$curl_cv_variadic_macros_gcc" >&6; } - case "$curl_cv_variadic_macros_gcc" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_VARIADIC_MACROS_GCC 1 -_ACEOF - - ;; - esac - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = x""yes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if test "${ac_cv_header_time+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int main (void) -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - - - for ac_header in sys/types.h sys/time.h time.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5 -$as_echo_n "checking for struct timeval... " >&6; } -if test "${ac_cv_struct_timeval+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif - -int main (void) -{ - - struct timeval ts; - ts.tv_sec = 0; - ts.tv_usec = 0; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_struct_timeval="yes" - -else - - ac_cv_struct_timeval="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_timeval" >&5 -$as_echo "$ac_cv_struct_timeval" >&6; } - case "$ac_cv_struct_timeval" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TIMEVAL 1 -_ACEOF - - ;; - esac - - - - if test "x$cross_compiling" != xyes; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking run-time libs availability" >&5 -$as_echo_n "checking run-time libs availability... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -main() -{ - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: fine" >&5 -$as_echo "fine" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } - as_fn_error "one or more libs available at link-time are not available run-time. Libs used at link-time: $LIBS" "$LINENO" 5 - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - - fi - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 -$as_echo_n "checking size of size_t... " >&6; } -if test "${ac_cv_sizeof_size_t+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_size_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (size_t) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_size_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 -$as_echo "$ac_cv_sizeof_size_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if test "${ac_cv_sizeof_int+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (int) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_int=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if test "${ac_cv_sizeof_short+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (short) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_short=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - - - - if test -z "$ac_cv_sizeof_long" || - test "$ac_cv_sizeof_long" -eq "0"; then - as_fn_error "cannot find out size of long." "$LINENO" 5 - fi - -cat >>confdefs.h <<_EOF -#define CURL_SIZEOF_LONG $ac_cv_sizeof_long -_EOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5 -$as_echo_n "checking size of time_t... " >&6; } -if test "${ac_cv_sizeof_time_t+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_time_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (time_t) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_time_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5 -$as_echo "$ac_cv_sizeof_time_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_TIME_T $ac_cv_sizeof_time_t -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 -$as_echo_n "checking size of off_t... " >&6; } -if test "${ac_cv_sizeof_off_t+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_off_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (off_t) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_off_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 -$as_echo "$ac_cv_sizeof_off_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_OFF_T $ac_cv_sizeof_off_t -_ACEOF - - - -soname_bump=no -if test x"$ac_cv_native_windows" != "xyes" && - test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This libcurl built is probably not ABI compatible with previous" >&5 -$as_echo "$as_me: WARNING: This libcurl built is probably not ABI compatible with previous" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: builds! You MUST read lib/README.curl_off_t to figure it out." >&5 -$as_echo "$as_me: WARNING: builds! You MUST read lib/README.curl_off_t to figure it out." >&2;} - soname_bump=yes -fi - - -ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" -if test "x$ac_cv_type_long_long" = x""yes; then : - -$as_echo "#define HAVE_LONGLONG 1" >>confdefs.h - - longlong="yes" - -fi - - -if test "xyes" = "x$longlong"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if numberLL works" >&5 -$as_echo_n "checking if numberLL works... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - long long val = 1000LL; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_LL 1" >>confdefs.h - - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - -# check for ssize_t -ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" -if test "x$ac_cv_type_ssize_t" = x""yes; then : - -else - -$as_echo "#define ssize_t int" >>confdefs.h - -fi - - -# check for bool type -ac_fn_c_check_type "$LINENO" "bool" "ac_cv_type_bool" " -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_STDBOOL_H -#include -#endif - -" -if test "x$ac_cv_type_bool" = x""yes; then : - - -$as_echo "#define HAVE_BOOL_T 1" >>confdefs.h - - -fi - - - -curl_includes_ws2tcpip="\ -/* includes start */ -#ifdef HAVE_WINDOWS_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# ifdef HAVE_WINSOCK2_H -# include -# ifdef HAVE_WS2TCPIP_H -# include -# endif -# endif -#endif -/* includes end */" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5 -$as_echo_n "checking for windows.h... " >&6; } -if test "${ac_cv_header_windows_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINDOWS_H shall not be defined. -#else - int dummy=2*WINVER; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_windows_h="yes" - -else - - ac_cv_header_windows_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_windows_h" >&5 -$as_echo "$ac_cv_header_windows_h" >&6; } - case "$ac_cv_header_windows_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINDOWS_H 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define WIN32_LEAN_AND_MEAN 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5 -$as_echo_n "checking for winsock2.h... " >&6; } -if test "${ac_cv_header_winsock2_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WINSOCK2_H shall not be defined. -#else - int dummy=2*IPPROTO_ESP; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winsock2_h="yes" - -else - - ac_cv_header_winsock2_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock2_h" >&5 -$as_echo "$ac_cv_header_winsock2_h" >&6; } - case "$ac_cv_header_winsock2_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINSOCK2_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5 -$as_echo_n "checking for ws2tcpip.h... " >&6; } -if test "${ac_cv_header_ws2tcpip_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WS2TCPIP_H shall not be defined. -#else - int dummy=2*IP_PKTINFO; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_ws2tcpip_h="yes" - -else - - ac_cv_header_ws2tcpip_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ws2tcpip_h" >&5 -$as_echo "$ac_cv_header_ws2tcpip_h" >&6; } - case "$ac_cv_header_ws2tcpip_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WS2TCPIP_H 1 -_ACEOF - - ;; - esac - - - -curl_includes_sys_socket="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_socket -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -curl_preprocess_callconv="\ -/* preprocess start */ -#ifdef HAVE_WINDOWS_H -# define FUNCALLCONV __stdcall -#else -# define FUNCALLCONV -#endif -/* preprocess end */" - - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_socklen_t data type" >&5 -$as_echo_n "checking for curl_socklen_t data type... " >&6; } - curl_typeof_curl_socklen_t="unknown" - for arg1 in int SOCKET; do - for arg2 in 'struct sockaddr' void; do - for t in socklen_t int size_t 'unsigned int' long 'unsigned long' void; do - if test "$curl_typeof_curl_socklen_t" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_preprocess_callconv - extern int FUNCALLCONV getpeername($arg1, $arg2 *, $t *); - -int main (void) -{ - - $t *lenptr = 0; - if(0 != getpeername(0, 0, lenptr)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_typeof_curl_socklen_t="$t" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - for t in socklen_t int; do - if test "$curl_typeof_curl_socklen_t" = "void"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_socket - typedef $t curl_socklen_t; - -int main (void) -{ - - curl_socklen_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_typeof_curl_socklen_t="$t" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_typeof_curl_socklen_t" >&5 -$as_echo "$curl_typeof_curl_socklen_t" >&6; } - if test "$curl_typeof_curl_socklen_t" = "void" || - test "$curl_typeof_curl_socklen_t" = "unknown"; then - as_fn_error "cannot find data type for curl_socklen_t." "$LINENO" 5 - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of curl_socklen_t" >&5 -$as_echo_n "checking size of curl_socklen_t... " >&6; } - curl_sizeof_curl_socklen_t="unknown" - curl_pull_headers_socklen_t="unknown" - if test "$ac_cv_header_ws2tcpip_h" = "yes"; then - tst_pull_header_checks='none ws2tcpip' - tst_size_checks='4' - else - tst_pull_header_checks='none systypes syssocket' - tst_size_checks='4 8 2' - fi - for tst_size in $tst_size_checks; do - for tst_pull_headers in $tst_pull_header_checks; do - if test "$curl_sizeof_curl_socklen_t" = "unknown"; then - case $tst_pull_headers in - ws2tcpip) - tmp_includes="$curl_includes_ws2tcpip" - ;; - systypes) - tmp_includes="$curl_includes_sys_types" - ;; - syssocket) - tmp_includes="$curl_includes_sys_socket" - ;; - *) - tmp_includes="" - ;; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $tmp_includes - typedef $curl_typeof_curl_socklen_t curl_socklen_t; - typedef char dummy_arr[sizeof(curl_socklen_t) == $tst_size ? 1 : -1]; - -int main (void) -{ - - curl_socklen_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_sizeof_curl_socklen_t="$tst_size" - curl_pull_headers_socklen_t="$tst_pull_headers" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_sizeof_curl_socklen_t" >&5 -$as_echo "$curl_sizeof_curl_socklen_t" >&6; } - if test "$curl_sizeof_curl_socklen_t" = "unknown"; then - as_fn_error "cannot find out size of curl_socklen_t." "$LINENO" 5 - fi - # - case $curl_pull_headers_socklen_t in - ws2tcpip) - -cat >>confdefs.h <<_EOF -#define CURL_PULL_WS2TCPIP_H 1 -_EOF - - ;; - systypes) - -cat >>confdefs.h <<_EOF -#define CURL_PULL_SYS_TYPES_H 1 -_EOF - - ;; - syssocket) - -cat >>confdefs.h <<_EOF -#define CURL_PULL_SYS_TYPES_H 1 -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_PULL_SYS_SOCKET_H 1 -_EOF - - ;; - esac - -cat >>confdefs.h <<_EOF -#define CURL_TYPEOF_CURL_SOCKLEN_T $curl_typeof_curl_socklen_t -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_SIZEOF_CURL_SOCKLEN_T $curl_sizeof_curl_socklen_t -_EOF - - - - - ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" " -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif -#endif - -" -if test "x$ac_cv_type_in_addr_t" = x""yes; then : - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for in_addr_t equivalent" >&5 -$as_echo_n "checking for in_addr_t equivalent... " >&6; } -if test "${curl_cv_in_addr_t_equiv+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_in_addr_t_equiv="unknown" - for t in "unsigned long" int size_t unsigned long; do - if test "$curl_cv_in_addr_t_equiv" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif -#endif - -int main (void) -{ - - $t data = inet_addr ("1.2.3.4"); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - curl_cv_in_addr_t_equiv="$t" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_in_addr_t_equiv" >&5 -$as_echo "$curl_cv_in_addr_t_equiv" >&6; } - case "$curl_cv_in_addr_t_equiv" in - unknown) - as_fn_error "Cannot find a type to use in place of in_addr_t" "$LINENO" 5 - ;; - *) - -cat >>confdefs.h <<_ACEOF -#define in_addr_t $curl_cv_in_addr_t_equiv -_ACEOF - - ;; - esac - -fi - - - - - ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif -#endif - -" -if test "x$ac_cv_type_struct_sockaddr_storage" = x""yes; then : - -$as_echo "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h - -fi - - - - - for ac_header in signal.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default" -if test "x$ac_cv_header_signal_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SIGNAL_H 1 -_ACEOF - -fi - -done - - ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" " -#ifdef HAVE_SIGNAL_H -#include -#endif - -" -if test "x$ac_cv_type_sig_atomic_t" = x""yes; then : - - -$as_echo "#define HAVE_SIG_ATOMIC_T 1" >>confdefs.h - - -fi - - case "$ac_cv_type_sig_atomic_t" in - yes) - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sig_atomic_t is already defined as volatile" >&5 -$as_echo_n "checking if sig_atomic_t is already defined as volatile... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_SIGNAL_H -#include -#endif - -int main (void) -{ - - static volatile sig_atomic_t dummy = 0; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_sig_atomic_t_volatile="no" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ac_cv_sig_atomic_t_volatile="yes" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$ac_cv_sig_atomic_t_volatile" = "yes"; then - -$as_echo "#define HAVE_SIG_ATOMIC_T_VOLATILE 1" >>confdefs.h - - fi - ;; - esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if test "${ac_cv_type_signal+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int main (void) -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int -else - ac_cv_type_signal=void -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - - - - for ac_header in sys/select.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for select" >&5 -$as_echo_n "checking for select... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif -#ifndef HAVE_WINDOWS_H -#ifdef HAVE_SYS_SELECT_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - -int main (void) -{ - - select(0, 0, 0, 0, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_select="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - curl_cv_select="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$curl_cv_select" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for select" >&5 -$as_echo_n "checking types of args and return type for select... " >&6; } -if test "${curl_cv_func_select_args+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_func_select_args="unknown" - for sel_retv in 'int' 'ssize_t'; do - for sel_arg1 in 'int' 'ssize_t' 'size_t' 'unsigned long int' 'unsigned int'; do - for sel_arg234 in 'fd_set *' 'int *' 'void *'; do - for sel_arg5 in 'struct timeval *' 'const struct timeval *'; do - if test "$curl_cv_func_select_args" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define SELECTCALLCONV PASCAL -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif -#ifndef HAVE_WINDOWS_H -#ifdef HAVE_SYS_SELECT_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define SELECTCALLCONV -#endif -#ifndef HAVE_STRUCT_TIMEVAL - struct timeval { - long tv_sec; - long tv_usec; - }; -#endif - extern $sel_retv SELECTCALLCONV select($sel_arg1, - $sel_arg234, - $sel_arg234, - $sel_arg234, - $sel_arg5); - -int main (void) -{ - - $sel_arg1 nfds=0; - $sel_arg234 rfds=0; - $sel_arg234 wfds=0; - $sel_arg234 efds=0; - $sel_retv res = select(nfds, rfds, wfds, efds, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_func_select_args="$sel_arg1,$sel_arg234,$sel_arg5,$sel_retv" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_select_args" >&5 -$as_echo "$curl_cv_func_select_args" >&6; } # AC-CACHE-CHECK - if test "$curl_cv_func_select_args" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find proper types to use for select args" >&5 -$as_echo "$as_me: WARNING: Cannot find proper types to use for select args" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_SELECT will not be defined" >&5 -$as_echo "$as_me: WARNING: HAVE_SELECT will not be defined" >&2;} - else - select_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_select_args" | sed 's/\*/\*/g'` - IFS=$select_prev_IFS - shift - # - sel_qual_type_arg5=$3 - # - -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_ARG1 $1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_ARG234 $2 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_RETV $4 -_ACEOF - - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$sel_qual_type_arg5" in - const*) - sel_qual_arg5=const - sel_type_arg5=`echo $sel_qual_type_arg5 | sed 's/^const //'` - ;; - *) - sel_qual_arg5= - sel_type_arg5=$sel_qual_type_arg5 - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define SELECT_QUAL_ARG5 $sel_qual_arg5 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_ARG5 $sel_type_arg5 -_ACEOF - - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define HAVE_SELECT 1 -_ACEOF - - ac_cv_func_select="yes" - fi - fi - - - - for ac_header in sys/types.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recv" >&5 -$as_echo_n "checking for recv... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - -int main (void) -{ - - recv(0, 0, 0, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_recv="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - curl_cv_recv="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$curl_cv_recv" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for recv" >&5 -$as_echo_n "checking types of args and return type for recv... " >&6; } -if test "${curl_cv_func_recv_args+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_func_recv_args="unknown" - for recv_retv in 'int' 'ssize_t'; do - for recv_arg1 in 'int' 'ssize_t' 'SOCKET'; do - for recv_arg2 in 'char *' 'void *'; do - for recv_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do - for recv_arg4 in 'int' 'unsigned int'; do - if test "$curl_cv_func_recv_args" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define RECVCALLCONV PASCAL -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define RECVCALLCONV -#endif - extern $recv_retv RECVCALLCONV - recv($recv_arg1, $recv_arg2, $recv_arg3, $recv_arg4); - -int main (void) -{ - - $recv_arg1 s=0; - $recv_arg2 buf=0; - $recv_arg3 len=0; - $recv_arg4 flags=0; - $recv_retv res = recv(s, buf, len, flags); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_func_recv_args="$recv_arg1,$recv_arg2,$recv_arg3,$recv_arg4,$recv_retv" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - done - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_recv_args" >&5 -$as_echo "$curl_cv_func_recv_args" >&6; } # AC-CACHE-CHECK - if test "$curl_cv_func_recv_args" = "unknown"; then - as_fn_error "Cannot find proper types to use for recv args" "$LINENO" 5 - else - recv_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_recv_args" | sed 's/\*/\*/g'` - IFS=$recv_prev_IFS - shift - # - -cat >>confdefs.h <<_ACEOF -#define RECV_TYPE_ARG1 $1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECV_TYPE_ARG2 $2 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECV_TYPE_ARG3 $3 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECV_TYPE_ARG4 $4 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECV_TYPE_RETV $5 -_ACEOF - - # - -cat >>confdefs.h <<_ACEOF -#define HAVE_RECV 1 -_ACEOF - - ac_cv_func_recv="yes" - fi - else - as_fn_error "Unable to link function recv" "$LINENO" 5 - fi - - - for ac_header in sys/types.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recvfrom" >&5 -$as_echo_n "checking for recvfrom... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - -int main (void) -{ - - recvfrom(0, 0, 0, 0, 0, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_recvfrom="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - curl_cv_recvfrom="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$curl_cv_recvfrom" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for recvfrom" >&5 -$as_echo_n "checking types of args and return type for recvfrom... " >&6; } -if test "${curl_cv_func_recvfrom_args+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_func_recvfrom_args="unknown" - for recvfrom_retv in 'int' 'ssize_t'; do - for recvfrom_arg1 in 'int' 'ssize_t' 'SOCKET'; do - for recvfrom_arg2 in 'char *' 'void *'; do - for recvfrom_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do - for recvfrom_arg4 in 'int' 'unsigned int'; do - for recvfrom_arg5 in 'struct sockaddr *' 'void *' 'const struct sockaddr *'; do - for recvfrom_arg6 in 'socklen_t *' 'int *' 'unsigned int *' 'size_t *' 'void *'; do - if test "$curl_cv_func_recvfrom_args" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define RECVFROMCALLCONV PASCAL -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define RECVFROMCALLCONV -#endif - extern $recvfrom_retv RECVFROMCALLCONV - recvfrom($recvfrom_arg1, $recvfrom_arg2, - $recvfrom_arg3, $recvfrom_arg4, - $recvfrom_arg5, $recvfrom_arg6); - -int main (void) -{ - - $recvfrom_arg1 s=0; - $recvfrom_arg2 buf=0; - $recvfrom_arg3 len=0; - $recvfrom_arg4 flags=0; - $recvfrom_arg5 addr=0; - $recvfrom_arg6 addrlen=0; - $recvfrom_retv res=0; - res = recvfrom(s, buf, len, flags, addr, addrlen); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_func_recvfrom_args="$recvfrom_arg1,$recvfrom_arg2,$recvfrom_arg3,$recvfrom_arg4,$recvfrom_arg5,$recvfrom_arg6,$recvfrom_retv" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - done - done - done - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_recvfrom_args" >&5 -$as_echo "$curl_cv_func_recvfrom_args" >&6; } # AC-CACHE-CHECK - # Nearly last minute change for this release starts here - -cat >>confdefs.h <<_ACEOF -#define HAVE_RECVFROM 1 -_ACEOF - - ac_cv_func_recvfrom="yes" - # Nearly last minute change for this release ends here - if test "$curl_cv_func_recvfrom_args" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find proper types to use for recvfrom args" >&5 -$as_echo "$as_me: WARNING: Cannot find proper types to use for recvfrom args" >&2;} - else - recvfrom_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_recvfrom_args" | sed 's/\*/\*/g'` - IFS=$recvfrom_prev_IFS - shift - # - recvfrom_ptrt_arg2=$2 - recvfrom_qual_ptrt_arg5=$5 - recvfrom_ptrt_arg6=$6 - # - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG1 $1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG3 $3 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG4 $4 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_RETV $7 -_ACEOF - - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$recvfrom_qual_ptrt_arg5" in - const*) - recvfrom_qual_arg5=const - recvfrom_ptrt_arg5=`echo $recvfrom_qual_ptrt_arg5 | sed 's/^const //'` - ;; - *) - recvfrom_qual_arg5= - recvfrom_ptrt_arg5=$recvfrom_qual_ptrt_arg5 - ;; - esac - # - recvfrom_type_arg2=`echo $recvfrom_ptrt_arg2 | sed 's/ \*//'` - recvfrom_type_arg5=`echo $recvfrom_ptrt_arg5 | sed 's/ \*//'` - recvfrom_type_arg6=`echo $recvfrom_ptrt_arg6 | sed 's/ \*//'` - # - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG2 $recvfrom_type_arg2 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_QUAL_ARG5 $recvfrom_qual_arg5 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG5 $recvfrom_type_arg5 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG6 $recvfrom_type_arg6 -_ACEOF - - # - if test "$recvfrom_type_arg2" = "void"; then - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG2_IS_VOID 1 -_ACEOF - - fi - if test "$recvfrom_type_arg5" = "void"; then - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG5_IS_VOID 1 -_ACEOF - - fi - if test "$recvfrom_type_arg6" = "void"; then - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG6_IS_VOID 1 -_ACEOF - - fi - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define HAVE_RECVFROM 1 -_ACEOF - - ac_cv_func_recvfrom="yes" - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to link function recvfrom" >&5 -$as_echo "$as_me: WARNING: Unable to link function recvfrom" >&2;} - fi - - - for ac_header in sys/types.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for send" >&5 -$as_echo_n "checking for send... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - -int main (void) -{ - - send(0, 0, 0, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_send="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - curl_cv_send="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$curl_cv_send" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for send" >&5 -$as_echo_n "checking types of args and return type for send... " >&6; } -if test "${curl_cv_func_send_args+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_func_send_args="unknown" - for send_retv in 'int' 'ssize_t'; do - for send_arg1 in 'int' 'ssize_t' 'SOCKET'; do - for send_arg2 in 'char *' 'void *' 'const char *' 'const void *'; do - for send_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do - for send_arg4 in 'int' 'unsigned int'; do - if test "$curl_cv_func_send_args" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define SENDCALLCONV PASCAL -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define SENDCALLCONV -#endif - extern $send_retv SENDCALLCONV - send($send_arg1, $send_arg2, $send_arg3, $send_arg4); - -int main (void) -{ - - $send_arg1 s=0; - $send_arg3 len=0; - $send_arg4 flags=0; - $send_retv res = send(s, 0, len, flags); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_func_send_args="$send_arg1,$send_arg2,$send_arg3,$send_arg4,$send_retv" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - done - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_send_args" >&5 -$as_echo "$curl_cv_func_send_args" >&6; } # AC-CACHE-CHECK - if test "$curl_cv_func_send_args" = "unknown"; then - as_fn_error "Cannot find proper types to use for send args" "$LINENO" 5 - else - send_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_send_args" | sed 's/\*/\*/g'` - IFS=$send_prev_IFS - shift - # - send_qual_type_arg2=$2 - # - -cat >>confdefs.h <<_ACEOF -#define SEND_TYPE_ARG1 $1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SEND_TYPE_ARG3 $3 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SEND_TYPE_ARG4 $4 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SEND_TYPE_RETV $5 -_ACEOF - - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$send_qual_type_arg2" in - const*) - send_qual_arg2=const - send_type_arg2=`echo $send_qual_type_arg2 | sed 's/^const //'` - ;; - *) - send_qual_arg2= - send_type_arg2=$send_qual_type_arg2 - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define SEND_QUAL_ARG2 $send_qual_arg2 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SEND_TYPE_ARG2 $send_type_arg2 -_ACEOF - - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define HAVE_SEND 1 -_ACEOF - - ac_cv_func_send="yes" - fi - else - as_fn_error "Unable to link function send" "$LINENO" 5 - fi - - - for ac_header in sys/types.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MSG_NOSIGNAL" >&5 -$as_echo_n "checking for MSG_NOSIGNAL... " >&6; } -if test "${ac_cv_msg_nosignal+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - -int main (void) -{ - - int flag=MSG_NOSIGNAL; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_msg_nosignal="yes" - -else - - ac_cv_msg_nosignal="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_msg_nosignal" >&5 -$as_echo "$ac_cv_msg_nosignal" >&6; } - case "$ac_cv_msg_nosignal" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_MSG_NOSIGNAL 1 -_ACEOF - - ;; - esac - - - -curl_includes_unistd="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_unistd -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_alarm="unknown" - tst_proto_alarm="unknown" - tst_compi_alarm="unknown" - tst_allow_alarm="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm can be linked" >&5 -$as_echo_n "checking if alarm can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define alarm innocuous_alarm -#ifdef __STDC__ -# include -#else -# include -#endif -#undef alarm -#ifdef __cplusplus -extern "C" -#endif -char alarm (); -#if defined __stub_alarm || defined __stub___alarm -choke me -#endif - -int main (void) -{ -return alarm (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_alarm="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_alarm="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_alarm" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm is prototyped" >&5 -$as_echo_n "checking if alarm is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_unistd - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "alarm" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_alarm="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_alarm="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_alarm" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm is compilable" >&5 -$as_echo_n "checking if alarm is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_unistd - -int main (void) -{ - - if(0 != alarm(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_alarm="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_alarm="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_alarm" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm usage allowed" >&5 -$as_echo_n "checking if alarm usage allowed... " >&6; } - if test "x$curl_disallow_alarm" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_alarm="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_alarm="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm might be used" >&5 -$as_echo_n "checking if alarm might be used... " >&6; } - if test "$tst_links_alarm" = "yes" && - test "$tst_proto_alarm" = "yes" && - test "$tst_compi_alarm" = "yes" && - test "$tst_allow_alarm" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_ALARM 1 -_ACEOF - - ac_cv_func_alarm="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_alarm="no" - fi - - -curl_includes_string="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_STRING_H -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h string.h strings.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_string -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -curl_includes_libgen="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_LIBGEN_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h libgen.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_libgen -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_basename="unknown" - tst_proto_basename="unknown" - tst_compi_basename="unknown" - tst_allow_basename="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename can be linked" >&5 -$as_echo_n "checking if basename can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define basename innocuous_basename -#ifdef __STDC__ -# include -#else -# include -#endif -#undef basename -#ifdef __cplusplus -extern "C" -#endif -char basename (); -#if defined __stub_basename || defined __stub___basename -choke me -#endif - -int main (void) -{ -return basename (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_basename="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_basename="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_basename" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename is prototyped" >&5 -$as_echo_n "checking if basename is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - $curl_includes_libgen - $curl_includes_unistd - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "basename" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_basename="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_basename="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_basename" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename is compilable" >&5 -$as_echo_n "checking if basename is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - $curl_includes_libgen - $curl_includes_unistd - -int main (void) -{ - - if(0 != basename(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_basename="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_basename="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_basename" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename usage allowed" >&5 -$as_echo_n "checking if basename usage allowed... " >&6; } - if test "x$curl_disallow_basename" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_basename="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_basename="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename might be used" >&5 -$as_echo_n "checking if basename might be used... " >&6; } - if test "$tst_links_basename" = "yes" && - test "$tst_proto_basename" = "yes" && - test "$tst_compi_basename" = "yes" && - test "$tst_allow_basename" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_BASENAME 1 -_ACEOF - - ac_cv_func_basename="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_basename="no" - fi - - -curl_includes_socket="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SOCKET_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_socket -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_closesocket="unknown" - tst_proto_closesocket="unknown" - tst_compi_closesocket="unknown" - tst_allow_closesocket="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket can be linked" >&5 -$as_echo_n "checking if closesocket can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_socket - -int main (void) -{ - - if(0 != closesocket(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_closesocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_closesocket="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_closesocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket is prototyped" >&5 -$as_echo_n "checking if closesocket is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "closesocket" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_closesocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_closesocket="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_closesocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket is compilable" >&5 -$as_echo_n "checking if closesocket is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_socket - -int main (void) -{ - - if(0 != closesocket(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_closesocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_closesocket="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_closesocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket usage allowed" >&5 -$as_echo_n "checking if closesocket usage allowed... " >&6; } - if test "x$curl_disallow_closesocket" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_closesocket="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_closesocket="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket might be used" >&5 -$as_echo_n "checking if closesocket might be used... " >&6; } - if test "$tst_links_closesocket" = "yes" && - test "$tst_proto_closesocket" = "yes" && - test "$tst_compi_closesocket" = "yes" && - test "$tst_allow_closesocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_CLOSESOCKET 1 -_ACEOF - - ac_cv_func_closesocket="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_closesocket="no" - fi - - - # - tst_links_closesocket_camel="unknown" - tst_proto_closesocket_camel="unknown" - tst_compi_closesocket_camel="unknown" - tst_allow_closesocket_camel="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket can be linked" >&5 -$as_echo_n "checking if CloseSocket can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_socket - -int main (void) -{ - - if(0 != CloseSocket(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_closesocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_closesocket_camel="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_closesocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is prototyped" >&5 -$as_echo_n "checking if CloseSocket is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_sys_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "CloseSocket" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_closesocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_closesocket_camel="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_closesocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is compilable" >&5 -$as_echo_n "checking if CloseSocket is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_socket - -int main (void) -{ - - if(0 != CloseSocket(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_closesocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_closesocket_camel="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_closesocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket usage allowed" >&5 -$as_echo_n "checking if CloseSocket usage allowed... " >&6; } - if test "x$curl_disallow_closesocket_camel" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_closesocket_camel="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_closesocket_camel="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket might be used" >&5 -$as_echo_n "checking if CloseSocket might be used... " >&6; } - if test "$tst_links_closesocket_camel" = "yes" && - test "$tst_proto_closesocket_camel" = "yes" && - test "$tst_compi_closesocket_camel" = "yes" && - test "$tst_allow_closesocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_CLOSESOCKET_CAMEL 1 -_ACEOF - - ac_cv_func_closesocket_camel="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_closesocket_camel="no" - fi - - - # - tst_links_connect="unknown" - tst_proto_connect="unknown" - tst_compi_connect="unknown" - tst_allow_connect="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect can be linked" >&5 -$as_echo_n "checking if connect can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -int main (void) -{ - - if(0 != connect(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_connect="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_connect="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_connect" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect is prototyped" >&5 -$as_echo_n "checking if connect is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "connect" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_connect="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_connect="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_connect" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect is compilable" >&5 -$as_echo_n "checking if connect is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -int main (void) -{ - - if(0 != connect(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_connect="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_connect="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_connect" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect usage allowed" >&5 -$as_echo_n "checking if connect usage allowed... " >&6; } - if test "x$curl_disallow_connect" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_connect="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_connect="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect might be used" >&5 -$as_echo_n "checking if connect might be used... " >&6; } - if test "$tst_links_connect" = "yes" && - test "$tst_proto_connect" = "yes" && - test "$tst_compi_connect" = "yes" && - test "$tst_allow_connect" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_CONNECT 1 -_ACEOF - - ac_cv_func_connect="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_connect="no" - fi - - -curl_includes_fcntl="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef HAVE_FCNTL_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h unistd.h fcntl.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_fcntl -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_fcntl="unknown" - tst_proto_fcntl="unknown" - tst_compi_fcntl="unknown" - tst_allow_fcntl="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl can be linked" >&5 -$as_echo_n "checking if fcntl can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define fcntl innocuous_fcntl -#ifdef __STDC__ -# include -#else -# include -#endif -#undef fcntl -#ifdef __cplusplus -extern "C" -#endif -char fcntl (); -#if defined __stub_fcntl || defined __stub___fcntl -choke me -#endif - -int main (void) -{ -return fcntl (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_fcntl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_fcntl="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_fcntl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl is prototyped" >&5 -$as_echo_n "checking if fcntl is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_fcntl - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "fcntl" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_fcntl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_fcntl="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_fcntl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl is compilable" >&5 -$as_echo_n "checking if fcntl is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_fcntl - -int main (void) -{ - - if(0 != fcntl(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_fcntl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_fcntl="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_fcntl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl usage allowed" >&5 -$as_echo_n "checking if fcntl usage allowed... " >&6; } - if test "x$curl_disallow_fcntl" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_fcntl="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_fcntl="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl might be used" >&5 -$as_echo_n "checking if fcntl might be used... " >&6; } - if test "$tst_links_fcntl" = "yes" && - test "$tst_proto_fcntl" = "yes" && - test "$tst_compi_fcntl" = "yes" && - test "$tst_allow_fcntl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FCNTL 1 -_ACEOF - - ac_cv_func_fcntl="yes" - - # - tst_compi_fcntl_o_nonblock="unknown" - tst_allow_fcntl_o_nonblock="unknown" - # - case $host_os in - sunos4* | aix3* | beos*) - curl_disallow_fcntl_o_nonblock="yes" - ;; - esac - # - if test "$ac_cv_func_fcntl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK is compilable" >&5 -$as_echo_n "checking if fcntl O_NONBLOCK is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_fcntl - -int main (void) -{ - - int flags = 0; - if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_fcntl_o_nonblock="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_fcntl_o_nonblock="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_fcntl_o_nonblock" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK usage allowed" >&5 -$as_echo_n "checking if fcntl O_NONBLOCK usage allowed... " >&6; } - if test "x$curl_disallow_fcntl_o_nonblock" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_fcntl_o_nonblock="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_fcntl_o_nonblock="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK might be used" >&5 -$as_echo_n "checking if fcntl O_NONBLOCK might be used... " >&6; } - if test "$tst_compi_fcntl_o_nonblock" = "yes" && - test "$tst_allow_fcntl_o_nonblock" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FCNTL_O_NONBLOCK 1 -_ACEOF - - ac_cv_func_fcntl_o_nonblock="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_fcntl_o_nonblock="no" - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_fcntl="no" - fi - - -curl_includes_stdio="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_STDIO_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h stdio.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_stdio -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_fdopen="unknown" - tst_proto_fdopen="unknown" - tst_compi_fdopen="unknown" - tst_allow_fdopen="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fdopen can be linked" >&5 -$as_echo_n "checking if fdopen can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define fdopen innocuous_fdopen -#ifdef __STDC__ -# include -#else -# include -#endif -#undef fdopen -#ifdef __cplusplus -extern "C" -#endif -char fdopen (); -#if defined __stub_fdopen || defined __stub___fdopen -choke me -#endif - -int main (void) -{ -return fdopen (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_fdopen="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_fdopen="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_fdopen" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fdopen is prototyped" >&5 -$as_echo_n "checking if fdopen is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_stdio - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "fdopen" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_fdopen="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_fdopen="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_fdopen" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fdopen is compilable" >&5 -$as_echo_n "checking if fdopen is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdio - -int main (void) -{ - - if(0 != fdopen(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_fdopen="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_fdopen="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_fdopen" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fdopen usage allowed" >&5 -$as_echo_n "checking if fdopen usage allowed... " >&6; } - if test "x$curl_disallow_fdopen" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_fdopen="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_fdopen="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fdopen might be used" >&5 -$as_echo_n "checking if fdopen might be used... " >&6; } - if test "$tst_links_fdopen" = "yes" && - test "$tst_proto_fdopen" = "yes" && - test "$tst_compi_fdopen" = "yes" && - test "$tst_allow_fdopen" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FDOPEN 1 -_ACEOF - - ac_cv_func_fdopen="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_fdopen="no" - fi - - -curl_includes_netdb="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_NETDB_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h netdb.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_netdb -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_freeaddrinfo="unknown" - tst_proto_freeaddrinfo="unknown" - tst_compi_freeaddrinfo="unknown" - tst_allow_freeaddrinfo="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo can be linked" >&5 -$as_echo_n "checking if freeaddrinfo can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - freeaddrinfo(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_freeaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_freeaddrinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_freeaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo is prototyped" >&5 -$as_echo_n "checking if freeaddrinfo is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "freeaddrinfo" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_freeaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_freeaddrinfo="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_freeaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo is compilable" >&5 -$as_echo_n "checking if freeaddrinfo is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - freeaddrinfo(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_freeaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_freeaddrinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_freeaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo usage allowed" >&5 -$as_echo_n "checking if freeaddrinfo usage allowed... " >&6; } - if test "x$curl_disallow_freeaddrinfo" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_freeaddrinfo="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_freeaddrinfo="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo might be used" >&5 -$as_echo_n "checking if freeaddrinfo might be used... " >&6; } - if test "$tst_links_freeaddrinfo" = "yes" && - test "$tst_proto_freeaddrinfo" = "yes" && - test "$tst_compi_freeaddrinfo" = "yes" && - test "$tst_allow_freeaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FREEADDRINFO 1 -_ACEOF - - ac_cv_func_freeaddrinfo="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_freeaddrinfo="no" - fi - - -curl_includes_ifaddrs="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -#ifdef HAVE_NETINET_IN_H -# include -#endif -#ifdef HAVE_IFADDRS_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h sys/socket.h netinet/in.h ifaddrs.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_ifaddrs -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_freeifaddrs="unknown" - tst_proto_freeifaddrs="unknown" - tst_compi_freeifaddrs="unknown" - tst_allow_freeifaddrs="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeifaddrs can be linked" >&5 -$as_echo_n "checking if freeifaddrs can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define freeifaddrs innocuous_freeifaddrs -#ifdef __STDC__ -# include -#else -# include -#endif -#undef freeifaddrs -#ifdef __cplusplus -extern "C" -#endif -char freeifaddrs (); -#if defined __stub_freeifaddrs || defined __stub___freeifaddrs -choke me -#endif - -int main (void) -{ -return freeifaddrs (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_freeifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_freeifaddrs="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_freeifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeifaddrs is prototyped" >&5 -$as_echo_n "checking if freeifaddrs is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_ifaddrs - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "freeifaddrs" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_freeifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_freeifaddrs="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_freeifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeifaddrs is compilable" >&5 -$as_echo_n "checking if freeifaddrs is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ifaddrs - -int main (void) -{ - - freeifaddrs(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_freeifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_freeifaddrs="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_freeifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeifaddrs usage allowed" >&5 -$as_echo_n "checking if freeifaddrs usage allowed... " >&6; } - if test "x$curl_disallow_freeifaddrs" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_freeifaddrs="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_freeifaddrs="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeifaddrs might be used" >&5 -$as_echo_n "checking if freeifaddrs might be used... " >&6; } - if test "$tst_links_freeifaddrs" = "yes" && - test "$tst_proto_freeifaddrs" = "yes" && - test "$tst_compi_freeifaddrs" = "yes" && - test "$tst_allow_freeifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FREEIFADDRS 1 -_ACEOF - - ac_cv_func_freeifaddrs="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_freeifaddrs="no" - fi - - -curl_includes_sys_xattr="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_XATTR_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h sys/xattr.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_xattr -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_fsetxattr="unknown" - tst_proto_fsetxattr="unknown" - tst_compi_fsetxattr="unknown" - tst_allow_fsetxattr="unknown" - tst_nargs_fsetxattr="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr can be linked" >&5 -$as_echo_n "checking if fsetxattr can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define fsetxattr innocuous_fsetxattr -#ifdef __STDC__ -# include -#else -# include -#endif -#undef fsetxattr -#ifdef __cplusplus -extern "C" -#endif -char fsetxattr (); -#if defined __stub_fsetxattr || defined __stub___fsetxattr -choke me -#endif - -int main (void) -{ -return fsetxattr (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_fsetxattr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_fsetxattr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_fsetxattr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr is prototyped" >&5 -$as_echo_n "checking if fsetxattr is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_sys_xattr - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "fsetxattr" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_fsetxattr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_fsetxattr="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_fsetxattr" = "yes"; then - if test "$tst_nargs_fsetxattr" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr takes 5 args." >&5 -$as_echo_n "checking if fsetxattr takes 5 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_xattr - -int main (void) -{ - - if(0 != fsetxattr(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_fsetxattr="yes" - tst_nargs_fsetxattr="5" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_fsetxattr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_fsetxattr" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr takes 6 args." >&5 -$as_echo_n "checking if fsetxattr takes 6 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_xattr - -int main (void) -{ - - if(0 != fsetxattr(0, 0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_fsetxattr="yes" - tst_nargs_fsetxattr="6" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_fsetxattr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr is compilable" >&5 -$as_echo_n "checking if fsetxattr is compilable... " >&6; } - if test "$tst_compi_fsetxattr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - if test "$tst_compi_fsetxattr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr usage allowed" >&5 -$as_echo_n "checking if fsetxattr usage allowed... " >&6; } - if test "x$curl_disallow_fsetxattr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_fsetxattr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_fsetxattr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr might be used" >&5 -$as_echo_n "checking if fsetxattr might be used... " >&6; } - if test "$tst_links_fsetxattr" = "yes" && - test "$tst_proto_fsetxattr" = "yes" && - test "$tst_compi_fsetxattr" = "yes" && - test "$tst_allow_fsetxattr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FSETXATTR 1 -_ACEOF - - # - if test "$tst_nargs_fsetxattr" -eq "5"; then - -$as_echo "#define HAVE_FSETXATTR_5 1" >>confdefs.h - - elif test "$tst_nargs_fsetxattr" -eq "6"; then - -$as_echo "#define HAVE_FSETXATTR_6 1" >>confdefs.h - - fi - # - ac_cv_func_fsetxattr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_fsetxattr="no" - fi - - - # - tst_links_ftruncate="unknown" - tst_proto_ftruncate="unknown" - tst_compi_ftruncate="unknown" - tst_allow_ftruncate="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate can be linked" >&5 -$as_echo_n "checking if ftruncate can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define ftruncate innocuous_ftruncate -#ifdef __STDC__ -# include -#else -# include -#endif -#undef ftruncate -#ifdef __cplusplus -extern "C" -#endif -char ftruncate (); -#if defined __stub_ftruncate || defined __stub___ftruncate -choke me -#endif - -int main (void) -{ -return ftruncate (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_ftruncate="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_ftruncate="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_ftruncate" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate is prototyped" >&5 -$as_echo_n "checking if ftruncate is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_unistd - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "ftruncate" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_ftruncate="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_ftruncate="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_ftruncate" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate is compilable" >&5 -$as_echo_n "checking if ftruncate is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_unistd - -int main (void) -{ - - if(0 != ftruncate(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ftruncate="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ftruncate="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ftruncate" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate usage allowed" >&5 -$as_echo_n "checking if ftruncate usage allowed... " >&6; } - if test "x$curl_disallow_ftruncate" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ftruncate="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ftruncate="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate might be used" >&5 -$as_echo_n "checking if ftruncate might be used... " >&6; } - if test "$tst_links_ftruncate" = "yes" && - test "$tst_proto_ftruncate" = "yes" && - test "$tst_compi_ftruncate" = "yes" && - test "$tst_allow_ftruncate" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FTRUNCATE 1 -_ACEOF - - ac_cv_func_ftruncate="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ftruncate="no" - fi - - -curl_includes_stdlib="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_STDLIB_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h stdlib.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_stdlib -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_getaddrinfo="unknown" - tst_proto_getaddrinfo="unknown" - tst_compi_getaddrinfo="unknown" - tst_works_getaddrinfo="unknown" - tst_allow_getaddrinfo="unknown" - tst_tsafe_getaddrinfo="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo can be linked" >&5 -$as_echo_n "checking if getaddrinfo can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - if(0 != getaddrinfo(0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_getaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_getaddrinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_getaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is prototyped" >&5 -$as_echo_n "checking if getaddrinfo is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getaddrinfo" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_getaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_getaddrinfo="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_getaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is compilable" >&5 -$as_echo_n "checking if getaddrinfo is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - if(0 != getaddrinfo(0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_getaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_getaddrinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_getaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo seems to work" >&5 -$as_echo_n "checking if getaddrinfo seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_stdlib - $curl_includes_string - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - struct addrinfo hints; - struct addrinfo *ai = 0; - int error; - - memset(&hints, 0, sizeof(hints)); - hints.ai_flags = AI_NUMERICHOST; - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - error = getaddrinfo("127.0.0.1", 0, &hints, &ai); - if(error || !ai) - exit(1); /* fail */ - else - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_getaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_getaddrinfo="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_getaddrinfo" = "yes" && - test "$tst_works_getaddrinfo" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo usage allowed" >&5 -$as_echo_n "checking if getaddrinfo usage allowed... " >&6; } - if test "x$curl_disallow_getaddrinfo" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_getaddrinfo="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_getaddrinfo="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo might be used" >&5 -$as_echo_n "checking if getaddrinfo might be used... " >&6; } - if test "$tst_links_getaddrinfo" = "yes" && - test "$tst_proto_getaddrinfo" = "yes" && - test "$tst_compi_getaddrinfo" = "yes" && - test "$tst_allow_getaddrinfo" = "yes" && - test "$tst_works_getaddrinfo" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETADDRINFO 1 -_ACEOF - - ac_cv_func_getaddrinfo="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_getaddrinfo="no" - ac_cv_func_getaddrinfo_threadsafe="no" - fi - # - if test "$ac_cv_func_getaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is threadsafe" >&5 -$as_echo_n "checking if getaddrinfo is threadsafe... " >&6; } - case $host_os in - aix[1234].* | aix5.[01].*) - tst_tsafe_getaddrinfo="no" - ;; - aix*) - tst_tsafe_getaddrinfo="yes" - ;; - darwin[12345].*) - tst_tsafe_getaddrinfo="no" - ;; - darwin*) - tst_tsafe_getaddrinfo="yes" - ;; - freebsd[1234].* | freebsd5.[1234]*) - tst_tsafe_getaddrinfo="no" - ;; - freebsd*) - tst_tsafe_getaddrinfo="yes" - ;; - hpux[123456789].* | hpux10.* | hpux11.0* | hpux11.10*) - tst_tsafe_getaddrinfo="no" - ;; - hpux*) - tst_tsafe_getaddrinfo="yes" - ;; - netbsd[123].*) - tst_tsafe_getaddrinfo="no" - ;; - netbsd*) - tst_tsafe_getaddrinfo="yes" - ;; - *bsd*) - tst_tsafe_getaddrinfo="no" - ;; - solaris2*) - tst_tsafe_getaddrinfo="yes" - ;; - esac - if test "$tst_tsafe_getaddrinfo" = "unknown" && - test "$ac_cv_native_windows" = "yes"; then - tst_tsafe_getaddrinfo="yes" - fi - if test "$tst_tsafe_getaddrinfo" = "unknown"; then - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ -#ifdef h_errno - return 0; -#else - force compilation error -#endif -} - - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tst_symbol_defined="yes" - -else - - tst_symbol_defined="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tst_symbol_defined" = "yes"; then - curl_cv_have_def_h_errno=yes - - else - curl_cv_have_def_h_errno=no - - fi - - if test "$curl_cv_have_def_h_errno" = "yes"; then - tst_h_errno_macro="yes" - else - tst_h_errno_macro="no" - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - h_errno = 2; - if(0 != h_errno) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tst_h_errno_modifiable_lvalue="yes" - -else - - tst_h_errno_modifiable_lvalue="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200809L) - return 0; -#elif defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 700) - return 0; -#else - force compilation error -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tst_h_errno_sbs_issue_7="yes" - -else - - tst_h_errno_sbs_issue_7="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tst_h_errno_macro" = "no" && - test "$tst_h_errno_modifiable_lvalue" = "no" && - test "$tst_h_errno_sbs_issue_7" = "no"; then - tst_tsafe_getaddrinfo="no" - else - tst_tsafe_getaddrinfo="yes" - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_tsafe_getaddrinfo" >&5 -$as_echo "$tst_tsafe_getaddrinfo" >&6; } - if test "$tst_tsafe_getaddrinfo" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETADDRINFO_THREADSAFE 1 -_ACEOF - - ac_cv_func_getaddrinfo_threadsafe="yes" - else - ac_cv_func_getaddrinfo_threadsafe="no" - fi - fi - - - # - tst_links_gai_strerror="unknown" - tst_proto_gai_strerror="unknown" - tst_compi_gai_strerror="unknown" - tst_allow_gai_strerror="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gai_strerror can be linked" >&5 -$as_echo_n "checking if gai_strerror can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_netdb - -int main (void) -{ - - if(0 != gai_strerror(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gai_strerror="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gai_strerror="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gai_strerror" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gai_strerror is prototyped" >&5 -$as_echo_n "checking if gai_strerror is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gai_strerror" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gai_strerror="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gai_strerror="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gai_strerror" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gai_strerror is compilable" >&5 -$as_echo_n "checking if gai_strerror is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_netdb - -int main (void) -{ - - if(0 != gai_strerror(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gai_strerror="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gai_strerror="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_gai_strerror" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gai_strerror usage allowed" >&5 -$as_echo_n "checking if gai_strerror usage allowed... " >&6; } - if test "x$curl_disallow_gai_strerror" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gai_strerror="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gai_strerror="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gai_strerror might be used" >&5 -$as_echo_n "checking if gai_strerror might be used... " >&6; } - if test "$tst_links_gai_strerror" = "yes" && - test "$tst_proto_gai_strerror" = "yes" && - test "$tst_compi_gai_strerror" = "yes" && - test "$tst_allow_gai_strerror" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GAI_STRERROR 1 -_ACEOF - - ac_cv_func_gai_strerror="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gai_strerror="no" - fi - - - # - tst_links_gethostbyaddr="unknown" - tst_proto_gethostbyaddr="unknown" - tst_compi_gethostbyaddr="unknown" - tst_allow_gethostbyaddr="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr can be linked" >&5 -$as_echo_n "checking if gethostbyaddr can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyaddr(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gethostbyaddr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gethostbyaddr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gethostbyaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr is prototyped" >&5 -$as_echo_n "checking if gethostbyaddr is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyaddr" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gethostbyaddr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gethostbyaddr="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gethostbyaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr is compilable" >&5 -$as_echo_n "checking if gethostbyaddr is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyaddr(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyaddr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyaddr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_gethostbyaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr usage allowed" >&5 -$as_echo_n "checking if gethostbyaddr usage allowed... " >&6; } - if test "x$curl_disallow_gethostbyaddr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gethostbyaddr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gethostbyaddr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr might be used" >&5 -$as_echo_n "checking if gethostbyaddr might be used... " >&6; } - if test "$tst_links_gethostbyaddr" = "yes" && - test "$tst_proto_gethostbyaddr" = "yes" && - test "$tst_compi_gethostbyaddr" = "yes" && - test "$tst_allow_gethostbyaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYADDR 1 -_ACEOF - - ac_cv_func_gethostbyaddr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gethostbyaddr="no" - fi - - - # - tst_links_gethostbyaddr_r="unknown" - tst_proto_gethostbyaddr_r="unknown" - tst_compi_gethostbyaddr_r="unknown" - tst_allow_gethostbyaddr_r="unknown" - tst_nargs_gethostbyaddr_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r can be linked" >&5 -$as_echo_n "checking if gethostbyaddr_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gethostbyaddr_r innocuous_gethostbyaddr_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gethostbyaddr_r -#ifdef __cplusplus -extern "C" -#endif -char gethostbyaddr_r (); -#if defined __stub_gethostbyaddr_r || defined __stub___gethostbyaddr_r -choke me -#endif - -int main (void) -{ -return gethostbyaddr_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gethostbyaddr_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gethostbyaddr_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gethostbyaddr_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r is prototyped" >&5 -$as_echo_n "checking if gethostbyaddr_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyaddr_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gethostbyaddr_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gethostbyaddr_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gethostbyaddr_r" = "yes"; then - if test "$tst_nargs_gethostbyaddr_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r takes 5 args." >&5 -$as_echo_n "checking if gethostbyaddr_r takes 5 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyaddr_r(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyaddr_r="yes" - tst_nargs_gethostbyaddr_r="5" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyaddr_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_gethostbyaddr_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r takes 7 args." >&5 -$as_echo_n "checking if gethostbyaddr_r takes 7 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyaddr_r(0, 0, 0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyaddr_r="yes" - tst_nargs_gethostbyaddr_r="7" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyaddr_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_gethostbyaddr_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r takes 8 args." >&5 -$as_echo_n "checking if gethostbyaddr_r takes 8 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyaddr_r(0, 0, 0, 0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyaddr_r="yes" - tst_nargs_gethostbyaddr_r="8" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyaddr_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r is compilable" >&5 -$as_echo_n "checking if gethostbyaddr_r is compilable... " >&6; } - if test "$tst_compi_gethostbyaddr_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - if test "$tst_compi_gethostbyaddr_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r usage allowed" >&5 -$as_echo_n "checking if gethostbyaddr_r usage allowed... " >&6; } - if test "x$curl_disallow_gethostbyaddr_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gethostbyaddr_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gethostbyaddr_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r might be used" >&5 -$as_echo_n "checking if gethostbyaddr_r might be used... " >&6; } - if test "$tst_links_gethostbyaddr_r" = "yes" && - test "$tst_proto_gethostbyaddr_r" = "yes" && - test "$tst_compi_gethostbyaddr_r" = "yes" && - test "$tst_allow_gethostbyaddr_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYADDR_R 1 -_ACEOF - - # - if test "$tst_nargs_gethostbyaddr_r" -eq "5"; then - -$as_echo "#define HAVE_GETHOSTBYADDR_R_5 1" >>confdefs.h - - elif test "$tst_nargs_gethostbyaddr_r" -eq "7"; then - -$as_echo "#define HAVE_GETHOSTBYADDR_R_7 1" >>confdefs.h - - elif test "$tst_nargs_gethostbyaddr_r" -eq "8"; then - -$as_echo "#define HAVE_GETHOSTBYADDR_R_8 1" >>confdefs.h - - fi - # - ac_cv_func_gethostbyaddr_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gethostbyaddr_r="no" - fi - - - # - tst_links_gethostbyname="unknown" - tst_proto_gethostbyname="unknown" - tst_compi_gethostbyname="unknown" - tst_allow_gethostbyname="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname can be linked" >&5 -$as_echo_n "checking if gethostbyname can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyname(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gethostbyname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gethostbyname="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gethostbyname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is prototyped" >&5 -$as_echo_n "checking if gethostbyname is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyname" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gethostbyname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gethostbyname="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gethostbyname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is compilable" >&5 -$as_echo_n "checking if gethostbyname is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyname(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyname="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_gethostbyname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname usage allowed" >&5 -$as_echo_n "checking if gethostbyname usage allowed... " >&6; } - if test "x$curl_disallow_gethostbyname" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gethostbyname="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gethostbyname="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname might be used" >&5 -$as_echo_n "checking if gethostbyname might be used... " >&6; } - if test "$tst_links_gethostbyname" = "yes" && - test "$tst_proto_gethostbyname" = "yes" && - test "$tst_compi_gethostbyname" = "yes" && - test "$tst_allow_gethostbyname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYNAME 1 -_ACEOF - - ac_cv_func_gethostbyname="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gethostbyname="no" - fi - - - # - tst_links_gethostbyname_r="unknown" - tst_proto_gethostbyname_r="unknown" - tst_compi_gethostbyname_r="unknown" - tst_allow_gethostbyname_r="unknown" - tst_nargs_gethostbyname_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r can be linked" >&5 -$as_echo_n "checking if gethostbyname_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gethostbyname_r innocuous_gethostbyname_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gethostbyname_r -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname_r (); -#if defined __stub_gethostbyname_r || defined __stub___gethostbyname_r -choke me -#endif - -int main (void) -{ -return gethostbyname_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gethostbyname_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gethostbyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gethostbyname_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r is prototyped" >&5 -$as_echo_n "checking if gethostbyname_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyname_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gethostbyname_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gethostbyname_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gethostbyname_r" = "yes"; then - if test "$tst_nargs_gethostbyname_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 3 args." >&5 -$as_echo_n "checking if gethostbyname_r takes 3 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyname_r(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyname_r="yes" - tst_nargs_gethostbyname_r="3" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_gethostbyname_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 5 args." >&5 -$as_echo_n "checking if gethostbyname_r takes 5 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyname_r(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyname_r="yes" - tst_nargs_gethostbyname_r="5" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_gethostbyname_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 6 args." >&5 -$as_echo_n "checking if gethostbyname_r takes 6 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyname_r(0, 0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyname_r="yes" - tst_nargs_gethostbyname_r="6" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r is compilable" >&5 -$as_echo_n "checking if gethostbyname_r is compilable... " >&6; } - if test "$tst_compi_gethostbyname_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - if test "$tst_compi_gethostbyname_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r usage allowed" >&5 -$as_echo_n "checking if gethostbyname_r usage allowed... " >&6; } - if test "x$curl_disallow_gethostbyname_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gethostbyname_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gethostbyname_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r might be used" >&5 -$as_echo_n "checking if gethostbyname_r might be used... " >&6; } - if test "$tst_links_gethostbyname_r" = "yes" && - test "$tst_proto_gethostbyname_r" = "yes" && - test "$tst_compi_gethostbyname_r" = "yes" && - test "$tst_allow_gethostbyname_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYNAME_R 1 -_ACEOF - - # - if test "$tst_nargs_gethostbyname_r" -eq "3"; then - -$as_echo "#define HAVE_GETHOSTBYNAME_R_3 1" >>confdefs.h - - elif test "$tst_nargs_gethostbyname_r" -eq "5"; then - -$as_echo "#define HAVE_GETHOSTBYNAME_R_5 1" >>confdefs.h - - elif test "$tst_nargs_gethostbyname_r" -eq "6"; then - -$as_echo "#define HAVE_GETHOSTBYNAME_R_6 1" >>confdefs.h - - fi - # - ac_cv_func_gethostbyname_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gethostbyname_r="no" - fi - - - # - tst_links_gethostname="unknown" - tst_proto_gethostname="unknown" - tst_compi_gethostname="unknown" - tst_allow_gethostname="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname can be linked" >&5 -$as_echo_n "checking if gethostname can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_unistd - -int main (void) -{ - - if(0 != gethostname(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gethostname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gethostname="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gethostname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname is prototyped" >&5 -$as_echo_n "checking if gethostname is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_unistd - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostname" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gethostname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gethostname="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gethostname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname is compilable" >&5 -$as_echo_n "checking if gethostname is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_unistd - -int main (void) -{ - - if(0 != gethostname(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostname="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_gethostname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname usage allowed" >&5 -$as_echo_n "checking if gethostname usage allowed... " >&6; } - if test "x$curl_disallow_gethostname" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gethostname="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gethostname="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname might be used" >&5 -$as_echo_n "checking if gethostname might be used... " >&6; } - if test "$tst_links_gethostname" = "yes" && - test "$tst_proto_gethostname" = "yes" && - test "$tst_compi_gethostname" = "yes" && - test "$tst_allow_gethostname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTNAME 1 -_ACEOF - - ac_cv_func_gethostname="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gethostname="no" - fi - - - # - tst_links_getifaddrs="unknown" - tst_proto_getifaddrs="unknown" - tst_compi_getifaddrs="unknown" - tst_works_getifaddrs="unknown" - tst_allow_getifaddrs="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs can be linked" >&5 -$as_echo_n "checking if getifaddrs can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define getifaddrs innocuous_getifaddrs -#ifdef __STDC__ -# include -#else -# include -#endif -#undef getifaddrs -#ifdef __cplusplus -extern "C" -#endif -char getifaddrs (); -#if defined __stub_getifaddrs || defined __stub___getifaddrs -choke me -#endif - -int main (void) -{ -return getifaddrs (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_getifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_getifaddrs="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_getifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs is prototyped" >&5 -$as_echo_n "checking if getifaddrs is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_ifaddrs - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getifaddrs" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_getifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_getifaddrs="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_getifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs is compilable" >&5 -$as_echo_n "checking if getifaddrs is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ifaddrs - -int main (void) -{ - - if(0 != getifaddrs(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_getifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_getifaddrs="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_getifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs seems to work" >&5 -$as_echo_n "checking if getifaddrs seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_ifaddrs - -int main (void) -{ - - struct ifaddrs *ifa = 0; - int error; - - error = getifaddrs(&ifa); - if(error || !ifa) - exit(1); /* fail */ - else - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_getifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_getifaddrs="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_getifaddrs" = "yes" && - test "$tst_works_getifaddrs" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs usage allowed" >&5 -$as_echo_n "checking if getifaddrs usage allowed... " >&6; } - if test "x$curl_disallow_getifaddrs" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_getifaddrs="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_getifaddrs="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs might be used" >&5 -$as_echo_n "checking if getifaddrs might be used... " >&6; } - if test "$tst_links_getifaddrs" = "yes" && - test "$tst_proto_getifaddrs" = "yes" && - test "$tst_compi_getifaddrs" = "yes" && - test "$tst_allow_getifaddrs" = "yes" && - test "$tst_works_getifaddrs" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETIFADDRS 1 -_ACEOF - - ac_cv_func_getifaddrs="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_getifaddrs="no" - fi - - - # - tst_links_getservbyport_r="unknown" - tst_proto_getservbyport_r="unknown" - tst_compi_getservbyport_r="unknown" - tst_allow_getservbyport_r="unknown" - tst_nargs_getservbyport_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r can be linked" >&5 -$as_echo_n "checking if getservbyport_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define getservbyport_r innocuous_getservbyport_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef getservbyport_r -#ifdef __cplusplus -extern "C" -#endif -char getservbyport_r (); -#if defined __stub_getservbyport_r || defined __stub___getservbyport_r -choke me -#endif - -int main (void) -{ -return getservbyport_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_getservbyport_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_getservbyport_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_getservbyport_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r is prototyped" >&5 -$as_echo_n "checking if getservbyport_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getservbyport_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_getservbyport_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_getservbyport_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_getservbyport_r" = "yes"; then - if test "$tst_nargs_getservbyport_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r takes 4 args." >&5 -$as_echo_n "checking if getservbyport_r takes 4 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != getservbyport_r(0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_getservbyport_r="yes" - tst_nargs_getservbyport_r="4" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_getservbyport_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_getservbyport_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r takes 5 args." >&5 -$as_echo_n "checking if getservbyport_r takes 5 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != getservbyport_r(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_getservbyport_r="yes" - tst_nargs_getservbyport_r="5" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_getservbyport_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_getservbyport_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r takes 6 args." >&5 -$as_echo_n "checking if getservbyport_r takes 6 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != getservbyport_r(0, 0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_getservbyport_r="yes" - tst_nargs_getservbyport_r="6" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_getservbyport_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r is compilable" >&5 -$as_echo_n "checking if getservbyport_r is compilable... " >&6; } - if test "$tst_compi_getservbyport_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - if test "$tst_compi_getservbyport_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r usage allowed" >&5 -$as_echo_n "checking if getservbyport_r usage allowed... " >&6; } - if test "x$curl_disallow_getservbyport_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_getservbyport_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_getservbyport_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r might be used" >&5 -$as_echo_n "checking if getservbyport_r might be used... " >&6; } - if test "$tst_links_getservbyport_r" = "yes" && - test "$tst_proto_getservbyport_r" = "yes" && - test "$tst_compi_getservbyport_r" = "yes" && - test "$tst_allow_getservbyport_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETSERVBYPORT_R 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define GETSERVBYPORT_R_ARGS $tst_nargs_getservbyport_r -_ACEOF - - if test "$tst_nargs_getservbyport_r" -eq "4"; then - -$as_echo "#define GETSERVBYPORT_R_BUFSIZE sizeof(struct servent_data)" >>confdefs.h - - else - -$as_echo "#define GETSERVBYPORT_R_BUFSIZE 4096" >>confdefs.h - - fi - ac_cv_func_getservbyport_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_getservbyport_r="no" - fi - - -curl_includes_time="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_TIME_H -# include -# ifdef TIME_WITH_SYS_TIME -# include -# endif -#else -# ifdef HAVE_TIME_H -# include -# endif -#endif -/* includes end */" - for ac_header in sys/types.h sys/time.h time.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_time -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_gmtime_r="unknown" - tst_proto_gmtime_r="unknown" - tst_compi_gmtime_r="unknown" - tst_works_gmtime_r="unknown" - tst_allow_gmtime_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r can be linked" >&5 -$as_echo_n "checking if gmtime_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gmtime_r innocuous_gmtime_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gmtime_r -#ifdef __cplusplus -extern "C" -#endif -char gmtime_r (); -#if defined __stub_gmtime_r || defined __stub___gmtime_r -choke me -#endif - -int main (void) -{ -return gmtime_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gmtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gmtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gmtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r is prototyped" >&5 -$as_echo_n "checking if gmtime_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_time - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gmtime_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gmtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gmtime_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gmtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r is compilable" >&5 -$as_echo_n "checking if gmtime_r is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_time - -int main (void) -{ - - if(0 != gmtime_r(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gmtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gmtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_gmtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r seems to work" >&5 -$as_echo_n "checking if gmtime_r seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_time - -int main (void) -{ - - time_t local = 1170352587; - struct tm *gmt = 0; - struct tm result; - gmt = gmtime_r(&local, &result); - if(gmt) - exit(0); - else - exit(1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_gmtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_gmtime_r="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_gmtime_r" = "yes" && - test "$tst_works_gmtime_r" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r usage allowed" >&5 -$as_echo_n "checking if gmtime_r usage allowed... " >&6; } - if test "x$curl_disallow_gmtime_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gmtime_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gmtime_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r might be used" >&5 -$as_echo_n "checking if gmtime_r might be used... " >&6; } - if test "$tst_links_gmtime_r" = "yes" && - test "$tst_proto_gmtime_r" = "yes" && - test "$tst_compi_gmtime_r" = "yes" && - test "$tst_allow_gmtime_r" = "yes" && - test "$tst_works_gmtime_r" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GMTIME_R 1 -_ACEOF - - ac_cv_func_gmtime_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gmtime_r="no" - fi - - -curl_includes_arpa_inet="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -#ifdef HAVE_NETINET_IN_H -# include -#endif -#ifdef HAVE_ARPA_INET_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h sys/socket.h netinet/in.h arpa/inet.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_arpa_inet -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_inet_ntoa_r="unknown" - tst_proto_inet_ntoa_r="unknown" - tst_compi_inet_ntoa_r="unknown" - tst_allow_inet_ntoa_r="unknown" - tst_nargs_inet_ntoa_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r can be linked" >&5 -$as_echo_n "checking if inet_ntoa_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define inet_ntoa_r innocuous_inet_ntoa_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef inet_ntoa_r -#ifdef __cplusplus -extern "C" -#endif -char inet_ntoa_r (); -#if defined __stub_inet_ntoa_r || defined __stub___inet_ntoa_r -choke me -#endif - -int main (void) -{ -return inet_ntoa_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_inet_ntoa_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_inet_ntoa_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_inet_ntoa_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r is prototyped" >&5 -$as_echo_n "checking if inet_ntoa_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_arpa_inet - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "inet_ntoa_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_inet_ntoa_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_inet_ntoa_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_inet_ntoa_r" = "yes"; then - if test "$tst_nargs_inet_ntoa_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r takes 2 args." >&5 -$as_echo_n "checking if inet_ntoa_r takes 2 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_arpa_inet - -int main (void) -{ - - struct in_addr addr; - if(0 != inet_ntoa_r(addr, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_inet_ntoa_r="yes" - tst_nargs_inet_ntoa_r="2" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_inet_ntoa_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_inet_ntoa_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r takes 3 args." >&5 -$as_echo_n "checking if inet_ntoa_r takes 3 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_arpa_inet - -int main (void) -{ - - struct in_addr addr; - if(0 != inet_ntoa_r(addr, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_inet_ntoa_r="yes" - tst_nargs_inet_ntoa_r="3" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_inet_ntoa_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r is compilable" >&5 -$as_echo_n "checking if inet_ntoa_r is compilable... " >&6; } - if test "$tst_compi_inet_ntoa_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - if test "$tst_compi_inet_ntoa_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r usage allowed" >&5 -$as_echo_n "checking if inet_ntoa_r usage allowed... " >&6; } - if test "x$curl_disallow_inet_ntoa_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_inet_ntoa_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_inet_ntoa_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r might be used" >&5 -$as_echo_n "checking if inet_ntoa_r might be used... " >&6; } - if test "$tst_links_inet_ntoa_r" = "yes" && - test "$tst_proto_inet_ntoa_r" = "yes" && - test "$tst_compi_inet_ntoa_r" = "yes" && - test "$tst_allow_inet_ntoa_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_INET_NTOA_R 1 -_ACEOF - - # - if test "$tst_nargs_inet_ntoa_r" -eq "2"; then - -$as_echo "#define HAVE_INET_NTOA_R_2 1" >>confdefs.h - - elif test "$tst_nargs_inet_ntoa_r" -eq "3"; then - -$as_echo "#define HAVE_INET_NTOA_R_3 1" >>confdefs.h - - fi - # - ac_cv_func_inet_ntoa_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_inet_ntoa_r="no" - fi - - - # - tst_links_inet_ntop="unknown" - tst_proto_inet_ntop="unknown" - tst_compi_inet_ntop="unknown" - tst_works_inet_ntop="unknown" - tst_allow_inet_ntop="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop can be linked" >&5 -$as_echo_n "checking if inet_ntop can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define inet_ntop innocuous_inet_ntop -#ifdef __STDC__ -# include -#else -# include -#endif -#undef inet_ntop -#ifdef __cplusplus -extern "C" -#endif -char inet_ntop (); -#if defined __stub_inet_ntop || defined __stub___inet_ntop -choke me -#endif - -int main (void) -{ -return inet_ntop (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_inet_ntop="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_inet_ntop="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_inet_ntop" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop is prototyped" >&5 -$as_echo_n "checking if inet_ntop is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_arpa_inet - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "inet_ntop" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_inet_ntop="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_inet_ntop="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_inet_ntop" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop is compilable" >&5 -$as_echo_n "checking if inet_ntop is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_arpa_inet - -int main (void) -{ - - if(0 != inet_ntop(0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_inet_ntop="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_inet_ntop="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_inet_ntop" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop seems to work" >&5 -$as_echo_n "checking if inet_ntop seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_arpa_inet - $curl_includes_string - -int main (void) -{ - - char ipv6res[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")]; - char ipv4res[sizeof "255.255.255.255"]; - unsigned char ipv6a[26]; - unsigned char ipv4a[5]; - char *ipv6ptr = 0; - char *ipv4ptr = 0; - /* - */ - ipv4res[0] = '\0'; - ipv4a[0] = 0xc0; - ipv4a[1] = 0xa8; - ipv4a[2] = 0x64; - ipv4a[3] = 0x01; - ipv4a[4] = 0x01; - /* - */ - ipv4ptr = inet_ntop(AF_INET, ipv4a, ipv4res, sizeof(ipv4res)); - if(!ipv4ptr) - exit(1); /* fail */ - if(ipv4ptr != ipv4res) - exit(1); /* fail */ - if(!ipv4ptr[0]) - exit(1); /* fail */ - if(memcmp(ipv4res, "192.168.100.1", 13) != 0) - exit(1); /* fail */ - /* - */ - ipv6res[0] = '\0'; - memset(ipv6a, 0, sizeof(ipv6a)); - ipv6a[0] = 0xfe; - ipv6a[1] = 0x80; - ipv6a[8] = 0x02; - ipv6a[9] = 0x14; - ipv6a[10] = 0x4f; - ipv6a[11] = 0xff; - ipv6a[12] = 0xfe; - ipv6a[13] = 0x0b; - ipv6a[14] = 0x76; - ipv6a[15] = 0xc8; - ipv6a[25] = 0x01; - /* - */ - ipv6ptr = inet_ntop(AF_INET6, ipv6a, ipv6res, sizeof(ipv6res)); - if(!ipv6ptr) - exit(1); /* fail */ - if(ipv6ptr != ipv6res) - exit(1); /* fail */ - if(!ipv6ptr[0]) - exit(1); /* fail */ - if(memcmp(ipv6res, "fe80::214:4fff:fe0b:76c8", 24) != 0) - exit(1); /* fail */ - /* - */ - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_inet_ntop="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_inet_ntop="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_inet_ntop" = "yes" && - test "$tst_works_inet_ntop" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop usage allowed" >&5 -$as_echo_n "checking if inet_ntop usage allowed... " >&6; } - if test "x$curl_disallow_inet_ntop" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_inet_ntop="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_inet_ntop="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop might be used" >&5 -$as_echo_n "checking if inet_ntop might be used... " >&6; } - if test "$tst_links_inet_ntop" = "yes" && - test "$tst_proto_inet_ntop" = "yes" && - test "$tst_compi_inet_ntop" = "yes" && - test "$tst_allow_inet_ntop" = "yes" && - test "$tst_works_inet_ntop" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_INET_NTOP 1 -_ACEOF - - ac_cv_func_inet_ntop="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_inet_ntop="no" - fi - - - # - tst_links_inet_pton="unknown" - tst_proto_inet_pton="unknown" - tst_compi_inet_pton="unknown" - tst_works_inet_pton="unknown" - tst_allow_inet_pton="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton can be linked" >&5 -$as_echo_n "checking if inet_pton can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define inet_pton innocuous_inet_pton -#ifdef __STDC__ -# include -#else -# include -#endif -#undef inet_pton -#ifdef __cplusplus -extern "C" -#endif -char inet_pton (); -#if defined __stub_inet_pton || defined __stub___inet_pton -choke me -#endif - -int main (void) -{ -return inet_pton (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_inet_pton="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_inet_pton="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_inet_pton" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton is prototyped" >&5 -$as_echo_n "checking if inet_pton is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_arpa_inet - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "inet_pton" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_inet_pton="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_inet_pton="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_inet_pton" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton is compilable" >&5 -$as_echo_n "checking if inet_pton is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_arpa_inet - -int main (void) -{ - - if(0 != inet_pton(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_inet_pton="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_inet_pton="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_inet_pton" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton seems to work" >&5 -$as_echo_n "checking if inet_pton seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_arpa_inet - $curl_includes_string - -int main (void) -{ - - unsigned char ipv6a[16+1]; - unsigned char ipv4a[4+1]; - const char *ipv6src = "fe80::214:4fff:fe0b:76c8"; - const char *ipv4src = "192.168.100.1"; - /* - */ - memset(ipv4a, 1, sizeof(ipv4a)); - if(1 != inet_pton(AF_INET, ipv4src, ipv4a)) - exit(1); /* fail */ - /* - */ - if( (ipv4a[0] != 0xc0) || - (ipv4a[1] != 0xa8) || - (ipv4a[2] != 0x64) || - (ipv4a[3] != 0x01) || - (ipv4a[4] != 0x01) ) - exit(1); /* fail */ - /* - */ - memset(ipv6a, 1, sizeof(ipv6a)); - if(1 != inet_pton(AF_INET6, ipv6src, ipv6a)) - exit(1); /* fail */ - /* - */ - if( (ipv6a[0] != 0xfe) || - (ipv6a[1] != 0x80) || - (ipv6a[8] != 0x02) || - (ipv6a[9] != 0x14) || - (ipv6a[10] != 0x4f) || - (ipv6a[11] != 0xff) || - (ipv6a[12] != 0xfe) || - (ipv6a[13] != 0x0b) || - (ipv6a[14] != 0x76) || - (ipv6a[15] != 0xc8) || - (ipv6a[16] != 0x01) ) - exit(1); /* fail */ - /* - */ - if( (ipv6a[2] != 0x0) || - (ipv6a[3] != 0x0) || - (ipv6a[4] != 0x0) || - (ipv6a[5] != 0x0) || - (ipv6a[6] != 0x0) || - (ipv6a[7] != 0x0) ) - exit(1); /* fail */ - /* - */ - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_inet_pton="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_inet_pton="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_inet_pton" = "yes" && - test "$tst_works_inet_pton" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton usage allowed" >&5 -$as_echo_n "checking if inet_pton usage allowed... " >&6; } - if test "x$curl_disallow_inet_pton" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_inet_pton="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_inet_pton="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton might be used" >&5 -$as_echo_n "checking if inet_pton might be used... " >&6; } - if test "$tst_links_inet_pton" = "yes" && - test "$tst_proto_inet_pton" = "yes" && - test "$tst_compi_inet_pton" = "yes" && - test "$tst_allow_inet_pton" = "yes" && - test "$tst_works_inet_pton" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_INET_PTON 1 -_ACEOF - - ac_cv_func_inet_pton="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_inet_pton="no" - fi - - -curl_includes_stropts="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -#ifdef HAVE_SYS_IOCTL_H -# include -#endif -#ifdef HAVE_STROPTS_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h unistd.h sys/socket.h sys/ioctl.h stropts.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_stropts -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_ioctl="unknown" - tst_proto_ioctl="unknown" - tst_compi_ioctl="unknown" - tst_allow_ioctl="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl can be linked" >&5 -$as_echo_n "checking if ioctl can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define ioctl innocuous_ioctl -#ifdef __STDC__ -# include -#else -# include -#endif -#undef ioctl -#ifdef __cplusplus -extern "C" -#endif -char ioctl (); -#if defined __stub_ioctl || defined __stub___ioctl -choke me -#endif - -int main (void) -{ -return ioctl (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_ioctl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_ioctl="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl is prototyped" >&5 -$as_echo_n "checking if ioctl is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_stropts - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "ioctl" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_ioctl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_ioctl="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl is compilable" >&5 -$as_echo_n "checking if ioctl is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stropts - -int main (void) -{ - - if(0 != ioctl(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctl="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl usage allowed" >&5 -$as_echo_n "checking if ioctl usage allowed... " >&6; } - if test "x$curl_disallow_ioctl" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctl="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctl="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl might be used" >&5 -$as_echo_n "checking if ioctl might be used... " >&6; } - if test "$tst_links_ioctl" = "yes" && - test "$tst_proto_ioctl" = "yes" && - test "$tst_compi_ioctl" = "yes" && - test "$tst_allow_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTL 1 -_ACEOF - - ac_cv_func_ioctl="yes" - - # - tst_compi_ioctl_fionbio="unknown" - tst_allow_ioctl_fionbio="unknown" - # - if test "$ac_cv_func_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO is compilable" >&5 -$as_echo_n "checking if ioctl FIONBIO is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stropts - -int main (void) -{ - - int flags = 0; - if(0 != ioctl(0, FIONBIO, &flags)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctl_fionbio="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctl_fionbio="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctl_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO usage allowed" >&5 -$as_echo_n "checking if ioctl FIONBIO usage allowed... " >&6; } - if test "x$curl_disallow_ioctl_fionbio" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctl_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctl_fionbio="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO might be used" >&5 -$as_echo_n "checking if ioctl FIONBIO might be used... " >&6; } - if test "$tst_compi_ioctl_fionbio" = "yes" && - test "$tst_allow_ioctl_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTL_FIONBIO 1 -_ACEOF - - ac_cv_func_ioctl_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctl_fionbio="no" - fi - - - # - tst_compi_ioctl_siocgifaddr="unknown" - tst_allow_ioctl_siocgifaddr="unknown" - # - if test "$ac_cv_func_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR is compilable" >&5 -$as_echo_n "checking if ioctl SIOCGIFADDR is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stropts - #include - -int main (void) -{ - - struct ifreq ifr; - if(0 != ioctl(0, SIOCGIFADDR, &ifr)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctl_siocgifaddr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctl_siocgifaddr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctl_siocgifaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR usage allowed" >&5 -$as_echo_n "checking if ioctl SIOCGIFADDR usage allowed... " >&6; } - if test "x$curl_disallow_ioctl_siocgifaddr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctl_siocgifaddr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctl_siocgifaddr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR might be used" >&5 -$as_echo_n "checking if ioctl SIOCGIFADDR might be used... " >&6; } - if test "$tst_compi_ioctl_siocgifaddr" = "yes" && - test "$tst_allow_ioctl_siocgifaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTL_SIOCGIFADDR 1 -_ACEOF - - ac_cv_func_ioctl_siocgifaddr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctl_siocgifaddr="no" - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctl="no" - fi - - - # - tst_links_ioctlsocket="unknown" - tst_proto_ioctlsocket="unknown" - tst_compi_ioctlsocket="unknown" - tst_allow_ioctlsocket="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket can be linked" >&5 -$as_echo_n "checking if ioctlsocket can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - -int main (void) -{ - - if(0 != ioctlsocket(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_ioctlsocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_ioctlsocket="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_ioctlsocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket is prototyped" >&5 -$as_echo_n "checking if ioctlsocket is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "ioctlsocket" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_ioctlsocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_ioctlsocket="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_ioctlsocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket is compilable" >&5 -$as_echo_n "checking if ioctlsocket is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - -int main (void) -{ - - if(0 != ioctlsocket(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctlsocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctlsocket="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctlsocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket usage allowed" >&5 -$as_echo_n "checking if ioctlsocket usage allowed... " >&6; } - if test "x$curl_disallow_ioctlsocket" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctlsocket="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctlsocket="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket might be used" >&5 -$as_echo_n "checking if ioctlsocket might be used... " >&6; } - if test "$tst_links_ioctlsocket" = "yes" && - test "$tst_proto_ioctlsocket" = "yes" && - test "$tst_compi_ioctlsocket" = "yes" && - test "$tst_allow_ioctlsocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTLSOCKET 1 -_ACEOF - - ac_cv_func_ioctlsocket="yes" - - # - tst_compi_ioctlsocket_fionbio="unknown" - tst_allow_ioctlsocket_fionbio="unknown" - # - if test "$ac_cv_func_ioctlsocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO is compilable" >&5 -$as_echo_n "checking if ioctlsocket FIONBIO is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - -int main (void) -{ - - int flags = 0; - if(0 != ioctlsocket(0, FIONBIO, &flags)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctlsocket_fionbio="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctlsocket_fionbio="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctlsocket_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO usage allowed" >&5 -$as_echo_n "checking if ioctlsocket FIONBIO usage allowed... " >&6; } - if test "x$curl_disallow_ioctlsocket_fionbio" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctlsocket_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctlsocket_fionbio="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO might be used" >&5 -$as_echo_n "checking if ioctlsocket FIONBIO might be used... " >&6; } - if test "$tst_compi_ioctlsocket_fionbio" = "yes" && - test "$tst_allow_ioctlsocket_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTLSOCKET_FIONBIO 1 -_ACEOF - - ac_cv_func_ioctlsocket_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctlsocket_fionbio="no" - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctlsocket="no" - fi - - - # - tst_links_ioctlsocket_camel="unknown" - tst_proto_ioctlsocket_camel="unknown" - tst_compi_ioctlsocket_camel="unknown" - tst_allow_ioctlsocket_camel="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket can be linked" >&5 -$as_echo_n "checking if IoctlSocket can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define IoctlSocket innocuous_IoctlSocket -#ifdef __STDC__ -# include -#else -# include -#endif -#undef IoctlSocket -#ifdef __cplusplus -extern "C" -#endif -char IoctlSocket (); -#if defined __stub_IoctlSocket || defined __stub___IoctlSocket -choke me -#endif - -int main (void) -{ -return IoctlSocket (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_ioctlsocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_ioctlsocket_camel="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_ioctlsocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is prototyped" >&5 -$as_echo_n "checking if IoctlSocket is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_stropts - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "IoctlSocket" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_ioctlsocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_ioctlsocket_camel="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_ioctlsocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is compilable" >&5 -$as_echo_n "checking if IoctlSocket is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stropts - -int main (void) -{ - - if(0 != IoctlSocket(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctlsocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctlsocket_camel="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctlsocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket usage allowed" >&5 -$as_echo_n "checking if IoctlSocket usage allowed... " >&6; } - if test "x$curl_disallow_ioctlsocket_camel" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctlsocket_camel="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctlsocket_camel="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket might be used" >&5 -$as_echo_n "checking if IoctlSocket might be used... " >&6; } - if test "$tst_links_ioctlsocket_camel" = "yes" && - test "$tst_proto_ioctlsocket_camel" = "yes" && - test "$tst_compi_ioctlsocket_camel" = "yes" && - test "$tst_allow_ioctlsocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTLSOCKET_CAMEL 1 -_ACEOF - - ac_cv_func_ioctlsocket_camel="yes" - - # - tst_compi_ioctlsocket_camel_fionbio="unknown" - tst_allow_ioctlsocket_camel_fionbio="unknown" - # - if test "$ac_cv_func_ioctlsocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO is compilable" >&5 -$as_echo_n "checking if IoctlSocket FIONBIO is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stropts - -int main (void) -{ - - long flags = 0; - if(0 != ioctlsocket(0, FIONBIO, &flags)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctlsocket_camel_fionbio="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctlsocket_camel_fionbio="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO usage allowed" >&5 -$as_echo_n "checking if IoctlSocket FIONBIO usage allowed... " >&6; } - if test "x$curl_disallow_ioctlsocket_camel_fionbio" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctlsocket_camel_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctlsocket_camel_fionbio="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO might be used" >&5 -$as_echo_n "checking if IoctlSocket FIONBIO might be used... " >&6; } - if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes" && - test "$tst_allow_ioctlsocket_camel_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTLSOCKET_CAMEL_FIONBIO 1 -_ACEOF - - ac_cv_func_ioctlsocket_camel_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctlsocket_camel_fionbio="no" - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctlsocket_camel="no" - fi - - - # - tst_links_localtime_r="unknown" - tst_proto_localtime_r="unknown" - tst_compi_localtime_r="unknown" - tst_works_localtime_r="unknown" - tst_allow_localtime_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r can be linked" >&5 -$as_echo_n "checking if localtime_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define localtime_r innocuous_localtime_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef localtime_r -#ifdef __cplusplus -extern "C" -#endif -char localtime_r (); -#if defined __stub_localtime_r || defined __stub___localtime_r -choke me -#endif - -int main (void) -{ -return localtime_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_localtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_localtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_localtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r is prototyped" >&5 -$as_echo_n "checking if localtime_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_time - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "localtime_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_localtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_localtime_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_localtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r is compilable" >&5 -$as_echo_n "checking if localtime_r is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_time - -int main (void) -{ - - if(0 != localtime_r(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_localtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_localtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_localtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r seems to work" >&5 -$as_echo_n "checking if localtime_r seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_time - -int main (void) -{ - - time_t clock = 1170352587; - struct tm *tmp = 0; - struct tm result; - tmp = localtime_r(&clock, &result); - if(tmp) - exit(0); - else - exit(1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_localtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_localtime_r="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_localtime_r" = "yes" && - test "$tst_works_localtime_r" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r usage allowed" >&5 -$as_echo_n "checking if localtime_r usage allowed... " >&6; } - if test "x$curl_disallow_localtime_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_localtime_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_localtime_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r might be used" >&5 -$as_echo_n "checking if localtime_r might be used... " >&6; } - if test "$tst_links_localtime_r" = "yes" && - test "$tst_proto_localtime_r" = "yes" && - test "$tst_compi_localtime_r" = "yes" && - test "$tst_allow_localtime_r" = "yes" && - test "$tst_works_localtime_r" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_LOCALTIME_R 1 -_ACEOF - - ac_cv_func_localtime_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_localtime_r="no" - fi - - - # - tst_links_memrchr="unknown" - tst_macro_memrchr="unknown" - tst_proto_memrchr="unknown" - tst_compi_memrchr="unknown" - tst_allow_memrchr="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr can be linked" >&5 -$as_echo_n "checking if memrchr can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define memrchr innocuous_memrchr -#ifdef __STDC__ -# include -#else -# include -#endif -#undef memrchr -#ifdef __cplusplus -extern "C" -#endif -char memrchr (); -#if defined __stub_memrchr || defined __stub___memrchr -choke me -#endif - -int main (void) -{ -return memrchr (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_memrchr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_memrchr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_memrchr" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr seems a macro" >&5 -$as_echo_n "checking if memrchr seems a macro... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != memrchr(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_macro_memrchr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_macro_memrchr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - # - if test "$tst_links_memrchr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr is prototyped" >&5 -$as_echo_n "checking if memrchr is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memrchr" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_memrchr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_memrchr="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_memrchr" = "yes" || - test "$tst_macro_memrchr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr is compilable" >&5 -$as_echo_n "checking if memrchr is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != memrchr(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_memrchr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_memrchr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_memrchr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr usage allowed" >&5 -$as_echo_n "checking if memrchr usage allowed... " >&6; } - if test "x$curl_disallow_memrchr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_memrchr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_memrchr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr might be used" >&5 -$as_echo_n "checking if memrchr might be used... " >&6; } - if (test "$tst_proto_memrchr" = "yes" || - test "$tst_macro_memrchr" = "yes") && - test "$tst_compi_memrchr" = "yes" && - test "$tst_allow_memrchr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_MEMRCHR 1 -_ACEOF - - ac_cv_func_memrchr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_memrchr="no" - fi - - -curl_includes_poll="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_POLL_H -# include -#endif -#ifdef HAVE_SYS_POLL_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h poll.h sys/poll.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_poll -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_poll="unknown" - tst_proto_poll="unknown" - tst_compi_poll="unknown" - tst_works_poll="unknown" - tst_allow_poll="unknown" - # - case $host_os in - darwin*|interix*) - curl_disallow_poll="yes" - ;; - esac - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll can be linked" >&5 -$as_echo_n "checking if poll can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_poll - -int main (void) -{ - - if(0 != poll(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_poll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_poll="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_poll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll is prototyped" >&5 -$as_echo_n "checking if poll is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_poll - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "poll" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_poll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_poll="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_poll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll is compilable" >&5 -$as_echo_n "checking if poll is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_poll - -int main (void) -{ - - if(0 != poll(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_poll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_poll="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_poll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll seems to work" >&5 -$as_echo_n "checking if poll seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_poll - -int main (void) -{ - - if(0 != poll(0, 0, 10)) - exit(1); /* fail */ - else - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_poll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_poll="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_poll" = "yes" && - test "$tst_works_poll" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll usage allowed" >&5 -$as_echo_n "checking if poll usage allowed... " >&6; } - if test "x$curl_disallow_poll" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_poll="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_poll="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll might be used" >&5 -$as_echo_n "checking if poll might be used... " >&6; } - if test "$tst_links_poll" = "yes" && - test "$tst_proto_poll" = "yes" && - test "$tst_compi_poll" = "yes" && - test "$tst_allow_poll" = "yes" && - test "$tst_works_poll" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_POLL 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define HAVE_POLL_FINE 1 -_ACEOF - - ac_cv_func_poll="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_poll="no" - fi - - - # - tst_links_setsockopt="unknown" - tst_proto_setsockopt="unknown" - tst_compi_setsockopt="unknown" - tst_allow_setsockopt="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt can be linked" >&5 -$as_echo_n "checking if setsockopt can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - -int main (void) -{ - - if(0 != setsockopt(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_setsockopt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_setsockopt="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_setsockopt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt is prototyped" >&5 -$as_echo_n "checking if setsockopt is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_sys_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "setsockopt" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_setsockopt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_setsockopt="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_setsockopt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt is compilable" >&5 -$as_echo_n "checking if setsockopt is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - -int main (void) -{ - - if(0 != setsockopt(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_setsockopt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_setsockopt="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_setsockopt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt usage allowed" >&5 -$as_echo_n "checking if setsockopt usage allowed... " >&6; } - if test "x$curl_disallow_setsockopt" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_setsockopt="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_setsockopt="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt might be used" >&5 -$as_echo_n "checking if setsockopt might be used... " >&6; } - if test "$tst_links_setsockopt" = "yes" && - test "$tst_proto_setsockopt" = "yes" && - test "$tst_compi_setsockopt" = "yes" && - test "$tst_allow_setsockopt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SETSOCKOPT 1 -_ACEOF - - ac_cv_func_setsockopt="yes" - - # - tst_compi_setsockopt_so_nonblock="unknown" - tst_allow_setsockopt_so_nonblock="unknown" - # - if test "$ac_cv_func_setsockopt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK is compilable" >&5 -$as_echo_n "checking if setsockopt SO_NONBLOCK is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - -int main (void) -{ - - if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_setsockopt_so_nonblock="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_setsockopt_so_nonblock="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_setsockopt_so_nonblock" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK usage allowed" >&5 -$as_echo_n "checking if setsockopt SO_NONBLOCK usage allowed... " >&6; } - if test "x$curl_disallow_setsockopt_so_nonblock" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_setsockopt_so_nonblock="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_setsockopt_so_nonblock="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK might be used" >&5 -$as_echo_n "checking if setsockopt SO_NONBLOCK might be used... " >&6; } - if test "$tst_compi_setsockopt_so_nonblock" = "yes" && - test "$tst_allow_setsockopt_so_nonblock" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SETSOCKOPT_SO_NONBLOCK 1 -_ACEOF - - ac_cv_func_setsockopt_so_nonblock="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_setsockopt_so_nonblock="no" - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_setsockopt="no" - fi - - -curl_includes_signal="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SIGNAL_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h signal.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_signal -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_sigaction="unknown" - tst_proto_sigaction="unknown" - tst_compi_sigaction="unknown" - tst_allow_sigaction="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction can be linked" >&5 -$as_echo_n "checking if sigaction can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define sigaction innocuous_sigaction -#ifdef __STDC__ -# include -#else -# include -#endif -#undef sigaction -#ifdef __cplusplus -extern "C" -#endif -char sigaction (); -#if defined __stub_sigaction || defined __stub___sigaction -choke me -#endif - -int main (void) -{ -return sigaction (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_sigaction="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_sigaction="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_sigaction" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction is prototyped" >&5 -$as_echo_n "checking if sigaction is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_signal - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sigaction" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_sigaction="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_sigaction="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_sigaction" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction is compilable" >&5 -$as_echo_n "checking if sigaction is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_signal - -int main (void) -{ - - if(0 != sigaction(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_sigaction="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_sigaction="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_sigaction" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction usage allowed" >&5 -$as_echo_n "checking if sigaction usage allowed... " >&6; } - if test "x$curl_disallow_sigaction" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_sigaction="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_sigaction="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction might be used" >&5 -$as_echo_n "checking if sigaction might be used... " >&6; } - if test "$tst_links_sigaction" = "yes" && - test "$tst_proto_sigaction" = "yes" && - test "$tst_compi_sigaction" = "yes" && - test "$tst_allow_sigaction" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGACTION 1 -_ACEOF - - ac_cv_func_sigaction="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_sigaction="no" - fi - - - # - tst_links_siginterrupt="unknown" - tst_proto_siginterrupt="unknown" - tst_compi_siginterrupt="unknown" - tst_allow_siginterrupt="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt can be linked" >&5 -$as_echo_n "checking if siginterrupt can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define siginterrupt innocuous_siginterrupt -#ifdef __STDC__ -# include -#else -# include -#endif -#undef siginterrupt -#ifdef __cplusplus -extern "C" -#endif -char siginterrupt (); -#if defined __stub_siginterrupt || defined __stub___siginterrupt -choke me -#endif - -int main (void) -{ -return siginterrupt (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_siginterrupt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_siginterrupt="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_siginterrupt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt is prototyped" >&5 -$as_echo_n "checking if siginterrupt is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_signal - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "siginterrupt" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_siginterrupt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_siginterrupt="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_siginterrupt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt is compilable" >&5 -$as_echo_n "checking if siginterrupt is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_signal - -int main (void) -{ - - if(0 != siginterrupt(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_siginterrupt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_siginterrupt="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_siginterrupt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt usage allowed" >&5 -$as_echo_n "checking if siginterrupt usage allowed... " >&6; } - if test "x$curl_disallow_siginterrupt" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_siginterrupt="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_siginterrupt="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt might be used" >&5 -$as_echo_n "checking if siginterrupt might be used... " >&6; } - if test "$tst_links_siginterrupt" = "yes" && - test "$tst_proto_siginterrupt" = "yes" && - test "$tst_compi_siginterrupt" = "yes" && - test "$tst_allow_siginterrupt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINTERRUPT 1 -_ACEOF - - ac_cv_func_siginterrupt="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_siginterrupt="no" - fi - - - # - tst_links_signal="unknown" - tst_proto_signal="unknown" - tst_compi_signal="unknown" - tst_allow_signal="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal can be linked" >&5 -$as_echo_n "checking if signal can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define signal innocuous_signal -#ifdef __STDC__ -# include -#else -# include -#endif -#undef signal -#ifdef __cplusplus -extern "C" -#endif -char signal (); -#if defined __stub_signal || defined __stub___signal -choke me -#endif - -int main (void) -{ -return signal (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_signal="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_signal="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_signal" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal is prototyped" >&5 -$as_echo_n "checking if signal is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_signal - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "signal" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_signal="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_signal="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_signal" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal is compilable" >&5 -$as_echo_n "checking if signal is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_signal - -int main (void) -{ - - if(0 != signal(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_signal="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_signal="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_signal" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal usage allowed" >&5 -$as_echo_n "checking if signal usage allowed... " >&6; } - if test "x$curl_disallow_signal" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_signal="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_signal="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal might be used" >&5 -$as_echo_n "checking if signal might be used... " >&6; } - if test "$tst_links_signal" = "yes" && - test "$tst_proto_signal" = "yes" && - test "$tst_compi_signal" = "yes" && - test "$tst_allow_signal" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGNAL 1 -_ACEOF - - ac_cv_func_signal="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_signal="no" - fi - - -curl_includes_setjmp="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SETJMP_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h setjmp.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_setjmp -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_sigsetjmp="unknown" - tst_macro_sigsetjmp="unknown" - tst_proto_sigsetjmp="unknown" - tst_compi_sigsetjmp="unknown" - tst_allow_sigsetjmp="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp can be linked" >&5 -$as_echo_n "checking if sigsetjmp can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define sigsetjmp innocuous_sigsetjmp -#ifdef __STDC__ -# include -#else -# include -#endif -#undef sigsetjmp -#ifdef __cplusplus -extern "C" -#endif -char sigsetjmp (); -#if defined __stub_sigsetjmp || defined __stub___sigsetjmp -choke me -#endif - -int main (void) -{ -return sigsetjmp (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_sigsetjmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_sigsetjmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_sigsetjmp" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp seems a macro" >&5 -$as_echo_n "checking if sigsetjmp seems a macro... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_setjmp - -int main (void) -{ - - sigjmp_buf env; - if(0 != sigsetjmp(env, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_macro_sigsetjmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_macro_sigsetjmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - # - if test "$tst_links_sigsetjmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp is prototyped" >&5 -$as_echo_n "checking if sigsetjmp is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_setjmp - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sigsetjmp" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_sigsetjmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_sigsetjmp="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_sigsetjmp" = "yes" || - test "$tst_macro_sigsetjmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp is compilable" >&5 -$as_echo_n "checking if sigsetjmp is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_setjmp - -int main (void) -{ - - sigjmp_buf env; - if(0 != sigsetjmp(env, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_sigsetjmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_sigsetjmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_sigsetjmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp usage allowed" >&5 -$as_echo_n "checking if sigsetjmp usage allowed... " >&6; } - if test "x$curl_disallow_sigsetjmp" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_sigsetjmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_sigsetjmp="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp might be used" >&5 -$as_echo_n "checking if sigsetjmp might be used... " >&6; } - if (test "$tst_proto_sigsetjmp" = "yes" || - test "$tst_macro_sigsetjmp" = "yes") && - test "$tst_compi_sigsetjmp" = "yes" && - test "$tst_allow_sigsetjmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGSETJMP 1 -_ACEOF - - ac_cv_func_sigsetjmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_sigsetjmp="no" - fi - - - # - tst_links_socket="unknown" - tst_proto_socket="unknown" - tst_compi_socket="unknown" - tst_allow_socket="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket can be linked" >&5 -$as_echo_n "checking if socket can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -int main (void) -{ - - if(0 != socket(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_socket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_socket="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_socket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket is prototyped" >&5 -$as_echo_n "checking if socket is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "socket" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_socket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_socket="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_socket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket is compilable" >&5 -$as_echo_n "checking if socket is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -int main (void) -{ - - if(0 != socket(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_socket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_socket="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_socket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket usage allowed" >&5 -$as_echo_n "checking if socket usage allowed... " >&6; } - if test "x$curl_disallow_socket" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_socket="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_socket="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket might be used" >&5 -$as_echo_n "checking if socket might be used... " >&6; } - if test "$tst_links_socket" = "yes" && - test "$tst_proto_socket" = "yes" && - test "$tst_compi_socket" = "yes" && - test "$tst_allow_socket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SOCKET 1 -_ACEOF - - ac_cv_func_socket="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_socket="no" - fi - - - # - tst_links_socketpair="unknown" - tst_proto_socketpair="unknown" - tst_compi_socketpair="unknown" - tst_allow_socketpair="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socketpair can be linked" >&5 -$as_echo_n "checking if socketpair can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define socketpair innocuous_socketpair -#ifdef __STDC__ -# include -#else -# include -#endif -#undef socketpair -#ifdef __cplusplus -extern "C" -#endif -char socketpair (); -#if defined __stub_socketpair || defined __stub___socketpair -choke me -#endif - -int main (void) -{ -return socketpair (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_socketpair="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_socketpair="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_socketpair" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socketpair is prototyped" >&5 -$as_echo_n "checking if socketpair is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_sys_socket - $curl_includes_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "socketpair" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_socketpair="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_socketpair="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_socketpair" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socketpair is compilable" >&5 -$as_echo_n "checking if socketpair is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_socket - $curl_includes_socket - -int main (void) -{ - - int sv[2]; - if(0 != socketpair(0, 0, 0, sv)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_socketpair="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_socketpair="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_socketpair" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socketpair usage allowed" >&5 -$as_echo_n "checking if socketpair usage allowed... " >&6; } - if test "x$curl_disallow_socketpair" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_socketpair="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_socketpair="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socketpair might be used" >&5 -$as_echo_n "checking if socketpair might be used... " >&6; } - if test "$tst_links_socketpair" = "yes" && - test "$tst_proto_socketpair" = "yes" && - test "$tst_compi_socketpair" = "yes" && - test "$tst_allow_socketpair" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SOCKETPAIR 1 -_ACEOF - - ac_cv_func_socketpair="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_socketpair="no" - fi - - - # - tst_links_strcasecmp="unknown" - tst_proto_strcasecmp="unknown" - tst_compi_strcasecmp="unknown" - tst_allow_strcasecmp="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp can be linked" >&5 -$as_echo_n "checking if strcasecmp can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strcasecmp innocuous_strcasecmp -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strcasecmp -#ifdef __cplusplus -extern "C" -#endif -char strcasecmp (); -#if defined __stub_strcasecmp || defined __stub___strcasecmp -choke me -#endif - -int main (void) -{ -return strcasecmp (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strcasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strcasecmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strcasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is prototyped" >&5 -$as_echo_n "checking if strcasecmp is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strcasecmp" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strcasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strcasecmp="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strcasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is compilable" >&5 -$as_echo_n "checking if strcasecmp is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strcasecmp(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strcasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strcasecmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strcasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp usage allowed" >&5 -$as_echo_n "checking if strcasecmp usage allowed... " >&6; } - if test "x$curl_disallow_strcasecmp" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strcasecmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strcasecmp="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp might be used" >&5 -$as_echo_n "checking if strcasecmp might be used... " >&6; } - if test "$tst_links_strcasecmp" = "yes" && - test "$tst_proto_strcasecmp" = "yes" && - test "$tst_compi_strcasecmp" = "yes" && - test "$tst_allow_strcasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRCASECMP 1 -_ACEOF - - ac_cv_func_strcasecmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strcasecmp="no" - fi - - - # - tst_links_strcasestr="unknown" - tst_proto_strcasestr="unknown" - tst_compi_strcasestr="unknown" - tst_allow_strcasestr="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasestr can be linked" >&5 -$as_echo_n "checking if strcasestr can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strcasestr innocuous_strcasestr -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strcasestr -#ifdef __cplusplus -extern "C" -#endif -char strcasestr (); -#if defined __stub_strcasestr || defined __stub___strcasestr -choke me -#endif - -int main (void) -{ -return strcasestr (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strcasestr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strcasestr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strcasestr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasestr is prototyped" >&5 -$as_echo_n "checking if strcasestr is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strcasestr" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strcasestr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strcasestr="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strcasestr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasestr is compilable" >&5 -$as_echo_n "checking if strcasestr is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strcasestr(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strcasestr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strcasestr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strcasestr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasestr usage allowed" >&5 -$as_echo_n "checking if strcasestr usage allowed... " >&6; } - if test "x$curl_disallow_strcasestr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strcasestr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strcasestr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasestr might be used" >&5 -$as_echo_n "checking if strcasestr might be used... " >&6; } - if test "$tst_links_strcasestr" = "yes" && - test "$tst_proto_strcasestr" = "yes" && - test "$tst_compi_strcasestr" = "yes" && - test "$tst_allow_strcasestr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRCASESTR 1 -_ACEOF - - ac_cv_func_strcasestr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strcasestr="no" - fi - - - # - tst_links_strcmpi="unknown" - tst_proto_strcmpi="unknown" - tst_compi_strcmpi="unknown" - tst_allow_strcmpi="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi can be linked" >&5 -$as_echo_n "checking if strcmpi can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strcmpi innocuous_strcmpi -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strcmpi -#ifdef __cplusplus -extern "C" -#endif -char strcmpi (); -#if defined __stub_strcmpi || defined __stub___strcmpi -choke me -#endif - -int main (void) -{ -return strcmpi (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strcmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strcmpi="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strcmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi is prototyped" >&5 -$as_echo_n "checking if strcmpi is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strcmpi" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strcmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strcmpi="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strcmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi is compilable" >&5 -$as_echo_n "checking if strcmpi is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strcmpi(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strcmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strcmpi="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strcmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi usage allowed" >&5 -$as_echo_n "checking if strcmpi usage allowed... " >&6; } - if test "x$curl_disallow_strcmpi" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strcmpi="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strcmpi="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi might be used" >&5 -$as_echo_n "checking if strcmpi might be used... " >&6; } - if test "$tst_links_strcmpi" = "yes" && - test "$tst_proto_strcmpi" = "yes" && - test "$tst_compi_strcmpi" = "yes" && - test "$tst_allow_strcmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRCMPI 1 -_ACEOF - - ac_cv_func_strcmpi="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strcmpi="no" - fi - - - # - tst_links_strdup="unknown" - tst_proto_strdup="unknown" - tst_compi_strdup="unknown" - tst_allow_strdup="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup can be linked" >&5 -$as_echo_n "checking if strdup can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strdup innocuous_strdup -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strdup -#ifdef __cplusplus -extern "C" -#endif -char strdup (); -#if defined __stub_strdup || defined __stub___strdup -choke me -#endif - -int main (void) -{ -return strdup (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strdup="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strdup="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strdup" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup is prototyped" >&5 -$as_echo_n "checking if strdup is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strdup" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strdup="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strdup="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strdup" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup is compilable" >&5 -$as_echo_n "checking if strdup is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strdup(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strdup="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strdup="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strdup" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup usage allowed" >&5 -$as_echo_n "checking if strdup usage allowed... " >&6; } - if test "x$curl_disallow_strdup" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strdup="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strdup="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup might be used" >&5 -$as_echo_n "checking if strdup might be used... " >&6; } - if test "$tst_links_strdup" = "yes" && - test "$tst_proto_strdup" = "yes" && - test "$tst_compi_strdup" = "yes" && - test "$tst_allow_strdup" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRDUP 1 -_ACEOF - - ac_cv_func_strdup="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strdup="no" - fi - - - # - tst_links_strerror_r="unknown" - tst_proto_strerror_r="unknown" - tst_compi_strerror_r="unknown" - tst_glibc_strerror_r="unknown" - tst_posix_strerror_r="unknown" - tst_allow_strerror_r="unknown" - tst_works_glibc_strerror_r="unknown" - tst_works_posix_strerror_r="unknown" - tst_glibc_strerror_r_type_arg3="unknown" - tst_posix_strerror_r_type_arg3="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r can be linked" >&5 -$as_echo_n "checking if strerror_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strerror_r innocuous_strerror_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strerror_r -#ifdef __cplusplus -extern "C" -#endif -char strerror_r (); -#if defined __stub_strerror_r || defined __stub___strerror_r -choke me -#endif - -int main (void) -{ -return strerror_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strerror_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strerror_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is prototyped" >&5 -$as_echo_n "checking if strerror_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strerror_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strerror_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strerror_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is compilable" >&5 -$as_echo_n "checking if strerror_r is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strerror_r(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strerror_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strerror_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is glibc like" >&5 -$as_echo_n "checking if strerror_r is glibc like... " >&6; } - tst_glibc_strerror_r_type_arg3="unknown" - for arg3 in 'size_t' 'int' 'unsigned int'; do - if test "$tst_glibc_strerror_r_type_arg3" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - char *strerror_r(int errnum, char *workbuf, $arg3 bufsize); - if(0 != strerror_r(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tst_glibc_strerror_r_type_arg3="$arg3" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - case "$tst_glibc_strerror_r_type_arg3" in - unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_glibc_strerror_r="no" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_glibc_strerror_r="yes" - ;; - esac - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_glibc_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r seems to work" >&5 -$as_echo_n "checking if strerror_r seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_string -# include - -int main (void) -{ - - char buffer[1024]; - char *string = 0; - buffer[0] = '\0'; - string = strerror_r(EACCES, buffer, sizeof(buffer)); - if(!string) - exit(1); /* fail */ - if(!string[0]) - exit(1); /* fail */ - else - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_glibc_strerror_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_glibc_strerror_r="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_strerror_r" = "yes" && - test "$tst_works_glibc_strerror_r" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is POSIX like" >&5 -$as_echo_n "checking if strerror_r is POSIX like... " >&6; } - tst_posix_strerror_r_type_arg3="unknown" - for arg3 in 'size_t' 'int' 'unsigned int'; do - if test "$tst_posix_strerror_r_type_arg3" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - int strerror_r(int errnum, char *resultbuf, $arg3 bufsize); - if(0 != strerror_r(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tst_posix_strerror_r_type_arg3="$arg3" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - case "$tst_posix_strerror_r_type_arg3" in - unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_posix_strerror_r="no" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_posix_strerror_r="yes" - ;; - esac - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_posix_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r seems to work" >&5 -$as_echo_n "checking if strerror_r seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_string -# include - -int main (void) -{ - - char buffer[1024]; - int error = 1; - buffer[0] = '\0'; - error = strerror_r(EACCES, buffer, sizeof(buffer)); - if(error) - exit(1); /* fail */ - if(buffer[0] == '\0') - exit(1); /* fail */ - else - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_posix_strerror_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_posix_strerror_r="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_works_glibc_strerror_r" = "yes"; then - tst_posix_strerror_r="no" - fi - if test "$tst_works_posix_strerror_r" = "yes"; then - tst_glibc_strerror_r="no" - fi - if test "$tst_glibc_strerror_r" = "yes" && - test "$tst_works_glibc_strerror_r" != "no" && - test "$tst_posix_strerror_r" != "yes"; then - tst_allow_strerror_r="check" - fi - if test "$tst_posix_strerror_r" = "yes" && - test "$tst_works_posix_strerror_r" != "no" && - test "$tst_glibc_strerror_r" != "yes"; then - tst_allow_strerror_r="check" - fi - if test "$tst_allow_strerror_r" = "check"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r usage allowed" >&5 -$as_echo_n "checking if strerror_r usage allowed... " >&6; } - if test "x$curl_disallow_strerror_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strerror_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strerror_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r might be used" >&5 -$as_echo_n "checking if strerror_r might be used... " >&6; } - if test "$tst_links_strerror_r" = "yes" && - test "$tst_proto_strerror_r" = "yes" && - test "$tst_compi_strerror_r" = "yes" && - test "$tst_allow_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test "$tst_glibc_strerror_r" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRERROR_R 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define HAVE_GLIBC_STRERROR_R 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define STRERROR_R_TYPE_ARG3 $tst_glibc_strerror_r_type_arg3 -_ACEOF - - fi - if test "$tst_posix_strerror_r" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRERROR_R 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define HAVE_POSIX_STRERROR_R 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define STRERROR_R_TYPE_ARG3 $tst_posix_strerror_r_type_arg3 -_ACEOF - - fi - ac_cv_func_strerror_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strerror_r="no" - fi - # - if test "$tst_compi_strerror_r" = "yes" && - test "$tst_allow_strerror_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine strerror_r() style: edit lib/curl_config.h manually." >&5 -$as_echo "$as_me: WARNING: cannot determine strerror_r() style: edit lib/curl_config.h manually." >&2;} - fi - # - - - # - tst_links_stricmp="unknown" - tst_proto_stricmp="unknown" - tst_compi_stricmp="unknown" - tst_allow_stricmp="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp can be linked" >&5 -$as_echo_n "checking if stricmp can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define stricmp innocuous_stricmp -#ifdef __STDC__ -# include -#else -# include -#endif -#undef stricmp -#ifdef __cplusplus -extern "C" -#endif -char stricmp (); -#if defined __stub_stricmp || defined __stub___stricmp -choke me -#endif - -int main (void) -{ -return stricmp (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_stricmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_stricmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_stricmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp is prototyped" >&5 -$as_echo_n "checking if stricmp is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "stricmp" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_stricmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_stricmp="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_stricmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp is compilable" >&5 -$as_echo_n "checking if stricmp is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != stricmp(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_stricmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_stricmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_stricmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp usage allowed" >&5 -$as_echo_n "checking if stricmp usage allowed... " >&6; } - if test "x$curl_disallow_stricmp" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_stricmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_stricmp="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp might be used" >&5 -$as_echo_n "checking if stricmp might be used... " >&6; } - if test "$tst_links_stricmp" = "yes" && - test "$tst_proto_stricmp" = "yes" && - test "$tst_compi_stricmp" = "yes" && - test "$tst_allow_stricmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRICMP 1 -_ACEOF - - ac_cv_func_stricmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_stricmp="no" - fi - - - # - tst_links_strlcat="unknown" - tst_proto_strlcat="unknown" - tst_compi_strlcat="unknown" - tst_allow_strlcat="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strlcat can be linked" >&5 -$as_echo_n "checking if strlcat can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strlcat innocuous_strlcat -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strlcat -#ifdef __cplusplus -extern "C" -#endif -char strlcat (); -#if defined __stub_strlcat || defined __stub___strlcat -choke me -#endif - -int main (void) -{ -return strlcat (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strlcat="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strlcat="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strlcat" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strlcat is prototyped" >&5 -$as_echo_n "checking if strlcat is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strlcat" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strlcat="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strlcat="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strlcat" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strlcat is compilable" >&5 -$as_echo_n "checking if strlcat is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strlcat(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strlcat="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strlcat="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strlcat" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strlcat usage allowed" >&5 -$as_echo_n "checking if strlcat usage allowed... " >&6; } - if test "x$curl_disallow_strlcat" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strlcat="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strlcat="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strlcat might be used" >&5 -$as_echo_n "checking if strlcat might be used... " >&6; } - if test "$tst_links_strlcat" = "yes" && - test "$tst_proto_strlcat" = "yes" && - test "$tst_compi_strlcat" = "yes" && - test "$tst_allow_strlcat" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRLCAT 1 -_ACEOF - - ac_cv_func_strlcat="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strlcat="no" - fi - - - # - tst_links_strncasecmp="unknown" - tst_proto_strncasecmp="unknown" - tst_compi_strncasecmp="unknown" - tst_allow_strncasecmp="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncasecmp can be linked" >&5 -$as_echo_n "checking if strncasecmp can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strncasecmp innocuous_strncasecmp -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strncasecmp -#ifdef __cplusplus -extern "C" -#endif -char strncasecmp (); -#if defined __stub_strncasecmp || defined __stub___strncasecmp -choke me -#endif - -int main (void) -{ -return strncasecmp (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strncasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strncasecmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strncasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncasecmp is prototyped" >&5 -$as_echo_n "checking if strncasecmp is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strncasecmp" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strncasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strncasecmp="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strncasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncasecmp is compilable" >&5 -$as_echo_n "checking if strncasecmp is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strncasecmp(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strncasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strncasecmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strncasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncasecmp usage allowed" >&5 -$as_echo_n "checking if strncasecmp usage allowed... " >&6; } - if test "x$curl_disallow_strncasecmp" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strncasecmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strncasecmp="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncasecmp might be used" >&5 -$as_echo_n "checking if strncasecmp might be used... " >&6; } - if test "$tst_links_strncasecmp" = "yes" && - test "$tst_proto_strncasecmp" = "yes" && - test "$tst_compi_strncasecmp" = "yes" && - test "$tst_allow_strncasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRNCASECMP 1 -_ACEOF - - ac_cv_func_strncasecmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strncasecmp="no" - fi - - - # - tst_links_strncmpi="unknown" - tst_proto_strncmpi="unknown" - tst_compi_strncmpi="unknown" - tst_allow_strncmpi="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi can be linked" >&5 -$as_echo_n "checking if strncmpi can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strncmpi innocuous_strncmpi -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strncmpi -#ifdef __cplusplus -extern "C" -#endif -char strncmpi (); -#if defined __stub_strncmpi || defined __stub___strncmpi -choke me -#endif - -int main (void) -{ -return strncmpi (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strncmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strncmpi="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strncmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi is prototyped" >&5 -$as_echo_n "checking if strncmpi is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strncmpi" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strncmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strncmpi="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strncmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi is compilable" >&5 -$as_echo_n "checking if strncmpi is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strncmpi(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strncmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strncmpi="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strncmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi usage allowed" >&5 -$as_echo_n "checking if strncmpi usage allowed... " >&6; } - if test "x$curl_disallow_strncmpi" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strncmpi="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strncmpi="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi might be used" >&5 -$as_echo_n "checking if strncmpi might be used... " >&6; } - if test "$tst_links_strncmpi" = "yes" && - test "$tst_proto_strncmpi" = "yes" && - test "$tst_compi_strncmpi" = "yes" && - test "$tst_allow_strncmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRNCMPI 1 -_ACEOF - - ac_cv_func_strncmpi="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strncmpi="no" - fi - - - # - tst_links_strnicmp="unknown" - tst_proto_strnicmp="unknown" - tst_compi_strnicmp="unknown" - tst_allow_strnicmp="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp can be linked" >&5 -$as_echo_n "checking if strnicmp can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strnicmp innocuous_strnicmp -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strnicmp -#ifdef __cplusplus -extern "C" -#endif -char strnicmp (); -#if defined __stub_strnicmp || defined __stub___strnicmp -choke me -#endif - -int main (void) -{ -return strnicmp (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strnicmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strnicmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strnicmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp is prototyped" >&5 -$as_echo_n "checking if strnicmp is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strnicmp" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strnicmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strnicmp="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strnicmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp is compilable" >&5 -$as_echo_n "checking if strnicmp is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strnicmp(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strnicmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strnicmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strnicmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp usage allowed" >&5 -$as_echo_n "checking if strnicmp usage allowed... " >&6; } - if test "x$curl_disallow_strnicmp" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strnicmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strnicmp="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp might be used" >&5 -$as_echo_n "checking if strnicmp might be used... " >&6; } - if test "$tst_links_strnicmp" = "yes" && - test "$tst_proto_strnicmp" = "yes" && - test "$tst_compi_strnicmp" = "yes" && - test "$tst_allow_strnicmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRNICMP 1 -_ACEOF - - ac_cv_func_strnicmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strnicmp="no" - fi - - - # - tst_links_strstr="unknown" - tst_proto_strstr="unknown" - tst_compi_strstr="unknown" - tst_allow_strstr="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr can be linked" >&5 -$as_echo_n "checking if strstr can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strstr innocuous_strstr -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strstr -#ifdef __cplusplus -extern "C" -#endif -char strstr (); -#if defined __stub_strstr || defined __stub___strstr -choke me -#endif - -int main (void) -{ -return strstr (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strstr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strstr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strstr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr is prototyped" >&5 -$as_echo_n "checking if strstr is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strstr" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strstr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strstr="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strstr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr is compilable" >&5 -$as_echo_n "checking if strstr is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strstr(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strstr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strstr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strstr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr usage allowed" >&5 -$as_echo_n "checking if strstr usage allowed... " >&6; } - if test "x$curl_disallow_strstr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strstr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strstr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr might be used" >&5 -$as_echo_n "checking if strstr might be used... " >&6; } - if test "$tst_links_strstr" = "yes" && - test "$tst_proto_strstr" = "yes" && - test "$tst_compi_strstr" = "yes" && - test "$tst_allow_strstr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRSTR 1 -_ACEOF - - ac_cv_func_strstr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strstr="no" - fi - - - # - tst_links_strtok_r="unknown" - tst_proto_strtok_r="unknown" - tst_compi_strtok_r="unknown" - tst_allow_strtok_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r can be linked" >&5 -$as_echo_n "checking if strtok_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strtok_r innocuous_strtok_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strtok_r -#ifdef __cplusplus -extern "C" -#endif -char strtok_r (); -#if defined __stub_strtok_r || defined __stub___strtok_r -choke me -#endif - -int main (void) -{ -return strtok_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strtok_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strtok_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strtok_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r is prototyped" >&5 -$as_echo_n "checking if strtok_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strtok_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strtok_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strtok_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strtok_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r is compilable" >&5 -$as_echo_n "checking if strtok_r is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strtok_r(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strtok_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strtok_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strtok_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r usage allowed" >&5 -$as_echo_n "checking if strtok_r usage allowed... " >&6; } - if test "x$curl_disallow_strtok_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strtok_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strtok_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r might be used" >&5 -$as_echo_n "checking if strtok_r might be used... " >&6; } - if test "$tst_links_strtok_r" = "yes" && - test "$tst_proto_strtok_r" = "yes" && - test "$tst_compi_strtok_r" = "yes" && - test "$tst_allow_strtok_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRTOK_R 1 -_ACEOF - - ac_cv_func_strtok_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strtok_r="no" - fi - - - # - tst_links_strtoll="unknown" - tst_proto_strtoll="unknown" - tst_compi_strtoll="unknown" - tst_allow_strtoll="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll can be linked" >&5 -$as_echo_n "checking if strtoll can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strtoll innocuous_strtoll -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strtoll -#ifdef __cplusplus -extern "C" -#endif -char strtoll (); -#if defined __stub_strtoll || defined __stub___strtoll -choke me -#endif - -int main (void) -{ -return strtoll (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strtoll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strtoll="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strtoll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll is prototyped" >&5 -$as_echo_n "checking if strtoll is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_stdlib - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strtoll" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strtoll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strtoll="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strtoll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll is compilable" >&5 -$as_echo_n "checking if strtoll is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - -int main (void) -{ - - if(0 != strtoll(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strtoll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strtoll="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strtoll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll usage allowed" >&5 -$as_echo_n "checking if strtoll usage allowed... " >&6; } - if test "x$curl_disallow_strtoll" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strtoll="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strtoll="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll might be used" >&5 -$as_echo_n "checking if strtoll might be used... " >&6; } - if test "$tst_links_strtoll" = "yes" && - test "$tst_proto_strtoll" = "yes" && - test "$tst_compi_strtoll" = "yes" && - test "$tst_allow_strtoll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRTOLL 1 -_ACEOF - - ac_cv_func_strtoll="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strtoll="no" - fi - - -curl_includes_sys_uio="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_UIO_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h sys/uio.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_uio -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_writev="unknown" - tst_proto_writev="unknown" - tst_compi_writev="unknown" - tst_allow_writev="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev can be linked" >&5 -$as_echo_n "checking if writev can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define writev innocuous_writev -#ifdef __STDC__ -# include -#else -# include -#endif -#undef writev -#ifdef __cplusplus -extern "C" -#endif -char writev (); -#if defined __stub_writev || defined __stub___writev -choke me -#endif - -int main (void) -{ -return writev (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_writev="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_writev="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_writev" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev is prototyped" >&5 -$as_echo_n "checking if writev is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_sys_uio - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "writev" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_writev="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_writev="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_writev" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev is compilable" >&5 -$as_echo_n "checking if writev is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_uio - -int main (void) -{ - - if(0 != writev(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_writev="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_writev="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_writev" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev usage allowed" >&5 -$as_echo_n "checking if writev usage allowed... " >&6; } - if test "x$curl_disallow_writev" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_writev="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_writev="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev might be used" >&5 -$as_echo_n "checking if writev might be used... " >&6; } - if test "$tst_links_writev" = "yes" && - test "$tst_proto_writev" = "yes" && - test "$tst_compi_writev" = "yes" && - test "$tst_allow_writev" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_WRITEV 1 -_ACEOF - - ac_cv_func_writev="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_writev="no" - fi - - -case $host in - *msdosdjgpp) - ac_cv_func_pipe=no - skipcheck_pipe=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: skip check for pipe on msdosdjgpp" >&5 -$as_echo "$as_me: skip check for pipe on msdosdjgpp" >&6;} - ;; -esac - -for ac_func in fork \ - geteuid \ - getpass_r \ - getppid \ - getprotobyname \ - getpwuid \ - getrlimit \ - gettimeofday \ - inet_addr \ - perror \ - pipe \ - setlocale \ - setmode \ - setrlimit \ - uname \ - utime - -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - - -else - - func="$ac_func" - eval skipcheck=\$skipcheck_$func - if test "x$skipcheck" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking deeper for $func" >&5 -$as_echo_n "checking deeper for $func... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - $func (); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - eval "ac_cv_func_$func=yes" - -cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$func" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' | sed 's/^A-Z0-9_/_/g'` 1 -_ACEOF - - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: but still no" >&5 -$as_echo "but still no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - -fi -done - - - - for ac_header in sys/types.h sys/socket.h netdb.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getnameinfo" >&5 -$as_echo_n "checking for getnameinfo... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define getnameinfo innocuous_getnameinfo -#ifdef __STDC__ -# include -#else -# include -#endif -#undef getnameinfo -#ifdef __cplusplus -extern "C" -#endif -char getnameinfo (); -#if defined __stub_getnameinfo || defined __stub___getnameinfo -choke me -#endif - -int main (void) -{ -return getnameinfo (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_getnameinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - curl_cv_getnameinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$curl_cv_getnameinfo" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking deeper for getnameinfo" >&5 -$as_echo_n "checking deeper for getnameinfo... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - getnameinfo(); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_getnameinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: but still no" >&5 -$as_echo "but still no" >&6; } - curl_cv_getnameinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - # - if test "$curl_cv_getnameinfo" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking deeper and deeper for getnameinfo" >&5 -$as_echo_n "checking deeper and deeper for getnameinfo... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#ifdef HAVE_WS2TCPIP_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#endif - -int main (void) -{ - - getnameinfo(0, 0, 0, 0, 0, 0, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_getnameinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: but still no" >&5 -$as_echo "but still no" >&6; } - curl_cv_getnameinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - # - if test "$curl_cv_getnameinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for getnameinfo" >&5 -$as_echo_n "checking types of arguments for getnameinfo... " >&6; } -if test "${curl_cv_func_getnameinfo_args+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_func_getnameinfo_args="unknown" - for gni_arg1 in 'struct sockaddr *' 'const struct sockaddr *' 'void *'; do - for gni_arg2 in 'socklen_t' 'size_t' 'int'; do - for gni_arg46 in 'size_t' 'int' 'socklen_t' 'unsigned int' 'DWORD'; do - for gni_arg7 in 'int' 'unsigned int'; do - if test "$curl_cv_func_getnameinfo_args" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#if (!defined(_WIN32_WINNT)) || (_WIN32_WINNT < 0x0501) -#undef _WIN32_WINNT -#define _WIN32_WINNT 0x0501 -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#ifdef HAVE_WS2TCPIP_H -#include -#endif -#endif -#define GNICALLCONV WSAAPI -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#define GNICALLCONV -#endif - extern int GNICALLCONV getnameinfo($gni_arg1, $gni_arg2, - char *, $gni_arg46, - char *, $gni_arg46, - $gni_arg7); - -int main (void) -{ - - $gni_arg2 salen=0; - $gni_arg46 hostlen=0; - $gni_arg46 servlen=0; - $gni_arg7 flags=0; - int res = getnameinfo(0, salen, 0, hostlen, 0, servlen, flags); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_func_getnameinfo_args="$gni_arg1,$gni_arg2,$gni_arg46,$gni_arg7" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_getnameinfo_args" >&5 -$as_echo "$curl_cv_func_getnameinfo_args" >&6; } # AC-CACHE-CHECK - if test "$curl_cv_func_getnameinfo_args" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find proper types to use for getnameinfo args" >&5 -$as_echo "$as_me: WARNING: Cannot find proper types to use for getnameinfo args" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_GETNAMEINFO will not be defined" >&5 -$as_echo "$as_me: WARNING: HAVE_GETNAMEINFO will not be defined" >&2;} - else - gni_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_getnameinfo_args" | sed 's/\*/\*/g'` - IFS=$gni_prev_IFS - shift - # - gni_qual_type_arg1=$1 - # - -cat >>confdefs.h <<_ACEOF -#define GETNAMEINFO_TYPE_ARG2 $2 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define GETNAMEINFO_TYPE_ARG46 $3 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define GETNAMEINFO_TYPE_ARG7 $4 -_ACEOF - - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$gni_qual_type_arg1" in - const*) - gni_qual_arg1=const - gni_type_arg1=`echo $gni_qual_type_arg1 | sed 's/^const //'` - ;; - *) - gni_qual_arg1= - gni_type_arg1=$gni_qual_type_arg1 - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define GETNAMEINFO_QUAL_ARG1 $gni_qual_arg1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define GETNAMEINFO_TYPE_ARG1 $gni_type_arg1 -_ACEOF - - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETNAMEINFO 1 -_ACEOF - - ac_cv_func_getnameinfo="yes" - fi - fi - - -if test "$ipv6" = "yes"; then - if test "$ac_cv_func_getaddrinfo" = "yes"; then - -$as_echo "#define ENABLE_IPV6 1" >>confdefs.h - - IPV6_ENABLED=1 - - fi - - for ac_header in stdio.h sys/types.h sys/socket.h \ - netdb.h netinet/in.h arpa/inet.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working NI_WITHSCOPEID" >&5 -$as_echo_n "checking for working NI_WITHSCOPEID... " >&6; } -if test "${ac_cv_working_ni_withscopeid+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - if test "$cross_compiling" = yes; then : - - # Program is not run when cross-compiling. So we assume - # NI_WITHSCOPEID will work if we are able to compile it. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include -#include -#include - -int main (void) -{ - - unsigned int dummy= NI_NUMERICHOST | NI_NUMERICSERV | NI_WITHSCOPEID; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_working_ni_withscopeid="yes" - -else - - ac_cv_working_ni_withscopeid="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # AC-COMPILE-IFELSE - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_STDLIB_H -#include -#endif -#ifdef HAVE_STDIO_H -#include -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif - -int main (void) -{ - -#if defined(NI_WITHSCOPEID) && defined(HAVE_GETNAMEINFO) -#ifdef HAVE_STRUCT_SOCKADDR_STORAGE - struct sockaddr_storage sa; -#else - unsigned char sa[256]; -#endif - char hostbuf[NI_MAXHOST]; - int rc; - GETNAMEINFO_TYPE_ARG2 salen = (GETNAMEINFO_TYPE_ARG2)sizeof(sa); - GETNAMEINFO_TYPE_ARG46 hostlen = (GETNAMEINFO_TYPE_ARG46)sizeof(hostbuf); - GETNAMEINFO_TYPE_ARG7 flags = NI_NUMERICHOST | NI_NUMERICSERV | NI_WITHSCOPEID; - int fd = socket(AF_INET6, SOCK_STREAM, 0); - if(fd < 0) { - perror("socket()"); - return 1; /* Error creating socket */ - } - rc = getsockname(fd, (GETNAMEINFO_TYPE_ARG1)&sa, &salen); - if(rc) { - perror("getsockname()"); - return 2; /* Error retrieving socket name */ - } - rc = getnameinfo((GETNAMEINFO_TYPE_ARG1)&sa, salen, hostbuf, hostlen, NULL, 0, flags); - if(rc) { - printf("rc = %s\n", gai_strerror(rc)); - return 3; /* Error translating socket address */ - } - return 0; /* Ok, NI_WITHSCOPEID works */ -#else - return 4; /* Error, NI_WITHSCOPEID not defined or no getnameinfo() */ -#endif - - ; - return 0; -} # AC-LANG-PROGRAM - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - # Exit code == 0. Program worked. - ac_cv_working_ni_withscopeid="yes" - -else - - # Exit code != 0. Program failed. - ac_cv_working_ni_withscopeid="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - # AC-RUN-IFELSE - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_ni_withscopeid" >&5 -$as_echo "$ac_cv_working_ni_withscopeid" >&6; } # AC-CACHE-CHECK - case "$ac_cv_working_ni_withscopeid" in - yes) - -$as_echo "#define HAVE_NI_WITHSCOPEID 1" >>confdefs.h - - ;; - esac - -fi - - - # - tst_method="unknown" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to set a socket into non-blocking mode" >&5 -$as_echo_n "checking how to set a socket into non-blocking mode... " >&6; } - if test "x$ac_cv_func_fcntl_o_nonblock" = "xyes"; then - tst_method="fcntl O_NONBLOCK" - elif test "x$ac_cv_func_ioctl_fionbio" = "xyes"; then - tst_method="ioctl FIONBIO" - elif test "x$ac_cv_func_ioctlsocket_fionbio" = "xyes"; then - tst_method="ioctlsocket FIONBIO" - elif test "x$ac_cv_func_ioctlsocket_camel_fionbio" = "xyes"; then - tst_method="IoctlSocket FIONBIO" - elif test "x$ac_cv_func_setsockopt_so_nonblock" = "xyes"; then - tst_method="setsockopt SO_NONBLOCK" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_method" >&5 -$as_echo "$tst_method" >&6; } - if test "$tst_method" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine non-blocking socket method." >&5 -$as_echo "$as_me: WARNING: cannot determine non-blocking socket method." >&2;} - fi - - - -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PERL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_PERL="$PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin " -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PERL=$ac_cv_path_PERL -if test -n "$PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 -$as_echo "$PERL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - -for ac_prog in gnroff nroff -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_NROFF+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $NROFF in - [\\/]* | ?:[\\/]*) - ac_cv_path_NROFF="$NROFF" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin/:/usr/local/bin " -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_NROFF="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -NROFF=$ac_cv_path_NROFF -if test -n "$NROFF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NROFF" >&5 -$as_echo "$NROFF" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$NROFF" && break -done - - - -if test -n "$NROFF"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to use *nroff to get plain text from man pages" >&5 -$as_echo_n "checking how to use *nroff to get plain text from man pages... " >&6; } - MANOPT="-man" - mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null` - if test -z "$mancheck"; then - MANOPT="-mandoc" - mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null` - if test -z "$mancheck"; then - MANOPT="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: found no *nroff option to get plaintext from man pages" >&5 -$as_echo "$as_me: WARNING: found no *nroff option to get plaintext from man pages" >&2;} - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANOPT" >&5 -$as_echo "$MANOPT" >&6; } - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANOPT" >&5 -$as_echo "$MANOPT" >&6; } - fi - -fi - -if test -z "$MANOPT" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling built-in manual" >&5 -$as_echo "$as_me: WARNING: disabling built-in manual" >&2;} - USE_MANUAL="no"; -fi - - -if test "$USE_MANUAL" = "1"; then - -$as_echo "#define USE_MANUAL 1" >>confdefs.h - - curl_manual_msg="enabled" -fi - - - -if test x"$USE_MANUAL" = x1; then - USE_MANUAL_TRUE= - USE_MANUAL_FALSE='#' -else - USE_MANUAL_TRUE='#' - USE_MANUAL_FALSE= -fi - - - - - - # - if test "$want_ares" = "yes"; then - clean_CPPFLAGS="$CPPFLAGS" - clean_LDFLAGS="$LDFLAGS" - clean_LIBS="$LIBS" - embedded_ares="unknown" - configure_runpath=`pwd` - embedded_ares_builddir="$configure_runpath/ares" - if test -n "$want_ares_path"; then - ares_CPPFLAGS="-I$want_ares_path/include" - ares_LDFLAGS="-L$want_ares_path/lib" - ares_LIBS="-lcares" - else - if test -d "$srcdir/ares"; then - embedded_ares="yes" - subdirs="$subdirs ares" - - ares_CPPFLAGS="" - ares_LDFLAGS="-L$embedded_ares_builddir" - ares_LIBS="-lcares" - else - ares_CPPFLAGS="" - ares_LDFLAGS="" - ares_LIBS="-lcares" - fi - fi - # - CPPFLAGS="$ares_CPPFLAGS $clean_CPPFLAGS" - LDFLAGS="$ares_LDFLAGS $clean_LDFLAGS" - LIBS="$ares_LIBS $clean_LIBS" - # - if test "$embedded_ares" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking that c-ares is good and recent enough" >&5 -$as_echo_n "checking that c-ares is good and recent enough... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - /* set of dummy functions in case c-ares was built with debug */ - void curl_dofree() { } - void curl_sclose() { } - void curl_domalloc() { } - void curl_docalloc() { } - void curl_socket() { } - -int main (void) -{ - - ares_channel channel; - ares_cancel(channel); /* added in 1.2.0 */ - ares_process_fd(channel, 0, 0); /* added in 1.4.0 */ - ares_dup(&channel, channel); /* added in 1.6.0 */ - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error "c-ares library defective or too old" "$LINENO" 5 - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LIBS="$clean_LIBS" - # prevent usage - want_ares="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$want_ares" = "yes"; then - -$as_echo "#define USE_ARES 1" >>confdefs.h - - USE_ARES=1 - - curl_res_msg="c-ares" - fi - fi - - - -if test x$embedded_ares = xyes; then - USE_EMBEDDED_ARES_TRUE= - USE_EMBEDDED_ARES_FALSE='#' -else - USE_EMBEDDED_ARES_TRUE='#' - USE_EMBEDDED_ARES_FALSE= -fi - - -if test "x$ac_cv_native_windows" != "xyes" && - test "x$enable_shared" = "xyes"; then - build_libhostname=yes -else - build_libhostname=no -fi - - -if test x$build_libhostname = xyes; then - BUILD_LIBHOSTNAME_TRUE= - BUILD_LIBHOSTNAME_FALSE='#' -else - BUILD_LIBHOSTNAME_TRUE='#' - BUILD_LIBHOSTNAME_FALSE= -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable the threaded resolver" >&5 -$as_echo_n "checking whether to enable the threaded resolver... " >&6; } - OPT_THRES="default" - # Check whether --enable-threaded_resolver was given. -if test "${enable_threaded_resolver+set}" = set; then : - enableval=$enable_threaded_resolver; OPT_THRES=$enableval -fi - - case "$OPT_THRES" in - yes) - want_thres="yes" - ;; - *) - want_thres="no" - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_thres" >&5 -$as_echo "$want_thres" >&6; } - - -if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then - as_fn_error "Options --enable-threaded-resolver and --enable-ares are mutually exclusive" "$LINENO" 5 -fi - -if test "$want_thres" = "yes"; then - ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_h" = x""yes; then : - -$as_echo "#define HAVE_PTHREAD_H 1" >>confdefs.h - - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -pthread" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 -$as_echo_n "checking for pthread_create in -lpthread... " >&6; } -if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char pthread_create (); -int main (void) -{ -return pthread_create (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread_pthread_create=yes -else - ac_cv_lib_pthread_pthread_create=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5 -$as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } -if test "x$ac_cv_lib_pthread_pthread_create" = x""yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: using POSIX threaded DNS lookup" >&5 -$as_echo "$as_me: using POSIX threaded DNS lookup" >&6;} - -$as_echo "#define USE_THREADS_POSIX 1" >>confdefs.h - - USE_THREADS_POSIX=1 - curl_res_msg="threaded" - -else - CFLAGS="$save_CFLAGS" -fi - - -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable verbose strings" >&5 -$as_echo_n "checking whether to enable verbose strings... " >&6; } -# Check whether --enable-verbose was given. -if test "${enable_verbose+set}" = set; then : - enableval=$enable_verbose; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_VERBOSE_STRINGS 1" >>confdefs.h - - curl_verbose_msg="no" - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable SSPI support (Windows native builds only)" >&5 -$as_echo_n "checking whether to enable SSPI support (Windows native builds only)... " >&6; } -# Check whether --enable-sspi was given. -if test "${enable_sspi+set}" = set; then : - enableval=$enable_sspi; case "$enableval" in - yes) - if test "$ac_cv_native_windows" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define USE_WINDOWS_SSPI 1" >>confdefs.h - - USE_WINDOWS_SSPI=1 - - curl_sspi_msg="enabled" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-sspi Ignored. Only supported on native Windows builds." >&5 -$as_echo "$as_me: WARNING: --enable-sspi Ignored. Only supported on native Windows builds." >&2;} - fi - ;; - *) - if test "x$WINSSL_ENABLED" = "x1"; then - # --with-winssl implies --enable-sspi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - esac -else - if test "x$WINSSL_ENABLED" = "x1"; then - # --with-winssl implies --enable-sspi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable cryptographic authentication methods" >&5 -$as_echo_n "checking whether to enable cryptographic authentication methods... " >&6; } -# Check whether --enable-crypto-auth was given. -if test "${enable_crypto_auth+set}" = set; then : - enableval=$enable_crypto_auth; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_CRYPTO_AUTH 1" >>confdefs.h - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - - OPT_NTLM_WB="default" - # Check whether --enable-ntlm-wb was given. -if test "${enable_ntlm_wb+set}" = set; then : - enableval=$enable_ntlm_wb; OPT_NTLM_WB=$enableval -fi - - want_ntlm_wb_file="/usr/bin/ntlm_auth" - case "$OPT_NTLM_WB" in - no) - want_ntlm_wb="no" - ;; - default) - want_ntlm_wb="yes" - ;; - *) - want_ntlm_wb="yes" - if test -n "$enableval" && test "$enableval" != "yes"; then - want_ntlm_wb_file="$enableval" - fi - ;; - esac - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable NTLM delegation to winbind's helper" >&5 -$as_echo_n "checking whether to enable NTLM delegation to winbind's helper... " >&6; } - if test "$ac_cv_native_windows" = "yes" || - test "x$SSL_ENABLED" = "x"; then - want_ntlm_wb_file="" - want_ntlm_wb="no" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_ntlm_wb" >&5 -$as_echo "$want_ntlm_wb" >&6; } - if test "$want_ntlm_wb" = "yes"; then - -$as_echo "#define NTLM_WB_ENABLED 1" >>confdefs.h - - -cat >>confdefs.h <<_ACEOF -#define NTLM_WB_FILE "$want_ntlm_wb_file" -_ACEOF - - NTLM_WB_ENABLED=1 - fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable TLS-SRP authentication" >&5 -$as_echo_n "checking whether to enable TLS-SRP authentication... " >&6; } -# Check whether --enable-tls-srp was given. -if test "${enable_tls_srp+set}" = set; then : - enableval=$enable_tls_srp; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_TLS_SRP 1" >>confdefs.h - - want_tls_srp=no - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - want_tls_srp=yes - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - want_tls_srp=yes - -fi - - -if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_SSLEAY_SRP" = "x1") ; then - -$as_echo "#define USE_TLS_SRP 1" >>confdefs.h - - USE_TLS_SRP=1 - curl_tls_srp_msg="enabled" -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable support for cookies" >&5 -$as_echo_n "checking whether to enable support for cookies... " >&6; } -# Check whether --enable-cookies was given. -if test "${enable_cookies+set}" = set; then : - enableval=$enable_cookies; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_COOKIES 1" >>confdefs.h - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether hiding of library internal symbols will actually happen" >&5 -$as_echo_n "checking whether hiding of library internal symbols will actually happen... " >&6; } - CFLAG_CURL_SYMBOL_HIDING="" - doing_symbol_hiding="no" - if test x"$ac_cv_native_windows" != "xyes" && - test "$want_symbol_hiding" = "yes" && - test "$supports_symbol_hiding" = "yes"; then - doing_symbol_hiding="yes" - CFLAG_CURL_SYMBOL_HIDING="$symbol_hiding_CFLAGS" - -cat >>confdefs.h <<_ACEOF -#define CURL_EXTERN_SYMBOL $symbol_hiding_EXTERN -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - -if test x$doing_symbol_hiding = xyes; then - DOING_CURL_SYMBOL_HIDING_TRUE= - DOING_CURL_SYMBOL_HIDING_FALSE='#' -else - DOING_CURL_SYMBOL_HIDING_TRUE='#' - DOING_CURL_SYMBOL_HIDING_FALSE= -fi - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enforce SONAME bump" >&5 -$as_echo_n "checking whether to enforce SONAME bump... " >&6; } -# Check whether --enable-soname-bump was given. -if test "${enable_soname_bump+set}" = set; then : - enableval=$enable_soname_bump; case "$enableval" in - yes) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - soname_bump=yes - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $soname_bump" >&5 -$as_echo "$soname_bump" >&6; } - -fi - - - -if test x$soname_bump = xyes; then - SONAME_BUMP_TRUE= - SONAME_BUMP_FALSE='#' -else - SONAME_BUMP_TRUE='#' - SONAME_BUMP_FALSE= -fi - - - -if test ! -z "$winsock_LIB"; then - - - LIBS="$LIBS $winsock_LIB" - TEST_SERVER_LIBS="$TEST_SERVER_LIBS $winsock_LIB" - -fi - -LIBCURL_LIBS=$LIBS - - - - - -LIBS=$ALL_LIBS - - -if test x$cross_compiling = xyes; then - CROSSCOMPILING_TRUE= - CROSSCOMPILING_FALSE='#' -else - CROSSCOMPILING_TRUE='#' - CROSSCOMPILING_FALSE= -fi - - -ENABLE_SHARED="$enable_shared" - - - -if test "x$USE_SSLEAY" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES SSL" -elif test -n "$SSL_ENABLED"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES SSL" -fi -if test "@KRB4_ENABLED@" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES KRB4" -fi -if test "x$IPV6_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6" -fi -if test "x$HAVE_LIBZ" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES libz" -fi -if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS" -fi -if test "x$IDN_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES IDN" -fi -if test "x$USE_WINDOWS_SSPI" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI" -fi -if test "x$CURL_DISABLE_HTTP" != "x1"; then - if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \ - -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1" \ - -o "x$DARWINSSL_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM" - if test "x$NTLM_WB_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM_WB" - fi - fi -fi -if test "x$USE_TLS_SRP" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP" -fi - - - -if test "x$CURL_DISABLE_HTTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS" - fi -fi -if test "x$CURL_DISABLE_FTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTPS" - fi -fi -if test "x$CURL_DISABLE_FILE" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FILE" -fi -if test "x$CURL_DISABLE_TELNET" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TELNET" -fi -if test "x$CURL_DISABLE_LDAP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAP" - if test "x$CURL_DISABLE_LDAPS" != "x1"; then - if (test "x$USE_OPENLDAP" = "x1" && test "x$SSL_ENABLED" = "x1") || - (test "x$USE_OPENLDAP" != "x1" && test "x$HAVE_LDAP_SSL" = "x1"); then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS" - fi - fi -fi -if test "x$CURL_DISABLE_DICT" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS DICT" -fi -if test "x$CURL_DISABLE_TFTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TFTP" -fi -if test "x$CURL_DISABLE_GOPHER" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS GOPHER" -fi -if test "x$CURL_DISABLE_POP3" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3S" - fi -fi -if test "x$CURL_DISABLE_IMAP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS" - fi -fi -if test "x$CURL_DISABLE_SMTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTPS" - fi -fi -if test "x$USE_LIBSSH2" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" -fi -if test "x$CURL_DISABLE_RTSP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP" -fi -if test "x$USE_LIBRTMP" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTMP" -fi - -SUPPORT_PROTOCOLS=`echo $SUPPORT_PROTOCOLS | tr ' ' '\012' | sort | tr '\012' ' '` - - - - -squeeze CFLAGS -squeeze CPPFLAGS -squeeze DEFS -squeeze LDFLAGS -squeeze LIBS - -squeeze CURL_LIBS -squeeze LIBCURL_LIBS -squeeze TEST_SERVER_LIBS -squeeze CURL_NETWORK_LIBS - -squeeze SUPPORT_FEATURES -squeeze SUPPORT_PROTOCOLS - -if test "x$want_curldebug_assumed" = "xyes" && - test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then - ac_configure_args="$ac_configure_args --enable-curldebug" -fi - -ac_config_files="$ac_config_files Makefile docs/Makefile docs/examples/Makefile docs/libcurl/Makefile include/Makefile include/curl/Makefile src/Makefile lib/Makefile lib/libcurl.vers tests/Makefile tests/data/Makefile tests/server/Makefile tests/libtest/Makefile tests/unit/Makefile packages/Makefile packages/Win32/Makefile packages/Win32/cygwin/Makefile packages/Linux/Makefile packages/Linux/RPM/Makefile packages/Linux/RPM/curl.spec packages/Linux/RPM/curl-ssl.spec packages/Solaris/Makefile packages/EPM/curl.list packages/EPM/Makefile packages/vms/Makefile packages/AIX/Makefile packages/AIX/RPM/Makefile packages/AIX/RPM/curl.spec curl-config libcurl.pc" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${MIMPURE_TRUE}" && test -z "${MIMPURE_FALSE}"; then - as_fn_error "conditional \"MIMPURE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_CPPFLAG_BUILDING_LIBCURL_TRUE}" && test -z "${USE_CPPFLAG_BUILDING_LIBCURL_FALSE}"; then - as_fn_error "conditional \"USE_CPPFLAG_BUILDING_LIBCURL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_CPPFLAG_CURL_STATICLIB_TRUE}" && test -z "${USE_CPPFLAG_CURL_STATICLIB_FALSE}"; then - as_fn_error "conditional \"USE_CPPFLAG_CURL_STATICLIB\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${NO_UNDEFINED_TRUE}" && test -z "${NO_UNDEFINED_FALSE}"; then - as_fn_error "conditional \"NO_UNDEFINED\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${CURLDEBUG_TRUE}" && test -z "${CURLDEBUG_FALSE}"; then - as_fn_error "conditional \"CURLDEBUG\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BUILD_UNITTESTS_TRUE}" && test -z "${BUILD_UNITTESTS_FALSE}"; then - as_fn_error "conditional \"BUILD_UNITTESTS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${DOING_NATIVE_WINDOWS_TRUE}" && test -z "${DOING_NATIVE_WINDOWS_FALSE}"; then - as_fn_error "conditional \"DOING_NATIVE_WINDOWS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_LIBZ_TRUE}" && test -z "${HAVE_LIBZ_FALSE}"; then - as_fn_error "conditional \"HAVE_LIBZ\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${VERSIONED_SYMBOLS_TRUE}" && test -z "${VERSIONED_SYMBOLS_FALSE}"; then - as_fn_error "conditional \"VERSIONED_SYMBOLS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_MANUAL_TRUE}" && test -z "${USE_MANUAL_FALSE}"; then - as_fn_error "conditional \"USE_MANUAL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_EMBEDDED_ARES_TRUE}" && test -z "${USE_EMBEDDED_ARES_FALSE}"; then - as_fn_error "conditional \"USE_EMBEDDED_ARES\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BUILD_LIBHOSTNAME_TRUE}" && test -z "${BUILD_LIBHOSTNAME_FALSE}"; then - as_fn_error "conditional \"BUILD_LIBHOSTNAME\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${DOING_CURL_SYMBOL_HIDING_TRUE}" && test -z "${DOING_CURL_SYMBOL_HIDING_FALSE}"; then - as_fn_error "conditional \"DOING_CURL_SYMBOL_HIDING\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${SONAME_BUMP_TRUE}" && test -z "${SONAME_BUMP_FALSE}"; then - as_fn_error "conditional \"SONAME_BUMP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${CROSSCOMPILING_TRUE}" && test -z "${CROSSCOMPILING_FALSE}"; then - as_fn_error "conditional \"CROSSCOMPILING\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: ${CONFIG_STATUS=./config.status} -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. -as_fn_error () -{ - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 - fi - $as_echo "$as_me: error: $1" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by curl $as_me -, which was -generated by GNU Autoconf 2.64. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_version="\\ -curl config.status - -configured by $0, generated by GNU Autoconf 2.64, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2009 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' -macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' -macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' -pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' -SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' -ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' -PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' -host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' -host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' -host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' -build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' -build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' -build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' -SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' -Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' -GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' -EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' -FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' -LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' -LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' -ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' -exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' -lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' -reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' -AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' -STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' -RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' -lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' -CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' -compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' -GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' -objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' -need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' -LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' -libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' -module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' -version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' -runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' -libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' -soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' -install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' -finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' -old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' -striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in AS \ -DLLTOOL \ -OBJDUMP \ -SHELL \ -ECHO \ -PATH_SEPARATOR \ -SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -deplibs_check_method \ -file_magic_cmd \ -file_magic_glob \ -want_nocaseglob \ -sharedlib_from_linklib_cmd \ -AR \ -AR_FLAGS \ -archiver_list_spec \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -nm_file_list_spec \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_pic \ -lt_prog_compiler_wl \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -MANIFEST_TOOL \ -DSYMUTIL \ -NMEDIT \ -LIPO \ -OTOOL \ -OTOOL64 \ -shrext_cmds \ -export_dynamic_flag_spec \ -whole_archive_flag_spec \ -compiler_needs_object \ -with_gnu_ld \ -allow_undefined_flag \ -no_undefined_flag \ -hardcode_libdir_flag_spec \ -hardcode_libdir_separator \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -install_override_mode \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in reload_cmds \ -old_postinstall_cmds \ -old_postuninstall_cmds \ -old_archive_cmds \ -extract_expsyms_cmds \ -old_archive_from_new_cmds \ -old_archive_from_expsyms_cmds \ -archive_cmds \ -archive_expsym_cmds \ -module_cmds \ -module_expsym_cmds \ -export_symbols_cmds \ -prelink_cmds \ -postlink_cmds \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' - -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile' - - - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "lib/curl_config.h") CONFIG_HEADERS="$CONFIG_HEADERS lib/curl_config.h" ;; - "include/curl/curlbuild.h") CONFIG_HEADERS="$CONFIG_HEADERS include/curl/curlbuild.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; - "docs/examples/Makefile") CONFIG_FILES="$CONFIG_FILES docs/examples/Makefile" ;; - "docs/libcurl/Makefile") CONFIG_FILES="$CONFIG_FILES docs/libcurl/Makefile" ;; - "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; - "include/curl/Makefile") CONFIG_FILES="$CONFIG_FILES include/curl/Makefile" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; - "lib/libcurl.vers") CONFIG_FILES="$CONFIG_FILES lib/libcurl.vers" ;; - "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; - "tests/data/Makefile") CONFIG_FILES="$CONFIG_FILES tests/data/Makefile" ;; - "tests/server/Makefile") CONFIG_FILES="$CONFIG_FILES tests/server/Makefile" ;; - "tests/libtest/Makefile") CONFIG_FILES="$CONFIG_FILES tests/libtest/Makefile" ;; - "tests/unit/Makefile") CONFIG_FILES="$CONFIG_FILES tests/unit/Makefile" ;; - "packages/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Makefile" ;; - "packages/Win32/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Win32/Makefile" ;; - "packages/Win32/cygwin/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Win32/cygwin/Makefile" ;; - "packages/Linux/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Linux/Makefile" ;; - "packages/Linux/RPM/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Linux/RPM/Makefile" ;; - "packages/Linux/RPM/curl.spec") CONFIG_FILES="$CONFIG_FILES packages/Linux/RPM/curl.spec" ;; - "packages/Linux/RPM/curl-ssl.spec") CONFIG_FILES="$CONFIG_FILES packages/Linux/RPM/curl-ssl.spec" ;; - "packages/Solaris/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Solaris/Makefile" ;; - "packages/EPM/curl.list") CONFIG_FILES="$CONFIG_FILES packages/EPM/curl.list" ;; - "packages/EPM/Makefile") CONFIG_FILES="$CONFIG_FILES packages/EPM/Makefile" ;; - "packages/vms/Makefile") CONFIG_FILES="$CONFIG_FILES packages/vms/Makefile" ;; - "packages/AIX/Makefile") CONFIG_FILES="$CONFIG_FILES packages/AIX/Makefile" ;; - "packages/AIX/RPM/Makefile") CONFIG_FILES="$CONFIG_FILES packages/AIX/RPM/Makefile" ;; - "packages/AIX/RPM/curl.spec") CONFIG_FILES="$CONFIG_FILES packages/AIX/RPM/curl.spec" ;; - "curl-config") CONFIG_FILES="$CONFIG_FILES curl-config" ;; - "libcurl.pc") CONFIG_FILES="$CONFIG_FILES libcurl.pc" ;; - - *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\).*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\).*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || as_fn_error "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ -s/:*$// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then - break - elif $ac_last_try; then - as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} - - rm -f "$tmp/stdin" - case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; - esac \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - "$ac_file" | "$ac_file":* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for "$ac_file"" >`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - "libtool":C) - - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -# The names of the tagged configurations supported by this script. -available_tags="" - -# ### BEGIN LIBTOOL CONFIG - -# Assembler program. -AS=$lt_AS - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Object dumper program. -OBJDUMP=$lt_OBJDUMP - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# What type of objects to build. -pic_mode=$pic_mode - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that protects backslashes. -ECHO=$lt_ECHO - -# The PATH separator for the build system. -PATH_SEPARATOR=$lt_PATH_SEPARATOR - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="\$SED -e 1s/^X//" - -# A grep program that handles long lines. -GREP=$lt_GREP - -# An ERE matcher. -EGREP=$lt_EGREP - -# A literal string matcher. -FGREP=$lt_FGREP - -# A BSD- or MS-compatible name lister. -NM=$lt_NM - -# Whether we need soft or hard links. -LN_S=$lt_LN_S - -# What is the maximum length of a command? -max_cmd_len=$max_cmd_len - -# Object file suffix (normally "o"). -objext=$ac_objext - -# Executable file suffix (normally ""). -exeext=$exeext - -# whether the shell understands "unset". -lt_unset=$lt_unset - -# turn spaces into newlines. -SP2NL=$lt_lt_SP2NL - -# turn newlines into spaces. -NL2SP=$lt_lt_NL2SP - -# convert \$build file names to \$host format. -to_host_file_cmd=$lt_cv_to_host_file_cmd - -# convert \$build files to toolchain format. -to_tool_file_cmd=$lt_cv_to_tool_file_cmd - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method = "file_magic". -file_magic_cmd=$lt_file_magic_cmd - -# How to find potential files when deplibs_check_method = "file_magic". -file_magic_glob=$lt_file_magic_glob - -# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -want_nocaseglob=$lt_want_nocaseglob - -# Command to associate shared and link libraries. -sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd - -# The archiver. -AR=$lt_AR - -# Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS - -# How to feed a file listing to the archiver. -archiver_list_spec=$lt_archiver_list_spec - -# A symbol stripping program. -STRIP=$lt_STRIP - -# Commands used to install an old-style archive. -RANLIB=$lt_RANLIB -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Whether to use a lock for old archive extraction. -lock_old_archive_extraction=$lock_old_archive_extraction - -# A C compiler. -LTCC=$lt_CC - -# LTCC compiler flags. -LTCFLAGS=$lt_CFLAGS - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration. -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair. -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# Transform the output of nm in a C name address pair when lib prefix is needed. -global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -# Specify filename containing input files for \$NM. -nm_file_list_spec=$lt_nm_file_list_spec - -# The root where to search for dependent libraries,and in which our libraries should be installed. -lt_sysroot=$lt_sysroot - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# Used to examine libraries when file_magic_cmd begins with "file". -MAGIC_CMD=$MAGIC_CMD - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Manifest tool. -MANIFEST_TOOL=$lt_MANIFEST_TOOL - -# Tool to manipulate archived DWARF debug symbol files on Mac OS X. -DSYMUTIL=$lt_DSYMUTIL - -# Tool to change global to local symbols on Mac OS X. -NMEDIT=$lt_NMEDIT - -# Tool to manipulate fat objects and archives on Mac OS X. -LIPO=$lt_LIPO - -# ldd/readelf like tool for Mach-O binaries on Mac OS X. -OTOOL=$lt_OTOOL - -# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. -OTOOL64=$lt_OTOOL64 - -# Old archive suffix (normally "a"). -libext=$libext - -# Shared library suffix (normally ".so"). -shrext_cmds=$lt_shrext_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at link time. -variables_saved_for_relink=$lt_variables_saved_for_relink - -# Do we need the "lib" prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Library versioning type. -version_type=$version_type - -# Shared library runtime path variable. -runpath_var=$runpath_var - -# Shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Permission mode override for installation of shared libraries. -install_override_mode=$lt_install_override_mode - -# Command to use after installation of a shared archive. -postinstall_cmds=$lt_postinstall_cmds - -# Command to use after uninstallation of a shared archive. -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# As "finish_cmds", except a single script fragment to be evaled but -# not shown. -finish_eval=$lt_finish_eval - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Compile-time system search path for libraries. -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - - -# The linker used to build libraries. -LD=$lt_LD - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# Commands used to build an old-style archive. -old_archive_cmds=$lt_old_archive_cmds - -# A language specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU compiler? -with_gcc=$GCC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static. -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Whether the compiler copes with passing no objects directly. -compiler_needs_object=$lt_compiler_needs_object - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds - -# Commands used to build a loadable module if different from building -# a shared archive. -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Whether we are building with GNU ld or not. -with_gnu_ld=$lt_with_gnu_ld - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that enforces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# Whether we need a single "-rpath" flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary. -hardcode_direct=$hardcode_direct - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \${shlibpath_var} if the -# library is relocated. -hardcode_direct_absolute=$hardcode_direct_absolute - -# Set to "yes" if using the -LDIR flag during linking hardcodes DIR -# into the resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -# into the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to "yes" if building a shared library automatically hardcodes DIR -# into the library and all subsequent libraries and executables linked -# against it. -hardcode_automatic=$hardcode_automatic - -# Set to yes if linker adds runtime paths of dependent libraries -# to runtime path list. -inherit_rpath=$inherit_rpath - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Set to "yes" if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# Commands necessary for linking programs (against libraries) with templates. -prelink_cmds=$lt_prelink_cmds - -# Commands necessary for finishing linking programs. -postlink_cmds=$lt_postlink_cmds - -# Specify filename containing input files. -file_list_spec=$lt_file_list_spec - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - -ltmain="$ac_aux_dir/ltmain.sh" - - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - if test x"$xsi_shell" = xyes; then - sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -func_dirname ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_basename ()$/,/^} # func_basename /c\ -func_basename ()\ -{\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -func_dirname_and_basename ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -func_stripname ()\ -{\ -\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -\ # positional parameters, so assign one to ordinary parameter first.\ -\ func_stripname_result=${3}\ -\ func_stripname_result=${func_stripname_result#"${1}"}\ -\ func_stripname_result=${func_stripname_result%"${2}"}\ -} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -func_split_long_opt ()\ -{\ -\ func_split_long_opt_name=${1%%=*}\ -\ func_split_long_opt_arg=${1#*=}\ -} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -func_split_short_opt ()\ -{\ -\ func_split_short_opt_arg=${1#??}\ -\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -func_lo2o ()\ -{\ -\ case ${1} in\ -\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -\ *) func_lo2o_result=${1} ;;\ -\ esac\ -} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_xform ()$/,/^} # func_xform /c\ -func_xform ()\ -{\ - func_xform_result=${1%.*}.lo\ -} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_arith ()$/,/^} # func_arith /c\ -func_arith ()\ -{\ - func_arith_result=$(( $* ))\ -} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_len ()$/,/^} # func_len /c\ -func_len ()\ -{\ - func_len_result=${#1}\ -} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - -fi - -if test x"$lt_shell_append" = xyes; then - sed -e '/^func_append ()$/,/^} # func_append /c\ -func_append ()\ -{\ - eval "${1}+=\\${2}"\ -} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -func_append_quoted ()\ -{\ -\ func_quote_for_eval "${2}"\ -\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -fi - - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit $? -fi - -# -# CONFIG_SUBDIRS section. -# -if test "$no_recursion" != yes; then - - # Remove --cache-file, --srcdir, and --disable-option-checking arguments - # so they do not pile up. - ac_sub_configure_args= - ac_prev= - eval "set x $ac_configure_args" - shift - for ac_arg - do - if test -n "$ac_prev"; then - ac_prev= - continue - fi - case $ac_arg in - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ - | --c=*) - ;; - --config-cache | -C) - ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - ;; - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - ;; - --disable-option-checking) - ;; - *) - case $ac_arg in - *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append ac_sub_configure_args " '$ac_arg'" ;; - esac - done - - # Always prepend --prefix to ensure using the same prefix - # in subdir configurations. - ac_arg="--prefix=$prefix" - case $ac_arg in - *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" - - # Pass --silent - if test "$silent" = yes; then - ac_sub_configure_args="--silent $ac_sub_configure_args" - fi - - # Always prepend --disable-option-checking to silence warnings, since - # different subdirs can have different --enable and --with options. - ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" - - ac_popdir=`pwd` - for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue - - # Do not complain, so a configure script can configure whichever - # parts of a large source tree are present. - test -d "$srcdir/$ac_dir" || continue - - ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" - $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 - $as_echo "$ac_msg" >&6 - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - cd "$ac_dir" - - # Check for guested configure; otherwise get Cygnus style configure. - if test -f "$ac_srcdir/configure.gnu"; then - ac_sub_configure=$ac_srcdir/configure.gnu - elif test -f "$ac_srcdir/configure"; then - ac_sub_configure=$ac_srcdir/configure - elif test -f "$ac_srcdir/configure.in"; then - # This should be Cygnus configure. - ac_sub_configure=$ac_aux_dir/configure - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 -$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} - ac_sub_configure= - fi - - # The recursion is here. - if test -n "$ac_sub_configure"; then - # Make the cache file name correct relative to the subdirectory. - case $cache_file in - [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; - *) # Relative name. - ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 -$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} - # The eval makes quoting arguments work. - eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ - --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || - as_fn_error "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 - fi - - cd "$ac_popdir" - done -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - - - - tmp_cpp=`eval echo "$ac_cpp" 2>/dev/null` - if test -z "$tmp_cpp"; then - tmp_cpp='cpp' - fi - cat >./tests/configurehelp.pm <<_EOF -# This is a generated file. Do not edit. - -package configurehelp; - -use strict; -use warnings; -use Exporter; - -use vars qw( - @ISA - @EXPORT_OK - \$Cpreprocessor - ); - -@ISA = qw(Exporter); - -@EXPORT_OK = qw( - \$Cpreprocessor - ); - -\$Cpreprocessor = '$tmp_cpp'; - -1; -_EOF - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: Configured to build curl/libcurl: - - curl version: ${CURLVERSION} - Host setup: ${host} - Install prefix: ${prefix} - Compiler: ${CC} - SSL support: ${curl_ssl_msg} - SSH support: ${curl_ssh_msg} - zlib support: ${curl_zlib_msg} - krb4 support: ${curl_krb4_msg} - GSSAPI support: ${curl_gss_msg} - SPNEGO support: ${curl_spnego_msg} - TLS-SRP support: ${curl_tls_srp_msg} - resolver: ${curl_res_msg} - ipv6 support: ${curl_ipv6_msg} - IDN support: ${curl_idn_msg} - Build libcurl: Shared=${enable_shared}, Static=${enable_static} - Built-in manual: ${curl_manual_msg} - --libcurl option: ${curl_libcurl_msg} - Verbose errors: ${curl_verbose_msg} - SSPI support: ${curl_sspi_msg} - ca cert bundle: ${ca} - ca cert path: ${capath} - LDAP support: ${curl_ldap_msg} - LDAPS support: ${curl_ldaps_msg} - RTSP support: ${curl_rtsp_msg} - RTMP support: ${curl_rtmp_msg} - metalink support: ${curl_mtlnk_msg} - Protocols: ${SUPPORT_PROTOCOLS} -" >&5 -$as_echo "$as_me: Configured to build curl/libcurl: - - curl version: ${CURLVERSION} - Host setup: ${host} - Install prefix: ${prefix} - Compiler: ${CC} - SSL support: ${curl_ssl_msg} - SSH support: ${curl_ssh_msg} - zlib support: ${curl_zlib_msg} - krb4 support: ${curl_krb4_msg} - GSSAPI support: ${curl_gss_msg} - SPNEGO support: ${curl_spnego_msg} - TLS-SRP support: ${curl_tls_srp_msg} - resolver: ${curl_res_msg} - ipv6 support: ${curl_ipv6_msg} - IDN support: ${curl_idn_msg} - Build libcurl: Shared=${enable_shared}, Static=${enable_static} - Built-in manual: ${curl_manual_msg} - --libcurl option: ${curl_libcurl_msg} - Verbose errors: ${curl_verbose_msg} - SSPI support: ${curl_sspi_msg} - ca cert bundle: ${ca} - ca cert path: ${capath} - LDAP support: ${curl_ldap_msg} - LDAPS support: ${curl_ldaps_msg} - RTSP support: ${curl_rtsp_msg} - RTMP support: ${curl_rtmp_msg} - metalink support: ${curl_mtlnk_msg} - Protocols: ${SUPPORT_PROTOCOLS} -" >&6;} - -if test "x$soname_bump" = "xyes"; then - -cat <, 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. -# -#*************************************************************************** -dnl Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.57) - -dnl We don't know the version number "statically" so we use a dash here -AC_INIT([curl], [-], [a suitable curl mailing list: http://curl.haxx.se/mail/]) - -XC_OVR_ZZ50 -CURL_OVERRIDE_AUTOCONF - -dnl configure script copyright -AC_COPYRIGHT([Copyright (c) 1998 - 2012 Daniel Stenberg, -This configure script may be copied, distributed and modified under the -terms of the curl license; see COPYING for more details]) - -AC_CONFIG_SRCDIR([lib/urldata.h]) -AM_CONFIG_HEADER(lib/curl_config.h include/curl/curlbuild.h) -AC_CONFIG_MACRO_DIR([m4]) -AM_MAINTAINER_MODE - -CURL_CHECK_OPTION_DEBUG -CURL_CHECK_OPTION_OPTIMIZE -CURL_CHECK_OPTION_WARNINGS -CURL_CHECK_OPTION_WERROR -CURL_CHECK_OPTION_CURLDEBUG -CURL_CHECK_OPTION_SYMBOL_HIDING -CURL_CHECK_OPTION_ARES - -CURL_CHECK_PATH_SEPARATOR_REQUIRED - -# -# save the configure arguments -# -CONFIGURE_OPTIONS="\"$ac_configure_args\"" -AC_SUBST(CONFIGURE_OPTIONS) - -CURL_CFLAG_EXTRAS="" -if test X"$want_werror" = Xyes; then - CURL_CFLAG_EXTRAS="-Werror" -fi -AC_SUBST(CURL_CFLAG_EXTRAS) - -dnl SED is mandatory for configure process and libtool. -dnl Set it now, allowing it to be changed later. -if test -z "$SED"; then - dnl allow it to be overridden - AC_PATH_PROG([SED], [sed], [not_found], - [$PATH:/usr/bin:/usr/local/bin]) - if test -z "$SED" || test "$SED" = "not_found"; then - AC_MSG_ERROR([sed not found in PATH. Cannot continue without sed.]) - fi -fi -AC_SUBST([SED]) - -dnl GREP is mandatory for configure process and libtool. -dnl Set it now, allowing it to be changed later. -if test -z "$GREP"; then - dnl allow it to be overridden - AC_PATH_PROG([GREP], [grep], [not_found], - [$PATH:/usr/bin:/usr/local/bin]) - if test -z "$GREP" || test "$GREP" = "not_found"; then - AC_MSG_ERROR([grep not found in PATH. Cannot continue without grep.]) - fi -fi -AC_SUBST([GREP]) - -dnl EGREP is mandatory for configure process and libtool. -dnl Set it now, allowing it to be changed later. -if test -z "$EGREP"; then - dnl allow it to be overridden - if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then - AC_MSG_CHECKING([for egrep]) - EGREP="$GREP -E" - AC_MSG_RESULT([$EGREP]) - else - AC_PATH_PROG([EGREP], [egrep], [not_found], - [$PATH:/usr/bin:/usr/local/bin]) - fi -fi -if test -z "$EGREP" || test "$EGREP" = "not_found"; then - AC_MSG_ERROR([egrep not found in PATH. Cannot continue without egrep.]) -fi -AC_SUBST([EGREP]) - -dnl AR is mandatory for configure process and libtool. -dnl This is target dependent, so check it as a tool. -if test -z "$AR"; then - dnl allow it to be overridden - AC_PATH_TOOL([AR], [ar], [not_found], - [$PATH:/usr/bin:/usr/local/bin]) - if test -z "$AR" || test "$AR" = "not_found"; then - AC_MSG_ERROR([ar not found in PATH. Cannot continue without ar.]) - fi -fi -AC_SUBST([AR]) - -AC_SUBST(libext) - -dnl Remove non-configure distributed curlbuild.h -if test -f ${srcdir}/include/curl/curlbuild.h; then - rm -f ${srcdir}/include/curl/curlbuild.h -fi - -dnl figure out the libcurl version -CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h` -AM_INIT_AUTOMAKE -AC_MSG_CHECKING([curl version]) -AC_MSG_RESULT($CURLVERSION) - -AC_SUBST(CURLVERSION) - -dnl -dnl we extract the numerical version for curl-config only -VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\(.*\)/\1/p' ${srcdir}/include/curl/curlver.h` -AC_SUBST(VERSIONNUM) - -dnl Solaris pkgadd support definitions -PKGADD_PKG="HAXXcurl" -PKGADD_NAME="cURL - a client that groks URLs" -PKGADD_VENDOR="curl.haxx.se" -AC_SUBST(PKGADD_PKG) -AC_SUBST(PKGADD_NAME) -AC_SUBST(PKGADD_VENDOR) - -dnl -dnl initialize all the info variables - curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl} )" - curl_ssh_msg="no (--with-libssh2)" - curl_zlib_msg="no (--with-zlib)" - curl_krb4_msg="no (--with-krb4*)" - curl_gss_msg="no (--with-gssapi)" - curl_spnego_msg="no (--with-spnego)" -curl_tls_srp_msg="no (--enable-tls-srp)" - curl_res_msg="default (--enable-ares / --enable-threaded-resolver)" - curl_ipv6_msg="no (--enable-ipv6)" - curl_idn_msg="no (--with-{libidn,winidn})" - curl_manual_msg="no (--enable-manual)" -curl_libcurl_msg="enabled (--disable-libcurl-option)" -curl_verbose_msg="enabled (--disable-verbose)" - curl_sspi_msg="no (--enable-sspi)" - curl_ldap_msg="no (--enable-ldap / --with-ldap-lib / --with-lber-lib)" - curl_ldaps_msg="no (--enable-ldaps)" - curl_rtsp_msg="no (--enable-rtsp)" - curl_rtmp_msg="no (--with-librtmp)" - curl_mtlnk_msg="no (--with-libmetalink)" - - init_ssl_msg=${curl_ssl_msg} - -dnl -dnl Save anything in $LIBS for later -dnl -ALL_LIBS=$LIBS - -dnl -dnl Detect the canonical host and target build environment -dnl - -AC_CANONICAL_HOST -dnl Get system canonical name -AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS]) - -dnl Checks for programs. -CURL_CHECK_PROG_CC - -dnl Our curl_off_t internal and external configure settings -CURL_CONFIGURE_CURL_OFF_T - -dnl This defines _ALL_SOURCE for AIX -CURL_CHECK_AIX_ALL_SOURCE - -dnl Our configure and build reentrant settings -CURL_CONFIGURE_THREAD_SAFE -CURL_CONFIGURE_REENTRANT - -dnl check for how to do large files -AC_SYS_LARGEFILE - -dnl support building of Windows DLLs -AC_LIBTOOL_WIN32_DLL - -dnl force libtool to build static libraries with PIC on AMD64-Linux & FreeBSD -AC_MSG_CHECKING([if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)]) -case $host in - x86_64*linux*|amd64*freebsd*|ia64*freebsd*) - AC_MSG_RESULT([yes]) - with_pic=yes - ;; - *) - AC_MSG_RESULT([no]) - ;; -esac - -AC_MSG_CHECKING([if compiler is icc (to build with PIC)]) -case $CC in - icc | */icc) - AC_MSG_RESULT([yes]) - with_pic=yes - ;; - *) - AC_MSG_RESULT([no]) - ;; -esac - -dnl libtool setup -AC_PROG_LIBTOOL - -AC_MSG_CHECKING([if we need -mimpure-text]) -mimpure=no -case $host in - *-*-solaris2*) - if test "$GCC" = "yes"; then - mimpure="yes" - fi - ;; - *) - ;; -esac -AC_MSG_RESULT($mimpure) -AM_CONDITIONAL(MIMPURE, test x$mimpure = xyes) - -AC_MSG_CHECKING([if we need BUILDING_LIBCURL]) -use_cppflag_building_libcurl="no" -use_cppflag_curl_staticlib="no" -CPPFLAG_CURL_STATICLIB="" -case $host in - *-*-mingw*) - AC_MSG_RESULT(yes) - use_cppflag_building_libcurl="yes" - AC_MSG_CHECKING([if we need CURL_STATICLIB]) - if test "X$enable_shared" = "Xno" - then - AC_MSG_RESULT(yes) - use_cppflag_curl_staticlib="yes" - CPPFLAG_CURL_STATICLIB="-DCURL_STATICLIB" - else - AC_MSG_RESULT(no) - fi - ;; - *) - AC_MSG_RESULT(no) - ;; -esac -AM_CONDITIONAL(USE_CPPFLAG_BUILDING_LIBCURL, test x$use_cppflag_building_libcurl = xyes) -AM_CONDITIONAL(USE_CPPFLAG_CURL_STATICLIB, test x$use_cppflag_curl_staticlib = xyes) -AC_SUBST(CPPFLAG_CURL_STATICLIB) - -# Determine whether all dependent libraries must be specified when linking -if test "X$enable_shared" = "Xyes" -a "X$link_all_deplibs" = "Xno" -then - REQUIRE_LIB_DEPS=no -else - REQUIRE_LIB_DEPS=yes -fi -AC_SUBST(REQUIRE_LIB_DEPS) - -dnl The install stuff has already been taken care of by the automake stuff -dnl AC_PROG_INSTALL -AC_PROG_MAKE_SET - -dnl check if there's a way to force code inline -AC_C_INLINE - -dnl ********************************************************************** -dnl platform/compiler/architecture specific checks/flags -dnl ********************************************************************** - -CURL_CHECK_COMPILER -CURL_SET_COMPILER_BASIC_OPTS -CURL_SET_COMPILER_DEBUG_OPTS -CURL_SET_COMPILER_OPTIMIZE_OPTS -CURL_SET_COMPILER_WARNING_OPTS - -if test "$compiler_id" = "INTEL_UNIX_C"; then - # - if test "$compiler_num" -ge "1000"; then - dnl icc 10.X or later - CFLAGS="$CFLAGS -shared-intel" - elif test "$compiler_num" -ge "900"; then - dnl icc 9.X specific - CFLAGS="$CFLAGS -i-dynamic" - fi - # -fi - -CURL_CHECK_COMPILER_HALT_ON_ERROR -CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE -CURL_CHECK_COMPILER_SYMBOL_HIDING - -CURL_CHECK_NO_UNDEFINED -AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes) - -CURL_CHECK_CURLDEBUG -AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes) - -supports_unittests=yes -# cross-compilation of unit tests static library/programs fails when -# libcurl shared library is built. This might be due to a libtool or -# automake issue. In this case we disable unit tests. -if test "x$cross_compiling" != "xno" && - test "x$enable_shared" != "xno"; then - supports_unittests=no -fi - -# IRIX 6.5.24 gcc 3.3 autobuilds fail unittests library compilation due to -# a problem related with OpenSSL headers and library versions not matching. -# Disable unit tests while time to further investigate this is found. -case $host in - mips-sgi-irix6.5) - if test "$compiler_id" = "GNU_C"; then - supports_unittests=no - fi - ;; -esac - -# All AIX autobuilds fails unit tests linking against unittests library -# due to unittests library being built with no symbols or members. Libtool ? -# Disable unit tests while time to further investigate this is found. -case $host_os in - aix*) - supports_unittests=no - ;; -esac - -dnl Build unit tests when option --enable-debug is given. -if test "x$want_debug" = "xyes" && - test "x$supports_unittests" = "xyes"; then - want_unittests=yes -else - want_unittests=no -fi -AM_CONDITIONAL(BUILD_UNITTESTS, test x$want_unittests = xyes) - -dnl ********************************************************************** -dnl Compilation based checks should not be done before this point. -dnl ********************************************************************** - -dnl ********************************************************************** -dnl Make sure that our checks for headers windows.h winsock.h winsock2.h -dnl and ws2tcpip.h take precedence over any other further checks which -dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for -dnl this specific header files. And do them before its results are used. -dnl ********************************************************************** - -CURL_CHECK_HEADER_WINDOWS -CURL_CHECK_NATIVE_WINDOWS -case X-"$ac_cv_native_windows" in - X-yes) - CURL_CHECK_HEADER_WINSOCK - CURL_CHECK_HEADER_WINSOCK2 - CURL_CHECK_HEADER_WS2TCPIP - CURL_CHECK_HEADER_WINLDAP - CURL_CHECK_HEADER_WINBER - ;; - *) - ac_cv_header_winsock_h="no" - ac_cv_header_winsock2_h="no" - ac_cv_header_ws2tcpip_h="no" - ac_cv_header_winldap_h="no" - ac_cv_header_winber_h="no" - ;; -esac -CURL_CHECK_WIN32_LARGEFILE - -dnl ************************************************************ -dnl switch off particular protocols -dnl -AC_MSG_CHECKING([whether to support http]) -AC_ARG_ENABLE(http, -AC_HELP_STRING([--enable-http],[Enable HTTP support]) -AC_HELP_STRING([--disable-http],[Disable HTTP support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_HTTP, 1, [to disable HTTP]) - AC_MSG_WARN([disable HTTP disables FTP over proxy and RTSP]) - AC_SUBST(CURL_DISABLE_HTTP, [1]) - AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP]) - AC_SUBST(CURL_DISABLE_RTSP, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) -AC_MSG_CHECKING([whether to support ftp]) -AC_ARG_ENABLE(ftp, -AC_HELP_STRING([--enable-ftp],[Enable FTP support]) -AC_HELP_STRING([--disable-ftp],[Disable FTP support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_FTP, 1, [to disable FTP]) - AC_SUBST(CURL_DISABLE_FTP, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) -AC_MSG_CHECKING([whether to support file]) -AC_ARG_ENABLE(file, -AC_HELP_STRING([--enable-file],[Enable FILE support]) -AC_HELP_STRING([--disable-file],[Disable FILE support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_FILE, 1, [to disable FILE]) - AC_SUBST(CURL_DISABLE_FILE, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) -AC_MSG_CHECKING([whether to support ldap]) -AC_ARG_ENABLE(ldap, -AC_HELP_STRING([--enable-ldap],[Enable LDAP support]) -AC_HELP_STRING([--disable-ldap],[Disable LDAP support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP]) - AC_SUBST(CURL_DISABLE_LDAP, [1]) - ;; - *) - AC_MSG_RESULT(yes) - ;; - esac ],[ - AC_MSG_RESULT(yes) ] -) -AC_MSG_CHECKING([whether to support ldaps]) -AC_ARG_ENABLE(ldaps, -AC_HELP_STRING([--enable-ldaps],[Enable LDAPS support]) -AC_HELP_STRING([--disable-ldaps],[Disable LDAPS support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS]) - AC_SUBST(CURL_DISABLE_LDAPS, [1]) - ;; - *) if test "x$CURL_DISABLE_LDAP" = "x1" ; then - AC_MSG_RESULT(LDAP needs to be enabled to support LDAPS) - AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS]) - AC_SUBST(CURL_DISABLE_LDAPS, [1]) - else - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation]) - AC_SUBST(HAVE_LDAP_SSL, [1]) - fi - ;; - esac ],[ - if test "x$CURL_DISABLE_LDAP" = "x1" ; then - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS]) - AC_SUBST(CURL_DISABLE_LDAPS, [1]) - else - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation]) - AC_SUBST(HAVE_LDAP_SSL, [1]) - fi ] -) - -AC_MSG_CHECKING([whether to support rtsp]) -AC_ARG_ENABLE(rtsp, -AC_HELP_STRING([--enable-rtsp],[Enable RTSP support]) -AC_HELP_STRING([--disable-rtsp],[Disable RTSP support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP]) - AC_SUBST(CURL_DISABLE_RTSP, [1]) - ;; - *) if test x$CURL_DISABLE_HTTP = x1 ; then - AC_MSG_ERROR(HTTP support needs to be enabled in order to enable RTSP support!) - else - AC_MSG_RESULT(yes) - curl_rtsp_msg="enabled" - fi - ;; - esac ], - if test "x$CURL_DISABLE_HTTP" != "x1"; then - AC_MSG_RESULT(yes) - curl_rtsp_msg="enabled" - else - AC_MSG_RESULT(no) - fi -) - -AC_MSG_CHECKING([whether to support proxies]) -AC_ARG_ENABLE(proxy, -AC_HELP_STRING([--enable-proxy],[Enable proxy support]) -AC_HELP_STRING([--disable-proxy],[Disable proxy support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_PROXY, 1, [to disable proxies]) - AC_SUBST(CURL_DISABLE_PROXY, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) - -AC_MSG_CHECKING([whether to support dict]) -AC_ARG_ENABLE(dict, -AC_HELP_STRING([--enable-dict],[Enable DICT support]) -AC_HELP_STRING([--disable-dict],[Disable DICT support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_DICT, 1, [to disable DICT]) - AC_SUBST(CURL_DISABLE_DICT, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) -AC_MSG_CHECKING([whether to support telnet]) -AC_ARG_ENABLE(telnet, -AC_HELP_STRING([--enable-telnet],[Enable TELNET support]) -AC_HELP_STRING([--disable-telnet],[Disable TELNET support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_TELNET, 1, [to disable TELNET]) - AC_SUBST(CURL_DISABLE_TELNET, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) -AC_MSG_CHECKING([whether to support tftp]) -AC_ARG_ENABLE(tftp, -AC_HELP_STRING([--enable-tftp],[Enable TFTP support]) -AC_HELP_STRING([--disable-tftp],[Disable TFTP support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_TFTP, 1, [to disable TFTP]) - AC_SUBST(CURL_DISABLE_TFTP, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) - -AC_MSG_CHECKING([whether to support pop3]) -AC_ARG_ENABLE(pop3, -AC_HELP_STRING([--enable-pop3],[Enable POP3 support]) -AC_HELP_STRING([--disable-pop3],[Disable POP3 support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_POP3, 1, [to disable POP3]) - AC_SUBST(CURL_DISABLE_POP3, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) - - -AC_MSG_CHECKING([whether to support imap]) -AC_ARG_ENABLE(imap, -AC_HELP_STRING([--enable-imap],[Enable IMAP support]) -AC_HELP_STRING([--disable-imap],[Disable IMAP support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_IMAP, 1, [to disable IMAP]) - AC_SUBST(CURL_DISABLE_IMAP, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) - - -AC_MSG_CHECKING([whether to support smtp]) -AC_ARG_ENABLE(smtp, -AC_HELP_STRING([--enable-smtp],[Enable SMTP support]) -AC_HELP_STRING([--disable-smtp],[Disable SMTP support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_SMTP, 1, [to disable SMTP]) - AC_SUBST(CURL_DISABLE_SMTP, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) - -AC_MSG_CHECKING([whether to support gopher]) -AC_ARG_ENABLE(gopher, -AC_HELP_STRING([--enable-gopher],[Enable Gopher support]) -AC_HELP_STRING([--disable-gopher],[Disable Gopher support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_GOPHER, 1, [to disable Gopher]) - AC_SUBST(CURL_DISABLE_GOPHER, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) - - -dnl ********************************************************************** -dnl Check for built-in manual -dnl ********************************************************************** - -AC_MSG_CHECKING([whether to provide built-in manual]) -AC_ARG_ENABLE(manual, -AC_HELP_STRING([--enable-manual],[Enable built-in manual]) -AC_HELP_STRING([--disable-manual],[Disable built-in manual]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - ;; - *) AC_MSG_RESULT(yes) - USE_MANUAL="1" - ;; - esac ], - AC_MSG_RESULT(yes) - USE_MANUAL="1" -) -dnl The actual use of the USE_MANUAL variable is done much later in this -dnl script to allow other actions to disable it as well. - -dnl ************************************************************ -dnl disable C code generation support -dnl -AC_MSG_CHECKING([whether to enable generation of C code]) -AC_ARG_ENABLE(libcurl_option, -AC_HELP_STRING([--enable-libcurl-option],[Enable --libcurl C code generation support]) -AC_HELP_STRING([--disable-libcurl-option],[Disable --libcurl C code generation support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_LIBCURL_OPTION, 1, [to disable --libcurl C code generation option]) - curl_libcurl_msg="no" - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) - -dnl ********************************************************************** -dnl Checks for libraries. -dnl ********************************************************************** - -CURL_CHECK_LIB_XNET - -dnl gethostbyname without lib or in the nsl lib? -AC_CHECK_FUNC(gethostbyname, - [HAVE_GETHOSTBYNAME="1" - ], - [ AC_CHECK_LIB(nsl, gethostbyname, - [HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnsl" - ]) - ]) - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - dnl gethostbyname in the socket lib? - AC_CHECK_LIB(socket, gethostbyname, - [HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lsocket" - ]) -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - dnl gethostbyname in the watt lib? - AC_CHECK_LIB(watt, gethostbyname, - [HAVE_GETHOSTBYNAME="1" - CPPFLAGS="-I/dev/env/WATT_ROOT/inc" - LDFLAGS="-L/dev/env/WATT_ROOT/lib" - LIBS="$LIBS -lwatt" - ]) -fi - -dnl At least one system has been identified to require BOTH nsl and socket -dnl libs at the same time to link properly. -if test "$HAVE_GETHOSTBYNAME" != "1" -then - AC_MSG_CHECKING([for gethostbyname with both nsl and socket libs]) - my_ac_save_LIBS=$LIBS - LIBS="-lnsl -lsocket $LIBS" - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ - ]],[[ - gethostbyname(); - ]]) - ],[ - AC_MSG_RESULT([yes]) - HAVE_GETHOSTBYNAME="1" - ],[ - AC_MSG_RESULT([no]) - LIBS=$my_ac_save_LIBS - ]) -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - dnl This is for winsock systems - if test "$ac_cv_header_windows_h" = "yes"; then - if test "$ac_cv_header_winsock_h" = "yes"; then - case $host in - *-*-mingw32ce*) - winsock_LIB="-lwinsock" - ;; - *) - winsock_LIB="-lwsock32" - ;; - esac - fi - if test "$ac_cv_header_winsock2_h" = "yes"; then - winsock_LIB="-lws2_32" - fi - if test ! -z "$winsock_LIB"; then - my_ac_save_LIBS=$LIBS - LIBS="$winsock_LIB $LIBS" - AC_MSG_CHECKING([for gethostbyname in $winsock_LIB]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#endif - ]],[[ - gethostbyname("www.dummysite.com"); - ]]) - ],[ - AC_MSG_RESULT([yes]) - HAVE_GETHOSTBYNAME="1" - ],[ - AC_MSG_RESULT([no]) - winsock_LIB="" - LIBS=$my_ac_save_LIBS - ]) - fi - fi -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - dnl This is for Minix 3.1 - AC_MSG_CHECKING([for gethostbyname for Minix 3]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -/* Older Minix versions may need here instead */ -#include - ]],[[ - gethostbyname("www.dummysite.com"); - ]]) - ],[ - AC_MSG_RESULT([yes]) - HAVE_GETHOSTBYNAME="1" - ],[ - AC_MSG_RESULT([no]) - ]) -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - dnl This is for eCos with a stubbed DNS implementation - AC_MSG_CHECKING([for gethostbyname for eCos]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#include -#include - ]],[[ - gethostbyname("www.dummysite.com"); - ]]) - ],[ - AC_MSG_RESULT([yes]) - HAVE_GETHOSTBYNAME="1" - ],[ - AC_MSG_RESULT([no]) - ]) -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - dnl gethostbyname in the network lib - for Haiku OS - AC_CHECK_LIB(network, gethostbyname, - [HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnetwork" - ]) -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - dnl gethostbyname in the net lib - for BeOS - AC_CHECK_LIB(net, gethostbyname, - [HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnet" - ]) -fi - - -if test "$HAVE_GETHOSTBYNAME" != "1"; then - AC_MSG_ERROR([couldn't find libraries for gethostbyname()]) -fi - -dnl resolve lib? -AC_CHECK_FUNC(strcasecmp, , [ AC_CHECK_LIB(resolve, strcasecmp) ]) - -if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then - AC_CHECK_LIB(resolve, strcasecmp, - [LIBS="-lresolve $LIBS"], - , - -lnsl) -fi -ac_cv_func_strcasecmp="no" - -CURL_CHECK_LIBS_CONNECT - -CURL_NETWORK_LIBS=$LIBS - -dnl ********************************************************************** -dnl In case that function clock_gettime with monotonic timer is available, -dnl check for additional required libraries. -dnl ********************************************************************** -CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC - -dnl ********************************************************************** -dnl The preceding library checks are all potentially useful for test -dnl servers (for providing networking support). Save the list of required -dnl libraries at this point for use while linking those test servers. -dnl ********************************************************************** -TEST_SERVER_LIBS=$LIBS - -dnl ********************************************************************** -AC_MSG_CHECKING([whether to use libgcc]) -AC_ARG_ENABLE(libgcc, -AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]), -[ case "$enableval" in - yes) - ALL_LIBS="$ALL_LIBS -lgcc" - AC_MSG_RESULT(yes) - ;; - *) AC_MSG_RESULT(no) - ;; - esac ], - AC_MSG_RESULT(no) -) - -dnl ********************************************************************** -dnl Check for LDAP -dnl ********************************************************************** - -LDAPLIBNAME="" -AC_ARG_WITH(ldap-lib, -AC_HELP_STRING([--with-ldap-lib=libname],[Specify name of ldap lib file]), - [LDAPLIBNAME="$withval"]) - -LBERLIBNAME="" -AC_ARG_WITH(lber-lib, -AC_HELP_STRING([--with-lber-lib=libname],[Specify name of lber lib file]), - [LBERLIBNAME="$withval"]) - -if test x$CURL_DISABLE_LDAP != x1 ; then - - CURL_CHECK_HEADER_LBER - CURL_CHECK_HEADER_LDAP - CURL_CHECK_HEADER_LDAPSSL - CURL_CHECK_HEADER_LDAP_SSL - - if test -z "$LDAPLIBNAME" ; then - if test "$ac_cv_native_windows" = "yes"; then - dnl Windows uses a single and unique LDAP library name - LDAPLIBNAME="wldap32" - LBERLIBNAME="no" - fi - fi - - if test "$LDAPLIBNAME" ; then - AC_CHECK_LIB("$LDAPLIBNAME", ldap_init,, [ - AC_MSG_WARN(["$LDAPLIBNAME" is not an LDAP library: LDAP disabled]) - AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP]) - AC_SUBST(CURL_DISABLE_LDAP, [1]) - AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS]) - AC_SUBST(CURL_DISABLE_LDAPS, [1])]) - else - dnl Try to find the right ldap libraries for this system - CURL_CHECK_LIBS_LDAP - case X-"$curl_cv_ldap_LIBS" in - X-unknown) - AC_MSG_WARN([Cannot find libraries for LDAP support: LDAP disabled]) - AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP]) - AC_SUBST(CURL_DISABLE_LDAP, [1]) - AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS]) - AC_SUBST(CURL_DISABLE_LDAPS, [1]) - ;; - esac - fi -fi - -if test x$CURL_DISABLE_LDAP != x1 ; then - - if test "$LBERLIBNAME" ; then - dnl If name is "no" then don't define this library at all - dnl (it's only needed if libldap.so's dependencies are broken). - if test "$LBERLIBNAME" != "no" ; then - AC_CHECK_LIB("$LBERLIBNAME", ber_free,, [ - AC_MSG_WARN(["$LBERLIBNAME" is not an LBER library: LDAP disabled]) - AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP]) - AC_SUBST(CURL_DISABLE_LDAP, [1]) - AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS]) - AC_SUBST(CURL_DISABLE_LDAPS, [1])]) - fi - fi -fi - -if test x$CURL_DISABLE_LDAP != x1 ; then - AC_CHECK_FUNCS([ldap_url_parse ldap_init_fd]) - - if test "$LDAPLIBNAME" = "wldap32"; then - curl_ldap_msg="enabled (winldap)" - AC_DEFINE(CURL_LDAP_WIN, 1, [Use Windows LDAP implementation]) - else - curl_ldap_msg="enabled (OpenLDAP)" - if test "x$ac_cv_func_ldap_init_fd" = "xyes"; then - AC_DEFINE(USE_OPENLDAP, 1, [Use OpenLDAP-specific code]) - AC_SUBST(USE_OPENLDAP, [1]) - fi - fi -fi - -if test x$CURL_DISABLE_LDAPS != x1 ; then - curl_ldaps_msg="enabled" -fi - -dnl ********************************************************************** -dnl Checks for IPv6 -dnl ********************************************************************** - -AC_MSG_CHECKING([whether to enable ipv6]) -AC_ARG_ENABLE(ipv6, -AC_HELP_STRING([--enable-ipv6],[Enable ipv6 (with ipv4) support]) -AC_HELP_STRING([--disable-ipv6],[Disable ipv6 support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - ipv6=no - ;; - *) AC_MSG_RESULT(yes) - ipv6=yes - ;; - esac ], - - AC_TRY_RUN([ /* is AF_INET6 available? */ -#include -#include -main() -{ - if (socket(AF_INET6, SOCK_STREAM, 0) < 0) - exit(1); - else - exit(0); -} -], - AC_MSG_RESULT(yes) - ipv6=yes, - AC_MSG_RESULT(no) - ipv6=no, - AC_MSG_RESULT(no) - ipv6=no -)) - -if test "$ipv6" = "yes"; then - curl_ipv6_msg="enabled" -fi - -# Check if struct sockaddr_in6 have sin6_scope_id member -if test "$ipv6" = yes; then - AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member]) - AC_TRY_COMPILE([ -#include -#include ] , - struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes) - if test "$have_sin6_scope_id" = yes; then - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID, 1, [Define to 1 if struct sockaddr_in6 has the sin6_scope_id member]) - else - AC_MSG_RESULT([no]) - fi -fi - -dnl ********************************************************************** -dnl Check if the operating system allows programs to write to their own argv[] -dnl ********************************************************************** - -AC_MSG_CHECKING([if argv can be written to]) -AC_RUN_IFELSE([ - AC_LANG_SOURCE([[ -int main(int argc, char ** argv) { - argv[0][0] = ' '; - return (argv[0][0] == ' ')?0:1; -} - ]]) -],[ - curl_cv_writable_argv=yes -],[ - curl_cv_writable_argv=no -],[ - curl_cv_writable_argv=cross -]) -case $curl_cv_writable_argv in -yes) - AC_DEFINE(HAVE_WRITABLE_ARGV, 1, [Define this symbol if your OS supports changing the contents of argv]) - AC_MSG_RESULT(yes) - ;; -no) - AC_MSG_RESULT(no) - ;; -*) - AC_MSG_RESULT(no) - AC_MSG_WARN([the previous check could not be made default was used]) - ;; -esac - -dnl ********************************************************************** -dnl Check for the presence of Kerberos4 libraries and headers -dnl ********************************************************************** - -AC_ARG_WITH(krb4-includes, -AC_HELP_STRING([--with-krb4-includes=DIR], - [Specify location of kerberos4 headers]),[ - CPPFLAGS="$CPPFLAGS -I$withval" - KRB4INC="$withval" - want_krb4=yes - ]) - -AC_ARG_WITH(krb4-libs, -AC_HELP_STRING([--with-krb4-libs=DIR],[Specify location of kerberos4 libs]),[ - LDFLAGS="$LDFLAGS -L$withval" - KRB4LIB="$withval" - want_krb4=yes - ]) - - -OPT_KRB4=off -AC_ARG_WITH(krb4,dnl -AC_HELP_STRING([--with-krb4=DIR],[where to look for Kerberos4]),[ - OPT_KRB4="$withval" - if test X"$OPT_KRB4" != Xno; then - want_krb4="yes" - if test X"$OPT_KRB4" != Xyes; then - LDFLAGS="$LDFLAGS -L$OPT_KRB4/lib$libsuff" - KRB4LIB="$OPT_KRB4/lib$libsuff" - CPPFLAGS="$CPPFLAGS -I$OPT_KRB4/include" - KRB4INC="$OPT_KRB4/include" - fi - fi - ]) - -AC_MSG_CHECKING([if Kerberos4 support is requested]) - -if test "$want_krb4" = yes -then - if test "$ipv6" = "yes"; then - echo krb4 is not compatible with IPv6 - exit 1 - fi - AC_MSG_RESULT(yes) - - dnl Check for & handle argument to --with-krb4 - - AC_MSG_CHECKING(where to look for Kerberos4) - if test X"$OPT_KRB4" = Xyes - then - AC_MSG_RESULT([defaults]) - else - AC_MSG_RESULT([libs in $KRB4LIB, headers in $KRB4INC]) - fi - - dnl Check for DES library - AC_CHECK_LIB(des, des_pcbc_encrypt, - [ - AC_CHECK_HEADERS(des.h) - - dnl resolv lib? - AC_CHECK_FUNC(res_search, , [AC_CHECK_LIB(resolv, res_search)]) - - dnl Check for the Kerberos4 library - AC_CHECK_LIB(krb, krb_net_read, - [ - dnl Check for header files - AC_CHECK_HEADERS(krb.h) - - dnl we found the required libraries, add to LIBS - LIBS="-lkrb -lcom_err -ldes $LIBS" - - dnl Check for function krb_get_our_ip_for_realm - dnl this is needed for NAT networks - AC_CHECK_FUNCS(krb_get_our_ip_for_realm) - - dnl add define KRB4 - AC_DEFINE(HAVE_KRB4, 1, - [if you have the Kerberos4 libraries (including -ldes)]) - - dnl substitute it too! - KRB4_ENABLED=1 - AC_SUBST(KRB4_ENABLED) - - curl_krb4_msg="enabled" - - dnl the krb4 stuff needs a strlcpy() - AC_CHECK_FUNCS(strlcpy) - - ]) - ]) -else - AC_MSG_RESULT(no) -fi - -dnl ********************************************************************** -dnl Check for FBopenssl(SPNEGO) libraries -dnl ********************************************************************** - -AC_ARG_WITH(spnego, - AC_HELP_STRING([--with-spnego=DIR], - [Specify location of SPNEGO library fbopenssl]), [ - SPNEGO_ROOT="$withval" - if test x"$SPNEGO_ROOT" != xno; then - want_spnego="yes" - fi -]) - -AC_MSG_CHECKING([if SPNEGO support is requested]) -if test x"$want_spnego" = xyes; then - - if test X"$SPNEGO_ROOT" = Xyes; then - AC_MSG_ERROR([FBOpenSSL libs and/or directories were not found where specified!]) - AC_MSG_RESULT(no) - else - if test -z "$SPNEGO_LIB_DIR"; then - LDFLAGS="$LDFLAGS -L$SPNEGO_ROOT -lfbopenssl" - else - LDFLAGS="$LDFLAGS $SPNEGO_LIB_DIR" - fi - - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SPNEGO, 1, - [Define this if you have the SPNEGO library fbopenssl]) - curl_spnego_msg="enabled" - fi -else - AC_MSG_RESULT(no) -fi - -dnl ********************************************************************** -dnl Check for GSS-API libraries -dnl ********************************************************************** - -dnl check for gss stuff in the /usr as default - -GSSAPI_ROOT="/usr" -AC_ARG_WITH(gssapi-includes, - AC_HELP_STRING([--with-gssapi-includes=DIR], - [Specify location of GSSAPI header]), - [ GSSAPI_INCS="-I$withval" - want_gss="yes" ] -) - -AC_ARG_WITH(gssapi-libs, - AC_HELP_STRING([--with-gssapi-libs=DIR], - [Specify location of GSSAPI libs]), - [ GSSAPI_LIB_DIR="-L$withval" - want_gss="yes" ] -) - -AC_ARG_WITH(gssapi, - AC_HELP_STRING([--with-gssapi=DIR], - [Where to look for GSSAPI]), [ - GSSAPI_ROOT="$withval" - if test x"$GSSAPI_ROOT" != xno; then - want_gss="yes" - if test x"$GSSAPI_ROOT" = xyes; then - dnl if yes, then use default root - GSSAPI_ROOT="/usr" - fi - fi -]) - -save_CPPFLAGS="$CPPFLAGS" -AC_MSG_CHECKING([if GSSAPI support is requested]) -if test x"$want_gss" = xyes; then - AC_MSG_RESULT(yes) - - if test -z "$GSSAPI_INCS"; then - if test -f "$GSSAPI_ROOT/bin/krb5-config"; then - GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi` - elif test "$GSSAPI_ROOT" != "yes"; then - GSSAPI_INCS="-I$GSSAPI_ROOT/include" - fi - fi - - CPPFLAGS="$CPPFLAGS $GSSAPI_INCS" - - AC_CHECK_HEADER(gss.h, - [ - dnl found in the given dirs - AC_DEFINE(HAVE_GSSGNU, 1, [if you have the GNU gssapi libraries]) - gnu_gss=yes - ], - [ - dnl not found, check Heimdal or MIT - AC_CHECK_HEADERS([gssapi/gssapi.h], [], [not_mit=1]) - AC_CHECK_HEADERS( - [gssapi/gssapi_generic.h gssapi/gssapi_krb5.h], - [], - [not_mit=1], - [ -AC_INCLUDES_DEFAULT -#ifdef HAVE_GSSAPI_GSSAPI_H -#include -#endif - ]) - if test "x$not_mit" = "x1"; then - dnl MIT not found, check for Heimdal - AC_CHECK_HEADER(gssapi.h, - [ - dnl found - AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries]) - ], - [ - dnl no header found, disabling GSS - want_gss=no - AC_MSG_WARN(disabling GSSAPI since no header files was found) - ] - ) - else - dnl MIT found - AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries]) - dnl check if we have a really old MIT kerberos (<= 1.2) - AC_MSG_CHECKING([if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE]) - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#include -#include -#include - ]],[[ - gss_import_name( - (OM_uint32 *)0, - (gss_buffer_t)0, - GSS_C_NT_HOSTBASED_SERVICE, - (gss_name_t *)0); - ]]) - ],[ - AC_MSG_RESULT([yes]) - ],[ - AC_MSG_RESULT([no]) - AC_DEFINE(HAVE_OLD_GSSMIT, 1, - [if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE]) - ]) - fi - ] - ) -else - AC_MSG_RESULT(no) -fi -if test x"$want_gss" = xyes; then - AC_DEFINE(HAVE_GSSAPI, 1, [if you have the gssapi libraries]) - - curl_gss_msg="enabled (MIT/Heimdal)" - - if test -n "$gnu_gss"; then - curl_gss_msg="enabled (GNU GSS)" - LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" - LIBS="$LIBS -lgss" - elif test -z "$GSSAPI_LIB_DIR"; then - case $host in - *-*-darwin*) - LIBS="$LIBS -lgssapi_krb5 -lresolv" - ;; - *) - if test -f "$GSSAPI_ROOT/bin/krb5-config"; then - dnl krb5-config doesn't have --libs-only-L or similar, put everything - dnl into LIBS - gss_libs=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi` - LIBS="$LIBS $gss_libs" - elif test "$GSSAPI_ROOT" != "yes"; then - LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff" - LIBS="$LIBS -lgssapi" - else - LIBS="$LIBS -lgssapi" - fi - ;; - esac - else - LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" - LIBS="$LIBS -lgssapi" - fi -else - CPPFLAGS="$save_CPPFLAGS" -fi - -dnl ------------------------------------------------- -dnl check winssl option before other SSL libraries -dnl ------------------------------------------------- - -OPT_WINSSL=no -AC_ARG_WITH(winssl,dnl -AC_HELP_STRING([--with-winssl],[enable Windows native SSL/TLS]) -AC_HELP_STRING([--without-winssl], [disable Windows native SSL/TLS]), - OPT_WINSSL=$withval) - -AC_MSG_CHECKING([whether to enable Windows native SSL/TLS (Windows native builds only)]) -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - if test "x$OPT_WINSSL" != "xno" && - test "x$ac_cv_native_windows" = "xyes"; then - AC_MSG_RESULT(yes) - AC_DEFINE(USE_SCHANNEL, 1, [to enable Windows native SSL/TLS support]) - AC_SUBST(USE_SCHANNEL, [1]) - curl_ssl_msg="enabled (Windows-native)" - WINSSL_ENABLED=1 - # --with-winssl implies --enable-sspi - AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support]) - AC_SUBST(USE_WINDOWS_SSPI, [1]) - curl_sspi_msg="enabled" - else - AC_MSG_RESULT(no) - fi -else - AC_MSG_RESULT(no) -fi - -OPT_DARWINSSL=no -AC_ARG_WITH(darwinssl,dnl -AC_HELP_STRING([--with-darwinssl],[enable iOS/Mac OS X native SSL/TLS]) -AC_HELP_STRING([--without-darwinssl], [disable iOS/Mac OS X native SSL/TLS]), - OPT_DARWINSSL=$withval) - -AC_MSG_CHECKING([whether to enable iOS/Mac OS X native SSL/TLS]) -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - if test "x$OPT_DARWINSSL" != "xno" && - test -d "/System/Library/Frameworks/Security.framework"; then - AC_MSG_RESULT(yes) - AC_DEFINE(USE_DARWINSSL, 1, [to enable iOS/Mac OS X native SSL/TLS support]) - AC_SUBST(USE_DARWINSSL, [1]) - curl_ssl_msg="enabled (iOS/Mac OS X-native)" - DARWINSSL_ENABLED=1 - LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security" - else - AC_MSG_RESULT(no) - fi -else - AC_MSG_RESULT(no) -fi - -dnl ********************************************************************** -dnl Check for the presence of SSL libraries and headers -dnl ********************************************************************** - -dnl Default to compiler & linker defaults for SSL files & libraries. -OPT_SSL=off -dnl Default to no CA bundle -ca="no" -AC_ARG_WITH(ssl,dnl -AC_HELP_STRING([--with-ssl=PATH],[Where to look for OpenSSL, PATH points to the SSL installation (default: /usr/local/ssl); when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) -AC_HELP_STRING([--without-ssl], [disable OpenSSL]), - OPT_SSL=$withval) - -if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then - dnl backup the pre-ssl variables - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_SSL" in - yes) - dnl --with-ssl (without path) used - if test x$cross_compiling != xyes; then - dnl only do pkg-config magic when not cross-compiling - PKGTEST="yes" - fi - PREFIX_OPENSSL=/usr/local/ssl - LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff" - ;; - off) - dnl no --with-ssl option given, just check default places - if test x$cross_compiling != xyes; then - dnl only do pkg-config magic when not cross-compiling - PKGTEST="yes" - fi - PREFIX_OPENSSL= - ;; - *) - dnl check the given --with-ssl spot - PKGTEST="no" - PREFIX_OPENSSL=$OPT_SSL - - dnl Try pkg-config even when cross-compiling. Since we - dnl specify PKG_CONFIG_LIBDIR we're only looking where - dnl the user told us to look - OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig" - AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"]) - if test -f "$OPENSSL_PCDIR/openssl.pc"; then - PKGTEST="yes" - fi - - dnl in case pkg-config comes up empty, use what we got - dnl via --with-ssl - LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff" - if test "$PREFIX_OPENSSL" != "/usr" ; then - SSL_LDFLAGS="-L$LIB_OPENSSL" - SSL_CPPFLAGS="-I$PREFIX_OPENSSL/include" - fi - SSL_CPPFLAGS="$SSL_CPPFLAGS -I$PREFIX_OPENSSL/include/openssl" - ;; - esac - - if test "$PKGTEST" = "yes"; then - - CURL_CHECK_PKGCONFIG(openssl, [$OPENSSL_PCDIR]) - - if test "$PKGCONFIG" != "no" ; then - SSL_LIBS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl - $PKGCONFIG --libs-only-l openssl 2>/dev/null` - - SSL_LDFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl - $PKGCONFIG --libs-only-L openssl 2>/dev/null` - - SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl - $PKGCONFIG --cflags-only-I openssl 2>/dev/null` - - AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"]) - AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"]) - AC_MSG_NOTICE([pkg-config: SSL_CPPFLAGS: "$SSL_CPPFLAGS"]) - - LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'` - - dnl use the values pkg-config reported. This is here - dnl instead of below with CPPFLAGS and LDFLAGS because we only - dnl learn about this via pkg-config. If we only have - dnl the argument to --with-ssl we don't know what - dnl additional libs may be necessary. Hope that we - dnl don't need any. - LIBS="$LIBS $SSL_LIBS" - fi - fi - - dnl finally, set flags to use SSL - CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS" - LDFLAGS="$LDFLAGS $SSL_LDFLAGS" - - dnl This is for Msys/Mingw - case $host in - *-*-msys* | *-*-mingw*) - AC_MSG_CHECKING([for gdi32]) - my_ac_save_LIBS=$LIBS - LIBS="-lgdi32 $LIBS" - AC_TRY_LINK([#include - #include ], - [GdiFlush();], - [ dnl worked! - AC_MSG_RESULT([yes])], - [ dnl failed, restore LIBS - LIBS=$my_ac_save_LIBS - AC_MSG_RESULT(no)] - ) - ;; - esac - - AC_CHECK_LIB(crypto, CRYPTO_lock,[ - HAVECRYPTO="yes" - LIBS="-lcrypto $LIBS" - ],[ - LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL" - CPPFLAGS="$CLEANCPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include" - AC_CHECK_LIB(crypto, CRYPTO_add_lock,[ - HAVECRYPTO="yes" - LIBS="-lcrypto $LIBS"], [ - LDFLAGS="$CLEANLDFLAGS" - CPPFLAGS="$CLEANCPPFLAGS" - LIBS="$CLEANLIBS" - ]) - ]) - - - if test X"$HAVECRYPTO" = X"yes"; then - dnl This is only reasonable to do if crypto actually is there: check for - dnl SSL libs NOTE: it is important to do this AFTER the crypto lib - - AC_CHECK_LIB(ssl, SSL_connect) - - if test "$ac_cv_lib_ssl_SSL_connect" != yes; then - dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff - AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use); - OLIBS=$LIBS - LIBS="$LIBS -lRSAglue -lrsaref" - AC_CHECK_LIB(ssl, SSL_connect) - if test "$ac_cv_lib_ssl_SSL_connect" != yes; then - dnl still no SSL_connect - AC_MSG_RESULT(no) - LIBS=$OLIBS - else - AC_MSG_RESULT(yes) - fi - - else - - dnl Have the libraries--check for SSLeay/OpenSSL headers - AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \ - openssl/pem.h openssl/ssl.h openssl/err.h, - curl_ssl_msg="enabled (OpenSSL)" - OPENSSL_ENABLED=1 - AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use])) - - if test $ac_cv_header_openssl_x509_h = no; then - dnl we don't use the "action" part of the AC_CHECK_HEADERS macro - dnl since 'err.h' might in fact find a krb4 header with the same - dnl name - AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h) - - if test $ac_cv_header_x509_h = yes && - test $ac_cv_header_crypto_h = yes && - test $ac_cv_header_ssl_h = yes; then - dnl three matches - curl_ssl_msg="enabled (OpenSSL)" - OPENSSL_ENABLED=1 - fi - fi - fi - - if test X"$OPENSSL_ENABLED" = X"1"; then - AC_DEFINE(USE_SSLEAY, 1, [if SSL is enabled]) - - dnl is there a pkcs12.h header present? - AC_CHECK_HEADERS(openssl/pkcs12.h) - else - LIBS="$CLEANLIBS" - fi - dnl USE_SSLEAY is the historical name for what configure calls - dnl OPENSSL_ENABLED; the names should really be unified - USE_SSLEAY="$OPENSSL_ENABLED" - AC_SUBST(USE_SSLEAY) - - if test X"$OPT_SSL" != Xoff && - test "$OPENSSL_ENABLED" != "1"; then - AC_MSG_ERROR([OpenSSL libs and/or directories were not found where specified!]) - fi - fi - - if test X"$OPENSSL_ENABLED" = X"1"; then - dnl If the ENGINE library seems to be around, check for the OpenSSL engine - dnl stuff, it is kind of "separated" from the main SSL check - AC_CHECK_FUNC(ENGINE_init, - [ - AC_CHECK_HEADERS(openssl/engine.h) - AC_CHECK_FUNCS( ENGINE_load_builtin_engines ) - ]) - - dnl these can only exist if openssl exists - dnl yassl doesn't have SSL_get_shutdown - - AC_CHECK_FUNCS( RAND_status \ - RAND_screen \ - RAND_egd \ - ENGINE_cleanup \ - CRYPTO_cleanup_all_ex_data \ - SSL_get_shutdown \ - SSLv2_client_method ) - - dnl Make an attempt to detect if this is actually yassl's headers and - dnl OpenSSL emulation layer. We still leave everything else believing - dnl and acting like OpenSSL. - - AC_MSG_CHECKING([for yaSSL using OpenSSL compatibility mode]) - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#include - ]],[[ -#if defined(YASSL_VERSION) && defined(OPENSSL_VERSION_NUMBER) - int dummy = SSL_ERROR_NONE; -#else - Not the yaSSL OpenSSL compatibility header. -#endif - ]]) - ],[ - AC_MSG_RESULT([yes]) - AC_DEFINE_UNQUOTED(USE_YASSLEMUL, 1, - [Define to 1 if using yaSSL in OpenSSL compatibility mode.]) - curl_ssl_msg="enabled (OpenSSL emulation by yaSSL)" - ],[ - AC_MSG_RESULT([no]) - ]) - fi - - if test "$OPENSSL_ENABLED" = "1"; then - if test -n "$LIB_OPENSSL"; then - dnl when the ssl shared libs were found in a path that the run-time - dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH - dnl to prevent further configure tests to fail due to this - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH]) - fi - fi - CURL_CHECK_OPENSSL_API - fi - -fi - -dnl ********************************************************************** -dnl Check for the presence of ZLIB libraries and headers -dnl ********************************************************************** - -dnl Check for & handle argument to --with-zlib. - -_cppflags=$CPPFLAGS -_ldflags=$LDFLAGS -AC_ARG_WITH(zlib, -AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH]) -AC_HELP_STRING([--without-zlib],[disable use of zlib]), - [OPT_ZLIB="$withval"]) - -if test "$OPT_ZLIB" = "no" ; then - AC_MSG_WARN([zlib disabled]) -else - if test "$OPT_ZLIB" = "yes" ; then - OPT_ZLIB="" - fi - - if test -z "$OPT_ZLIB" ; then - dnl check for the lib first without setting any new path, since many - dnl people have it in the default path - - AC_CHECK_LIB(z, inflateEnd, - dnl libz found, set the variable - [HAVE_LIBZ="1"], - dnl if no lib found, try /usr/local - [OPT_ZLIB="/usr/local"]) - - fi - - dnl Add a nonempty path to the compiler flags - if test -n "$OPT_ZLIB"; then - CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include" - LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff" - fi - - AC_CHECK_HEADER(zlib.h, - [ - dnl zlib.h was found - HAVE_ZLIB_H="1" - dnl if the lib wasn't found already, try again with the new paths - if test "$HAVE_LIBZ" != "1"; then - AC_CHECK_LIB(z, gzread, - [ - dnl the lib was found! - HAVE_LIBZ="1" - ], - [ CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags]) - fi - ], - [ - dnl zlib.h was not found, restore the flags - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags] - ) - - if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1" - then - AC_MSG_WARN([configure found only the libz lib, not the header file!]) - HAVE_LIBZ="" - elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1" - then - AC_MSG_WARN([configure found only the libz header file, not the lib!]) - elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1" - then - dnl both header and lib were found! - AC_SUBST(HAVE_LIBZ) - AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file]) - AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available]) - - CURL_LIBS="$CURL_LIBS -lz" - LIBS="$LIBS -lz" - - dnl replace 'HAVE_LIBZ' in the automake makefile.ams - AMFIXLIB="1" - AC_MSG_NOTICE([found both libz and libz.h header]) - curl_zlib_msg="enabled" - fi -fi - -dnl set variable for use in automakefile(s) -AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1) - -dnl ********************************************************************** -dnl Check for the random seed preferences -dnl ********************************************************************** - -if test X"$OPENSSL_ENABLED" = X"1"; then - AC_ARG_WITH(egd-socket, - AC_HELP_STRING([--with-egd-socket=FILE], - [Entropy Gathering Daemon socket pathname]), - [ EGD_SOCKET="$withval" ] - ) - if test -n "$EGD_SOCKET" ; then - AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET", - [your Entropy Gathering Daemon socket pathname] ) - fi - - dnl Check for user-specified random device - AC_ARG_WITH(random, - AC_HELP_STRING([--with-random=FILE], - [read randomness from FILE (default=/dev/urandom)]), - [ RANDOM_FILE="$withval" ], - [ - if test x$cross_compiling != xyes; then - dnl Check for random device - AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] ) - else - AC_MSG_WARN([skipped the /dev/urandom detection when cross-compiling]) - fi - ] - ) - if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then - AC_SUBST(RANDOM_FILE) - AC_DEFINE_UNQUOTED(RANDOM_FILE, "$RANDOM_FILE", - [a suitable file to read random data from]) - fi -fi - -dnl --- -dnl We require OpenSSL with SRP support. -dnl --- -if test "$OPENSSL_ENABLED" = "1"; then - AC_CHECK_LIB(crypto, SRP_Calc_client_key, - [ - AC_DEFINE(HAVE_SSLEAY_SRP, 1, [if you have the function SRP_Calc_client_key]) - AC_SUBST(HAVE_SSLEAY_SRP, [1]) - ]) -fi - -dnl ---------------------------------------------------- -dnl check for GnuTLS -dnl ---------------------------------------------------- - -dnl Default to compiler & linker defaults for GnuTLS files & libraries. -OPT_GNUTLS=no - -AC_ARG_WITH(gnutls,dnl -AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root]) -AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]), - OPT_GNUTLS=$withval) - -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - - if test X"$OPT_GNUTLS" != Xno; then - - addld="" - if test "x$OPT_GNUTLS" = "xyes"; then - dnl this is with no partiular path given - CURL_CHECK_PKGCONFIG(gnutls) - - if test "$PKGCONFIG" != "no" ; then - addlib=`$PKGCONFIG --libs-only-l gnutls` - addld=`$PKGCONFIG --libs-only-L gnutls` - addcflags=`$PKGCONFIG --cflags-only-I gnutls` - version=`$PKGCONFIG --modversion gnutls` - gtlslib=`echo $addld | $SED -e 's/-L//'` - else - dnl without pkg-config, we try libgnutls-config as that was how it - dnl used to be done - check=`libgnutls-config --version 2>/dev/null` - if test -n "$check"; then - addlib=`libgnutls-config --libs` - addcflags=`libgnutls-config --cflags` - version=`libgnutls-config --version` - gtlslib=`libgnutls-config --prefix`/lib$libsuff - fi - fi - else - dnl this is with a given path, first check if there's a libgnutls-config - dnl there and if not, make an educated guess - cfg=$OPT_GNUTLS/bin/libgnutls-config - check=`$cfg --version 2>/dev/null` - if test -n "$check"; then - addlib=`$cfg --libs` - addcflags=`$cfg --cflags` - version=`$cfg --version` - gtlslib=`$cfg --prefix`/lib$libsuff - else - dnl without pkg-config and libgnutls-config, we guess a lot! - addlib=-lgnutls - addld=-L$OPT_GNUTLS/lib$libsuff - addcflags=-I$OPT_GNUTLS/include - version="" # we just don't know - gtlslib=$OPT_GNUTLS/lib$libsuff - fi - fi - - if test -z "$version"; then - dnl lots of efforts, still no go - version="unknown" - fi - - if test -n "$addlib"; then - - CLEANLIBS="$LIBS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEADLDFLAGS="$LDFLAGS" - - LIBS="$LIBS $addlib" - LDFLAGS="$LDFLAGS $addld" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - AC_CHECK_LIB(gnutls, gnutls_check_version, - [ - AC_DEFINE(USE_GNUTLS, 1, [if GnuTLS is enabled]) - AC_SUBST(USE_GNUTLS, [1]) - GNUTLS_ENABLED=1 - USE_GNUTLS="yes" - curl_ssl_msg="enabled (GnuTLS)" - ], - [ - LIBS="$CLEANLIBS" - CPPFLAGS="$CLEANCPPFLAGS" - ]) - - if test "x$USE_GNUTLS" = "xyes"; then - AC_MSG_NOTICE([detected GnuTLS version $version]) - - if test -n "$gtlslib"; then - dnl when shared libs were found in a path that the run-time - dnl linker doesn't search through, we need to add it to - dnl LD_LIBRARY_PATH to prevent further configure tests to fail - dnl due to this - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH]) - fi - fi - fi - - fi - - fi dnl GNUTLS not disabled - -fi - -dnl --- -dnl Check which crypto backend GnuTLS uses -dnl --- - -if test "$GNUTLS_ENABLED" = "1"; then - USE_GNUTLS_NETTLE= - # First check if we can detect either crypto library via transitive linking - AC_CHECK_LIB(gnutls, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ]) - if test "$USE_GNUTLS_NETTLE" = ""; then - AC_CHECK_LIB(gnutls, gcry_control, [ USE_GNUTLS_NETTLE=0 ]) - fi - # If not, try linking directly to both of them to see if they are available - if test "$USE_GNUTLS_NETTLE" = ""; then - AC_CHECK_LIB(nettle, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ]) - fi - if test "$USE_GNUTLS_NETTLE" = ""; then - AC_CHECK_LIB(gcrypt, gcry_control, [ USE_GNUTLS_NETTLE=0 ]) - fi - if test "$USE_GNUTLS_NETTLE" = ""; then - AC_MSG_ERROR([GnuTLS found, but neither gcrypt nor nettle found]) - fi - if test "$USE_GNUTLS_NETTLE" = "1"; then - AC_DEFINE(USE_GNUTLS_NETTLE, 1, [if GnuTLS uses nettle as crypto backend]) - AC_SUBST(USE_GNUTLS_NETTLE, [1]) - LIBS="$LIBS -lnettle" - else - LIBS="$LIBS -lgcrypt" - fi -fi - -dnl --- -dnl We require GnuTLS with SRP support. -dnl --- -if test "$GNUTLS_ENABLED" = "1"; then - AC_CHECK_LIB(gnutls, gnutls_srp_verifier, - [ - AC_DEFINE(HAVE_GNUTLS_SRP, 1, [if you have the function gnutls_srp_verifier]) - AC_SUBST(HAVE_GNUTLS_SRP, [1]) - ]) -fi - -dnl ---------------------------------------------------- -dnl check for PolarSSL -dnl ---------------------------------------------------- - -dnl Default to compiler & linker defaults for PolarSSL files & libraries. -OPT_POLARSSL=no - -_cppflags=$CPPFLAGS -_ldflags=$LDFLAGS -AC_ARG_WITH(polarssl,dnl -AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root]) -AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]), - OPT_POLARSSL=$withval) - -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - - if test X"$OPT_POLARSSL" != Xno; then - - if test "$OPT_POLARSSL" = "yes"; then - OPT_POLARSSL="" - fi - - if test -z "$OPT_POLARSSL" ; then - dnl check for lib first without setting any new path - - AC_CHECK_LIB(polarssl, havege_init, - dnl libpolarssl found, set the variable - [ - AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled]) - AC_SUBST(USE_POLARSSL, [1]) - POLARSSL_ENABLED=1 - USE_POLARSSL="yes" - curl_ssl_msg="enabled (PolarSSL)" - ]) - fi - - if test "x$USE_POLARSSL" != "xyes"; then - dnl add the path and test again - addld=-L$OPT_POLARSSL/lib$libsuff - addcflags=-I$OPT_POLARSSL/include - polarssllib=$OPT_POLARSSL/lib$libsuff - - LDFLAGS="$LDFLAGS $addld" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - AC_CHECK_LIB(polarssl, ssl_init, - [ - AC_DEFINE(USE_POLARSSL, 1, [if PolarSSL is enabled]) - AC_SUBST(USE_POLARSSL, [1]) - POLARSSL_ENABLED=1 - USE_POLARSSL="yes" - curl_ssl_msg="enabled (PolarSSL)" - ], - [ - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags - ]) - fi - - if test "x$USE_POLARSSL" = "xyes"; then - AC_MSG_NOTICE([detected PolarSSL]) - - CURL_LIBS="$CURL_LIBS -lpolarssl" - LIBS="$LIBS -lpolarssl" - - if test -n "$polarssllib"; then - dnl when shared libs were found in a path that the run-time - dnl linker doesn't search through, we need to add it to - dnl LD_LIBRARY_PATH to prevent further configure tests to fail - dnl due to this - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH]) - fi - fi - fi - - fi dnl PolarSSL not disabled - -fi - -dnl ---------------------------------------------------- -dnl check for CyaSSL -dnl ---------------------------------------------------- - -dnl Default to compiler & linker defaults for CyaSSL files & libraries. -OPT_CYASSL=no - -_cppflags=$CPPFLAGS -_ldflags=$LDFLAGS -AC_ARG_WITH(cyassl,dnl -AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)]) -AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]), - OPT_CYASSL=$withval) - -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - - if test X"$OPT_CYASSL" != Xno; then - - if test "$OPT_CYASSL" = "yes"; then - OPT_CYASSL="" - fi - - if test -z "$OPT_CYASSL" ; then - dnl check for lib in system default first - - AC_CHECK_LIB(cyassl, CyaSSL_Init, - dnl libcyassl found, set the variable - [ - AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled]) - AC_SUBST(USE_CYASSL, [1]) - CYASSL_ENABLED=1 - USE_CYASSL="yes" - curl_ssl_msg="enabled (CyaSSL)" - ]) - fi - - if test "x$USE_CYASSL" != "xyes"; then - dnl add the path and test again - addld=-L$OPT_CYASSL/lib$libsuff - addcflags=-I$OPT_CYASSL/include - cyassllib=$OPT_CYASSL/lib$libsuff - - LDFLAGS="$LDFLAGS $addld" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - AC_CHECK_LIB(cyassl, CyaSSL_Init, - [ - AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled]) - AC_SUBST(USE_CYASSL, [1]) - CYASSL_ENABLED=1 - USE_CYASSL="yes" - curl_ssl_msg="enabled (CyaSSL)" - ], - [ - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags - ]) - fi - - if test "x$USE_CYASSL" = "xyes"; then - AC_MSG_NOTICE([detected CyaSSL]) - - CURL_LIBS="$CURL_LIBS -lcyassl -lm" - LIBS="$LIBS -lcyassl -lm" - - if test -n "$cyassllib"; then - dnl when shared libs were found in a path that the run-time - dnl linker doesn't search through, we need to add it to - dnl LD_LIBRARY_PATH to prevent further configure tests to fail - dnl due to this - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $cyassllib to LD_LIBRARY_PATH]) - fi - fi - - fi - - fi dnl CyaSSL not disabled - -fi - -dnl ---------------------------------------------------- -dnl NSS. Only check if GnuTLS and OpenSSL are not enabled -dnl ---------------------------------------------------- - -dnl Default to compiler & linker defaults for NSS files & libraries. -OPT_NSS=no - -AC_ARG_WITH(nss,dnl -AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root]) -AC_HELP_STRING([--without-nss], [disable NSS detection]), - OPT_NSS=$withval) - -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - - if test X"$OPT_NSS" != Xno; then - if test "x$OPT_NSS" = "xyes"; then - - CURL_CHECK_PKGCONFIG(nss) - - if test "$PKGCONFIG" != "no" ; then - addlib=`$PKGCONFIG --libs nss` - addcflags=`$PKGCONFIG --cflags nss` - version=`$PKGCONFIG --modversion nss` - nssprefix=`$PKGCONFIG --variable=prefix nss` - else - dnl Without pkg-config, we check for nss-config - - check=`nss-config --version 2>/dev/null` - if test -n "$check"; then - addlib=`nss-config --libs` - addcflags=`nss-config --cflags` - version=`nss-config --version` - nssprefix=`nss-config --prefix` - else - addlib="-lnss3" - addcflags="" - version="unknown" - fi - fi - else - # Without pkg-config, we'll kludge in some defaults - addlib="-L$OPT_NSS/lib -lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl" - addcflags="-I$OPT_NSS/include" - version="unknown" - nssprefix=$OPT_NSS - fi - - if test -n "$addlib"; then - - CLEANLIBS="$LIBS" - CLEANCPPFLAGS="$CPPFLAGS" - - LIBS="$LIBS $addlib" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - dnl The function PK11_CreateGenericObject is needed to load libnsspem.so - AC_CHECK_LIB(nss3, PK11_CreateGenericObject, - [ - AC_DEFINE(USE_NSS, 1, [if NSS is enabled]) - AC_SUBST(USE_NSS, [1]) - USE_NSS="yes" - NSS_ENABLED=1 - curl_ssl_msg="enabled (NSS)" - ], - [ - LIBS="$CLEANLIBS" - CPPFLAGS="$CLEANCPPFLAGS" - ]) - - if test "x$USE_NSS" = "xyes"; then - AC_MSG_NOTICE([detected NSS version $version]) - - dnl NSS_InitContext() was introduced in NSS 3.12.5 and helps to prevent - dnl collisions on NSS initialization/shutdown with other libraries - AC_CHECK_FUNC(NSS_InitContext, - [ - AC_DEFINE(HAVE_NSS_INITCONTEXT, 1, [if you have the NSS_InitContext function]) - AC_SUBST(HAVE_NSS_INITCONTEXT, [1]) - ]) - - dnl when shared libs were found in a path that the run-time - dnl linker doesn't search through, we need to add it to - dnl LD_LIBRARY_PATH to prevent further configure tests to fail - dnl due to this - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH]) - fi - fi - - fi - - fi dnl NSS not disabled - -fi dnl curl_ssl_msg = init_ssl_msg - -OPT_AXTLS=off - -AC_ARG_WITH(axtls,dnl -AC_HELP_STRING([--with-axtls=PATH],[Where to look for axTLS, PATH points to the axTLS installation prefix (default: /usr/local). Ignored if another SSL engine is selected.]) -AC_HELP_STRING([--without-axtls], [disable axTLS]), - OPT_AXTLS=$withval) - -if test "$curl_ssl_msg" = "$init_ssl_msg"; then - if test X"$OPT_AXTLS" != Xno; then - dnl backup the pre-axtls variables - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_AXTLS" in - yes) - dnl --with-axtls (without path) used - PREFIX_AXTLS=/usr/local - LIB_AXTLS="$PREFIX_AXTLS/lib" - LDFLAGS="$LDFLAGS -L$LIB_AXTLS" - CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include" - ;; - off) - dnl no --with-axtls option given, just check default places - PREFIX_AXTLS= - ;; - *) - dnl check the given --with-axtls spot - PREFIX_AXTLS=$OPT_AXTLS - LIB_AXTLS="$PREFIX_AXTLS/lib" - LDFLAGS="$LDFLAGS -L$LIB_AXTLS" - CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include" - ;; - esac - - AC_CHECK_LIB(axtls, ssl_version,[ - LIBS="-laxtls $LIBS" - AC_DEFINE(USE_AXTLS, 1, [if axTLS is enabled]) - AC_SUBST(USE_AXTLS, [1]) - AXTLS_ENABLED=1 - USE_AXTLS="yes" - curl_ssl_msg="enabled (axTLS)" - - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $LIB_AXTLS to LD_LIBRARY_PATH]) - ],[ - LDFLAGS="$CLEANLDFLAGS" - CPPFLAGS="$CLEANCPPFLAGS" - LIBS="$CLEANLIBS" - ]) - fi -fi - -if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then - AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.]) - AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls or --with-winssl to address this.]) -else - # SSL is enabled, genericly - AC_SUBST(SSL_ENABLED) - SSL_ENABLED="1" -fi - -dnl ********************************************************************** -dnl Check for the CA bundle -dnl ********************************************************************** - -CURL_CHECK_CA_BUNDLE - -dnl ********************************************************************** -dnl Check for libmetalink -dnl ********************************************************************** - -OPT_LIBMETALINK=no - -AC_ARG_WITH(libmetalink,dnl -AC_HELP_STRING([--with-libmetalink=PATH],[where to look for libmetalink, PATH points to the installation root]) -AC_HELP_STRING([--without-libmetalink], [disable libmetalink detection]), - OPT_LIBMETALINK=$withval) - -if test X"$OPT_LIBMETALINK" != Xno; then - - addlib="" - addld="" - addcflags="" - version="" - libmetalinklib="" - PKGTEST="no" - if test "x$OPT_LIBMETALINK" = "xyes"; then - dnl this is with no partiular path given - PKGTEST="yes" - CURL_CHECK_PKGCONFIG(libmetalink) - else - dnl When particular path is given, set PKG_CONFIG_LIBDIR using the path. - LIBMETALINK_PCDIR="$OPT_LIBMETALINK/lib/pkgconfig" - AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$LIBMETALINK_PCDIR"]) - if test -f "$LIBMETALINK_PCDIR/libmetalink.pc"; then - PKGTEST="yes" - fi - if test "$PKGTEST" = "yes"; then - CURL_CHECK_PKGCONFIG(libmetalink, [$LIBMETALINK_PCDIR]) - fi - fi - if test "$PKGTEST" = "yes" && test "$PKGCONFIG" != "no"; then - addlib=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl - $PKGCONFIG --libs-only-l libmetalink` - addld=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl - $PKGCONFIG --libs-only-L libmetalink` - addcflags=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl - $PKGCONFIG --cflags-only-I libmetalink` - version=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl - $PKGCONFIG --modversion libmetalink` - libmetalinklib=`echo $addld | $SED -e 's/-L//'` - fi - if test -n "$addlib"; then - - clean_CPPFLAGS="$CPPFLAGS" - clean_LDFLAGS="$LDFLAGS" - clean_LIBS="$LIBS" - CPPFLAGS="$addcflags $clean_CPPFLAGS" - LDFLAGS="$addld $clean_LDFLAGS" - LIBS="$addlib $clean_LIBS" - AC_MSG_CHECKING([if libmetalink is recent enough]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -# include - ]],[[ - if(0 != metalink_strerror(0)) /* added in 0.1.0 */ - return 1; - ]]) - ],[ - AC_MSG_RESULT([yes ($version)]) - want_metalink="yes" - ],[ - AC_MSG_RESULT([no ($version)]) - AC_MSG_NOTICE([libmetalink library defective or too old]) - want_metalink="no" - ]) - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LIBS="$clean_LIBS" - if test "$want_metalink" = "yes"; then - dnl finally libmetalink will be used - AC_DEFINE(USE_METALINK, 1, [Define to enable metalink support]) - LIBMETALINK_LIBS=$addlib - LIBMETALINK_LDFLAGS=$addld - LIBMETALINK_CFLAGS=$addcflags - AC_SUBST([LIBMETALINK_LIBS]) - AC_SUBST([LIBMETALINK_LDFLAGS]) - AC_SUBST([LIBMETALINK_CFLAGS]) - curl_mtlnk_msg="enabled" - fi - - fi -fi - -dnl ********************************************************************** -dnl Check for the presence of LIBSSH2 libraries and headers -dnl ********************************************************************** - -dnl Default to compiler & linker defaults for LIBSSH2 files & libraries. -OPT_LIBSSH2=off -AC_ARG_WITH(libssh2,dnl -AC_HELP_STRING([--with-libssh2=PATH],[Where to look for libssh2, PATH points to the LIBSSH2 installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) -AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]), - OPT_LIBSSH2=$withval) - -if test X"$OPT_LIBSSH2" != Xno; then - dnl backup the pre-libssh2 variables - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_LIBSSH2" in - yes) - dnl --with-libssh2 (without path) used - CURL_CHECK_PKGCONFIG(libssh2) - - if test "$PKGCONFIG" != "no" ; then - LIB_SSH2=`$PKGCONFIG --libs-only-l libssh2` - LD_SSH2=`$PKGCONFIG --libs-only-L libssh2` - CPP_SSH2=`$PKGCONFIG --cflags-only-I libssh2` - version=`$PKGCONFIG --modversion libssh2` - DIR_SSH2=`echo $LD_SSH2 | $SED -e 's/-L//'` - fi - - ;; - off) - dnl no --with-libssh2 option given, just check default places - ;; - *) - dnl use the given --with-libssh2 spot - PREFIX_SSH2=$OPT_LIBSSH2 - ;; - esac - - dnl if given with a prefix, we set -L and -I based on that - if test -n "$PREFIX_SSH2"; then - LIB_SSH2="-lssh2" - LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff - CPP_SSH2=-I${PREFIX_SSH2}/include - DIR_SSH2=${PREFIX_SSH2}/lib$libsuff - fi - - LDFLAGS="$LDFLAGS $LD_SSH2" - CPPFLAGS="$CPPFLAGS $CPP_SSH2" - LIBS="$LIBS $LIB_SSH2" - - AC_CHECK_LIB(ssh2, libssh2_channel_open_ex) - - AC_CHECK_HEADERS(libssh2.h, - curl_ssh_msg="enabled (libSSH2)" - LIBSSH2_ENABLED=1 - AC_DEFINE(USE_LIBSSH2, 1, [if libSSH2 is in use]) - AC_SUBST(USE_LIBSSH2, [1]) - ) - - if test X"$OPT_LIBSSH2" != Xoff && - test "$LIBSSH2_ENABLED" != "1"; then - AC_MSG_ERROR([libSSH2 libs and/or directories were not found where specified!]) - fi - - if test "$LIBSSH2_ENABLED" = "1"; then - if test -n "$DIR_SSH2"; then - dnl when the libssh2 shared libs were found in a path that the run-time - dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH - dnl to prevent further configure tests to fail due to this - - dnl libssh2_version is a post 1.0 addition - dnl libssh2_init and libssh2_exit were added in 1.2.5 - dnl libssh2_scp_send64 was added in 1.2.6 - dnl libssh2_session_handshake was added in 1.2.8 - AC_CHECK_FUNCS( libssh2_version libssh2_init libssh2_exit \ - libssh2_scp_send64 libssh2_session_handshake) - if test "x$cross_compiling" != "xyes"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH]) - fi - fi - else - dnl no libssh2, revert back to clean variables - LDFLAGS=$CLEANLDFLAGS - CPPFLAGS=$CLEANCPPFLAGS - LIBS=$CLEANLIBS - fi -fi - -dnl ********************************************************************** -dnl Check for the presence of LIBRTMP libraries and headers -dnl ********************************************************************** - -dnl Default to compiler & linker defaults for LIBRTMP files & libraries. -OPT_LIBRTMP=off -AC_ARG_WITH(librtmp,dnl -AC_HELP_STRING([--with-librtmp=PATH],[Where to look for librtmp, PATH points to the LIBRTMP installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) -AC_HELP_STRING([--without-librtmp], [disable LIBRTMP]), - OPT_LIBRTMP=$withval) - -if test X"$OPT_LIBRTMP" != Xno; then - dnl backup the pre-librtmp variables - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_LIBRTMP" in - yes) - dnl --with-librtmp (without path) used - CURL_CHECK_PKGCONFIG(librtmp) - - if test "$PKGCONFIG" != "no" ; then - LIB_RTMP=`$PKGCONFIG --libs-only-l librtmp` - LD_RTMP=`$PKGCONFIG --libs-only-L librtmp` - CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp` - version=`$PKGCONFIG --modversion librtmp` - DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'` - else - dnl To avoid link errors, we do not allow --librtmp without - dnl a pkgconfig file - AC_MSG_ERROR([--librtmp was specified but could not find librtmp pkgconfig file.]) - fi - - ;; - off) - dnl no --with-librtmp option given, just check default places - LIB_RTMP="-lrtmp" - ;; - *) - dnl use the given --with-librtmp spot - PREFIX_RTMP=$OPT_LIBRTMP - ;; - esac - - dnl if given with a prefix, we set -L and -I based on that - if test -n "$PREFIX_RTMP"; then - LD_RTMP=-L${PREFIX_RTMP}/lib$libsuff - CPP_RTMP=-I${PREFIX_RTMP}/include - DIR_RTMP=${PREFIX_RTMP}/lib$libsuff - fi - - LDFLAGS="$LDFLAGS $LD_RTMP" - CPPFLAGS="$CPPFLAGS $CPP_RTMP" - LIBS="$LIBS $LIB_RTMP" - - AC_CHECK_LIB(rtmp, RTMP_Init, - [ - AC_CHECK_HEADERS(librtmp/rtmp.h, - curl_rtmp_msg="enabled (librtmp)" - LIBRTMP_ENABLED=1 - AC_DEFINE(USE_LIBRTMP, 1, [if librtmp is in use]) - AC_SUBST(USE_LIBRTMP, [1]) - ) - ], - dnl not found, revert back to clean variables - LDFLAGS=$CLEANLDFLAGS - CPPFLAGS=$CLEANCPPFLAGS - LIBS=$CLEANLIBS - ) - - if test X"$OPT_LIBRTMP" != Xoff && - test "$LIBRTMP_ENABLED" != "1"; then - AC_MSG_ERROR([librtmp libs and/or directories were not found where specified!]) - fi - -fi - -dnl ********************************************************************** -dnl Check for linker switch for versioned symbols -dnl ********************************************************************** - -versioned_symbols_flavour= -AC_MSG_CHECKING([whether versioned symbols are wanted]) -AC_ARG_ENABLE(versioned-symbols, -AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library]) -AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]), -[ case "$enableval" in - yes) AC_MSG_RESULT(yes) - AC_MSG_CHECKING([if libraries can be versioned]) - GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script` - if test -z "$GLD"; then - AC_MSG_RESULT(no) - AC_MSG_WARN([You need an ld version supporting the --version-script option]) - else - AC_MSG_RESULT(yes) - if test "x$OPENSSL_ENABLED" = "x1"; then - versioned_symbols_flavour="OPENSSL_" - elif test "x$GNUTLS_ENABLED" == "x1"; then - versioned_symbols_flavour="GNUTLS_" - elif test "x$NSS_ENABLED" == "x1"; then - versioned_symbols_flavour="NSS_" - elif test "x$POLARSSL_ENABLED" == "x1"; then - versioned_symbols_flavour="POLARSSL_" - elif test "x$CYASSL_ENABLED" == "x1"; then - versioned_symbols_flavour="CYASSL_" - elif test "x$AXTLS_ENABLED" == "x1"; then - versioned_symbols_flavour="AXTLS_" - elif test "x$WINSSL_ENABLED" == "x1"; then - versioned_symbols_flavour="WINSSL_" - elif test "x$DARWINSSL_ENABLED" == "x1"; then - versioned_symbols_flavour="DARWINSSL_" - else - versioned_symbols_flavour="" - fi - versioned_symbols="yes" - fi - ;; - - *) AC_MSG_RESULT(no) - ;; - esac -], [ -AC_MSG_RESULT(no) -] -) - -AC_SUBST(VERSIONED_FLAVOUR, ["$versioned_symbols_flavour"]) -AM_CONDITIONAL(VERSIONED_SYMBOLS, test "x$versioned_symbols" = "xyes") - -dnl ------------------------------------------------- -dnl check winidn option before other IDN libraries -dnl ------------------------------------------------- - -AC_MSG_CHECKING([whether to enable Windows native IDN (Windows native builds only)]) -OPT_WINIDN="default" -AC_ARG_WITH(winidn, -AC_HELP_STRING([--with-winidn=PATH],[enable Windows native IDN]) -AC_HELP_STRING([--without-winidn], [disable Windows native IDN]), - OPT_WINIDN=$withval) -case "$OPT_WINIDN" in - no|default) - dnl --without-winidn option used or configure option not specified - want_winidn="no" - AC_MSG_RESULT([no]) - ;; - yes) - dnl --with-winidn option used without path - want_winidn="yes" - want_winidn_path="default" - AC_MSG_RESULT([yes]) - ;; - *) - dnl --with-winidn option used with path - want_winidn="yes" - want_winidn_path="$withval" - AC_MSG_RESULT([yes ($withval)]) - ;; -esac - -if test "$want_winidn" = "yes"; then - dnl winidn library support has been requested - clean_CPPFLAGS="$CPPFLAGS" - clean_LDFLAGS="$LDFLAGS" - clean_LIBS="$LIBS" - WINIDN_LIBS="-lnormaliz" - # - if test "$want_winidn_path" != "default"; then - dnl path has been specified - dnl pkg-config not available or provides no info - WINIDN_LDFLAGS="-L$want_winidn_path/lib$libsuff" - WINIDN_CPPFLAGS="-I$want_winidn_path/include" - WINIDN_DIR="$want_winidn_path/lib$libsuff" - fi - # - CPPFLAGS="$WINIDN_CPPFLAGS $CPPFLAGS" - LDFLAGS="$WINIDN_LDFLAGS $LDFLAGS" - LIBS="$WINIDN_LIBS $LIBS" - # - AC_MSG_CHECKING([if IdnToUnicode can be linked]) - AC_LINK_IFELSE([ - AC_LANG_FUNC_LINK_TRY([IdnToUnicode]) - ],[ - AC_MSG_RESULT([yes]) - tst_links_winidn="yes" - ],[ - AC_MSG_RESULT([no]) - tst_links_winidn="no" - ]) - # - if test "$tst_links_winidn" = "yes"; then - AC_DEFINE(USE_WIN32_IDN, 1, [Define to 1 if you have the `normaliz' (WinIDN) library (-lnormaliz).]) - AC_DEFINE(WANT_IDN_PROTOTYPES, 1, [Define to 1 to provide own prototypes.]) - AC_SUBST([IDN_ENABLED], [1]) - curl_idn_msg="enabled (Windows-native)" - else - AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled]) - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LIBS="$clean_LIBS" - fi -fi - -dnl ********************************************************************** -dnl Check for the presence of IDN libraries and headers -dnl ********************************************************************** - -AC_MSG_CHECKING([whether to build with libidn]) -OPT_IDN="default" -AC_ARG_WITH(libidn, -AC_HELP_STRING([--with-libidn=PATH],[Enable libidn usage]) -AC_HELP_STRING([--without-libidn],[Disable libidn usage]), - [OPT_IDN=$withval]) -case "$OPT_IDN" in - no) - dnl --without-libidn option used - want_idn="no" - AC_MSG_RESULT([no]) - ;; - default) - dnl configure option not specified - want_idn="yes" - want_idn_path="default" - AC_MSG_RESULT([(assumed) yes]) - ;; - yes) - dnl --with-libidn option used without path - want_idn="yes" - want_idn_path="default" - AC_MSG_RESULT([yes]) - ;; - *) - dnl --with-libidn option used with path - want_idn="yes" - want_idn_path="$withval" - AC_MSG_RESULT([yes ($withval)]) - ;; -esac - -if test "$want_idn" = "yes"; then - dnl idn library support has been requested - clean_CPPFLAGS="$CPPFLAGS" - clean_LDFLAGS="$LDFLAGS" - clean_LIBS="$LIBS" - PKGCONFIG="no" - # - if test "$want_idn_path" != "default"; then - dnl path has been specified - IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig" - CURL_CHECK_PKGCONFIG(libidn, [$IDN_PCDIR]) - if test "$PKGCONFIG" != "no"; then - IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl - $PKGCONFIG --libs-only-l libidn 2>/dev/null` - IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl - $PKGCONFIG --libs-only-L libidn 2>/dev/null` - IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl - $PKGCONFIG --cflags-only-I libidn 2>/dev/null` - IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'` - else - dnl pkg-config not available or provides no info - IDN_LIBS="-lidn" - IDN_LDFLAGS="-L$want_idn_path/lib$libsuff" - IDN_CPPFLAGS="-I$want_idn_path/include" - IDN_DIR="$want_idn_path/lib$libsuff" - fi - else - dnl path not specified - CURL_CHECK_PKGCONFIG(libidn) - if test "$PKGCONFIG" != "no"; then - IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null` - IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null` - IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null` - IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'` - else - dnl pkg-config not available or provides no info - IDN_LIBS="-lidn" - fi - fi - # - if test "$PKGCONFIG" != "no"; then - AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"]) - AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"]) - AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"]) - AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"]) - else - AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"]) - AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"]) - AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"]) - AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"]) - fi - # - CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS" - LDFLAGS="$IDN_LDFLAGS $LDFLAGS" - LIBS="$IDN_LIBS $LIBS" - # - AC_MSG_CHECKING([if idna_to_ascii_4i can be linked]) - AC_LINK_IFELSE([ - AC_LANG_FUNC_LINK_TRY([idna_to_ascii_4i]) - ],[ - AC_MSG_RESULT([yes]) - tst_links_libidn="yes" - ],[ - AC_MSG_RESULT([no]) - tst_links_libidn="no" - ]) - if test "$tst_links_libidn" = "no"; then - AC_MSG_CHECKING([if idna_to_ascii_lz can be linked]) - AC_LINK_IFELSE([ - AC_LANG_FUNC_LINK_TRY([idna_to_ascii_lz]) - ],[ - AC_MSG_RESULT([yes]) - tst_links_libidn="yes" - ],[ - AC_MSG_RESULT([no]) - tst_links_libidn="no" - ]) - fi - # - if test "$tst_links_libidn" = "yes"; then - AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you have the `idn' library (-lidn).]) - dnl different versions of libidn have different setups of these: - AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror ) - AC_CHECK_HEADERS( idn-free.h tld.h ) - if test "x$ac_cv_header_tld_h" = "xyes"; then - AC_SUBST([IDN_ENABLED], [1]) - curl_idn_msg="enabled" - if test -n "$IDN_DIR"; then - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH]) - fi - else - AC_MSG_WARN([Libraries for IDN support too old: IDN disabled]) - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LIBS="$clean_LIBS" - fi - else - AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled]) - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LIBS="$clean_LIBS" - fi -fi - - -dnl Let's hope this split URL remains working: -dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \ -dnl genprogc/thread_quick_ref.htm - - -dnl ********************************************************************** -dnl Back to "normal" configuring -dnl ********************************************************************** - -dnl Checks for header files. -AC_HEADER_STDC - -CURL_CHECK_HEADER_MALLOC -CURL_CHECK_HEADER_MEMORY - -dnl Now check for the very most basic headers. Then we can use these -dnl ones as default-headers when checking for the rest! -AC_CHECK_HEADERS( - sys/types.h \ - sys/time.h \ - sys/select.h \ - sys/socket.h \ - sys/ioctl.h \ - sys/uio.h \ - assert.h \ - unistd.h \ - stdlib.h \ - limits.h \ - arpa/inet.h \ - net/if.h \ - netinet/in.h \ - sys/un.h \ - netinet/tcp.h \ - netdb.h \ - sys/sockio.h \ - sys/stat.h \ - sys/param.h \ - termios.h \ - termio.h \ - sgtty.h \ - fcntl.h \ - alloca.h \ - time.h \ - io.h \ - pwd.h \ - utime.h \ - sys/utime.h \ - sys/poll.h \ - poll.h \ - socket.h \ - sys/resource.h \ - libgen.h \ - locale.h \ - errno.h \ - stdbool.h \ - arpa/tftp.h \ - sys/filio.h \ - sys/wait.h \ - setjmp.h, -dnl to do if not found -[], -dnl to do if found -[], -dnl default includes -[ -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_SELECT_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_SYS_UN_H -#include -#endif -] -) - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -CURL_CHECK_VARIADIC_MACROS -AC_TYPE_SIZE_T -AC_HEADER_TIME -CURL_CHECK_STRUCT_TIMEVAL -CURL_VERIFY_RUNTIMELIBS - -AC_CHECK_SIZEOF(size_t) -AC_CHECK_SIZEOF(long) -AC_CHECK_SIZEOF(int) -AC_CHECK_SIZEOF(short) -CURL_CONFIGURE_LONG -AC_CHECK_SIZEOF(time_t) -AC_CHECK_SIZEOF(off_t) - -soname_bump=no -if test x"$ac_cv_native_windows" != "xyes" && - test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then - AC_MSG_WARN([This libcurl built is probably not ABI compatible with previous]) - AC_MSG_WARN([builds! You MUST read lib/README.curl_off_t to figure it out.]) - soname_bump=yes -fi - - -AC_CHECK_TYPE(long long, - [AC_DEFINE(HAVE_LONGLONG, 1, - [Define to 1 if the compiler supports the 'long long' data type.])] - longlong="yes" -) - -if test "xyes" = "x$longlong"; then - AC_MSG_CHECKING([if numberLL works]) - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - ]],[[ - long long val = 1000LL; - ]]) - ],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL]) - ],[ - AC_MSG_RESULT([no]) - ]) -fi - - -# check for ssize_t -AC_CHECK_TYPE(ssize_t, , - AC_DEFINE(ssize_t, int, [the signed version of size_t])) - -# check for bool type -AC_CHECK_TYPE([bool],[ - AC_DEFINE(HAVE_BOOL_T, 1, - [Define to 1 if bool is an available type.]) -], ,[ -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_STDBOOL_H -#include -#endif -]) - -CURL_CONFIGURE_CURL_SOCKLEN_T - -TYPE_IN_ADDR_T - -TYPE_SOCKADDR_STORAGE - -TYPE_SIG_ATOMIC_T - -AC_TYPE_SIGNAL - -CURL_CHECK_FUNC_SELECT - -CURL_CHECK_FUNC_RECV -CURL_CHECK_FUNC_RECVFROM -CURL_CHECK_FUNC_SEND -CURL_CHECK_MSG_NOSIGNAL - -CURL_CHECK_FUNC_ALARM -CURL_CHECK_FUNC_BASENAME -CURL_CHECK_FUNC_CLOSESOCKET -CURL_CHECK_FUNC_CLOSESOCKET_CAMEL -CURL_CHECK_FUNC_CONNECT -CURL_CHECK_FUNC_FCNTL -CURL_CHECK_FUNC_FDOPEN -CURL_CHECK_FUNC_FREEADDRINFO -CURL_CHECK_FUNC_FREEIFADDRS -CURL_CHECK_FUNC_FSETXATTR -CURL_CHECK_FUNC_FTRUNCATE -CURL_CHECK_FUNC_GETADDRINFO -CURL_CHECK_FUNC_GAI_STRERROR -CURL_CHECK_FUNC_GETHOSTBYADDR -CURL_CHECK_FUNC_GETHOSTBYADDR_R -CURL_CHECK_FUNC_GETHOSTBYNAME -CURL_CHECK_FUNC_GETHOSTBYNAME_R -CURL_CHECK_FUNC_GETHOSTNAME -CURL_CHECK_FUNC_GETIFADDRS -CURL_CHECK_FUNC_GETSERVBYPORT_R -CURL_CHECK_FUNC_GMTIME_R -CURL_CHECK_FUNC_INET_NTOA_R -CURL_CHECK_FUNC_INET_NTOP -CURL_CHECK_FUNC_INET_PTON -CURL_CHECK_FUNC_IOCTL -CURL_CHECK_FUNC_IOCTLSOCKET -CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL -CURL_CHECK_FUNC_LOCALTIME_R -CURL_CHECK_FUNC_MEMRCHR -CURL_CHECK_FUNC_POLL -CURL_CHECK_FUNC_SETSOCKOPT -CURL_CHECK_FUNC_SIGACTION -CURL_CHECK_FUNC_SIGINTERRUPT -CURL_CHECK_FUNC_SIGNAL -CURL_CHECK_FUNC_SIGSETJMP -CURL_CHECK_FUNC_SOCKET -CURL_CHECK_FUNC_SOCKETPAIR -CURL_CHECK_FUNC_STRCASECMP -CURL_CHECK_FUNC_STRCASESTR -CURL_CHECK_FUNC_STRCMPI -CURL_CHECK_FUNC_STRDUP -CURL_CHECK_FUNC_STRERROR_R -CURL_CHECK_FUNC_STRICMP -CURL_CHECK_FUNC_STRLCAT -CURL_CHECK_FUNC_STRNCASECMP -CURL_CHECK_FUNC_STRNCMPI -CURL_CHECK_FUNC_STRNICMP -CURL_CHECK_FUNC_STRSTR -CURL_CHECK_FUNC_STRTOK_R -CURL_CHECK_FUNC_STRTOLL -CURL_CHECK_FUNC_WRITEV - -case $host in - *msdosdjgpp) - ac_cv_func_pipe=no - skipcheck_pipe=yes - AC_MSG_NOTICE([skip check for pipe on msdosdjgpp]) - ;; -esac - -AC_CHECK_FUNCS([fork \ - geteuid \ - getpass_r \ - getppid \ - getprotobyname \ - getpwuid \ - getrlimit \ - gettimeofday \ - inet_addr \ - perror \ - pipe \ - setlocale \ - setmode \ - setrlimit \ - uname \ - utime -],[ -],[ - func="$ac_func" - eval skipcheck=\$skipcheck_$func - if test "x$skipcheck" != "xyes"; then - AC_MSG_CHECKING([deeper for $func]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ - ]],[[ - $func (); - ]]) - ],[ - AC_MSG_RESULT([yes]) - eval "ac_cv_func_$func=yes" - AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1], - [Define to 1 if you have the $func function.]) - ],[ - AC_MSG_RESULT([but still no]) - ]) - fi -]) - -dnl Check if the getnameinfo function is available -dnl and get the types of five of its arguments. -CURL_CHECK_FUNC_GETNAMEINFO - -if test "$ipv6" = "yes"; then - if test "$ac_cv_func_getaddrinfo" = "yes"; then - AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support]) - IPV6_ENABLED=1 - AC_SUBST(IPV6_ENABLED) - fi - CURL_CHECK_NI_WITHSCOPEID -fi - -CURL_CHECK_NONBLOCKING_SOCKET - -dnl ************************************************************ -dnl nroff tool stuff -dnl - -AC_PATH_PROG( PERL, perl, , - $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin ) -AC_SUBST(PERL) - -AC_PATH_PROGS( NROFF, gnroff nroff, , - $PATH:/usr/bin/:/usr/local/bin ) -AC_SUBST(NROFF) - -if test -n "$NROFF"; then - dnl only check for nroff options if an nroff command was found - - AC_MSG_CHECKING([how to use *nroff to get plain text from man pages]) - MANOPT="-man" - mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null` - if test -z "$mancheck"; then - MANOPT="-mandoc" - mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null` - if test -z "$mancheck"; then - MANOPT="" - AC_MSG_RESULT([failed]) - AC_MSG_WARN([found no *nroff option to get plaintext from man pages]) - else - AC_MSG_RESULT([$MANOPT]) - fi - else - AC_MSG_RESULT([$MANOPT]) - fi - AC_SUBST(MANOPT) -fi - -if test -z "$MANOPT" -then - dnl if no nroff tool was found, or no option that could convert man pages - dnl was found, then disable the built-in manual stuff - AC_MSG_WARN([disabling built-in manual]) - USE_MANUAL="no"; -fi - -dnl ************************************************************************* -dnl If the manual variable still is set, then we go with providing a built-in -dnl manual - -if test "$USE_MANUAL" = "1"; then - AC_DEFINE(USE_MANUAL, 1, [If you want to build curl with the built-in manual]) - curl_manual_msg="enabled" -fi - -dnl set variable for use in automakefile(s) -AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1) - -CURL_CHECK_LIB_ARES -AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes) - -if test "x$ac_cv_native_windows" != "xyes" && - test "x$enable_shared" = "xyes"; then - build_libhostname=yes -else - build_libhostname=no -fi -AM_CONDITIONAL(BUILD_LIBHOSTNAME, test x$build_libhostname = xyes) - -CURL_CHECK_OPTION_THREADED_RESOLVER - -if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then - AC_MSG_ERROR( -[Options --enable-threaded-resolver and --enable-ares are mutually exclusive]) -fi - -if test "$want_thres" = "yes"; then - AC_CHECK_HEADER(pthread.h, - [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have ]) - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -pthread" - AC_CHECK_LIB(pthread, pthread_create, - [ AC_MSG_NOTICE([using POSIX threaded DNS lookup]) - AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup]) - USE_THREADS_POSIX=1 - curl_res_msg="threaded" - ], - [ CFLAGS="$save_CFLAGS"]) - ]) -fi - -dnl ************************************************************ -dnl disable verbose text strings -dnl -AC_MSG_CHECKING([whether to enable verbose strings]) -AC_ARG_ENABLE(verbose, -AC_HELP_STRING([--enable-verbose],[Enable verbose strings]) -AC_HELP_STRING([--disable-verbose],[Disable verbose strings]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_VERBOSE_STRINGS, 1, [to disable verbose strings]) - curl_verbose_msg="no" - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) - -dnl ************************************************************ -dnl enable SSPI support -dnl -AC_MSG_CHECKING([whether to enable SSPI support (Windows native builds only)]) -AC_ARG_ENABLE(sspi, -AC_HELP_STRING([--enable-sspi],[Enable SSPI]) -AC_HELP_STRING([--disable-sspi],[Disable SSPI]), -[ case "$enableval" in - yes) - if test "$ac_cv_native_windows" = "yes"; then - AC_MSG_RESULT(yes) - AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support]) - AC_SUBST(USE_WINDOWS_SSPI, [1]) - curl_sspi_msg="enabled" - else - AC_MSG_RESULT(no) - AC_MSG_WARN([--enable-sspi Ignored. Only supported on native Windows builds.]) - fi - ;; - *) - if test "x$WINSSL_ENABLED" = "x1"; then - # --with-winssl implies --enable-sspi - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - ;; - esac ], - if test "x$WINSSL_ENABLED" = "x1"; then - # --with-winssl implies --enable-sspi - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi -) - -dnl ************************************************************ -dnl disable cryptographic authentication -dnl -AC_MSG_CHECKING([whether to enable cryptographic authentication methods]) -AC_ARG_ENABLE(crypto-auth, -AC_HELP_STRING([--enable-crypto-auth],[Enable cryptographic authentication]) -AC_HELP_STRING([--disable-crypto-auth],[Disable cryptographic authentication]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_CRYPTO_AUTH, 1, [to disable cryptographic authentication]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) - -CURL_CHECK_OPTION_NTLM_WB - -CURL_CHECK_NTLM_WB - -dnl ************************************************************ -dnl disable TLS-SRP authentication -dnl -AC_MSG_CHECKING([whether to enable TLS-SRP authentication]) -AC_ARG_ENABLE(tls-srp, -AC_HELP_STRING([--enable-tls-srp],[Enable TLS-SRP authentication]) -AC_HELP_STRING([--disable-tls-srp],[Disable TLS-SRP authentication]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_TLS_SRP, 1, [to disable TLS-SRP authentication]) - want_tls_srp=no - ;; - *) AC_MSG_RESULT(yes) - want_tls_srp=yes - ;; - esac ], - AC_MSG_RESULT(yes) - want_tls_srp=yes -) - -if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_SSLEAY_SRP" = "x1") ; then - AC_DEFINE(USE_TLS_SRP, 1, [Use TLS-SRP authentication]) - USE_TLS_SRP=1 - curl_tls_srp_msg="enabled" -fi - -dnl ************************************************************ -dnl disable cookies support -dnl -AC_MSG_CHECKING([whether to enable support for cookies]) -AC_ARG_ENABLE(cookies, -AC_HELP_STRING([--enable-cookies],[Enable cookies support]) -AC_HELP_STRING([--disable-cookies],[Disable cookies support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) - -dnl ************************************************************ -dnl hiding of library internal symbols -dnl -CURL_CONFIGURE_SYMBOL_HIDING - -dnl ************************************************************ -dnl enforce SONAME bump -dnl - -AC_MSG_CHECKING([whether to enforce SONAME bump]) -AC_ARG_ENABLE(soname-bump, -AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump]) -AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]), -[ case "$enableval" in - yes) AC_MSG_RESULT(yes) - soname_bump=yes - ;; - *) - AC_MSG_RESULT(no) - ;; - esac ], - AC_MSG_RESULT($soname_bump) -) -AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes) - - -dnl ************************************************************ -if test ! -z "$winsock_LIB"; then - - dnl If ws2_32 is wanted, make sure it is the _last_ lib in LIBS (makes - dnl things work when built with c-ares). But we can't just move it last - dnl since then other stuff (SSL) won't build. So we simply append it to the - dnl end. - - LIBS="$LIBS $winsock_LIB" - TEST_SERVER_LIBS="$TEST_SERVER_LIBS $winsock_LIB" - -fi - -dnl -dnl All the library dependencies put into $LIB apply to libcurl only. -dnl Those in $CURL_LIBS apply to the curl command-line client only. -dnl Those in $TEST_SERVER_LIBS apply to test servers only. -dnl Those in $ALL_LIBS apply to all targets, including test targets. -dnl -LIBCURL_LIBS=$LIBS - -AC_SUBST(LIBCURL_LIBS) -AC_SUBST(CURL_LIBS) -AC_SUBST(TEST_SERVER_LIBS) -AC_SUBST(CURL_NETWORK_LIBS) -LIBS=$ALL_LIBS dnl LIBS is a magic variable that's used for every link - -AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes) - -dnl yes or no -ENABLE_SHARED="$enable_shared" -AC_SUBST(ENABLE_SHARED) - -dnl -dnl For keeping supported features and protocols also in pkg-config file -dnl since it is more cross-compile friendly than curl-config -dnl - -if test "x$USE_SSLEAY" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES SSL" -elif test -n "$SSL_ENABLED"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES SSL" -fi -if test "@KRB4_ENABLED@" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES KRB4" -fi -if test "x$IPV6_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6" -fi -if test "x$HAVE_LIBZ" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES libz" -fi -if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS" -fi -if test "x$IDN_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES IDN" -fi -if test "x$USE_WINDOWS_SSPI" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI" -fi -if test "x$CURL_DISABLE_HTTP" != "x1"; then - if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \ - -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1" \ - -o "x$DARWINSSL_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM" - if test "x$NTLM_WB_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM_WB" - fi - fi -fi -if test "x$USE_TLS_SRP" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP" -fi - -AC_SUBST(SUPPORT_FEATURES) - -dnl For supported protocols in pkg-config file -if test "x$CURL_DISABLE_HTTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS" - fi -fi -if test "x$CURL_DISABLE_FTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTPS" - fi -fi -if test "x$CURL_DISABLE_FILE" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FILE" -fi -if test "x$CURL_DISABLE_TELNET" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TELNET" -fi -if test "x$CURL_DISABLE_LDAP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAP" - if test "x$CURL_DISABLE_LDAPS" != "x1"; then - if (test "x$USE_OPENLDAP" = "x1" && test "x$SSL_ENABLED" = "x1") || - (test "x$USE_OPENLDAP" != "x1" && test "x$HAVE_LDAP_SSL" = "x1"); then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS" - fi - fi -fi -if test "x$CURL_DISABLE_DICT" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS DICT" -fi -if test "x$CURL_DISABLE_TFTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TFTP" -fi -if test "x$CURL_DISABLE_GOPHER" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS GOPHER" -fi -if test "x$CURL_DISABLE_POP3" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3S" - fi -fi -if test "x$CURL_DISABLE_IMAP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS" - fi -fi -if test "x$CURL_DISABLE_SMTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTPS" - fi -fi -if test "x$USE_LIBSSH2" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" -fi -if test "x$CURL_DISABLE_RTSP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP" -fi -if test "x$USE_LIBRTMP" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTMP" -fi - -dnl replace spaces with newlines -dnl sort the lines -dnl replace the newlines back to spaces -SUPPORT_PROTOCOLS=`echo $SUPPORT_PROTOCOLS | tr ' ' '\012' | sort | tr '\012' ' '` - -AC_SUBST(SUPPORT_PROTOCOLS) - -dnl squeeze whitespace out of some variables - -squeeze CFLAGS -squeeze CPPFLAGS -squeeze DEFS -squeeze LDFLAGS -squeeze LIBS - -squeeze CURL_LIBS -squeeze LIBCURL_LIBS -squeeze TEST_SERVER_LIBS -squeeze CURL_NETWORK_LIBS - -squeeze SUPPORT_FEATURES -squeeze SUPPORT_PROTOCOLS - -if test "x$want_curldebug_assumed" = "xyes" && - test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then - ac_configure_args="$ac_configure_args --enable-curldebug" -fi - -AC_CONFIG_FILES([Makefile \ - docs/Makefile \ - docs/examples/Makefile \ - docs/libcurl/Makefile \ - include/Makefile \ - include/curl/Makefile \ - src/Makefile \ - lib/Makefile \ - lib/libcurl.vers \ - tests/Makefile \ - tests/data/Makefile \ - tests/server/Makefile \ - tests/libtest/Makefile \ - tests/unit/Makefile \ - packages/Makefile \ - packages/Win32/Makefile \ - packages/Win32/cygwin/Makefile \ - packages/Linux/Makefile \ - packages/Linux/RPM/Makefile \ - packages/Linux/RPM/curl.spec \ - packages/Linux/RPM/curl-ssl.spec \ - packages/Solaris/Makefile \ - packages/EPM/curl.list \ - packages/EPM/Makefile \ - packages/vms/Makefile \ - packages/AIX/Makefile \ - packages/AIX/RPM/Makefile \ - packages/AIX/RPM/curl.spec \ - curl-config \ - libcurl.pc -]) -AC_OUTPUT - -CURL_GENERATE_CONFIGUREHELP_PM - -AC_MSG_NOTICE([Configured to build curl/libcurl: - - curl version: ${CURLVERSION} - Host setup: ${host} - Install prefix: ${prefix} - Compiler: ${CC} - SSL support: ${curl_ssl_msg} - SSH support: ${curl_ssh_msg} - zlib support: ${curl_zlib_msg} - krb4 support: ${curl_krb4_msg} - GSSAPI support: ${curl_gss_msg} - SPNEGO support: ${curl_spnego_msg} - TLS-SRP support: ${curl_tls_srp_msg} - resolver: ${curl_res_msg} - ipv6 support: ${curl_ipv6_msg} - IDN support: ${curl_idn_msg} - Build libcurl: Shared=${enable_shared}, Static=${enable_static} - Built-in manual: ${curl_manual_msg} - --libcurl option: ${curl_libcurl_msg} - Verbose errors: ${curl_verbose_msg} - SSPI support: ${curl_sspi_msg} - ca cert bundle: ${ca} - ca cert path: ${capath} - LDAP support: ${curl_ldap_msg} - LDAPS support: ${curl_ldaps_msg} - RTSP support: ${curl_rtsp_msg} - RTMP support: ${curl_rtmp_msg} - metalink support: ${curl_mtlnk_msg} - Protocols: ${SUPPORT_PROTOCOLS} -]) - -if test "x$soname_bump" = "xyes"; then - -cat <, 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. -# -########################################################################### - -prefix=@prefix@ -exec_prefix=@exec_prefix@ -includedir=@includedir@ -cppflag_curl_staticlib=@CPPFLAG_CURL_STATICLIB@ - -usage() -{ - cat <. - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - stat=$? - - if test -f "$tmpdepfile"; then : - else - stripped=`echo "$stripped" | sed 's,^.*/,,'` - tmpdepfile="$stripped.u" - fi - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - outname="$stripped.o" - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mecanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. - "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no - for arg in "$@"; do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix="`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - "$@" || exit $? - IFS=" " - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/msvc-deps/curl/docs/BINDINGS b/msvc-deps/curl/docs/BINDINGS deleted file mode 100644 index 5cf07fec..00000000 --- a/msvc-deps/curl/docs/BINDINGS +++ /dev/null @@ -1,228 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - - libcurl bindings - -Creative people have written bindings or interfaces for various environments -and programming languages. Using one of these allows you to take advantage of -curl powers from within your favourite language or system. - -This is a list of all known interfaces as of this writing. - -The bindings listed below are not part of the curl/libcurl distribution -archives, but must be downloaded and installed separately. - -Ada95 - - Writtten by Andreas Almroth - http://www.almroth.com/adacurl/index.html - -Basic - - ScriptBasic bindings to libcurl. Writtten by Peter Verhas - http://scriptbasic.com/ - -C - libcurl is a C library in itself! - http://curl.haxx.se/libcurl/ - -C++ - - Written by Jean-Philippe Barrette-LaPierre - http://curlpp.org/ - -Ch - - Written by Stephen Nestinger and Jonathan Rogado - http://chcurl.sourceforge.net/ - -Cocoa - - Written by Dan Wood - http://curlhandle.sourceforge.net/ - -D - - Written by Kenneth Bogert - http://curl.haxx.se/libcurl/d/ - -Dylan - - Written by Chris Double - http://dylanlibs.sourceforge.net/ - -Eiffel - Written by Eiffel Software - http://curl.haxx.se/libcurl/eiffel/ - -Euphoria - - Written by Ray Smith - http://rays-web.com/eulibcurl.htm - -Falcon - - http://www.falconpl.org/index.ftd?page_id=prjs&prj_id=curl - -Ferite - - Written by Paul Querna - http://www.ferite.org/ - -Gambas - - http://gambas.sourceforge.net - -glib/GTK+ - - Written by Richard Atterer - http://atterer.net/glibcurl/ - -Haskell - - Written by Galois, Inc - http://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl - -Java - - Maintained by [blank] - http://curl.haxx.se/libcurl/java/ - -Lisp - - Written by Liam Healy - http://common-lisp.net/project/cl-curl/ - -Lua - - luacurl by Alexander Marinov - http://luacurl.luaforge.net/ - - Lua-cURL by Jürgen Hötzel - http://luaforge.net/projects/lua-curl/ - -Mono - - Written by Jeffrey Phillips - http://forge.novell.com/modules/xfmod/project/?libcurl-mono - -.NET - - libcurl-net by Jeffrey Phillips - http://sourceforge.net/projects/libcurl-net/ - -Object-Pascal - - Free Pascal, Delphi and Kylix binding written by Christophe Espern. - http://www.tekool.com/opcurl - -O'Caml - - Written by Lars Nilsson - http://sourceforge.net/projects/ocurl/ - -Pascal - - Free Pascal, Delphi and Kylix binding written by Jeffrey Pohlmeyer. - http://houston.quik.com/jkp/curlpas/ - -Perl - - Maintained by Cris Bailiff - http://curl.haxx.se/libcurl/perl/ - -PHP - - Written by Sterling Hughes - http://curl.haxx.se/libcurl/php/ - -PostgreSQL - - Written by Gian Paolo Ciceri - http://gborg.postgresql.org/project/pgcurl/projdisplay.php - -Python - - PycURL by Kjetil Jacobsen - http://pycurl.sourceforge.net/ - -R - - RCurl by Duncan Temple Lang - http://www.omegahat.org/RCurl/ - -Rexx - - Written Mark Hessling - http://rexxcurl.sourceforge.net/ - -RPG - - Support for ILE/RPG on OS/400 is included in source distribution - http://curl.haxx.se/libcurl/ - See packages/OS400/README.OS400 and packages/OS400/curl.inc.in - -Ruby - - curb - written by Ross Bamford - http://curb.rubyforge.org/ - - ruby-curl-multi - written by Kristjan Petursson and Keith Rarick - http://curl-multi.rubyforge.org/ - -Scheme - - Bigloo binding by Kirill Lisovsky - http://curl.haxx.se/libcurl/scheme/ - -S-Lang - - S-Lang binding by John E Davis - http://www.jedsoft.org/slang/modules/curl.html - -Smalltalk - - Smalltalk binding by Danil Osipchuk - http://www.squeaksource.com/CurlPlugin/ - -SP-Forth - - SP-Forth binding by ygrek - http://www.forth.org.ru/~ac/lib/lin/curl/ - -SPL - - SPL binding by Clifford Wolf - http://www.clifford.at/spl/ - -Tcl - - Tclcurl by Andrés García - http://personal1.iddeo.es/andresgarci/tclcurl/english/docs.html - -Visual Basic - - libcurl-vb by Jeffrey Phillips - http://sourceforge.net/projects/libcurl-vb/ - -Visual Foxpro - - by Carlos Alloatti - http://www.ctl32.com.ar/libcurl.asp - -Q - The libcurl module is part of the default install - http://q-lang.sourceforge.net/ - -wxWidgets - - Written by Casey O'Donnell - http://wxcode.sourceforge.net/components/wxcurl/ - -XBLite - - Written by David Szafranski - http://perso.wanadoo.fr/xblite/libraries.html diff --git a/msvc-deps/curl/docs/BUGS b/msvc-deps/curl/docs/BUGS deleted file mode 100644 index 697b4e5c..00000000 --- a/msvc-deps/curl/docs/BUGS +++ /dev/null @@ -1,148 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - -BUGS - - 1. Bugs - 1.1 There are still bugs - 1.2 Where to report - 1.3 What to report - 1.4 libcurl problems - 1.5 Who will fix the problems - 1.6 How to get a stack trace - 1.7 Bugs in libcurl bindings - -============================================================================== - -1.1 There are still bugs - - Curl and libcurl have grown substantially since the beginning. At the time - of writing (September 2011), there are about 66000 lines of source code, and - by the time you read this it has probably grown even more. - - Of course there are lots of bugs left. And lots of misfeatures. - - To help us make curl the stable and solid product we want it to be, we need - bug reports and bug fixes. - -1.2 Where to report - - If you can't fix a bug yourself and submit a fix for it, try to report an as - detailed report as possible to a curl mailing list to allow one of us to - have a go at a solution. You can optionally also post your bug/problem at - curl's bug tracking system over at - - http://sourceforge.net/tracker/?group_id=976&atid=100976 - - Please read the rest of this document below first before doing that! Also, - you need to login to your sourceforge account before being able to submit a - bug report (necessary evil done to avoid spam). - - If you feel you need to ask around first, find a suitable mailing list and - post there. The lists are available on http://curl.haxx.se/mail/ - -1.3 What to report - - When reporting a bug, you should include all information that will help us - understand what's wrong, what you expected to happen and how to repeat the - bad behavior. You therefore need to tell us: - - - your operating system's name and version number - - - what version of curl you're using (curl -V is fine) - - - versions of the used libraries that libcurl is built to use - - - what URL you were working with (if possible), at least which protocol - - and anything and everything else you think matters. Tell us what you - expected to happen, tell use what did happen, tell us how you could make it - work another way. Dig around, try out, test. Then include all the tiny bits - and pieces in your report. You will benefit from this yourself, as it will - enable us to help you quicker and more accurately. - - Since curl deals with networks, it often helps us if you include a protocol - debug dump with your bug report. The output you get by using the -v or - --trace options. - - If curl crashed, causing a core dump (in unix), there is hardly any use to - send that huge file to anyone of us. Unless we have an exact same system - setup as you, we can't do much with it. Instead we ask you to get a stack - trace and send that (much smaller) output to us instead! - - The address and how to subscribe to the mailing lists are detailed in the - MANUAL file. - -1.4 libcurl problems - - First, post all libcurl problems on the curl-library mailing list. - - When you've written your own application with libcurl to perform transfers, - it is even more important to be specific and detailed when reporting bugs. - - Tell us the libcurl version and your operating system. Tell us the name and - version of all relevant sub-components like for example the SSL library - you're using and what name resolving your libcurl uses. If you use SFTP or - SCP, the libssh2 version is relevant etc. - - Showing us a real source code example repeating your problem is the best way - to get our attention and it will greatly increase our chances to understand - your problem and to work on a fix (if we agree it truly is a problem). - - Lots of problems that appear to be libcurl problems are actually just abuses - of the libcurl API or other malfunctions in your applications. It is advised - that you run your problematic program using a memory debug tool like - valgrind or similar before you post memory-related or "crashing" problems to - us. - -1.5 Who will fix the problems - - If the problems or bugs you describe are considered to be bugs, we want to - have the problems fixed. - - There are no developers in the curl project that are paid to work on bugs. - All developers that take on reported bugs do this on a voluntary basis. We - do it out of an ambition to keep curl and libcurl excellent products and out - of pride. - - But please do not assume that you can just lump over something to us and it - will then magically be fixed after some given time. Most often we need - feedback and help to understand what you've experienced and how to repeat a - problem. Then we may only be able to assist YOU to debug the problem and to - track down the proper fix. - - We get reports from many people every month and each report can take a - considerable amount of time to really go to the bottom with. - -1.6 How to get a stack trace - - First, you must make sure that you compile all sources with -g and that you - don't 'strip' the final executable. Try to avoid optimizing the code as - well, remove -O, -O2 etc from the compiler options. - - Run the program until it cores. - - Run your debugger on the core file, like ' curl core'. - should be replaced with the name of your debugger, in most cases that will - be 'gdb', but 'dbx' and others also occur. - - When the debugger has finished loading the core file and presents you a - prompt, enter 'where' (without the quotes) and press return. - - The list that is presented is the stack trace. If everything worked, it is - supposed to contain the chain of functions that were called when curl - crashed. Include the stack trace with your detailed bug report. It'll help a - lot. - -1.7 Bugs in libcurl bindings - - There will of course pop up bugs in libcurl bindings. You should then - primarily approach the team that works on that particular binding and see - what you can do to help them fix the problem. - - If you suspect that the problem exists in the underlying libcurl, then - please convert your program over to plain C and follow the steps outlined - above. diff --git a/msvc-deps/curl/docs/CONTRIBUTE b/msvc-deps/curl/docs/CONTRIBUTE deleted file mode 100644 index 33a1f21e..00000000 --- a/msvc-deps/curl/docs/CONTRIBUTE +++ /dev/null @@ -1,303 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - - When Contributing Source Code - - This document is intended to offer guidelines that can be useful to keep in - mind when you decide to contribute to the project. This concerns new features - as well as corrections to existing flaws or bugs. - - 1. Learning cURL - 1.1 Join the Community - 1.2 License - 1.3 What To Read - - 2. cURL Coding Standards - 2.1 Naming - 2.2 Indenting - 2.3 Commenting - 2.4 Line Lengths - 2.5 General Style - 2.6 Non-clobbering All Over - 2.7 Platform Dependent Code - 2.8 Write Separate Patches - 2.9 Patch Against Recent Sources - 2.10 Document - 2.11 Test Cases - - 3. Pushing Out Your Changes - 3.1 Write Access to git Repository - 3.2 How To Make a Patch with git - 3.3 How To Make a Patch without git - 3.4 How to get your changes into the main sources - 3.5 Write good commit messages - 3.6 Please don't send pull requests - -============================================================================== - -1. Learning cURL - -1.1 Join the Community - - Skip over to http://curl.haxx.se/mail/ and join the appropriate mailing - list(s). Read up on details before you post questions. Read this file before - you start sending patches! We prefer patches and discussions being held on - the mailing list(s), not sent to individuals. - - Before posting to one of the curl mailing lists, please read up on the mailing - list etiquette: http://curl.haxx.se/mail/etiquette.html - - We also hang out on IRC in #curl on irc.freenode.net - -1.2. License - - When contributing with code, you agree to put your changes and new code under - the same license curl and libcurl is already using unless stated and agreed - otherwise. - - If you add a larger piece of code, you can opt to make that file or set of - files to use a different license as long as they don't enforce any changes to - the rest of the package and they make sense. Such "separate parts" can not be - GPL licensed (as we don't want copyleft to affect users of libcurl) but they - must use "GPL compatible" licenses (as we want to allow users to use libcurl - properly in GPL licensed environments). - - When changing existing source code, you do not alter the copyright of the - original file(s). The copyright will still be owned by the original - creator(s) or those who have been assigned copyright by the original - author(s). - - By submitting a patch to the curl project, you are assumed to have the right - to the code and to be allowed by your employer or whatever to hand over that - patch/code to us. We will credit you for your changes as far as possible, to - give credit but also to keep a trace back to who made what changes. Please - always provide us with your full real name when contributing! - -1.3 What To Read - - Source code, the man pages, the INTERNALS document, TODO, KNOWN_BUGS, the - most recent CHANGES. Just lurking on the libcurl mailing list is gonna give - you a lot of insights on what's going on right now. Asking there is a good - idea too. - -2. cURL Coding Standards - -2.1 Naming - - Try using a non-confusing naming scheme for your new functions and variable - names. It doesn't necessarily have to mean that you should use the same as in - other places of the code, just that the names should be logical, - understandable and be named according to what they're used for. File-local - functions should be made static. We like lower case names. - - See the INTERNALS document on how we name non-exported library-global - symbols. - -2.2 Indenting - - Please try using the same indenting levels and bracing method as all the - other code already does. It makes the source code a lot easier to follow if - all of it is written using the same style. We don't ask you to like it, we - just ask you to follow the tradition! ;-) This mainly means: 2-level indents, - using spaces only (no tabs) and having the opening brace ({) on the same line - as the if() or while(). - - Also note that we use if() and while() with no space before the parenthesis. - -2.3 Commenting - - Comment your source code extensively using C comments (/* comment */), DO NOT - use C++ comments (// this style). Commented code is quality code and enables - future modifications much more. Uncommented code risk having to be completely - replaced when someone wants to extend things, since other persons' source - code can get quite hard to read. - -2.4 Line Lengths - - We write source lines shorter than 80 columns. - -2.5 General Style - - Keep your functions small. If they're small you avoid a lot of mistakes and - you don't accidentally mix up variables etc. - -2.6 Non-clobbering All Over - - When you write new functionality or fix bugs, it is important that you don't - fiddle all over the source files and functions. Remember that it is likely - that other people have done changes in the same source files as you have and - possibly even in the same functions. If you bring completely new - functionality, try writing it in a new source file. If you fix bugs, try to - fix one bug at a time and send them as separate patches. - -2.7 Platform Dependent Code - - Use #ifdef HAVE_FEATURE to do conditional code. We avoid checking for - particular operating systems or hardware in the #ifdef lines. The - HAVE_FEATURE shall be generated by the configure script for unix-like systems - and they are hard-coded in the config-[system].h files for the others. - -2.8 Write Separate Patches - - It is annoying when you get a huge patch from someone that is said to fix 511 - odd problems, but discussions and opinions don't agree with 510 of them - or - 509 of them were already fixed in a different way. Then the patcher needs to - extract the single interesting patch from somewhere within the huge pile of - source, and that gives a lot of extra work. Preferably, all fixes that - correct different problems should be in their own patch with an attached - description exactly what they correct so that all patches can be selectively - applied by the maintainer or other interested parties. - -2.9 Patch Against Recent Sources - - Please try to get the latest available sources to make your patches - against. It makes the life of the developers so much easier. The very best is - if you get the most up-to-date sources from the git repository, but the - latest release archive is quite OK as well! - -2.10 Document - - Writing docs is dead boring and one of the big problems with many open source - projects. Someone's gotta do it. It makes it a lot easier if you submit a - small description of your fix or your new features with every contribution so - that it can be swiftly added to the package documentation. - - The documentation is always made in man pages (nroff formatted) or plain - ASCII files. All HTML files on the web site and in the release archives are - generated from the nroff/ASCII versions. - -2.11 Test Cases - - Since the introduction of the test suite, we can quickly verify that the main - features are working as they're supposed to. To maintain this situation and - improve it, all new features and functions that are added need to be tested - in the test suite. Every feature that is added should get at least one valid - test case that verifies that it works as documented. If every submitter also - posts a few test cases, it won't end up as a heavy burden on a single person! - -3. Pushing Out Your Changes - -3.1 Write Access to git Repository - - If you are a frequent contributor, or have another good reason, you can of - course get write access to the git repository and then you'll be able to push - your changes straight into the git repo instead of sending changes by mail as - patches. Just ask if this is what you'd want. You will be required to have - posted a few quality patches first, before you can be granted push access. - -3.2 How To Make a Patch with git - - You need to first checkout the repository: - - git clone git://github.com/bagder/curl.git - - You then proceed and edit all the files you like and you commit them to your - local repository: - - git commit [file] - - As usual, group your commits so that you commit all changes that at once that - constitutes a logical change. See also section "3.5 Write good commit - messages". - - Once you have done all your commits and you're happy with what you see, you - can make patches out of your changes that are suitable for mailing: - - git format-patch remotes/origin/master - - This creates files in your local directory named NNNN-[name].patch for each - commit. - - Now send those patches off to the curl-library list. You can of course opt to - do that with the 'get send-email' command. - -3.3 How To Make a Patch without git - - Keep a copy of the unmodified curl sources. Make your changes in a separate - source tree. When you think you have something that you want to offer the - curl community, use GNU diff to generate patches. - - If you have modified a single file, try something like: - - diff -u unmodified-file.c my-changed-one.c > my-fixes.diff - - If you have modified several files, possibly in different directories, you - can use diff recursively: - - diff -ur curl-original-dir curl-modified-sources-dir > my-fixes.diff - - The GNU diff and GNU patch tools exist for virtually all platforms, including - all kinds of Unixes and Windows: - - For unix-like operating systems: - - http://www.gnu.org/software/patch/patch.html - http://www.gnu.org/directory/diffutils.html - - For Windows: - - http://gnuwin32.sourceforge.net/packages/patch.htm - http://gnuwin32.sourceforge.net/packages/diffutils.htm - -3.4 How to get your changes into the main sources - - Submit your patch to the curl-library mailing list. - - Make the patch against as recent sources as possible. - - Make sure your patch adheres to the source indent and coding style of already - existing source code. Failing to do so just adds more work for me. - - Respond to replies on the list about the patch and answer questions and/or - fix nits/flaws. This is very important. I will take lack of replies as a sign - that you're not very anxious to get your patch accepted and I tend to simply - drop such patches from my TODO list. - - If you've followed the above paragraphs and your patch still hasn't been - incorporated after some weeks, consider resubmitting it to the list. - -3.5 Write good commit messages - - A short guide to how to do fine commit messages in the curl project. - - ---- start ---- - [area]: [short line describing the main effect] - - [separate the above single line from the rest with an empty line] - - [full description, no wider than 72 columns that describe as much as - possible as to why this change is made, and possibly what things - it fixes and everything else that is related] - ---- stop ---- - - Don't forget to use commit --author="" if you commit someone else's work, - and make sure that you have your own user and email setup correctly in git - before you commit - -3.6 Please don't send pull requests - - With git (and especially github) it is easy and tempting to send a pull - request to one or more people in the curl project to have changes merged this - way instead of mailing patches to the curl-library mailing list. - - We don't like that. We want them mailed for these reasons: - - - Peer review. Anyone and everyone on the list can review, comment and - improve on the patch. Pull requests limit this ability. - - - Anyone can merge the patch into their own trees for testing and those who - have push rights can push it to the main repo. It doesn't have to be anyone - the patch author knows beforehand. - - - Commit messages can be tweaked and changed if merged locally instead of - using github. Merges directly on github requires the changes to be perfect - already, which they seldom are. - - - Merges on github prevents rebases and even enforces --no-ff which is a git - style we don't otherwise use in the project - - However: once patches have been reviewed and deemed fine on list they are - perfectly OK to be pulled from a published git tree. diff --git a/msvc-deps/curl/docs/DISTRO-DILEMMA b/msvc-deps/curl/docs/DISTRO-DILEMMA deleted file mode 100644 index 108e6bad..00000000 --- a/msvc-deps/curl/docs/DISTRO-DILEMMA +++ /dev/null @@ -1,176 +0,0 @@ - Date: February 11, 2007 - Author: Daniel Stenberg - URL: http://curl.haxx.se/legal/distro-dilemma.html - -Condition - - This document is written to describe the situation as it is right now. - libcurl 7.16.1 is currently the latest version available. Things may of - course change in the future. - - This document reflects my view and understanding of these things. Please tell - me where and how you think I'm wrong, and I'll try to correct my mistakes. - -Background - - The Free Software Foundation has deemed the Original BSD license[1] to be - "incompatible"[2] with GPL[3]. I'd rather say it is the other way around, but - the point is the same: if you distribute a binary version of a GPL program, - it MUST NOT be linked with any Original BSD-licensed parts or libraries. - Doing so will violate the GPL license. For a long time, very many GPL - licensed programs have avoided this license mess by adding an exception[8] to - their license. And many others have just closed their eyes for this problem. - - libcurl is MIT-style[4] licensed - how on earth did this dilemma fall onto - our plates? - - libcurl is only a little library. libcurl can be built to use OpenSSL for its - SSL/TLS capabilities. OpenSSL is basically Original BSD licensed[5]. - - If libcurl built to use OpenSSL is used by a GPL-licensed application and you - decide to distribute a binary version of it (Linux distros - for example - - tend to), you have a clash. GPL vs Original BSD. - - This dilemma is not libcurl-specific nor is it specific to any particular - Linux distro. (This article mentions and refers to Debian several times, but - only because Debian seems to be the only Linux distro to have faced this - issue yet since no other distro is shipping libcurl built with two SSL - libraries.) - -Part of the Operating System - - This would not be a problem if the used lib would be considered part of the - underlying operating system, as then the GPL license has an exception - clause[6] that allows applications to use such libs without having to be - allowed to distribute it or its sources. Possibly some distros will claim - that OpenSSL is part of their operating system. - - Debian does however not take this stance and has officially(?) claimed that - OpenSSL is not a required part of the Debian operating system - - Some people claim that this paragraph cannot be exploited this way by a Linux - distro, but I am not a lawyer and that is a discussion left outside of this - document. - -GnuTLS - - Since May 2005 libcurl can get built to use GnuTLS instead of OpenSSL. GnuTLS - is an LGPL[7] licensed library that offers a matching set of features as - OpenSSL does. Now, you can build and distribute an TLS/SSL capable libcurl - without including any Original BSD licensed code. - - I believe Debian is the first (only?) distro that provides libcurl/GnutTLS - packages. - -yassl - - libcurl can get also get built to use yassl for the TLS/SSL layer. yassl is a - GPL[3] licensed library. - - -GnuTLS vs OpenSSL vs yassl - - While these three libraries offer similar features, they are not equal. - libcurl does not (yet) offer a standardized stable ABI if you decide to - switch from using libcurl-openssl to libcurl-gnutls or vice versa. The GnuTLS - and yassl support is very recent in libcurl and it has not been tested nor - used very extensively, while the OpenSSL equivalent code has been used and - thus matured since 1999. - - GnuTLS - - LGPL licensened - - supports SRP - - lacks SSLv2 support - - lacks MD2 support (used by at least some CA certs) - - lacks the crypto functions libcurl uses for NTLM - - OpenSSL - - Original BSD licensened - - lacks SRP - - supports SSLv2 - - older and more widely used - - provides crypto functions libcurl uses for NTLM - - libcurl can do non-blocking connects with it in 7.15.4 and later - - yassl - - GPL licensed - - much untested and unproven in the real work by (lib)curl users so we don't - know a lot about restrictions or benefits from using this - -The Better License, Original BSD, GPL or LGPL? - - It isn't obvious or without debate to any objective interested party that - either of these licenses are the "better" or even the "preferred" one in a - generic situation. - - Instead, I think we should accept the fact that the SSL/TLS libraries and - their different licenses will fit different applications and their authors - differently depending on the applications' licenses and their general usage - pattern (considering how GPL and LGPL libraries for example can be burdensome - for embedded systems usage). - - In Debian land, there seems to be a common opinion that LGPL is "maximally - compatible" with apps while Original BSD is not. Like this: - - http://lists.debian.org/debian-devel/2005/09/msg01417.html - -More SSL Libraries - - In libcurl, there's no stopping us here. There are more Open Source/Free - SSL/TLS libraries out there and we would very much like to support them as - well, to offer application authors an even wider scope of choice. - -Application Angle of this Problem - - libcurl is built to use one SSL/TLS library. It uses a single fixed name (by - default) on the built/created lib file, and applications are built/linked to - use that single lib. Replacing one libcurl instance with another one that - uses the other SSL/TLS library might break one or more applications (due to - ABI differences and/or different feature set). You want your application to - use the libcurl it was built for. - -Project cURL Angle of this Problem - - We distribute libcurl and everyone may build libcurl with either library at - their choice. This problem is not directly a problem of ours. It merely - affects users - GPL application authors only - of our lib as it comes - included and delivered on some distros. - - libcurl has different ABI when built with different SSL/TLS libraries due to - these reasons: - - 1. No one has worked on fixing this. The mutex/lock callbacks should be set - with a generic libcurl function that should use the proper underlying - functions. - - 2. The CURLOPT_SSL_CTX_FUNCTION option is not possible to "emulate" on GnuTLS - but simply requires OpenSSL. - - 3. There might be some other subtle differences just because nobody has yet - tried to make a fixed ABI like this. - -Distro Angle of this Problem - - To my knowledge there is only one distro that ships libcurl built with either - OpenSSL or GnuTLS. - - Debian Linux is now (since mid September 2005) providing two different - libcurl packages, one for libcurl built with OpenSSL and one built with - GnuTLS. They use different .so names and can this both be installed in a - single system simultaneously. This has been said to be a transitional system - not desired to keep in the long run. - -Footnotes - - [1] = http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6 - [2] = http://www.fsf.org/licensing/essays/bsd.html - [3] = http://www.fsf.org/licensing/licenses/gpl.html - [4] = http://curl.haxx.se/docs/copyright.html - [5] = http://www.openssl.org/source/license.html - [6] = http://www.fsf.org/licensing/licenses/gpl.html end of section 3 - [7] = http://www.fsf.org/licensing/licenses/lgpl.html - [8] = http://en.wikipedia.org/wiki/OpenSSL_exception - -Feedback/Updates provided by - - Eric Cooper diff --git a/msvc-deps/curl/docs/FAQ b/msvc-deps/curl/docs/FAQ deleted file mode 100644 index a06d16d5..00000000 --- a/msvc-deps/curl/docs/FAQ +++ /dev/null @@ -1,1421 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - -FAQ - - 1. Philosophy - 1.1 What is cURL? - 1.2 What is libcurl? - 1.3 What is curl not? - 1.4 When will you make curl do XXXX ? - 1.5 Who makes curl? - 1.6 What do you get for making curl? - 1.7 What about CURL from curl.com? - 1.8 I have a problem who do I mail? - 1.9 Where do I buy commercial support for curl? - 1.10 How many are using curl? - 1.11 Why don't you update ca-bundle.crt - 1.12 I have a problem who can I chat with? - 1.13 curl's ECCN number? - 1.14 How do I submit my patch? - - 2. Install Related Problems - 2.1 configure doesn't find OpenSSL even when it is installed - 2.1.1 native linker doesn't find OpenSSL - 2.1.2 only the libssl lib is missing - 2.2 Does curl work/build with other SSL libraries? - 2.3 Where can I find a copy of LIBEAY32.DLL? - 2.4 Does curl support SOCKS (RFC 1928) ? - - 3. Usage Problems - 3.1 curl: (1) SSL is disabled, https: not supported - 3.2 How do I tell curl to resume a transfer? - 3.3 Why doesn't my posting using -F work? - 3.4 How do I tell curl to run custom FTP commands? - 3.5 How can I disable the Accept: */* header? - 3.6 Does curl support ASP, XML, XHTML or HTML version Y? - 3.7 Can I use curl to delete/rename a file through FTP? - 3.8 How do I tell curl to follow HTTP redirects? - 3.9 How do I use curl in my favorite programming language? - 3.10 What about SOAP, WebDAV, XML-RPC or similar protocols over HTTP? - 3.11 How do I POST with a different Content-Type? - 3.12 Why do FTP specific features over HTTP proxy fail? - 3.13 Why does my single/double quotes fail? - 3.14 Does curl support Javascript or PAC (automated proxy config)? - 3.15 Can I do recursive fetches with curl? - 3.16 What certificates do I need when I use SSL? - 3.17 How do I list the root dir of an FTP server? - 3.18 Can I use curl to send a POST/PUT and not wait for a response? - 3.19 How do I get HTTP from a host using a specific IP address? - 3.20 How to SFTP from my user's home directory? - 3.21 Protocol xxx not supported or disabled in libcurl - - 4. Running Problems - 4.1 Problems connecting to SSL servers. - 4.2 Why do I get problems when I use & or % in the URL? - 4.3 How can I use {, }, [ or ] to specify multiple URLs? - 4.4 Why do I get downloaded data even though the web page doesn't exist? - 4.5 Why do I get return code XXX from a HTTP server? - 4.5.1 "400 Bad Request" - 4.5.2 "401 Unauthorized" - 4.5.3 "403 Forbidden" - 4.5.4 "404 Not Found" - 4.5.5 "405 Method Not Allowed" - 4.5.6 "301 Moved Permanently" - 4.6 Can you tell me what error code 142 means? - 4.7 How do I keep user names and passwords secret in Curl command lines? - 4.8 I found a bug! - 4.9 Curl can't authenticate to the server that requires NTLM? - 4.10 My HTTP request using HEAD, PUT or DELETE doesn't work! - 4.11 Why does my HTTP range requests return the full document? - 4.12 Why do I get "certificate verify failed" ? - 4.13 Why is curl -R on Windows one hour off? - 4.14 Redirects work in browser but not with curl! - 4.15 FTPS doesn't work - 4.16 My HTTP POST or PUT requests are slow! - 4.17 Non-functional connect timeouts on Windows - 4.18 file:// URLs containing drive letters (Windows, NetWare) - 4.19 Why doesn't cURL return an error when the network cable is unplugged? - - 5. libcurl Issues - 5.1 Is libcurl thread-safe? - 5.2 How can I receive all data into a large memory chunk? - 5.3 How do I fetch multiple files with libcurl? - 5.4 Does libcurl do Winsock initing on win32 systems? - 5.5 Does CURLOPT_WRITEDATA and CURLOPT_READDATA work on win32 ? - 5.6 What about Keep-Alive or persistent connections? - 5.7 Link errors when building libcurl on Windows! - 5.8 libcurl.so.X: open failed: No such file or directory - 5.9 How does libcurl resolve host names? - 5.10 How do I prevent libcurl from writing the response to stdout? - 5.11 How do I make libcurl not receive the whole HTTP response? - 5.12 Can I make libcurl fake or hide my real IP address? - 5.13 How do I stop an ongoing transfer? - 5.14 Using C++ non-static functions for callbacks? - 5.15 How do I get an FTP directory listing? - 5.16 I want a different time-out! - - 6. License Issues - 6.1 I have a GPL program, can I use the libcurl library? - 6.2 I have a closed-source program, can I use the libcurl library? - 6.3 I have a BSD licensed program, can I use the libcurl library? - 6.4 I have a program that uses LGPL libraries, can I use libcurl? - 6.5 Can I modify curl/libcurl for my program and keep the changes secret? - 6.6 Can you please change the curl/libcurl license to XXXX? - 6.7 What are my obligations when using libcurl in my commercial apps? - - 7. PHP/CURL Issues - 7.1 What is PHP/CURL? - 7.2 Who wrote PHP/CURL? - 7.3 Can I perform multiple requests using the same handle? - -============================================================================== - -1. Philosophy - - 1.1 What is cURL? - - cURL is the name of the project. The name is a play on 'Client for URLs', - originally with URL spelled in uppercase to make it obvious it deals with - URLs. The fact it can also be pronounced 'see URL' also helped, it works as - an abbreviation for "Client URL Request Library" or why not the recursive - version: "Curl URL Request Library". - - The cURL project produces two products: - - libcurl - - A free and easy-to-use client-side URL transfer library, supporting DICT, - FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, - POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP. - - libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, - kerberos, HTTP form based upload, proxies, cookies, user+password - authentication, file transfer resume, http proxy tunneling and more! - - libcurl is highly portable, it builds and works identically on numerous - platforms, including Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, - IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOS, Mac - OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS, Symbian, OSF, - Android, Minix, IBM TPF and more... - - libcurl is free, thread-safe, IPv6 compatible, feature rich, well - supported and fast. - - curl - - A command line tool for getting or sending files using URL syntax. - - Since curl uses libcurl, curl supports the same wide range of common - Internet protocols that libcurl does. - - We pronounce curl and cURL with an initial k sound: [kurl]. - - There are numerous sub-projects and related projects that also use the word - curl in the project names in various combinations, but you should take - notice that this FAQ is directed at the command-line tool named curl (and - libcurl the library), and may therefore not be valid for other curl-related - projects. (There is however a small section for the PHP/CURL in this FAQ.) - - 1.2 What is libcurl? - - libcurl is a reliable and portable library which provides you with an easy - interface to a range of common Internet protocols. - - You can use libcurl for free in your application, be it open source, - commercial or closed-source. - - libcurl is most probably the most portable, most powerful and most often - used C-based multi-platform file transfer library on this planet - be it - open source or commercial. - - 1.3 What is curl not? - - Curl is not a wget clone. That is a common misconception. Never, during - curl's development, have we intended curl to replace wget or compete on its - market. Curl is targeted at single-shot file transfers. - - Curl is not a web site mirroring program. If you want to use curl to mirror - something: fine, go ahead and write a script that wraps around curl to make - it reality (like curlmirror.pl does). - - Curl is not an FTP site mirroring program. Sure, get and send FTP with curl - but if you want systematic and sequential behavior you should write a - script (or write a new program that interfaces libcurl) and do it. - - Curl is not a PHP tool, even though it works perfectly well when used from - or with PHP (when using the PHP/CURL module). - - Curl is not a program for a single operating system. Curl exists, compiles, - builds and runs under a wide range of operating systems, including all - modern Unixes (and a bunch of older ones too), Windows, Amiga, BeOS, OS/2, - OS X, QNX etc. - - 1.4 When will you make curl do XXXX ? - - We love suggestions of what to change in order to make curl and libcurl - better. We do however believe in a few rules when it comes to the future of - curl: - - * Curl -- the command line tool -- is to remain a non-graphical command line - tool. If you want GUIs or fancy scripting capabilities, you should look - for another tool that uses libcurl. - - * We do not add things to curl that other small and available tools already - do very fine at the side. Curl's output is fine to pipe into another - program or redirect to another file for the next program to interpret. - - * We focus on protocol related issues and improvements. If you wanna do more - magic with the supported protocols than curl currently does, chances are - big we will agree. If you wanna add more protocols, we may very well - agree. - - * If you want someone else to make all the work while you wait for us to - implement it for you, that is not a very friendly attitude. We spend a - considerable time already on maintaining and developing curl. In order to - get more out of us, you should consider trading in some of your time and - efforts in return. - - * If you write the code, chances are bigger that it will get into curl - faster. - - 1.5 Who makes curl? - - curl and libcurl are not made by any single individual. Daniel Stenberg is - project leader and main developer, but other persons' submissions are - important and crucial. Anyone can contribute and post their changes and - improvements and have them inserted in the main sources (of course on the - condition that developers agree on that the fixes are good). - - The full list of all contributors is found in the docs/THANKS file. - - curl is developed by a community, with Daniel at the wheel. - - 1.6 What do you get for making curl? - - Project cURL is entirely free and open. No person gets paid for developing - (lib)curl on full or even part time. We do this voluntarily on our spare - time. Occasionally companies pay individual developers to work on curl, but - that's up to each company and developer. It is not controlled by nor - supervised in any way by the project. - - We still get help from companies. Haxx provides web site, bandwidth, mailing - lists etc and sourceforge.net hosts project services we take advantage from, - like the bug tracker. Also again, some companies have sponsored certain - parts of the development in the past and I hope some will continue to do so - in the future. - - If you want to support our project, consider a donation or a banner-program - or even better: by helping us coding, documenting, testing etc. - - 1.7 What about CURL from curl.com? - - During the summer 2001, curl.com was busy advertising their client-side - programming language for the web, named CURL. - - We are in no way associated with curl.com or their CURL programming - language. - - Our project name curl has been in effective use since 1998. We were not the - first computer related project to use the name "curl" and do not claim any - first-hand rights to the name. - - We recognize that we will be living in parallel with curl.com and wish them - every success. - - 1.8 I have a problem who do I mail? - - Please do not mail any single individual unless you really need to. Keep - curl-related questions on a suitable mailing list. All available mailing - lists are listed in the MANUAL document and online at - http://curl.haxx.se/mail/ - - Keeping curl-related questions and discussions on mailing lists allows - others to join in and help, to share their ideas, contribute their - suggestions and spread their wisdom. Keeping discussions on public mailing - lists also allows for others to learn from this (both current and future - users thanks to the web based archives of the mailing lists), thus saving us - from having to repeat ourselves even more. Thanks for respecting this. - - If you have found or simply suspect a security problem in curl or libcurl, - mail curl-security at haxx.se (closed list of receivers, mails are not - disclosed) and tell. Then we can produce a fix in a timely manner before the - flaw is announced to the world, thus lessen the impact the problem will have - on existing users. - - 1.9 Where do I buy commercial support for curl? - - curl is fully open source. It means you can hire any skilled engineer to fix - your curl-related problems. - - We list available alternatives on the curl web site: - http://curl.haxx.se/support.html - - 1.10 How many are using curl? - - It is impossible to tell. - - We don't know how many users that knowingly have installed and use curl. - - We don't know how many users that use curl without knowing that they are in - fact using it. - - We don't know how many users that downloaded or installed curl and then - never use it. - - In May 2012 Daniel did a counting game and came up with a number that may - be completely wrong or somewhat accurate. 300 million! - - See http://daniel.haxx.se/blog/2012/05/16/300m-users/ - - 1.11 Why don't you update ca-bundle.crt - - The ca-bundle.crt file that used to be bundled with curl was very outdated - (it being last modified year 2000 should tell) and must be replaced with a - much more modern and up-to-date version by anyone who wants to verify peers - anyway. It is no longer provided, the last curl release that shipped it was - curl 7.18.0. - - In the cURL project we've decided not to attempt to keep this file updated - (or even present anymore) since deciding what to add to a ca cert bundle is - an undertaking we've not been ready to accept, and the one we can get from - Mozilla is perfectly fine so there's no need to duplicate that work. - - Today, with many services performed over HTTPS, every operating system - should come with a default ca cert bundle that can be deemed somewhat - trustworthy and that collection (if reasonably updated) should be deemed to - be a lot better than a private curl version. - - If you want the most recent collection of ca certs that Mozilla Firefox - uses, we recommend that you extract the collection yourself from Mozilla - Firefox (by running 'make ca-bundle), or by using our online service setup - for this purpose: http://curl.haxx.se/docs/caextract.html - - 1.12 I have a problem who can I chat with? - - There's a bunch of friendly people hanging out in the #curl channel on the - IRC network irc.freenode.net. If you're polite and nice, chances are big - that you can get -- or provide -- help instantly. - - 1.13 curl's ECCN number? - - The US government restricts exports of software that contains or uses - cryptography. When doing so, the Export Control Classification Number (ECCN) - is used to identify the level of export control etc. - - ASF gives a good explanation at http://www.apache.org/dev/crypto.html - - We believe curl's number might be ECCN 5D002, another possibility is - 5D992. It seems necessary to write them, asking to confirm. - - Comprehensible explanations of the meaning of such numbers and how to - obtain them (resp.) are here - - http://www.bis.doc.gov/licensing/exportingbasics.htm - http://www.bis.doc.gov/licensing/do_i_needaneccn.html - - An incomprehensible description of the two numbers above is here - http://www.access.gpo.gov/bis/ear/pdf/ccl5-pt2.pdf - - 1.14 How do I submit my patch? - - When you have made a patch or a change of whatever sort, and want to submit - that to the project, there are a few different ways we prefer: - - o send a patch to the curl-library mailing list. We're many subscribers - there and there are lots of people who can review patches, comment on them - and "receive" them properly. - - o if your patch changes or fixes a bug, you can also opt to submit a bug - report in the bug tracker and attach your patch there. There are less - people involved there. - - Lots of more details are found in the CONTRIBUTE and INTERNALS docs. - - -2. Install Related Problems - - 2.1 configure doesn't find OpenSSL even when it is installed - - This may be because of several reasons. - - 2.1.1 native linker doesn't find openssl - - Affected platforms: - Solaris (native cc compiler) - HPUX (native cc compiler) - SGI IRIX (native cc compiler) - SCO UNIX (native cc compiler) - - When configuring curl, I specify --with-ssl. OpenSSL is installed in - /usr/local/ssl Configure reports SSL in /usr/local/ssl, but fails to find - CRYPTO_lock in -lcrypto - - Cause: The cc for this test places the -L/usr/local/ssl/lib AFTER - -lcrypto, so ld can't find the library. This is due to a bug in the GNU - autoconf tool. - - Workaround: Specifying "LDFLAGS=-L/usr/local/ssl/lib" in front of - ./configure places the -L/usr/local/ssl/lib early enough in the command - line to make things work - - 2.1.2 only the libssl lib is missing - - If all include files and the libcrypto lib is present, with only the - libssl being missing according to configure, this is mostly likely because - a few functions are left out from the libssl. - - If the function names missing include RSA or RSAREF you can be certain - that this is because libssl requires the RSA and RSAREF libs to build. - - See the INSTALL file section that explains how to add those libs to - configure. Make sure that you remove the config.cache file before you - rerun configure with the new flags. - - 2.2 Does curl work/build with other SSL libraries? - - Curl has been written to use OpenSSL, GnuTLS, yassl, NSS, PolarSSL, axTLS or - qssl, although there should not be many problems using a different - library. If anyone does "port" curl to use a different SSL library, we are - of course very interested in getting the patch! - - 2.3 Where can I find a copy of LIBEAY32.DLL? - - That is an OpenSSL binary built for Windows. - - Curl uses OpenSSL to do the SSL stuff. The LIBEAY32.DLL is what curl needs - on a windows machine to do https://. Check out the curl web site to find - accurate and up-to-date pointers to recent OpenSSL DLLs and other binary - packages. - - 2.4 Does curl support SOCKS (RFC 1928) ? - - Yes, SOCKS 4 and 5 are supported. - - -3. Usage problems - - 3.1 curl: (1) SSL is disabled, https: not supported - - If you get this output when trying to get anything from a https:// server, - it means that the instance of curl/libcurl that you're using was built - without support for this protocol. - - This could've happened if the configure script that was run at build time - couldn't find all libs and include files curl requires for SSL to work. If - the configure script fails to find them, curl is simply built without SSL - support. - - To get the https:// support into a curl that was previously built but that - reports that https:// is not supported, you should dig through the document - and logs and check out why the configure script doesn't find the SSL libs - and/or include files. - - Also, check out the other paragraph in this FAQ labelled "configure doesn't - find OpenSSL even when it is installed". - - 3.2 How do I tell curl to resume a transfer? - - Curl supports resumed transfers both ways on both FTP and HTTP. - Try the -C option. - - 3.3 Why doesn't my posting using -F work? - - You can't simply use -F or -d at your choice. The web server that will - receive your post assumes one of the formats. If the form you're trying to - "fake" sets the type to 'multipart/form-data', then and only then you must - use the -F type. In all the most common cases, you should use -d which then - causes a posting with the type 'application/x-www-form-urlencoded'. - - This is described in some detail in the MANUAL and TheArtOfHttpScripting - documents, and if you don't understand it the first time, read it again - before you post questions about this to the mailing list. Also, try reading - through the mailing list archives for old postings and questions regarding - this. - - 3.4 How do I tell curl to run custom FTP commands? - - You can tell curl to perform optional commands both before and/or after a - file transfer. Study the -Q/--quote option. - - Since curl is used for file transfers, you don't use curl to just perform - FTP commands without transferring anything. Therefore you must always specify - a URL to transfer to/from even when doing custom FTP commands. - - 3.5 How can I disable the Accept: */* header? - - You can change all internally generated headers by adding a replacement with - the -H/--header option. By adding a header with empty contents you safely - disable that one. Use -H "Accept:" to disable that specific header. - - 3.6 Does curl support ASP, XML, XHTML or HTML version Y? - - To curl, all contents are alike. It doesn't matter how the page was - generated. It may be ASP, PHP, Perl, shell-script, SSI or plain - HTML-files. There's no difference to curl and it doesn't even know what kind - of language that generated the page. - - See also item 3.14 regarding javascript. - - 3.7 Can I use curl to delete/rename a file through FTP? - - Yes. You specify custom FTP commands with -Q/--quote. - - One example would be to delete a file after you have downloaded it: - - curl -O ftp://download.com/coolfile -Q '-DELE coolfile' - - or rename a file after upload: - - curl -T infile ftp://upload.com/dir/ -Q "-RNFR infile" -Q "-RNTO newname" - - 3.8 How do I tell curl to follow HTTP redirects? - - Curl does not follow so-called redirects by default. The Location: header - that informs the client about this is only interpreted if you're using the - -L/--location option. As in: - - curl -L http://redirector.com - - Not all redirects are HTTP ones, see 4.14 - - 3.9 How do I use curl in my favorite programming language? - - There exist many language interfaces/bindings for curl that integrates it - better with various languages. If you are fluid in a script language, you - may very well opt to use such an interface instead of using the command line - tool. - - Find out more about which languages that support curl directly, and how to - install and use them, in the libcurl section of the curl web site: - http://curl.haxx.se/libcurl/ - - All the various bindings to libcurl are made by other projects and people, - outside of the cURL project. The cURL project itself only produces libcurl - with its plain C API. If you don't find anywhere else to ask you can ask - about bindings on the curl-library list too, but be prepared that people on - that list may not know anything about bindings. - - In October 2009, there were interfaces available for the following - languages: Ada95, Basic, C, C++, Ch, Cocoa, D, Dylan, Eiffel, Euphoria, - Ferite, Gambas, glib/GTK+, Haskell, ILE/RPG, Java, Lisp, Lua, Mono, .NET, - Object-Pascal, O'Caml, Pascal, Perl, PHP, PostgreSQL, Python, R, Rexx, Ruby, - Scheme, S-Lang, Smalltalk, SP-Forth, SPL, Tcl, Visual Basic, Visual FoxPro, - Q, wxwidgets and XBLite. By the time you read this, additional ones may have - appeared! - - 3.10 What about SOAP, WebDAV, XML-RPC or similar protocols over HTTP? - - Curl adheres to the HTTP spec, which basically means you can play with *any* - protocol that is built on top of HTTP. Protocols such as SOAP, WEBDAV and - XML-RPC are all such ones. You can use -X to set custom requests and -H to - set custom headers (or replace internally generated ones). - - Using libcurl is of course just as fine and you'd just use the proper - library options to do the same. - - 3.11 How do I POST with a different Content-Type? - - You can always replace the internally generated headers with -H/--header. - To make a simple HTTP POST with text/xml as content-type, do something like: - - curl -d "datatopost" -H "Content-Type: text/xml" [URL] - - 3.12 Why do FTP specific features over HTTP proxy fail? - - Because when you use a HTTP proxy, the protocol spoken on the network will - be HTTP, even if you specify a FTP URL. This effectively means that you - normally can't use FTP specific features such as FTP upload and FTP quote - etc. - - There is one exception to this rule, and that is if you can "tunnel through" - the given HTTP proxy. Proxy tunneling is enabled with a special option (-p) - and is generally not available as proxy admins usually disable tunneling to - other ports than 443 (which is used for HTTPS access through proxies). - - 3.13 Why does my single/double quotes fail? - - To specify a command line option that includes spaces, you might need to - put the entire option within quotes. Like in: - - curl -d " with spaces " url.com - - or perhaps - - curl -d ' with spaces ' url.com - - Exactly what kind of quotes and how to do this is entirely up to the shell - or command line interpreter that you are using. For most unix shells, you - can more or less pick either single (') or double (") quotes. For - Windows/DOS prompts I believe you're forced to use double (") quotes. - - Please study the documentation for your particular environment. Examples in - the curl docs will use a mix of both these ones as shown above. You must - adjust them to work in your environment. - - Remember that curl works and runs on more operating systems than most single - individuals have ever tried. - - 3.14 Does curl support Javascript or PAC (automated proxy config)? - - Many web pages do magic stuff using embedded Javascript. Curl and libcurl - have no built-in support for that, so it will be treated just like any other - contents. - - .pac files are a netscape invention and are sometimes used by organizations - to allow them to differentiate which proxies to use. The .pac contents is - just a Javascript program that gets invoked by the browser and that returns - the name of the proxy to connect to. Since curl doesn't support Javascript, - it can't support .pac proxy configuration either. - - Some workarounds usually suggested to overcome this Javascript dependency: - - - Depending on the Javascript complexity, write up a script that - translates it to another language and execute that. - - - Read the Javascript code and rewrite the same logic in another language. - - - Implement a Javascript interpreter, people have successfully used the - Mozilla Javascript engine in the past. - - - Ask your admins to stop this, for a static proxy setup or similar. - - 3.15 Can I do recursive fetches with curl? - - No. curl itself has no code that performs recursive operations, such as - those performed by wget and similar tools. - - There exist wrapper scripts with that functionality (for example the - curlmirror perl script), and you can write programs based on libcurl to do - it, but the command line tool curl itself cannot. - - 3.16 What certificates do I need when I use SSL? - - There are three different kinds of "certificates" to keep track of when we - talk about using SSL-based protocols (HTTPS or FTPS) using curl or libcurl. - - - Client certificate. The server you communicate may require that you can - provide this in order to prove that you actually are who you claim to be. - If the server doesn't require this, you don't need a client certificate. - - A client certificate is always used together with a private key, and the - private key has a pass phrase that protects it. - - - Server certificate. The server you communicate with has a server - certificate. You can and should verify this certificate to make sure that - you are truly talking to the real server and not a server impersonating - it. - - - Certificate Authority certificate ("CA cert"). You often have several CA - certs in a CA cert bundle that can be used to verify a server certificate - that was signed by one of the authorities in the bundle. curl does not - come with a CA cert bundle but most curl installs provide one. You can - also override the default. - - The server certificate verification process is made by using a Certificate - Authority certificate ("CA cert") that was used to sign the server - certificate. Server certificate verification is enabled by default in curl - and libcurl and is often the reason for problems as explained in FAQ entry - 4.12 and the SSLCERTS document - (http://curl.haxx.se/docs/sslcerts.html). Server certificates that are - "self-signed" or otherwise signed by a CA that you do not have a CA cert - for, cannot be verified. If the verification during a connect fails, you - are refused access. You then need to explicitly disable the verification - to connect to the server. - - 3.17 How do I list the root dir of an FTP server? - - There are two ways. The way defined in the RFC is to use an encoded slash - in the first path part. List the "/tmp" dir like this: - - curl ftp://ftp.sunet.se/%2ftmp/ - - or the not-quite-kosher-but-more-readable way, by simply starting the path - section of the URL with a slash: - - curl ftp://ftp.sunet.se//tmp/ - - 3.18 Can I use curl to send a POST/PUT and not wait for a response? - - No. - - But you could easily write your own program using libcurl to do such stunts. - - 3.19 How do I get HTTP from a host using a specific IP address? - - For example, you may be trying out a web site installation that isn't yet in - the DNS. Or you have a site using multiple IP addresses for a given host - name and you want to address a specific one out of the set. - - Set a custom Host: header that identifies the server name you want to reach - but use the target IP address in the URL: - - curl --header "Host: www.example.com" http://127.0.0.1/ - - You can also opt to add faked host name entries to curl with the --resolve - option. That has the added benefit that things like redirects will also work - properly. The above operation would instead be done as: - - curl --resolve www.example.com:80:127.0.0.1 http://www.example.com/ - - 3.20 How to SFTP from my user's home directory? - - Contrary to how FTP works, SFTP and SCP URLs specify the exact directory to - work with. It means that if you don't specify that you want the user's home - directory, you get the actual root directory. - - To specify a file in your user's home directory, you need to use the correct - URL syntax which for sftp might look similar to: - - curl -O -u user:password sftp://example.com/~/file.txt - - and for SCP it is just a different protocol prefix: - - curl -O -u user:password scp://example.com/~/file.txt - - 3.21 Protocol xxx not supported or disabled in libcurl - - When passing on a URL to curl to use, it may respond that the particular - protocol is not supported or disabled. The particular way this error message - is phrased is because curl doesn't make a distinction internally of whether - a particular protocol is not supported (ie never got any code added that - knows how to speak that protocol) or if it was explicitly disabled. curl can - be built to only support a given set of protocols, and the rest would then - be disabled or not supported. - - Note that this error will also occur if you pass a wrongly spelled protocol - part as in "htpt://example.com" or as in the less evident case if you prefix - the protocol part with a space as in " http://example.com/". - - -4. Running Problems - - 4.1 Problems connecting to SSL servers. - - It took a very long time before we could sort out why curl had problems to - connect to certain SSL servers when using SSLeay or OpenSSL v0.9+. The - error sometimes showed up similar to: - - 16570:error:1407D071:SSL routines:SSL2_READ:bad mac decode:s2_pkt.c:233: - - It turned out to be because many older SSL servers don't deal with SSLv3 - requests properly. To correct this problem, tell curl to select SSLv2 from - the command line (-2/--sslv2). - - There have also been examples where the remote server didn't like the SSLv2 - request and instead you had to force curl to use SSLv3 with -3/--sslv3. - - 4.2 Why do I get problems when I use & or % in the URL? - - In general unix shells, the & symbol is treated specially and when used, it - runs the specified command in the background. To safely send the & as a part - of a URL, you should quote the entire URL by using single (') or double (") - quotes around it. Similar problems can also occur on some shells with other - characters, including ?*!$~(){}<>\|;`. When in doubt, quote the URL. - - An example that would invoke a remote CGI that uses &-symbols could be: - - curl 'http://www.altavista.com/cgi-bin/query?text=yes&q=curl' - - In Windows, the standard DOS shell treats the %-symbol specially and you - need to use TWO %-symbols for each single one you want to use in the URL. - - Also note that if you want the literal %-symbol to be part of the data you - pass in a POST using -d/--data you must encode it as '%25' (which then also - needs the %-symbol doubled on Windows machines). - - 4.3 How can I use {, }, [ or ] to specify multiple URLs? - - Because those letters have a special meaning to the shell, and to be used in - a URL specified to curl you must quote them. - - An example that downloads two URLs (sequentially) would do: - - curl '{curl,www}.haxx.se' - - To be able to use those letters as actual parts of the URL (without using - them for the curl URL "globbing" system), use the -g/--globoff option: - - curl -g 'www.site.com/weirdname[].html' - - 4.4 Why do I get downloaded data even though the web page doesn't exist? - - Curl asks remote servers for the page you specify. If the page doesn't exist - at the server, the HTTP protocol defines how the server should respond and - that means that headers and a "page" will be returned. That's simply how - HTTP works. - - By using the --fail option you can tell curl explicitly to not get any data - if the HTTP return code doesn't say success. - - 4.5 Why do I get return code XXX from a HTTP server? - - RFC2616 clearly explains the return codes. This is a short transcript. Go - read the RFC for exact details: - - 4.5.1 "400 Bad Request" - - The request could not be understood by the server due to malformed - syntax. The client SHOULD NOT repeat the request without modifications. - - 4.5.2 "401 Unauthorized" - - The request requires user authentication. - - 4.5.3 "403 Forbidden" - - The server understood the request, but is refusing to fulfil it. - Authorization will not help and the request SHOULD NOT be repeated. - - 4.5.4 "404 Not Found" - - The server has not found anything matching the Request-URI. No indication - is given of whether the condition is temporary or permanent. - - 4.5.5 "405 Method Not Allowed" - - The method specified in the Request-Line is not allowed for the resource - identified by the Request-URI. The response MUST include an Allow header - containing a list of valid methods for the requested resource. - - 4.5.6 "301 Moved Permanently" - - If you get this return code and an HTML output similar to this: - -

Moved Permanently

The document has moved
here. - - it might be because you request a directory URL but without the trailing - slash. Try the same operation again _with_ the trailing URL, or use the - -L/--location option to follow the redirection. - - 4.6 Can you tell me what error code 142 means? - - All curl error codes are described at the end of the man page, in the - section called "EXIT CODES". - - Error codes that are larger than the highest documented error code means - that curl has exited due to a crash. This is a serious error, and we - appreciate a detailed bug report from you that describes how we could go - ahead and repeat this! - - 4.7 How do I keep user names and passwords secret in Curl command lines? - - This problem has two sides: - - The first part is to avoid having clear-text passwords in the command line - so that they don't appear in 'ps' outputs and similar. That is easily - avoided by using the "-K" option to tell curl to read parameters from a file - or stdin to which you can pass the secret info. curl itself will also - attempt to "hide" the given password by blanking out the option - this - doesn't work on all platforms. - - To keep the passwords in your account secret from the rest of the world is - not a task that curl addresses. You could of course encrypt them somehow to - at least hide them from being read by human eyes, but that is not what - anyone would call security. - - Also note that regular HTTP (using Basic authentication) and FTP passwords - are sent in clear across the network. All it takes for anyone to fetch them - is to listen on the network. Eavesdropping is very easy. Use more secure - authentication methods (like Digest, Negotiate or even NTLM) or consider the - SSL-based alternatives HTTPS and FTPS. - - 4.8 I found a bug! - - It is not a bug if the behavior is documented. Read the docs first. - Especially check out the KNOWN_BUGS file, it may be a documented bug! - - If it is a problem with a binary you've downloaded or a package for your - particular platform, try contacting the person who built the package/archive - you have. - - If there is a bug, read the BUGS document first. Then report it as described - in there. - - 4.9 Curl can't authenticate to the server that requires NTLM? - - NTLM support requires OpenSSL, GnuTLS, NSS or Microsoft Windows libraries at - build-time to provide this functionality. - - NTLM is a Microsoft proprietary protocol. Proprietary formats are evil. You - should not use such ones. - - 4.10 My HTTP request using HEAD, PUT or DELETE doesn't work! - - Many web servers allow or demand that the administrator configures the - server properly for these requests to work on the web server. - - Some servers seem to support HEAD only on certain kinds of URLs. - - To fully grasp this, try the documentation for the particular server - software you're trying to interact with. This is not anything curl can do - anything about. - - 4.11 Why does my HTTP range requests return the full document? - - Because the range may not be supported by the server, or the server may - choose to ignore it and return the full document anyway. - - 4.12 Why do I get "certificate verify failed" ? - - You invoke curl 7.10 or later to communicate on a https:// URL and get an - error back looking something similar to this: - - curl: (35) SSL: error:14090086:SSL routines: - SSL3_GET_SERVER_CERTIFICATE:certificate verify failed - - Then it means that curl couldn't verify that the server's certificate was - good. Curl verifies the certificate using the CA cert bundle that comes with - the curl installation. - - To disable the verification (which makes it act like curl did before 7.10), - use -k. This does however enable man-in-the-middle attacks. - - If you get this failure but are having a CA cert bundle installed and used, - the server's certificate is not signed by one of the CA's in the bundle. It - might for example be self-signed. You then correct this problem by obtaining - a valid CA cert for the server. Or again, decrease the security by disabling - this check. - - Details are also in the SSLCERTS file in the release archives, found online - here: http://curl.haxx.se/docs/sslcerts.html - - 4.13 Why is curl -R on Windows one hour off? - - During daylight savings time, when -R is used, curl will set a time that - appears one hour off. This happens due to a flaw in how Windows stores and - uses file modification times and it is not easily worked around. For details - on this problem, read this: http://www.codeproject.com/datetime/dstbugs.asp - - 4.14 Redirects work in browser but not with curl! - - curl supports HTTP redirects fine (see item 3.8). Browsers generally support - at least two other ways to perform directs that curl does not: - - - Meta tags. You can write a HTML tag that will cause the browser to - redirect to another given URL after a certain time. - - - Javascript. You can write a Javascript program embedded in a HTML page - that redirects the browser to another given URL. - - There is no way to make curl follow these redirects. You must either - manually figure out what the page is set to do, or you write a script that - parses the results and fetches the new URL. - - 4.15 FTPS doesn't work - - curl supports FTPS (sometimes known as FTP-SSL) both implicit and explicit - mode. - - When a URL is used that starts with FTPS://, curl assumes implicit SSL on - the control connection and will therefore immediately connect and try to - speak SSL. FTPS:// connections default to port 990. - - To use explicit FTPS, you use a FTP:// URL and the --ftp-ssl option (or one - of its related flavours). This is the most common method, and the one - mandated by RFC4217. This kind of connection then of course uses the - standard FTP port 21 by default. - - 4.16 My HTTP POST or PUT requests are slow! - - libcurl makes all POST and PUT requests (except for POST requests with a - very tiny request body) use the "Expect: 100-continue" header. This header - allows the server to deny the operation early so that libcurl can bail out - already before having to send any data. This is useful in authentication - cases and others. - - However, many servers don't implement the Expect: stuff properly and if the - server doesn't respond (positively) within 1 second libcurl will continue - and send off the data anyway. - - You can disable libcurl's use of the Expect: header the same way you disable - any header, using -H / CURLOPT_HTTPHEADER, or by forcing it to use HTTP 1.0. - - 4.17 Non-functional connect timeouts - - In most Windows setups having a timeout longer than 21 seconds make no - difference, as it will only send 3 TCP SYN packets and no more. The second - packet sent three seconds after the first and the third six seconds after - the second. No more than three packets are sent, no matter how long the - timeout is set. - - See option TcpMaxConnectRetransmissions on this page: - http://support.microsoft.com/?scid=kb%3Ben-us%3B175523&x=6&y=7 - - Also, even on non-Windows systems there may run a firewall or anti-virus - software or similar that accepts the connection but does not actually do - anything else. This will make (lib)curl to consider the connection connected - and thus the connect timeout won't trigger. - - 4.18 file:// URLs containing drive letters (Windows, NetWare) - - When using cURL to try to download a local file, one might use a URL - in this format: - - file://D:/blah.txt - - You'll find that even if D:\blah.txt does exist, cURL returns a 'file - not found' error. - - According to RFC 1738 (http://www.faqs.org/rfcs/rfc1738.html), - file:// URLs must contain a host component, but it is ignored by - most implementations. In the above example, 'D:' is treated as the - host component, and is taken away. Thus, cURL tries to open '/blah.txt'. - If your system is installed to drive C:, that will resolve to 'C:\blah.txt', - and if that doesn't exist you will get the not found error. - - To fix this problem, use file:// URLs with *three* leading slashes: - - file:///D:/blah.txt - - Alternatively, if it makes more sense, specify 'localhost' as the host - component: - - file://localhost/D:/blah.txt - - In either case, cURL should now be looking for the correct file. - - 4.19 Why doesn't cURL return an error when the network cable is unplugged? - - Unplugging the cable is not an error situation. The TCP/IP protocol stack - was designed to be fault tolerant, so even though there may be a physical - break somewhere the connection shouldn't be affected, just possibly - delayed. Eventually, the physical break will be fixed or the data will be - re-routed around the physical problem. - - In such cases, the TCP/IP stack is responsible for detecting when the - network connection is irrevocably lost. Since with some protocols it is - perfectly legal for the client wait indefinitely for data, the stack may - never report a problem, and even when it does, it can take up to 20 minutes - for it to detect an issue. The curl option --keepalive-time enables - keep-alive support in the TCP/IP stack which makes it periodically probe the - connection to make sure it is still available to send data. That should - reliably detect any TCP/IP network failure. - - But even that won't detect the network going down before the TCP/IP - connection is established (e.g. during a DNS lookup) or using protocols that - don't use TCP. To handle those situations, curl offers a number of timeouts - on its own. --speed-limit/--speed-time will abort if the data transfer rate - falls too low, and --connect-timeout and --max-time can be used to put an - overall timeout on the connection phase or the entire transfer. - - -5. libcurl Issues - - 5.1 Is libcurl thread-safe? - - Yes. - - We have written the libcurl code specifically adjusted for multi-threaded - programs. libcurl will use thread-safe functions instead of non-safe ones if - your system has such. - - If you use a OpenSSL-powered libcurl in a multi-threaded environment, you - need to provide one or two locking functions: - - http://www.openssl.org/docs/crypto/threads.html - - If you use a GnuTLS-powered libcurl in a multi-threaded environment, you - need to provide locking function(s) for libgcrypt (which is used by GnuTLS - for the crypto functions). - - http://www.gnu.org/software/gnutls/manual/html_node/Multi_002dthreaded-applications.html - - No special locking is needed with a NSS-powered libcurl. NSS is thread-safe. - - 5.2 How can I receive all data into a large memory chunk? - - [ See also the examples/getinmemory.c source ] - - You are in full control of the callback function that gets called every time - there is data received from the remote server. You can make that callback do - whatever you want. You do not have to write the received data to a file. - - One solution to this problem could be to have a pointer to a struct that you - pass to the callback function. You set the pointer using the - CURLOPT_WRITEDATA option. Then that pointer will be passed to the callback - instead of a FILE * to a file: - - /* imaginary struct */ - struct MemoryStruct { - char *memory; - size_t size; - }; - - /* imaginary callback function */ - size_t - WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data) - { - size_t realsize = size * nmemb; - struct MemoryStruct *mem = (struct MemoryStruct *)data; - - mem->memory = (char *)realloc(mem->memory, mem->size + realsize + 1); - if (mem->memory) { - memcpy(&(mem->memory[mem->size]), ptr, realsize); - mem->size += realsize; - mem->memory[mem->size] = 0; - } - return realsize; - } - - 5.3 How do I fetch multiple files with libcurl? - - libcurl has excellent support for transferring multiple files. You should - just repeatedly set new URLs with curl_easy_setopt() and then transfer it - with curl_easy_perform(). The handle you get from curl_easy_init() is not - only reusable, but you're even encouraged to reuse it if you can, as that - will enable libcurl to use persistent connections. - - 5.4 Does libcurl do Winsock initialization on win32 systems? - - Yes, if told to in the curl_global_init() call. - - 5.5 Does CURLOPT_WRITEDATA and CURLOPT_READDATA work on win32 ? - - Yes, but you cannot open a FILE * and pass the pointer to a DLL and have - that DLL use the FILE * (as the DLL and the client application cannot access - each others' variable memory areas). If you set CURLOPT_WRITEDATA you must - also use CURLOPT_WRITEFUNCTION as well to set a function that writes the - file, even if that simply writes the data to the specified FILE *. - Similarly, if you use CURLOPT_READDATA you must also specify - CURLOPT_READFUNCTION. - - 5.6 What about Keep-Alive or persistent connections? - - curl and libcurl have excellent support for persistent connections when - transferring several files from the same server. Curl will attempt to reuse - connections for all URLs specified on the same command line/config file, and - libcurl will reuse connections for all transfers that are made using the - same libcurl handle. - - When you use the easy interface, the connection cache is kept within the - easy handle. If you instead use the multi interface, the connection cache - will be kept within the multi handle and will be shared among all the easy - handles that are used within the same multi handle. - - 5.7 Link errors when building libcurl on Windows! - - You need to make sure that your project, and all the libraries (both static - and dynamic) that it links against, are compiled/linked against the same run - time library. - - This is determined by the /MD, /ML, /MT (and their corresponding /M?d) - options to the command line compiler. /MD (linking against MSVCRT dll) seems - to be the most commonly used option. - - When building an application that uses the static libcurl library, you must - add -DCURL_STATICLIB to your CFLAGS. Otherwise the linker will look for - dynamic import symbols. If you're using Visual Studio, you need to instead - add CURL_STATICLIB in the "Preprocessor Definitions" section. - - If you get linker error like "unknown symbol __imp__curl_easy_init ..." you - have linked against the wrong (static) library. If you want to use the - libcurl.dll and import lib, you don't need any extra CFLAGS, but use one of - the import libraries below. These are the libraries produced by the various - lib/Makefile.* files: - - Target: static lib. import lib for libcurl*.dll. - ----------------------------------------------------------- - MingW: libcurl.a libcurldll.a - MSVC (release): libcurl.lib libcurl_imp.lib - MSVC (debug): libcurld.lib libcurld_imp.lib - Borland: libcurl.lib libcurl_imp.lib - - 5.8 libcurl.so.X: open failed: No such file or directory - - This is an error message you might get when you try to run a program linked - with a shared version of libcurl and your run-time linker (ld.so) couldn't - find the shared library named libcurl.so.X. (Where X is the number of the - current libcurl ABI, typically 3 or 4). - - You need to make sure that ld.so finds libcurl.so.X. You can do that - multiple ways, and it differs somewhat between different operating systems, - but they are usually: - - * Add an option to the linker command line that specify the hard-coded path - the run-time linker should check for the lib (usually -R) - - * Set an environment variable (LD_LIBRARY_PATH for example) where ld.so - should check for libs - - * Adjust the system's config to check for libs in the directory where you've - put the dir (like Linux's /etc/ld.so.conf) - - 'man ld.so' and 'man ld' will tell you more details - - 5.9 How does libcurl resolve host names? - - libcurl supports a large a number of different name resolve functions. One - of them is picked at build-time and will be used unconditionally. Thus, if - you want to change name resolver function you must rebuild libcurl and tell - it to use a different function. - - - The non-ipv6 resolver that can use one out of four host name resolve calls - (depending on what your system supports): - - A - gethostbyname() - B - gethostbyname_r() with 3 arguments - C - gethostbyname_r() with 5 arguments - D - gethostbyname_r() with 6 arguments - - - The ipv6-resolver that uses getaddrinfo() - - - The c-ares based name resolver that uses the c-ares library for resolves. - Using this offers asynchronous name resolves. - - - The threaded resolver (default option on Windows). It uses: - - A - gethostbyname() on plain ipv4 hosts - B - getaddrinfo() on ipv6-enabled hosts - - Also note that libcurl never resolves or reverse-lookups addresses given as - pure numbers, such as 127.0.0.1 or ::1. - - 5.10 How do I prevent libcurl from writing the response to stdout? - - libcurl provides a default built-in write function that writes received data - to stdout. Set the CURLOPT_WRITEFUNCTION to receive the data, or possibly - set CURLOPT_WRITEDATA to a different FILE * handle. - - 5.11 How do I make libcurl not receive the whole HTTP response? - - You make the write callback (or progress callback) return an error and - libcurl will then abort the transfer. - - 5.12 Can I make libcurl fake or hide my real IP address? - - No. libcurl operates on a higher level than so. Besides, faking IP address - would imply sending IP packages with a made-up source address, and then you - normally get a problem with intercepting the packages sent back as they - would then not be routed to you! - - If you use a proxy to access remote sites, the sites will not see your local - IP address but instead the address of the proxy. - - Also note that on many networks NATs or other IP-munging techniques are used - that makes you see and use a different IP address locally than what the - remote server will see you coming from. - - 5.13 How do I stop an ongoing transfer? - - With the easy interface you make sure to return the correct error code from - one of the callbacks, but none of them are instant. There is no function you - can call from another thread or similar that will stop it immediately. - Instead, you need to make sure that one of the callbacks you use returns an - appropriate value that will stop the transfer. Suitable callbacks that you - can do this with include the progress callback, the read callback and the - write callback. - - If you're using the multi interface, you can also stop a transfer by - removing the particular easy handle from the multi stack at any moment you - think the transfer is done. - - 5.14 Using C++ non-static functions for callbacks? - - libcurl is a C library, it doesn't know anything about C++ member functions. - - You can overcome this "limitation" with a relative ease using a static - member function that is passed a pointer to the class: - - // f is the pointer to your object. - static YourClass::func(void *buffer, size_t sz, size_t n, void *f) - { - // Call non-static member function. - static_cast(f)->nonStaticFunction(); - } - - // This is how you pass pointer to the static function: - curl_easy_setopt(hcurl, CURLOPT_WRITEFUNCTION, YourClass:func); - curl_easy_setopt(hcurl, CURLOPT_WRITEDATA, this); - - 5.15 How do I get an FTP directory listing? - - If you end the FTP URL you request with a slash, libcurl will provide you - with a directory listing of that given directory. You can also set - CURLOPT_CUSTOMREQUEST to alter what exact listing command libcurl would use - to list the files. - - The follow-up question that tend to follow the previous one, is how a - program is supposed to parse the directory listing. How does it know what's - a file and what's a dir and what's a symlink etc. The harsh reality is that - FTP provides no such fine and easy-to-parse output. The output format FTP - servers respond to LIST commands are entirely at the server's own liking and - the NLST output doesn't reveal any types and in many cases don't even - include all the directory entries. Also, both LIST and NLST tend to hide - unix-style hidden files (those that start with a dot) by default so you need - to do "LIST -a" or similar to see them. - - The application thus needs to parse the LIST output. One such existing - list parser is available at http://cr.yp.to/ftpparse.html Versions of - libcurl since 7.21.0 also provide the ability to specify a wildcard to - download multiple files from one FTP directory. - - 5.16 I want a different time-out! - - Time and time again users realize that CURLOPT_TIMEOUT and - CURLOPT_CONNECTIMEOUT are not sufficiently advanced or flexible to cover all - the various use cases and scenarios applications end up with. - - libcurl offers many more ways to time-out operations. A common alternative - is to use the CURLOPT_LOW_SPEED_LIMIT and CURLOPT_LOW_SPEED_TIME options to - specify the lowest possible speed to accept before to consider the transfer - timed out. - - The most flexible way is by writing your own time-out logic and using - CURLOPT_PROGRESSFUNCTION (perhaps in combination with other callbacks) and - use that to figure out exactly when the right condition is met when the - transfer should get stopped. - - -6. License Issues - - Curl and libcurl are released under a MIT/X derivate license. The license is - very liberal and should not impose a problem for your project. This section - is just a brief summary for the cases we get the most questions. (Parts of - this section was much enhanced by Bjorn Reese.) - - We are not lawyers and this is not legal advice. You should probably consult - one if you want true and accurate legal insights without our prejudice. Note - especially that this section concerns the libcurl license only; compiling in - features of libcurl that depend on other libraries (e.g. OpenSSL) may affect - the licensing obligations of your application. - - 6.1 I have a GPL program, can I use the libcurl library? - - Yes! - - Since libcurl may be distributed under the MIT/X derivate license, it can be - used together with GPL in any software. - - 6.2 I have a closed-source program, can I use the libcurl library? - - Yes! - - libcurl does not put any restrictions on the program that uses the library. - - 6.3 I have a BSD licensed program, can I use the libcurl library? - - Yes! - - libcurl does not put any restrictions on the program that uses the library. - - 6.4 I have a program that uses LGPL libraries, can I use libcurl? - - Yes! - - The LGPL license doesn't clash with other licenses. - - 6.5 Can I modify curl/libcurl for my program and keep the changes secret? - - Yes! - - The MIT/X derivate license practically allows you to do almost anything with - the sources, on the condition that the copyright texts in the sources are - left intact. - - 6.6 Can you please change the curl/libcurl license to XXXX? - - No. - - We have carefully picked this license after years of development and - discussions and a large amount of people have contributed with source code - knowing that this is the license we use. This license puts the restrictions - we want on curl/libcurl and it does not spread to other programs or - libraries that use it. It should be possible for everyone to use libcurl or - curl in their projects, no matter what license they already have in use. - - 6.7 What are my obligations when using libcurl in my commercial apps? - - Next to none. All you need to adhere to is the MIT-style license (stated in - the COPYING file) which basically says you have to include the copyright - notice in "all copies" and that you may not use the copyright holder's name - when promoting your software. - - You do not have to release any of your source code. - - You do not have to reveal or make public any changes to the libcurl source - code. - - You do not have to broadcast to the world that you are using libcurl within - your app. - - All we ask is that you disclose "the copyright notice and this permission - notice" somewhere. Most probably like in the documentation or in the section - where other third party dependencies already are mentioned and acknowledged. - - As can be seen here: http://curl.haxx.se/docs/companies.html and elsewhere, - more and more companies are discovering the power of libcurl and take - advantage of it even in commercial environments. - - -7. PHP/CURL Issues - - 7.1 What is PHP/CURL? - - The module for PHP that makes it possible for PHP programs to access curl- - functions from within PHP. - - In the cURL project we call this module PHP/CURL to differentiate it from - curl the command line tool and libcurl the library. The PHP team however - does not refer to it like this (for unknown reasons). They call it plain - CURL (often using all caps) or sometimes ext/curl, but both cause much - confusion to users which in turn gives us a higher question load. - - 7.2 Who wrote PHP/CURL? - - PHP/CURL is a module that comes with the regular PHP package. It depends and - uses libcurl, so you need to have libcurl installed properly first before - PHP/CURL can be used. PHP/CURL was initially written by Sterling Hughes. - - 7.3 Can I perform multiple requests using the same handle? - - Yes - at least in PHP version 4.3.8 and later (this has been known to not - work in earlier versions, but the exact version when it started to work is - unknown to me). - - After a transfer, you just set new options in the handle and make another - transfer. This will make libcurl to re-use the same connection if it can. diff --git a/msvc-deps/curl/docs/FEATURES b/msvc-deps/curl/docs/FEATURES deleted file mode 100644 index 93022224..00000000 --- a/msvc-deps/curl/docs/FEATURES +++ /dev/null @@ -1,136 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - -FEATURES - -curl tool - - config file support - - multiple URLs in a single command line - - range "globbing" support: [0-13], {one,two,three} - - multiple file upload on a single command line - - custom maximum transfer rate - - redirectable stderr - -libcurl supports - - full URL syntax with no length limit - - custom maximum download time - - custom least download speed acceptable - - custom output result after completion - - guesses protocol from host name unless specified - - uses .netrc - - progress bar/time specs while downloading - - "standard" proxy environment variables support - - compiles on win32 (reported builds on 40+ operating systems) - - selectable network interface for outgoing traffic - - IPv6 support on unix and Windows - - persistent connections - - socks5 support - - supports user name + password in proxy environment variables - - operations through proxy "tunnel" (using CONNECT) - - supports large files (>2GB and >4GB) both upload/download - - replaceable memory functions (malloc, free, realloc, etc) - - asynchronous name resolving (*6) - - both a push and a pull style interface - -HTTP - - HTTP/1.1 compliant (optionally uses 1.0) - - GET - - PUT - - HEAD - - POST - - Pipelining - - multipart formpost (RFC1867-style) - - authentication: Basic, Digest, NTLM(*9), GSS-Negotiate/Negotiate(*3) and - SPNEGO (*4) to server and proxy - - resume (both GET and PUT) - - follow redirects - - maximum amount of redirects to follow - - custom HTTP request - - cookie get/send fully parsed - - reads/writes the netscape cookie file format - - custom headers (replace/remove internally generated headers) - - custom user-agent string - - custom referer string - - range - - proxy authentication - - time conditions - - via http-proxy - - retrieve file modification date - - Content-Encoding support for deflate and gzip - - "Transfer-Encoding: chunked" support for "uploads" - -HTTPS (*1) - - (all the HTTP features) - - using client certificates - - verify server certificate - - via http-proxy - - select desired encryption - - force usage of a specific SSL version (SSLv2(*7), SSLv3 or TLSv1) - -FTP - - download - - authentication - - kerberos4 (*5), kerberos5 (*3) - - active/passive using PORT, EPRT, PASV or EPSV - - single file size information (compare to HTTP HEAD) - - 'type=' URL support - - dir listing - - dir listing names-only - - upload - - upload append - - upload via http-proxy as HTTP PUT - - download resume - - upload resume - - custom ftp commands (before and/or after the transfer) - - simple "range" support - - via http-proxy - - all operations can be tunneled through a http-proxy - - customizable to retrieve file modification date - - no dir depth limit - -FTPS (*1) - - implicit ftps:// support that use SSL on both connections - - explicit "AUTH TSL" and "AUTH SSL" usage to "upgrade" plain ftp:// - connection to use SSL for both or one of the connections - -SCP (*8) - - both password and public key auth - -SFTP (*8) - - both password and public key auth - - with custom commands sent before/after the transfer - -TFTP - - download / upload - -TELNET - - connection negotiation - - custom telnet options - - stdin/stdout I/O - -LDAP (*2) - - full LDAP URL support - -DICT - - extended DICT URL support - -FILE - - URL support - - "uploads" - - resume - -FOOTNOTES -========= - - *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS, PolarSSL or schannel - *2 = requires OpenLDAP - *3 = requires a GSSAPI-compliant library, such as Heimdal or similar. - *4 = requires FBopenssl - *5 = requires a krb4 library, such as the MIT one or similar. - *6 = requires c-ares - *7 = requires OpenSSL or NSS, as GnuTLS only supports SSLv3 and TLSv1 - *8 = requires libssh2 - *9 = requires OpenSSL, GnuTLS, NSS or yassl diff --git a/msvc-deps/curl/docs/HISTORY b/msvc-deps/curl/docs/HISTORY deleted file mode 100644 index e04fb53d..00000000 --- a/msvc-deps/curl/docs/HISTORY +++ /dev/null @@ -1,244 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - - How cURL Became Like This - - -In the second half of 1997, Daniel Stenberg came up with the idea to make -currency-exchange calculations available to Internet Relay Chat (IRC) -users. All the necessary data are published on the Web; he just needed to -automate their retrieval. - -Daniel simply adopted an existing command-line open-source tool, httpget, that -Brazilian Rafael Sagula had written. After a few minor adjustments, it did -just what he needed. - -Soon, he found currencies on a GOPHER site, so support for that had to go in, -and not before long FTP download support was added as well. The name of the -project was changed to urlget to better fit what it actually did now, since -the http-only days were already passed. - -The project slowly grew bigger. When upload capabilities were added and the -name once again was misleading, a second name change was made and on March 20, -1998 curl 4 was released. (The version numbering from the previous names was -kept.) - -(Unrelated to this project a company called Curl Corporation registered a US -trademark on the name "CURL" on May 18 1998. That company had then already -registered the curl.com domain back in November of the previous year. All this -was revealed to us much later.) - -SSL support was added, powered by the SSLeay library. - -August 1998, first announcement of curl on freshmeat.net. - -October 1998, with the curl 4.9 release and the introduction of cookie -support, curl was no longer released under the GPL license. Now we're at 4000 -lines of code, we switched over to the MPL license to restrict the effects of -"copyleft". - -November 1998, configure script and reported successful compiles on several -major operating systems. The never-quite-understood -F option was added and -curl could now simulate quite a lot of a browser. TELNET support was added. - -Curl 5 was released in December 1998 and introduced the first ever curl man -page. People started making Linux RPM packages out of it. - -January 1999, DICT support added. - -OpenSSL took over where SSLeay was abandoned. - -May 1999, first Debian package. - -August 1999, LDAP:// and FILE:// support added. The curl web site gets 1300 -visits weekly. - -Released curl 6.0 in September. 15000 lines of code. - -December 28 1999, added the project on Sourceforge and started using its -services for managing the project. - -Spring 2000, major internal overhaul to provide a suitable library interface. -The first non-beta release was named 7.1 and arrived in August. This offered -the easy interface and turned out to be the beginning of actually getting -other software and programs to get based on and powered by libcurl. Almost -20000 lines of code. - -August 2000, the curl web site gets 4000 visits weekly. - -The PHP guys adopted libcurl already the same month, when the first ever third -party libcurl binding showed up. CURL has been a supported module in PHP since -the release of PHP 4.0.2. This would soon get followers. More than 16 -different bindings exist at the time of this writing. - -September 2000, kerberos4 support was added. - -In November 2000 started the work on a test suite for curl. It was later -re-written from scratch again. The libcurl major SONAME number was set to 1. - -January 2001, Daniel released curl 7.5.2 under a new license again: MIT (or -MPL). The MIT license is extremely liberal and can be used combined with GPL -in other projects. This would finally put an end to the "complaints" from -people involved in GPLed projects that previously were prohibited from using -libcurl while it was released under MPL only. (Due to the fact that MPL is -deemed "GPL incompatible".) - -curl supports HTTP 1.1 starting with the release of 7.7, March 22 2001. This -also introduced libcurl's ability to do persistent connections. 24000 lines of -code. The libcurl major SONAME number was bumped to 2 due to this overhaul. - -The first experimental ftps:// support was added in March 2001. - -August 2001. curl is bundled in Mac OS X, 10.1. It was already becoming more -and more of a standard utility of Linux distributions and a regular in the BSD -ports collections. The curl web site gets 8000 visits weekly. Curl Corporation -contacted Daniel to discuss "the name issue". After Daniel's reply, they have -never since got in touch again. - -September 2001, libcurl 7.9 introduces cookie jar and curl_formadd(). During -the forthcoming 7.9.x releases, we introduced the multi interface slowly and -without much whistles. - -June 2002, the curl web site gets 13000 visits weekly. curl and libcurl is -35000 lines of code. Reported successful compiles on more than 40 combinations -of CPUs and operating systems. - -To estimate number of users of the curl tool or libcurl library is next to -impossible. Around 5000 downloaded packages each week from the main site gives -a hint, but the packages are mirrored extensively, bundled with numerous OS -distributions and otherwise retrieved as part of other software. - -September 2002, with the release of curl 7.10 it is released under the MIT -license only. - -January 2003. Started working on the distributed curl tests. The autobuilds. - -February 2003, the curl site averages at 20000 visits weekly. At any given -moment, there's an average of 3 people browsing the curl.haxx.se site. - -Multiple new authentication schemes are supported: Digest (May), NTLM (June) -and Negotiate (June). - -November 2003: curl 7.10.8 is released. 45000 lines of code. ~55000 unique -visitors to the curl.haxx.se site. Five official web mirrors. - -December 2003, full-fledged SSL for FTP is supported. - -January 2004: curl 7.11.0 introduced large file support. - -June 2004: - - curl 7.12.0 introduced IDN support. 10 official web mirrors. - - This release bumped the major SONAME to 3 due to the removal of the - curl_formparse() function - -August 2004: - Curl and libcurl 7.12.1 - - Public curl release number: 82 - Releases counted from the very beginning: 109 - Available command line options: 96 - Available curl_easy_setopt() options: 120 - Number of public functions in libcurl: 36 - Amount of public web site mirrors: 12 - Number of known libcurl bindings: 26 - -April 2005: - - GnuTLS can now optionally be used for the secure layer when curl is built. - -September 2005: - - TFTP support was added. - - More than 100,000 unique visitors of the curl web site. 25 mirrors. - -December 2005: - - security vulnerability: libcurl URL Buffer Overflow - -January 2006: - - We dropped support for Gopher. We found bugs in the implementation that - turned out having been introduced years ago, so with the conclusion that - nobody had found out in all this time we removed it instead of fixing it. - -March 2006: - - security vulnerability: libcurl TFTP Packet Buffer Overflow - -April 2006: - - Added the multi_socket() API - -September 2006: - - The major SONAME number for libcurl was bumped to 4 due to the removal of - ftp third party transfer support. - -November 2006: - - Added SCP and SFTP support - -February 2007: - - Added support for the Mozilla NSS library to do the SSL/TLS stuff - -July 2007: - - security vulnerability: libcurl GnuTLS insufficient cert verification - -November 2008: - - Command line options: 128 - curl_easy_setopt() options: 158 - Public functions in libcurl: 58 - Known libcurl bindings: 37 - Contributors: 683 - - 145,000 unique visitors. >100 GB downloaded. - -March 2009: - - security vulnerability: libcurl Arbitrary File Access - -August 2009: - - security vulnerability: libcurl embedded zero in cert name - -December 2009: - - Added support for IMAP, POP3 and SMTP - -January 2010: - - Added support for RTSP - -February 2010: - - security vulnerability: libcurl data callback excessive length - -March 2010: - - The project switched over to use git instead of CVS for source code control - -May 2010: - - Added support for RTMP - - Added support for PolarSSL to do the SSL/TLS stuff - -August 2010: - - Public curl releases: 117 - Command line options: 138 - curl_easy_setopt() options: 180 - Public functions in libcurl: 58 - Known libcurl bindings: 39 - Contributors: 808 - - Gopher support added (re-added actually) diff --git a/msvc-deps/curl/docs/HTTP-COOKIES b/msvc-deps/curl/docs/HTTP-COOKIES deleted file mode 100644 index 818e161e..00000000 --- a/msvc-deps/curl/docs/HTTP-COOKIES +++ /dev/null @@ -1,123 +0,0 @@ -Updated: July 3, 2012 (http://curl.haxx.se/docs/http-cookies.html) - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - - -HTTP Cookies - - 1. HTTP Cookies - 1.1 Cookie overview - 1.2 Cookies saved to disk - 1.3 Cookies with curl the command line tool - 1.4 Cookies with libcurl - 1.5 Cookies with javascript - -============================================================================== - -1. HTTP Cookies - - 1.1 Cookie overview - - HTTP cookies are pieces of 'name=contents' snippets that a server tells the - client to hold and then the client sends back those the server on subsequent - requests to the same domains/paths for which the cookies were set. - - Cookies are either "session cookies" which typically are forgotten when the - session is over which is often translated to equal when browser quits, or - the cookies aren't session cookies they have expiration dates after which - the client will throw them away. - - Cookies are set to the client with the Set-Cookie: header and are sent to - servers with the Cookie: header. - - For a very long time, the only spec explaining how to use cookies was the - original Netscape spec from 1994: http://curl.haxx.se/rfc/cookie_spec.html - - In 2011, RFC6265 (http://www.ietf.org/rfc/rfc6265.txt) was finally published - and details how cookies work within HTTP. - - 1.2 Cookies saved to disk - - Netscape once created a file format for storing cookies on disk so that they - would survive browser restarts. curl adopted that file format to allow - sharing the cookies with browsers, only to see browsers move away from that - format. Modern browsers no longer use it, while curl still does. - - The netscape cookie file format stores one cookie per physical line in the - file with a bunch of associated meta data, each field separated with - TAB. That file is called the cookiejar in curl terminology. - - When libcurl saves a cookiejar, it creates a file header of its own in which - there is a URL mention that will link to the web version of this document. - - 1.3 Cookies with curl the command line tool - - curl has a full cookie "engine" built in. If you just activate it, you can - have curl receive and send cookies exactly as mandated in the specs. - - Command line options: - - -b, --cookie - - tell curl a file to read cookies from and start the cookie engine, or if - it isn't a file it will pass on the given string. -b name=var works and so - does -b cookiefile. - - -j, --junk-session-cookies - - when used in combination with -b, it will skip all "session cookies" on - load so as to appear to start a new cookie session. - - -c, --cookie-jar - - tell curl to start the cookie engine and write cookies to the given file - after the request(s) - - 1.4 Cookies with libcurl - - libcurl offers several ways to enable and interface the cookie engine. These - options are the ones provided by the native API. libcurl bindings may offer - access to them using other means. - - CURLOPT_COOKIE - - Is used when you want to specify the exact contents of a cookie header to - send to the server. - - CURLOPT_COOKIEFILE - - Tell libcurl to activate the cookie engine, and to read the initial set of - cookies from the given file. Read-only. - - CURLOPT_COOKIEJAR - - Tell libcurl to activate the cookie engine, and when the easy handle is - closed save all known cookies to the given cookiejar file. Write-only. - - CURLOPT_COOKIELIST - - Provide detailed information about a single cookie to add to the internal - storage of cookies. Pass in the cookie as a HTTP header with all the - details set, or pass in a line from a netscape cookie file. This option - can also be used to flush the cookies etc. - - CURLINFO_COOKIELIST - - Extract cookie information from the internal cookie storage as a linked - list. - - 1.5 Cookies with javascript - - These days a lot of the web is built up by javascript. The webbrowser loads - complete programs that render the page you see. These javascript programs - can also set and access cookies. - - Since curl and libcurl are plain HTTP clients without any knowledge of or - capability to handle javascript, such cookies will not be detected or used. - - Often, if you want to mimic what a browser does on such web sites, you can - record web browser HTTP traffic when using such a site and then repeat the - cookie operations using curl or libcurl. diff --git a/msvc-deps/curl/docs/INSTALL b/msvc-deps/curl/docs/INSTALL deleted file mode 100644 index eac3cd55..00000000 --- a/msvc-deps/curl/docs/INSTALL +++ /dev/null @@ -1,1100 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - - How To Compile - -Installing Binary Packages -========================== - - Lots of people download binary distributions of curl and libcurl. This - document does not describe how to install curl or libcurl using such a - binary package. This document describes how to compile, build and install - curl and libcurl from source code. - -Building from git -================= - - If you get your code off a git repository, see the GIT-INFO file in the - root directory for specific instructions on how to proceed. - -UNIX -==== - A normal unix installation is made in three or four steps (after you've - unpacked the source archive): - - ./configure - make - make test (optional) - make install - - You probably need to be root when doing the last command. - - If you have checked out the sources from the git repository, read the - GIT-INFO on how to proceed. - - Get a full listing of all available configure options by invoking it like: - - ./configure --help - - If you want to install curl in a different file hierarchy than /usr/local, - you need to specify that already when running configure: - - ./configure --prefix=/path/to/curl/tree - - If you happen to have write permission in that directory, you can do 'make - install' without being root. An example of this would be to make a local - install in your own home directory: - - ./configure --prefix=$HOME - make - make install - - The configure script always tries to find a working SSL library unless - explicitly told not to. If you have OpenSSL installed in the default search - path for your compiler/linker, you don't need to do anything special. If - you have OpenSSL installed in /usr/local/ssl, you can run configure like: - - ./configure --with-ssl - - If you have OpenSSL installed somewhere else (for example, /opt/OpenSSL) - and you have pkg-config installed, set the pkg-config path first, like this: - - env PKG_CONFIG_PATH=/opt/OpenSSL/lib/pkgconfig ./configure --with-ssl - - Without pkg-config installed, use this: - - ./configure --with-ssl=/opt/OpenSSL - - If you insist on forcing a build without SSL support, even though you may - have OpenSSL installed in your system, you can run configure like this: - - ./configure --without-ssl - - If you have OpenSSL installed, but with the libraries in one place and the - header files somewhere else, you have to set the LDFLAGS and CPPFLAGS - environment variables prior to running configure. Something like this - should work: - - (with the Bourne shell and its clones): - - CPPFLAGS="-I/path/to/ssl/include" LDFLAGS="-L/path/to/ssl/lib" \ - ./configure - - (with csh, tcsh and their clones): - - env CPPFLAGS="-I/path/to/ssl/include" LDFLAGS="-L/path/to/ssl/lib" \ - ./configure - - If you have shared SSL libs installed in a directory where your run-time - linker doesn't find them (which usually causes configure failures), you can - provide the -R option to ld on some operating systems to set a hard-coded - path to the run-time linker: - - env LDFLAGS=-R/usr/local/ssl/lib ./configure --with-ssl - - MORE OPTIONS - ------------ - - To force configure to use the standard cc compiler if both cc and gcc are - present, run configure like - - CC=cc ./configure - or - env CC=cc ./configure - - To force a static library compile, disable the shared library creation - by running configure like: - - ./configure --disable-shared - - To tell the configure script to skip searching for thread-safe functions, - add an option like: - - ./configure --disable-thread - - To build curl with kerberos4 support enabled, curl requires the krb4 libs - and headers installed. You can then use a set of options to tell - configure where those are: - - --with-krb4-includes[=DIR] Specify location of kerberos4 headers - --with-krb4-libs[=DIR] Specify location of kerberos4 libs - --with-krb4[=DIR] where to look for Kerberos4 - - In most cases, /usr/athena is the install prefix and then it works with - - ./configure --with-krb4=/usr/athena - - If you're a curl developer and use gcc, you might want to enable more - debug options with the --enable-debug option. - - curl can be built to use a whole range of libraries to provide various - useful services, and configure will try to auto-detect a decent - default. But if you want to alter it, you can select how to deal with - each individual library. - - To build with GnuTLS support instead of OpenSSL for SSL/TLS, note that - you need to use both --without-ssl and --with-gnutls. - - To build with yassl support instead of OpenSSL or GnuTLS, you must build - yassl with its OpenSSL emulation enabled and point to that directory root - with configure --with-ssl. - - To build with NSS support instead of OpenSSL for SSL/TLS, note that - you need to use both --without-ssl and --with-nss. - - To build with PolarSSL support instead of OpenSSL for SSL/TLS, note that - you need to use both --without-ssl and --with-polarssl. - - To build with axTLS support instead of OpenSSL for TLS, note that you - need to use both --without-ssl and --with-axtls. - - To get GSSAPI support, build with --with-gssapi and have the MIT or - Heimdal Kerberos 5 packages installed. - - To get support for SCP and SFTP, build with --with-libssh2 and have - libssh2 0.16 or later installed. - - To get Metalink support, build with --with-libmetalink and have the - libmetalink packages installed. - - SPECIAL CASES - ------------- - Some versions of uClibc require configuring with CPPFLAGS=-D_GNU_SOURCE=1 - to get correct large file support. - - The Open Watcom C compiler on Linux requires configuring with the variables: - - ./configure CC=owcc AR="$WATCOM/binl/wlib" AR_FLAGS=-q \ - RANLIB=/bin/true STRIP="$WATCOM/binl/wstrip" CFLAGS=-Wextra - - -Win32 -===== - - Building Windows DLLs and C run-time (CRT) linkage issues - --------------------------------------------------------- - - As a general rule, building a DLL with static CRT linkage is highly - discouraged, and intermixing CRTs in the same app is something to - avoid at any cost. - - Reading and comprehension of Microsoft Knowledge Base articles - KB94248 and KB140584 is a must for any Windows developer. Especially - important is full understanding if you are not going to follow the - advice given above. - - KB94248 - How To Use the C Run-Time - http://support.microsoft.com/kb/94248/en-us - - KB140584 - How to link with the correct C Run-Time (CRT) library - http://support.microsoft.com/kb/140584/en-us - - KB190799 - Potential Errors Passing CRT Objects Across DLL Boundaries - http://msdn.microsoft.com/en-us/library/ms235460 - - If your app is misbehaving in some strange way, or it is suffering - from memory corruption, before asking for further help, please try - first to rebuild every single library your app uses as well as your - app using the debug multithreaded dynamic C runtime. - - If you get linkage errors read section 5.7 of the FAQ document. - - - MingW32 - ------- - - Make sure that MinGW32's bin dir is in the search path, for example: - - set PATH=c:\mingw32\bin;%PATH% - - then run 'mingw32-make mingw32' in the root dir. There are other - make targets available to build libcurl with more features, use: - 'mingw32-make mingw32-zlib' to build with Zlib support; - 'mingw32-make mingw32-ssl-zlib' to build with SSL and Zlib enabled; - 'mingw32-make mingw32-ssh2-ssl-zlib' to build with SSH2, SSL, Zlib; - 'mingw32-make mingw32-ssh2-ssl-sspi-zlib' to build with SSH2, SSL, Zlib - and SSPI support. - - If you have any problems linking libraries or finding header files, be sure - to verify that the provided "Makefile.m32" files use the proper paths, and - adjust as necessary. It is also possible to override these paths with - environment variables, for example: - - set ZLIB_PATH=c:\zlib-1.2.7 - set OPENSSL_PATH=c:\openssl-0.9.8x - set LIBSSH2_PATH=c:\libssh2-1.4.2 - - ATTENTION: if you want to build with libssh2 support you have to use latest - version 0.17 - previous versions will NOT work with 7.17.0 and later! - Use 'mingw32-make mingw32-ssh2-ssl-zlib' to build with SSH2 and SSL enabled. - - It is now also possible to build with other LDAP SDKs than MS LDAP; - currently it is possible to build with native Win32 OpenLDAP, or with the - Novell CLDAP SDK. If you want to use these you need to set these vars: - - set LDAP_SDK=c:\openldap - set USE_LDAP_OPENLDAP=1 - - or for using the Novell SDK: - - set USE_LDAP_NOVELL=1 - - If you want to enable LDAPS support then set LDAPS=1. - - - optional MingW32-built OpenLDAP SDK available from: - http://www.gknw.net/mirror/openldap/ - - optional recent Novell CLDAP SDK available from: - http://developer.novell.com/ndk/cldap.htm - - - Cygwin - ------ - - Almost identical to the unix installation. Run the configure script in the - curl root with 'sh configure'. Make sure you have the sh executable in - /bin/ or you'll see the configure fail toward the end. - - Run 'make' - - Dev-Cpp - ------- - - See the separate INSTALL.devcpp file for details. - - MSVC 6 caveats - -------------- - - If you use MSVC 6 it is required that you use the February 2003 edition PSDK: - http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm - - Building any software with MSVC 6 without having PSDK installed is just - asking for trouble down the road once you have released it, you might notice - the problems in the first corner or ten miles ahead, depending mostly on your - choice of static vs dynamic runtime and third party libraries. Anyone using - software built in such way will at some point regret having done so. - - When someone uses MSVC 6 without PSDK he is using a compiler back from 1998. - - If the compiler has been updated with the installation of a service pack as - those mentioned in http://support.microsoft.com/kb/194022 the compiler can be - safely used to read source code, translate and make it object code. - - But, even with the service packs mentioned above installed, the resulting - software generated in such an environment will be using outdated system - header files and libraries with bugs and security issues which have already - been addressed and fixed long time ago. - - In order to make use of the updated system headers and fixed libraries - for MSVC 6, it is required that 'Platform SDK', PSDK from now onwards, - is installed. The specific PSDK that must be installed for MSVC 6 is the - February 2003 edition, which is the latest one supporting the MSVC 6 compiler, - this PSDK is also known as 'Windows Server 2003 PSDK' and can be downloaded - from http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm - - So, building curl and libcurl with MSVC 6 without PSDK is absolutely - discouraged for the benefit of anyone using software built in such - environment. And it will not be supported in any way, as we could just - be hunting bugs which have already been fixed way back in 2003. - - When building with MSVC 6 we attempt to detect if PSDK is not being used, - and if this is the case the build process will fail hard with an error - message stating that the February 2003 PSDK is required. This is done to - protect the unsuspecting and avoid PEBKAC issues. - - Additionally it might happen that a die hard MSVC hacker still wants to - build curl and libcurl with MSVC 6 without PSDK installed, even knowing - that this is a highly discouraged and unsupported build environment. In - this case the brave of heart will be able to build in such an environment - with the requisite of defining preprocessor symbol ALLOW_MSVC6_WITHOUT_PSDK - in lib/config-win32.h and knowing that LDAP and IPv6 support will be missing. - - MSVC from command line - ---------------------- - - Run the 'vcvars32.bat' file to get a proper environment. The - vcvars32.bat file is part of the Microsoft development environment and - you may find it in 'C:\Program Files\Microsoft Visual Studio\vc98\bin' - provided that you installed Visual C/C++ 6 in the default directory. - - Then run 'nmake vc' in curl's root directory. - - If you want to compile with zlib support, you will need to build - zlib (http://www.gzip.org/zlib/) as well. Please read the zlib - documentation on how to compile zlib. Define the ZLIB_PATH environment - variable to the location of zlib.h and zlib.lib, for example: - - set ZLIB_PATH=c:\zlib-1.2.7 - - Then run 'nmake vc-zlib' in curl's root directory. - - If you want to compile with SSL support you need the OpenSSL package. - Please read the OpenSSL documentation on how to compile and install - the OpenSSL libraries. The build process of OpenSSL generates the - libeay32.dll and ssleay32.dll files in the out32dll subdirectory in - the OpenSSL home directory. OpenSSL static libraries (libeay32.lib, - ssleay32.lib, RSAglue.lib) are created in the out32 subdirectory. - - Before running nmake define the OPENSSL_PATH environment variable with - the root/base directory of OpenSSL, for example: - - set OPENSSL_PATH=c:\openssl-0.9.8x - - Then run 'nmake vc-ssl' or 'nmake vc-ssl-dll' in curl's root - directory. 'nmake vc-ssl' will create a libcurl static and dynamic - libraries in the lib subdirectory, as well as a statically linked - version of curl.exe in the src subdirectory. This statically linked - version is a standalone executable not requiring any DLL at - runtime. This make method requires that you have the static OpenSSL - libraries available in OpenSSL's out32 subdirectory. - 'nmake vc-ssl-dll' creates the libcurl dynamic library and - links curl.exe against libcurl and OpenSSL dynamically. - This executable requires libcurl.dll and the OpenSSL DLLs - at runtime. - Run 'nmake vc-ssl-zlib' to build with both ssl and zlib support. - - MSVC 6 IDE - ---------- - - A minimal VC++ 6.0 reference workspace (vc6curl.dsw) is available with the - source distribution archive to allow proper building of the two included - projects, the libcurl library and the curl tool. - - 1) Open the vc6curl.dsw workspace with MSVC6's IDE. - 2) Select 'Build' from top menu. - 3) Select 'Batch Build' from dropdown menu. - 4) Make sure that the eight project configurations are 'checked'. - 5) Click on the 'Build' button. - 6) Once the eight project configurations are built you are done. - - Dynamic and static libcurl libraries are built in debug and release flavours, - and can be located each one in its own subdirectory, DLL-Debug, DLL-Release, - LIB-Debug and LIB-Release, all of them below the 'lib' subdirectory. - - In the same way four curl executables are created, each using its respective - library. The resulting curl executables are located in its own subdirectory, - DLL-Debug, DLL-Release, LIB-Debug and LIB-Release, below the 'src' subdir. - - These reference VC++ 6.0 configurations are generated using the dynamic CRT. - - Intentionally, these reference VC++ 6.0 projects and configurations don't use - third party libraries, such as OpenSSL or Zlib, to allow proper compilation - and configuration for all new users without further requirements. - - If you need something more 'involved' you might adjust them for your own use, - or explore the world of makefiles described above 'MSVC from command line'. - - Borland C++ compiler - --------------------- - - Ensure that your build environment is properly set up to use the compiler - and associated tools. PATH environment variable must include the path to - bin subdirectory of your compiler installation, eg: c:\Borland\BCC55\bin - - It is advisable to set environment variable BCCDIR to the base path of - the compiler installation. - - set BCCDIR=c:\Borland\BCC55 - - In order to build a plain vanilla version of curl and libcurl run the - following command from curl's root directory: - - make borland - - To build curl and libcurl with zlib and OpenSSL support set environment - variables ZLIB_PATH and OPENSSL_PATH to the base subdirectories of the - already built zlib and OpenSSL libraries and from curl's root directory - run command: - - make borland-ssl-zlib - - libcurl library will be built in 'lib' subdirectory while curl tool - is built in 'src' subdirectory. In order to use libcurl library it is - advisable to modify compiler's configuration file bcc32.cfg located - in c:\Borland\BCC55\bin to reflect the location of libraries include - paths for example the '-I' line could result in something like: - - -I"c:\Borland\BCC55\include;c:\curl\include;c:\openssl\inc32" - - bcc3.cfg '-L' line could also be modified to reflect the location of - of libcurl library resulting for example: - - -L"c:\Borland\BCC55\lib;c:\curl\lib;c:\openssl\out32" - - In order to build sample program 'simple.c' from the docs\examples - subdirectory run following command from mentioned subdirectory: - - bcc32 simple.c libcurl.lib cw32mt.lib - - In order to build sample program simplessl.c an SSL enabled libcurl - is required, as well as the OpenSSL libeay32.lib and ssleay32.lib - libraries. - - - OTHER MSVC IDEs - --------------- - - If you use VC++, Borland or similar compilers. Include all lib source - files in a static lib "project" (all .c and .h files that is). - (you should name it libcurl or similar) - - Make the sources in the src/ drawer be a "win32 console application" - project. Name it curl. - - - Disabling Specific Protocols in Win32 builds - -------------------------------------------- - - The configure utility, unfortunately, is not available for the Windows - environment, therefore, you cannot use the various disable-protocol - options of the configure utility on this platform. - - However, you can use the following defines to disable specific - protocols: - - HTTP_ONLY disables all protocols except HTTP - CURL_DISABLE_FTP disables FTP - CURL_DISABLE_LDAP disables LDAP - CURL_DISABLE_TELNET disables TELNET - CURL_DISABLE_DICT disables DICT - CURL_DISABLE_FILE disables FILE - CURL_DISABLE_TFTP disables TFTP - CURL_DISABLE_HTTP disables HTTP - - If you want to set any of these defines you have the following - possibilities: - - - Modify lib/config-win32.h - - Modify lib/setup.h - - Modify lib/Makefile.vc6 - - Add defines to Project/Settings/C/C++/General/Preprocessor Definitions - in the vc6libcurl.dsw/vc6libcurl.dsp Visual C++ 6 IDE project. - - - Using BSD-style lwIP instead of Winsock TCP/IP stack in Win32 builds - -------------------------------------------------------------------- - - In order to compile libcurl and curl using BSD-style lwIP TCP/IP stack - it is necessary to make definition of preprocessor symbol USE_LWIPSOCK - visible to libcurl and curl compilation processes. To set this definition - you have the following alternatives: - - - Modify lib/config-win32.h and src/config-win32.h - - Modify lib/Makefile.vc6 - - Add definition to Project/Settings/C/C++/General/Preprocessor Definitions - in the vc6libcurl.dsw/vc6libcurl.dsp Visual C++ 6 IDE project. - - Once that libcurl has been built with BSD-style lwIP TCP/IP stack support, - in order to use it with your program it is mandatory that your program - includes lwIP header file (or another lwIP header that includes - this) before including any libcurl header. Your program does not need the - USE_LWIPSOCK preprocessor definition which is for libcurl internals only. - - Compilation has been verified with lwIP 1.4.0 and contrib-1.4.0 from: - - http://download.savannah.gnu.org/releases/lwip/lwip-1.4.0.zip - http://download.savannah.gnu.org/releases/lwip/contrib-1.4.0.zip - - This BSD-style lwIP TCP/IP stack support must be considered experimental - given that it has been verified that lwIP 1.4.0 still needs some polish, - and libcurl might yet need some additional adjustment, caveat emptor. - - Important static libcurl usage note - ----------------------------------- - - When building an application that uses the static libcurl library, you must - add '-DCURL_STATICLIB' to your CFLAGS. Otherwise the linker will look for - dynamic import symbols. - - -IBM OS/2 -======== - Building under OS/2 is not much different from building under unix. - You need: - - - emx 0.9d - - GNU make - - GNU patch - - ksh - - GNU bison - - GNU file utilities - - GNU sed - - autoconf 2.13 - - If you want to build with OpenSSL or OpenLDAP support, you'll need to - download those libraries, too. Dirk Ohme has done some work to port SSL - libraries under OS/2, but it looks like he doesn't care about emx. You'll - find his patches on: http://come.to/Dirk_Ohme - - If during the linking you get an error about _errno being an undefined - symbol referenced from the text segment, you need to add -D__ST_MT_ERRNO__ - in your definitions. - - If everything seems to work fine but there's no curl.exe, you need to add - -Zexe to your linker flags. - - If you're getting huge binaries, probably your makefiles have the -g in - CFLAGS. - - -VMS -=== - (The VMS section is in whole contributed by the friendly Nico Baggus) - - Curl seems to work with FTP & HTTP other protocols are not tested. (the - perl http/ftp testing server supplied as testing too cannot work on VMS - because vms has no concept of fork(). [ I tried to give it a whack, but - that's of no use. - - SSL stuff has not been ported. - - Telnet has about the same issues as for Win32. When the changes for Win32 - are clear maybe they'll work for VMS too. The basic problem is that select - ONLY works for sockets. - - Marked instances of fopen/[f]stat that might become a problem, especially - for non stream files. In this regard, the files opened for writing will be - created stream/lf and will thus be safe. Just keep in mind that non-binary - read/wring from/to files will have a records size limit of 32767 bytes - imposed. - - Stat to get the size of the files is again only safe for stream files & - fixed record files without implied CC. - - -- My guess is that only allowing access to stream files is the quickest - way to get around the most issues. Therefore all files need to to be - checked to be sure they will be stream/lf before processing them. This is - the easiest way out, I know. The reason for this is that code that needs to - report the filesize will become a pain in the ass otherwise. - - Exit status.... Well we needed something done here, - - VMS has a structured exist status: - | 3 | 2 | 1 | 0| - |1098|765432109876|5432109876543|210| - +----+------------+-------------+---+ - |Ctrl| Facility | Error code |sev| - +----+------------+-------------+---+ - - With the Ctrl-bits an application can tell if part or the whole message has - already been printed from the program, DCL doesn't need to print it again. - - Facility - basically the program ID. A code assigned to the program - the name can be fetched from external or internal message libraries - Error code - the err codes assigned by the application - Sev. - severity: Even = error, off = non error - 0 = Warning - 1 = Success - 2 = Error - 3 = Information - 4 = Fatal - <5-7> reserved. - - This all presents itself with: - %--, - - See also the src/curlmsg.msg file, it has the source for the messages In - src/main.c a section is devoted to message status values, the globalvalues - create symbols with certain values, referenced from a compiled message - file. Have all exit function use a exit status derived from a translation - table with the compiled message codes. - - This was all compiled with: - - Compaq C V6.2-003 on OpenVMS Alpha V7.1-1H2 - - So far for porting notes as of: - 13-jul-2001 - N. Baggus - - -QNX -=== - (This section was graciously brought to us by David Bentham) - - As QNX is targeted for resource constrained environments, the QNX headers - set conservative limits. This includes the FD_SETSIZE macro, set by default - to 32. Socket descriptors returned within the CURL library may exceed this, - resulting in memory faults/SIGSEGV crashes when passed into select(..) - calls using fd_set macros. - - A good all-round solution to this is to override the default when building - libcurl, by overriding CFLAGS during configure, example - # configure CFLAGS='-DFD_SETSIZE=64 -g -O2' - - -RISC OS -======= - The library can be cross-compiled using gccsdk as follows: - - CC=riscos-gcc AR=riscos-ar RANLIB='riscos-ar -s' ./configure \ - --host=arm-riscos-aof --without-random --disable-shared - make - - where riscos-gcc and riscos-ar are links to the gccsdk tools. - You can then link your program with curl/lib/.libs/libcurl.a - - -AmigaOS -======= - (This section was graciously brought to us by Diego Casorran) - - To build cURL/libcurl on AmigaOS just type 'make amiga' ... - - What you need is: (not tested with others versions) - - GeekGadgets / gcc 2.95.3 (http://www.geekgadgets.org/) - - AmiTCP SDK v4.3 (http://www.aminet.net/comm/tcp/AmiTCP-SDK-4.3.lha) - - Native Developer Kit (http://www.amiga.com/3.9/download/NDK3.9.lha) - - As no ixemul.library is required you will be able to build it for - WarpOS/PowerPC (not tested by me), as well a MorphOS version should be - possible with no problems. - - To enable SSL support, you need a OpenSSL native version (without ixemul), - you can find a precompiled package at http://amiga.sourceforge.net/OpenSSL/ - - -NetWare -======= - To compile curl.nlm / libcurl.nlm you need: - - either any gcc / nlmconv, or CodeWarrior 7 PDK 4 or later. - - gnu make and awk running on the platform you compile on; - native Win32 versions can be downloaded from: - http://www.gknw.net/development/prgtools/ - - recent Novell LibC SDK available from: - http://developer.novell.com/ndk/libc.htm - - or recent Novell CLib SDK available from: - http://developer.novell.com/ndk/clib.htm - - optional recent Novell CLDAP SDK available from: - http://developer.novell.com/ndk/cldap.htm - - optional zlib sources (static or dynamic linking with zlib.imp); - sources with NetWare Makefile can be obtained from: - http://www.gknw.net/mirror/zlib/ - - optional OpenSSL sources (version 0.9.8 or later build with BSD sockets); - you can find precompiled packages at: - http://www.gknw.net/development/ossl/netware/ - for CLIB-based builds OpenSSL 0.9.8h or later is required - earlier versions - don't support building with CLIB BSD sockets. - - optional SSH2 sources (version 0.17 or later); - - Set a search path to your compiler, linker and tools; on Linux make - sure that the var OSTYPE contains the string 'linux'; set the var - NDKBASE to point to the base of your Novell NDK; and then type - 'make netware' from the top source directory; other targets available - are 'netware-ssl', 'netware-ssl-zlib', 'netware-zlib' and 'netware-ares'; - if you need other combinations you can control the build with the - environment variables WITH_SSL, WITH_ZLIB, WITH_ARES, WITH_SSH2, and - ENABLE_IPV6; you can set LINK_STATIC=1 to link curl.nlm statically. - By default LDAP support is enabled, however currently you will need a patch - in order to use the CLDAP NDK with BSD sockets (Novell Bug 300237): - http://www.gknw.net/test/curl/cldap_ndk/ldap_ndk.diff - I found on some Linux systems (RH9) that OS detection didn't work although - a 'set | grep OSTYPE' shows the var present and set; I simply overwrote it - with 'OSTYPE=linux-rh9-gnu' and the detection in the Makefile worked... - Any help in testing appreciated! - Builds automatically created 8 times a day from current git are here: - http://www.gknw.net/mirror/curl/autobuilds/ - the status of these builds can be viewed at the autobuild table: - http://curl.haxx.se/dev/builds.html - - -eCos -==== - curl does not use the eCos build system, so you must first build eCos - separately, then link curl to the resulting eCos library. Here's a sample - configure line to do so on an x86 Linux box targeting x86: - - GCCLIB=`gcc -print-libgcc-file-name` && \ - CFLAGS="-D__ECOS=1 -nostdinc -I$ECOS_INSTALL/include \ - -I`dirname $GCCLIB`/include" \ - LDFLAGS="-nostdlib -Wl,--gc-sections -Wl,-static \ - -L$ECOS_INSTALL/lib -Ttarget.ld -ltarget" \ - ./configure --host=i386 --disable-shared \ - --without-ssl --without-zlib --disable-manual --disable-ldap - - In most cases, eCos users will be using libcurl from within a custom - embedded application. Using the standard 'curl' executable from - within eCos means facing the limitation of the standard eCos C - startup code which does not allow passing arguments in main(). To - run 'curl' from eCos and have it do something useful, you will need - to either modify the eCos startup code to pass in some arguments, or - modify the curl application itself to retrieve its arguments from - some location set by the bootloader or hard-code them. - - Something like the following patch could be used to hard-code some - arguments. The MTAB_ENTRY line mounts a RAM disk as the root filesystem - (without mounting some kind of filesystem, eCos errors out all file - operations which curl does not take to well). The next section synthesizes - some command-line arguments for curl to use, in this case to direct curl - to read further arguments from a file. It then creates that file on the - RAM disk and places within it a URL to download: a file: URL that - just happens to point to the configuration file itself. The results - of running curl in this way is the contents of the configuration file - printed to the console. - ---- src/main.c 19 Jul 2006 19:09:56 -0000 1.363 -+++ src/main.c 24 Jul 2006 21:37:23 -0000 -@@ -4286,11 +4286,31 @@ - } - - -+#ifdef __ECOS -+#include -+MTAB_ENTRY( testfs_mte1, -+ "/", -+ "ramfs", -+ "", -+ 0); -+#endif - - int main(int argc, char *argv[]) - { - int res; - struct Configurable config; -+#ifdef __ECOS -+ char *args[] = {"ecos-curl", "-K", "curlconf.txt"}; -+ FILE *f; -+ argc = sizeof(args)/sizeof(args[0]); -+ argv = args; -+ -+ f = fopen("curlconf.txt", "w"); -+ if (f) { -+ fprintf(f, "--url file:curlconf.txt"); -+ fclose(f); -+ } -+#endif - memset(&config, 0, sizeof(struct Configurable)); - - config.errors = stderr; /* default errors to stderr */ - - -Minix -===== - curl can be compiled on Minix 3 using gcc or ACK (starting with - ver. 3.1.3). Ensure that GNU gawk and bash are both installed and - available in the PATH. - - ACK - --- - Increase the heap sizes of the compiler with the command: - - binsizes xxl - - then configure and compile curl with: - - ./configure CC=cc LD=cc AR=/usr/bin/aal GREP=grep \ - CPPFLAGS='-D_POSIX_SOURCE=1 -I/usr/local/include' - make - chmem =256000 src/curl - - GCC - --- - Make sure gcc is in your PATH with the command: - - export PATH=/usr/gnu/bin:$PATH - - then configure and compile curl with: - - ./configure CC=gcc AR=/usr/gnu/bin/gar GREP=grep - make - chmem =256000 src/curl - - -Symbian OS -========== - The Symbian OS port uses the Symbian build system to compile. From the - packages/Symbian/group/ directory, run: - - bldmake bldfiles - abld build - - to compile and install curl and libcurl using SBSv1. If your Symbian - SDK doesn't include support for P.I.P.S., you will need to contact - your SDK vendor to obtain that first. - - -VxWorks -======== - Build for VxWorks is performed using cross compilation. - That means you build on Windows machine using VxWorks tools and - run the built image on the VxWorks device. - - To build libcurl for VxWorks you need: - - - CYGWIN (free, http://cygwin.com/) - - Wind River Workbench (commercial) - - If you have CYGWIN and Workbench installed on you machine - follow after next steps: - - 1. Open the Command Prompt window and change directory ('cd') - to the libcurl 'lib' folder. - 2. Add CYGWIN 'bin' folder to the PATH environment variable. - For example, type 'set PATH=C:/embedded/cygwin/bin;%PATH%'. - 3. Adjust environment variables defined in 'Environment' section - of the Makefile.vxworks file to point to your software folders. - 4. Build the libcurl by typing 'make -f ./Makefile.vxworks' - - As a result the libcurl.a library should be created in the 'lib' folder. - To clean the build results type 'make -f ./Makefile.vxworks clean'. - - -Android -======= - Method using the static makefile: - - see the build notes in the Android.mk file. - - Method using a configure cross-compile (tested with Android NDK r7c, r8): - - prepare the toolchain of the Android NDK for standalone use; this can - be done by invoking the script: - ./build/tools/make-standalone-toolchain.sh - which creates a usual cross-compile toolchain. Lets assume that you put - this toolchain below /opt then invoke configure with something like: - export PATH=/opt/arm-linux-androideabi-4.4.3/bin:$PATH - ./configure --host=arm-linux-androideabi [more configure options] - make - - if you want to compile directly from our GIT repo you might run into - this issue with older automake stuff: - checking host system type... - Invalid configuration `arm-linux-androideabi': - system `androideabi' not recognized - configure: error: /bin/sh ./config.sub arm-linux-androideabi failed - this issue can be fixed with using more recent versions of config.sub - and config.guess which can be obtained here: - http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree - you need to replace your system-own versions which usually can be - found in your automake folder: - find /usr -name config.sub - - Wrapper for pkg-config - - In order to make proper use of pkg-config so that configure is able to - find all dependencies you should create a wrapper script for pkg-config; - file /opt/arm-linux-androideabi-4.4.3/bin/arm-linux-androideabi-pkg-config: - - #!/bin/sh - SYSROOT=$(dirname ${0%/*})/sysroot - export PKG_CONFIG_DIR= - export PKG_CONFIG_LIBDIR=${SYSROOT}/usr/local/lib/pkgconfig:${SYSROOT}/usr/share/pkgconfig - export PKG_CONFIG_SYSROOT_DIR=${SYSROOT} - exec pkg-config "$@" - - also create a copy or symlink with name arm-unknown-linux-androideabi-pkg-config. - - -CROSS COMPILE -============= - (This section was graciously brought to us by Jim Duey, with additions by - Dan Fandrich) - - Download and unpack the cURL package. - - 'cd' to the new directory. (e.g. cd curl-7.12.3) - - Set environment variables to point to the cross-compile toolchain and call - configure with any options you need. Be sure and specify the '--host' and - '--build' parameters at configuration time. The following script is an - example of cross-compiling for the IBM 405GP PowerPC processor using the - toolchain from MonteVista for Hardhat Linux. - - (begin script) - - #! /bin/sh - - export PATH=$PATH:/opt/hardhat/devkit/ppc/405/bin - export CPPFLAGS="-I/opt/hardhat/devkit/ppc/405/target/usr/include" - export AR=ppc_405-ar - export AS=ppc_405-as - export LD=ppc_405-ld - export RANLIB=ppc_405-ranlib - export CC=ppc_405-gcc - export NM=ppc_405-nm - - ./configure --target=powerpc-hardhat-linux \ - --host=powerpc-hardhat-linux \ - --build=i586-pc-linux-gnu \ - --prefix=/opt/hardhat/devkit/ppc/405/target/usr/local \ - --exec-prefix=/usr/local - - (end script) - - You may also need to provide a parameter like '--with-random=/dev/urandom' - to configure as it cannot detect the presence of a random number - generating device for a target system. The '--prefix' parameter - specifies where cURL will be installed. If 'configure' completes - successfully, do 'make' and 'make install' as usual. - - In some cases, you may be able to simplify the above commands to as - little as: - - ./configure --host=ARCH-OS - - -REDUCING SIZE -============= - There are a number of configure options that can be used to reduce the - size of libcurl for embedded applications where binary size is an - important factor. First, be sure to set the CFLAGS variable when - configuring with any relevant compiler optimization flags to reduce the - size of the binary. For gcc, this would mean at minimum the -Os option, - and potentially the -march=X and -mdynamic-no-pic options as well, e.g. - - ./configure CFLAGS='-Os' ... - - Note that newer compilers often produce smaller code than older versions - due to improved optimization. - - Be sure to specify as many --disable- and --without- flags on the configure - command-line as you can to disable all the libcurl features that you - know your application is not going to need. Besides specifying the - --disable-PROTOCOL flags for all the types of URLs your application - will not use, here are some other flags that can reduce the size of the - library: - - --disable-ares (disables support for the C-ARES DNS library) - --disable-cookies (disables support for HTTP cookies) - --disable-crypto-auth (disables HTTP cryptographic authentication) - --disable-ipv6 (disables support for IPv6) - --disable-manual (disables support for the built-in documentation) - --disable-proxy (disables support for HTTP and SOCKS proxies) - --disable-verbose (eliminates debugging strings and error code strings) - --enable-hidden-symbols (eliminates unneeded symbols in the shared library) - --without-libidn (disables support for the libidn DNS library) - --without-ssl (disables support for SSL/TLS) - --without-zlib (disables support for on-the-fly decompression) - - The GNU compiler and linker have a number of options that can reduce the - size of the libcurl dynamic libraries on some platforms even further. - Specify them by providing appropriate CFLAGS and LDFLAGS variables on the - configure command-line, e.g. - CFLAGS="-Os -ffunction-sections -fdata-sections \ - -fno-unwind-tables -fno-asynchronous-unwind-tables" \ - LDFLAGS="-Wl,-s -Wl,-Bsymbolic -Wl,--gc-sections" - - Be sure also to strip debugging symbols from your binaries after - compiling using 'strip' (or the appropriate variant if cross-compiling). - If space is really tight, you may be able to remove some unneeded - sections of the shared library using the -R option to objcopy (e.g. the - .comment section). - - Using these techniques it is possible to create a basic HTTP-only shared - libcurl library for i386 Linux platforms that is only 106 KiB in size, and - an FTP-only library that is 108 KiB in size (as of libcurl version 7.27.0, - using gcc 4.6.3). - - You may find that statically linking libcurl to your application will - result in a lower total size than dynamically linking. - - Note that the curl test harness can detect the use of some, but not all, of - the --disable statements suggested above. Use will cause tests relying on - those features to fail. The test harness can be manually forced to skip - the relevant tests by specifying certain key words on the runtests.pl - command line. Following is a list of appropriate key words: - - --disable-cookies !cookies - --disable-crypto-auth !HTTP\ Digest\ auth !HTTP\ proxy\ Digest\ auth - --disable-manual !--manual - --disable-proxy !HTTP\ proxy !proxytunnel !SOCKS4 !SOCKS5 - - -PORTS -===== - This is a probably incomplete list of known hardware and operating systems - that curl has been compiled for. If you know a system curl compiles and - runs on, that isn't listed, please let us know! - - - Alpha DEC OSF 4 - - Alpha Digital UNIX v3.2 - - Alpha FreeBSD 4.1, 4.5 - - Alpha Linux 2.2, 2.4 - - Alpha NetBSD 1.5.2 - - Alpha OpenBSD 3.0 - - Alpha OpenVMS V7.1-1H2 - - Alpha Tru64 v5.0 5.1 - - AVR32 Linux - - ARM Android 1.5, 2.1 - - ARM INTEGRITY - - ARM iPhone OS - - Cell Linux - - Cell Cell OS - - HP-PA HP-UX 9.X 10.X 11.X - - HP-PA Linux - - HP3000 MPE/iX - - MicroBlaze uClinux - - MIPS IRIX 6.2, 6.5 - - MIPS Linux - - OS/400 - - Pocket PC/Win CE 3.0 - - Power AIX 3.2.5, 4.2, 4.3.1, 4.3.2, 5.1, 5.2 - - PowerPC Darwin 1.0 - - PowerPC INTEGRITY - - PowerPC Linux - - PowerPC Mac OS 9 - - PowerPC Mac OS X - - SH4 Linux 2.6.X - - SH4 OS21 - - SINIX-Z v5 - - Sparc Linux - - Sparc Solaris 2.4, 2.5, 2.5.1, 2.6, 7, 8, 9, 10 - - Sparc SunOS 4.1.X - - StrongARM (and other ARM) RISC OS 3.1, 4.02 - - StrongARM/ARM7/ARM9 Linux 2.4, 2.6 - - StrongARM NetBSD 1.4.1 - - Symbian OS (P.I.P.S.) 9.x - - TPF - - Ultrix 4.3a - - UNICOS 9.0 - - i386 BeOS - - i386 DOS - - i386 eCos 1.3.1 - - i386 Esix 4.1 - - i386 FreeBSD - - i386 HURD - - i386 Haiku OS - - i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4, 2.6 - - i386 MINIX 3.1 - - i386 NetBSD - - i386 Novell NetWare - - i386 OS/2 - - i386 OpenBSD - - i386 QNX 6 - - i386 SCO unix - - i386 Solaris 2.7 - - i386 Windows 95, 98, ME, NT, 2000, XP, 2003 - - i486 ncr-sysv4.3.03 (NCR MP-RAS) - - ia64 Linux 2.3.99 - - m68k AmigaOS 3 - - m68k Linux - - m68k uClinux - - m68k OpenBSD - - m88k dg-dgux5.4R3.00 - - s390 Linux - - x86_64 Linux - - XScale/PXA250 Linux 2.4 - - Nios II uClinux - -Useful URLs -=========== - -axTLS http://axtls.sourceforge.net/ -c-ares http://c-ares.haxx.se/ -GNU GSS http://www.gnu.org/software/gss/ -GnuTLS http://www.gnu.org/software/gnutls/ -Heimdal http://www.pdc.kth.se/heimdal/ -libidn http://www.gnu.org/software/libidn/ -libssh2 http://www.libssh2.org/ -MIT Kerberos http://web.mit.edu/kerberos/www/dist/ -NSS http://www.mozilla.org/projects/security/pki/nss/ -OpenLDAP http://www.openldap.org/ -OpenSSL http://www.openssl.org/ -PolarSSL http://polarssl.org/ -yassl http://www.yassl.com/ -Zlib http://www.zlib.net/ - -MingW http://www.mingw.org/ -MinGW-w64 http://mingw-w64.sourceforge.net/ -OpenWatcom http://www.openwatcom.org/ diff --git a/msvc-deps/curl/docs/INSTALL.devcpp b/msvc-deps/curl/docs/INSTALL.devcpp deleted file mode 100644 index 46d1836a..00000000 --- a/msvc-deps/curl/docs/INSTALL.devcpp +++ /dev/null @@ -1,302 +0,0 @@ -DevCpp-Mingw Install & Compilation Sept 2005 -================================== - -Reference Emails available at curl@haxx.se: - - Libcurl Install and Use Issues - Awaiting an Answer for Win 32 Install - res = curl_easy_perform(curl); Error - Makefile Issues - - -Having previously done a thorough review of what was available that met my -requirements under GPL, I settled for Libcurl as the software of choice for -many reasons not the least of which was the support. - -Background ----------- - -This quest started when I innocently tried to incorporate the libcurl library -into my simple source code. I figured that a few easy steps would accomplish -this without major headaches. I had no idea that I would be facing an almost -insurmountable challenge. - -The main problem lies in two areas. First the bulk of support for libcurl -exists for a Unix/linux command line environments. This is of little help when -it comes to Windows O/S. - -Secondly the help that does exist for the Windows O/S focused around mingw -through a command line argument environment. - -You may ask "Why is this a problem?" - -I'm using a Windows O/S with DevCpp. For those of you who are unfamiliar with -DevCpp, it is a window shell GUI that replaces the command line environment -for gcc. A definite improvement that I am unwilling to give up. However using -DevCpp presented its own set of issues. Inadvertently I also made some -careless errors such as compiling the 7.14 version of Makefile with an older -version of source code. Thanks to Dan Fandrich for picking this up. - -I did eventually with the help of Daniel, Phillipe and others manage to -implement successfully (the only mingw available version) -curl-7.13.0-win32-ssl-devel-mingw32 into the DevCpp environment. Only the -dynamic libcurl.dll libcurldll.a libraries worked. The static library which I -was interested in did not. Furthermore when I tried to implement one of the -examples included with the curl package (get info.c) it caused the executable -to crash. Tracing the bug I found it in the code and function res = -curl_easy_perform(curl);. - -At this point I had to make a choice as to whether invest my limited -time-energy resource to fixing the bug or to compile the new version -available. After searching the archives I found a very similar or the same bug -reported from version 7.12x on. Daniel did inform me that he thought that this -bug had been fixed with the latest version. So I proceeded to compile the -latest SSL version where I faced other challenges. - -In order to make this process unremarkable for others using the same -environment I decided to document the process so that others will find it -routine. It would be a shame if newbies could not implement this excellent -package for their use. - -I would like to thank the many others in this forum and in the DevCpp forum -for their help. Without your help I may either have given up or it would have -taken me many times longer to achieve success. - -The Cookbook Approach ---------------------- - -This discussion will be confined to a SSL static library compilation and -installation. Limited mention and comments will be inserted where appropriate -to help with non-SSL, dynamic libraries and executables. - - - Using Makefile from DevCpp to compile Libcurl libraries - -Preamble --------- - -Using the latest version release - curl-7.14.0.tar.gz. Curl source code is -platform independent. This simply means that the source code can be compiled -for any Operating System (Linux/Unix Windows etc. and variations of thereof). - -The first thing to note is that inside curl-7.14.0 you will find two folders -lib and src. Both contain Makefile.m32 (required for win mingw library or exe -compilation) files which are different. The main difference between these two -folders and the makefiles is that the src folder contents are used to compile -an executable file(curl.exe) while the lib folder contents are used to compile -a static (libcurl.a) and dynamic (libcurl.dll & libcurldll.a) file that can be -used to compile libcurl with your own source code so that one can use and -access all libcurl functions. - -Before we start please make sure that DevCpp is installed properly. In -particular make sure you have no spaces in the name of any of the directories -and subdirectories where DevCpp is installed. Failure to comply with the -install instructions may produce erratic behaviour in DevCpp. For further info -check the following sites - -http://aditsu.freeunixhost.com/dev-cpp-faq.html -http://sourceforge.net/forum/message.php?msg_id=3252213 - -As I have mentioned before I will confine this to the SSL Library compilations -but the process is very similar for compilation of the executable - curl.exe; -just substitute the src folder makefile in its stead. - -First use a text processor Notepad, or your own favourite text processor. To -engage your favourite text processor, select Makefile.m32 click once with your -mouse on file icon; icon turns blue, press the shift key and right-click on -mouse, menu appears select "Open with", select your favourite text processor. - -Next read the contents of Makefile.m32. It includes instructions on its use. - -Method I - DOS Command Line ---------------------------- - -Note - The only reason I have included this method is that Method II which is -the preferred method for compiling does not allow for the setting of option -switches (e.g. SSL = 1 or SSL =0). At least that's what they tell me at the -Dev-Cpp forum. - -1 - Make a copy of (D:\Dev-Cpp\bin) bin folder and name it "bin Original" -place it in the Dev-Cpp installed directory (D:\Dev-Cpp\ for this example) - -2 - Copy the entire contents of the LIB folder of curl-7.14.0.tar.gz or zip -version into the bin folder above (D:\Dev-Cpp\bin). The reason being is that -the make.exe file resides in this folder. Make.exe will use - Makefile.m32, -Makefile.inc, and the source code included in the lib folder to compile the -source code. There is a PATH issue with make.exe that remains unresolved at -least for me. Unless the entire source code to be compiled is placed entirely -within the directory of make.exe an error message will be generated - "file -xxxx.yyy not available". - -3- Go to Dev-Cpp\bin and double click on make .exe. You will see a DOS window -quickly pop up and close very quickly. Not to worry! Please do not skip this -step. - -4- Click on the start button\Programs\MS-DOS Prompt.Once the DOS Window is up -Type the disk drive letter (e.g. E: ) engage the enter button. The path should -automatically take you to the directory of the make.exe file. - -5- To compile the source code simply type at the DOS prompt make -f -Makefile.m32 as per instructions contained in the Makefile.m32 file (use any -text processor to read instructions). I don't believe that this makefile -allows for the option of non SSL. Ignore any warnings. - -6- Collect and make copies of libcurl.a, libcurl.dll, libcurldll.a and any *.o -compilations you might need in another directory outside of the bin directory -as you will need this files shortly to set up libcurl for use with -Dev-cpp. For most apps *.o is not required. Later on we will show what to do -with these files. - -7- You are finished but before closing we need to do cleanup - erase the bin -folder and rename the "bin Original" folder created in step 1 to bin. - -Note to compile a curl executable the process is probably similar but instead -of using the LIB folder contents use the SRC folder contents and Makefiles in -curl-7.14.0.tar.gz. File directories relative placements must be respected for -compiling to take place successfully. This may not be possible with the PATH -problem that make.exe experiences. If anyone has solved this PATH issue and -please make sure it actually works on Win 9x/2000/XP before letting me -know. Then please let me or Daniel in on the solution so that it can be -included with these instructions. Thanks. - -or - -Method II - Dev-Cpp GUI ------------------------ - -1- Copy the entire contents of the LIB folder of curl-7.14.0.tar.gz or zip -version into any folder outside of (Dev-Cpp\bin). - -2- Drop the File/New/click on Project. - -3- New Project Dialogue box appears. Double click on the Static Library. - -4- Create Project Dialogue box appears. Select the LIB folder location to -place and locate your Project File Name. Placing the Project File Name -elsewhere may cause problems (PATH issue problem again). - -5- Drop down the Project/Project Options. Project Options Dialogue box -appears. - -6- Select the Makefile tab in the Project Options Dialogue Box. Check Box - -Use Custom Makefile. Click on the Folder icon at the extreme right of the -Check Box. Select Makefile.m32 in the folder wherever you have placed the -contents of the LIB Folder. Press OK and close the Dialogue Box. - -7- Drop the Menu Project/Click on Add to Project. Open File Dialogue Box -appears. The Dialogue Box should open in the folder wherever you have placed -the contents of the LIB Folder. If not go there. - -8- Select Crtl-A to select all files in the LIB folder. Click on open to add -files and close box. Wait till all files are added. This may take 30 seconds -or longer. - -9- Drop the Menu Execute/Click on Compile. - -10- That's it. - - - The following steps must be completed if Curl is to work properly - ================================================================= - -LIB folder inclusions (*.a placement) -------------------------------------- - -1- Refer to Method I - DOS Command Line point # 6 Take libcurl.a, libcurldll.a -and install it in the directory C( or whichever drive Dev is installed) -:\Dev-Cpp\lib. - - -Include Folder --------------- - -1- Create a new folder by the name of curl (do not change the name curl to -some other name as it will cause major issues) in the directory -C:\Dev-Cpp\include. - -2- Copy the entire contents of the curl folder of curl-7.14.0.tar.gz or zip - version into the newly created curl directory - C:\Dev-Cpp\include\curl. - -Links To Include And Lib Folder -------------------------------- - -1- Drop the Menu - Tools\Compiler Options\Directories\Libraries. Make sure -that C( or whichever drive Dev is installed):\DEV-CPP\lib is included. - -2- Next select the Menu - Tools\Compiler Options\Directories\C Includes. Make -sure that C:\DEV-CPP\include and C:\Dev-Cpp\include\curl are included. - -3- Next select the Menu - Tools\Compiler Options\Directories\C++ -Includes. Make sure that C:\DEV-CPP\include and C:\Dev-Cpp\include\curl are -included. - -Linker Links ------------- - -1- Drop the Menu - Tools\Compiler Options\Directories\Compiler. - -2- Make sure that the box "Add these commands to the linker command line" is -checked. - -3- Include in the white space immediately below the box referred in 2 -lcurl --lws2_32. - -SSL Files ---------- - -1- Get the latest openSSL (as of time of this writing) -openssl-0.9.7e-win32-bin.zip for the minimalist package of the openssl-0.9.7e -binaries ported to MS Windows 95/98/NT/XP using the MingW32/GCC-3.1 -development environment. The file may be downloaded at -http://curl.haxx.se/download/. - -2- Open the above zip file. You will find two files - SDL.dll, -SDL_mixer.dll. Install them in the directory C:\WINDOWS\SYSTEM32 for Win 9x -users and c:\winnt\system32 for NT-family users. - -Multithreading Files --------------------- - -To be completed - -#define -------- - -1- Make sure that your program includes the following - #define CURL_STATICLIB -must be declared FIRST before any other define functions may be -added. Otherwise you may experience link errors. - -2- Don't forget to include #include "curl/curl.h". - -e.g. - #define CURL_STATICLIB -#include - #include "curl/curl.h" -#include -#include -#include -etc... - - -Static or Dynamic Library -------------------------- - -The above steps apply for the use by a static library. Should you choose to -use a dynamic library you will be required to perform these additional steps. - -1- Refer to Method I - DOS Command Line point # 6. Install libcurl.dll in the -directory C:\WINDOWS\SYSTEM32 for Win 9x users and c:\winnt\system32 for -NT-family users. - -2- Refer to Linker Links point 3 - Replace -lcurl with -lcurldll. - -Voila you're done. - -The non-SSL static Library build may not be possible to use at least as of the -time of this writing - v7.14. Check reference emails - Phillipe and I found it -impossible to fully compile as certain files were missing for linking. No big -loss as SSL is a major plus. - -Hope this Helps - -Tom diff --git a/msvc-deps/curl/docs/INTERNALS b/msvc-deps/curl/docs/INTERNALS deleted file mode 100644 index d06d6220..00000000 --- a/msvc-deps/curl/docs/INTERNALS +++ /dev/null @@ -1,505 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - -INTERNALS - - The project is split in two. The library and the client. The client part uses - the library, but the library is designed to allow other applications to use - it. - - The largest amount of code and complexity is in the library part. - -GIT -=== - All changes to the sources are committed to the git repository as soon as - they're somewhat verified to work. Changes shall be committed as independently - as possible so that individual changes can be easier spotted and tracked - afterwards. - - Tagging shall be used extensively, and by the time we release new archives we - should tag the sources with a name similar to the released version number. - -Portability -=========== - - We write curl and libcurl to compile with C89 compilers. On 32bit and up - machines. Most of libcurl assumes more or less POSIX compliance but that's - not a requirement. - - We write libcurl to build and work with lots of third party tools, and we - want it to remain functional and buildable with these and later versions - (older versions may still work but is not what we work hard to maintain): - - OpenSSL 0.9.6 - GnuTLS 1.2 - zlib 1.1.4 - libssh2 0.16 - c-ares 1.6.0 - libidn 0.4.1 - cyassl 2.0.0 - openldap 2.0 - MIT krb5 lib 1.2.4 - qsossl V5R2M0 - NSS 3.12.x - axTLS 1.2.7 - Heimdal ? - - * = only partly functional, but that's due to bugs in the third party lib, not - because of libcurl code - - On systems where configure runs, we aim at working on them all - if they have - a suitable C compiler. On systems that don't run configure, we strive to keep - curl running fine on: - - Windows 98 - AS/400 V5R2M0 - Symbian 9.1 - Windows CE ? - TPF ? - - When writing code (mostly for generating stuff included in release tarballs) - we use a few "build tools" and we make sure that we remain functional with - these versions: - - GNU Libtool 1.4.2 - GNU Autoconf 2.57 - GNU Automake 1.7 (we currently avoid 1.10 due to Solaris-related bugs) - GNU M4 1.4 - perl 5.004 - roffit 0.5 - groff ? (any version that supports "groff -Tps -man [in] [out]") - ps2pdf (gs) ? - -Windows vs Unix -=============== - - There are a few differences in how to program curl the unix way compared to - the Windows way. The four perhaps most notable details are: - - 1. Different function names for socket operations. - - In curl, this is solved with defines and macros, so that the source looks - the same at all places except for the header file that defines them. The - macros in use are sclose(), sread() and swrite(). - - 2. Windows requires a couple of init calls for the socket stuff. - - That's taken care of by the curl_global_init() call, but if other libs also - do it etc there might be reasons for applications to alter that behaviour. - - 3. The file descriptors for network communication and file operations are - not easily interchangeable as in unix. - - We avoid this by not trying any funny tricks on file descriptors. - - 4. When writing data to stdout, Windows makes end-of-lines the DOS way, thus - destroying binary data, although you do want that conversion if it is - text coming through... (sigh) - - We set stdout to binary under windows - - Inside the source code, We make an effort to avoid '#ifdef [Your OS]'. All - conditionals that deal with features *should* instead be in the format - '#ifdef HAVE_THAT_WEIRD_FUNCTION'. Since Windows can't run configure scripts, - we maintain a curl_config-win32.h file in lib directory that is supposed to - look exactly as a curl_config.h file would have looked like on a Windows - machine! - - Generally speaking: always remember that this will be compiled on dozens of - operating systems. Don't walk on the edge. - -Library -======= - - There are plenty of entry points to the library, namely each publicly defined - function that libcurl offers to applications. All of those functions are - rather small and easy-to-follow. All the ones prefixed with 'curl_easy' are - put in the lib/easy.c file. - - curl_global_init_() and curl_global_cleanup() should be called by the - application to initialize and clean up global stuff in the library. As of - today, it can handle the global SSL initing if SSL is enabled and it can init - the socket layer on windows machines. libcurl itself has no "global" scope. - - All printf()-style functions use the supplied clones in lib/mprintf.c. This - makes sure we stay absolutely platform independent. - - curl_easy_init() allocates an internal struct and makes some initializations. - The returned handle does not reveal internals. This is the 'SessionHandle' - struct which works as an "anchor" struct for all curl_easy functions. All - connections performed will get connect-specific data allocated that should be - used for things related to particular connections/requests. - - curl_easy_setopt() takes three arguments, where the option stuff must be - passed in pairs: the parameter-ID and the parameter-value. The list of - options is documented in the man page. This function mainly sets things in - the 'SessionHandle' struct. - - curl_easy_perform() does a whole lot of things: - - It starts off in the lib/easy.c file by calling Curl_perform() and the main - work then continues in lib/url.c. The flow continues with a call to - Curl_connect() to connect to the remote site. - - o Curl_connect() - - ... analyzes the URL, it separates the different components and connects to - the remote host. This may involve using a proxy and/or using SSL. The - Curl_resolv() function in lib/hostip.c is used for looking up host names - (it does then use the proper underlying method, which may vary between - platforms and builds). - - When Curl_connect is done, we are connected to the remote site. Then it is - time to tell the server to get a document/file. Curl_do() arranges this. - - This function makes sure there's an allocated and initiated 'connectdata' - struct that is used for this particular connection only (although there may - be several requests performed on the same connect). A bunch of things are - inited/inherited from the SessionHandle struct. - - o Curl_do() - - Curl_do() makes sure the proper protocol-specific function is called. The - functions are named after the protocols they handle. Curl_ftp(), - Curl_http(), Curl_dict(), etc. They all reside in their respective files - (ftp.c, http.c and dict.c). HTTPS is handled by Curl_http() and FTPS by - Curl_ftp(). - - The protocol-specific functions of course deal with protocol-specific - negotiations and setup. They have access to the Curl_sendf() (from - lib/sendf.c) function to send printf-style formatted data to the remote - host and when they're ready to make the actual file transfer they call the - Curl_Transfer() function (in lib/transfer.c) to setup the transfer and - returns. - - If this DO function fails and the connection is being re-used, libcurl will - then close this connection, setup a new connection and re-issue the DO - request on that. This is because there is no way to be perfectly sure that - we have discovered a dead connection before the DO function and thus we - might wrongly be re-using a connection that was closed by the remote peer. - - Some time during the DO function, the Curl_setup_transfer() function must - be called with some basic info about the upcoming transfer: what socket(s) - to read/write and the expected file transfer sizes (if known). - - o Transfer() - - Curl_perform() then calls Transfer() in lib/transfer.c that performs the - entire file transfer. - - During transfer, the progress functions in lib/progress.c are called at a - frequent interval (or at the user's choice, a specified callback might get - called). The speedcheck functions in lib/speedcheck.c are also used to - verify that the transfer is as fast as required. - - o Curl_done() - - Called after a transfer is done. This function takes care of everything - that has to be done after a transfer. This function attempts to leave - matters in a state so that Curl_do() should be possible to call again on - the same connection (in a persistent connection case). It might also soon - be closed with Curl_disconnect(). - - o Curl_disconnect() - - When doing normal connections and transfers, no one ever tries to close any - connections so this is not normally called when curl_easy_perform() is - used. This function is only used when we are certain that no more transfers - is going to be made on the connection. It can be also closed by force, or - it can be called to make sure that libcurl doesn't keep too many - connections alive at the same time (there's a default amount of 5 but that - can be changed with the CURLOPT_MAXCONNECTS option). - - This function cleans up all resources that are associated with a single - connection. - - Curl_perform() is the function that does the main "connect - do - transfer - - done" loop. It loops if there's a Location: to follow. - - When completed, the curl_easy_cleanup() should be called to free up used - resources. It runs Curl_disconnect() on all open connections. - - A quick roundup on internal function sequences (many of these call - protocol-specific function-pointers): - - Curl_connect - connects to a remote site and does initial connect fluff - This also checks for an existing connection to the requested site and uses - that one if it is possible. - - Curl_do - starts a transfer - Curl_handler::do_it() - transfers data - Curl_done - ends a transfer - - Curl_disconnect - disconnects from a remote site. This is called when the - disconnect is really requested, which doesn't necessarily have to be - exactly after curl_done in case we want to keep the connection open for - a while. - - HTTP(S) - - HTTP offers a lot and is the protocol in curl that uses the most lines of - code. There is a special file (lib/formdata.c) that offers all the multipart - post functions. - - base64-functions for user+password stuff (and more) is in (lib/base64.c) and - all functions for parsing and sending cookies are found in (lib/cookie.c). - - HTTPS uses in almost every means the same procedure as HTTP, with only two - exceptions: the connect procedure is different and the function used to read - or write from the socket is different, although the latter fact is hidden in - the source by the use of Curl_read() for reading and Curl_write() for writing - data to the remote server. - - http_chunks.c contains functions that understands HTTP 1.1 chunked transfer - encoding. - - An interesting detail with the HTTP(S) request, is the Curl_add_buffer() - series of functions we use. They append data to one single buffer, and when - the building is done the entire request is sent off in one single write. This - is done this way to overcome problems with flawed firewalls and lame servers. - - FTP - - The Curl_if2ip() function can be used for getting the IP number of a - specified network interface, and it resides in lib/if2ip.c. - - Curl_ftpsendf() is used for sending FTP commands to the remote server. It was - made a separate function to prevent us programmers from forgetting that they - must be CRLF terminated. They must also be sent in one single write() to make - firewalls and similar happy. - - Kerberos - - The kerberos support is mainly in lib/krb4.c and lib/security.c. - - TELNET - - Telnet is implemented in lib/telnet.c. - - FILE - - The file:// protocol is dealt with in lib/file.c. - - LDAP - - Everything LDAP is in lib/ldap.c and lib/openldap.c - - GENERAL - - URL encoding and decoding, called escaping and unescaping in the source code, - is found in lib/escape.c. - - While transferring data in Transfer() a few functions might get used. - curl_getdate() in lib/parsedate.c is for HTTP date comparisons (and more). - - lib/getenv.c offers curl_getenv() which is for reading environment variables - in a neat platform independent way. That's used in the client, but also in - lib/url.c when checking the proxy environment variables. Note that contrary - to the normal unix getenv(), this returns an allocated buffer that must be - free()ed after use. - - lib/netrc.c holds the .netrc parser - - lib/timeval.c features replacement functions for systems that don't have - gettimeofday() and a few support functions for timeval conversions. - - A function named curl_version() that returns the full curl version string is - found in lib/version.c. - -Persistent Connections -====================== - - The persistent connection support in libcurl requires some considerations on - how to do things inside of the library. - - o The 'SessionHandle' struct returned in the curl_easy_init() call must never - hold connection-oriented data. It is meant to hold the root data as well as - all the options etc that the library-user may choose. - o The 'SessionHandle' struct holds the "connection cache" (an array of - pointers to 'connectdata' structs). There's one connectdata struct - allocated for each connection that libcurl knows about. Note that when you - use the multi interface, the multi handle will hold the connection cache - and not the particular easy handle. This of course to allow all easy handles - in a multi stack to be able to share and re-use connections. - o This enables the 'curl handle' to be reused on subsequent transfers. - o When we are about to perform a transfer with curl_easy_perform(), we first - check for an already existing connection in the cache that we can use, - otherwise we create a new one and add to the cache. If the cache is full - already when we add a new connection, we close one of the present ones. We - select which one to close dependent on the close policy that may have been - previously set. - o When the transfer operation is complete, we try to leave the connection - open. Particular options may tell us not to, and protocols may signal - closure on connections and then we don't keep it open of course. - o When curl_easy_cleanup() is called, we close all still opened connections, - unless of course the multi interface "owns" the connections. - - You do realize that the curl handle must be re-used in order for the - persistent connections to work. - -multi interface/non-blocking -============================ - - We make an effort to provide a non-blocking interface to the library, the - multi interface. To make that interface work as good as possible, no - low-level functions within libcurl must be written to work in a blocking - manner. - - One of the primary reasons we introduced c-ares support was to allow the name - resolve phase to be perfectly non-blocking as well. - - The ultimate goal is to provide the easy interface simply by wrapping the - multi interface functions and thus treat everything internally as the multi - interface is the single interface we have. - - The FTP and the SFTP/SCP protocols are thus perfect examples of how we adapt - and adjust the code to allow non-blocking operations even on multi-stage - protocols. They are built around state machines that return when they could - block waiting for data. The DICT, LDAP and TELNET protocols are crappy - examples and they are subject for rewrite in the future to better fit the - libcurl protocol family. - -SSL libraries -============= - - Originally libcurl supported SSLeay for SSL/TLS transports, but that was then - extended to its successor OpenSSL but has since also been extended to several - other SSL/TLS libraries and we expect and hope to further extend the support - in future libcurl versions. - - To deal with this internally in the best way possible, we have a generic SSL - function API as provided by the sslgen.[ch] system, and they are the only SSL - functions we must use from within libcurl. sslgen is then crafted to use the - appropriate lower-level function calls to whatever SSL library that is in - use. - -Library Symbols -=============== - - All symbols used internally in libcurl must use a 'Curl_' prefix if they're - used in more than a single file. Single-file symbols must be made static. - Public ("exported") symbols must use a 'curl_' prefix. (There are exceptions, - but they are to be changed to follow this pattern in future versions.) Public - API functions are marked with CURL_EXTERN in the public header files so that - all others can be hidden on platforms where this is possible. - -Return Codes and Informationals -=============================== - - I've made things simple. Almost every function in libcurl returns a CURLcode, - that must be CURLE_OK if everything is OK or otherwise a suitable error code - as the curl/curl.h include file defines. The very spot that detects an error - must use the Curl_failf() function to set the human-readable error - description. - - In aiding the user to understand what's happening and to debug curl usage, we - must supply a fair amount of informational messages by using the Curl_infof() - function. Those messages are only displayed when the user explicitly asks for - them. They are best used when revealing information that isn't otherwise - obvious. - -API/ABI -======= - - We make an effort to not export or show internals or how internals work, as - that makes it easier to keep a solid API/ABI over time. See docs/libcurl/ABI - for our promise to users. - -Client -====== - - main() resides in src/main.c together with most of the client code. - - src/hugehelp.c is automatically generated by the mkhelp.pl perl script to - display the complete "manual" and the src/urlglob.c file holds the functions - used for the URL-"globbing" support. Globbing in the sense that the {} and [] - expansion stuff is there. - - The client mostly messes around to setup its 'config' struct properly, then - it calls the curl_easy_*() functions of the library and when it gets back - control after the curl_easy_perform() it cleans up the library, checks status - and exits. - - When the operation is done, the ourWriteOut() function in src/writeout.c may - be called to report about the operation. That function is using the - curl_easy_getinfo() function to extract useful information from the curl - session. - - Recent versions may loop and do all this several times if many URLs were - specified on the command line or config file. - -Memory Debugging -================ - - The file lib/memdebug.c contains debug-versions of a few functions. Functions - such as malloc, free, fopen, fclose, etc that somehow deal with resources - that might give us problems if we "leak" them. The functions in the memdebug - system do nothing fancy, they do their normal function and then log - information about what they just did. The logged data can then be analyzed - after a complete session, - - memanalyze.pl is the perl script present in tests/ that analyzes a log file - generated by the memory tracking system. It detects if resources are - allocated but never freed and other kinds of errors related to resource - management. - - Internally, definition of preprocessor symbol DEBUGBUILD restricts code which - is only compiled for debug enabled builds. And symbol CURLDEBUG is used to - differentiate code which is _only_ used for memory tracking/debugging. - - Use -DCURLDEBUG when compiling to enable memory debugging, this is also - switched on by running configure with --enable-curldebug. Use -DDEBUGBUILD - when compiling to enable a debug build or run configure with --enable-debug. - - curl --version will list 'Debug' feature for debug enabled builds, and - will list 'TrackMemory' feature for curl debug memory tracking capable - builds. These features are independent and can be controlled when running - the configure script. When --enable-debug is given both features will be - enabled, unless some restriction prevents memory tracking from being used. - -Test Suite -========== - - The test suite is placed in its own subdirectory directly off the root in the - curl archive tree, and it contains a bunch of scripts and a lot of test case - data. - - The main test script is runtests.pl that will invoke test servers like - httpserver.pl and ftpserver.pl before all the test cases are performed. The - test suite currently only runs on unix-like platforms. - - You'll find a description of the test suite in the tests/README file, and the - test case data files in the tests/FILEFORMAT file. - - The test suite automatically detects if curl was built with the memory - debugging enabled, and if it was it will detect memory leaks, too. - -Building Releases -================= - - There's no magic to this. When you consider everything stable enough to be - released, do this: - - 1. Tag the source code accordingly. - - 2. run the 'maketgz' script (using 'make distcheck' will give you a pretty - good view on the status of the current sources). maketgz requires a - version number and creates the release archive. maketgz uses 'make dist' - for the actual archive building, why you need to fill in the Makefile.am - files properly for which files that should be included in the release - archives. - - 3. When that's complete, sign the output files. - - 4. Upload - - 5. Update web site and changelog on site - - 6. Send announcement to the mailing lists - - NOTE: you must have curl checked out from git to be able to do a proper - release build. The release tarballs do not have everything setup in order to - do releases properly. diff --git a/msvc-deps/curl/docs/KNOWN_BUGS b/msvc-deps/curl/docs/KNOWN_BUGS deleted file mode 100644 index d3638274..00000000 --- a/msvc-deps/curl/docs/KNOWN_BUGS +++ /dev/null @@ -1,242 +0,0 @@ -These are problems known to exist at the time of this release. Feel free to -join in and help us correct one or more of these! Also be sure to check the -changelog of the current development status, as one or more of these problems -may have been fixed since this was written! - -80. Curl doesn't recognize certificates in DER format in keychain, but it - works with PEM. - http://curl.haxx.se/bug/view.cgi?id=3439999 - -79. SMTP. When sending data to multiple recipients, curl will abort and return - failure if one of the recipients indicate failure (on the "RCPT TO" - command). Ordinary mail programs would proceed and still send to the ones - that can receive data. This is subject for change in the future. - http://curl.haxx.se/bug/view.cgi?id=3438362 - -78. curl and libcurl don't always signal the client properly when "sending" - zero bytes files - it makes for example the command line client not creating - any file at all. Like when using FTP. - http://curl.haxx.se/bug/view.cgi?id=3438362 - -77. CURLOPT_FORBID_REUSE on a handle prevents NTLM from working since it - "abuses" the underlying connection re-use system and if connections are - forced to close they break the NTLM support. - -76. The SOCKET type in Win64 is 64 bits large (and thus so is curl_socket_t on - that platform), and long is only 32 bits. It makes it impossible for - curl_easy_getinfo() to return a socket properly with the CURLINFO_LASTSOCKET - option as for all other operating systems. - -75. NTLM authentication involving unicode user name or password only works - properly if built with UNICODE defined together with the schannel/winssl - backend. The original problem was mentioned in: - http://curl.haxx.se/mail/lib-2009-10/0024.html - http://curl.haxx.se/bug/view.cgi?id=2944325 - - The schannel version verified to work as mentioned in - http://curl.haxx.se/mail/lib-2012-07/0073.html - -73. if a connection is made to a FTP server but the server then just never - sends the 220 response or otherwise is dead slow, libcurl will not - acknowledge the connection timeout during that phase but only the "real" - timeout - which may surprise users as it is probably considered to be the - connect phase to most people. Brought up (and is being misunderstood) in: - http://curl.haxx.se/bug/view.cgi?id=2844077 - -72. "Pausing pipeline problems." - http://curl.haxx.se/mail/lib-2009-07/0214.html - -70. Problem re-using easy handle after call to curl_multi_remove_handle - http://curl.haxx.se/mail/lib-2009-07/0249.html - -68. "More questions about ares behavior". - http://curl.haxx.se/mail/lib-2009-08/0012.html - -67. When creating multipart formposts. The file name part can be encoded with - something beyond ascii but currently libcurl will only pass in the verbatim - string the app provides. There are several browsers that already do this - encoding. The key seems to be the updated draft to RFC2231: - http://tools.ietf.org/html/draft-reschke-rfc2231-in-http-02 - -66. When using telnet, the time limitation options don't work. - http://curl.haxx.se/bug/view.cgi?id=2818950 - -65. When doing FTP over a socks proxy or CONNECT through HTTP proxy and the - multi interface is used, libcurl will fail if the (passive) TCP connection - for the data transfer isn't more or less instant as the code does not - properly wait for the connect to be confirmed. See test case 564 for a first - shot at a test case. - -63. When CURLOPT_CONNECT_ONLY is used, the handle cannot reliably be re-used - for any further requests or transfers. The work-around is then to close that - handle with curl_easy_cleanup() and create a new. Some more details: - http://curl.haxx.se/mail/lib-2009-04/0300.html - -61. If an upload using Expect: 100-continue receives an HTTP 417 response, - it ought to be automatically resent without the Expect:. A workaround is - for the client application to redo the transfer after disabling Expect:. - http://curl.haxx.se/mail/archive-2008-02/0043.html - -60. libcurl closes the connection if an HTTP 401 reply is received while it - is waiting for the the 100-continue response. - http://curl.haxx.se/mail/lib-2008-08/0462.html - -58. It seems sensible to be able to use CURLOPT_NOBODY and - CURLOPT_FAILONERROR with FTP to detect if a file exists or not, but it is - not working: http://curl.haxx.se/mail/lib-2008-07/0295.html - -57. On VMS-Alpha: When using an http-file-upload the file is not sent to the - Server with the correct content-length. Sending a file with 511 or less - bytes, content-length 512 is used. Sending a file with 513 - 1023 bytes, - content-length 1024 is used. Files with a length of a multiple of 512 Bytes - show the correct content-length. Only these files work for upload. - http://curl.haxx.se/bug/view.cgi?id=2057858 - -56. When libcurl sends CURLOPT_POSTQUOTE commands when connected to a SFTP - server using the multi interface, the commands are not being sent correctly - and instead the connection is "cancelled" (the operation is considered done) - prematurely. There is a half-baked (busy-looping) patch provided in the bug - report but it cannot be accepted as-is. See - http://curl.haxx.se/bug/view.cgi?id=2006544 - -55. libcurl fails to build with MIT Kerberos for Windows (KfW) due to KfW's - library header files exporting symbols/macros that should be kept private - to the KfW library. See ticket #5601 at http://krbdev.mit.edu/rt/ - -52. Gautam Kachroo's issue that identifies a problem with the multi interface - where a connection can be re-used without actually being properly - SSL-negotiated: - http://curl.haxx.se/mail/lib-2008-01/0277.html - -49. If using --retry and the transfer timeouts (possibly due to using -m or - -y/-Y) the next attempt doesn't resume the transfer properly from what was - downloaded in the previous attempt but will truncate and restart at the - original position where it was at before the previous failed attempt. See - http://curl.haxx.se/mail/lib-2008-01/0080.html and Mandriva bug report - https://qa.mandriva.com/show_bug.cgi?id=22565 - -48. If a CONNECT response-headers are larger than BUFSIZE (16KB) when the - connection is meant to be kept alive (like for NTLM proxy auth), the - function will return prematurely and will confuse the rest of the HTTP - protocol code. This should be very rare. - -43. There seems to be a problem when connecting to the Microsoft telnet server. - http://curl.haxx.se/bug/view.cgi?id=1720605 - -41. When doing an operation over FTP that requires the ACCT command (but not - when logging in), the operation will fail since libcurl doesn't detect this - and thus fails to issue the correct command: - http://curl.haxx.se/bug/view.cgi?id=1693337 - -39. Steffen Rumler's Race Condition in Curl_proxyCONNECT: - http://curl.haxx.se/mail/lib-2007-01/0045.html - -38. Kumar Swamy Bhatt's problem in ftp/ssl "LIST" operation: - http://curl.haxx.se/mail/lib-2007-01/0103.html - -35. Both SOCKS5 and SOCKS4 proxy connections are done blocking, which is very - bad when used with the multi interface. - -34. The SOCKS4 connection codes don't properly acknowledge (connect) timeouts. - Also see #12. According to bug #1556528, even the SOCKS5 connect code does - not do it right: http://curl.haxx.se/bug/view.cgi?id=1556528, - -31. "curl-config --libs" will include details set in LDFLAGS when configure is - run that might be needed only for building libcurl. Further, curl-config - --cflags suffers from the same effects with CFLAGS/CPPFLAGS. - -30. You need to use -g to the command line tool in order to use RFC2732-style - IPv6 numerical addresses in URLs. - -29. IPv6 URLs with zone ID is not nicely supported. - http://www.ietf.org/internet-drafts/draft-fenner-literal-zone-02.txt (expired) - specifies the use of a plus sign instead of a percent when specifying zone - IDs in URLs to get around the problem of percent signs being - special. According to the reporter, Firefox deals with the URL _with_ a - percent letter (which seems like a blatant URL spec violation). - libcurl supports zone IDs where the percent sign is URL-escaped (i.e. %25). - - See http://curl.haxx.se/bug/view.cgi?id=1371118 - -26. NTLM authentication using SSPI (on Windows) when (lib)curl is running in - "system context" will make it use wrong(?) user name - at least when compared - to what winhttp does. See http://curl.haxx.se/bug/view.cgi?id=1281867 - -23. SOCKS-related problems: - B) libcurl doesn't support FTPS over a SOCKS proxy. - E) libcurl doesn't support active FTP over a SOCKS proxy - - We probably have even more bugs and lack of features when a SOCKS proxy is - used. - -22. Sending files to a FTP server using curl on VMS, might lead to curl - complaining on "unaligned file size" on completion. The problem is related - to VMS file structures and the perceived file sizes stat() returns. A - possible fix would involve sending a "STRU VMS" command. - http://curl.haxx.se/bug/view.cgi?id=1156287 - -21. FTP ASCII transfers do not follow RFC959. They don't convert the data - accordingly (not for sending nor for receiving). RFC 959 section 3.1.1.1 - clearly describes how this should be done: - - The sender converts the data from an internal character representation to - the standard 8-bit NVT-ASCII representation (see the Telnet - specification). The receiver will convert the data from the standard - form to his own internal form. - - Since 7.15.4 at least line endings are converted. - -16. FTP URLs passed to curl may contain NUL (0x00) in the RFC 1738 , - , and components, encoded as "%00". The problem is that - curl_unescape does not detect this, but instead returns a shortened C - string. From a strict FTP protocol standpoint, NUL is a valid character - within RFC 959 , so the way to handle this correctly in curl would - be to use a data structure other than a plain C string, one that can handle - embedded NUL characters. From a practical standpoint, most FTP servers - would not meaningfully support NUL characters within RFC 959 , - anyway (e.g., UNIX pathnames may not contain NUL). - -14. Test case 165 might fail on a system which has libidn present, but with an - old iconv version (2.1.3 is a known bad version), since it doesn't recognize - the charset when named ISO8859-1. Changing the name to ISO-8859-1 makes the - test pass, but instead makes it fail on Solaris hosts that use its native - iconv. - -13. curl version 7.12.2 fails on AIX if compiled with --enable-ares. - The workaround is to combine --enable-ares with --disable-shared - -12. When connecting to a SOCKS proxy, the (connect) timeout is not properly - acknowledged after the actual TCP connect (during the SOCKS "negotiate" - phase). - -10. To get HTTP Negotiate authentication to work fine, you need to provide a - (fake) user name (this concerns both curl and the lib) because the code - wrongly only considers authentication if there's a user name provided. - http://curl.haxx.se/bug/view.cgi?id=1004841. How? - http://curl.haxx.se/mail/lib-2004-08/0182.html - -8. Doing resumed upload over HTTP does not work with '-C -', because curl - doesn't do a HEAD first to get the initial size. This needs to be done - manually for HTTP PUT resume to work, and then '-C [index]'. - -6. libcurl ignores empty path parts in FTP URLs, whereas RFC1738 states that - such parts should be sent to the server as 'CWD ' (without an argument). - The only exception to this rule, is that we knowingly break this if the - empty part is first in the path, as then we use the double slashes to - indicate that the user wants to reach the root dir (this exception SHALL - remain even when this bug is fixed). - -5. libcurl doesn't treat the content-length of compressed data properly, as - it seems HTTP servers send the *uncompressed* length in that header and - libcurl thinks of it as the *compressed* length. Some explanations are here: - http://curl.haxx.se/mail/lib-2003-06/0146.html - -2. If a HTTP server responds to a HEAD request and includes a body (thus - violating the RFC2616), curl won't wait to read the response but just stop - reading and return back. If a second request (let's assume a GET) is then - immediately made to the same server again, the connection will be re-used - fine of course, and the second request will be sent off but when the - response is to get read, the previous response-body is what curl will read - and havoc is what happens. - More details on this is found in this libcurl mailing list thread: - http://curl.haxx.se/mail/lib-2002-08/0000.html diff --git a/msvc-deps/curl/docs/LICENSE-MIXING b/msvc-deps/curl/docs/LICENSE-MIXING deleted file mode 100644 index f596546d..00000000 --- a/msvc-deps/curl/docs/LICENSE-MIXING +++ /dev/null @@ -1,130 +0,0 @@ - License Mixing with apps, libcurl and Third Party Libraries - =========================================================== - -libcurl can be built to use a fair amount of various third party libraries, -libraries that are written and provided by other parties that are distributed -using their own licenses. Even libcurl itself contains code that may cause -problems to some. This document attempts to describe what licenses libcurl and -the other libraries use and what possible dilemmas linking and mixing them all -can lead to for end users. - -I am not a lawyer and this is not legal advice! - -One common dilemma is that GPL[1]-licensed code is not allowed to be linked -with code licensed under the Original BSD license (with the announcement -clause). You may still build your own copies that use them all, but -distributing them as binaries would be to violate the GPL license - unless you -accompany your license with an exception[2]. This particular problem was -addressed when the Modified BSD license was created, which does not have the -announcement clause that collides with GPL. - -libcurl http://curl.haxx.se/docs/copyright.html - - Uses an MIT (or Modified BSD)-style license that is as liberal as - possible. Some of the source files that deal with KRB4 have Original - BSD-style announce-clause licenses. You may not distribute binaries - with krb4-enabled libcurl that also link with GPL-licensed code! - -OpenSSL http://www.openssl.org/source/license.html - - (May be used for SSL/TLS support) Uses an Original BSD-style license - with an announcement clause that makes it "incompatible" with GPL. You - are not allowed to ship binaries that link with OpenSSL that includes - GPL code (unless that specific GPL code includes an exception for - OpenSSL - a habit that is growing more and more common). If OpenSSL's - licensing is a problem for you, consider using GnuTLS or yassl - instead. - -GnuTLS http://www.gnutls.org/ - - (May be used for SSL/TLS support) Uses the LGPL[3] license. If this is - a problem for you, consider using OpenSSL instead. Also note that - GnuTLS itself depends on and uses other libs (libgcrypt and - libgpg-error) and they too are LGPL- or GPL-licensed. - -yassl http://www.yassl.com/ - - (May be used for SSL/TLS support) Uses the GPL[1] license. If this is - a problem for you, consider using OpenSSL or GnuTLS instead. - -NSS http://www.mozilla.org/projects/security/pki/nss/ - - (May be used for SSL/TLS support) Is covered by the MPL[4] license, - the GPL[1] license and the LGPL[3] license. You may choose to license - the code under MPL terms, GPL terms, or LGPL terms. These licenses - grant you different permissions and impose different obligations. You - should select the license that best meets your needs. - -axTLS http://axtls.sourceforge.net/ - - (May be used for SSL/TLS support) Uses a Modified BSD-style license. - -c-ares http://daniel.haxx.se/projects/c-ares/license.html - - (Used for asynchronous name resolves) Uses an MIT license that is very - liberal and imposes no restrictions on any other library or part you - may link with. - -zlib http://www.gzip.org/zlib/zlib_license.html - - (Used for compressed Transfer-Encoding support) Uses an MIT-style - license that shouldn't collide with any other library. - -krb4 - - While nothing in particular says that a Kerberos4 library must use any - particular license, the one I've tried and used successfully so far - (kth-krb4) is partly Original BSD-licensed with the announcement - clause. Some of the code in libcurl that is written to deal with - Kerberos4 is Modified BSD-licensed. - -MIT Kerberos http://web.mit.edu/kerberos/www/dist/ - - (May be used for GSS support) MIT licensed, that shouldn't collide - with any other parts. - -Heimdal http://www.pdc.kth.se/heimdal/ - - (May be used for GSS support) Heimdal is Original BSD licensed with - the announcement clause. - -GNU GSS http://www.gnu.org/software/gss/ - - (May be used for GSS support) GNU GSS is GPL licensed. Note that you - may not distribute binary curl packages that uses this if you build - curl to also link and use any Original BSD licensed libraries! - -fbopenssl - - (Used for SPNEGO support) Unclear license. Based on its name, I assume - that it uses the OpenSSL license and thus shares the same issues as - described for OpenSSL above. - -libidn http://josefsson.org/libidn/ - - (Used for IDNA support) Uses the GNU Lesser General Public - License [3]. LGPL is a variation of GPL with slightly less aggressive - "copyleft". This license requires more requirements to be met when - distributing binaries, see the license for details. Also note that if - you distribute a binary that includes this library, you must also - include the full LGPL license text. Please properly point out what - parts of the distributed package that the license addresses. - -OpenLDAP http://www.openldap.org/software/release/license.html - - (Used for LDAP support) Uses a Modified BSD-style license. Since - libcurl uses OpenLDAP as a shared library only, I have not heard of - anyone that ships OpenLDAP linked with libcurl in an app. - -libssh2 http://www.libssh2.org/ - - (Used for scp and sftp support) libssh2 uses a Modified BSD-style - license. - -[1] = GPL - GNU General Public License: http://www.gnu.org/licenses/gpl.html -[2] = http://www.fsf.org/licenses/gpl-faq.html#GPLIncompatibleLibs details on - how to write such an exception to the GPL -[3] = LGPL - GNU Lesser General Public License: - http://www.gnu.org/licenses/lgpl.html -[4] = MPL - Mozilla Public License: - http://www.mozilla.org/MPL/ diff --git a/msvc-deps/curl/docs/MAIL-ETIQUETTE b/msvc-deps/curl/docs/MAIL-ETIQUETTE deleted file mode 100644 index ae1821a8..00000000 --- a/msvc-deps/curl/docs/MAIL-ETIQUETTE +++ /dev/null @@ -1,228 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - -MAIL ETIQUETTE - - 1. About the lists - 1.1 Mailing Lists - 1.2 Netiquette - 1.3 Do Not Mail a Single Individual - 1.4 Subscription Required - 1.5 Moderation of new posters - 1.6 Handling trolls and spam - 1.7 How to unsubscribe - - 2. Sending mail - 2.1 Reply or New Mail - 2.2 Reply to the List - 2.3 Use a Sensible Subject - 2.4 Do Not Top-Post - 2.5 HTML is not for mails - 2.6 Quoting - 2.7 Digest - 2.8 Please Tell Us How You Solved The Problem! - -============================================================================== - -1. About the lists - - 1.1 Mailing Lists - - The mailing lists we have are all listed and described at - http://curl.haxx.se/mail/ - - Each mailing list is targeted to a specific set of users and subjects, - please use the one or the ones that suit you the most. - - Each mailing list have hundreds up to thousands of readers, meaning that - each mail sent will be received and read by a very large amount of people. - People from various cultures, regions, religions and continents. - - 1.2 Netiquette - - Netiquette is a common name for how to behave on the internet. Of course, in - each particular group and subculture there will be differences in what is - acceptable and what is considered good manners. - - This document outlines what we in the cURL project considers to be good - etiquette, and primarily this focus on how to behave on and how to use our - mailing lists. - - 1.3 Do Not Mail a Single Individual - - Many people send one question to one person. One person gets many mails, and - there is only one person who can give you a reply. The question may be - something that other people are also wanting to ask. These other people have - no way to read the reply, but to ask the one person the question. The one - person consequently gets overloaded with mail. - - If you really want to contact an individual and perhaps pay for his or her - services, by all means go ahead, but if it's just another curl question, - take it to a suitable list instead. - - 1.4 Subscription Required - - All curl mailing lists require that you are subscribed to allow a mail to go - through to all the subscribers. - - If you post without being subscribed (or from a different mail address than - the one you are subscribed with), your mail will simply be silently - discarded. You have to subscribe first, then post. - - The reason for this unfortunate and strict subscription policy is of course - to stop spam from pestering the lists. - - 1.5 Moderation of new posters - - Several of the curl mailing lists automatically make all posts from new - subscribers require moderation. This means that after you've subscribed and - send your first mail to a list, that mail will not be let through to the - list until a mailing list administrator has verified that it is OK and - permits it to get posted. - - Once a first post has been made that proves the sender is actually talking - about curl-related subjects, the moderation "flag" will be switched off and - future posts will go through without being moderated. - - The reason for this moderation policy is that we do suffer from spammers who - actually subscribe and send spam to our lists. - - 1.6 Handling trolls and spam - - Despite our good intentions and hard work to keep spam off the lists and to - maintain a friendly and positive atmosphere, there will be times when spam - and or trolls get through. - - Troll - "someone who posts inflammatory, extraneous, or off-topic messages - in an online community" - - Spam - "use of electronic messaging systems to send unsolicited bulk - messages" - - No matter what, we NEVER EVER respond to trolls or spammers on the list. If - you believe the list admin should do something particular, contact him/her - off-list. The subject will be taken care of as good as possible to prevent - repeated offences, but responding on the list to such messages never lead to - anything good and only puts the light even more on the offender: which was - the entire purpose of it getting to the list in the first place. - - Don't feed the trolls! - - 1.7 How to unsubscribe - - You unsubscribe the same way you subscribed in the first place. You go to - the page for the particular mailing list you're subscribed to and you enter - your email address and password and press the unsubscribe button. - - Also, this information is included in the headers of every mail that is sent - out to all curl related mailing lists and there's footer in each mail that - links to the "admin" page on which you can unsubscribe and change other - options. - - You NEVER EVER email the mailing list requesting someone else to get you off - the list. - - -2. Sending mail - - 2.1 Reply or New Mail - - Please do not reply to an existing message as a short-cut to post a message - to the lists. - - Many mail programs and web archivers use information within mails to keep - them together as "threads", as collections of posts that discuss a certain - subject. If you don't intend to reply on the same or similar subject, don't - just hit reply on an existing mail and change subject, create a new mail. - - 2.2 Reply to the List - - When replying to a message from the list, make sure that you do "group - reply" or "reply to all", and not just reply to the author of the single - mail you reply to. - - We're actively discouraging replying back to the single person by setting - the Reply-To: field in outgoing mails back to the mailing list address, - making it harder for people to mail the author only by mistake. - - 2.3 Use a Sensible Subject - - Please use a subject of the mail that makes sense and that is related to the - contents of your mail. It makes it a lot easier to find your mail afterwards - and it makes it easier to track mail threads and topics. - - 2.4 Do Not Top-Post - - If you reply to a message, don't use top-posting. Top-posting is when you - write the new text at the top of a mail and you insert the previous quoted - mail conversation below. It forces users to read the mail in a backwards - order to properly understand it. - - This is why top posting is so bad: - - A: Because it messes up the order in which people normally read - text. - Q: Why is top-posting such a bad thing? - A: Top-posting. - Q: What is the most annoying thing in e-mail? - - Apart from the screwed up read order (especially when mixed together in a - thread when someone responds using the mandated bottom-posting style), it - also makes it impossible to quote only parts of the original mail. - - When you reply to a mail. You let the mail client insert the previous mail - quoted. Then you put the cursor on the first line of the mail and you move - down through the mail, deleting all parts of the quotes that don't add - context for your comments. When you want to add a comment you do so, inline, - right after the quotes that relate to your comment. Then you continue - downwards again. - - When most of the quotes have been removed and you've added your own words, - you're done! - - 2.5 HTML is not for mails - - Please switch off those HTML encoded messages. You can mail all those funny - mails to your friends. We speak plain text mails. - - 2.6 Quoting - - Quote as little as possible. Just enough to provide the context you cannot - leave out. A lengthy description can be found here: - - http://www.netmeister.org/news/learn2quote.html - - 2.7 Digest - - We allow subscribers to subscribe to the "digest" version of the mailing - lists. A digest is a collection of mails lumped together in one single mail. - - Should you decide to reply to a mail sent out as a digest, there are two - things you MUST consider if you really really cannot subscribe normally - instead: - - Cut off all mails and chatter that is not related to the mail you want to - reply to. - - Change the subject name to something sensible and related to the subject, - preferably even the actual subject of the single mail you wanted to reply to - - 2.8 Please Tell Us How You Solved The Problem! - - Many people mail questions to the list, people spend some of their time and - make an effort in providing good answers to these questions. - - If you are the one who asks, please consider responding once more in case - one of the hints was what solved your problems. The guys who write answers - feel good to know that they provided a good answer and that you fixed the - problem. Far too often, the person who asked the question is never heard of - again, and we never get to know if he/she is gone because the problem was - solved or perhaps because the problem was unsolvable! - - Getting the solution posted also helps other users that experience the same - problem(s). They get to see (possibly in the web archives) that the - suggested fixes actually has helped at least one person. - diff --git a/msvc-deps/curl/docs/MANUAL b/msvc-deps/curl/docs/MANUAL deleted file mode 100644 index 4ad2e135..00000000 --- a/msvc-deps/curl/docs/MANUAL +++ /dev/null @@ -1,1023 +0,0 @@ -LATEST VERSION - - You always find news about what's going on as well as the latest versions - from the curl web pages, located at: - - http://curl.haxx.se - -SIMPLE USAGE - - Get the main page from Netscape's web-server: - - curl http://www.netscape.com/ - - Get the README file the user's home directory at funet's ftp-server: - - curl ftp://ftp.funet.fi/README - - Get a web page from a server using port 8000: - - curl http://www.weirdserver.com:8000/ - - Get a directory listing of an FTP site: - - curl ftp://cool.haxx.se/ - - Get the definition of curl from a dictionary: - - curl dict://dict.org/m:curl - - Fetch two documents at once: - - curl ftp://cool.haxx.se/ http://www.weirdserver.com:8000/ - - Get a file off an FTPS server: - - curl ftps://files.are.secure.com/secrets.txt - - or use the more appropriate FTPS way to get the same file: - - curl --ftp-ssl ftp://files.are.secure.com/secrets.txt - - Get a file from an SSH server using SFTP: - - curl -u username sftp://shell.example.com/etc/issue - - Get a file from an SSH server using SCP using a private key to authenticate: - - curl -u username: --key ~/.ssh/id_dsa --pubkey ~/.ssh/id_dsa.pub \ - scp://shell.example.com/~/personal.txt - - Get the main page from an IPv6 web server: - - curl -g "http://[2001:1890:1112:1::20]/" - -DOWNLOAD TO A FILE - - Get a web page and store in a local file with a specific name: - - curl -o thatpage.html http://www.netscape.com/ - - Get a web page and store in a local file, make the local file get the name - of the remote document (if no file name part is specified in the URL, this - will fail): - - curl -O http://www.netscape.com/index.html - - Fetch two files and store them with their remote names: - - curl -O www.haxx.se/index.html -O curl.haxx.se/download.html - -USING PASSWORDS - - FTP - - To ftp files using name+passwd, include them in the URL like: - - curl ftp://name:passwd@machine.domain:port/full/path/to/file - - or specify them with the -u flag like - - curl -u name:passwd ftp://machine.domain:port/full/path/to/file - - FTPS - - It is just like for FTP, but you may also want to specify and use - SSL-specific options for certificates etc. - - Note that using FTPS:// as prefix is the "implicit" way as described in the - standards while the recommended "explicit" way is done by using FTP:// and - the --ftp-ssl option. - - SFTP / SCP - - This is similar to FTP, but you can specify a private key to use instead of - a password. Note that the private key may itself be protected by a password - that is unrelated to the login password of the remote system. If you - provide a private key file you must also provide a public key file. - - HTTP - - Curl also supports user and password in HTTP URLs, thus you can pick a file - like: - - curl http://name:passwd@machine.domain/full/path/to/file - - or specify user and password separately like in - - curl -u name:passwd http://machine.domain/full/path/to/file - - HTTP offers many different methods of authentication and curl supports - several: Basic, Digest, NTLM and Negotiate. Without telling which method to - use, curl defaults to Basic. You can also ask curl to pick the most secure - ones out of the ones that the server accepts for the given URL, by using - --anyauth. - - NOTE! According to the URL specification, HTTP URLs can not contain a user - and password, so that style will not work when using curl via a proxy, even - though curl allows it at other times. When using a proxy, you _must_ use - the -u style for user and password. - - HTTPS - - Probably most commonly used with private certificates, as explained below. - -PROXY - - curl supports both HTTP and SOCKS proxy servers, with optional authentication. - It does not have special support for FTP proxy servers since there are no - standards for those, but it can still be made to work with many of them. You - can also use both HTTP and SOCKS proxies to transfer files to and from FTP - servers. - - Get an ftp file using an HTTP proxy named my-proxy that uses port 888: - - curl -x my-proxy:888 ftp://ftp.leachsite.com/README - - Get a file from an HTTP server that requires user and password, using the - same proxy as above: - - curl -u user:passwd -x my-proxy:888 http://www.get.this/ - - Some proxies require special authentication. Specify by using -U as above: - - curl -U user:passwd -x my-proxy:888 http://www.get.this/ - - A comma-separated list of hosts and domains which do not use the proxy can - be specified as: - - curl --noproxy localhost,get.this -x my-proxy:888 http://www.get.this/ - - If the proxy is specified with --proxy1.0 instead of --proxy or -x, then - curl will use HTTP/1.0 instead of HTTP/1.1 for any CONNECT attempts. - - curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5. - - See also the environment variables Curl supports that offer further proxy - control. - - Most FTP proxy servers are set up to appear as a normal FTP server from the - client's perspective, with special commands to select the remote FTP server. - curl supports the -u, -Q and --ftp-account options that can be used to - set up transfers through many FTP proxies. For example, a file can be - uploaded to a remote FTP server using a Blue Coat FTP proxy with the - options: - - curl -u "Remote-FTP-Username@remote.ftp.server Proxy-Username:Remote-Pass" \ - --ftp-account Proxy-Password --upload-file local-file \ - ftp://my-ftp.proxy.server:21/remote/upload/path/ - - See the manual for your FTP proxy to determine the form it expects to set up - transfers, and curl's -v option to see exactly what curl is sending. - -RANGES - - HTTP 1.1 introduced byte-ranges. Using this, a client can request - to get only one or more subparts of a specified document. Curl supports - this with the -r flag. - - Get the first 100 bytes of a document: - - curl -r 0-99 http://www.get.this/ - - Get the last 500 bytes of a document: - - curl -r -500 http://www.get.this/ - - Curl also supports simple ranges for FTP files as well. Then you can only - specify start and stop position. - - Get the first 100 bytes of a document using FTP: - - curl -r 0-99 ftp://www.get.this/README - -UPLOADING - - FTP / FTPS / SFTP / SCP - - Upload all data on stdin to a specified server: - - curl -T - ftp://ftp.upload.com/myfile - - Upload data from a specified file, login with user and password: - - curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile - - Upload a local file to the remote site, and use the local file name at the remote - site too: - - curl -T uploadfile -u user:passwd ftp://ftp.upload.com/ - - Upload a local file to get appended to the remote file: - - curl -T localfile -a ftp://ftp.upload.com/remotefile - - Curl also supports ftp upload through a proxy, but only if the proxy is - configured to allow that kind of tunneling. If it does, you can run curl in - a fashion similar to: - - curl --proxytunnel -x proxy:port -T localfile ftp.upload.com - - HTTP - - Upload all data on stdin to a specified HTTP site: - - curl -T - http://www.upload.com/myfile - - Note that the HTTP server must have been configured to accept PUT before - this can be done successfully. - - For other ways to do HTTP data upload, see the POST section below. - -VERBOSE / DEBUG - - If curl fails where it isn't supposed to, if the servers don't let you in, - if you can't understand the responses: use the -v flag to get verbose - fetching. Curl will output lots of info and what it sends and receives in - order to let the user see all client-server interaction (but it won't show - you the actual data). - - curl -v ftp://ftp.upload.com/ - - To get even more details and information on what curl does, try using the - --trace or --trace-ascii options with a given file name to log to, like - this: - - curl --trace trace.txt www.haxx.se - - -DETAILED INFORMATION - - Different protocols provide different ways of getting detailed information - about specific files/documents. To get curl to show detailed information - about a single file, you should use -I/--head option. It displays all - available info on a single file for HTTP and FTP. The HTTP information is a - lot more extensive. - - For HTTP, you can get the header information (the same as -I would show) - shown before the data by using -i/--include. Curl understands the - -D/--dump-header option when getting files from both FTP and HTTP, and it - will then store the headers in the specified file. - - Store the HTTP headers in a separate file (headers.txt in the example): - - curl --dump-header headers.txt curl.haxx.se - - Note that headers stored in a separate file can be very useful at a later - time if you want curl to use cookies sent by the server. More about that in - the cookies section. - -POST (HTTP) - - It's easy to post data using curl. This is done using the -d - option. The post data must be urlencoded. - - Post a simple "name" and "phone" guestbook. - - curl -d "name=Rafael%20Sagula&phone=3320780" \ - http://www.where.com/guest.cgi - - How to post a form with curl, lesson #1: - - Dig out all the tags in the form that you want to fill in. (There's - a perl program called formfind.pl on the curl site that helps with this). - - If there's a "normal" post, you use -d to post. -d takes a full "post - string", which is in the format - - =&=&... - - The 'variable' names are the names set with "name=" in the tags, and - the data is the contents you want to fill in for the inputs. The data *must* - be properly URL encoded. That means you replace space with + and that you - replace weird letters with %XX where XX is the hexadecimal representation of - the letter's ASCII code. - - Example: - - (page located at http://www.formpost.com/getthis/ - -
- - - - -
- - We want to enter user 'foobar' with password '12345'. - - To post to this, you enter a curl command line like: - - curl -d "user=foobar&pass=12345&id=blablabla&ding=submit" (continues) - http://www.formpost.com/getthis/post.cgi - - - While -d uses the application/x-www-form-urlencoded mime-type, generally - understood by CGI's and similar, curl also supports the more capable - multipart/form-data type. This latter type supports things like file upload. - - -F accepts parameters like -F "name=contents". If you want the contents to - be read from a file, use <@filename> as contents. When specifying a file, - you can also specify the file content type by appending ';type=' - to the file name. You can also post the contents of several files in one - field. For example, the field name 'coolfiles' is used to send three files, - with different content types using the following syntax: - - curl -F "coolfiles=@fil1.gif;type=image/gif,fil2.txt,fil3.html" \ - http://www.post.com/postit.cgi - - If the content-type is not specified, curl will try to guess from the file - extension (it only knows a few), or use the previously specified type (from - an earlier file if several files are specified in a list) or else it will - use the default type 'application/octet-stream'. - - Emulate a fill-in form with -F. Let's say you fill in three fields in a - form. One field is a file name which to post, one field is your name and one - field is a file description. We want to post the file we have written named - "cooltext.txt". To let curl do the posting of this data instead of your - favourite browser, you have to read the HTML source of the form page and - find the names of the input fields. In our example, the input field names - are 'file', 'yourname' and 'filedescription'. - - curl -F "file=@cooltext.txt" -F "yourname=Daniel" \ - -F "filedescription=Cool text file with cool text inside" \ - http://www.post.com/postit.cgi - - To send two files in one post you can do it in two ways: - - 1. Send multiple files in a single "field" with a single field name: - - curl -F "pictures=@dog.gif,cat.gif" - - 2. Send two fields with two field names: - - curl -F "docpicture=@dog.gif" -F "catpicture=@cat.gif" - - To send a field value literally without interpreting a leading '@' - or '<', or an embedded ';type=', use --form-string instead of - -F. This is recommended when the value is obtained from a user or - some other unpredictable source. Under these circumstances, using - -F instead of --form-string would allow a user to trick curl into - uploading a file. - -REFERRER - - An HTTP request has the option to include information about which address - referred it to the actual page. Curl allows you to specify the - referrer to be used on the command line. It is especially useful to - fool or trick stupid servers or CGI scripts that rely on that information - being available or contain certain data. - - curl -e www.coolsite.com http://www.showme.com/ - - NOTE: The Referer: [sic] field is defined in the HTTP spec to be a full URL. - -USER AGENT - - An HTTP request has the option to include information about the browser - that generated the request. Curl allows it to be specified on the command - line. It is especially useful to fool or trick stupid servers or CGI - scripts that only accept certain browsers. - - Example: - - curl -A 'Mozilla/3.0 (Win95; I)' http://www.nationsbank.com/ - - Other common strings: - 'Mozilla/3.0 (Win95; I)' Netscape Version 3 for Windows 95 - 'Mozilla/3.04 (Win95; U)' Netscape Version 3 for Windows 95 - 'Mozilla/2.02 (OS/2; U)' Netscape Version 2 for OS/2 - 'Mozilla/4.04 [en] (X11; U; AIX 4.2; Nav)' NS for AIX - 'Mozilla/4.05 [en] (X11; U; Linux 2.0.32 i586)' NS for Linux - - Note that Internet Explorer tries hard to be compatible in every way: - 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)' MSIE for W95 - - Mozilla is not the only possible User-Agent name: - 'Konqueror/1.0' KDE File Manager desktop client - 'Lynx/2.7.1 libwww-FM/2.14' Lynx command line browser - -COOKIES - - Cookies are generally used by web servers to keep state information at the - client's side. The server sets cookies by sending a response line in the - headers that looks like 'Set-Cookie: ' where the data part then - typically contains a set of NAME=VALUE pairs (separated by semicolons ';' - like "NAME1=VALUE1; NAME2=VALUE2;"). The server can also specify for what - path the "cookie" should be used for (by specifying "path=value"), when the - cookie should expire ("expire=DATE"), for what domain to use it - ("domain=NAME") and if it should be used on secure connections only - ("secure"). - - If you've received a page from a server that contains a header like: - Set-Cookie: sessionid=boo123; path="/foo"; - - it means the server wants that first pair passed on when we get anything in - a path beginning with "/foo". - - Example, get a page that wants my name passed in a cookie: - - curl -b "name=Daniel" www.sillypage.com - - Curl also has the ability to use previously received cookies in following - sessions. If you get cookies from a server and store them in a file in a - manner similar to: - - curl --dump-header headers www.example.com - - ... you can then in a second connect to that (or another) site, use the - cookies from the 'headers' file like: - - curl -b headers www.example.com - - While saving headers to a file is a working way to store cookies, it is - however error-prone and not the preferred way to do this. Instead, make curl - save the incoming cookies using the well-known netscape cookie format like - this: - - curl -c cookies.txt www.example.com - - Note that by specifying -b you enable the "cookie awareness" and with -L - you can make curl follow a location: (which often is used in combination - with cookies). So that if a site sends cookies and a location, you can - use a non-existing file to trigger the cookie awareness like: - - curl -L -b empty.txt www.example.com - - The file to read cookies from must be formatted using plain HTTP headers OR - as netscape's cookie file. Curl will determine what kind it is based on the - file contents. In the above command, curl will parse the header and store - the cookies received from www.example.com. curl will send to the server the - stored cookies which match the request as it follows the location. The - file "empty.txt" may be a nonexistent file. - - Alas, to both read and write cookies from a netscape cookie file, you can - set both -b and -c to use the same file: - - curl -b cookies.txt -c cookies.txt www.example.com - -PROGRESS METER - - The progress meter exists to show a user that something actually is - happening. The different fields in the output have the following meaning: - - % Total % Received % Xferd Average Speed Time Curr. - Dload Upload Total Current Left Speed - 0 151M 0 38608 0 0 9406 0 4:41:43 0:00:04 4:41:39 9287 - - From left-to-right: - % - percentage completed of the whole transfer - Total - total size of the whole expected transfer - % - percentage completed of the download - Received - currently downloaded amount of bytes - % - percentage completed of the upload - Xferd - currently uploaded amount of bytes - Average Speed - Dload - the average transfer speed of the download - Average Speed - Upload - the average transfer speed of the upload - Time Total - expected time to complete the operation - Time Current - time passed since the invoke - Time Left - expected time left to completion - Curr.Speed - the average transfer speed the last 5 seconds (the first - 5 seconds of a transfer is based on less time of course.) - - The -# option will display a totally different progress bar that doesn't - need much explanation! - -SPEED LIMIT - - Curl allows the user to set the transfer speed conditions that must be met - to let the transfer keep going. By using the switch -y and -Y you - can make curl abort transfers if the transfer speed is below the specified - lowest limit for a specified time. - - To have curl abort the download if the speed is slower than 3000 bytes per - second for 1 minute, run: - - curl -Y 3000 -y 60 www.far-away-site.com - - This can very well be used in combination with the overall time limit, so - that the above operation must be completed in whole within 30 minutes: - - curl -m 1800 -Y 3000 -y 60 www.far-away-site.com - - Forcing curl not to transfer data faster than a given rate is also possible, - which might be useful if you're using a limited bandwidth connection and you - don't want your transfer to use all of it (sometimes referred to as - "bandwidth throttle"). - - Make curl transfer data no faster than 10 kilobytes per second: - - curl --limit-rate 10K www.far-away-site.com - - or - - curl --limit-rate 10240 www.far-away-site.com - - Or prevent curl from uploading data faster than 1 megabyte per second: - - curl -T upload --limit-rate 1M ftp://uploadshereplease.com - - When using the --limit-rate option, the transfer rate is regulated on a - per-second basis, which will cause the total transfer speed to become lower - than the given number. Sometimes of course substantially lower, if your - transfer stalls during periods. - -CONFIG FILE - - Curl automatically tries to read the .curlrc file (or _curlrc file on win32 - systems) from the user's home dir on startup. - - The config file could be made up with normal command line switches, but you - can also specify the long options without the dashes to make it more - readable. You can separate the options and the parameter with spaces, or - with = or :. Comments can be used within the file. If the first letter on a - line is a '#'-symbol the rest of the line is treated as a comment. - - If you want the parameter to contain spaces, you must enclose the entire - parameter within double quotes ("). Within those quotes, you specify a - quote as \". - - NOTE: You must specify options and their arguments on the same line. - - Example, set default time out and proxy in a config file: - - # We want a 30 minute timeout: - -m 1800 - # ... and we use a proxy for all accesses: - proxy = proxy.our.domain.com:8080 - - White spaces ARE significant at the end of lines, but all white spaces - leading up to the first characters of each line are ignored. - - Prevent curl from reading the default file by using -q as the first command - line parameter, like: - - curl -q www.thatsite.com - - Force curl to get and display a local help page in case it is invoked - without URL by making a config file similar to: - - # default url to get - url = "http://help.with.curl.com/curlhelp.html" - - You can specify another config file to be read by using the -K/--config - flag. If you set config file name to "-" it'll read the config from stdin, - which can be handy if you want to hide options from being visible in process - tables etc: - - echo "user = user:passwd" | curl -K - http://that.secret.site.com - -EXTRA HEADERS - - When using curl in your own very special programs, you may end up needing - to pass on your own custom headers when getting a web page. You can do - this by using the -H flag. - - Example, send the header "X-you-and-me: yes" to the server when getting a - page: - - curl -H "X-you-and-me: yes" www.love.com - - This can also be useful in case you want curl to send a different text in a - header than it normally does. The -H header you specify then replaces the - header curl would normally send. If you replace an internal header with an - empty one, you prevent that header from being sent. To prevent the Host: - header from being used: - - curl -H "Host:" www.server.com - -FTP and PATH NAMES - - Do note that when getting files with the ftp:// URL, the given path is - relative the directory you enter. To get the file 'README' from your home - directory at your ftp site, do: - - curl ftp://user:passwd@my.site.com/README - - But if you want the README file from the root directory of that very same - site, you need to specify the absolute file name: - - curl ftp://user:passwd@my.site.com//README - - (I.e with an extra slash in front of the file name.) - -SFTP and SCP and PATH NAMES - - With sftp: and scp: URLs, the path name given is the absolute name on the - server. To access a file relative to the remote user's home directory, - prefix the file with /~/ , such as: - - curl -u $USER sftp://home.example.com/~/.bashrc - -FTP and firewalls - - The FTP protocol requires one of the involved parties to open a second - connection as soon as data is about to get transferred. There are two ways to - do this. - - The default way for curl is to issue the PASV command which causes the - server to open another port and await another connection performed by the - client. This is good if the client is behind a firewall that doesn't allow - incoming connections. - - curl ftp.download.com - - If the server, for example, is behind a firewall that doesn't allow connections - on ports other than 21 (or if it just doesn't support the PASV command), the - other way to do it is to use the PORT command and instruct the server to - connect to the client on the given IP number and port (as parameters to the - PORT command). - - The -P flag to curl supports a few different options. Your machine may have - several IP-addresses and/or network interfaces and curl allows you to select - which of them to use. Default address can also be used: - - curl -P - ftp.download.com - - Download with PORT but use the IP address of our 'le0' interface (this does - not work on windows): - - curl -P le0 ftp.download.com - - Download with PORT but use 192.168.0.10 as our IP address to use: - - curl -P 192.168.0.10 ftp.download.com - -NETWORK INTERFACE - - Get a web page from a server using a specified port for the interface: - - curl --interface eth0:1 http://www.netscape.com/ - - or - - curl --interface 192.168.1.10 http://www.netscape.com/ - -HTTPS - - Secure HTTP requires SSL libraries to be installed and used when curl is - built. If that is done, curl is capable of retrieving and posting documents - using the HTTPS protocol. - - Example: - - curl https://www.secure-site.com - - Curl is also capable of using your personal certificates to get/post files - from sites that require valid certificates. The only drawback is that the - certificate needs to be in PEM-format. PEM is a standard and open format to - store certificates with, but it is not used by the most commonly used - browsers (Netscape and MSIE both use the so called PKCS#12 format). If you - want curl to use the certificates you use with your (favourite) browser, you - may need to download/compile a converter that can convert your browser's - formatted certificates to PEM formatted ones. This kind of converter is - included in recent versions of OpenSSL, and for older versions Dr Stephen - N. Henson has written a patch for SSLeay that adds this functionality. You - can get his patch (that requires an SSLeay installation) from his site at: - http://www.drh-consultancy.demon.co.uk/ - - Example on how to automatically retrieve a document using a certificate with - a personal password: - - curl -E /path/to/cert.pem:password https://secure.site.com/ - - If you neglect to specify the password on the command line, you will be - prompted for the correct password before any data can be received. - - Many older SSL-servers have problems with SSLv3 or TLS, which newer versions - of OpenSSL etc use, therefore it is sometimes useful to specify what - SSL-version curl should use. Use -3, -2 or -1 to specify that exact SSL - version to use (for SSLv3, SSLv2 or TLSv1 respectively): - - curl -2 https://secure.site.com/ - - Otherwise, curl will first attempt to use v3 and then v2. - - To use OpenSSL to convert your favourite browser's certificate into a PEM - formatted one that curl can use, do something like this: - - In Netscape, you start with hitting the 'Security' menu button. - - Select 'certificates->yours' and then pick a certificate in the list - - Press the 'Export' button - - enter your PIN code for the certs - - select a proper place to save it - - Run the 'openssl' application to convert the certificate. If you cd to the - openssl installation, you can do it like: - - # ./apps/openssl pkcs12 -in [file you saved] -clcerts -out [PEMfile] - - In Firefox, select Options, then Advanced, then the Encryption tab, - View Certificates. This opens the Certificate Manager, where you can - Export. Be sure to select PEM for the Save as type. - - In Internet Explorer, select Internet Options, then the Content tab, then - Certificates. Then you can Export, and depending on the format you may - need to convert to PEM. - - In Chrome, select Settings, then Show Advanced Settings. Under HTTPS/SSL - select Manage Certificates. - -RESUMING FILE TRANSFERS - - To continue a file transfer where it was previously aborted, curl supports - resume on HTTP(S) downloads as well as FTP uploads and downloads. - - Continue downloading a document: - - curl -C - -o file ftp://ftp.server.com/path/file - - Continue uploading a document(*1): - - curl -C - -T file ftp://ftp.server.com/path/file - - Continue downloading a document from a web server(*2): - - curl -C - -o file http://www.server.com/ - - (*1) = This requires that the FTP server supports the non-standard command - SIZE. If it doesn't, curl will say so. - - (*2) = This requires that the web server supports at least HTTP/1.1. If it - doesn't, curl will say so. - -TIME CONDITIONS - - HTTP allows a client to specify a time condition for the document it - requests. It is If-Modified-Since or If-Unmodified-Since. Curl allows you to - specify them with the -z/--time-cond flag. - - For example, you can easily make a download that only gets performed if the - remote file is newer than a local copy. It would be made like: - - curl -z local.html http://remote.server.com/remote.html - - Or you can download a file only if the local file is newer than the remote - one. Do this by prepending the date string with a '-', as in: - - curl -z -local.html http://remote.server.com/remote.html - - You can specify a "free text" date as condition. Tell curl to only download - the file if it was updated since January 12, 2012: - - curl -z "Jan 12 2012" http://remote.server.com/remote.html - - Curl will then accept a wide range of date formats. You always make the date - check the other way around by prepending it with a dash '-'. - -DICT - - For fun try - - curl dict://dict.org/m:curl - curl dict://dict.org/d:heisenbug:jargon - curl dict://dict.org/d:daniel:web1913 - - Aliases for 'm' are 'match' and 'find', and aliases for 'd' are 'define' - and 'lookup'. For example, - - curl dict://dict.org/find:curl - - Commands that break the URL description of the RFC (but not the DICT - protocol) are - - curl dict://dict.org/show:db - curl dict://dict.org/show:strat - - Authentication is still missing (but this is not required by the RFC) - -LDAP - - If you have installed the OpenLDAP library, curl can take advantage of it - and offer ldap:// support. - - LDAP is a complex thing and writing an LDAP query is not an easy task. I do - advise you to dig up the syntax description for that elsewhere. Two places - that might suit you are: - - Netscape's "Netscape Directory SDK 3.0 for C Programmer's Guide Chapter 10: - Working with LDAP URLs": - http://developer.netscape.com/docs/manuals/dirsdk/csdk30/url.htm - - RFC 2255, "The LDAP URL Format" http://curl.haxx.se/rfc/rfc2255.txt - - To show you an example, this is how I can get all people from my local LDAP - server that has a certain sub-domain in their email address: - - curl -B "ldap://ldap.frontec.se/o=frontec??sub?mail=*sth.frontec.se" - - If I want the same info in HTML format, I can get it by not using the -B - (enforce ASCII) flag. - -ENVIRONMENT VARIABLES - - Curl reads and understands the following environment variables: - - http_proxy, HTTPS_PROXY, FTP_PROXY - - They should be set for protocol-specific proxies. General proxy should be - set with - - ALL_PROXY - - A comma-separated list of host names that shouldn't go through any proxy is - set in (only an asterisk, '*' matches all hosts) - - NO_PROXY - - If the host name matches one of these strings, or the host is within the - domain of one of these strings, transactions with that node will not be - proxied. - - - The usage of the -x/--proxy flag overrides the environment variables. - -NETRC - - Unix introduced the .netrc concept a long time ago. It is a way for a user - to specify name and password for commonly visited FTP sites in a file so - that you don't have to type them in each time you visit those sites. You - realize this is a big security risk if someone else gets hold of your - passwords, so therefore most unix programs won't read this file unless it is - only readable by yourself (curl doesn't care though). - - Curl supports .netrc files if told to (using the -n/--netrc and - --netrc-optional options). This is not restricted to just FTP, - so curl can use it for all protocols where authentication is used. - - A very simple .netrc file could look something like: - - machine curl.haxx.se login iamdaniel password mysecret - -CUSTOM OUTPUT - - To better allow script programmers to get to know about the progress of - curl, the -w/--write-out option was introduced. Using this, you can specify - what information from the previous transfer you want to extract. - - To display the amount of bytes downloaded together with some text and an - ending newline: - - curl -w 'We downloaded %{size_download} bytes\n' www.download.com - -KERBEROS FTP TRANSFER - - Curl supports kerberos4 and kerberos5/GSSAPI for FTP transfers. You need - the kerberos package installed and used at curl build time for it to be - available. - - First, get the krb-ticket the normal way, like with the kinit/kauth tool. - Then use curl in way similar to: - - curl --krb private ftp://krb4site.com -u username:fakepwd - - There's no use for a password on the -u switch, but a blank one will make - curl ask for one and you already entered the real password to kinit/kauth. - -TELNET - - The curl telnet support is basic and very easy to use. Curl passes all data - passed to it on stdin to the remote server. Connect to a remote telnet - server using a command line similar to: - - curl telnet://remote.server.com - - And enter the data to pass to the server on stdin. The result will be sent - to stdout or to the file you specify with -o. - - You might want the -N/--no-buffer option to switch off the buffered output - for slow connections or similar. - - Pass options to the telnet protocol negotiation, by using the -t option. To - tell the server we use a vt100 terminal, try something like: - - curl -tTTYPE=vt100 telnet://remote.server.com - - Other interesting options for it -t include: - - - XDISPLOC= Sets the X display location. - - - NEW_ENV= Sets an environment variable. - - NOTE: The telnet protocol does not specify any way to login with a specified - user and password so curl can't do that automatically. To do that, you need - to track when the login prompt is received and send the username and - password accordingly. - -PERSISTENT CONNECTIONS - - Specifying multiple files on a single command line will make curl transfer - all of them, one after the other in the specified order. - - libcurl will attempt to use persistent connections for the transfers so that - the second transfer to the same host can use the same connection that was - already initiated and was left open in the previous transfer. This greatly - decreases connection time for all but the first transfer and it makes a far - better use of the network. - - Note that curl cannot use persistent connections for transfers that are used - in subsequence curl invokes. Try to stuff as many URLs as possible on the - same command line if they are using the same host, as that'll make the - transfers faster. If you use an HTTP proxy for file transfers, practically - all transfers will be persistent. - -MULTIPLE TRANSFERS WITH A SINGLE COMMAND LINE - - As is mentioned above, you can download multiple files with one command line - by simply adding more URLs. If you want those to get saved to a local file - instead of just printed to stdout, you need to add one save option for each - URL you specify. Note that this also goes for the -O option (but not - --remote-name-all). - - For example: get two files and use -O for the first and a custom file - name for the second: - - curl -O http://url.com/file.txt ftp://ftp.com/moo.exe -o moo.jpg - - You can also upload multiple files in a similar fashion: - - curl -T local1 ftp://ftp.com/moo.exe -T local2 ftp://ftp.com/moo2.txt - -IPv6 - - curl will connect to a server with IPv6 when a host lookup returns an IPv6 - address and fall back to IPv4 if the connection fails. The --ipv4 and --ipv6 - options can specify which address to use when both are available. IPv6 - addresses can also be specified directly in URLs using the syntax: - - http://[2001:1890:1112:1::20]/overview.html - - When this style is used, the -g option must be given to stop curl from - interpreting the square brackets as special globbing characters. Link local - and site local addresses including a scope identifier, such as fe80::1234%1, - may also be used, but the scope portion must be numeric and the percent - character must be URL escaped. The previous example in an SFTP URL might - look like: - - sftp://[fe80::1234%251]/ - - IPv6 addresses provided other than in URLs (e.g. to the --proxy, --interface - or --ftp-port options) should not be URL encoded. - -METALINK - - Curl supports Metalink (both version 3 and 4 (RFC 5854) are supported), a way - to list multiple URIs and hashes for a file. Curl will make use of the mirrors - listed within for failover if there are errors (such as the file or server not - being available). It will also verify the hash of the file after the download - completes. The Metalink file itself is downloaded and processed in memory and - not stored in the local file system. - - Example to use a remote Metalink file: - - curl --metalink http://www.example.com/example.metalink - - To use a Metalink file in the local file system, use FILE protocol (file://): - - curl --metalink file://example.metalink - - Please note that if FILE protocol is disabled, there is no way to use a local - Metalink file at the time of this writing. Also note that if --metalink and - --include are used together, --include will be ignored. This is because including - headers in the response will break Metalink parser and if the headers are included - in the file described in Metalink file, hash check will fail. - -MAILING LISTS - - For your convenience, we have several open mailing lists to discuss curl, - its development and things relevant to this. Get all info at - http://curl.haxx.se/mail/. Some of the lists available are: - - curl-users - - Users of the command line tool. How to use it, what doesn't work, new - features, related tools, questions, news, installations, compilations, - running, porting etc. - - curl-library - - Developers using or developing libcurl. Bugs, extensions, improvements. - - curl-announce - - Low-traffic. Only receives announcements of new public versions. At worst, - that makes something like one or two mails per month, but usually only one - mail every second month. - - curl-and-php - - Using the curl functions in PHP. Everything curl with a PHP angle. Or PHP - with a curl angle. - - curl-and-python - - Python hackers using curl with or without the python binding pycurl. - - Please direct curl questions, feature requests and trouble reports to one of - these mailing lists instead of mailing any individual. diff --git a/msvc-deps/curl/docs/Makefile.am b/msvc-deps/curl/docs/Makefile.am deleted file mode 100644 index 0701ba82..00000000 --- a/msvc-deps/curl/docs/Makefile.am +++ /dev/null @@ -1,60 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2012, 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. -# -########################################################################### - -AUTOMAKE_OPTIONS = foreign no-dependencies - -man_MANS = curl.1 curl-config.1 mk-ca-bundle.1 -GENHTMLPAGES = curl.html curl-config.html mk-ca-bundle.html -PDFPAGES = curl.pdf curl-config.pdf mk-ca-bundle.pdf - -HTMLPAGES = $(GENHTMLPAGES) index.html - -SUBDIRS = examples libcurl - -CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES) - -EXTRA_DIST = MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS SSLCERTS \ - README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS \ - KNOWN_BUGS BINDINGS $(man_MANS) $(HTMLPAGES) HISTORY INSTALL \ - $(PDFPAGES) LICENSE-MIXING README.netware DISTRO-DILEMMA INSTALL.devcpp \ - MAIL-ETIQUETTE HTTP-COOKIES - -MAN2HTML= roffit < $< >$@ - -SUFFIXES = .1 .html .pdf - -html: $(HTMLPAGES) - cd libcurl; make html - -pdf: $(PDFPAGES) - cd libcurl; make pdf - -.1.html: - $(MAN2HTML) - -.1.pdf: - @(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \ - groff -Tps -man $< >$$foo.ps; \ - ps2pdf $$foo.ps $@; \ - rm $$foo.ps; \ - echo "converted $< to $@") - diff --git a/msvc-deps/curl/docs/Makefile.in b/msvc-deps/curl/docs/Makefile.in deleted file mode 100644 index 5436d875..00000000 --- a/msvc-deps/curl/docs/Makefile.in +++ /dev/null @@ -1,696 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2012, 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. -# -########################################################################### -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = docs -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in INSTALL \ - THANKS TODO -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-openssl.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)/m4/xc-translit.m4 \ - $(top_srcdir)/m4/zz50-xc-ovr.m4 $(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/curl_config.h \ - $(top_builddir)/include/curl/curlbuild.h -CONFIG_CLEAN_FILES = -depcomp = -am__depfiles_maybe = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -man1dir = $(mandir)/man1 -am__installdirs = "$(DESTDIR)$(man1dir)" -MANS = $(man_MANS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_LIBHOSTNAME_FALSE = @BUILD_LIBHOSTNAME_FALSE@ -BUILD_LIBHOSTNAME_TRUE = @BUILD_LIBHOSTNAME_TRUE@ -BUILD_UNITTESTS_FALSE = @BUILD_UNITTESTS_FALSE@ -BUILD_UNITTESTS_TRUE = @BUILD_UNITTESTS_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@ -CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@ -CROSSCOMPILING_FALSE = @CROSSCOMPILING_FALSE@ -CROSSCOMPILING_TRUE = @CROSSCOMPILING_TRUE@ -CURLDEBUG_FALSE = @CURLDEBUG_FALSE@ -CURLDEBUG_TRUE = @CURLDEBUG_TRUE@ -CURLVERSION = @CURLVERSION@ -CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ -CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@ -CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ -CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ -CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ -CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@ -CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ -CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@ -CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ -CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ -CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@ -CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@ -CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@ -CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@ -CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ -CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ -CURL_LIBS = @CURL_LIBS@ -CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOING_CURL_SYMBOL_HIDING_FALSE = @DOING_CURL_SYMBOL_HIDING_FALSE@ -DOING_CURL_SYMBOL_HIDING_TRUE = @DOING_CURL_SYMBOL_HIDING_TRUE@ -DOING_NATIVE_WINDOWS_FALSE = @DOING_NATIVE_WINDOWS_FALSE@ -DOING_NATIVE_WINDOWS_TRUE = @DOING_NATIVE_WINDOWS_TRUE@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_SHARED = @ENABLE_SHARED@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@ -HAVE_LDAP_SSL = @HAVE_LDAP_SSL@ -HAVE_LIBZ = @HAVE_LIBZ@ -HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@ -HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@ -HAVE_NSS_INITCONTEXT = @HAVE_NSS_INITCONTEXT@ -HAVE_SSLEAY_SRP = @HAVE_SSLEAY_SRP@ -IDN_ENABLED = @IDN_ENABLED@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -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@ -LIBMETALINK_CFLAGS = @LIBMETALINK_CFLAGS@ -LIBMETALINK_LDFLAGS = @LIBMETALINK_LDFLAGS@ -LIBMETALINK_LIBS = @LIBMETALINK_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -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_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH = @PATH@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PKGADD_NAME = @PKGADD_NAME@ -PKGADD_PKG = @PKGADD_PKG@ -PKGADD_VENDOR = @PKGADD_VENDOR@ -PKGCONFIG = @PKGCONFIG@ -RANDOM_FILE = @RANDOM_FILE@ -RANLIB = @RANLIB@ -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@ -STRIP = @STRIP@ -SUPPORT_FEATURES = @SUPPORT_FEATURES@ -SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ -TEST_SERVER_LIBS = @TEST_SERVER_LIBS@ -USE_ARES = @USE_ARES@ -USE_AXTLS = @USE_AXTLS@ -USE_CPPFLAG_BUILDING_LIBCURL_FALSE = @USE_CPPFLAG_BUILDING_LIBCURL_FALSE@ -USE_CPPFLAG_BUILDING_LIBCURL_TRUE = @USE_CPPFLAG_BUILDING_LIBCURL_TRUE@ -USE_CPPFLAG_CURL_STATICLIB_FALSE = @USE_CPPFLAG_CURL_STATICLIB_FALSE@ -USE_CPPFLAG_CURL_STATICLIB_TRUE = @USE_CPPFLAG_CURL_STATICLIB_TRUE@ -USE_CYASSL = @USE_CYASSL@ -USE_DARWINSSL = @USE_DARWINSSL@ -USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@ -USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@ -USE_GNUTLS = @USE_GNUTLS@ -USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@ -USE_LIBRTMP = @USE_LIBRTMP@ -USE_LIBSSH2 = @USE_LIBSSH2@ -USE_MANUAL_FALSE = @USE_MANUAL_FALSE@ -USE_MANUAL_TRUE = @USE_MANUAL_TRUE@ -USE_NSS = @USE_NSS@ -USE_OPENLDAP = @USE_OPENLDAP@ -USE_POLARSSL = @USE_POLARSSL@ -USE_SCHANNEL = @USE_SCHANNEL@ -USE_SSLEAY = @USE_SSLEAY@ -USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ -VERSION = @VERSION@ -VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@ -VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@ -VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@ -VERSIONNUM = @VERSIONNUM@ -ac_ct_AR = @ac_ct_AR@ -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@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libext = @libext@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -AUTOMAKE_OPTIONS = foreign no-dependencies -man_MANS = curl.1 curl-config.1 mk-ca-bundle.1 -GENHTMLPAGES = curl.html curl-config.html mk-ca-bundle.html -PDFPAGES = curl.pdf curl-config.pdf mk-ca-bundle.pdf -HTMLPAGES = $(GENHTMLPAGES) index.html -SUBDIRS = examples libcurl -CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES) -EXTRA_DIST = MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS SSLCERTS \ - README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS \ - KNOWN_BUGS BINDINGS $(man_MANS) $(HTMLPAGES) HISTORY INSTALL \ - $(PDFPAGES) LICENSE-MIXING README.netware DISTRO-DILEMMA INSTALL.devcpp \ - MAIL-ETIQUETTE HTTP-COOKIES - -MAN2HTML = roffit < $< >$@ -SUFFIXES = .1 .html .pdf -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .1 .html .pdf -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign docs/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -install-man1: $(man1_MANS) $(man_MANS) - @$(NORMAL_INSTALL) - test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ - else file=$$i; fi; \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ - done -uninstall-man1: - @$(NORMAL_UNINSTALL) - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ - rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ - done - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(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 | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - 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 | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - 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 | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(MANS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(man1dir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: install-man - -install-exec-am: - -install-info: install-info-recursive - -install-man: install-man1 - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am uninstall-man - -uninstall-info: uninstall-info-recursive - -uninstall-man: uninstall-man1 - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libtool clean-recursive ctags \ - ctags-recursive distclean distclean-generic distclean-libtool \ - distclean-recursive 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 \ - install-info-am install-man install-man1 install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am uninstall-info-am \ - uninstall-man uninstall-man1 - - -html: $(HTMLPAGES) - cd libcurl; make html - -pdf: $(PDFPAGES) - cd libcurl; make pdf - -.1.html: - $(MAN2HTML) - -.1.pdf: - @(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \ - groff -Tps -man $< >$$foo.ps; \ - ps2pdf $$foo.ps $@; \ - rm $$foo.ps; \ - echo "converted $< to $@") -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/msvc-deps/curl/docs/README.netware b/msvc-deps/curl/docs/README.netware deleted file mode 100644 index 41da2e8d..00000000 --- a/msvc-deps/curl/docs/README.netware +++ /dev/null @@ -1,27 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - -README.netware - - Read the README file first. - - Curl has been successfully compiled with gcc / nlmconv on different flavours - of Linux as well as with the official Metrowerks CodeWarrior compiler. - While not being the main development target, a continously growing share of - curl users are NetWare-based, specially also consuming the lib from PHP. - - The unix-style man pages are tricky to read on windows, so therefore are all - those pages converted to HTML as well as pdf, and included in the release - archives. - - The main curl.1 man page is also "built-in" in the command line tool. Use a - command line similar to this in order to extract a separate text file: - - curl -M >manual.txt - - Read the INSTALL file for instructions how to compile curl self. - - diff --git a/msvc-deps/curl/docs/README.win32 b/msvc-deps/curl/docs/README.win32 deleted file mode 100644 index cfd45dd2..00000000 --- a/msvc-deps/curl/docs/README.win32 +++ /dev/null @@ -1,26 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - -README.win32 - - Read the README file first. - - Curl has been compiled, built and run on all sorts of Windows and win32 - systems. While not being the main develop target, a fair share of curl users - are win32-based. - - The unix-style man pages are tricky to read on windows, so therefore are all - those pages converted to HTML as well as pdf, and included in the release - archives. - - The main curl.1 man page is also "built-in" in the command line tool. Use a - command line similar to this in order to extract a separate text file: - - curl -M >manual.txt - - Read the INSTALL file for instructions how to compile curl self. - - diff --git a/msvc-deps/curl/docs/RESOURCES b/msvc-deps/curl/docs/RESOURCES deleted file mode 100644 index 760e7597..00000000 --- a/msvc-deps/curl/docs/RESOURCES +++ /dev/null @@ -1,83 +0,0 @@ - _ _ ____ _ - Project ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - - -This document lists documents and standards used by curl. - - RFC 959 - The FTP protocol - - RFC 1635 - How to Use Anonymous FTP - - RFC 1738 - Uniform Resource Locators - - RFC 1777 - defines the LDAP protocol - - RFC 1808 - Relative Uniform Resource Locators - - RFC 1867 - Form-based File Upload in HTML - - RFC 1950 - ZLIB Compressed Data Format Specification - - RFC 1951 - DEFLATE Compressed Data Format Specification - - RFC 1952 - gzip compression format - - RFC 1959 - LDAP URL syntax - - RFC 2045-2049 - Everything you need to know about MIME! (needed for form - based upload) - - RFC 2068 - HTTP 1.1 (obsoleted by RFC 2616) - - RFC 2104 - Keyed-Hashing for Message Authentication - - RFC 2109 - HTTP State Management Mechanism (cookie stuff) - - Also, read Netscape's specification at - http://curl.haxx.se/rfc/cookie_spec.html - - RFC 2183 - The Content-Disposition Header Field - - RFC 2195 - CRAM-MD5 authentication - - RFC 2229 - A Dictionary Server Protocol - - RFC 2255 - Newer LDAP URL syntax document. - - RFC 2231 - MIME Parameter Value and Encoded Word Extensions: - Character Sets, Languages, and Continuations - - RFC 2388 - "Returning Values from Forms: multipart/form-data" - Use this as an addition to the RFC1867 - - RFC 2396 - "Uniform Resource Identifiers: Generic Syntax and Semantics" This - one obsoletes RFC 1738, but since RFC 1738 is often mentioned - I've left it in this list. - - RFC 2428 - FTP Extensions for IPv6 and NATs - - RFC 2577 - FTP Security Considerations - - RFC 2616 - HTTP 1.1, the latest - - RFC 2617 - HTTP Authentication - - RFC 2718 - Guidelines for new URL Schemes - - RFC 2732 - Format for Literal IPv6 Addresses in URL's - - RFC 2818 - HTTP Over TLS (TLS is the successor to SSL) - - RFC 2821 - SMTP protocol - - RFC 2964 - Use of HTTP State Management - - RFC 2965 - HTTP State Management Mechanism. Cookies. Obsoletes RFC2109 - - RFC 3207 - SMTP over TLS - - RFC 4616 - PLAIN authentication - - RFC 4954 - SMTP Authentication diff --git a/msvc-deps/curl/docs/SSLCERTS b/msvc-deps/curl/docs/SSLCERTS deleted file mode 100644 index 0d1414ce..00000000 --- a/msvc-deps/curl/docs/SSLCERTS +++ /dev/null @@ -1,116 +0,0 @@ - Peer SSL Certificate Verification - ================================= - -libcurl performs peer SSL certificate verification by default. This is done -by using CA cert bundle that the SSL library can use to make sure the peer's -server certificate is valid. - -If you communicate with HTTPS or FTPS servers using certificates that are -signed by CAs present in the bundle, you can be sure that the remote server -really is the one it claims to be. - -Until 7.18.0, curl bundled a severely outdated ca bundle file that was -installed by default. These days, the curl archives include no ca certs at -all. You need to get them elsewhere. See below for example. - -If the remote server uses a self-signed certificate, if you don't install a CA -cert bundle, if the server uses a certificate signed by a CA that isn't -included in the bundle you use or if the remote host is an impostor -impersonating your favorite site, and you want to transfer files from this -server, do one of the following: - - 1. Tell libcurl to *not* verify the peer. With libcurl you disable this with - curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE); - - With the curl command line tool, you disable this with -k/--insecure. - - 2. Get a CA certificate that can verify the remote server and use the proper - option to point out this CA cert for verification when connecting. For - libcurl hackers: curl_easy_setopt(curl, CURLOPT_CAPATH, capath); - - With the curl command line tool: --cacert [file] - - 3. Add the CA cert for your server to the existing default CA cert bundle. - The default path of the CA bundle used can be changed by running configure - with the --with-ca-bundle option pointing out the path of your choice. - - To do this, you need to get the CA cert for your server in PEM format and - then append that to your CA cert bundle. - - If you use Internet Explorer, this is one way to get extract the CA cert - for a particular server: - - o View the certificate by double-clicking the padlock - o Find out where the CA certificate is kept (Certificate> - Authority Information Access>URL) - o Get a copy of the crt file using curl - o Convert it from crt to PEM using the openssl tool: - openssl x509 -inform DES -in yourdownloaded.crt \ - -out outcert.pem -text - o Append the 'outcert.pem' to the CA cert bundle or use it stand-alone - as described below. - - If you use the 'openssl' tool, this is one way to get extract the CA cert - for a particular server: - - o openssl s_client -connect xxxxx.com:443 |tee logfile - o type "QUIT", followed by the "ENTER" key - o The certificate will have "BEGIN CERTIFICATE" and "END CERTIFICATE" - markers. - o If you want to see the data in the certificate, you can do: "openssl - x509 -inform PEM -in certfile -text -out certdata" where certfile is - the cert you extracted from logfile. Look in certdata. - o If you want to trust the certificate, you can append it to your - cert_bundle or use it stand-alone as described. Just remember that the - security is no better than the way you obtained the certificate. - - 4. If you're using the curl command line tool, you can specify your own CA - cert path by setting the environment variable CURL_CA_BUNDLE to the path - of your choice. - - If you're using the curl command line tool on Windows, curl will search - for a CA cert file named "curl-ca-bundle.crt" in these directories and in - this order: - 1. application's directory - 2. current working directory - 3. Windows System directory (e.g. C:\windows\system32) - 4. Windows Directory (e.g. C:\windows) - 5. all directories along %PATH% - - 5. Get a better/different/newer CA cert bundle! One option is to extract the - one a recent Firefox browser uses by running 'make ca-bundle' in the curl - build tree root, or possibly download a version that was generated this - way for you: - - http://curl.haxx.se/docs/caextract.html - -Neglecting to use one of the above methods when dealing with a server using a -certificate that isn't signed by one of the certificates in the installed CA -cert bundle, will cause SSL to report an error ("certificate verify failed") -during the handshake and SSL will then refuse further communication with that -server. - - Peer SSL Certificate Verification with NSS - ========================================== - -If libcurl is build with NSS support then depending on the OS distribution it -is probably required to take some additional steps to use the system-wide CA -cert db. RedHat ships with an additional module libnsspem.so which enables NSS -to read the OpenSSL PEM CA bundle. With OpenSuSE this lib is missing, and NSS -can only work with its own internal formats. Also NSS got a new database -format: -https://wiki.mozilla.org/NSS_Shared_DB -Starting with version 7.19.7 libcurl will check for the NSS version it runs, -and add automatically the 'sql:' prefix to the certdb directory (either the -hardcoded default /etc/pki/nssdb or the directory configured with SSL_DIR -environment variable) if a version 3.12.0 or later is detected. -To check which certdb format your distribution provides examine the default -certdb location /etc/pki/nssdb; the new certdb format can be identified by -the filenames cert9.db, key4.db, pkcs11.txt; filenames of older versions are -cert8.db, key3.db, modsec.db. -Usually these cert databases are empty; but NSS also has built-in CAs which are -provided through a shared library libnssckbi.so; if you want to use these -built-in CAs then create a symlink to libnssckbi.so in /etc/pki/nssdb: -ln -s /usr/lib[64]/libnssckbi.so /etc/pki/nssdb/libnssckbi.so - - diff --git a/msvc-deps/curl/docs/THANKS b/msvc-deps/curl/docs/THANKS deleted file mode 100644 index dee940be..00000000 --- a/msvc-deps/curl/docs/THANKS +++ /dev/null @@ -1,985 +0,0 @@ - This project has been alive for many years. Countless people have provided - feedback that have improved curl. Here follows a list of people that have - contributed (a-z order). - - If you have contributed but are missing here, please let us know! - -Aaron Oneal -Aaron Orenstein -Adam D. Moss -Adam Light -Adam Piggott -Adam Tkac -Adrian Schuur -Adriano Meirelles -Akos Pasztory -Alan Pinstein -Albert Chin -Albert Chin-A-Young -Albert Choy -Ale Vesely -Alejandro Alvarez -Aleksandar Milivojevic -Alessandro Ghedini -Alessandro Vesely -Alex Bligh -Alex Fishman -Alex Neblett -Alex Suykov -Alex Vinnik -Alex aka WindEagle -Alexander Beedie -Alexander Kourakos -Alexander Krasnostavsky -Alexander Lazic -Alexander Zhuravlev -Alexey Borzov -Alexey Pesternikov -Alexey Simak -Alexey Zakhlestin -Alexis Carvalho -Alfred Gebert -Allen Pulsifer -Amol Pattekar -Amr Shahin -Anatoli Tubman -Anders Gustafsson -Andi Jahja -Andre Guibert de Bruet -Andreas Damm -Andreas Faerber -Andreas Farber -Andreas Ntaflos -Andreas Olsson -Andreas Rieke -Andreas Schuldei -Andreas Wurf -Andrei Benea -Andrei Cipu -Andres Garcia -Andrew Benham -Andrew Biggs -Andrew Bushnell -Andrew Francis -Andrew Fuller -Andrew Moise -Andrew Wansink -Andrew de los Reyes -Andrés García -Andy Cedilnik -Andy Serpa -Andy Tsouladze -Angus Mackay -Anthony Bryan -Anthony G. Basile -Antoine Calando -Anton Bychkov -Anton Kalmykov -Anton Yabchinskiy -Arkadiusz Miskiewicz -Armel Asselin -Arnaud Compan -Arnaud Ebalard -Arthur Murray -Arve Knudsen -Ates Goral -Augustus Saunders -Avery Fay -Axel Tillequin -Balint Szilakszi -Bart Whiteley -Bas Mevissen -Ben Darnell -Ben Greear -Ben Madsen -Ben Noordhuis -Ben Van Hof -Ben Winslow -Benbuck Nason -Benjamin Gerard -Benjamin Johnson -Bernard Leak -Bernhard Reutner-Fischer -Bertrand Demiddelaer -Bill Egert -Bill Hoffman -Bjoern Sikora -Bjorn Augustsson -Bjorn Reese -Björn Stenberg -Blaise Potard -Bob Richmond -Bob Schader -Bogdan Nicula -Brad Burdick -Brad Hards -Brad King -Bradford Bruce -Brandon Wang -Brendan Jurd -Brent Beardsley -Brian Akins -Brian Dessent -Brian J. Murrell -Brian R Duffy -Brian Ulm -Brock Noland -Bruce Mitchener -Bryan Henderson -Bryan Kemp -Cameron Kaiser -Camille Moncelier -Caolan McNamara -Carsten Lange -Casey O'Donnell -Cedric Deltheil -Chad Monroe -Chandrakant Bagul -Charles Kerr -Chih-Chung Chang -Chris "Bob Bob" -Chris Combes -Chris Conroy -Chris Deidun -Chris Flerackers -Chris Gaukroger -Chris Maltby -Chris Mumford -Chris Smowton -Christian Grothoff -Christian Hagele -Christian Hägele -Christian Krause -Christian Kurz -Christian Robottom Reis -Christian Schmitz -Christian Vogt -Christophe Demory -Christophe Legry -Christopher Conroy -Christopher Palow -Christopher R. Palmer -Christopher Stone -Ciprian Badescu -Claes Jakobsson -Clarence Gardner -Clifford Wolf -Cody Jones -Colin Hogben -Colin Watson -Colm Buckley -Constantine Sapuntzakis -Cory Nelson -Craig A West -Craig Davison -Craig Markwardt -Cris Bailiff -Cristian Rodriguez -Curt Bogmine -Cyrill Osterwalder -Dag Ekengren -Dagobert Michelsen -Damien Adant -Dan Becker -Dan C -Dan Fandrich -Dan Locks -Dan Nelson -Dan Petitt -Dan Torop -Dan Zitter -Daniel Black -Daniel Cater -Daniel Egger -Daniel Johnson -Daniel Mentz -Daniel Steinberg -Daniel Stenberg -Daniel Theron -Daniel at touchtunes -Darryl House -Darshan Mody -Dave Dribin -Dave Halbakken -Dave Hamilton -Dave May -Dave Reisner -Dave Vasilevsky -David Bau -David Binderman -David Blaikie -David Byron -David Cohen -David Eriksson -David Houlder -David Hull -David J Meyer -David James -David Kierznowski -David Kimdon -David Lang -David LeBlanc -David McCreedy -David Odin -David Phillips -David Rosenstrauch -David Shaw -David Tarendash -David Thiel -David Wright -David Yan -Dengminwen -Detlef Schmier -Didier Brisebourg -Diego Casorran -Dima Barsky -Dimitre Dimitrov -Dimitris Sarris -Dinar -Dirk Eddelbuettel -Dirk Manske -Dmitri Shubin -Dmitriy Sergeyev -Dmitry Bartsevich -Dmitry Kurochkin -Dmitry Popov -Dmitry Rechkin -Dolbneff A.V -Domenico Andreoli -Dominick Meglio -Dominique Leuenberger -Doug Kaufman -Doug Porter -Douglas E. Wegscheid -Douglas Kilpatrick -Douglas R. Horner -Douglas Steinwand -Dov Murik -Duane Cathey -Duncan Mac-Vicar Prett -Dustin Boswell -Dylan Ellicott -Dylan Salisbury -Early Ehlinger -Ebenezer Ikonne -Edin Kadribasic -Eduard Bloch -Edward Sheldrake -Eelco Dolstra -Eetu Ojanen -Ellis Pritchard -Emanuele Bovisio -Emil Romanus -Emiliano Ida -Enrico Scholz -Enrik Berkhan -Eric Cooper -Eric Hu -Eric Landes -Eric Lavigne -Eric Melville -Eric Mertens -Eric Rautman -Eric Thelin -Eric Vergnaud -Eric Wong -Eric Young -Erick Nuwendam -Erwan Legrand -Erwin Authried -Eugene Kotlyarov -Evan Jordan -Eygene Ryabinkin -Fabian Hiernaux -Fabian Keil -Fabrizio Ammollo -Fedor Karpelevitch -Felix von Leitner -Feng Tu -Florian Schoppmann -Forrest Cahoon -Frank Hempel -Frank Keeney -Frank McGeough -Frank Meier -Frank Ticheler -Frank Van Uffelen -FrantiÅ¡ek KuÄera -Fred Machado -Fred New -Fred Noz -Frederic Lepied -Gabriel Kuri -Garrett Holmstrom -Gary Maxwell -Gautam Kachroo -Gautam Mani -Gavrie Philipson -Gaz Iqbal -Georg Horn -Georg Huettenegger -Georg Lippitsch -Georg Wicherski -Gerd v. Egidy -Gerhard Herre -Gerrit Bruchhäuser -Ghennadi Procopciuc -Giancarlo Formicuccia -Giaslas Georgios -Gil Weber -Gilad -Gilbert Ramirez Jr. -Gilles Blanc -Gisle Vanem -Giuseppe Attardi -Giuseppe D'Ambrosio -Glen Nakamura -Glen Scott -Gokhan Sengun -Grant Erickson -Greg Hewgill -Greg Morse -Greg Onufer -Greg Zavertnik -Grigory Entin -Guenole Bescon -Guenter Knauf -Guillaume Arluison -Gustaf Hui -Gwenole Beauchesne -Götz Babin-Ebell -Hamish Mackenzie -Hang Kin Lau -Hanno Kranzhoff -Hans Steegers -Hans-Jurgen May -Hardeep Singh -Harshal Pradhan -Hauke Duden -Heikki Korpela -Heinrich Ko -Hendrik Visage -Henrik Storner -Henry Ludemann -Herve Amblard -Hidemoto Nakada -Ho-chi Chen -Hoi-Ho Chan -Hongli Lai -Howard Chu -Hzhijun -Ian D Allen -Ian Ford -Ian Gulliver -Ian Lynagh -Ian Turner -Ian Wilkes -Ignacio Vazquez-Abrams -Igor Franchuk -Igor Novoseltsev -Igor Polyakov -Ilguiz Latypov -Ilja van Sprundel -Immanuel Gregoire -Ingmar Runge -Ingo Ralf Blum -Ingo Wilken -Jack Zhang -Jacky Lam -Jacob Meuser -Jacob Moshenko -Jad Chamcham -James Bursa -James Cheng -James Clancy -James Cone -James Gallagher -James Griffiths -James Housley -James MacMillan -Jamie Lokier -Jamie Newton -Jamie Wilkinson -Jan Ehrhardt -Jan Koen Annot -Jan Kunder -Jan Schaumann -Jan Van Boghout -Jared Lundell -Jari Sundell -Jason Glasgow -Jason Liu -Jason McDonald -Jason S. Priebe -Jay Austin -Jayesh A Shah -Jaz Fresh -Jean Jacques Drouin -Jean-Claude Chauve -Jean-Francois Bertrand -Jean-Louis Lemaire -Jean-Marc Ranger -Jean-Philippe Barrette-LaPierre -Jeff Johnson -Jeff Lawson -Jeff Phillips -Jeff Pohlmeyer -Jeff Weber -Jeffrey Pohlmeyer -Jeremy Friesner -Jerome Muffat-Meridol -Jerome Vouillon -Jerry Wu -Jes Badwal -Jesper Jensen -Jesse Noller -Jie He -Jim Drash -Jim Freeman -Jim Hollinger -Jim Meyering -Jocelyn Jaubert -Joe Halpin -Joe Malicki -Joe Mason -Joel Chen -Jofell Gallardo -Johan Anderson -Johan Nilsson -Johan van Selst -Johannes Bauer -John Bradshaw -John Crow -John Dennis -John E. Malmberg -John Janssen -John Joseph Bachir -John Kelly -John Lask -John Lightsey -John Marino -John McGowan -John P. McCaskey -John Wilkinson -John-Mark Bell -Johnny Luong -Jon Grubbs -Jon Nelson -Jon Sargeant -Jon Travis -Jon Turner -Jonas Forsman -Jonas Schnelli -Jonatan Lander -Jonathan Hseu -Jonathan Nieder -Jongki Suwandi -Jose Kahan -Josef Wolf -Josh Kapell -Joshua Kwan -Josue Andrade Gomes -Juan Barreto -Juan F. Codagnone -Juan Ignacio Hervás -Judson Bishop -Juergen Wilke -Jukka Pihl -Julian Noble -Julian Taylor -Julien Chaffraix -Julien Royer -Jun-ichiro itojun Hagino -Jurij Smakov -Justin Fletcher -Jörg Mueller-Tolk -Jörn Hartroth -Kai Sommerfeld -Kai-Uwe Rommel -Kalle Vahlman -Kamil Dudka -Kang-Jin Lee -Karl M -Karl Moerder -Karol Pietrzak -Kaspar Brand -Katie Wang -Kees Cook -Keith MacDonald -Keith McGuigan -Keith Mok -Ken Hirsch -Ken Rastatter -Kenny To -Kent Boortz -Keshav Krity -Kevin Baughman -Kevin Fisk -Kevin Lussier -Kevin Reed -Kevin Roth -Kim Rinnewitz -Kimmo Kinnunen -Kjell Ericson -Kjetil Jacobsen -Klevtsov Vadim -Kris Kennaway -Krishnendu Majumdar -Krister Johansen -Kristian Gunstone -Kristian Köhntopp -Kyle Sallee -Lachlan O'Dea -Larry Campbell -Larry Fahnoe -Lars Gustafsson -Lars J. Aas -Lars Nilsson -Lars Torben Wilson -Lau Hang Kin -Laurent Rabret -Legoff Vincent -Lehel Bernadt -Len Krause -Lenaic Lefever -Lenny Rachitsky -Liam Healy -Lijo Antony -Linas Vepstas -Ling Thio -Linus Nielsen Feltzing -Lisa Xu -Liza Alenchery -Loic Dachary -Loren Kirkby -Luca Altea -Luca Alteas -Lucas Adamski -Lukasz Czekierda -Luke Amery -Luke Call -Luong Dinh Dung -Maciej Karpiuk -Maciej W. Rozycki -Mamoru Tasaka -Mandy Wu -Manfred Schwarb -Manuel Massing -Marc Boucher -Marc Hoersken -Marc Kleine-Budde -Marcel Raad -Marcel Roelofs -Marcelo Juchem -Marcin Adamski -Marcin Konicki -Marco G. Salvagno -Marco Maggi -Marcus Sundberg -Marcus Webster -Mario Schroeder -Mark Brand -Mark Butler -Mark Davies -Mark Eichin -Mark Incley -Mark Karpeles -Mark Lentczner -Mark Salisbury -Mark Tully -Markus Duft -Markus Koetter -Markus Moeller -Markus Oberhumer -Martijn Koster -Martin C. Martin -Martin Drasar -Martin Hager -Martin Hedenfalk -Martin Lemke -Martin Skinner -Martin Storsjo -Marty Kuhrt -Maruko -Massimiliano Ziccardi -Massimo Callegari -Mateusz Loskot -Mathias Axelsson -Mats Lidell -Matt Kraai -Matt Veenstra -Matt Witherspoon -Matt Wixson -Matteo Rocco -Matthew Blain -Matthew Clarke -Matthias Bolte -Maurice Barnum -Mauro Iorio -Max Katsev -Maxim Ivanov -Maxim Perenesenko -Maxim Prohorov -Maxime Larocque -Mehmet Bozkurt -Mekonikum -Mettgut Jamalla -Michael Benedict -Michael Calmer -Michael Cronenworth -Michael Curtis -Michael Day -Michael Goffioul -Michael Jahn -Michael Jerris -Michael Mealling -Michael Mueller -Michael Smith -Michael Stillwell -Michael Wallner -Michal Bonino -Michal Gorny -Michal Marek -Michele Bini -Mihai Ionescu -Mikael Johansson -Mikael Sennerholm -Mike Bytnar -Mike Crowe -Mike Dobbs -Mike Hommey -Mike Power -Mike Protts -Mike Revi -Miklos Nemeth -Mitz Wark -Mohamed Lrhazi -Mohun Biswas -Moonesamy -Nathan Coulter -Nathan O'Sullivan -Nathanael Nerode -Naveen Chandran -Naveen Noel -Neil Bowers -Neil Dunbar -Neil Spring -Nic Roets -Nicholas Maniscalco -Nick Gimbrone -Nick Humfrey -Nick Zitzmann -Nico Baggus -Nicolas Berloquin -Nicolas Croiset -Nicolas François -Niels van Tongeren -Nikita Schmidt -Nikitinskit Dmitriy -Niklas Angebrand -Nikolai Kondrashov -Nikos Mavrogiannopoulos -Ning Dong -Nir Soffer -Nis Jorgensen -Nodak Sodak -Norbert Frese -Norbert Novotny -Ofer -Olaf Flebbe -Olaf Stueben -Olaf Stüben -Olivier Berger -Oren Tirosh -Ori Avtalion -P R Schaffner -Paolo Piacentini -Pascal Terjan -Pasha Kuznetsov -Pat Ray -Patrice Guerin -Patrick Bihan-Faou -Patrick Monnerat -Patrick Scott -Patrick Smith -Patrik Thunstrom -Pau Garcia i Quiles -Paul Harrington -Paul Howarth -Paul Marquis -Paul Moore -Paul Nolan -Paul Querna -Pavel Cenek -Pavel Orehov -Pavel Raiskup -Pawel A. Gajda -Pawel Kierski -Pedro Larroy -Pedro Neves -Pete Su -Peter Bray -Peter Forret -Peter Heuchert -Peter Hjalmarsson -Peter Korsgaard -Peter Lamberg -Peter O'Gorman -Peter Pentchev -Peter Silva -Peter Su -Peter Sylvester -Peter Todd -Peter Verhas -Peter Wullinger -Peteris Krumins -Phil Blundell -Phil Karn -Phil Lisiecki -Phil Pellouchoud -Philip Craig -Philip Gladstone -Philip Langdale -Philippe Hameau -Philippe Raoult -Philippe Vaucher -Pierre -Pierre Brico -Pierre Chapuis -Pierre Joye -Pierre Ynard -Pooyan McSporran -Pramod Sharma -Puneet Pawaia -Quagmire -Quanah Gibson-Mount -Quinn Slack -Rafa Muyo -Rafael Sagula -Rainer Canavan -Rainer Koenig -Rajesh Naganathan -Ralf S. Engelschall -Ralph Beckmann -Ralph Mitchell -Ramana Mokkapati -Randy McMurchy -Ravi Pratap -Ray Dassen -Ray Pekowski -Reinout van Schouwen -Renato Botelho -Renaud Chaillat -Renaud Duhaut -Rene Bernhardt -Rene Rebe -Reuven Wachtfogel -Reza Arbab -Ricardo Cadime -Rich Gray -Rich Rauenzahn -Richard Archer -Richard Atterer -Richard Bramante -Richard Clayton -Richard Cooper -Richard Gorton -Richard Prescott -Richard Silverman -Rick Jones -Rick Richardson -Rob Crittenden -Rob Jones -Rob Stanzel -Rob Ward -Robert A. Monat -Robert B. Harris -Robert D. Young -Robert Foreman -Robert Iakobashvili -Robert Olson -Robert Schumann -Robert Weaver -Robin Cornelius -Robin Johnson -Robin Kay -Robson Braga Araujo -Rodney Simmons -Rodrigo Silva -Roland Blom -Roland Krikava -Roland Zimmermann -Rolland Dudemaine -Roman Koifman -Roman Mamedov -Ron Zapp -Rosimildo da Silva -Roy Shan -Rune Kleveland -Ruslan Gazizov -Rutger Hofman -Ryan Chan -Ryan Nelson -Ryan Schmidt -S. Moonesamy -Salvador Dávila -Salvatore Sorrentino -Sam Listopad -Sampo Kellomaki -Samuel Díaz García -Samuel Listopad -Samuel Thibault -Sander Gates -Sandor Feldi -Santhana Todatry -Saqib Ali -Sara Golemon -Saul good -Scott Bailey -Scott Barrett -Scott Cantor -Scott Davis -Scott McCreary -Sebastien Willemijns -Senthil Raja Velu -Sergei Nikulov -Sergio Ballestrero -Seshubabu Pasam -Sh Diao -Sharad Gupta -Shard -Shawn Poulson -Shmulik Regev -Siddhartha Prakash Jain -Sidney San Martin -Siegfried Gyuricsko -Simon Dick -Simon Josefsson -Simon Liu -Song Ma -Sonia Subramanian -Spacen Jasset -Spiridonoff A.V -Stadler Stephan -Stan van de Burgt -Stefan Esser -Stefan Krause -Stefan Teleman -Stefan Tomanek -Stefan Ulrich -Stephan Bergmann -Stephen Collyer -Stephen Kick -Stephen More -Sterling Hughes -Steve Green -Steve H Truong -Steve Holme -Steve Lhomme -Steve Little -Steve Marx -Steve Oliphant -Steve Roskowski -Steven Bazyl -Steven G. Johnson -Steven M. Schweda -Steven Parkes -Stoned Elipot -Sven Anders -Sven Neuhaus -Sven Wegener -Sébastien Willemijns -T. Bharath -T. Yamada -Taneli Vahakangas -Tanguy Fautre -Tatsuhiro Tsujikawa -Temprimus -Thomas J. Moore -Thomas Klausner -Thomas L. Shinnick -Thomas Lopatic -Thomas Schwinge -Thomas Tonino -Tim Ansell -Tim Baker -Tim Bartley -Tim Chen -Tim Costello -Tim Harder -Tim Heckman -Tim Newsome -Tim Sneddon -Tinus van den Berg -Tobias Rundström -Toby Peterson -Todd A Ouska -Todd Kulesza -Todd Ouska -Todd Vierling -Tom Benoist -Tom Donovan -Tom Lee -Tom Mattison -Tom Moers -Tom Mueller -Tom Regner -Tom Wright -Tom Zerucha -Tomas Mlcoch -Tomas Pospisek -Tomas Szepe -Tomasz Lacki -Tommie Gannert -Tommy Tam -Ton Voon -Toni Moreno -Toon Verwaest -Tor Arntsen -Torsten Foertsch -Toshio Kuratomi -Toshiyuki Maezawa -Traian Nicolescu -Troels Walsted Hansen -Troy Engel -Tupone Alfredo -Ulf Härnhammar -Ulrich Zadow -Venkat Akella -Victor Snezhko -Vikram Saxena -Vilmos Nebehaj -Vincent Bronner -Vincent Le Normand -Vincent Penquerc'h -Vincent Sanders -Vincent Torri -Vlad Grachov -Vlad Ureche -Vladimir Grishchenko -Vladimir Lazarenko -Vojtech Janota -Vojtech Minarik -Vsevolod Novikov -Walter J. Mack -Ward Willats -Wayne Haigh -Werner Koch -Wesley Laxton -Wesley Miaw -Wez Furlong -Wilfredo Sanchez -Wojciech Zwiefka -Wu Yongzheng -Xavier Bouchoux -Yang Tse -Yarram Sunil -Yehoshua Hershberg -Yukihiro Kawada -Yuriy Sosov -Yves Lejeune -Zmey Petroff -Zvi Har'El -nk -swalkaus at yahoo.com -tommink[at]post.pl diff --git a/msvc-deps/curl/docs/TODO b/msvc-deps/curl/docs/TODO deleted file mode 100644 index 30c0a64a..00000000 --- a/msvc-deps/curl/docs/TODO +++ /dev/null @@ -1,662 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - - Things that could be nice to do in the future - - Things to do in project cURL. Please tell us what you think, contribute and - send us patches that improve things! - - All bugs documented in the KNOWN_BUGS document are subject for fixing! - - 1. libcurl - 1.2 More data sharing - 1.3 struct lifreq - 1.4 signal-based resolver timeouts - 1.5 get rid of PATH_MAX - 1.6 progress callback without doubles - 1.7 Happy Eyeball dual stack connect - - 2. libcurl - multi interface - 2.1 More non-blocking - 2.2 Remove easy interface internally - 2.4 Fix HTTP Pipelining for PUT - - 3. Documentation - 3.1 More and better - - 4. FTP - 4.1 HOST - 4.2 Alter passive/active on failure and retry - 4.3 Earlier bad letter detection - 4.4 REST for large files - 4.5 FTP proxy support - 4.6 ASCII support - - 5. HTTP - 5.1 Better persistency for HTTP 1.0 - 5.2 support FF3 sqlite cookie files - 5.3 Rearrange request header order - - 6. TELNET - 6.1 ditch stdin - 6.2 ditch telnet-specific select - 6.3 feature negotiation debug data - 6.4 send data in chunks - - 7. SSL - 7.1 Disable specific versions - 7.2 Provide mutex locking API - 7.3 Evaluate SSL patches - 7.4 Cache OpenSSL contexts - 7.5 Export session ids - 7.6 Provide callback for cert verification - 7.7 Support other SSL libraries - 7.9 improve configure --with-ssl - 7.10 Support DANE - - 8. GnuTLS - 8.1 SSL engine stuff - 8.3 check connection - - 9. SMTP - 9.1 Specify the preferred authentication mechanism - 9.2 Initial response - 9.3 Pipelining - - 10. POP3 - 10.1 auth= in URLs - - 11. IMAP - 11.1 SASL based authentication mechanisms - - 12. LDAP - 12.1 SASL based authentication mechanisms - - 13. Other protocols - - 14. New protocols - 14.1 RSYNC - - 15. SASL - 15.1 Other authentication mechanisms - - 16. Client - 16.1 sync - 16.2 glob posts - 16.3 prevent file overwriting - 16.4 simultaneous parallel transfers - 16.5 provide formpost headers - 16.6 url-specific options - 16.7 warning when setting an option - 16.8 IPv6 addresses with globbing - - 17. Build - 17.1 roffit - - 18. Test suite - 18.1 SSL tunnel - 18.2 nicer lacking perl message - 18.3 more protocols supported - 18.4 more platforms supported - - 19. Next SONAME bump - 19.1 http-style HEAD output for ftp - 19.2 combine error codes - 19.3 extend CURLOPT_SOCKOPTFUNCTION prototype - - 20. Next major release - 20.1 cleanup return codes - 20.2 remove obsolete defines - 20.3 size_t - 20.4 remove several functions - 20.5 remove CURLOPT_FAILONERROR - 20.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE - 20.7 remove progress meter from libcurl - 20.8 remove 'curl_httppost' from public - 20.9 have form functions use CURL handle argument - 20.10 Add CURLOPT_MAIL_CLIENT option - -============================================================================== - -1. libcurl - -1.2 More data sharing - - curl_share_* functions already exist and work, and they can be extended to - share more. For example, enable sharing of the ares channel and the - connection cache. - -1.3 struct lifreq - - Use 'struct lifreq' and SIOCGLIFADDR instead of 'struct ifreq' and - SIOCGIFADDR on newer Solaris versions as they claim the latter is obsolete. - To support ipv6 interface addresses for network interfaces properly. - -1.4 signal-based resolver timeouts - - libcurl built without an asynchronous resolver library uses alarm() to time - out DNS lookups. When a timeout occurs, this causes libcurl to jump from the - signal handler back into the library with a sigsetjmp, which effectively - causes libcurl to continue running within the signal handler. This is - non-portable and could cause problems on some platforms. A discussion on the - problem is available at http://curl.haxx.se/mail/lib-2008-09/0197.html - - Also, alarm() provides timeout resolution only to the nearest second. alarm - ought to be replaced by setitimer on systems that support it. - -1.5 get rid of PATH_MAX - - Having code use and rely on PATH_MAX is not nice: - http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html - - Currently the SSH based code uses it a bit, but to remove PATH_MAX from there - we need libssh2 to properly tell us when we pass in a too small buffer and - its current API (as of libssh2 1.2.7) doesn't. - -1.6 progress callback without doubles - - The progress callback was introduced way back in the days and the choice to - use doubles in the arguments was possibly good at the time. Today the doubles - only confuse users and make the amounts less precise. We should introduce - another progress callback option that take precedence over the old one and - have both co-exist for a forseeable time until we can remove the double-using - one. - -1.7 Happy Eyeball dual stack connect - - In order to make alternative technologies not suffer when transitioning, like - when introducing IPv6 as an alternative to IPv4 and there are more than one - option existing simultaneously there are reasons to reconsider internal - choices. - - To make libcurl do blazing fast IPv6 in a dual-stack configuration, this needs - to be addressed: - - http://tools.ietf.org/html/rfc6555 - - -2. libcurl - multi interface - -2.1 More non-blocking - - Make sure we don't ever loop because of non-blocking sockets returning - EWOULDBLOCK or similar. Blocking cases include: - - - Name resolves on non-windows unless c-ares is used - - NSS SSL connections - - HTTP proxy CONNECT operations - - SOCKS proxy handshakes - - file:// transfers - - TELNET transfers - - The "DONE" operation (post transfer protocol-specific actions) for the - protocols SFTP, SMTP, FTP. Fixing Curl_done() for this is a worthy task. - -2.2 Remove easy interface internally - - Make curl_easy_perform() a wrapper-function that simply creates a multi - handle, adds the easy handle to it, runs curl_multi_perform() until the - transfer is done, then detach the easy handle, destroy the multi handle and - return the easy handle's return code. This will thus make everything - internally use and assume the multi interface. The select()-loop should use - curl_multi_socket(). - -2.4 Fix HTTP Pipelining for PUT - - HTTP Pipelining can be a way to greatly enhance performance for multiple - serial requests and currently libcurl only supports that for HEAD and GET - requests but it should also be possible for PUT. - -3. Documentation - -3.1 More and better - - Exactly - -4. FTP - -4.1 HOST - - HOST is a suggested command in the works for a client to tell which host name - to use, to offer FTP servers named-based virtual hosting: - - http://tools.ietf.org/html/draft-hethmon-mcmurray-ftp-hosts-11 - -4.2 Alter passive/active on failure and retry - - When trying to connect passively to a server which only supports active - connections, libcurl returns CURLE_FTP_WEIRD_PASV_REPLY and closes the - connection. There could be a way to fallback to an active connection (and - vice versa). http://curl.haxx.se/bug/feature.cgi?id=1754793 - -4.3 Earlier bad letter detection - - Make the detection of (bad) %0d and %0a codes in FTP url parts earlier in the - process to avoid doing a resolve and connect in vain. - -4.4 REST for large files - - REST fix for servers not behaving well on >2GB requests. This should fail if - the server doesn't set the pointer to the requested index. The tricky - (impossible?) part is to figure out if the server did the right thing or not. - -4.5 FTP proxy support - - Support the most common FTP proxies, Philip Newton provided a list allegedly - from ncftp. This is not a subject without debate, and is probably not really - suitable for libcurl. http://curl.haxx.se/mail/archive-2003-04/0126.html - -4.6 ASCII support - - FTP ASCII transfers do not follow RFC959. They don't convert the data - accordingly. - -5. HTTP - -5.1 Better persistency for HTTP 1.0 - - "Better" support for persistent connections over HTTP 1.0 - http://curl.haxx.se/bug/feature.cgi?id=1089001 - -5.2 support FF3 sqlite cookie files - - Firefox 3 is changing from its former format to a a sqlite database instead. - We should consider how (lib)curl can/should support this. - http://curl.haxx.se/bug/feature.cgi?id=1871388 - -5.3 Rearrange request header order - - Server implementors often make an effort to detect browser and to reject - clients it can detect to not match. One of the last details we cannot yet - control in libcurl's HTTP requests, which also can be exploited to detect - that libcurl is in fact used even when it tries to impersonate a browser, is - the order of the request headers. I propose that we introduce a new option in - which you give headers a value, and then when the HTTP request is built it - sorts the headers based on that number. We could then have internally created - headers use a default value so only headers that need to be moved have to be - specified. - - -6. TELNET - -6.1 ditch stdin - -Reading input (to send to the remote server) on stdin is a crappy solution for -library purposes. We need to invent a good way for the application to be able -to provide the data to send. - -6.2 ditch telnet-specific select - - Move the telnet support's network select() loop go away and merge the code - into the main transfer loop. Until this is done, the multi interface won't - work for telnet. - -6.3 feature negotiation debug data - - Add telnet feature negotiation data to the debug callback as header data. - -6.4 send data in chunks - - Currently, telnet sends data one byte at a time. This is fine for interactive - use, but inefficient for any other. Sent data should be sent in larger - chunks. - -7. SSL - -7.1 Disable specific versions - - Provide an option that allows for disabling specific SSL versions, such as - SSLv2 http://curl.haxx.se/bug/feature.cgi?id=1767276 - -7.2 Provide mutex locking API - - Provide a libcurl API for setting mutex callbacks in the underlying SSL - library, so that the same application code can use mutex-locking - independently of OpenSSL or GnutTLS being used. - -7.3 Evaluate SSL patches - - Evaluate/apply Gertjan van Wingerde's SSL patches: - http://curl.haxx.se/mail/lib-2004-03/0087.html - -7.4 Cache OpenSSL contexts - - "Look at SSL cafile - quick traces look to me like these are done on every - request as well, when they should only be necessary once per ssl context (or - once per handle)". The major improvement we can rather easily do is to make - sure we don't create and kill a new SSL "context" for every request, but - instead make one for every connection and re-use that SSL context in the same - style connections are re-used. It will make us use slightly more memory but - it will libcurl do less creations and deletions of SSL contexts. - -7.5 Export session ids - - Add an interface to libcurl that enables "session IDs" to get - exported/imported. Cris Bailiff said: "OpenSSL has functions which can - serialise the current SSL state to a buffer of your choice, and recover/reset - the state from such a buffer at a later date - this is used by mod_ssl for - apache to implement and SSL session ID cache". - -7.6 Provide callback for cert verification - - OpenSSL supports a callback for customised verification of the peer - certificate, but this doesn't seem to be exposed in the libcurl APIs. Could - it be? There's so much that could be done if it were! - -7.7 Support other SSL libraries - - Make curl's SSL layer capable of using other free SSL libraries. Such as - MatrixSSL (http://www.matrixssl.org/). - -7.9 improve configure --with-ssl - - make the configure --with-ssl option first check for OpenSSL, then GnuTLS, - then NSS... - -7.10 Support DANE - - DNS-Based Authentication of Named Entities (DANE) is a way to provide SSL - keys and certs over DNS using DNSSEC as an alternative to the CA model. - http://www.rfc-editor.org/rfc/rfc6698.txt - - -8. GnuTLS - -8.1 SSL engine stuff - - Is this even possible? - -8.3 check connection - - Add a way to check if the connection seems to be alive, to correspond to the - SSL_peak() way we use with OpenSSL. - - -9. SMTP - -9.1 Specify the preferred authentication mechanism - - Add the ability to specify the preferred authentication mechanism or a list - of mechanisms that should be used. Not only that, but the order that is - returned by the server during the EHLO response should be honored by curl. - -9.2 Initial response - - Add the ability for the user to specify whether the initial response is - included in the AUTH command. Some email servers, such as Microsoft - Exchange, can work with either whilst others need to have the initial - response sent separately: - - http://curl.haxx.se/mail/lib-2012-03/0114.html - -9.3 Pipelining - - Add support for pipelining emails. - -10. POP3 - -10.1 auth= in URLs - - Being able to specify the preferred authentication mechanism in the URL as - per RFC2384. - -11. IMAP - -11.1 SASL based authentication mechanisms - - Curl currently sends usernames and passwords as clear text whilst SASL based - authentication mechanisms can be more secure. As such, support should be - added to support these authentication mechanisms. - -12. LDAP - -12.1 SASL based authentication mechansims - - Currently the LDAP module only supports ldap_simple_bind_s() in order to bind - to an LDAP server. However, this function sends username and password details - using the simple authentication mechanism (as clear text). However, it should - be possible to use ldap_bind_s() instead specifing the security context - information ourselves. - -13. Other protocols - -14. New protocols - -14.1 RSYNC - - There's no RFC for the protocol or an URI/URL format. An implementation - should most probably use an existing rsync library, such as librsync. - -15. SASL - -15.1 Other authentication mechanisms - - Add support for gssapi to SMTP and POP3. - -16. Client - -16.1 sync - - "curl --sync http://example.com/feed[1-100].rss" or - "curl --sync http://example.net/{index,calendar,history}.html" - - Downloads a range or set of URLs using the remote name, but only if the - remote file is newer than the local file. A Last-Modified HTTP date header - should also be used to set the mod date on the downloaded file. - -16.2 glob posts - - Globbing support for -d and -F, as in 'curl -d "name=foo[0-9]" URL'. - This is easily scripted though. - -16.3 prevent file overwriting - - Add an option that prevents cURL from overwriting existing local files. When - used, and there already is an existing file with the target file name - (either -O or -o), a number should be appended (and increased if already - existing). So that index.html becomes first index.html.1 and then - index.html.2 etc. - -16.4 simultaneous parallel transfers - - The client could be told to use maximum N simultaneous parallel transfers and - then just make sure that happens. It should of course not make more than one - connection to the same remote host. This would require the client to use the - multi interface. http://curl.haxx.se/bug/feature.cgi?id=1558595 - -16.5 provide formpost headers - - Extending the capabilities of the multipart formposting. How about leaving - the ';type=foo' syntax as it is and adding an extra tag (headers) which - works like this: curl -F "coolfiles=@fil1.txt;headers=@fil1.hdr" where - fil1.hdr contains extra headers like - - Content-Type: text/plain; charset=KOI8-R" - Content-Transfer-Encoding: base64 - X-User-Comment: Please don't use browser specific HTML code - - which should overwrite the program reasonable defaults (plain/text, - 8bit...) - -16.6 url-specific options - - Provide a way to make options bound to a specific URL among several on the - command line. Possibly by letting ':' separate options between URLs, - similar to this: - - curl --data foo --url url.com : \ - --url url2.com : \ - --url url3.com --data foo3 - - (More details: http://curl.haxx.se/mail/archive-2004-07/0133.html) - - The example would do a POST-GET-POST combination on a single command line. - -16.7 warning when setting an option - - Display a warning when libcurl returns an error when setting an option. - This can be useful to tell when support for a particular feature hasn't been - compiled into the library. - -16.8 IPv6 addresses with globbing - - Currently the command line client needs to get url globbing disabled (with - -g) for it to support IPv6 numerical addresses. This is a rather silly flaw - that should be corrected. It probably involves a smarter detection of the - '[' and ']' letters. - -17. Build - -17.1 roffit - - Consider extending 'roffit' to produce decent ASCII output, and use that - instead of (g)nroff when building src/hugehelp.c - -18. Test suite - -18.1 SSL tunnel - - Make our own version of stunnel for simple port forwarding to enable HTTPS - and FTP-SSL tests without the stunnel dependency, and it could allow us to - provide test tools built with either OpenSSL or GnuTLS - -18.2 nicer lacking perl message - - If perl wasn't found by the configure script, don't attempt to run the tests - but explain something nice why it doesn't. - -18.3 more protocols supported - - Extend the test suite to include more protocols. The telnet could just do ftp - or http operations (for which we have test servers). - -18.4 more platforms supported - - Make the test suite work on more platforms. OpenBSD and Mac OS. Remove - fork()s and it should become even more portable. - -19. Next SONAME bump - -19.1 http-style HEAD output for ftp - - #undef CURL_FTP_HTTPSTYLE_HEAD in lib/ftp.c to remove the HTTP-style headers - from being output in NOBODY requests over ftp - -19.2 combine error codes - - Combine some of the error codes to remove duplicates. The original - numbering should not be changed, and the old identifiers would be - macroed to the new ones in an CURL_NO_OLDIES section to help with - backward compatibility. - - Candidates for removal and their replacements: - - CURLE_FILE_COULDNT_READ_FILE => CURLE_REMOTE_FILE_NOT_FOUND - - CURLE_FTP_COULDNT_RETR_FILE => CURLE_REMOTE_FILE_NOT_FOUND - - CURLE_FTP_COULDNT_USE_REST => CURLE_RANGE_ERROR - - CURLE_FUNCTION_NOT_FOUND => CURLE_FAILED_INIT - - CURLE_LDAP_INVALID_URL => CURLE_URL_MALFORMAT - - CURLE_TFTP_NOSUCHUSER => CURLE_TFTP_ILLEGAL - - CURLE_TFTP_NOTFOUND => CURLE_REMOTE_FILE_NOT_FOUND - - CURLE_TFTP_PERM => CURLE_REMOTE_ACCESS_DENIED - -19.3 extend CURLOPT_SOCKOPTFUNCTION prototype - - The current prototype only provides 'purpose' that tells what the - connection/socket is for, but not any protocol or similar. It makes it hard - for applications to differentiate on TCP vs UDP and even HTTP vs FTP and - similar. - -20. Next major release - -20.1 cleanup return codes - - curl_easy_cleanup() returns void, but curl_multi_cleanup() returns a - CURLMcode. These should be changed to be the same. - -20.2 remove obsolete defines - - remove obsolete defines from curl/curl.h - -20.3 size_t - - make several functions use size_t instead of int in their APIs - -20.4 remove several functions - - remove the following functions from the public API: - - curl_getenv - - curl_mprintf (and variations) - - curl_strequal - - curl_strnequal - - They will instead become curlx_ - alternatives. That makes the curl app - still capable of using them, by building with them from source. - - These functions have no purpose anymore: - - curl_multi_socket - - curl_multi_socket_all - -20.5 remove CURLOPT_FAILONERROR - - Remove support for CURLOPT_FAILONERROR, it has gotten too kludgy and weird - internally. Let the app judge success or not for itself. - -20.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE - - Remove support for a global DNS cache. Anything global is silly, and we - already offer the share interface for the same functionality but done - "right". - -20.7 remove progress meter from libcurl - - The internally provided progress meter output doesn't belong in the library. - Basically no application wants it (apart from curl) but instead applications - can and should do their own progress meters using the progress callback. - - The progress callback should then be bumped as well to get proper 64bit - variable types passed to it instead of doubles so that big files work - correctly. - -20.8 remove 'curl_httppost' from public - - curl_formadd() was made to fill in a public struct, but the fact that the - struct is public is never really used by application for their own advantage - but instead often restricts how the form functions can or can't be modified. - - Changing them to return a private handle will benefit the implementation and - allow us much greater freedoms while still maintining a solid API and ABI. - -20.9 have form functions use CURL handle argument - - curl_formadd() and curl_formget() both currently have no CURL handle - argument, but both can use a callback that is set in the easy handle, and - thus curl_formget() with callback cannot function without first having - curl_easy_perform() (or similar) called - which is hard to grasp and a design - mistake. - -20.10 Add CURLOPT_MAIL_CLIENT option - - Rather than use the URL to specify the mail client string to present in the - HELO and EHLO commands, libcurl should support a new CURLOPT specifically for - specifing this data as the URL is non-standard and to be honest a bit of a - hack ;-) - - Please see the following thread for more information: - http://curl.haxx.se/mail/lib-2012-05/0178.html - \ No newline at end of file diff --git a/msvc-deps/curl/docs/TheArtOfHttpScripting b/msvc-deps/curl/docs/TheArtOfHttpScripting deleted file mode 100644 index b0dab5ff..00000000 --- a/msvc-deps/curl/docs/TheArtOfHttpScripting +++ /dev/null @@ -1,507 +0,0 @@ -Online: http://curl.haxx.se/docs/httpscripting.html -Date: Jan 19, 2011 - - The Art Of Scripting HTTP Requests Using Curl - ============================================= - - This document will assume that you're familiar with HTML and general - networking. - - The possibility to write scripts is essential to make a good computer - system. Unix' capability to be extended by shell scripts and various tools to - run various automated commands and scripts is one reason why it has succeeded - so well. - - The increasing amount of applications moving to the web has made "HTTP - Scripting" more frequently requested and wanted. To be able to automatically - extract information from the web, to fake users, to post or upload data to - web servers are all important tasks today. - - Curl is a command line tool for doing all sorts of URL manipulations and - transfers, but this particular document will focus on how to use it when - doing HTTP requests for fun and profit. I'll assume that you know how to - invoke 'curl --help' or 'curl --manual' to get basic information about it. - - Curl is not written to do everything for you. It makes the requests, it gets - the data, it sends data and it retrieves the information. You probably need - to glue everything together using some kind of script language or repeated - manual invokes. - -1. The HTTP Protocol - - HTTP is the protocol used to fetch data from web servers. It is a very simple - protocol that is built upon TCP/IP. The protocol also allows information to - get sent to the server from the client using a few different methods, as will - be shown here. - - HTTP is plain ASCII text lines being sent by the client to a server to - request a particular action, and then the server replies a few text lines - before the actual requested content is sent to the client. - - The client, curl, sends a HTTP request. The request contains a method (like - GET, POST, HEAD etc), a number of request headers and sometimes a request - body. The HTTP server responds with a status line (indicating if things went - well), response headers and most often also a response body. The "body" part - is the plain data you requested, like the actual HTML or the image etc. - - 1.1 See the Protocol - - Using curl's option --verbose (-v as a short option) will display what kind - of commands curl sends to the server, as well as a few other informational - texts. - - --verbose is the single most useful option when it comes to debug or even - understand the curl<->server interaction. - - Sometimes even --verbose is not enough. Then --trace and --trace-ascii offer - even more details as they show EVERYTHING curl sends and receives. Use it - like this: - - curl --trace-ascii debugdump.txt http://www.example.com/ - -2. URL - - The Uniform Resource Locator format is how you specify the address of a - particular resource on the Internet. You know these, you've seen URLs like - http://curl.haxx.se or https://yourbank.com a million times. - -3. GET a page - - The simplest and most common request/operation made using HTTP is to get a - URL. The URL could itself refer to a web page, an image or a file. The client - issues a GET request to the server and receives the document it asked for. - If you issue the command line - - curl http://curl.haxx.se - - you get a web page returned in your terminal window. The entire HTML document - that that URL holds. - - All HTTP replies contain a set of response headers that are normally hidden, - use curl's --include (-i) option to display them as well as the rest of the - document. You can also ask the remote server for ONLY the headers by using - the --head (-I) option (which will make curl issue a HEAD request). - -4. Forms - - Forms are the general way a web site can present a HTML page with fields for - the user to enter data in, and then press some kind of 'OK' or 'submit' - button to get that data sent to the server. The server then typically uses - the posted data to decide how to act. Like using the entered words to search - in a database, or to add the info in a bug track system, display the entered - address on a map or using the info as a login-prompt verifying that the user - is allowed to see what it is about to see. - - Of course there has to be some kind of program in the server end to receive - the data you send. You cannot just invent something out of the air. - - 4.1 GET - - A GET-form uses the method GET, as specified in HTML like: - -
- - -
- - In your favorite browser, this form will appear with a text box to fill in - and a press-button labeled "OK". If you fill in '1905' and press the OK - button, your browser will then create a new URL to get for you. The URL will - get "junk.cgi?birthyear=1905&press=OK" appended to the path part of the - previous URL. - - If the original form was seen on the page "www.hotmail.com/when/birth.html", - the second page you'll get will become - "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK". - - Most search engines work this way. - - To make curl do the GET form post for you, just enter the expected created - URL: - - curl "http://www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK" - - 4.2 POST - - The GET method makes all input field names get displayed in the URL field of - your browser. That's generally a good thing when you want to be able to - bookmark that page with your given data, but it is an obvious disadvantage - if you entered secret information in one of the fields or if there are a - large amount of fields creating a very long and unreadable URL. - - The HTTP protocol then offers the POST method. This way the client sends the - data separated from the URL and thus you won't see any of it in the URL - address field. - - The form would look very similar to the previous one: - -
- - -
- - And to use curl to post this form with the same data filled in as before, we - could do it like: - - curl --data "birthyear=1905&press=%20OK%20" \ - http://www.example.com/when.cgi - - This kind of POST will use the Content-Type - application/x-www-form-urlencoded and is the most widely used POST kind. - - The data you send to the server MUST already be properly encoded, curl will - not do that for you. For example, if you want the data to contain a space, - you need to replace that space with %20 etc. Failing to comply with this - will most likely cause your data to be received wrongly and messed up. - - Recent curl versions can in fact url-encode POST data for you, like this: - - curl --data-urlencode "name=I am Daniel" http://www.example.com - - 4.3 File Upload POST - - Back in late 1995 they defined an additional way to post data over HTTP. It - is documented in the RFC 1867, why this method sometimes is referred to as - RFC1867-posting. - - This method is mainly designed to better support file uploads. A form that - allows a user to upload a file could be written like this in HTML: - -
- - -
- - This clearly shows that the Content-Type about to be sent is - multipart/form-data. - - To post to a form like this with curl, you enter a command line like: - - curl --form upload=@localfilename --form press=OK [URL] - - 4.4 Hidden Fields - - A very common way for HTML based application to pass state information - between pages is to add hidden fields to the forms. Hidden fields are - already filled in, they aren't displayed to the user and they get passed - along just as all the other fields. - - A similar example form with one visible field, one hidden field and one - submit button could look like: - -
- - - -
- - To post this with curl, you won't have to think about if the fields are - hidden or not. To curl they're all the same: - - curl --data "birthyear=1905&press=OK&person=daniel" [URL] - - 4.5 Figure Out What A POST Looks Like - - When you're about fill in a form and send to a server by using curl instead - of a browser, you're of course very interested in sending a POST exactly the - way your browser does. - - An easy way to get to see this, is to save the HTML page with the form on - your local disk, modify the 'method' to a GET, and press the submit button - (you could also change the action URL if you want to). - - You will then clearly see the data get appended to the URL, separated with a - '?'-letter as GET forms are supposed to. - -5. PUT - - The perhaps best way to upload data to a HTTP server is to use PUT. Then - again, this of course requires that someone put a program or script on the - server end that knows how to receive a HTTP PUT stream. - - Put a file to a HTTP server with curl: - - curl --upload-file uploadfile http://www.example.com/receive.cgi - -6. HTTP Authentication - - HTTP Authentication is the ability to tell the server your username and - password so that it can verify that you're allowed to do the request you're - doing. The Basic authentication used in HTTP (which is the type curl uses by - default) is *plain* *text* based, which means it sends username and password - only slightly obfuscated, but still fully readable by anyone that sniffs on - the network between you and the remote server. - - To tell curl to use a user and password for authentication: - - curl --user name:password http://www.example.com - - The site might require a different authentication method (check the headers - returned by the server), and then --ntlm, --digest, --negotiate or even - --anyauth might be options that suit you. - - Sometimes your HTTP access is only available through the use of a HTTP - proxy. This seems to be especially common at various companies. A HTTP proxy - may require its own user and password to allow the client to get through to - the Internet. To specify those with curl, run something like: - - curl --proxy-user proxyuser:proxypassword curl.haxx.se - - If your proxy requires the authentication to be done using the NTLM method, - use --proxy-ntlm, if it requires Digest use --proxy-digest. - - If you use any one these user+password options but leave out the password - part, curl will prompt for the password interactively. - - Do note that when a program is run, its parameters might be possible to see - when listing the running processes of the system. Thus, other users may be - able to watch your passwords if you pass them as plain command line - options. There are ways to circumvent this. - - It is worth noting that while this is how HTTP Authentication works, very - many web sites will not use this concept when they provide logins etc. See - the Web Login chapter further below for more details on that. - -7. Referer - - A HTTP request may include a 'referer' field (yes it is misspelled), which - can be used to tell from which URL the client got to this particular - resource. Some programs/scripts check the referer field of requests to verify - that this wasn't arriving from an external site or an unknown page. While - this is a stupid way to check something so easily forged, many scripts still - do it. Using curl, you can put anything you want in the referer-field and - thus more easily be able to fool the server into serving your request. - - Use curl to set the referer field with: - - curl --referer http://www.example.come http://www.example.com - -8. User Agent - - Very similar to the referer field, all HTTP requests may set the User-Agent - field. It names what user agent (client) that is being used. Many - applications use this information to decide how to display pages. Silly web - programmers try to make different pages for users of different browsers to - make them look the best possible for their particular browsers. They usually - also do different kinds of javascript, vbscript etc. - - At times, you will see that getting a page with curl will not return the same - page that you see when getting the page with your browser. Then you know it - is time to set the User Agent field to fool the server into thinking you're - one of those browsers. - - To make curl look like Internet Explorer 5 on a Windows 2000 box: - - curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" [URL] - - Or why not look like you're using Netscape 4.73 on an old Linux box: - - curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" [URL] - -9. Redirects - - When a resource is requested from a server, the reply from the server may - include a hint about where the browser should go next to find this page, or a - new page keeping newly generated output. The header that tells the browser - to redirect is Location:. - - Curl does not follow Location: headers by default, but will simply display - such pages in the same manner it display all HTTP replies. It does however - feature an option that will make it attempt to follow the Location: pointers. - - To tell curl to follow a Location: - - curl --location http://www.example.com - - If you use curl to POST to a site that immediately redirects you to another - page, you can safely use --location (-L) and --data/--form together. Curl will - only use POST in the first request, and then revert to GET in the following - operations. - -10. Cookies - - The way the web browsers do "client side state control" is by using - cookies. Cookies are just names with associated contents. The cookies are - sent to the client by the server. The server tells the client for what path - and host name it wants the cookie sent back, and it also sends an expiration - date and a few more properties. - - When a client communicates with a server with a name and path as previously - specified in a received cookie, the client sends back the cookies and their - contents to the server, unless of course they are expired. - - Many applications and servers use this method to connect a series of requests - into a single logical session. To be able to use curl in such occasions, we - must be able to record and send back cookies the way the web application - expects them. The same way browsers deal with them. - - The simplest way to send a few cookies to the server when getting a page with - curl is to add them on the command line like: - - curl --cookie "name=Daniel" http://www.example.com - - Cookies are sent as common HTTP headers. This is practical as it allows curl - to record cookies simply by recording headers. Record cookies with curl by - using the --dump-header (-D) option like: - - curl --dump-header headers_and_cookies http://www.example.com - - (Take note that the --cookie-jar option described below is a better way to - store cookies.) - - Curl has a full blown cookie parsing engine built-in that comes to use if you - want to reconnect to a server and use cookies that were stored from a - previous connection (or handicrafted manually to fool the server into - believing you had a previous connection). To use previously stored cookies, - you run curl like: - - curl --cookie stored_cookies_in_file http://www.example.com - - Curl's "cookie engine" gets enabled when you use the --cookie option. If you - only want curl to understand received cookies, use --cookie with a file that - doesn't exist. Example, if you want to let curl understand cookies from a - page and follow a location (and thus possibly send back cookies it received), - you can invoke it like: - - curl --cookie nada --location http://www.example.com - - Curl has the ability to read and write cookie files that use the same file - format that Netscape and Mozilla do. It is a convenient way to share cookies - between browsers and automatic scripts. The --cookie (-b) switch - automatically detects if a given file is such a cookie file and parses it, - and by using the --cookie-jar (-c) option you'll make curl write a new cookie - file at the end of an operation: - - curl --cookie cookies.txt --cookie-jar newcookies.txt \ - http://www.example.com - -11. HTTPS - - There are a few ways to do secure HTTP transfers. The by far most common - protocol for doing this is what is generally known as HTTPS, HTTP over - SSL. SSL encrypts all the data that is sent and received over the network and - thus makes it harder for attackers to spy on sensitive information. - - SSL (or TLS as the latest version of the standard is called) offers a - truckload of advanced features to allow all those encryptions and key - infrastructure mechanisms encrypted HTTP requires. - - Curl supports encrypted fetches thanks to the freely available OpenSSL - libraries. To get a page from a HTTPS server, simply run curl like: - - curl https://secure.example.com - - 11.1 Certificates - - In the HTTPS world, you use certificates to validate that you are the one - you claim to be, as an addition to normal passwords. Curl supports client- - side certificates. All certificates are locked with a pass phrase, which you - need to enter before the certificate can be used by curl. The pass phrase - can be specified on the command line or if not, entered interactively when - curl queries for it. Use a certificate with curl on a HTTPS server like: - - curl --cert mycert.pem https://secure.example.com - - curl also tries to verify that the server is who it claims to be, by - verifying the server's certificate against a locally stored CA cert - bundle. Failing the verification will cause curl to deny the connection. You - must then use --insecure (-k) in case you want to tell curl to ignore that - the server can't be verified. - - More about server certificate verification and ca cert bundles can be read - in the SSLCERTS document, available online here: - - http://curl.haxx.se/docs/sslcerts.html - -12. Custom Request Elements - - Doing fancy stuff, you may need to add or change elements of a single curl - request. - - For example, you can change the POST request to a PROPFIND and send the data - as "Content-Type: text/xml" (instead of the default Content-Type) like this: - - curl --data "" --header "Content-Type: text/xml" \ - --request PROPFIND url.com - - You can delete a default header by providing one without content. Like you - can ruin the request by chopping off the Host: header: - - curl --header "Host:" http://www.example.com - - You can add headers the same way. Your server may want a "Destination:" - header, and you can add it: - - curl --header "Destination: http://nowhere" http://example.com - -13. Web Login - - While not strictly just HTTP related, it still cause a lot of people problems - so here's the executive run-down of how the vast majority of all login forms - work and how to login to them using curl. - - It can also be noted that to do this properly in an automated fashion, you - will most certainly need to script things and do multiple curl invokes etc. - - First, servers mostly use cookies to track the logged-in status of the - client, so you will need to capture the cookies you receive in the - responses. Then, many sites also set a special cookie on the login page (to - make sure you got there through their login page) so you should make a habit - of first getting the login-form page to capture the cookies set there. - - Some web-based login systems features various amounts of javascript, and - sometimes they use such code to set or modify cookie contents. Possibly they - do that to prevent programmed logins, like this manual describes how to... - Anyway, if reading the code isn't enough to let you repeat the behavior - manually, capturing the HTTP requests done by your browers and analyzing the - sent cookies is usually a working method to work out how to shortcut the - javascript need. - - In the actual
tag for the login, lots of sites fill-in random/session - or otherwise secretly generated hidden tags and you may need to first capture - the HTML code for the login form and extract all the hidden fields to be able - to do a proper login POST. Remember that the contents need to be URL encoded - when sent in a normal POST. - -14. Debug - - Many times when you run curl on a site, you'll notice that the site doesn't - seem to respond the same way to your curl requests as it does to your - browser's. - - Then you need to start making your curl requests more similar to your - browser's requests: - - * Use the --trace-ascii option to store fully detailed logs of the requests - for easier analyzing and better understanding - - * Make sure you check for and use cookies when needed (both reading with - --cookie and writing with --cookie-jar) - - * Set user-agent to one like a recent popular browser does - - * Set referer like it is set by the browser - - * If you use POST, make sure you send all the fields and in the same order as - the browser does it. (See chapter 4.5 above) - - A very good helper to make sure you do this right, is the LiveHTTPHeader tool - that lets you view all headers you send and receive with Mozilla/Firefox - (even when using HTTPS). - - A more raw approach is to capture the HTTP traffic on the network with tools - such as ethereal or tcpdump and check what headers that were sent and - received by the browser. (HTTPS makes this technique inefficient.) - -15. References - - RFC 2616 is a must to read if you want in-depth understanding of the HTTP - protocol. - - RFC 3986 explains the URL syntax. - - RFC 2109 defines how cookies are supposed to work. - - RFC 1867 defines the HTTP post upload format. - - http://curl.haxx.se is the home of the cURL project diff --git a/msvc-deps/curl/docs/VERSIONS b/msvc-deps/curl/docs/VERSIONS deleted file mode 100644 index 0670089b..00000000 --- a/msvc-deps/curl/docs/VERSIONS +++ /dev/null @@ -1,60 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - -Version Numbers and Releases - - Curl is not only curl. Curl is also libcurl. They're actually individually - versioned, but they mostly follow each other rather closely. - - The version numbering is always built up using the same system: - - X.Y[.Z] - - Where - X is main version number - Y is release number - Z is patch number - - One of these numbers will get bumped in each new release. The numbers to the - right of a bumped number will be reset to zero. If Z is zero, it may not be - included in the version number. - - The main version number will get bumped when *really* big, world colliding - changes are made. The release number is bumped when changes are performed or - things/features are added. The patch number is bumped when the changes are - mere bugfixes. - - It means that after release 1.2.3, we can release 2.0 if something really big - has been made, 1.3 if not that big changes were made or 1.2.4 if mostly bugs - were fixed. - - Bumping, as in increasing the number with 1, is unconditionally only - affecting one of the numbers (except the ones to the right of it, that may be - set to zero). 1 becomes 2, 3 becomes 4, 9 becomes 10, 88 becomes 89 and 99 - becomes 100. So, after 1.2.9 comes 1.2.10. After 3.99.3, 3.100 might come. - - All original curl source release archives are named according to the libcurl - version (not according to the curl client version that, as said before, might - differ). - - As a service to any application that might want to support new libcurl - features while still being able to build with older versions, all releases - have the libcurl version stored in the curl/curlver.h file using a static - numbering scheme that can be used for comparison. The version number is - defined as: - - #define LIBCURL_VERSION_NUM 0xXXYYZZ - - Where XX, YY and ZZ are the main version, release and patch numbers in - hexadecimal. All three number fields are always represented using two digits - (eight bits each). 1.2 would appear as "0x010200" while version 9.11.7 - appears as "0x090b07". - - This 6-digit hexadecimal number is always a greater number in a more recent - release. It makes comparisons with greater than and less than work. - - This number is also available as three separate defines: - LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH. diff --git a/msvc-deps/curl/docs/curl-config.1 b/msvc-deps/curl/docs/curl-config.1 deleted file mode 100644 index 14a9d2ba..00000000 --- a/msvc-deps/curl/docs/curl-config.1 +++ /dev/null @@ -1,98 +0,0 @@ -.\" ************************************************************************** -.\" * _ _ ____ _ -.\" * Project ___| | | | _ \| | -.\" * / __| | | | |_) | | -.\" * | (__| |_| | _ <| |___ -.\" * \___|\___/|_| \_\_____| -.\" * -.\" * Copyright (C) 1998 - 2012, 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. -.\" * -.\" ************************************************************************** -.\" -.TH curl-config 1 "25 Oct 2007" "Curl 7.17.1" "curl-config manual" -.SH NAME -curl-config \- Get information about a libcurl installation -.SH SYNOPSIS -.B curl-config [options] -.SH DESCRIPTION -.B curl-config -displays information about the curl and libcurl installation. -.SH OPTIONS -.IP "--ca" -Displays the built-in path to the CA cert bundle this libcurl uses. -.IP "--cc" -Displays the compiler used to build libcurl. -.IP "--cflags" -Set of compiler options (CFLAGS) to use when compiling files that use -libcurl. Currently that is only the include path to the curl include files. -.IP "--checkfor [version]" -Specify the oldest possible libcurl version string you want, and this -script will return 0 if the current installation is new enough or it -returns 1 and outputs a text saying that the current version is not new -enough. (Added in 7.15.4) -.IP "--configure" -Displays the arguments given to configure when building curl. -.IP "--feature" -Lists what particular main features the installed libcurl was built with. At -the time of writing, this list may include SSL, KRB4 or IPv6. Do not assume -any particular order. The keywords will be separated by newlines. There may be -none, one, or several keywords in the list. -.IP "--help" -Displays the available options. -.IP "--libs" -Shows the complete set of libs and other linker options you will need in order -to link your application with libcurl. -.IP "--prefix" -This is the prefix used when libcurl was installed. Libcurl is then installed -in $prefix/lib and its header files are installed in $prefix/include and so -on. The prefix is set with "configure --prefix". -.IP "--protocols" -Lists what particular protocols the installed libcurl was built to support. At -the time of writing, this list may include HTTP, HTTPS, FTP, FTPS, FILE, -TELNET, LDAP, DICT. Do not assume any particular order. The protocols will -be listed using uppercase and are separated by newlines. There may be none, -one, or several protocols in the list. (Added in 7.13.0) -.IP "--static-libs" -Shows the complete set of libs and other linker options you will need in order -to link your application with libcurl statically. (Added in 7.17.1) -.IP "--version" -Outputs version information about the installed libcurl. -.IP "--vernum" -Outputs version information about the installed libcurl, in numerical mode. -This outputs the version number, in hexadecimal, with 8 bits for each part; -major, minor, patch. So that libcurl 7.7.4 would appear as 070704 and libcurl -12.13.14 would appear as 0c0d0e... Note that the initial zero might be -omitted. (This option was broken in the 7.15.0 release.) -.SH "EXAMPLES" -What linker options do I need when I link with libcurl? - - $ curl-config --libs - -What compiler options do I need when I compile using libcurl functions? - - $ curl-config --cflags - -How do I know if libcurl was built with SSL support? - - $ curl-config --feature | grep SSL - -What's the installed libcurl version? - - $ curl-config --version - -How do I build a single file with a one-line command? - - $ `curl-config --cc --cflags` -o example example.c `curl-config --libs` -.SH "SEE ALSO" -.BR curl (1) diff --git a/msvc-deps/curl/docs/curl-config.html b/msvc-deps/curl/docs/curl-config.html deleted file mode 100644 index 1563d548..00000000 --- a/msvc-deps/curl/docs/curl-config.html +++ /dev/null @@ -1,91 +0,0 @@ - - -curl-config man page - - - - -

NAME

-

curl-config - Get information about a libcurl installation

SYNOPSIS

-

curl-config [options]

DESCRIPTION

-

curl-config displays information about the curl and libcurl installation.

OPTIONS

-

-

--ca -

Displays the built-in path to the CA cert bundle this libcurl uses. -

--cc -

Displays the compiler used to build libcurl. -

--cflags -

Set of compiler options (CFLAGS) to use when compiling files that use libcurl. Currently that is only the include path to the curl include files. -

--checkfor [version] -

Specify the oldest possible libcurl version string you want, and this script will return 0 if the current installation is new enough or it returns 1 and outputs a text saying that the current version is not new enough. (Added in 7.15.4) -

--configure -

Displays the arguments given to configure when building curl. -

--feature -

Lists what particular main features the installed libcurl was built with. At the time of writing, this list may include SSL, KRB4 or IPv6. Do not assume any particular order. The keywords will be separated by newlines. There may be none, one, or several keywords in the list. -

--help -

Displays the available options. -

--libs -

Shows the complete set of libs and other linker options you will need in order to link your application with libcurl. -

--prefix -

This is the prefix used when libcurl was installed. Libcurl is then installed in $prefix/lib and its header files are installed in $prefix/include and so on. The prefix is set with "configure --prefix". -

--protocols -

Lists what particular protocols the installed libcurl was built to support. At the time of writing, this list may include HTTP, HTTPS, FTP, FTPS, FILE, TELNET, LDAP, DICT. Do not assume any particular order. The protocols will be listed using uppercase and are separated by newlines. There may be none, one, or several protocols in the list. (Added in 7.13.0) -

--static-libs -

Shows the complete set of libs and other linker options you will need in order to link your application with libcurl statically. (Added in 7.17.1) -

--version -

Outputs version information about the installed libcurl. -

--vernum -

Outputs version information about the installed libcurl, in numerical mode. This outputs the version number, in hexadecimal, with 8 bits for each part; major, minor, patch. So that libcurl 7.7.4 would appear as 070704 and libcurl 12.13.14 would appear as 0c0d0e... Note that the initial zero might be omitted. (This option was broken in the 7.15.0 release.)

EXAMPLES

-

What linker options do I need when I link with libcurl? -

  $ curl-config --libs -

What compiler options do I need when I compile using libcurl functions? -

  $ curl-config --cflags -

How do I know if libcurl was built with SSL support? -

  $ curl-config --feature | grep SSL -

What's the installed libcurl version? -

  $ curl-config --version -

How do I build a single file with a one-line command? -

  $ `curl-config --cc --cflags` -o example example.c `curl-config --libs`

SEE ALSO

-

curl (1)

- This HTML page was made with roffit. - diff --git a/msvc-deps/curl/docs/curl-config.pdf b/msvc-deps/curl/docs/curl-config.pdf deleted file mode 100644 index e51f1772..00000000 Binary files a/msvc-deps/curl/docs/curl-config.pdf and /dev/null differ diff --git a/msvc-deps/curl/docs/curl.1 b/msvc-deps/curl/docs/curl.1 deleted file mode 100644 index 6808d07e..00000000 --- a/msvc-deps/curl/docs/curl.1 +++ /dev/null @@ -1,1944 +0,0 @@ -.\" ************************************************************************** -.\" * _ _ ____ _ -.\" * Project ___| | | | _ \| | -.\" * / __| | | | |_) | | -.\" * | (__| |_| | _ <| |___ -.\" * \___|\___/|_| \_\_____| -.\" * -.\" * Copyright (C) 1998 - 2012, 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. -.\" * -.\" ************************************************************************** -.\" -.TH curl 1 "27 July 2012" "Curl 7.27.0" "Curl Manual" -.SH NAME -curl \- transfer a URL -.SH SYNOPSIS -.B curl [options] -.I [URL...] -.SH DESCRIPTION -.B curl -is a tool to transfer data from or to a server, using one of the supported -protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, -LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP). The -command is designed to work without user interaction. - -curl offers a busload of useful tricks like proxy support, user -authentication, FTP upload, HTTP post, SSL connections, cookies, file transfer -resume, Metalink, and more. As you will see below, the number of features will -make your head spin! - -curl is powered by libcurl for all transfer-related features. See -.BR libcurl (3) -for details. -.SH URL -The URL syntax is protocol-dependent. You'll find a detailed description in -RFC 3986. - -You can specify multiple URLs or parts of URLs by writing part sets within -braces as in: - - http://site.{one,two,three}.com - -or you can get sequences of alphanumeric series by using [] as in: - - ftp://ftp.numericals.com/file[1-100].txt - ftp://ftp.numericals.com/file[001-100].txt (with leading zeros) - ftp://ftp.letters.com/file[a-z].txt - -Nested sequences are not supported, but you can use several ones next to each -other: - - http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html - -You can specify any amount of URLs on the command line. They will be fetched -in a sequential manner in the specified order. - -You can specify a step counter for the ranges to get every Nth number or -letter: - - http://www.numericals.com/file[1-100:10].txt - http://www.letters.com/file[a-z:2].txt - -If you specify URL without protocol:// prefix, curl will attempt to guess what -protocol you might want. It will then default to HTTP but try other protocols -based on often-used host name prefixes. For example, for host names starting -with "ftp." curl will assume you want to speak FTP. - -curl will do its best to use what you pass to it as a URL. It is not trying to -validate it as a syntactically correct URL by any means but is instead -\fBvery\fP liberal with what it accepts. - -curl will attempt to re-use connections for multiple file transfers, so that -getting many files from the same server will not do multiple connects / -handshakes. This improves speed. Of course this is only done on files -specified on a single command line and cannot be used between separate curl -invokes. -.SH "PROGRESS METER" -curl normally displays a progress meter during operations, indicating the -amount of transferred data, transfer speeds and estimated time left, etc. - -curl displays this data to the terminal by default, so if you invoke curl to -do an operation and it is about to write data to the terminal, it -\fIdisables\fP the progress meter as otherwise it would mess up the output -mixing progress meter and response data. - -If you want a progress meter for HTTP POST or PUT requests, you need to -redirect the response output to a file, using shell redirect (>), -o [file] or -similar. - -It is not the same case for FTP upload as that operation does not spit out -any response data to the terminal. - -If you prefer a progress "bar" instead of the regular meter, \fI-#\fP is your -friend. -.SH OPTIONS -In general, all boolean options are enabled with --\fBoption\fP and yet again -disabled with --\fBno-\fPoption. That is, you use the exact same option name -but prefix it with "no-". However, in this list we mostly only list and show -the --option version of them. (This concept with --no options was added in -7.19.0. Previously most options were toggled on/off on repeated use of the -same command line option.) -.IP "-#, --progress-bar" -Make curl display progress as a simple progress bar instead of the standard, -more informational, meter. -.IP "-0, --http1.0" -(HTTP) Forces curl to issue its requests using HTTP 1.0 instead of using its -internally preferred: HTTP 1.1. -.IP "-1, --tlsv1" -(SSL) -Forces curl to use TLS version 1 when negotiating with a remote TLS server. -.IP "-2, --sslv2" -(SSL) -Forces curl to use SSL version 2 when negotiating with a remote SSL server. -.IP "-3, --sslv3" -(SSL) -Forces curl to use SSL version 3 when negotiating with a remote SSL server. -.IP "-4, --ipv4" -If curl is capable of resolving an address to multiple IP versions (which it -is if it is IPv6-capable), this option tells curl to resolve names to IPv4 -addresses only. -.IP "-6, --ipv6" -If curl is capable of resolving an address to multiple IP versions (which it -is if it is IPv6-capable), this option tells curl to resolve names to IPv6 -addresses only. -.IP "-a, --append" -(FTP/SFTP) When used in an upload, this will tell curl to append to the target -file instead of overwriting it. If the file doesn't exist, it will be created. -Note that this flag is ignored by some SSH servers (including OpenSSH). -.IP "-A, --user-agent " -(HTTP) Specify the User-Agent string to send to the HTTP server. Some badly -done CGIs fail if this field isn't set to "Mozilla/4.0". To encode blanks in -the string, surround the string with single quote marks. This can also be set -with the \fI-H, --header\fP option of course. - -If this option is used several times, the last one will be used. -.IP "--anyauth" -(HTTP) Tells curl to figure out authentication method by itself, and use the -most secure one the remote site claims to support. This is done by first -doing a request and checking the response-headers, thus possibly inducing an -extra network round-trip. This is used instead of setting a specific -authentication method, which you can do with \fI--basic\fP, \fI--digest\fP, -\fI--ntlm\fP, and \fI--negotiate\fP. - -Note that using --anyauth is not recommended if you do uploads from stdin, -since it may require data to be sent twice and then the client must be able to -rewind. If the need should arise when uploading from stdin, the upload -operation will fail. -.IP "-b, --cookie " -(HTTP) -Pass the data to the HTTP server as a cookie. It is supposedly the -data previously received from the server in a "Set-Cookie:" line. -The data should be in the format "NAME1=VALUE1; NAME2=VALUE2". - -If no '=' symbol is used in the line, it is treated as a filename to use to -read previously stored cookie lines from, which should be used in this session -if they match. Using this method also activates the "cookie parser" which will -make curl record incoming cookies too, which may be handy if you're using this -in combination with the \fI-L, --location\fP option. The file format of the -file to read cookies from should be plain HTTP headers or the Netscape/Mozilla -cookie file format. - -\fBNOTE\fP that the file specified with \fI-b, --cookie\fP is only used as -input. No cookies will be stored in the file. To store cookies, use the -\fI-c, --cookie-jar\fP option or you could even save the HTTP headers to a file -using \fI-D, --dump-header\fP! - -If this option is used several times, the last one will be used. -.IP "-B, --use-ascii" -(FTP/LDAP) Enable ASCII transfer. For FTP, this can also be -enforced by using an URL that ends with ";type=A". This option causes data -sent to stdout to be in text mode for win32 systems. -.IP "--basic" -(HTTP) Tells curl to use HTTP Basic authentication. This is the default and -this option is usually pointless, unless you use it to override a previously -set option that sets a different authentication method (such as \fI--ntlm\fP, -\fI--digest\fP, or \fI--negotiate\fP). -.IP "-c, --cookie-jar " -(HTTP) Specify to which file you want curl to write all cookies after a -completed operation. Curl writes all cookies previously read from a specified -file as well as all cookies received from remote server(s). If no cookies are -known, no file will be written. The file will be written using the Netscape -cookie file format. If you set the file name to a single dash, "-", the -cookies will be written to stdout. - -This command line option will activate the cookie engine that makes curl -record and use cookies. Another way to activate it is to use the \fI-b, ---cookie\fP option. - -If the cookie jar can't be created or written to, the whole curl operation -won't fail or even report an error clearly. Using -v will get a warning -displayed, but that is the only visible feedback you get about this possibly -lethal situation. - -If this option is used several times, the last specified file name will be -used. -.IP "-C, --continue-at " -Continue/Resume a previous file transfer at the given offset. The given offset -is the exact number of bytes that will be skipped, counting from the beginning -of the source file before it is transferred to the destination. If used with -uploads, the FTP server command SIZE will not be used by curl. - -Use "-C -" to tell curl to automatically find out where/how to resume the -transfer. It then uses the given output/input files to figure that out. - -If this option is used several times, the last one will be used. -.IP "--ciphers " -(SSL) Specifies which ciphers to use in the connection. The list of ciphers -must specify valid ciphers. Read up on SSL cipher list details on this URL: -\fIhttp://www.openssl.org/docs/apps/ciphers.html\fP - -NSS ciphers are done differently than OpenSSL and GnuTLS. The full list of NSS -ciphers is in the NSSCipherSuite entry at this URL: -\fIhttp://git.fedorahosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives\fP - -If this option is used several times, the last one will be used. -.IP "--compressed" -(HTTP) Request a compressed response using one of the algorithms curl -supports, and save the uncompressed document. If this option is used and the -server sends an unsupported encoding, curl will report an error. -.IP "--connect-timeout " -Maximum time in seconds that you allow the connection to the server to take. -This only limits the connection phase, once curl has connected this option is -of no more use. See also the \fI-m, --max-time\fP option. - -If this option is used several times, the last one will be used. -.IP "--create-dirs" -When used in conjunction with the \fI-o\fP option, curl will create the -necessary local directory hierarchy as needed. This option creates the dirs -mentioned with the \fI-o\fP option, nothing else. If the \fI-o\fP file name -uses no dir or if the dirs it mentions already exist, no dir will be created. - -To create remote directories when using FTP or SFTP, try -\fI--ftp-create-dirs\fP. -.IP "--crlf" -(FTP) Convert LF to CRLF in upload. Useful for MVS (OS/390). -.IP "--crlfile " -(HTTPS/FTPS) Provide a file using PEM format with a Certificate Revocation -List that may specify peer certificates that are to be considered revoked. - -If this option is used several times, the last one will be used. - -(Added in 7.19.7) -.IP "-d, --data " -(HTTP) Sends the specified data in a POST request to the HTTP server, in the -same way that a browser does when a user has filled in an HTML form and -presses the submit button. This will cause curl to pass the data to the server -using the content-type application/x-www-form-urlencoded. Compare to -\fI-F, --form\fP. - -\fI-d, --data\fP is the same as \fI--data-ascii\fP. To post data purely binary, -you should instead use the \fI--data-binary\fP option. To URL-encode the value -of a form field you may use \fI--data-urlencode\fP. - -If any of these options is used more than once on the same command line, the -data pieces specified will be merged together with a separating -&-symbol. Thus, using '-d name=daniel -d skill=lousy' would generate a post -chunk that looks like \&'name=daniel&skill=lousy'. - -If you start the data with the letter @, the rest should be a file name to -read the data from, or - if you want curl to read the data from stdin. The -contents of the file must already be URL-encoded. Multiple files can also be -specified. Posting data from a file named 'foobar' would thus be done with -\fI--data @foobar\fP. -.IP "-D, --dump-header " -Write the protocol headers to the specified file. - -This option is handy to use when you want to store the headers that an HTTP -site sends to you. Cookies from the headers could then be read in a second -curl invocation by using the \fI-b, --cookie\fP option! The -\fI-c, --cookie-jar\fP option is however a better way to store cookies. - -When used in FTP, the FTP server response lines are considered being "headers" -and thus are saved there. - -If this option is used several times, the last one will be used. - -.IP "--data-ascii " -See \fI-d, --data\fP. -.IP "--data-binary " -(HTTP) This posts data exactly as specified with no extra processing -whatsoever. - -If you start the data with the letter @, the rest should be a filename. Data -is posted in a similar manner as \fI--data-ascii\fP does, except that newlines -are preserved and conversions are never done. - -If this option is used several times, the ones following the first will append -data as described in \fI-d, --data\fP. -.IP "--data-urlencode " -(HTTP) This posts data, similar to the other --data options with the exception -that this performs URL-encoding. (Added in 7.18.0) - -To be CGI-compliant, the part should begin with a \fIname\fP followed -by a separator and a content specification. The part can be passed to -curl using one of the following syntaxes: -.RS -.IP "content" -This will make curl URL-encode the content and pass that on. Just be careful -so that the content doesn't contain any = or @ symbols, as that will then make -the syntax match one of the other cases below! -.IP "=content" -This will make curl URL-encode the content and pass that on. The preceding = -symbol is not included in the data. -.IP "name=content" -This will make curl URL-encode the content part and pass that on. Note that -the name part is expected to be URL-encoded already. -.IP "@filename" -This will make curl load data from the given file (including any newlines), -URL-encode that data and pass it on in the POST. -.IP "name@filename" -This will make curl load data from the given file (including any newlines), -URL-encode that data and pass it on in the POST. The name part gets an equal -sign appended, resulting in \fIname=urlencoded-file-content\fP. Note that the -name is expected to be URL-encoded already. -.RE -.IP "--delegation LEVEL" -Set \fILEVEL\fP to tell the server what it is allowed to delegate when it -comes to user credentials. Used with GSS/kerberos. -.RS -.IP "none" -Don't allow any delegation. -.IP "policy" -Delegates if and only if the OK-AS-DELEGATE flag is set in the Kerberos -service ticket, which is a matter of realm policy. -.IP "always" -Unconditionally allow the server to delegate. -.RE -.IP "--digest" -(HTTP) Enables HTTP Digest authentication. This is an authentication scheme -that prevents the password from being sent over the wire in clear text. Use -this in combination with the normal \fI-u, --user\fP option to set user name -and password. See also \fI--ntlm\fP, \fI--negotiate\fP and \fI--anyauth\fP for -related options. - -If this option is used several times, only the first one is used. -.IP "--disable-eprt" -(FTP) Tell curl to disable the use of the EPRT and LPRT commands when doing -active FTP transfers. Curl will normally always first attempt to use EPRT, -then LPRT before using PORT, but with this option, it will use PORT right -away. EPRT and LPRT are extensions to the original FTP protocol, and may not -work on all servers, but they enable more functionality in a better way than -the traditional PORT command. - -\fB--eprt\fP can be used to explicitly enable EPRT again and \fB--no-eprt\fP -is an alias for \fB--disable-eprt\fP. - -Disabling EPRT only changes the active behavior. If you want to switch to -passive mode you need to not use \fI-P, --ftp-port\fP or force it with -\fI--ftp-pasv\fP. -.IP "--disable-epsv" -(FTP) Tell curl to disable the use of the EPSV command when doing passive FTP -transfers. Curl will normally always first attempt to use EPSV before PASV, -but with this option, it will not try using EPSV. - -\fB--epsv\fP can be used to explicitly enable EPSV again and \fB--no-epsv\fP -is an alias for \fB--disable-epsv\fP. - -Disabling EPSV only changes the passive behavior. If you want to switch to -active mode you need to use \fI-P, --ftp-port\fP. -.IP "-e, --referer " -(HTTP) Sends the "Referer Page" information to the HTTP server. This can also -be set with the \fI-H, --header\fP flag of course. When used with -\fI-L, --location\fP you can append ";auto" to the --referer URL to make curl -automatically set the previous URL when it follows a Location: header. The -\&";auto" string can be used alone, even if you don't set an initial --referer. - -If this option is used several times, the last one will be used. -.IP "-E, --cert " -(SSL) Tells curl to use the specified client certificate file when getting a -file with HTTPS, FTPS or another SSL-based protocol. The certificate must be -in PEM format. If the optional password isn't specified, it will be queried -for on the terminal. Note that this option assumes a \&"certificate" file that -is the private key and the private certificate concatenated! See \fI--cert\fP -and \fI--key\fP to specify them independently. - -If curl is built against the NSS SSL library then this option can tell -curl the nickname of the certificate to use within the NSS database defined -by the environment variable SSL_DIR (or by default /etc/pki/nssdb). If the -NSS PEM PKCS#11 module (libnsspem.so) is available then PEM files may be -loaded. If you want to use a file from the current directory, please precede -it with "./" prefix, in order to avoid confusion with a nickname. - -If this option is used several times, the last one will be used. -.IP "--engine " -Select the OpenSSL crypto engine to use for cipher -operations. Use \fI--engine list\fP to print a list of build-time supported -engines. Note that not all (or none) of the engines may be available at -run-time. -.IP "--environment" -(RISC OS ONLY) Sets a range of environment variables, using the names the -\fI-w\fP option supports, to allow easier extraction of useful information -after having run curl. -.IP "--egd-file " -(SSL) Specify the path name to the Entropy Gathering Daemon socket. The socket -is used to seed the random engine for SSL connections. See also the -\fI--random-file\fP option. -.IP "--cert-type " -(SSL) Tells curl what certificate type the provided certificate is in. PEM, -DER and ENG are recognized types. If not specified, PEM is assumed. - -If this option is used several times, the last one will be used. -.IP "--cacert " -(SSL) Tells curl to use the specified certificate file to verify the peer. The -file may contain multiple CA certificates. The certificate(s) must be in PEM -format. Normally curl is built to use a default file for this, so this option -is typically used to alter that default file. - -curl recognizes the environment variable named 'CURL_CA_BUNDLE' if it is -set, and uses the given path as a path to a CA cert bundle. This option -overrides that variable. - -The windows version of curl will automatically look for a CA certs file named -\'curl-ca-bundle.crt\', either in the same directory as curl.exe, or in the -Current Working Directory, or in any folder along your PATH. - -If curl is built against the NSS SSL library then this option tells -curl the nickname of the CA certificate to use within the NSS database -defined by the environment variable SSL_DIR (or by default /etc/pki/nssdb). -If the NSS PEM PKCS#11 module (libnsspem.so) is available then PEM files -may be loaded. - -If this option is used several times, the last one will be used. -.IP "--capath " -(SSL) Tells curl to use the specified certificate directory to verify the -peer. Multiple paths can be provided by separating them with ":" (e.g. -\&"path1:path2:path3"). The certificates must be in PEM format, and if curl is -built against OpenSSL, the directory must have been processed using the -c_rehash utility supplied with OpenSSL. Using \fI--capath\fP can allow -OpenSSL-powered curl to make SSL-connections much more efficiently than using -\fI--cacert\fP if the \fI--cacert\fP file contains many CA certificates. - -If this option is set, the default capath value will be ignored, and if it is -used several times, the last one will be used. -.IP "-f, --fail" -(HTTP) Fail silently (no output at all) on server errors. This is mostly done -to better enable scripts etc to better deal with failed attempts. In -normal cases when an HTTP server fails to deliver a document, it returns an -HTML document stating so (which often also describes why and more). This flag -will prevent curl from outputting that and return error 22. - -This method is not fail-safe and there are occasions where non-successful -response codes will slip through, especially when authentication is involved -(response codes 401 and 407). -.IP "-F, --form " -(HTTP) This lets curl emulate a filled-in form in which a user has pressed the -submit button. This causes curl to POST data using the Content-Type -multipart/form-data according to RFC 2388. This enables uploading of binary -files etc. To force the 'content' part to be a file, prefix the file name -with an @ sign. To just get the content part from a file, prefix the file name -with the symbol <. The difference between @ and < is then that @ makes a file -get attached in the post as a file upload, while the < makes a text field and -just get the contents for that text field from a file. - -Example, to send your password file to the server, where -\&'password' is the name of the form-field to which /etc/passwd will be the -input: - -\fBcurl\fP -F password=@/etc/passwd www.mypasswords.com - -To read content from stdin instead of a file, use - as the filename. This goes -for both @ and < constructs. - -You can also tell curl what Content-Type to use by using 'type=', in a manner -similar to: - -\fBcurl\fP -F "web=@index.html;type=text/html" url.com - -or - -\fBcurl\fP -F "name=daniel;type=text/foo" url.com - -You can also explicitly change the name field of a file upload part by setting -filename=, like this: - -\fBcurl\fP -F "file=@localfile;filename=nameinpost" url.com - -See further examples and details in the MANUAL. - -This option can be used multiple times. -.IP "--ftp-account [data]" -(FTP) When an FTP server asks for "account data" after user name and password -has been provided, this data is sent off using the ACCT command. (Added in -7.13.0) - -If this option is used several times, the last one will be used. -.IP "--ftp-alternative-to-user " -(FTP) If authenticating with the USER and PASS commands fails, send this -command. When connecting to Tumbleweed's Secure Transport server over FTPS -using a client certificate, using "SITE AUTH" will tell the server to retrieve -the username from the certificate. (Added in 7.15.5) -.IP "--ftp-create-dirs" -(FTP/SFTP) When an FTP or SFTP URL/operation uses a path that doesn't -currently exist on the server, the standard behavior of curl is to -fail. Using this option, curl will instead attempt to create missing -directories. -.IP "--ftp-method [method]" -(FTP) Control what method curl should use to reach a file on an FTP(S) -server. The method argument should be one of the following alternatives: -.RS -.IP multicwd -curl does a single CWD operation for each path part in the given URL. For deep -hierarchies this means very many commands. This is how RFC 1738 says it should -be done. This is the default but the slowest behavior. -.IP nocwd -curl does no CWD at all. curl will do SIZE, RETR, STOR etc and give a full -path to the server for all these commands. This is the fastest behavior. -.IP singlecwd -curl does one CWD with the full target directory and then operates on the file -\&"normally" (like in the multicwd case). This is somewhat more standards -compliant than 'nocwd' but without the full penalty of 'multicwd'. -.RE -(Added in 7.15.1) -.IP "--ftp-pasv" -(FTP) Use passive mode for the data connection. Passive is the internal default -behavior, but using this option can be used to override a previous -\fI-P/-ftp-port\fP option. (Added in 7.11.0) - -If this option is used several times, only the first one is used. Undoing an -enforced passive really isn't doable but you must then instead enforce the -correct \fI-P, --ftp-port\fP again. - -Passive mode means that curl will try the EPSV command first and then PASV, -unless \fI--disable-epsv\fP is used. -.IP "--ftp-skip-pasv-ip" -(FTP) Tell curl to not use the IP address the server suggests in its response -to curl's PASV command when curl connects the data connection. Instead curl -will re-use the same IP address it already uses for the control -connection. (Added in 7.14.2) - -This option has no effect if PORT, EPRT or EPSV is used instead of PASV. -.IP "--ftp-pret" -(FTP) Tell curl to send a PRET command before PASV (and EPSV). Certain -FTP servers, mainly drftpd, require this non-standard command for -directory listings as well as up and downloads in PASV mode. -(Added in 7.20.x) -.IP "--ftp-ssl-ccc" -(FTP) Use CCC (Clear Command Channel) -Shuts down the SSL/TLS layer after authenticating. The rest of the -control channel communication will be unencrypted. This allows -NAT routers to follow the FTP transaction. The default mode is -passive. See \fI--ftp-ssl-ccc-mode\fP for other modes. -(Added in 7.16.1) -.IP "--ftp-ssl-ccc-mode [active/passive]" -(FTP) Use CCC (Clear Command Channel) -Sets the CCC mode. The passive mode will not initiate the shutdown, but -instead wait for the server to do it, and will not reply to the -shutdown from the server. The active mode initiates the shutdown and -waits for a reply from the server. -(Added in 7.16.2) -.IP "--ftp-ssl-control" -(FTP) Require SSL/TLS for the FTP login, clear for transfer. Allows secure -authentication, but non-encrypted data transfers for efficiency. Fails the -transfer if the server doesn't support SSL/TLS. (Added in 7.16.0) -that can still be used but will be removed in a future version. -.IP "--form-string " -(HTTP) Similar to \fI--form\fP except that the value string for the named -parameter is used literally. Leading \&'@' and \&'<' characters, and the -\&';type=' string in the value have no special meaning. Use this in preference -to \fI--form\fP if there's any possibility that the string value may -accidentally trigger the \&'@' or \&'<' features of \fI--form\fP. -.IP "-g, --globoff" -This option switches off the "URL globbing parser". When you set this option, -you can specify URLs that contain the letters {}[] without having them being -interpreted by curl itself. Note that these letters are not normal legal URL -contents but they should be encoded according to the URI standard. -.IP "-G, --get" -When used, this option will make all data specified with \fI-d, --data\fP or -\fI--data-binary\fP to be used in an HTTP GET request instead of the POST -request that otherwise would be used. The data will be appended to the URL -with a '?' separator. - -If used in combination with -I, the POST data will instead be appended to the -URL with a HEAD request. - -If this option is used several times, only the first one is used. This is -because undoing a GET doesn't make sense, but you should then instead enforce -the alternative method you prefer. -.IP "-H, --header

" -(HTTP) Extra header to use when getting a web page. You may specify any number -of extra headers. Note that if you should add a custom header that has the -same name as one of the internal ones curl would use, your externally set -header will be used instead of the internal one. This allows you to make even -trickier stuff than curl would normally do. You should not replace internally -set headers without knowing perfectly well what you're doing. Remove an -internal header by giving a replacement without content on the right side of -the colon, as in: -H \&"Host:". If you send the custom header with no-value -then its header must be terminated with a semicolon, such as \-H -\&"X-Custom-Header;" to send "X-Custom-Header:". - -curl will make sure that each header you add/replace is sent with the proper -end-of-line marker, you should thus \fBnot\fP add that as a part of the header -content: do not add newlines or carriage returns, they will only mess things up -for you. - -See also the \fI-A, --user-agent\fP and \fI-e, --referer\fP options. - -This option can be used multiple times to add/replace/remove multiple headers. -.IP "--hostpubmd5 " -(SCP/SFTP) Pass a string containing 32 hexadecimal digits. The string should -be the 128 bit MD5 checksum of the remote host's public key, curl will refuse -the connection with the host unless the md5sums match. (Added in 7.17.1) -.IP "--ignore-content-length" -(HTTP) -Ignore the Content-Length header. This is particularly useful for servers -running Apache 1.x, which will report incorrect Content-Length for files -larger than 2 gigabytes. -.IP "-i, --include" -(HTTP) Include the HTTP-header in the output. The HTTP-header includes things -like server-name, date of the document, HTTP-version and more... -.IP "-I, --head" -(HTTP/FTP/FILE) -Fetch the HTTP-header only! HTTP-servers feature the command HEAD -which this uses to get nothing but the header of a document. When used -on an FTP or FILE file, curl displays the file size and last modification -time only. -.IP "--interface " -Perform an operation using a specified interface. You can enter interface -name, IP address or host name. An example could look like: - - curl --interface eth0:1 http://www.netscape.com/ - -If this option is used several times, the last one will be used. -.IP "-j, --junk-session-cookies" -(HTTP) When curl is told to read cookies from a given file, this option will -make it discard all "session cookies". This will basically have the same effect -as if a new session is started. Typical browsers always discard session -cookies when they're closed down. -.IP "-J, --remote-header-name" -(HTTP) This option tells the \fI-O, --remote-name\fP option to use the -server-specified Content-Disposition filename instead of extracting a filename -from the URL. -.IP "-k, --insecure" -(SSL) This option explicitly allows curl to perform "insecure" SSL connections -and transfers. All SSL connections are attempted to be made secure by using -the CA certificate bundle installed by default. This makes all connections -considered "insecure" fail unless \fI-k, --insecure\fP is used. - -See this online resource for further details: -\fBhttp://curl.haxx.se/docs/sslcerts.html\fP -.IP "-K, --config " -Specify which config file to read curl arguments from. The config file is a -text file in which command line arguments can be written which then will be -used as if they were written on the actual command line. Options and their -parameters must be specified on the same config file line, separated by -whitespace, colon, the equals sign or any combination thereof (however, -the preferred separator is the equals sign). If the parameter is to contain -whitespace, the parameter must be enclosed within quotes. Within double -quotes, the following escape sequences are available: \\\\, \\", \\t, \\n, -\\r and \\v. A backslash preceding any other letter is ignored. If the -first column of a config line is a '#' character, the rest of the line will be -treated as a comment. Only write one option per physical line in the config -file. - -Specify the filename to -K, --config as '-' to make curl read the file from -stdin. - -Note that to be able to specify a URL in the config file, you need to specify -it using the \fI--url\fP option, and not by simply writing the URL on its own -line. So, it could look similar to this: - -url = "http://curl.haxx.se/docs/" - -Long option names can optionally be given in the config file without the -initial double dashes. - -When curl is invoked, it always (unless \fI-q\fP is used) checks for a default -config file and uses it if found. The default config file is checked for in -the following places in this order: - -1) curl tries to find the "home dir": It first checks for the CURL_HOME and -then the HOME environment variables. Failing that, it uses getpwuid() on -UNIX-like systems (which returns the home dir given the current user in your -system). On Windows, it then checks for the APPDATA variable, or as a last -resort the '%USERPROFILE%\\Application Data'. - -2) On windows, if there is no _curlrc file in the home dir, it checks for one -in the same dir the curl executable is placed. On UNIX-like systems, it will -simply try to load .curlrc from the determined home dir. - -.nf -# --- Example file --- -# this is a comment -url = "curl.haxx.se" -output = "curlhere.html" -user-agent = "superagent/1.0" - -# and fetch another URL too -url = "curl.haxx.se/docs/manpage.html" --O -referer = "http://nowhereatall.com/" -# --- End of example file --- -.fi - -This option can be used multiple times to load multiple config files. -.IP "--keepalive-time " -This option sets the time a connection needs to remain idle before sending -keepalive probes and the time between individual keepalive probes. It is -currently effective on operating systems offering the TCP_KEEPIDLE and -TCP_KEEPINTVL socket options (meaning Linux, recent AIX, HP-UX and more). This -option has no effect if \fI--no-keepalive\fP is used. (Added in 7.18.0) - -If this option is used several times, the last one will be used. If -unspecified, the option defaults to 60 seconds. -.IP "--key " -(SSL/SSH) Private key file name. Allows you to provide your private key in this -separate file. - -If this option is used several times, the last one will be used. -.IP "--key-type " -(SSL) Private key file type. Specify which type your \fI--key\fP provided -private key is. DER, PEM, and ENG are supported. If not specified, PEM is -assumed. - -If this option is used several times, the last one will be used. -.IP "--krb " -(FTP) Enable Kerberos authentication and use. The level must be entered and -should be one of 'clear', 'safe', 'confidential', or 'private'. Should you use -a level that is not one of these, 'private' will instead be used. - -This option requires a library built with kerberos4 or GSSAPI -(GSS-Negotiate) support. This is not very common. Use \fI-V, --version\fP to -see if your curl supports it. - -If this option is used several times, the last one will be used. -.IP "-l, --list-only" -(FTP) -When listing an FTP directory, this switch forces a name-only view. -Especially useful if you want to machine-parse the contents of an FTP -directory since the normal directory view doesn't use a standard look -or format. - -This option causes an FTP NLST command to be sent. Some FTP servers -list only files in their response to NLST; they do not include -subdirectories and symbolic links. - -.IP "-L, --location" -(HTTP/HTTPS) If the server reports that the requested page has moved to a -different location (indicated with a Location: header and a 3XX response code), -this option will make curl redo the request on the new place. If used together -with \fI-i, --include\fP or \fI-I, --head\fP, headers from all requested pages -will be shown. When authentication is used, curl only sends its credentials to -the initial host. If a redirect takes curl to a different host, it won't be -able to intercept the user+password. See also \fI--location-trusted\fP on how -to change this. You can limit the amount of redirects to follow by using the -\fI--max-redirs\fP option. - -When curl follows a redirect and the request is not a plain GET (for example -POST or PUT), it will do the following request with a GET if the HTTP response -was 301, 302, or 303. If the response code was any other 3xx code, curl will -re-send the following request using the same unmodified method. -.IP "--libcurl " -Append this option to any ordinary curl command line, and you will get a -libcurl-using C source code written to the file that does the equivalent -of what your command-line operation does! - -If this option is used several times, the last given file name will be -used. (Added in 7.16.1) -.IP "--limit-rate " -Specify the maximum transfer rate you want curl to use. This feature is useful -if you have a limited pipe and you'd like your transfer not to use your entire -bandwidth. - -The given speed is measured in bytes/second, unless a suffix is appended. -Appending 'k' or 'K' will count the number as kilobytes, 'm' or M' makes it -megabytes, while 'g' or 'G' makes it gigabytes. Examples: 200K, 3m and 1G. - -The given rate is the average speed counted during the entire transfer. It -means that curl might use higher transfer speeds in short bursts, but over -time it uses no more than the given rate. - -If you also use the \fI-Y, --speed-limit\fP option, that option will take -precedence and might cripple the rate-limiting slightly, to help keeping the -speed-limit logic working. - -If this option is used several times, the last one will be used. -.IP "--local-port [-num]" -Set a preferred number or range of local port numbers to use for the -connection(s). Note that port numbers by nature are a scarce resource that -will be busy at times so setting this range to something too narrow might -cause unnecessary connection setup failures. (Added in 7.15.2) -.IP "--location-trusted" -(HTTP/HTTPS) Like \fI-L, --location\fP, but will allow sending the name + -password to all hosts that the site may redirect to. This may or may not -introduce a security breach if the site redirects you to a site to which -you'll send your authentication info (which is plaintext in the case of HTTP -Basic authentication). -.IP "-m, --max-time " -Maximum time in seconds that you allow the whole operation to take. This is -useful for preventing your batch jobs from hanging for hours due to slow -networks or links going down. See also the \fI--connect-timeout\fP option. - -If this option is used several times, the last one will be used. -.IP "--mail-auth
" -(SMTP) Specify a single address. This will be used to specify the -authentication address (identity) of a submitted message that is being relayed -to another server. - -(Added in 7.25.0) -.IP "--mail-from
" -(SMTP) Specify a single address that the given mail should get sent from. - -(Added in 7.20.0) -.IP "--max-filesize " -Specify the maximum size (in bytes) of a file to download. If the file -requested is larger than this value, the transfer will not start and curl will -return with exit code 63. - -\fBNOTE:\fP The file size is not always known prior to download, and for such -files this option has no effect even if the file transfer ends up being larger -than this given limit. This concerns both FTP and HTTP transfers. -.IP "--mail-rcpt
" -(SMTP) Specify a single address that the given mail should get sent to. This -option can be used multiple times to specify many recipients. - -(Added in 7.20.0) -.IP "--max-redirs " -Set maximum number of redirection-followings allowed. If \fI-L, --location\fP -is used, this option can be used to prevent curl from following redirections -\&"in absurdum". By default, the limit is set to 50 redirections. Set this -option to -1 to make it limitless. - -If this option is used several times, the last one will be used. -.IP "--metalink" -This option can tell curl to parse and process a given URI as Metalink file -(both version 3 and 4 (RFC 5854) are supported) and make use of the mirrors -listed within for failover if there are errors (such as the file or server not -being available). It will also verify the hash of the file after the download -completes. The Metalink file itself is downloaded and processed in memory and -not stored in the local file system. - -Example to use a remote Metalink file: - -\fBcurl\fP --metalink http://www.example.com/example.metalink - -To use a Metalink file in the local file system, use FILE protocol -(file://): - -\fBcurl\fP --metalink file://example.metalink - -Please note that if FILE protocol is disabled, there is no way to use -a local Metalink file at the time of this writing. Also note that if -\fI--metalink\fP and \fI--include\fP are used together, \fI--include\fP will be -ignored. This is because including headers in the response will break -Metalink parser and if the headers are included in the file described -in Metalink file, hash check will fail. - -(Added in 7.27.0, if built against the libmetalink library.) -.IP "-n, --netrc" -Makes curl scan the \fI.netrc\fP (\fI_netrc\fP on Windows) file in the user's -home directory for login name and password. This is typically used for FTP on -UNIX. If used with HTTP, curl will enable user authentication. See -.BR netrc(4) -or -.BR ftp(1) -for details on the file format. Curl will not complain if that file -doesn't have the right permissions (it should not be either world- or -group-readable). The environment variable "HOME" is used to find the home -directory. - -A quick and very simple example of how to setup a \fI.netrc\fP to allow curl -to FTP to the machine host.domain.com with user name \&'myself' and password -\&'secret' should look similar to: - -.B "machine host.domain.com login myself password secret" -.IP "-N, --no-buffer" -Disables the buffering of the output stream. In normal work situations, curl -will use a standard buffered output stream that will have the effect that it -will output the data in chunks, not necessarily exactly when the data arrives. -Using this option will disable that buffering. - -Note that this is the negated option name documented. You can thus use -\fI--buffer\fP to enforce the buffering. -.IP "--netrc-file" -This option is similar to \fI--netrc\fP, except that you provide the path -(absolute or relative) to the netrc file that Curl should use. -You can only specify one netrc file per invocation. If several -\fI--netrc-file\fP options are provided, only the \fBlast one\fP will be used. -(Added in 7.21.5) - -This option overrides any use of \fI--netrc\fP as they are mutually exclusive. -It will also abide by \fI--netrc-optional\fP if specified. - -.IP "--netrc-optional" -Very similar to \fI--netrc\fP, but this option makes the .netrc usage -\fBoptional\fP and not mandatory as the \fI--netrc\fP option does. - -.IP "--negotiate" -(HTTP) Enables GSS-Negotiate authentication. The GSS-Negotiate method was -designed by Microsoft and is used in their web applications. It is primarily -meant as a support for Kerberos5 authentication but may be also used along -with another authentication method. For more information see IETF draft -draft-brezak-spnego-http-04.txt. - -If you want to enable Negotiate for your proxy authentication, then use -\fI--proxy-negotiate\fP. - -This option requires a library built with GSSAPI support. This is -not very common. Use \fI-V, --version\fP to see if your version supports -GSS-Negotiate. - -When using this option, you must also provide a fake \fI-u, --user\fP option to -activate the authentication code properly. Sending a '-u :' is enough as the -user name and password from the \fI-u\fP option aren't actually used. - -If this option is used several times, only the first one is used. -.IP "--no-keepalive" -Disables the use of keepalive messages on the TCP connection, as by default -curl enables them. - -Note that this is the negated option name documented. You can thus use -\fI--keepalive\fP to enforce keepalive. -.IP "--no-sessionid" -(SSL) Disable curl's use of SSL session-ID caching. By default all transfers -are done using the cache. Note that while nothing should ever get hurt by -attempting to reuse SSL session-IDs, there seem to be broken SSL -implementations in the wild that may require you to disable this in order for -you to succeed. (Added in 7.16.0) - -Note that this is the negated option name documented. You can thus use -\fI--sessionid\fP to enforce session-ID caching. -.IP "--noproxy " -Comma-separated list of hosts which do not use a proxy, if one is specified. -The only wildcard is a single * character, which matches all hosts, and -effectively disables the proxy. Each name in this list is matched as either -a domain which contains the hostname, or the hostname itself. For example, -local.com would match local.com, local.com:80, and www.local.com, but not -www.notlocal.com. (Added in 7.19.4). -.IP "--ntlm" -(HTTP) Enables NTLM authentication. The NTLM authentication method was -designed by Microsoft and is used by IIS web servers. It is a proprietary -protocol, reverse-engineered by clever people and implemented in curl based -on their efforts. This kind of behavior should not be endorsed, you should -encourage everyone who uses NTLM to switch to a public and documented -authentication method instead, such as Digest. - -If you want to enable NTLM for your proxy authentication, then use -\fI--proxy-ntlm\fP. - -This option requires a library built with SSL support. Use -\fI-V, --version\fP to see if your curl supports NTLM. - -If this option is used several times, only the first one is used. -.IP "-o, --output " -Write output to instead of stdout. If you are using {} or [] to fetch -multiple documents, you can use '#' followed by a number in the -specifier. That variable will be replaced with the current string for the URL -being fetched. Like in: - - curl http://{one,two}.site.com -o "file_#1.txt" - -or use several variables like: - - curl http://{site,host}.host[1-5].com -o "#1_#2" - -You may use this option as many times as the number of URLs you have. - -See also the \fI--create-dirs\fP option to create the local directories -dynamically. Specifying the output as '-' (a single dash) will force the -output to be done to stdout. -.IP "-O, --remote-name" -Write output to a local file named like the remote file we get. (Only the file -part of the remote file is used, the path is cut off.) - -The remote file name to use for saving is extracted from the given URL, -nothing else. - -Consequentially, the file will be saved in the current working directory. If -you want the file saved in a different directory, make sure you change current -working directory before you invoke curl with the \fB-O, --remote-name\fP flag! - -You may use this option as many times as the number of URLs you have. -.IP "-p, --proxytunnel" -When an HTTP proxy is used (\fI-x, --proxy\fP), this option will cause non-HTTP -protocols to attempt to tunnel through the proxy instead of merely using it to -do HTTP-like operations. The tunnel approach is made with the HTTP proxy -CONNECT request and requires that the proxy allows direct connect to the -remote port number curl wants to tunnel through to. -.IP "-P, --ftp-port
" -(FTP) Reverses the default initiator/listener roles when connecting with -FTP. This switch makes curl use active mode. In practice, curl then tells the -server to connect back to the client's specified address and port, while -passive mode asks the server to setup an IP address and port for it to connect -to.
should be one of: -.RS -.IP interface -i.e "eth0" to specify which interface's IP address you want to use (Unix only) -.IP "IP address" -i.e "192.168.10.1" to specify the exact IP address -.IP "host name" -i.e "my.host.domain" to specify the machine -.IP "-" -make curl pick the same IP address that is already used for the control -connection -.RE - -If this option is used several times, the last one will be used. Disable the -use of PORT with \fI--ftp-pasv\fP. Disable the attempt to use the EPRT command -instead of PORT by using \fI--disable-eprt\fP. EPRT is really PORT++. - -Starting in 7.19.5, you can append \&":[start]-[end]\&" to the right of the -address, to tell curl what TCP port range to use. That means you specify a -port range, from a lower to a higher number. A single number works as well, -but do note that it increases the risk of failure since the port may not be -available. -.IP "--pass " -(SSL/SSH) Passphrase for the private key - -If this option is used several times, the last one will be used. -.IP "--post301" -(HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert POST requests -into GET requests when following a 301 redirection. The non-RFC behaviour is -ubiquitous in web browsers, so curl does the conversion by default to maintain -consistency. However, a server may require a POST to remain a POST after such -a redirection. This option is meaningful only when using \fI-L, --location\fP -(Added in 7.17.1) -.IP "--post302" -(HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert POST requests -into GET requests when following a 302 redirection. The non-RFC behaviour is -ubiquitous in web browsers, so curl does the conversion by default to maintain -consistency. However, a server may require a POST to remain a POST after such -a redirection. This option is meaningful only when using \fI-L, --location\fP -(Added in 7.19.1) -.IP "--proto " -Tells curl to use the listed protocols for its initial retrieval. Protocols -are evaluated left to right, are comma separated, and are each a protocol -name or 'all', optionally prefixed by zero or more modifiers. Available -modifiers are: -.RS -.TP 3 -.B + -Permit this protocol in addition to protocols already permitted (this is -the default if no modifier is used). -.TP -.B - -Deny this protocol, removing it from the list of protocols already permitted. -.TP -.B = -Permit only this protocol (ignoring the list already permitted), though -subject to later modification by subsequent entries in the comma separated -list. -.RE -.IP -For example: -.RS -.TP 15 -.B --proto -ftps -uses the default protocols, but disables ftps -.TP -.B --proto -all,https,+http -only enables http and https -.TP -.B --proto =http,https -also only enables http and https -.RE -.IP -Unknown protocols produce a warning. This allows scripts to safely rely on -being able to disable potentially dangerous protocols, without relying upon -support for that protocol being built into curl to avoid an error. - -This option can be used multiple times, in which case the effect is the same -as concatenating the protocols into one instance of the option. - -(Added in 7.20.2) -.IP "--proto-redir " -Tells curl to use the listed protocols after a redirect. See --proto for -how protocols are represented. - -(Added in 7.20.2) -.IP "--proxy-anyauth" -Tells curl to pick a suitable authentication method when communicating with -the given proxy. This might cause an extra request/response round-trip. (Added -in 7.13.2) -.IP "--proxy-basic" -Tells curl to use HTTP Basic authentication when communicating with the given -proxy. Use \fI--basic\fP for enabling HTTP Basic with a remote host. Basic is -the default authentication method curl uses with proxies. -.IP "--proxy-digest" -Tells curl to use HTTP Digest authentication when communicating with the given -proxy. Use \fI--digest\fP for enabling HTTP Digest with a remote host. -.IP "--proxy-negotiate" -Tells curl to use HTTP Negotiate authentication when communicating -with the given proxy. Use \fI--negotiate\fP for enabling HTTP Negotiate -with a remote host. (Added in 7.17.1) -.IP "--proxy-ntlm" -Tells curl to use HTTP NTLM authentication when communicating with the given -proxy. Use \fI--ntlm\fP for enabling NTLM with a remote host. -.IP "--proxy1.0 " -Use the specified HTTP 1.0 proxy. If the port number is not specified, it is -assumed at port 1080. - -The only difference between this and the HTTP proxy option (\fI-x, --proxy\fP), -is that attempts to use CONNECT through the proxy will specify an HTTP 1.0 -protocol instead of the default HTTP 1.1. -.IP "--pubkey " -(SSH) Public key file name. Allows you to provide your public key in this -separate file. - -If this option is used several times, the last one will be used. -.IP "-q" -If used as the first parameter on the command line, the \fIcurlrc\fP config -file will not be read and used. See the \fI-K, --config\fP for details on the -default config file search path. -.IP "-Q, --quote " -(FTP/SFTP) Send an arbitrary command to the remote FTP or SFTP server. Quote -commands are sent BEFORE the transfer takes place (just after the initial PWD -command in an FTP transfer, to be exact). To make commands take place after a -successful transfer, prefix them with a dash '-'. To make commands be sent -after curl has changed the working directory, just before the transfer -command(s), prefix the command with a '+' (this is only supported for -FTP). You may specify any number of commands. If the server returns failure -for one of the commands, the entire operation will be aborted. You must send -syntactically correct FTP commands as RFC 959 defines to FTP servers, or one -of the commands listed below to SFTP servers. This option can be used -multiple times. When speaking to an FTP server, prefix the command with an -asterisk (*) to make curl continue even if the command fails as by default -curl will stop at first failure. - -SFTP is a binary protocol. Unlike for FTP, curl interprets SFTP quote commands -itself before sending them to the server. File names may be quoted -shell-style to embed spaces or special characters. Following is the list of -all supported SFTP quote commands: -.RS -.IP "chgrp group file" -The chgrp command sets the group ID of the file named by the file operand to -the group ID specified by the group operand. The group operand is a decimal -integer group ID. -.IP "chmod mode file" -The chmod command modifies the file mode bits of the specified file. The -mode operand is an octal integer mode number. -.IP "chown user file" -The chown command sets the owner of the file named by the file operand to the -user ID specified by the user operand. The user operand is a decimal -integer user ID. -.IP "ln source_file target_file" -The ln and symlink commands create a symbolic link at the target_file location -pointing to the source_file location. -.IP "mkdir directory_name" -The mkdir command creates the directory named by the directory_name operand. -.IP "pwd" -The pwd command returns the absolute pathname of the current working directory. -.IP "rename source target" -The rename command renames the file or directory named by the source -operand to the destination path named by the target operand. -.IP "rm file" -The rm command removes the file specified by the file operand. -.IP "rmdir directory" -The rmdir command removes the directory entry specified by the directory -operand, provided it is empty. -.IP "symlink source_file target_file" -See ln. -.RE -.IP "-r, --range " -(HTTP/FTP/SFTP/FILE) Retrieve a byte range (i.e a partial document) from a -HTTP/1.1, FTP or SFTP server or a local FILE. Ranges can be specified -in a number of ways. -.RS -.TP 10 -.B 0-499 -specifies the first 500 bytes -.TP -.B 500-999 -specifies the second 500 bytes -.TP -.B -500 -specifies the last 500 bytes -.TP -.B 9500- -specifies the bytes from offset 9500 and forward -.TP -.B 0-0,-1 -specifies the first and last byte only(*)(H) -.TP -.B 500-700,600-799 -specifies 300 bytes from offset 500(H) -.TP -.B 100-199,500-599 -specifies two separate 100-byte ranges(*)(H) -.RE - -(*) = NOTE that this will cause the server to reply with a multipart -response! - -Only digit characters (0-9) are valid in the 'start' and 'stop' fields of the -\&'start-stop' range syntax. If a non-digit character is given in the range, -the server's response will be unspecified, depending on the server's -configuration. - -You should also be aware that many HTTP/1.1 servers do not have this feature -enabled, so that when you attempt to get a range, you'll instead get the whole -document. - -FTP and SFTP range downloads only support the simple 'start-stop' syntax -(optionally with one of the numbers omitted). FTP use depends on the extended -FTP command SIZE. - -If this option is used several times, the last one will be used. -.IP "-R, --remote-time" -When used, this will make curl attempt to figure out the timestamp of the -remote file, and if that is available make the local file get that same -timestamp. -.IP "--random-file " -(SSL) Specify the path name to file containing what will be considered as -random data. The data is used to seed the random engine for SSL connections. -See also the \fI--egd-file\fP option. -.IP "--raw" -(HTTP) When used, it disables all internal HTTP decoding of content or transfer -encodings and instead makes them passed on unaltered, raw. (Added in 7.16.2) -.IP "--remote-name-all" -This option changes the default action for all given URLs to be dealt with as -if \fI-O, --remote-name\fP were used for each one. So if you want to disable -that for a specific URL after \fI--remote-name-all\fP has been used, you must -use "-o -" or \fI--no-remote-name\fP. (Added in 7.19.0) -.IP "--resolve " -Provide a custom address for a specific host and port pair. Using this, you -can make the curl requests(s) use a specified address and prevent the -otherwise normally resolved address to be used. Consider it a sort of -/etc/hosts alternative provided on the command line. The port number should be -the number used for the specific protocol the host will be used for. It means -you need several entries if you want to provide address for the same host but -different ports. - -This option can be used many times to add many host names to resolve. - -(Added in 7.21.3) -.IP "--retry " -If a transient error is returned when curl tries to perform a transfer, it -will retry this number of times before giving up. Setting the number to 0 -makes curl do no retries (which is the default). Transient error means either: -a timeout, an FTP 4xx response code or an HTTP 5xx response code. - -When curl is about to retry a transfer, it will first wait one second and then -for all forthcoming retries it will double the waiting time until it reaches -10 minutes which then will be the delay between the rest of the retries. By -using \fI--retry-delay\fP you disable this exponential backoff algorithm. See -also \fI--retry-max-time\fP to limit the total time allowed for -retries. (Added in 7.12.3) - -If this option is used several times, the last one will be used. -.IP "--retry-delay " -Make curl sleep this amount of time before each retry when a transfer has -failed with a transient error (it changes the default backoff time algorithm -between retries). This option is only interesting if \fI--retry\fP is also -used. Setting this delay to zero will make curl use the default backoff time. -(Added in 7.12.3) - -If this option is used several times, the last one will be used. -.IP "--retry-max-time " -The retry timer is reset before the first transfer attempt. Retries will be -done as usual (see \fI--retry\fP) as long as the timer hasn't reached this -given limit. Notice that if the timer hasn't reached the limit, the request -will be made and while performing, it may take longer than this given time -period. To limit a single request\'s maximum time, use \fI-m, --max-time\fP. -Set this option to zero to not timeout retries. (Added in 7.12.3) - -If this option is used several times, the last one will be used. -.IP "-s, --silent" -Silent or quiet mode. Don't show progress meter or error messages. Makes -Curl mute. -.IP "-S, --show-error" -When used with \fI-s\fP it makes curl show an error message if it fails. -.IP "--ssl" -(FTP, POP3, IMAP, SMTP) Try to use SSL/TLS for the connection. Reverts to a -non-secure connection if the server doesn't support SSL/TLS. See also -\fI--ftp-ssl-control\fP and \fI--ssl-reqd\fP for different levels of -encryption required. (Added in 7.20.0) - -This option was formerly known as \fI--ftp-ssl\fP (Added in 7.11.0). That -option name can still be used but will be removed in a future version. -.IP "--ssl-reqd" -(FTP, POP3, IMAP, SMTP) Require SSL/TLS for the connection. Terminates the -connection if the server doesn't support SSL/TLS. (Added in 7.20.0) - -This option was formerly known as \fI--ftp-ssl-reqd\fP (added in 7.15.5). That -option name can still be used but will be removed in a future version. -.IP "--ssl-allow-beast" -(SSL) This option tells curl to not work around a security flaw in the SSL3 -and TLS1.0 protocols known as BEAST. If this option isn't used, the SSL layer -may use work-arounds known to cause interoperability problems with some older -SSL implementations. WARNING: this option loosens the SSL security, and by -using this flag you ask for exactly that. (Added in 7.25.0) -.IP "--socks4 " -Use the specified SOCKS4 proxy. If the port number is not specified, it is -assumed at port 1080. (Added in 7.15.2) - -This option overrides any previous use of \fI-x, --proxy\fP, as they are -mutually exclusive. - -Since 7.21.7, this option is superfluous since you can specify a socks4 proxy -with \fI-x, --proxy\fP using a socks4:// protocol prefix. - -If this option is used several times, the last one will be used. -.IP "--socks4a " -Use the specified SOCKS4a proxy. If the port number is not specified, it is -assumed at port 1080. (Added in 7.18.0) - -This option overrides any previous use of \fI-x, --proxy\fP, as they are -mutually exclusive. - -Since 7.21.7, this option is superfluous since you can specify a socks4a proxy -with \fI-x, --proxy\fP using a socks4a:// protocol prefix. - -If this option is used several times, the last one will be used. -.IP "--socks5-hostname " -Use the specified SOCKS5 proxy (and let the proxy resolve the host name). If -the port number is not specified, it is assumed at port 1080. (Added in -7.18.0) - -This option overrides any previous use of \fI-x, --proxy\fP, as they are -mutually exclusive. - -Since 7.21.7, this option is superfluous since you can specify a socks5 -hostname proxy with \fI-x, --proxy\fP using a socks5h:// protocol prefix. - -If this option is used several times, the last one will be used. (This option -was previously wrongly documented and used as --socks without the number -appended.) -.IP "--socks5 " -Use the specified SOCKS5 proxy - but resolve the host name locally. If the -port number is not specified, it is assumed at port 1080. - -This option overrides any previous use of \fI-x, --proxy\fP, as they are -mutually exclusive. - -Since 7.21.7, this option is superfluous since you can specify a socks5 proxy -with \fI-x, --proxy\fP using a socks5:// protocol prefix. - -If this option is used several times, the last one will be used. (This option -was previously wrongly documented and used as --socks without the number -appended.) - -This option (as well as \fI--socks4\fP) does not work with IPV6, FTPS or LDAP. -.IP "--socks5-gssapi-service " -The default service name for a socks server is rcmd/server-fqdn. This option -allows you to change it. - -Examples: --socks5 proxy-name \fI--socks5-gssapi-service\fP sockd would use -sockd/proxy-name --socks5 proxy-name \fI--socks5-gssapi-service\fP -sockd/real-name would use sockd/real-name for cases where the proxy-name does -not match the principal name. (Added in 7.19.4). -.IP "--socks5-gssapi-nec" -As part of the gssapi negotiation a protection mode is negotiated. RFC 1961 -says in section 4.3/4.4 it should be protected, but the NEC reference -implementation does not. The option \fI--socks5-gssapi-nec\fP allows the -unprotected exchange of the protection mode negotiation. (Added in 7.19.4). -.IP "--stderr " -Redirect all writes to stderr to the specified file instead. If the file name -is a plain '-', it is instead written to stdout. - -If this option is used several times, the last one will be used. -.IP "-t, --telnet-option " -Pass options to the telnet protocol. Supported options are: - -TTYPE= Sets the terminal type. - -XDISPLOC= Sets the X display location. - -NEW_ENV= Sets an environment variable. -.IP "-T, --upload-file " -This transfers the specified local file to the remote URL. If there is no file -part in the specified URL, Curl will append the local file name. NOTE that you -must use a trailing / on the last directory to really prove to Curl that there -is no file name or curl will think that your last directory name is the remote -file name to use. That will most likely cause the upload operation to fail. If -this is used on an HTTP(S) server, the PUT command will be used. - -Use the file name "-" (a single dash) to use stdin instead of a given file. -Alternately, the file name "." (a single period) may be specified instead -of "-" to use stdin in non-blocking mode to allow reading server output -while stdin is being uploaded. - -You can specify one -T for each URL on the command line. Each -T + URL pair -specifies what to upload and to where. curl also supports "globbing" of the -T -argument, meaning that you can upload multiple files to a single URL by using -the same URL globbing style supported in the URL, like this: - -curl -T "{file1,file2}" http://www.uploadtothissite.com - -or even - -curl -T "img[1-1000].png" ftp://ftp.picturemania.com/upload/ -.IP "--tcp-nodelay" -Turn on the TCP_NODELAY option. See the \fIcurl_easy_setopt(3)\fP man page for -details about this option. (Added in 7.11.2) -.IP "--tftp-blksize " -(TFTP) Set TFTP BLKSIZE option (must be >512). This is the block size that -curl will try to use when transferring data to or from a TFTP server. By -default 512 bytes will be used. - -If this option is used several times, the last one will be used. - -(Added in 7.20.0) -.IP "--tlsauthtype " -Set TLS authentication type. Currently, the only supported option is "SRP", -for TLS-SRP (RFC 5054). If \fI--tlsuser\fP and \fI--tlspassword\fP are -specified but \fI--tlsauthtype\fP is not, then this option defaults to "SRP". -(Added in 7.21.4) -.IP "--tlsuser " -Set username for use with the TLS authentication method specified with -\fI--tlsauthtype\fP. Requires that \fI--tlspassword\fP also be set. (Added in -7.21.4) -.IP "--tlspassword " -Set password for use with the TLS authentication method specified with -\fI--tlsauthtype\fP. Requires that \fI--tlsuser\fP also be set. (Added in -7.21.4) -.IP "--tr-encoding" -(HTTP) Request a compressed Transfer-Encoding response using one of the -algorithms curl supports, and uncompress the data while receiving it. - -(Added in 7.21.6) -.IP "--trace " -Enables a full trace dump of all incoming and outgoing data, including -descriptive information, to the given output file. Use "-" as filename to have -the output sent to stdout. - -This option overrides previous uses of \fI-v, --verbose\fP or -\fI--trace-ascii\fP. - -If this option is used several times, the last one will be used. -.IP "--trace-ascii " -Enables a full trace dump of all incoming and outgoing data, including -descriptive information, to the given output file. Use "-" as filename to have -the output sent to stdout. - -This is very similar to \fI--trace\fP, but leaves out the hex part and only -shows the ASCII part of the dump. It makes smaller output that might be easier -to read for untrained humans. - -This option overrides previous uses of \fI-v, --verbose\fP or \fI--trace\fP. - -If this option is used several times, the last one will be used. -.IP "--trace-time" -Prepends a time stamp to each trace or verbose line that curl displays. -(Added in 7.14.0) -.IP "-u, --user " -Specify the user name and password to use for server authentication. Overrides -\fI-n, --netrc\fP and \fI--netrc-optional\fP. - -If you just give the user name (without entering a colon) curl will prompt for -a password. - -If you use an SSPI-enabled curl binary and do NTLM authentication, you can -force curl to pick up the user name and password from your environment by -simply specifying a single colon with this option: "-u :". - -If this option is used several times, the last one will be used. -.IP "-U, --proxy-user " -Specify the user name and password to use for proxy authentication. - -If you use an SSPI-enabled curl binary and do NTLM authentication, you can -force curl to pick up the user name and password from your environment by -simply specifying a single colon with this option: "-U :". - -If this option is used several times, the last one will be used. -.IP "--url " -Specify a URL to fetch. This option is mostly handy when you want to specify -URL(s) in a config file. - -This option may be used any number of times. To control where this URL is -written, use the \fI-o, --output\fP or the \fI-O, --remote-name\fP options. -.IP "-v, --verbose" -Makes the fetching more verbose/talkative. Mostly useful for debugging. A line -starting with '>' means "header data" sent by curl, '<' means "header data" -received by curl that is hidden in normal cases, and a line starting with '*' -means additional info provided by curl. - -Note that if you only want HTTP headers in the output, \fI-i, --include\fP -might be the option you're looking for. - -If you think this option still doesn't give you enough details, consider using -\fI--trace\fP or \fI--trace-ascii\fP instead. - -This option overrides previous uses of \fI--trace-ascii\fP or \fI--trace\fP. - -Use \fI-s, --silent\fP to make curl quiet. -.IP "-w, --write-out " -Defines what to display on stdout after a completed and successful -operation. The format is a string that may contain plain text mixed with any -number of variables. The string can be specified as "string", to get read from -a particular file you specify it "@filename" and to tell curl to read the -format from stdin you write "@-". - -The variables present in the output format will be substituted by the value or -text that curl thinks fit, as described below. All variables are specified -as %{variable_name} and to output a normal % you just write them as -%%. You can output a newline by using \\n, a carriage return with \\r and a tab -space with \\t. - -.B NOTE: -The %-symbol is a special symbol in the win32-environment, where all -occurrences of % must be doubled when using this option. - -The variables available are: -.RS -.TP 15 -.B content_type -The Content-Type of the requested document, if there was any. -.TP -.B filename_effective -The ultimate filename that curl writes out to. This is only meaningful if curl -is told to write to a file with the \fI--remote-name\fP or \fI--output\fP -option. It's most useful in combination with the \fI--remote-header-name\fP -option. (Added in 7.25.1) -.TP -.B ftp_entry_path -The initial path curl ended up in when logging on to the remote FTP -server. (Added in 7.15.4) -.TP -.B http_code -The numerical response code that was found in the last retrieved HTTP(S) or -FTP(s) transfer. In 7.18.2 the alias \fBresponse_code\fP was added to show the -same info. -.TP -.B http_connect -The numerical code that was found in the last response (from a proxy) to a -curl CONNECT request. (Added in 7.12.4) -.TP -.B num_connects -Number of new connects made in the recent transfer. (Added in 7.12.3) -.TP -.B num_redirects -Number of redirects that were followed in the request. (Added in 7.12.3) -.TP -.B redirect_url -When an HTTP request was made without -L to follow redirects, this variable -will show the actual URL a redirect \fIwould\fP take you to. (Added in 7.18.2) -.TP -.B size_download -The total amount of bytes that were downloaded. -.TP -.B size_header -The total amount of bytes of the downloaded headers. -.TP -.B size_request -The total amount of bytes that were sent in the HTTP request. -.TP -.B size_upload -The total amount of bytes that were uploaded. -.TP -.B speed_download -The average download speed that curl measured for the complete download. Bytes -per second. -.TP -.B speed_upload -The average upload speed that curl measured for the complete upload. Bytes per -second. -.TP -.B ssl_verify_result -The result of the SSL peer certificate verification that was requested. 0 -means the verification was successful. (Added in 7.19.0) -.TP -.B time_appconnect -The time, in seconds, it took from the start until the SSL/SSH/etc -connect/handshake to the remote host was completed. (Added in 7.19.0) -.TP -.B time_connect -The time, in seconds, it took from the start until the TCP connect to the -remote host (or proxy) was completed. -.TP -.B time_namelookup -The time, in seconds, it took from the start until the name resolving was -completed. -.TP -.B time_pretransfer -The time, in seconds, it took from the start until the file transfer was just -about to begin. This includes all pre-transfer commands and negotiations that -are specific to the particular protocol(s) involved. -.TP -.B time_redirect -The time, in seconds, it took for all redirection steps include name lookup, -connect, pretransfer and transfer before the final transaction was -started. time_redirect shows the complete execution time for multiple -redirections. (Added in 7.12.3) -.TP -.B time_starttransfer -The time, in seconds, it took from the start until the first byte was just -about to be transferred. This includes time_pretransfer and also the time the -server needed to calculate the result. -.TP -.B time_total -The total time, in seconds, that the full operation lasted. The time will be -displayed with millisecond resolution. -.TP -.B url_effective -The URL that was fetched last. This is most meaningful if you've told curl -to follow location: headers. -.RE - -If this option is used several times, the last one will be used. -.IP "-x, --proxy <[protocol://][user:password@]proxyhost[:port]>" -Use the specified HTTP proxy. If the port number is not specified, it is -assumed at port 1080. - -This option overrides existing environment variables that set the proxy to -use. If there's an environment variable setting a proxy, you can set proxy to -\&"" to override it. - -All operations that are performed over an HTTP proxy will transparently be -converted to HTTP. It means that certain protocol specific operations might -not be available. This is not the case if you can tunnel through the proxy, as -one with the \fI-p, --proxytunnel\fP option. - -User and password that might be provided in the proxy string are URL decoded -by curl. This allows you to pass in special characters such as @ by using %40 -or pass in a colon with %3a. - -The proxy host can be specified the exact same way as the proxy environment -variables, including the protocol prefix (http://) and the embedded user + -password. - -From 7.21.7, the proxy string may be specified with a protocol:// prefix to -specify alternative proxy protocols. Use socks4://, socks4a://, socks5:// or -socks5h:// to request the specific SOCKS version to be used. No protocol -specified, http:// and all others will be treated as HTTP proxies. - -If this option is used several times, the last one will be used. -.IP "-X, --request " -(HTTP) Specifies a custom request method to use when communicating with the -HTTP server. The specified request will be used instead of the method -otherwise used (which defaults to GET). Read the HTTP 1.1 specification for -details and explanations. Common additional HTTP requests include PUT and -DELETE, but related technologies like WebDAV offers PROPFIND, COPY, MOVE and -more. - -(FTP) -Specifies a custom FTP command to use instead of LIST when doing file lists -with FTP. - -If this option is used several times, the last one will be used. - -.IP "--xattr" -When saving output to a file, this option tells curl to store certain file -metadata in extened file attributes. Currently, the URL is stored in the -xdg.origin.url attribute and, for HTTP, the content type is stored in -the mime_type attribute. If the file system does not support extended -attributes, a warning is issued. - -.IP "-y, --speed-time