libs: updated to cURL 7.54.1

This commit is contained in:
Remy Marquis 2017-07-01 16:06:24 +02:00
parent be9d5fe80f
commit 49247cead3
939 changed files with 77091 additions and 75543 deletions

File diff suppressed because it is too large Load diff

View file

@ -12,7 +12,7 @@
# GSS_LINKER_FLAGS - Additional linker flags
# GSS_COMPILER_FLAGS - Additional compiler flags
# GSS_VERSION - This is set to version advertised by pkg-config or read from manifest.
# In case the library is found but no version info availabe it'll be set to "unknown"
# In case the library is found but no version info available it'll be set to "unknown"
set(_MIT_MODNAME mit-krb5-gssapi)
set(_HEIMDAL_MODNAME heimdal-gssapi)

View file

@ -0,0 +1,13 @@
find_path(MBEDTLS_INCLUDE_DIRS mbedtls/ssl.h)
find_library(MBEDTLS_LIBRARY mbedtls)
find_library(MBEDX509_LIBRARY mbedx509)
find_library(MBEDCRYPTO_LIBRARY mbedcrypto)
set(MBEDTLS_LIBRARIES "${MBEDTLS_LIBRARY}" "${MBEDX509_LIBRARY}" "${MBEDCRYPTO_LIBRARY}")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MBEDTLS DEFAULT_MSG
MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
mark_as_advanced(MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)

View file

@ -29,3 +29,16 @@ function(IN_STR_LIST LIST_NAME ITEM_SEARCHED RETVAL)
set(${RETVAL} TRUE PARENT_SCOPE)
endif()
endfunction()
# Returns a list of arguments that evaluate to true
function(collect_true output_var output_count_var)
set(${output_var})
foreach(option_var IN LISTS ARGN)
if(${option_var})
list(APPEND ${output_var} ${option_var})
endif()
endforeach()
set(${output_var} ${${output_var}} PARENT_SCOPE)
list(LENGTH ${output_var} ${output_count_var})
set(${output_count_var} ${${output_count_var}} PARENT_SCOPE)
endfunction()

View file

@ -224,6 +224,8 @@ if(ENABLE_MANUAL)
message(WARNING "Found no *nroff program")
endif()
endif()
# Required for building manual, docs, tests
find_package(Perl REQUIRED)
# We need ansi c-flags, especially on HP
set(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")
@ -289,47 +291,96 @@ endif(NOT NOT_NEED_LIBNSL)
check_function_exists(gethostname HAVE_GETHOSTNAME)
set(OPENSSL_DEFAULT ON)
if(WIN32)
set(OPENSSL_DEFAULT OFF)
check_library_exists_concat("ws2_32" getch HAVE_LIBWS2_32)
check_library_exists_concat("winmm" getch HAVE_LIBWINMM)
endif()
option(CMAKE_USE_OPENSSL "Use OpenSSL code. Experimental" ${OPENSSL_DEFAULT})
mark_as_advanced(CMAKE_USE_OPENSSL)
# check SSL libraries
# TODO support GNUTLS, NSS, POLARSSL, AXTLS, CYASSL
if(APPLE)
option(CMAKE_USE_DARWINSSL "enable Apple OS native SSL/TLS" OFF)
endif()
if(WIN32)
CMAKE_DEPENDENT_OPTION(CURL_WINDOWS_SSPI "Use windows libraries to allow NTLM authentication without openssl" ON
"NOT CMAKE_USE_OPENSSL" OFF)
mark_as_advanced(CURL_WINDOWS_SSPI)
option(CMAKE_USE_WINSSL "enable Windows native SSL/TLS" OFF)
cmake_dependent_option(CURL_WINDOWS_SSPI "Use windows libraries to allow NTLM authentication without openssl" ON
CMAKE_USE_WINSSL OFF)
endif()
option(CMAKE_USE_MBEDTLS "Enable mbedTLS for SSL/TLS" OFF)
set(openssl_default ON)
if(WIN32 OR CMAKE_USE_DARWINSSL OR CMAKE_USE_WINSSL OR CMAKE_USE_MBEDTLS)
set(openssl_default OFF)
endif()
option(CMAKE_USE_OPENSSL "Use OpenSSL code. Experimental" ${openssl_default})
collect_true(enabled_ssl_options enabled_ssl_options_count
CMAKE_USE_WINSSL
CMAKE_USE_DARWINSSL
CMAKE_USE_OPENSSL
CMAKE_USE_MBEDTLS
)
if(enabled_ssl_options_count GREATER 1)
message(FATAL_ERROR "Multiple SSL options specified: ${enabled_ssl_options}. Please pick at most one and disable the rest.")
endif()
set(USE_OPENSSL OFF)
set(HAVE_LIBCRYPTO OFF)
set(HAVE_LIBSSL OFF)
if(CMAKE_USE_WINSSL)
set(SSL_ENABLED ON)
set(USE_SCHANNEL ON) # Windows native SSL/TLS support
set(USE_WINDOWS_SSPI ON) # CMAKE_USE_WINSSL implies CURL_WINDOWS_SSPI
list(APPEND CURL_LIBS "crypt32")
endif()
if(CURL_WINDOWS_SSPI)
set(USE_WINDOWS_SSPI ON)
set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -DSECURITY_WIN32")
endif()
if(CMAKE_USE_DARWINSSL)
find_library(COREFOUNDATION_FRAMEWORK "CoreFoundation")
if(NOT COREFOUNDATION_FRAMEWORK)
message(FATAL_ERROR "CoreFoundation framework not found")
endif()
find_library(SECURITY_FRAMEWORK "Security")
if(NOT SECURITY_FRAMEWORK)
message(FATAL_ERROR "Security framework not found")
endif()
set(SSL_ENABLED ON)
set(USE_DARWINSSL ON)
list(APPEND CURL_LIBS "${COREFOUNDATION_FRAMEWORK}" "${SECURITY_FRAMEWORK}")
endif()
if(CMAKE_USE_OPENSSL)
find_package(OpenSSL)
if(OPENSSL_FOUND)
list(APPEND CURL_LIBS ${OPENSSL_LIBRARIES})
set(USE_OPENSSL ON)
set(HAVE_LIBCRYPTO ON)
set(HAVE_LIBSSL ON)
include_directories(${OPENSSL_INCLUDE_DIR})
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
check_include_file("openssl/crypto.h" HAVE_OPENSSL_CRYPTO_H)
check_include_file("openssl/engine.h" HAVE_OPENSSL_ENGINE_H)
check_include_file("openssl/err.h" HAVE_OPENSSL_ERR_H)
check_include_file("openssl/pem.h" HAVE_OPENSSL_PEM_H)
check_include_file("openssl/pkcs12.h" HAVE_OPENSSL_PKCS12_H)
check_include_file("openssl/rsa.h" HAVE_OPENSSL_RSA_H)
check_include_file("openssl/ssl.h" HAVE_OPENSSL_SSL_H)
check_include_file("openssl/x509.h" HAVE_OPENSSL_X509_H)
check_include_file("openssl/rand.h" HAVE_OPENSSL_RAND_H)
elseif(WIN32)
set(CURL_WINDOWS_SSPI ON)
endif()
find_package(OpenSSL REQUIRED)
set(SSL_ENABLED ON)
set(USE_OPENSSL ON)
set(HAVE_LIBCRYPTO ON)
set(HAVE_LIBSSL ON)
list(APPEND CURL_LIBS ${OPENSSL_LIBRARIES})
include_directories(${OPENSSL_INCLUDE_DIR})
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
check_include_file("openssl/crypto.h" HAVE_OPENSSL_CRYPTO_H)
check_include_file("openssl/engine.h" HAVE_OPENSSL_ENGINE_H)
check_include_file("openssl/err.h" HAVE_OPENSSL_ERR_H)
check_include_file("openssl/pem.h" HAVE_OPENSSL_PEM_H)
check_include_file("openssl/pkcs12.h" HAVE_OPENSSL_PKCS12_H)
check_include_file("openssl/rsa.h" HAVE_OPENSSL_RSA_H)
check_include_file("openssl/ssl.h" HAVE_OPENSSL_SSL_H)
check_include_file("openssl/x509.h" HAVE_OPENSSL_X509_H)
check_include_file("openssl/rand.h" HAVE_OPENSSL_RAND_H)
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)
endif()
if(CMAKE_USE_MBEDTLS)
find_package(MbedTLS REQUIRED)
set(SSL_ENABLED ON)
set(USE_MBEDTLS ON)
list(APPEND CURL_LIBS ${MBEDTLS_LIBRARIES})
include_directories(${MBEDTLS_INCLUDE_DIRS})
endif()
option(USE_NGHTTP2 "Use Nghttp2 library" OFF)
@ -572,25 +623,85 @@ else()
endif()
#
# CA handling
#
set(CURL_CA_BUNDLE "auto" CACHE STRING
"Path to the CA bundle. Set 'none' to disable or 'auto' for auto-detection. Defaults to 'auto'.")
set(CURL_CA_FALLBACK OFF CACHE BOOL
"Set ON to use built-in CA store of TLS backend. Defaults to OFF")
set(CURL_CA_PATH "auto" CACHE STRING
"Location of default CA path. Set 'none' to disable or 'auto' for auto-detection. Defaults to 'auto'.")
if("${CURL_CA_BUNDLE}" STREQUAL "")
message(FATAL_ERROR "Invalid value of CURL_CA_BUNDLE. Use 'none', 'auto' or file path.")
elseif("${CURL_CA_BUNDLE}" STREQUAL "none")
unset(CURL_CA_BUNDLE CACHE)
elseif("${CURL_CA_BUNDLE}" STREQUAL "auto")
unset(CURL_CA_BUNDLE CACHE)
set(CURL_CA_BUNDLE_AUTODETECT TRUE)
else()
set(CURL_CA_BUNDLE_SET TRUE)
endif()
if("${CURL_CA_PATH}" STREQUAL "")
message(FATAL_ERROR "Invalid value of CURL_CA_PATH. Use 'none', 'auto' or directory path.")
elseif("${CURL_CA_PATH}" STREQUAL "none")
unset(CURL_CA_PATH CACHE)
elseif("${CURL_CA_PATH}" STREQUAL "auto")
unset(CURL_CA_PATH CACHE)
set(CURL_CA_PATH_AUTODETECT TRUE)
else()
set(CURL_CA_PATH_SET TRUE)
endif()
if(CURL_CA_BUNDLE_SET AND CURL_CA_PATH_AUTODETECT)
# Skip autodetection of unset CA path because CA bundle is set explicitly
elseif(CURL_CA_PATH_SET AND CURL_CA_BUNDLE_AUTODETECT)
# Skip autodetection of unset CA bundle because CA path is set explicitly
elseif(CURL_CA_PATH_AUTODETECT OR CURL_CA_BUNDLE_AUTODETECT)
# first try autodetecting a CA bundle, then a CA path
if(CURL_CA_BUNDLE_AUTODETECT)
set(SEARCH_CA_BUNDLE_PATHS
/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-nss.crt
/etc/ssl/cert.pem)
foreach(SEARCH_CA_BUNDLE_PATH ${SEARCH_CA_BUNDLE_PATHS})
if(EXISTS "${SEARCH_CA_BUNDLE_PATH}")
message(STATUS "Found CA bundle: ${SEARCH_CA_BUNDLE_PATH}")
set(CURL_CA_BUNDLE "${SEARCH_CA_BUNDLE_PATH}")
set(CURL_CA_BUNDLE_SET TRUE CACHE BOOL "Path to the CA bundle has been set")
break()
endif()
endforeach()
endif()
if(CURL_CA_PATH_AUTODETECT AND (NOT CURL_CA_PATH_SET))
if(EXISTS "/etc/ssl/certs")
set(CURL_CA_PATH "/etc/ssl/certs")
set(CURL_CA_PATH_SET TRUE CACHE BOOL "Path to the CA bundle has been set")
endif()
endif()
endif()
if(CURL_CA_PATH_SET AND NOT USE_OPENSSL AND NOT USE_MBEDTLS)
message(FATAL_ERROR
"CA path only supported by OpenSSL, GnuTLS or mbed TLS. "
"Set CURL_CA_PATH=none or enable one of those TLS backends.")
endif()
# Check for header files
if(NOT UNIX)
check_include_file_concat("windows.h" HAVE_WINDOWS_H)
check_include_file_concat("winsock.h" HAVE_WINSOCK_H)
check_include_file_concat("ws2tcpip.h" HAVE_WS2TCPIP_H)
check_include_file_concat("winsock2.h" HAVE_WINSOCK2_H)
if(CURL_WINDOWS_SSPI)
set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -DSECURITY_WIN32")
check_include_file_concat("sspi.h" HAVE_SSPI_H)
if(HAVE_SSPI_H)
check_include_file_concat("schannel.h" HAVE_SCHANNEL_H)
set(USE_WINDOWS_SSPI ON)
if(HAVE_SCHANNEL_H)
set(USE_SCHANNEL ON)
set(SSL_ENABLED ON)
set(CURL_LIBS ${CURL_LIBS} "crypt32")
endif()
endif()
elseif(USE_OPENSSL)
if(NOT CURL_WINDOWS_SSPI AND USE_OPENSSL)
set(CURL_LIBS ${CURL_LIBS} "crypt32")
endif()
endif(NOT UNIX)
@ -781,14 +892,6 @@ 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)
if(HAVE_LIBCRYPTO AND HAVE_LIBSSL)
set(USE_OPENSSL 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)
@ -1043,9 +1146,9 @@ function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE)
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 "\\\\\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(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.
@ -1053,6 +1156,7 @@ function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE)
endfunction()
add_subdirectory(docs)
add_subdirectory(lib)
if(BUILD_CURL_EXE)
add_subdirectory(src)
@ -1063,11 +1167,6 @@ if(BUILD_TESTING)
add_subdirectory(tests)
endif()
# TODO support GNUTLS, NSS, POLARSSL, AXTLS, CYASSL, WINSSL, DARWINSSL
if(USE_OPENSSL)
set(SSL_ENABLED 1)
endif()
# Helper to populate a list (_items) with a label when conditions (the remaining
# args) are satisfied
function(_add_if label)
@ -1081,6 +1180,8 @@ endfunction()
set(_items)
_add_if("WinSSL" SSL_ENABLED AND USE_WINDOWS_SSPI)
_add_if("OpenSSL" SSL_ENABLED AND USE_OPENSSL)
_add_if("DarwinSSL" SSL_ENABLED AND USE_DARWINSSL)
_add_if("mbedTLS" SSL_ENABLED AND USE_MBEDTLS)
_add_if("IPv6" ENABLE_IPV6)
_add_if("unix-sockets" USE_UNIX_SOCKETS)
_add_if("libz" HAVE_LIBZ)
@ -1097,9 +1198,8 @@ _add_if("SPNEGO" NOT CURL_DISABLE_CRYPTO_AUTH AND
_add_if("Kerberos" NOT CURL_DISABLE_CRYPTO_AUTH AND
(HAVE_GSSAPI OR USE_WINDOWS_SSPI))
# NTLM support requires crypto function adaptions from various SSL libs
# TODO alternative SSL libs tests for SSP1, GNUTLS, NSS, DARWINSSL
if(NOT CURL_DISABLE_CRYPTO_AUTH AND (USE_OPENSSL OR
USE_WINDOWS_SSPI OR GNUTLS_ENABLED OR NSS_ENABLED OR DARWINSSL_ENABLED))
# TODO alternative SSL libs tests for SSP1, GNUTLS, NSS
if(NOT CURL_DISABLE_CRYPTO_AUTH AND (USE_OPENSSL OR USE_WINDOWS_SSPI OR USE_DARWINSSL OR USE_MBEDTLS))
_add_if("NTLM" 1)
# TODO missing option (autoconf: --enable-ntlm-wb)
_add_if("NTLM_WB" NOT CURL_DISABLE_HTTP AND NTLM_WB_ENABLED)
@ -1148,8 +1248,6 @@ set(CC "${CMAKE_C_COMPILER}")
set(CONFIGURE_OPTIONS "")
# TODO when to set "-DCURL_STATICLIB" for CPPFLAG_CURL_STATICLIB?
set(CPPFLAG_CURL_STATICLIB "")
# TODO need to set this (see CURL_CHECK_CA_BUNDLE in acinclude.m4)
set(CURL_CA_BUNDLE "")
set(CURLVERSION "${CURL_VERSION}")
set(ENABLE_SHARED "yes")
if(CURL_STATICLIB)

View file

@ -29,8 +29,8 @@ CMAKE_DIST = CMakeLists.txt CMake/CMakeConfigurableFile.in \
CMake/Platforms/WindowsCache.cmake CMake/Utilities.cmake \
include/curl/curlbuild.h.cmake CMake/Macros.cmake \
CMake/CurlSymbolHiding.cmake CMake/FindCARES.cmake \
CMake/FindLibSSH2.cmake CMake/FindNGHTTP2.cmake
CMake/FindLibSSH2.cmake CMake/FindNGHTTP2.cmake \
CMake/FindMbedTLS.cmake
VC6_LIBTMPL = projects/Windows/VC6/lib/libcurl.tmpl
VC6_LIBDSP = projects/Windows/VC6/lib/libcurl.dsp.dist
@ -133,15 +133,18 @@ VC_DIST = projects/README \
projects/Windows/VC14/lib/libcurl.sln \
projects/Windows/VC14/lib/libcurl.vcxproj.filters \
projects/Windows/VC14/src/curl.sln \
projects/Windows/VC14/src/curl.vcxproj.filters
projects/Windows/VC14/src/curl.vcxproj.filters \
projects/generate.bat \
projects/wolfssl_options.h \
projects/wolfssl_override.props
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 \
RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework scripts/zsh.pl \
$(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) lib/libcurl.vers.in \
buildconf.bat
scripts/updatemanpages.pl $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \
lib/libcurl.vers.in buildconf.bat scripts/coverage.sh
CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
$(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \
@ -151,8 +154,8 @@ CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
bin_SCRIPTS = curl-config
SUBDIRS = lib src include
DIST_SUBDIRS = $(SUBDIRS) tests packages docs scripts
SUBDIRS = lib docs src include
DIST_SUBDIRS = $(SUBDIRS) tests packages scripts
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libcurl.pc
@ -171,10 +174,10 @@ dist-hook:
done)
html:
cd docs && make html
cd docs && $(MAKE) html
pdf:
cd docs && make pdf
cd docs && $(MAKE) pdf
check: test examples check-docs
@ -193,9 +196,15 @@ test:
test-full:
@(cd tests; $(MAKE) all full-test)
test-nonflaky:
@(cd tests; $(MAKE) all nonflaky-test)
test-torture:
@(cd tests; $(MAKE) all torture-test)
test-event:
@(cd tests; $(MAKE) all event-test)
test-am:
@(cd tests; $(MAKE) all am-test)
@ -250,10 +259,10 @@ rpm:
# pkgadd -d ./HAXXcurl-*
#
# gak - libtool requires an absoulte directory, hence the pwd below...
# gak - libtool requires an absolute directory, hence the pwd below...
pkgadd:
umask 022 ; \
make install DESTDIR=`/bin/pwd`/packages/Solaris/root ; \
$(MAKE) install DESTDIR=`/bin/pwd`/packages/Solaris/root ; \
cat COPYING > $(srcdir)/packages/Solaris/copyright ; \
cd $(srcdir)/packages/Solaris && $(MAKE) package

View file

@ -144,7 +144,8 @@ build_triplet = @build@
host_triplet = @host@
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
$(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
$(top_srcdir)/m4/curl-functions.m4 \
$(top_srcdir)/m4/curl-openssl.m4 \
@ -317,6 +318,9 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
@ -356,6 +360,8 @@ ENABLE_SHARED = @ENABLE_SHARED@
ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GCOV = @GCOV@
GENHTML = @GENHTML@
GREP = @GREP@
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
@ -368,6 +374,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPV6_ENABLED = @IPV6_ENABLED@
LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBCURL_LIBS = @LIBCURL_LIBS@
@ -500,7 +507,8 @@ CMAKE_DIST = CMakeLists.txt CMake/CMakeConfigurableFile.in \
CMake/Platforms/WindowsCache.cmake CMake/Utilities.cmake \
include/curl/curlbuild.h.cmake CMake/Macros.cmake \
CMake/CurlSymbolHiding.cmake CMake/FindCARES.cmake \
CMake/FindLibSSH2.cmake CMake/FindNGHTTP2.cmake
CMake/FindLibSSH2.cmake CMake/FindNGHTTP2.cmake \
CMake/FindMbedTLS.cmake
VC6_LIBTMPL = projects/Windows/VC6/lib/libcurl.tmpl
VC6_LIBDSP = projects/Windows/VC6/lib/libcurl.dsp.dist
@ -594,15 +602,18 @@ VC_DIST = projects/README \
projects/Windows/VC14/lib/libcurl.sln \
projects/Windows/VC14/lib/libcurl.vcxproj.filters \
projects/Windows/VC14/src/curl.sln \
projects/Windows/VC14/src/curl.vcxproj.filters
projects/Windows/VC14/src/curl.vcxproj.filters \
projects/generate.bat \
projects/wolfssl_options.h \
projects/wolfssl_override.props
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 \
RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework scripts/zsh.pl \
$(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) lib/libcurl.vers.in \
buildconf.bat
scripts/updatemanpages.pl $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \
lib/libcurl.vers.in buildconf.bat scripts/coverage.sh
CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
$(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \
@ -611,8 +622,8 @@ CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
$(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ)
bin_SCRIPTS = curl-config
SUBDIRS = lib src include
DIST_SUBDIRS = $(SUBDIRS) tests packages docs scripts
SUBDIRS = lib docs src include
DIST_SUBDIRS = $(SUBDIRS) tests packages scripts
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libcurl.pc
LIB_VAUTH_CFILES = vauth/vauth.c vauth/cleartext.c vauth/cram.c \
@ -723,7 +734,6 @@ CURL_CFILES = \
tool_urlglob.c \
tool_util.c \
tool_vms.c \
tool_writeenv.c \
tool_writeout.c \
tool_xattr.c
@ -768,7 +778,6 @@ CURL_HFILES = \
tool_util.h \
tool_version.h \
tool_vms.h \
tool_writeenv.h \
tool_writeout.h \
tool_xattr.h
@ -1324,10 +1333,10 @@ dist-hook:
done)
html:
cd docs && make html
cd docs && $(MAKE) html
pdf:
cd docs && make pdf
cd docs && $(MAKE) pdf
check: test examples check-docs
@ -1343,9 +1352,15 @@ check: test examples check-docs
@CROSSCOMPILING_FALSE@test-full:
@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all full-test)
@CROSSCOMPILING_FALSE@test-nonflaky:
@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all nonflaky-test)
@CROSSCOMPILING_FALSE@test-torture:
@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all torture-test)
@CROSSCOMPILING_FALSE@test-event:
@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all event-test)
@CROSSCOMPILING_FALSE@test-am:
@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all am-test)
@ -1398,10 +1413,10 @@ rpm:
# pkgadd -d ./HAXXcurl-*
#
# gak - libtool requires an absoulte directory, hence the pwd below...
# gak - libtool requires an absolute directory, hence the pwd below...
pkgadd:
umask 022 ; \
make install DESTDIR=`/bin/pwd`/packages/Solaris/root ; \
$(MAKE) install DESTDIR=`/bin/pwd`/packages/Solaris/root ; \
cat COPYING > $(srcdir)/packages/Solaris/copyright ; \
cd $(srcdir)/packages/Solaris && $(MAKE) package

View file

@ -1,20 +1,132 @@
Curl and libcurl 7.53.1
Curl and libcurl 7.54.1
Public curl releases: 164
Command line options: 205
curl_easy_setopt() options: 244
Public curl releases: 166
Command line options: 207
curl_easy_setopt() options: 245
Public functions in libcurl: 61
Contributors: 1507
Contributors: 1571
This release includes the following changes:
o curl: show the libcurl release date in --version output [32]
This release includes the following bugfixes:
o cyassl: fix typo
o url: Improve CURLOPT_PROXY_CAPATH error handling [1]
o urldata: include curl_sspi.h when Windows SSPI is enabled [2]
o formdata: check for EOF when reading from stdin [3]
o tests: Set CHARSET & LANG to UTF-8 in 1035, 2046 and 2047 [4]
o url: Default the proxy CA bundle location to CURL_CA_BUNDLE [5]
o rand: added missing #ifdef HAVE_FCNTL_H around fcntl.h header [6]
o CVE-2017-9502: file: URL buffer overflow [65]
o openssl: fix memory leak in servercert
o tests: remove the html and PDF versions from the tarball
o mbedtls: enable NTLM (& SMB) even if MD4 support is unavailable
o typecheck-gcc: handle function pointers properly [1]
o llist: no longer uses malloc [2]
o gnutls: removed some code when --disable-verbose is configured
o lib: fix maybe-uninitialized warnings
o multi: clarify condition in curl_multi_wait [3]
o schannel: Don't treat encrypted partial record as pending data [4]
o configure: fix the -ldl check for openssl, add -lpthread check [5]
o configure: accept -Og and -Ofast GCC flags [6]
o Makefile: avoid use of GNU-specific form of $< [7]
o if2ip: fix -Wcast-align warning
o configure: stop prepending to LDFLAGS, CPPFLAGS [8]
o curl: set a 100K buffer size by default [9]
o typecheck-gcc: fix _curl_is_slist_info [10]
o nss: do not leak PKCS #11 slot while loading a key [11]
o nss: load libnssckbi.so if no other trust is specified [12]
o examples: ftpuploadfrommem.c [13]
o url: declare get_protocol_family() static [14]
o examples/cookie_interface.c: changed to example.com
o test1443: test --remote-time
o curl: use utimes instead of obsolescent utime when available
o url: fixed a memory leak on OOM while setting CURLOPT_BUFFERSIZE
o curl_rtmp: fix missing-variable-declarations warnings
o tests: fixed OOM handling of unit tests to abort test
o curl_setup: Ensure no more than one IDN lib is enabled [15]
o tool: Fix missing prototype warnings for CURL_DOES_CONVERSIONS [16]
o CURLOPT_BUFFERSIZE: 1024 bytes is now the minimum size [17]
o curl: non-boolean command line args reject --no- prefixes [18]
o telnet: Write full buffer instead of byte-by-byte [19]
o typecheck-gcc: add missing string options [20]
o typecheck-gcc: add support for CURLINFO_SOCKET [21]
o opt man pages: they all have examples now
o curl_setup_once: use SEND_QUAL_ARG2 for swrite [22]
o test557: set a known good numeric locale
o schannel: return a more specific error code for SEC_E_UNTRUSTED_ROOT
o tests/server: make string literals const
o runtests: use -R for random order [23]
o unit1305: fix compiler warning
o curl_slist_append.3: clarify a NULL input creates a new list
o tests/server: run checksrc by default in debug-builds
o tests: fix -Wcast-qual warnings
o runtests.pl: simplify the datacheck read section
o curl: remove --environment and tool_writeenv.c [24]
o buildconf: fix hang on IRIX [25]
o tftp: silence bad-function-cast warning
o asyn-thread: fix unused macro warnings
o tool_parsecfg: fix -Wcast-qual warning
o sendrecv: fix MinGW-w64 warning
o test537: use correct variable type [26]
o rand: treat fake entropy the same regardless of endianness [27]
o curl: generate the --help output [28]
o tests: removed redundant --trace-ascii arguments
o multi: assign IDs to all timers and make each timer singleton
o multi: use a fixed array of timers instead of malloc [29]
o mbedtls: Support server renegotiation request [30]
o pipeline: fix mistakenly trying to pipeline POSTs [31]
o lib510: don't write past the end of the buffer if it's too small
o CURLOPT_HTTPPROXYTUNNEL.3: clarify, add example
o SecureTransport/DarwinSSL: Implement public key pinning [33]
o curl.1: clarify --config
o curl_sasl: fix build error with CURL_DISABLE_CRYPTO_AUTH + USE_NTLM [34]
o darwinssl: Fix exception when processing a client-side certificate [35]
o curl.1: mention --oauth2-bearer's <token> argument
o mkhelp.pl: do not add current time into curl binary [36]
o asiohiper.cpp / evhiperfifo.c: deal with negative timerfunction input [37]
o ssh: fix memory leak in disconnect due to timeout [38]
o tests: stabilize test 1034 [39]
o cmake: auto detection of CURL_CA_BUNDLE/CURL_CA_PATH [40]
o assert: avoid, use DEBUGASSERT instead [41]
o LDAP: using ldap_bind_s on Windows with methods [42]
o redirect: store the "would redirect to" URL when max redirs is reached [43]
o winbuild: fix the nghttp2 build [44]
o examples: fix -Wimplicit-fallthrough warnings
o time: fix type conversions and compiler warnings [45]
o mbedtls: fix variable shadow warning
o test557: fix ubsan runtime error due to int left shift [46]
o transfer: init the infilesize from the postfields [47]
o docs: clarify NO_PROXY further [48]
o build-wolfssl: Sync config with wolfSSL 3.11
o curl-compilers.m4: enable -Wshift-sign-overflow for clang [49]
o example/externalsocket.c: make it use CLOSESOCKETFUNCTION too
o lib574.c: use correct callback proto
o lib583: fix compiler warning
o curl-compilers.m4: fix compiler_num for clang [50]
o typecheck-gcc.h: separate getinfo slist checks from other pointers [51]
o typecheck-gcc.h: check CURLINFO_TLS_SSL_PTR and CURLINFO_TLS_SESSION
o typecheck-gcc.h: check CURLINFO_CERTINFO [52]
o build: provide easy code coverage measuring [53]
o test1537: dedicated tests of the URL (un)escape API calls [54]
o curl_endian: remove unused functions [55]
o test1538: verify the libcurl strerror API calls
o MD(4|5): silence cast-align clang warning
o dedotdot: fixed output for ".." and "." only input [56]
o cyassl: define build macros before including ssl.h [57]
o updatemanpages.pl: error out on too old git version
o curl_sasl: fix unused-variable warning
o x509asn1: fix implicit-fallthrough warning with GCC 7
o libtest: fix implicit-fallthrough warnings with GCC 7
o BINDINGS: add Ring binding [58]
o curl_ntlm_core: pass unsigned char to toupper
o test1262: verify ftp download with -z for "if older than this"
o test1521: test all curl_easy_setopt options [59]
o typecheck-gcc: allow CURLOPT_STDERR to be NULL too
o metalink: remove unused printf() argument
o file: make speedcheck use current time for checks [60]
o configure: fix link with librtmp when specifying path [61]
o examples/multi-uv.c: fix deprecated symbol [62]
o cmake: Fix inconsistency regarding mbed TLS include directory [63]
o setopt: check CURLOPT_ADDRESS_SCOPE option range
o gitignore: ignore all vim swap files [64]
o urlglob: fix division by zero
o libressl: OCSP and intermediate certs workaround no longer needed [66]
This release includes the following known bugs:
@ -23,17 +135,85 @@ This release includes the following known bugs:
This release would not have looked like this without help, code, reports and
advice from friends like these:
Dan Fandrich, Daniel Stenberg, İsmail Dönmez, jveazey on github, Ray Satiro,
Sergii Pylypenko, Shachaf Ben-Kiki, Viktor Szakáts,
(8 contributors)
Akhil Kedia, Alan Jenkins, Anatol Belski, Bernhard M. Wiedemann,
Brian Childs, canavan at github, Chris Carlmar, Dan Fandrich,
Daniel Stenberg, Edward Thomson, Gisle Vanem, GwanYeong Kim,
Helmut K. C. Tessarek, Joel Depooter, jonrumsey at github, Kai Engert,
Kamil Dudka, Kevin Ji, Lloyd Fournier, Mahmoud Samir Fayed, Marcel Raad,
Martin Kepplinger, Max Dymond, Michael Kaufmann, Nick Zitzmann, Paul Harris,
Phil Crump, Piotr Dobrogost, Ray Satiro, Richard Hsu, Ron Eldor,
Ryuichi KAWAMATA, Sergei Nikulov, Simon Warta, stootill at github,
Stuart Henderson, TheAssassin at github, Thomas Klausner, Travis Burtrum,
Vincas Razma, wyattoday at github,
(41 contributors)
Thanks! (and sorry if I forgot to mention someone)
References to bug reports and discussions on issues:
[1] = https://curl.haxx.se/bug/?i=1257
[2] = https://curl.haxx.se/bug/?i=1276
[3] = https://curl.haxx.se/bug/?i=1281
[4] = https://curl.haxx.se/bug/?i=1277
[5] = https://curl.haxx.se/bug/?i=1257
[6] = https://curl.haxx.se/bug/?i=1285
[1] = https://curl.haxx.se/bug/?i=1403
[2] = https://curl.haxx.se/bug/?i=1435
[3] = https://curl.haxx.se/bug/?i=1439
[4] = https://curl.haxx.se/bug/?i=1392
[5] = https://curl.haxx.se/bug/?i=1427
[6] = https://curl.haxx.se/bug/?i=1440
[7] = https://curl.haxx.se/bug/?i=1432
[8] = https://curl.haxx.se/bug/?i=1420
[9] = https://curl.haxx.se/bug/?i=1446
[10] = https://curl.haxx.se/bug/?i=1447
[11] = https://bugzilla.redhat.com/1444860
[12] = https://curl.haxx.se/bug/?i=1414
[13] = https://curl.haxx.se/bug/?i=1451
[14] = https://curl.haxx.se/mail/lib-2017-04/0127.html
[15] = https://github.com/curl/curl/issues/1441#issuecomment-297689856
[16] = https://curl.haxx.se/bug/?i=1460
[17] = https://curl.haxx.se/bug/?i=1449
[18] = https://curl.haxx.se/bug/?i=1453
[19] = https://curl.haxx.se/bug/?i=1389
[20] = https://curl.haxx.se/bug/?i=1452
[21] = https://curl.haxx.se/bug/?i=1452
[22] = https://curl.haxx.se/bug/?i=1464
[23] = https://curl.haxx.se/bug/?i=1466
[24] = https://curl.haxx.se/bug/?i=1463
[25] = https://curl.haxx.se/bug/?i=1471
[26] = https://curl.haxx.se/bug/?i=1469
[27] = https://curl.haxx.se/bug/?i=1315
[28] = https://curl.haxx.se/bug/?i=1465
[29] = https://curl.haxx.se/bug/?i=1472
[30] = https://curl.haxx.se/bug/?i=1475
[31] = https://curl.haxx.se/bug/?i=1481
[32] = https://curl.haxx.se/bug/?i=1474
[33] = https://curl.haxx.se/bug/?i=1400
[34] = https://curl.haxx.se/bug/?i=1487
[35] = https://curl.haxx.se/bug/?i=1450
[36] = https://curl.haxx.se/bug/?i=1490
[37] = https://curl.haxx.se/bug/?i=1253
[38] = https://curl.haxx.se/bug/?i=1479
[39] = https://curl.haxx.se/bug/?i=1488
[40] = https://curl.haxx.se/bug/?i=1461
[41] = https://curl.haxx.se/bug/?i=1504
[42] = https://curl.haxx.se/bug/?i=878
[43] = https://curl.haxx.se/bug/?i=1489
[44] = https://curl.haxx.se/bug/?i=1321
[45] = https://curl.haxx.se/bug/?i=1499
[46] = https://curl.haxx.se/bug/?i=1516
[47] = https://curl.haxx.se/bug/?i=1294
[48] = https://curl.haxx.se/bug/?i=1208
[49] = https://curl.haxx.se/bug/?i=1516
[50] = https://curl.haxx.se/bug/?i=1522
[51] = https://curl.haxx.se/bug/?i=1524
[52] = https://curl.haxx.se/bug/?i=846
[53] = https://curl.haxx.se/bug/?i=1528
[54] = https://curl.haxx.se/bug/?i=1530
[55] = https://curl.haxx.se/bug/?i=1529
[56] = https://curl.haxx.se/bug/?i=1532
[57] = https://curl.haxx.se/bug/?i=1536
[58] = https://curl.haxx.se/bug/?i=1539
[59] = https://curl.haxx.se/bug/?i=1543
[60] = https://curl.haxx.se/bug/?i=1550
[61] = https://curl.haxx.se/mail/lib-2017-06/0017.html
[62] = https://curl.haxx.se/bug/?i=1557
[63] = https://curl.haxx.se/bug/?i=1541
[64] = https://curl.haxx.se/bug/?i=1561
[65] = https://curl.haxx.se/docs/adv_20170614.html
[66] = https://curl.haxx.se/mail/lib-2017-06/0038.html

1
curl/aclocal.m4 vendored
View file

@ -1186,6 +1186,7 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([m4/ax_code_coverage.m4])
m4_include([m4/curl-compilers.m4])
m4_include([m4/curl-confopts.m4])
m4_include([m4/curl-functions.m4])

View file

@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@ -255,7 +255,7 @@ echo "buildconf: libtoolize version $lt_version (ok)"
#--------------------------------------------------------------------------
# m4 check
#
m4=`(${M4:-m4} --version || ${M4:-gm4} --version) 2>/dev/null | head -n 1`;
m4=`(${M4:-m4} --version 0<&- || ${M4:-gm4} --version) 2>/dev/null 0<&- | 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

629
curl/configure vendored
View file

@ -11,7 +11,7 @@
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
#
# Copyright (c) 1998 - 2016 Daniel Stenberg, <daniel@haxx.se>
# Copyright (c) 1998 - 2017 Daniel Stenberg, <daniel@haxx.se>
# This configure script may be copied, distributed and modified under the
# terms of the curl license; see COPYING for more details
@ -1050,9 +1050,18 @@ libext
AR
EGREP
GREP
SED
CURL_CFLAG_EXTRAS
CONFIGURE_OPTIONS
CODE_COVERAGE_RULES
CODE_COVERAGE_LDFLAGS
CODE_COVERAGE_CFLAGS
GENHTML
LCOV
GCOV
CODE_COVERAGE_ENABLED
CODE_COVERAGE_ENABLED_FALSE
CODE_COVERAGE_ENABLED_TRUE
SED
AM_BACKSLASH
AM_DEFAULT_VERBOSITY
AM_DEFAULT_V
@ -1113,6 +1122,8 @@ enable_symbol_hiding
enable_hidden_symbols
enable_ares
enable_rt
with_gcov
enable_code_coverage
enable_dependency_tracking
enable_largefile
enable_shared
@ -1844,6 +1855,7 @@ Optional Features:
--enable-ares[=PATH] Enable c-ares for DNS lookups
--disable-ares Disable c-ares for DNS lookups
--disable-rt disable dependency on -lrt
--enable-code-coverage Whether to enable code coverage support
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
@ -1925,6 +1937,7 @@ Optional Features:
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-gcov=GCOV use given GCOV for coverage (GCOV=gcov).
--with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
both]
--with-aix-soname=aix|svr4|both
@ -2093,7 +2106,7 @@ Copyright (C) 2012 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 - 2016 Daniel Stenberg, <daniel@haxx.se>
Copyright (c) 1998 - 2017 Daniel Stenberg, <daniel@haxx.se>
This configure script may be copied, distributed and modified under the
terms of the curl license; see COPYING for more details
_ACEOF
@ -3371,9 +3384,6 @@ $as_echo "(assumed no)" >&6; }
$as_echo "no" >&6; }
;;
esac
if test "$dontwant_rt" = "yes" && test "$want_thres" = "yes" ; then
as_fn_error $? "options --disable-rt and --enable-thread-resolver are mutually exclusive, at most one can be selected." "$LINENO" 5
fi
#
@ -3406,6 +3416,417 @@ $as_echo "$xc_PATH_SEPARATOR" >&6; }
as_fn_error $? "path separator mismatch (internal or config.site problem)" "$LINENO" 5
fi
{ $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 ${ac_cv_path_SED+:} false; 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"
as_fn_executable_p "$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
# allow to override gcov location
# Check whether --with-gcov was given.
if test "${with_gcov+set}" = set; then :
withval=$with_gcov; _AX_CODE_COVERAGE_GCOV_PROG_WITH=$with_gcov
else
_AX_CODE_COVERAGE_GCOV_PROG_WITH=gcov
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with code coverage support" >&5
$as_echo_n "checking whether to build with code coverage support... " >&6; }
# Check whether --enable-code-coverage was given.
if test "${enable_code_coverage+set}" = set; then :
enableval=$enable_code_coverage;
else
enable_code_coverage=no
fi
if test x$enable_code_coverage = xyes; then
CODE_COVERAGE_ENABLED_TRUE=
CODE_COVERAGE_ENABLED_FALSE='#'
else
CODE_COVERAGE_ENABLED_TRUE='#'
CODE_COVERAGE_ENABLED_FALSE=
fi
CODE_COVERAGE_ENABLED=$enable_code_coverage
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_code_coverage" >&5
$as_echo "$enable_code_coverage" >&6; }
if test "$enable_code_coverage" = "yes" ; then :
# check for gcov
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH", so it can be a program name with args.
set dummy ${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_GCOV+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$GCOV"; then
ac_cv_prog_GCOV="$GCOV" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_GCOV="${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH"
$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
GCOV=$ac_cv_prog_GCOV
if test -n "$GCOV"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCOV" >&5
$as_echo "$GCOV" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_GCOV"; then
ac_ct_GCOV=$GCOV
# Extract the first word of "$_AX_CODE_COVERAGE_GCOV_PROG_WITH", so it can be a program name with args.
set dummy $_AX_CODE_COVERAGE_GCOV_PROG_WITH; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_GCOV+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_GCOV"; then
ac_cv_prog_ac_ct_GCOV="$ac_ct_GCOV" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_GCOV="$_AX_CODE_COVERAGE_GCOV_PROG_WITH"
$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_GCOV=$ac_cv_prog_ac_ct_GCOV
if test -n "$ac_ct_GCOV"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GCOV" >&5
$as_echo "$ac_ct_GCOV" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_ct_GCOV" = x; then
GCOV=":"
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
GCOV=$ac_ct_GCOV
fi
else
GCOV="$ac_cv_prog_GCOV"
fi
if test "X$GCOV" = "X:"; then :
as_fn_error $? "gcov is needed to do coverage" "$LINENO" 5
fi
if test "$GCC" = "no" ; then :
as_fn_error $? "not compiling with gcc, which is required for gcov code coverage" "$LINENO" 5
fi
# List of supported lcov versions.
lcov_version_list="1.6 1.7 1.8 1.9 1.10 1.11 1.13"
# Extract the first word of "lcov", so it can be a program name with args.
set dummy lcov; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_LCOV+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$LCOV"; then
ac_cv_prog_LCOV="$LCOV" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_LCOV="lcov"
$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
LCOV=$ac_cv_prog_LCOV
if test -n "$LCOV"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LCOV" >&5
$as_echo "$LCOV" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
# Extract the first word of "genhtml", so it can be a program name with args.
set dummy genhtml; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_GENHTML+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$GENHTML"; then
ac_cv_prog_GENHTML="$GENHTML" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_GENHTML="genhtml"
$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
GENHTML=$ac_cv_prog_GENHTML
if test -n "$GENHTML"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GENHTML" >&5
$as_echo "$GENHTML" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "$LCOV" ; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lcov version" >&5
$as_echo_n "checking for lcov version... " >&6; }
if ${ax_cv_lcov_version+:} false; then :
$as_echo_n "(cached) " >&6
else
ax_cv_lcov_version=invalid
lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'`
for lcov_check_version in $lcov_version_list; do
if test "$lcov_version" = "$lcov_check_version"; then
ax_cv_lcov_version="$lcov_check_version (ok)"
fi
done
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_lcov_version" >&5
$as_echo "$ax_cv_lcov_version" >&6; }
else
lcov_msg="To enable code coverage reporting you must have one of the following lcov versions installed: $lcov_version_list"
as_fn_error $? "$lcov_msg" "$LINENO" 5
fi
case $ax_cv_lcov_version in
""|invalid)
lcov_msg="You must have one of the following versions of lcov: $lcov_version_list (found: $lcov_version)."
as_fn_error $? "$lcov_msg" "$LINENO" 5
LCOV="exit 0;"
;;
esac
if test -z "$GENHTML" ; then :
as_fn_error $? "Could not find genhtml from the lcov package" "$LINENO" 5
fi
CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
CODE_COVERAGE_LDFLAGS="-lgcov"
CODE_COVERAGE_RULES='
# Code coverage
#
# Optional:
# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting.
# (Default: $(top_builddir))
# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated
# by lcov for code coverage. (Default:
# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info)
# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage
# reports to be created. (Default:
# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage)
# - CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH: --gcov-tool pathtogcov
# - CODE_COVERAGE_LCOV_OPTIONS_DEFAULT: Extra options to pass to the lcov instance.
# (Default: $CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH)
# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the lcov instance.
# (Default: $CODE_COVERAGE_LCOV_OPTIONS_DEFAULT)
# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml
# instance. (Default: empty)
# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore
#
# The generated report will be titled using the $(PACKAGE_NAME) and
# $(PACKAGE_VERSION). In order to add the current git hash to the title,
# use the git-version-gen script, available online.
# Optional variables
CODE_COVERAGE_DIRECTORY ?= $(top_builddir)
CODE_COVERAGE_OUTPUT_FILE ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info
CODE_COVERAGE_OUTPUT_DIRECTORY ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage
CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH ?= --gcov-tool "$(GCOV)"
CODE_COVERAGE_LCOV_OPTIONS_DEFAULT ?= $(CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH)
CODE_COVERAGE_LCOV_OPTIONS ?= $(CODE_COVERAGE_LCOV_OPTIONS_DEFAULT)
CODE_COVERAGE_GENHTML_OPTIONS ?=
CODE_COVERAGE_IGNORE_PATTERN ?=
code_coverage_quiet = $(code_coverage_quiet_$(V))
code_coverage_quiet_ =
code_coverage_quiet_0 = --quiet
# Use recursive makes in order to ignore errors during check
check-code-coverage:
-$(MAKE) $(AM_MAKEFLAGS) -k check
$(MAKE) $(AM_MAKEFLAGS) code-coverage-capture
# Capture code coverage data
code-coverage-capture: code-coverage-capture-hook
$(LCOV) $(code_coverage_quiet) --directory $(CODE_COVERAGE_DIRECTORY) --capture --output-file "$(CODE_COVERAGE_OUTPUT_FILE).tmp" --test-name "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" --no-checksum --compat-libtool $(CODE_COVERAGE_LCOV_OPTIONS)
$(LCOV) $(code_coverage_quiet) --directory $(CODE_COVERAGE_DIRECTORY) --remove "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "/tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN) --output-file "$(CODE_COVERAGE_OUTPUT_FILE)"
-@rm -f $(CODE_COVERAGE_OUTPUT_FILE).tmp
LANG=C $(GENHTML) $(code_coverage_quiet) --prefix $(CODE_COVERAGE_DIRECTORY) --output-directory "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION) Code Coverage" --legend --show-details "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_GENHTML_OPTIONS)
@echo "file://$(abs_builddir)/$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html"
# Hook rule executed before code-coverage-capture, overridable by the user
code-coverage-capture-hook:
clean: code-coverage-clean
code-coverage-clean:
-$(LCOV) --directory $(top_builddir) -z
-rm -rf $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_FILE).tmp $(CODE_COVERAGE_OUTPUT_DIRECTORY)
-find . -name "*.gcda" -o -name "*.gcov" -delete
GITIGNOREFILES ?=
GITIGNOREFILES += $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_DIRECTORY)
DISTCHECK_CONFIGURE_FLAGS ?=
DISTCHECK_CONFIGURE_FLAGS += --disable-code-coverage
.PHONY: check-code-coverage code-coverage-capture code-coverage-capture-hook code-coverage-clean
'
fi
#
# save the configure arguments
@ -3687,7 +4108,7 @@ 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`
CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)".*/\1/p' ${srcdir}/include/curl/curlver.h`
xc_prog_cc_prev_IFS=$IFS
xc_prog_cc_prev_LIBS=$LIBS
@ -5626,7 +6047,7 @@ $as_echo "$CURLVERSION" >&6; }
VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\(.*\)/\1/p' ${srcdir}/include/curl/curlver.h`
VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\([0-9A-Fa-f]*\).*/\1/p' ${srcdir}/include/curl/curlver.h`
PKGADD_PKG="HAXXcurl"
@ -11216,7 +11637,7 @@ esac
# of non-PIC compiled objects will fail with following linker error
# "relocation R_X86_64_32 can not be used when making a shared object"
# is to build PIC objects even for static libraries. This behavior may
# be overriden using 'configure --disable-shared --without-pic'.
# be overridden using 'configure --disable-shared --without-pic'.
#
if test "x$xc_lt_want_with_pic" = 'xdefault'; then
@ -15924,7 +16345,7 @@ esac
$as_echo "$xc_lt_shlib_use_mimpure_text" >&6; }
#
# Find out wether libtool libraries would be built wit PIC
# Find out whether libtool libraries would be built wit PIC
#
case "x$pic_mode" in # ((((
@ -16545,7 +16966,7 @@ rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
compiler_id="CLANG"
clangver=`$CC -dumpversion`
clangver=`$CC -v 2>&1 | grep version | "$SED" 's/.*version \([0-9]*\.[0-9]*\).*/\1/'`
clangvhi=`echo $clangver | cut -d . -f1`
clangvlo=`echo $clangver | cut -d . -f2`
compiler_num=`(expr $clangvhi "*" 100 + $clangvlo) 2>/dev/null`
@ -16633,7 +17054,7 @@ $as_echo "yes" >&6; }
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_all="-O -O0 -O1 -O2 -O3 -Os -Og -Ofast"
flags_opt_yes="-O2"
flags_opt_off="-O0"
@ -17344,7 +17765,9 @@ squeeze() {
#
GNU_C)
#
tmp_CFLAGS="$tmp_CFLAGS"
if test "$compiler_num" -ge "295"; then
tmp_CFLAGS="$tmp_CFLAGS -Werror-implicit-function-declaration"
fi
;;
#
HP_UX_C)
@ -18020,6 +18443,10 @@ $as_echo "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
if test "$compiler_num" -ge "101"; then
tmp_CFLAGS="$tmp_CFLAGS -Wunused"
fi
#
if test "$compiler_num" -ge "209"; then
tmp_CFLAGS="$tmp_CFLAGS -Wshift-sign-overflow"
fi
fi
;;
#
@ -20728,6 +21155,7 @@ else
OPT_ZLIB=""
fi
if test -z "$OPT_ZLIB" ; then
if test -n "$PKG_CONFIG"; then
PKGCONFIG="$PKG_CONFIG"
@ -20855,15 +21283,13 @@ $as_echo "found" >&6; }
fi
if test "$PKGCONFIG" != "no" ; then
LIBS="`$PKGCONFIG --libs-only-l zlib` $LIBS"
LDFLAGS="`$PKGCONFIG --libs-only-L zlib` $LDFLAGS"
CPPFLAGS="`$PKGCONFIG --cflags-only-I zlib` $CPPFLAGS"
OPT_ZLIB=""
HAVE_LIBZ="1"
fi
if test -z "$OPT_ZLIB" ; then
if test "$PKGCONFIG" != "no" ; then
LIBS="`$PKGCONFIG --libs-only-l zlib` $LIBS"
LDFLAGS="$LDFLAGS `$PKGCONFIG --libs-only-L zlib`"
CPPFLAGS="$CPPFLAGS `$PKGCONFIG --cflags-only-I zlib`"
OPT_ZLIB=""
HAVE_LIBZ="1"
fi
if test -z "$HAVE_LIBZ"; then
@ -22428,57 +22854,19 @@ if test "x$ac_cv_lib_crypto_HMAC_Init_ex" = xyes; then :
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 OpenSSL linking without -ldl" >&5
$as_echo_n "checking OpenSSL linking without -ldl... " >&6; }
saved_libs=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <openssl/evp.h>
int main (void)
{
SSLeay_add_all_algorithms();
;
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; }
LIBS="$saved_libs"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL linking with -ldl" >&5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL linking with -ldl" >&5
$as_echo_n "checking OpenSSL linking with -ldl... " >&6; }
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <openssl/evp.h>
#include <openssl/err.h>
int main (void)
{
SSLeay_add_all_algorithms();
ERR_clear_error();
;
return 0;
@ -22486,15 +22874,45 @@ int main (void)
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
LIBS="$saved_libs -ldl"
HAVECRYPTO="yes"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
LIBS="$saved_libs"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL linking with -ldl and -lpthread" >&5
$as_echo_n "checking OpenSSL linking with -ldl and -lpthread... " >&6; }
LIBS="-lpthread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <openssl/err.h>
int main (void)
{
ERR_clear_error();
;
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; }
HAVECRYPTO="yes"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
LDFLAGS="$CLEANLDFLAGS"
CPPFLAGS="$CLEANCPPFLAGS"
LIBS="$CLEANLIBS"
fi
@ -22502,12 +22920,16 @@ rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
fi
fi
if test X"$HAVECRYPTO" = X"yes"; then
@ -25770,8 +26192,8 @@ $as_echo "found" >&6; }
clean_CPPFLAGS="$CPPFLAGS"
clean_LDFLAGS="$LDFLAGS"
clean_LIBS="$LIBS"
CPPFLAGS="$addcflags $clean_CPPFLAGS"
LDFLAGS="$addld $clean_LDFLAGS"
CPPFLAGS="$clean_CPPFLAGS $addcflags"
LDFLAGS="$clean_LDFLAGS $addld"
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; }
@ -25994,7 +26416,7 @@ $as_echo "found" >&6; }
DIR_SSH2=${PREFIX_SSH2}/lib$libsuff
fi
LDFLAGS="$LD_SSH2 $LDFLAGS"
LDFLAGS="$LDFLAGS $LD_SSH2"
CPPFLAGS="$CPPFLAGS $CPP_SSH2"
LIBS="$LIB_SSH2 $LIBS"
@ -26241,7 +26663,8 @@ $as_echo "found" >&6; }
LIB_RTMP="-lrtmp"
;;
*)
PREFIX_RTMP=$OPT_LIBRTMP
LIB_RTMP="-lrtmp"
PREFIX_RTMP=$OPT_LIBRTMP
;;
esac
@ -26435,8 +26858,8 @@ if test "$want_winidn" = "yes"; then
WINIDN_DIR="$want_winidn_path/lib$libsuff"
fi
#
CPPFLAGS="$WINIDN_CPPFLAGS $CPPFLAGS"
LDFLAGS="$WINIDN_LDFLAGS $LDFLAGS"
CPPFLAGS="$CPPFLAGS $WINIDN_CPPFLAGS"
LDFLAGS="$LDFLAGS $WINIDN_LDFLAGS"
LIBS="$WINIDN_LIBS $LIBS"
#
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IdnToUnicode can be linked" >&5
@ -26856,8 +27279,8 @@ $as_echo "$as_me: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&6;}
$as_echo "$as_me: IDN_DIR: \"$IDN_DIR\"" >&6;}
fi
#
CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
CPPFLAGS="$CPPFLAGS $IDN_CPPFLAGS"
LDFLAGS="$LDFLAGS $IDN_LDFLAGS"
LIBS="$IDN_LIBS $LIBS"
#
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if idn2_lookup_ul can be linked" >&5
@ -39362,7 +39785,8 @@ for ac_func in fork \
setmode \
setrlimit \
uname \
utime
utime \
utimes
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
@ -40087,8 +40511,8 @@ fi
fi
fi
#
CPPFLAGS="$ares_CPPFLAGS $clean_CPPFLAGS"
LDFLAGS="$ares_LDFLAGS $clean_LDFLAGS"
CPPFLAGS="$clean_CPPFLAGS $ares_CPPFLAGS"
LDFLAGS="$clean_LDFLAGS $ares_LDFLAGS"
LIBS="$ares_LIBS $clean_LIBS"
#
if test "$embedded_ares" != "yes"; then
@ -40221,8 +40645,25 @@ $as_echo "auto" >&6; }
fi
if test "$want_thres" = "yes" && test "$dontwant_rt" = "no" && \
test "$want_pthreads" != "no"; then
if test "$want_pthreads" != "no"; then
if test "$want_pthreads" = "yes" && test "$dontwant_rt" = "yes"; then
as_fn_error $? "options --enable-pthreads and --disable-rt are mutually exclusive" "$LINENO" 5
fi
if test "$dontwant_rt" != "no"; then
if test "$want_pthreads" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-pthreads Ignored since librt is disabled." >&5
$as_echo "$as_me: WARNING: --enable-pthreads Ignored since librt is disabled." >&2;}
fi
want_pthreads=no
fi
fi
if test "$want_pthreads" != "no" && test "$want_thres" != "yes"; then
want_pthreads=no
fi
if test "$want_pthreads" != "no"; 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" = xyes; then :
@ -40292,24 +40733,22 @@ fi
fi
if test "x$USE_THREADS_POSIX" != "x1"; then
if test "$want_thres" = "yes" && test "x$USE_THREADS_POSIX" != "x1"; then
if test "$want_pthreads" = "yes"; then
as_fn_error $? "--enable-pthreads but pthreads was not found" "$LINENO" 5
fi
if test "$want_thres" = "yes"; then
if test "$curl_cv_native_windows" = "yes"; then
USE_THREADS_WIN32=1
if test "$curl_cv_native_windows" = "yes"; then
USE_THREADS_WIN32=1
$as_echo "#define USE_THREADS_WIN32 1" >>confdefs.h
curl_res_msg="Win32 threaded"
else
as_fn_error $? "Threaded resolver enabled but no thread library found" "$LINENO" 5
fi
curl_res_msg="Win32 threaded"
else
as_fn_error $? "Threaded resolver enabled but no thread library found" "$LINENO" 5
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.
@ -41095,6 +41534,10 @@ 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 "${CODE_COVERAGE_ENABLED_TRUE}" && test -z "${CODE_COVERAGE_ENABLED_FALSE}"; then
as_fn_error $? "conditional \"CODE_COVERAGE_ENABLED\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
$as_echo_n "checking that generated files are newer than configure... " >&6; }
if test -n "$am_sleep_pid"; then

View file

@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@ -31,7 +31,7 @@ XC_OVR_ZZ60
CURL_OVERRIDE_AUTOCONF
dnl configure script copyright
AC_COPYRIGHT([Copyright (c) 1998 - 2016 Daniel Stenberg, <daniel@haxx.se>
AC_COPYRIGHT([Copyright (c) 1998 - 2017 Daniel Stenberg, <daniel@haxx.se>
This configure script may be copied, distributed and modified under the
terms of the curl license; see COPYING for more details])
@ -51,6 +51,7 @@ CURL_CHECK_OPTION_ARES
CURL_CHECK_OPTION_RT
XC_CHECK_PATH_SEPARATOR
AX_CODE_COVERAGE
#
# save the configure arguments
@ -126,7 +127,7 @@ if test -f ${srcdir}/include/curl/curlbuild.h; then
fi
dnl figure out the libcurl version
CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h`
CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)".*/\1/p' ${srcdir}/include/curl/curlver.h`
XC_CHECK_PROG_CC
XC_AUTOMAKE
AC_MSG_CHECKING([curl version])
@ -136,7 +137,7 @@ 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`
VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\([0-9A-Fa-f]*\).*/\1/p' ${srcdir}/include/curl/curlver.h`
AC_SUBST(VERSIONNUM)
dnl Solaris pkgadd support definitions
@ -893,17 +894,16 @@ else
OPT_ZLIB=""
fi
CURL_CHECK_PKGCONFIG(zlib)
if test "$PKGCONFIG" != "no" ; then
LIBS="`$PKGCONFIG --libs-only-l zlib` $LIBS"
LDFLAGS="`$PKGCONFIG --libs-only-L zlib` $LDFLAGS"
CPPFLAGS="`$PKGCONFIG --cflags-only-I zlib` $CPPFLAGS"
OPT_ZLIB=""
HAVE_LIBZ="1"
fi
if test -z "$OPT_ZLIB" ; then
CURL_CHECK_PKGCONFIG(zlib)
if test "$PKGCONFIG" != "no" ; then
LIBS="`$PKGCONFIG --libs-only-l zlib` $LIBS"
LDFLAGS="$LDFLAGS `$PKGCONFIG --libs-only-L zlib`"
CPPFLAGS="$CPPFLAGS `$PKGCONFIG --cflags-only-I zlib`"
OPT_ZLIB=""
HAVE_LIBZ="1"
fi
if test -z "$HAVE_LIBZ"; then
@ -1518,52 +1518,50 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
AC_CHECK_LIB(crypto, HMAC_Init_ex,[
HAVECRYPTO="yes"
LIBS="-lcrypto $LIBS"], [
LDFLAGS="$CLEANLDFLAGS"
CPPFLAGS="$CLEANCPPFLAGS"
LIBS="$CLEANLIBS"
dnl still no, but what about with -ldl?
AC_MSG_CHECKING([OpenSSL linking with -ldl])
LIBS="-ldl $LIBS"
AC_TRY_LINK(
[
#include <openssl/err.h>
],
[
ERR_clear_error();
],
[
AC_MSG_RESULT(yes)
HAVECRYPTO="yes"
],
[
AC_MSG_RESULT(no)
dnl ok, so what about bouth -ldl and -lpthread?
AC_MSG_CHECKING([OpenSSL linking with -ldl and -lpthread])
LIBS="-lpthread $LIBS"
AC_TRY_LINK(
[
#include <openssl/err.h>
],
[
ERR_clear_error();
],
[
AC_MSG_RESULT(yes)
HAVECRYPTO="yes"
],
[
AC_MSG_RESULT(no)
LDFLAGS="$CLEANLDFLAGS"
CPPFLAGS="$CLEANCPPFLAGS"
LIBS="$CLEANLIBS"
])
])
])
if test X"$HAVECRYPTO" = X"yes"; then
AC_MSG_CHECKING([OpenSSL linking without -ldl])
saved_libs=$LIBS
AC_TRY_LINK(
[
#include <openssl/evp.h>
],
[
SSLeay_add_all_algorithms();
],
[
AC_MSG_RESULT(yes)
LIBS="$saved_libs"
],
[
AC_MSG_RESULT(no)
AC_MSG_CHECKING([OpenSSL linking with -ldl])
LIBS="-ldl $LIBS"
AC_TRY_LINK(
[
#include <openssl/evp.h>
],
[
SSLeay_add_all_algorithms();
],
[
AC_MSG_RESULT(yes)
LIBS="$saved_libs -ldl"
],
[
AC_MSG_RESULT(no)
LIBS="$saved_libs"
]
)
]
)
fi
])
])
if test X"$HAVECRYPTO" = X"yes"; then
dnl This is only reasonable to do if crypto actually is there: check for
@ -2496,8 +2494,8 @@ if test X"$OPT_LIBMETALINK" != Xno; then
clean_CPPFLAGS="$CPPFLAGS"
clean_LDFLAGS="$LDFLAGS"
clean_LIBS="$LIBS"
CPPFLAGS="$addcflags $clean_CPPFLAGS"
LDFLAGS="$addld $clean_LDFLAGS"
CPPFLAGS="$clean_CPPFLAGS $addcflags"
LDFLAGS="$clean_LDFLAGS $addld"
LIBS="$addlib $clean_LIBS"
AC_MSG_CHECKING([if libmetalink is recent enough])
AC_LINK_IFELSE([
@ -2581,7 +2579,7 @@ if test X"$OPT_LIBSSH2" != Xno; then
DIR_SSH2=${PREFIX_SSH2}/lib$libsuff
fi
LDFLAGS="$LD_SSH2 $LDFLAGS"
LDFLAGS="$LDFLAGS $LD_SSH2"
CPPFLAGS="$CPPFLAGS $CPP_SSH2"
LIBS="$LIB_SSH2 $LIBS"
@ -2660,6 +2658,7 @@ if test X"$OPT_LIBRTMP" != Xno; then
;;
*)
dnl use the given --with-librtmp spot
LIB_RTMP="-lrtmp"
PREFIX_RTMP=$OPT_LIBRTMP
;;
esac
@ -2796,8 +2795,8 @@ if test "$want_winidn" = "yes"; then
WINIDN_DIR="$want_winidn_path/lib$libsuff"
fi
#
CPPFLAGS="$WINIDN_CPPFLAGS $CPPFLAGS"
LDFLAGS="$WINIDN_LDFLAGS $LDFLAGS"
CPPFLAGS="$CPPFLAGS $WINIDN_CPPFLAGS"
LDFLAGS="$LDFLAGS $WINIDN_LDFLAGS"
LIBS="$WINIDN_LIBS $LIBS"
#
AC_MSG_CHECKING([if IdnToUnicode can be linked])
@ -2912,8 +2911,8 @@ if test "$want_idn" = "yes"; then
AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"])
fi
#
CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
CPPFLAGS="$CPPFLAGS $IDN_CPPFLAGS"
LDFLAGS="$LDFLAGS $IDN_LDFLAGS"
LIBS="$IDN_LIBS $LIBS"
#
AC_MSG_CHECKING([if idn2_lookup_ul can be linked])
@ -3297,7 +3296,8 @@ AC_CHECK_FUNCS([fork \
setmode \
setrlimit \
uname \
utime
utime \
utimes
],[
],[
func="$ac_func"
@ -3427,8 +3427,28 @@ AC_HELP_STRING([--disable-pthreads],[Disable POSIX threads]),
want_pthreads=auto
]
)
if test "$want_thres" = "yes" && test "$dontwant_rt" = "no" && \
test "$want_pthreads" != "no"; then
dnl turn off pthreads if rt is disabled
if test "$want_pthreads" != "no"; then
if test "$want_pthreads" = "yes" && test "$dontwant_rt" = "yes"; then
AC_MSG_ERROR([options --enable-pthreads and --disable-rt are mutually exclusive])
fi
if test "$dontwant_rt" != "no"; then
dnl if --enable-pthreads was explicit then warn it's being ignored
if test "$want_pthreads" = "yes"; then
AC_MSG_WARN([--enable-pthreads Ignored since librt is disabled.])
fi
want_pthreads=no
fi
fi
dnl turn off pthreads if no threaded resolver
if test "$want_pthreads" != "no" && test "$want_thres" != "yes"; then
want_pthreads=no
fi
dnl detect pthreads
if test "$want_pthreads" != "no"; then
AC_CHECK_HEADER(pthread.h,
[ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
save_CFLAGS="$CFLAGS"
@ -3452,23 +3472,22 @@ if test "$want_thres" = "yes" && test "$dontwant_rt" = "no" && \
fi
])
fi
if test "x$USE_THREADS_POSIX" != "x1"; then
dnl threaded resolver check
if test "$want_thres" = "yes" && test "x$USE_THREADS_POSIX" != "x1"; then
if test "$want_pthreads" = "yes"; then
AC_MSG_ERROR([--enable-pthreads but pthreads was not found])
fi
if test "$want_thres" = "yes"; then
dnl If native Windows fallback on Win32 threads since no POSIX threads
if test "$curl_cv_native_windows" = "yes"; then
USE_THREADS_WIN32=1
AC_DEFINE(USE_THREADS_WIN32, 1, [if you want Win32 threaded DNS lookup])
curl_res_msg="Win32 threaded"
else
AC_MSG_ERROR([Threaded resolver enabled but no thread library found])
fi
dnl If native Windows fallback on Win32 threads since no POSIX threads
if test "$curl_cv_native_windows" = "yes"; then
USE_THREADS_WIN32=1
AC_DEFINE(USE_THREADS_WIN32, 1, [if you want Win32 threaded DNS lookup])
curl_res_msg="Win32 threaded"
else
AC_MSG_ERROR([Threaded resolver enabled but no thread library found])
fi
fi
dnl ************************************************************
dnl disable verbose text strings
dnl

View file

@ -14,7 +14,9 @@ libcurl bindings
[Basic](http://scriptbasic.com/) ScriptBasic bindings written by Peter Verhas
[C++](http://curlpp.org/) Written by Jean-Philippe Barrette-LaPierre
C++: [curlpp](http://curlpp.org/) Written by Jean-Philippe Barrette-LaPierre,
[curlcpp](https://github.com/JosephP91/curlcpp) by Giuseppe Persico and [C++
Requests](https://github.com/whoshuu/cpr) by Huu Nguyen
[Ch](https://chcurl.sourceforge.io/) Written by Stephen Nestinger and Jonathan Rogado
@ -23,6 +25,8 @@ Cocoa: [BBHTTP](https://github.com/brunodecarvalho/BBHTTP) written by Bruno de C
[D](https://dlang.org/library/std/net/curl.html) Written by Kenneth Bogert
[Delphi](https://github.com/Mercury13/curl4delphi) Written by Mikhail Merkuryev
[Dylan](https://dylanlibs.sourceforge.io/) Written by Chris Double
[Eiffel](https://room.eiffel.com/library/curl) Written by Eiffel Software
@ -37,6 +41,8 @@ Cocoa: [BBHTTP](https://github.com/brunodecarvalho/BBHTTP) written by Bruno de C
[glib/GTK+](http://atterer.net/glibcurl/) Written by Richard Atterer
Go: [go-curl](https://github.com/andelf/go-curl) by ShuYu Wang
[Guile](http://www.lonelycactus.com/guile-curl.html) Written by Michael L. Gran
[Harbour](https://github.com/vszakats/harbour-core/tree/master/contrib/hbcurl) Written by Viktor Szakáts
@ -49,7 +55,7 @@ Cocoa: [BBHTTP](https://github.com/brunodecarvalho/BBHTTP) written by Bruno de C
[Lisp](https://common-lisp.net/project/cl-curl/) Written by Liam Healy
Lua: [luacurl](http://luacurl.luaforge.net/) by Alexander Marinov, [Lua-cURL](http://luaforge.net/projects/lua-curl/) by Jürgen Hötzel
Lua: [luacurl](http://luacurl.luaforge.net/) by Alexander Marinov, [Lua-cURL](https://github.com/Lua-cURL) by Jürgen Hötzel
[Mono](https://forge.novell.com/modules/xfmod/project/?libcurl-mono) Written by Jeffrey Phillips
@ -59,11 +65,13 @@ Lua: [luacurl](http://luacurl.luaforge.net/) by Alexander Marinov, [Lua-cURL](ht
[Object-Pascal](http://www.tekool.com/opcurl) Free Pascal, Delphi and Kylix binding written by Christophe Espern.
[O'Caml](https://sourceforge.net/projects/ocurl/) Written by Lars Nilsson
[OCaml](http://opam.ocaml.org/packages/ocurl/) Written by Lars Nilsson and ygrek
[Pascal](http://houston.quik.com/jkp/curlpas/) Free Pascal, Delphi and Kylix binding written by Jeffrey Pohlmeyer.
[Perl](https://github.com/szbalint/WWW--Curl) Maintained by Cris Bailiff and Bálint Szilakszi
Perl: [WWW--Curl](https://github.com/szbalint/WWW--Curl) Maintained by Cris
Bailiff and Bálint Szilakszi,
[perl6-net-curl](https://github.com/azawawi/perl6-net-curl) by Ahmad M. Zawawi
[PHP](https://php.net/curl) Originally written by Sterling Hughes
@ -75,6 +83,8 @@ Lua: [luacurl](http://luacurl.luaforge.net/) by Alexander Marinov, [Lua-cURL](ht
[Rexx](https://rexxcurl.sourceforge.io/) Written Mark Hessling
[Ring](http://ring-lang.sourceforge.net/doc1.3/libcurl.html) RingLibCurl by Mahmoud Fayed
RPG, support for ILE/RPG on OS/400 is included in source distribution
Ruby: [curb](http://curb.rubyforge.org/) written by Ross Bamford, [ruby-curl-multi](http://curl-multi.rubyforge.org/) written by Kristjan Petursson and Keith Rarick
@ -83,11 +93,13 @@ Ruby: [curb](http://curb.rubyforge.org/) written by Ross Bamford, [ruby-curl-mul
[Scheme](https://www.metapaper.net/lisovsky/web/curl/) Bigloo binding by Kirill Lisovsky
[Scilab](https://help.scilab.org/docs/current/fr_FR/getURL.html) binding by Sylvestre Ledru
[S-Lang](http://www.jedsoft.org/slang/modules/curl.html) by John E Davis
[Smalltalk](http://www.squeaksource.com/CurlPlugin/) Written by Danil Osipchuk
[SP-Forth](http://www.forth.org.ru/~ac/lib/lin/curl/) Written by ygrek
[SP-Forth](http://spf.cvs.sourceforge.net/viewvc/spf/devel/~ac/lib/lin/curl/) Written by Andrey Cherezov
[SPL](http://www.clifford.at/spl/) Written by Clifford Wolf

View file

@ -14,6 +14,7 @@ BUGS
1.5 Who will fix the problems
1.6 How to get a stack trace
1.7 Bugs in libcurl bindings
1.8 Bugs in old versions
2. Bug fixing procedure
2.1 What happens on first filing
@ -153,6 +154,38 @@ BUGS
please convert your program over to plain C and follow the steps outlined
above.
1.8 Bugs in old versions
The curl project typically releases new versions every other month, and we
fix several hundred bugs per year. For a huge table of releases, number of
bug fixes and more, see: https://curl.haxx.se/docs/releases.html
The developers in the curl project do not have bandwidth or energy enough to
maintain several branches or to spend much time on hunting down problems in
old versions when chances are we already fixed them or at least that they've
changed nature and appearance in later versions.
When you experience a problem and want to report it, you really SHOULD
include the version number of the curl you're using when you experience the
issue. If that version number shows us that you're using an out-of-date
curl, you should also try out a modern curl version to see if the problem
persists or how/if it has changed in apperance.
Even if you cannot immediately upgrade your application/system to run the
latest curl version, you can most often at least run a test version or
experimental build or similar, to get this confirmed or not.
At times people insist that they cannot upgrade to a modern curl version,
but instead they "just want the bug fixed". That's fine, just don't count on
us spending many cycles on trying to identify which single commit, if that's
even possible, that at some point in the past fixed the problem you're now
experiencing.
Security wise, it is almost always a bad idea to lag behind the current curl
versions by a lot. We keeping discovering and reporting security problems
over time see you can see in this table:
https://curl.haxx.se/docs/vulnerabilities.html
2. Bug fixing procedure
2.1 What happens on first filing
@ -210,7 +243,7 @@ BUGS
This is a list of known bugs. Bugs we know exist and that have been pointed
out but that haven't yet been fixed. The reasons for why they haven't been
fixed can involve anything really, but the primary reason is that nobody has
considered these problems to be important enough to spend the necesary time
considered these problems to be important enough to spend the necessary time
and effort to have them fixed.
The KNOWN_BUGS are always up for grabs and we will always love the ones who
@ -238,7 +271,7 @@ BUGS
2.8 Closing off stalled bugs
The issue and pull request trackers on https://github.com/curl/curl will
only hold "active" entries (using a non-precise defintion of what active
only hold "active" entries (using a non-precise definition of what active
actually is, but they're at least not completely dead). Those that are
abandonded or in other ways dormant will be closed and sometimes added to
TODO and KNOWN_BUGS instead.

426
curl/docs/CIPHERS.md Normal file
View file

@ -0,0 +1,426 @@
# Ciphers
With curl's options `CURLOPT_SSL_CIPHER_LIST` and `--ciphers` users can
control which ciphers to consider when negotiating TLS connections.
The names of the known ciphers differ depending on which TLS backend that
libcurl was built to use. This is an attempt to list known cipher names.
## OpenSSL
(based on [OpenSSL docs](https://www.openssl.org/docs/man1.1.0/apps/ciphers.html))
### SSL3 cipher suites
`NULL-MD5`
`NULL-SHA`
`RC4-MD5`
`RC4-SHA`
`IDEA-CBC-SHA`
`DES-CBC3-SHA`
`DH-DSS-DES-CBC3-SHA`
`DH-RSA-DES-CBC3-SHA`
`DHE-DSS-DES-CBC3-SHA`
`DHE-RSA-DES-CBC3-SHA`
`ADH-RC4-MD5`
`ADH-DES-CBC3-SHA`
### TLS v1.0 cipher suites
`NULL-MD5`
`NULL-SHA`
`RC4-MD5`
`RC4-SHA`
`IDEA-CBC-SHA`
`DES-CBC3-SHA`
`DHE-DSS-DES-CBC3-SHA`
`DHE-RSA-DES-CBC3-SHA`
`ADH-RC4-MD5`
`ADH-DES-CBC3-SHA`
### AES ciphersuites from RFC3268, extending TLS v1.0
`AES128-SHA`
`AES256-SHA`
`DH-DSS-AES128-SHA`
`DH-DSS-AES256-SHA`
`DH-RSA-AES128-SHA`
`DH-RSA-AES256-SHA`
`DHE-DSS-AES128-SHA`
`DHE-DSS-AES256-SHA`
`DHE-RSA-AES128-SHA`
`DHE-RSA-AES256-SHA`
`ADH-AES128-SHA`
`ADH-AES256-SHA`
### SEED ciphersuites from RFC4162, extending TLS v1.0
`SEED-SHA`
`DH-DSS-SEED-SHA`
`DH-RSA-SEED-SHA`
`DHE-DSS-SEED-SHA`
`DHE-RSA-SEED-SHA`
`ADH-SEED-SHA`
### GOST ciphersuites, extending TLS v1.0
`GOST94-GOST89-GOST89`
`GOST2001-GOST89-GOST89`
`GOST94-NULL-GOST94`
`GOST2001-NULL-GOST94`
### Elliptic curve cipher suites
`ECDHE-RSA-NULL-SHA`
`ECDHE-RSA-RC4-SHA`
`ECDHE-RSA-DES-CBC3-SHA`
`ECDHE-RSA-AES128-SHA`
`ECDHE-RSA-AES256-SHA`
`ECDHE-ECDSA-NULL-SHA`
`ECDHE-ECDSA-RC4-SHA`
`ECDHE-ECDSA-DES-CBC3-SHA`
`ECDHE-ECDSA-AES128-SHA`
`ECDHE-ECDSA-AES256-SHA`
`AECDH-NULL-SHA`
`AECDH-RC4-SHA`
`AECDH-DES-CBC3-SHA`
`AECDH-AES128-SHA`
`AECDH-AES256-SHA`
### TLS v1.2 cipher suites
`NULL-SHA256`
`AES128-SHA256`
`AES256-SHA256`
`AES128-GCM-SHA256`
`AES256-GCM-SHA384`
`DH-RSA-AES128-SHA256`
`DH-RSA-AES256-SHA256`
`DH-RSA-AES128-GCM-SHA256`
`DH-RSA-AES256-GCM-SHA384`
`DH-DSS-AES128-SHA256`
`DH-DSS-AES256-SHA256`
`DH-DSS-AES128-GCM-SHA256`
`DH-DSS-AES256-GCM-SHA384`
`DHE-RSA-AES128-SHA256`
`DHE-RSA-AES256-SHA256`
`DHE-RSA-AES128-GCM-SHA256`
`DHE-RSA-AES256-GCM-SHA384`
`DHE-DSS-AES128-SHA256`
`DHE-DSS-AES256-SHA256`
`DHE-DSS-AES128-GCM-SHA256`
`DHE-DSS-AES256-GCM-SHA384`
`ECDHE-RSA-AES128-SHA256`
`ECDHE-RSA-AES256-SHA384`
`ECDHE-RSA-AES128-GCM-SHA256`
`ECDHE-RSA-AES256-GCM-SHA384`
`ECDHE-ECDSA-AES128-SHA256`
`ECDHE-ECDSA-AES256-SHA384`
`ECDHE-ECDSA-AES128-GCM-SHA256`
`ECDHE-ECDSA-AES256-GCM-SHA384`
`ADH-AES128-SHA256`
`ADH-AES256-SHA256`
`ADH-AES128-GCM-SHA256`
`ADH-AES256-GCM-SHA384`
`AES128-CCM`
`AES256-CCM`
`DHE-RSA-AES128-CCM`
`DHE-RSA-AES256-CCM`
`AES128-CCM8`
`AES256-CCM8`
`DHE-RSA-AES128-CCM8`
`DHE-RSA-AES256-CCM8`
`ECDHE-ECDSA-AES128-CCM`
`ECDHE-ECDSA-AES256-CCM`
`ECDHE-ECDSA-AES128-CCM8`
`ECDHE-ECDSA-AES256-CCM8`
### Camellia HMAC-Based ciphersuites from RFC6367, extending TLS v1.2
`ECDHE-ECDSA-CAMELLIA128-SHA256`
`ECDHE-ECDSA-CAMELLIA256-SHA384`
`ECDHE-RSA-CAMELLIA128-SHA256`
`ECDHE-RSA-CAMELLIA256-SHA384`
## NSS
### Totally insecure
`rc4`
`rc4-md5`
`rc4export`
`rc2`
`rc2export`
`des`
`desede3`
### SSL3/TLS cipher suites
`rsa_rc4_128_md5`
`rsa_rc4_128_sha`
`rsa_3des_sha`
`rsa_des_sha`
`rsa_rc4_40_md5`
`rsa_rc2_40_md5`
`rsa_null_md5`
`rsa_null_sha`
`fips_3des_sha`
`fips_des_sha`
`fortezza`
`fortezza_rc4_128_sha`
`fortezza_null`
### TLS 1.0 Exportable 56-bit Cipher Suites
`rsa_des_56_sha`
`rsa_rc4_56_sha`
### AES ciphers
`dhe_dss_aes_128_cbc_sha`
`dhe_dss_aes_256_cbc_sha`
`dhe_rsa_aes_128_cbc_sha`
`dhe_rsa_aes_256_cbc_sha`
`rsa_aes_128_sha`
`rsa_aes_256_sha`
### ECC ciphers
`ecdh_ecdsa_null_sha`
`ecdh_ecdsa_rc4_128_sha`
`ecdh_ecdsa_3des_sha`
`ecdh_ecdsa_aes_128_sha`
`ecdh_ecdsa_aes_256_sha`
`ecdhe_ecdsa_null_sha`
`ecdhe_ecdsa_rc4_128_sha`
`ecdhe_ecdsa_3des_sha`
`ecdhe_ecdsa_aes_128_sha`
`ecdhe_ecdsa_aes_256_sha`
`ecdh_rsa_null_sha`
`ecdh_rsa_128_sha`
`ecdh_rsa_3des_sha`
`ecdh_rsa_aes_128_sha`
`ecdh_rsa_aes_256_sha`
`ecdhe_rsa_null`
`ecdhe_rsa_rc4_128_sha`
`ecdhe_rsa_3des_sha`
`ecdhe_rsa_aes_128_sha`
`ecdhe_rsa_aes_256_sha`
`ecdh_anon_null_sha`
`ecdh_anon_rc4_128sha`
`ecdh_anon_3des_sha`
`ecdh_anon_aes_128_sha`
`ecdh_anon_aes_256_sha`
### HMAC-SHA256 cipher suites
`rsa_null_sha_256`
`rsa_aes_128_cbc_sha_256`
`rsa_aes_256_cbc_sha_256`
`dhe_rsa_aes_128_cbc_sha_256`
`dhe_rsa_aes_256_cbc_sha_256`
`ecdhe_ecdsa_aes_128_cbc_sha_256`
`ecdhe_rsa_aes_128_cbc_sha_256`
### AES GCM cipher suites in RFC 5288 and RFC 5289
`rsa_aes_128_gcm_sha_256`
`dhe_rsa_aes_128_gcm_sha_256`
`dhe_dss_aes_128_gcm_sha_256`
`ecdhe_ecdsa_aes_128_gcm_sha_256`
`ecdh_ecdsa_aes_128_gcm_sha_256`
`ecdhe_rsa_aes_128_gcm_sha_256`
`ecdh_rsa_aes_128_gcm_sha_256`
### cipher suites using SHA384
`rsa_aes_256_gcm_sha_384`
`dhe_rsa_aes_256_gcm_sha_384`
`dhe_dss_aes_256_gcm_sha_384`
`ecdhe_ecdsa_aes_256_sha_384`
`ecdhe_rsa_aes_256_sha_384`
`ecdhe_ecdsa_aes_256_gcm_sha_384`
`ecdhe_rsa_aes_256_gcm_sha_384`
### chacha20-poly1305 cipher suites
`ecdhe_rsa_chacha20_poly1305_sha_256`
`ecdhe_ecdsa_chacha20_poly1305_sha_256`
`dhe_rsa_chacha20_poly1305_sha_256`
## GSKit
Ciphers are internally defined as numeric codes (http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/apis/gsk_attribute_set_buffer.htm),
but libcurl maps them to the following case-insensitive names.
### SSL2 cipher suites (insecure: disabled by default)
`rc2-md5`
`rc4-md5`
`exp-rc2-md5`
`exp-rc4-md5`
`des-cbc-md5`
`des-cbc3-md5`
### SSL3 cipher suites
`null-md5`
`null-sha`
`rc4-md5`
`rc4-sha`
`exp-rc2-cbc-md5`
`exp-rc4-md5`
`exp-des-cbc-sha`
`des-cbc3-sha`
### TLS v1.0 cipher suites
`null-md5`
`null-sha`
`rc4-md5`
`rc4-sha`
`exp-rc2-cbc-md5`
`exp-rc4-md5`
`exp-des-cbc-sha`
`des-cbc3-sha`
`aes128-sha`
`aes256-sha`
### TLS v1.1 cipher suites
`null-md5`
`null-sha`
`rc4-md5`
`rc4-sha`
`exp-des-cbc-sha`
`des-cbc3-sha`
`aes128-sha`
`aes256-sha`
### TLS v1.2 cipher suites
`null-md5`
`null-sha`
`null-sha256`
`rc4-md5`
`rc4-sha`
`des-cbc3-sha`
`aes128-sha`
`aes256-sha`
`aes128-sha256`
`aes256-sha256`
`aes128-gcm-sha256`
`aes256-gcm-sha384`
## WolfSSL
`RC4-SHA`,
`RC4-MD5`,
`DES-CBC3-SHA`,
`AES128-SHA`,
`AES256-SHA`,
`NULL-SHA`,
`NULL-SHA256`,
`DHE-RSA-AES128-SHA`,
`DHE-RSA-AES256-SHA`,
`DHE-PSK-AES256-GCM-SHA384`,
`DHE-PSK-AES128-GCM-SHA256`,
`PSK-AES256-GCM-SHA384`,
`PSK-AES128-GCM-SHA256`,
`DHE-PSK-AES256-CBC-SHA384`,
`DHE-PSK-AES128-CBC-SHA256`,
`PSK-AES256-CBC-SHA384`,
`PSK-AES128-CBC-SHA256`,
`PSK-AES128-CBC-SHA`,
`PSK-AES256-CBC-SHA`,
`DHE-PSK-AES128-CCM`,
`DHE-PSK-AES256-CCM`,
`PSK-AES128-CCM`,
`PSK-AES256-CCM`,
`PSK-AES128-CCM-8`,
`PSK-AES256-CCM-8`,
`DHE-PSK-NULL-SHA384`,
`DHE-PSK-NULL-SHA256`,
`PSK-NULL-SHA384`,
`PSK-NULL-SHA256`,
`PSK-NULL-SHA`,
`HC128-MD5`,
`HC128-SHA`,
`HC128-B2B256`,
`AES128-B2B256`,
`AES256-B2B256`,
`RABBIT-SHA`,
`NTRU-RC4-SHA`,
`NTRU-DES-CBC3-SHA`,
`NTRU-AES128-SHA`,
`NTRU-AES256-SHA`,
`AES128-CCM-8`,
`AES256-CCM-8`,
`ECDHE-ECDSA-AES128-CCM`,
`ECDHE-ECDSA-AES128-CCM-8`,
`ECDHE-ECDSA-AES256-CCM-8`,
`ECDHE-RSA-AES128-SHA`,
`ECDHE-RSA-AES256-SHA`,
`ECDHE-ECDSA-AES128-SHA`,
`ECDHE-ECDSA-AES256-SHA`,
`ECDHE-RSA-RC4-SHA`,
`ECDHE-RSA-DES-CBC3-SHA`,
`ECDHE-ECDSA-RC4-SHA`,
`ECDHE-ECDSA-DES-CBC3-SHA`,
`AES128-SHA256`,
`AES256-SHA256`,
`DHE-RSA-AES128-SHA256`,
`DHE-RSA-AES256-SHA256`,
`ECDH-RSA-AES128-SHA`,
`ECDH-RSA-AES256-SHA`,
`ECDH-ECDSA-AES128-SHA`,
`ECDH-ECDSA-AES256-SHA`,
`ECDH-RSA-RC4-SHA`,
`ECDH-RSA-DES-CBC3-SHA`,
`ECDH-ECDSA-RC4-SHA`,
`ECDH-ECDSA-DES-CBC3-SHA`,
`AES128-GCM-SHA256`,
`AES256-GCM-SHA384`,
`DHE-RSA-AES128-GCM-SHA256`,
`DHE-RSA-AES256-GCM-SHA384`,
`ECDHE-RSA-AES128-GCM-SHA256`,
`ECDHE-RSA-AES256-GCM-SHA384`,
`ECDHE-ECDSA-AES128-GCM-SHA256`,
`ECDHE-ECDSA-AES256-GCM-SHA384`,
`ECDH-RSA-AES128-GCM-SHA256`,
`ECDH-RSA-AES256-GCM-SHA384`,
`ECDH-ECDSA-AES128-GCM-SHA256`,
`ECDH-ECDSA-AES256-GCM-SHA384`,
`CAMELLIA128-SHA`,
`DHE-RSA-CAMELLIA128-SHA`,
`CAMELLIA256-SHA`,
`DHE-RSA-CAMELLIA256-SHA`,
`CAMELLIA128-SHA256`,
`DHE-RSA-CAMELLIA128-SHA256`,
`CAMELLIA256-SHA256`,
`DHE-RSA-CAMELLIA256-SHA256`,
`ECDHE-RSA-AES128-SHA256`,
`ECDHE-ECDSA-AES128-SHA256`,
`ECDH-RSA-AES128-SHA256`,
`ECDH-ECDSA-AES128-SHA256`,
`ECDHE-RSA-AES256-SHA384`,
`ECDHE-ECDSA-AES256-SHA384`,
`ECDH-RSA-AES256-SHA384`,
`ECDH-ECDSA-AES256-SHA384`,
`ECDHE-RSA-CHACHA20-POLY1305`,
`ECDHE-ECDSA-CHACHA20-POLY1305`,
`DHE-RSA-CHACHA20-POLY1305`,
`ECDHE-RSA-CHACHA20-POLY1305-OLD`,
`ECDHE-ECDSA-CHACHA20-POLY1305-OLD`,
`DHE-RSA-CHACHA20-POLY1305-OLD`,
`ADH-AES128-SHA`,
`QSH`,
`RENEGOTIATION-INFO`,
`IDEA-CBC-SHA`,
`ECDHE-ECDSA-NULL-SHA`,
`ECDHE-PSK-NULL-SHA256`,
`ECDHE-PSK-AES128-CBC-SHA256`,
`PSK-CHACHA20-POLY1305`,
`ECDHE-PSK-CHACHA20-POLY1305`,
`DHE-PSK-CHACHA20-POLY1305`,
`EDH-RSA-DES-CBC3-SHA`,

3
curl/docs/CMakeLists.txt Normal file
View file

@ -0,0 +1,3 @@
#add_subdirectory(examples)
add_subdirectory(libcurl)
add_subdirectory(cmdline-opts)

View file

@ -103,7 +103,7 @@ release archive is quite OK as well!
### Documentation
Writing docs is dead boring and one of the big problems with many open source
projects. But someone's gotta do it! It makes things a lot easier if you
projects. But someone's gotta do it! It makes things 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.
@ -134,7 +134,7 @@ patch to [the curl-library mailing
list](https://curl.haxx.se/mail/list.cgi?list=curl-library).
Either way, your change will be reviewed and discussed there and you will be
expected to correct flaws pointed out and update accordingly, or the change
expected to correct flaws pointed out and update accordingly, or the change
risks stalling and eventually just getting deleted without action. As a
submitter of a change, you are the owner of that change until it has been merged.
@ -149,9 +149,27 @@ With github it is easy to send a [pull
request](https://github.com/curl/curl/pulls) to the curl project to have
changes merged.
We prefer pull requests to mailed patches, as it makes it a proper git commit
that is easy to merge and they are easy to track and not that easy to loose
in the flood of many emails, like they sometimes do on the mailing lists.
We strongly prefer pull requests to mailed patches, as it makes it a proper
git commit that is easy to merge and they are easy to track and not that easy
to loose in the flood of many emails, like they sometimes do on the mailing
lists.
Every pull request submitted will automatically be tested in several different
ways. Every pull request is verfied that:
- ... the code still builds, warning-free, on Linux and macOS, with both
clang and gcc
- ... the code still builds fine on Windows with several MSVC versions
- ... the code still builds with cmake on Linux, with gcc and clang
- ... the code follows rudimentary code style rules
- ... the test suite still runs 100% fine
- ... the release tarball (the "dist") still works
- ... the code coverage doesn't shrink drastically
If the pull-request fails one of these tests, it will show up as a red X and
you are expected to fix the problem. If you don't understand whan the issue is
or have other problems to fix the complaint, just ask and other project
members will likely be able to help out.
When you adjust your pull requests after review, consider squashing the
commits so that we can review the full updated version more easily.
@ -161,8 +179,8 @@ commits so that we can review the full updated version more easily.
Make the patch against as recent source versions as possible.
If you've followed the tips in this document and your patch still hasn't been
incorporated or responded to after some weeks, consider resubmitting it to
the list or better yet: change it to a pull request.
incorporated or responded to after some weeks, consider resubmitting it to the
list or better yet: change it to a pull request.
### Write good commit messages
@ -175,14 +193,15 @@ A short guide to how to write commit messages in the curl project.
possible as to why this change is made, and possibly what things
it fixes and everything else that is related]
-- empty line --
[Closes/Fixes #1234 - if this closes or fixes a github issue]
[Bug: URL to source of the report or more related discussion]
[Reported-by: John Doe - credit the reporter]
[whatever-else-by: credit all helpers, finders, doers]
---- 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
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
### Write Access to git Repository

View file

@ -118,6 +118,7 @@ FAQ
7.1 What is PHP/CURL?
7.2 Who wrote PHP/CURL?
7.3 Can I perform multiple requests using the same handle?
7.4 Does PHP/CURL have dependencies?
==============================================================================
@ -324,7 +325,7 @@ FAQ
1.11 Why don't you update ca-bundle.crt
The ca cert bundle that used to be shipped with curl was very outdated and
The ca cert bundle that used to be shipped with curl was very outdated and
must be replaced with an up-to-date version by anyone who wants to verify
peers. It is no longer provided by curl. The last curl release that ever
shipped a ca cert bundle was curl 7.18.0.
@ -520,13 +521,13 @@ FAQ
3.3 Why doesn't my posting using -F work?
You can't arbitrarily use -F or -d, the choice between -F or -d depends on the
HTTP operation you need curl to do and what the web server that will receive
your post expects.
You can't arbitrarily use -F or -d, the choice between -F or -d depends on the
HTTP operation you need curl to do and what the web server that will receive
your post expects.
If the form you're trying to submit uses the type '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
If the form you're trying to submit uses the type '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
@ -602,7 +603,7 @@ FAQ
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,
Object-Pascal, OCaml, 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!
@ -699,8 +700,8 @@ FAQ
CLIENT CERTIFICATE
The server you communicate with may require that you can provide this in
order to prove that you actually are who you claim to be. If the server
The server you communicate with 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
@ -1176,7 +1177,7 @@ FAQ
The reason for this is that we first generate the request to send using the
old 1.1 style and show that request in the verbose output, and then we
convert it over to the binary header-compressed HTTP/2 style. The actual
"1.1" part from that request is then not actually used in the transfer.
"1.1" part from that request is then not actually used in the transfer.
The binary HTTP/2 headers are not human readable.
5. libcurl Issues
@ -1259,9 +1260,9 @@ FAQ
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
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!
@ -1321,7 +1322,7 @@ FAQ
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 of four different host name resolve
- The non-IPv6 resolver that can use one of four different host name resolve
calls (depending on what your system supports):
A - gethostbyname()

View file

@ -185,7 +185,7 @@ FOOTNOTES
*1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS, PolarSSL, WinSSL (native
Windows), Secure Transport (native iOS/OS X) or GSKit (native IBM i)
*2 = requires OpenLDAP
*2 = requires OpenLDAP or WinLDAP
*3 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) or
SSPI (native Windows)
*4 = requires a GSS-API implementation, however, only Windows SSPI is

102
curl/docs/INSTALL.cmake Normal file
View file

@ -0,0 +1,102 @@
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
How To Compile with CMake
Building with CMake
==========================
This document describes how to compile, build and install curl and libcurl
from source code using the CMake build tool. To build with CMake, you will
of course have to first install CMake. The minimum required version of
CMake is specified in the file CMakeLists.txt found in the top of the curl
source tree. Once the correct version of CMake is installed you can follow
the instructions below for the platform you are building on.
CMake builds can be configured either from the command line, or from one
of CMake's GUI's.
Current flaws in the curl CMake build
=====================================
Missing features in the cmake build:
- Builds libcurl without large file support
- Does not support all SSL libraries (only OpenSSL, WinSSL, DarwinSSL, and
mbed TLS)
- Doesn't build with SCP and SFTP support (libssh2) (see issue #1155)
- Doesn't allow different resolver backends (no c-ares build support)
- No RTMP support built
- Doesn't allow build curl and libcurl debug enabled
- Doesn't allow a custom CA bundle path
- Doesn't allow you to disable specific protocols from the build
- Doesn't find or use krb4 or GSS
- Rebuilds test files too eagerly, but still can't run the tests
- Does't detect the correct strerror_r flavor when cross-compiling (issue #1123)
Important notice
==================
If you got your curl sources from a distribution tarball, make sure to
delete the generic 'include/curl/curlbuild.h' file that comes with it:
rm -f curl/include/curl/curlbuild.h
The purpose of this file is to provide reasonable definitions for systems
where autoconfiguration is not available. CMake will create its own
version of this file in its build directory. If the "generic" version
is not deleted, weird build errors may occur on some systems.
Command Line CMake
==================
A CMake build of curl is similar to the autotools build of curl. It
consists of the following steps after you have unpacked the source.
1. Create an out of source build tree parallel to the curl source
tree and change into that directory
$ mkdir curl-build
$ cd curl-build
2. Run CMake from the build tree, giving it the path to the top of
the curl source tree. CMake will pick a compiler for you. If you
want to specify the compile, you can set the CC environment
variable prior to running CMake.
$ cmake ../curl
$ make
3. Install to default location:
$ make install
(The test suite does not work with the cmake build)
ccmake
=========
CMake comes with a curses based interface called ccmake. To run ccmake on
a curl use the instructions for the command line cmake, but substitute
ccmake ../curl for cmake ../curl. This will bring up a curses interface
with instructions on the bottom of the screen. You can press the "c" key
to configure the project, and the "g" key to generate the project. After
the project is generated, you can run make.
cmake-gui
=========
CMake also comes with a Qt based GUI called cmake-gui. To configure with
cmake-gui, you run cmake-gui and follow these steps:
1. Fill in the "Where is the source code" combo box with the path to
the curl source tree.
2. Fill in the "Where to build the binaries" combo box with the path
to the directory for your build tree, ideally this should not be the
same as the source tree, but a parallel directory called curl-build or
something similar.
3. Once the source and binary directories are specified, press the
"Configure" button.
4. Select the native build tool that you want to use.
5. At this point you can change any of the options presented in the
GUI. Once you have selected all the options you want, click the
"Generate" button.
6. Run the native build tool that you used CMake to generate.

View file

@ -108,7 +108,7 @@ libressl.
- mbedTLS: `--without-ssl --with-mbedtls`
- axTLS: `--without-ssl --with-axtls`
- schannel: `--without-ssl --with-winssl`
- secure transport: `--with-winssl --with-darwinssl`
- secure transport: `--without-ssl --with-darwinssl`
# Windows

View file

@ -27,6 +27,7 @@ problems may have been fixed or changed somewhat since this was written!
2.1 CURLINFO_SSL_VERIFYRESULT has limited support
2.2 DER in keychain
2.3 GnuTLS backend skips really long certificate fields
2.4 DarwinSSL won't import PKCS#12 client certificates without a password
3. Email protocols
3.1 IMAP SEARCH ALL truncated response
@ -42,14 +43,12 @@ problems may have been fixed or changed somewhat since this was written!
5. Build and portability issues
5.1 Windows Borland compiler
5.2 curl-config --libs contains private details
5.3 libidn and old iconv
5.4 AIX shared build with c-ares fails
5.5 can't handle Unicode arguments in Windows
5.6 cmake support gaps
5.7 Visual Studio project gaps
5.8 configure finding libs in wrong directory
5.9 Utilize Requires.private directives in libcurl.pc
5.10 Fix the gcc typechecks
6. Authentication
6.1 NTLM authentication and unicode
@ -159,7 +158,7 @@ problems may have been fixed or changed somewhat since this was written!
1.10 Strips trailing dot from host name
When given a URL wit a trailing dot for the host name part:
When given a URL with a trailing dot for the host name part:
"https://example.com./", libcurl will strip off the dot and use the name
without a dot internally and send it dot-less in HTTP Host: headers and in
the TLS SNI field.
@ -184,7 +183,7 @@ problems may have been fixed or changed somewhat since this was written!
It can also be noted that while adding a trailing dot to the host name in
most (all?) cases will make the name resolve to the same set of IP addresses,
many HTTP servers will not happily accept the trailing dot there unless that
has been specificly configured to be a fine virtual host.
has been specifically configured to be a fine virtual host.
If URLs with trailing dots for host names become more popular or even just
used more than for just plain fun experiments, I'm sure we will have reason
@ -222,6 +221,12 @@ problems may have been fixed or changed somewhat since this was written!
field is too long in the cert, it'll just return an error and the field will
be displayed blank.
2.4 DarwinSSL won't import PKCS#12 client certificates without a password
libcurl calls SecPKCS12Import with the PKCS#12 client certificate, but that
function rejects certificates that do not have a password.
https://github.com/curl/curl/issues/1308
3. Email protocols
@ -296,14 +301,6 @@ problems may have been fixed or changed somewhat since this was written!
run that might be needed only for building libcurl. Further, curl-config
--cflags suffers from the same effects with CFLAGS/CPPFLAGS.
5.3 libidn and old iconv
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.
5.4 AIX shared build with c-ares fails
curl version 7.12.2 fails on AIX if compiled with --enable-ares. The
@ -366,14 +363,6 @@ problems may have been fixed or changed somewhat since this was written!
https://github.com/curl/curl/issues/864
5.10 Fix the gcc typechecks
Issue #846 identifies a problem with the gcc-typechecks and how the types are
documented and checked for CURLINFO_CERTINFO but our attempts to fix the
issue were futile and needs more attention.
https://github.com/curl/curl/issues/846
6. Authentication
6.1 NTLM authentication and unicode

View file

@ -815,6 +815,10 @@ LDAP
If you have installed the OpenLDAP library, curl can take advantage of it
and offer ldap:// support.
On Windows, curl will use WinLDAP from Platform SDK by default.
Default protocol version used by curl is LDAPv3. LDAPv2 will be used as
fallback mechanism in case if LDAPv3 will fail to connect.
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. One such
@ -830,6 +834,20 @@ LDAP
If I want the same info in HTML format, I can get it by not using the -B
(enforce ASCII) flag.
You also can use authentication when accessing LDAP catalog:
curl -u user:passwd "ldap://ldap.frontec.se/o=frontec??sub?mail=*"
curl "ldap://user:passwd@ldap.frontec.se/o=frontec??sub?mail=*"
By default, if user and password provided, OpenLDAP/WinLDAP will use basic
authentication. On Windows you can control this behavior by providing
one of --basic, --ntlm or --digest option in curl command line
curl --ntlm "ldap://user:passwd@ldap.frontec.se/o=frontec??sub?mail=*"
On Windows, if no user/password specified, auto-negotiation mechanism will
be used with current logon credentials (SSPI/SPNEGO).
ENVIRONMENT VARIABLES
Curl reads and understands the following environment variables:
@ -848,8 +866,11 @@ ENVIRONMENT VARIABLES
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.
proxied. When a domain is used, it needs to start with a period. A user can
specify that both www.example.com and foo.example.com should not uses a
proxy by setting NO_PROXY to ".example.com". By including the full name you
can exclude specific host names, so to make www.example.com not use a proxy
but still have foo.example.com do it, set NO_PROXY to "www.example.com"
The usage of the -x/--proxy flag overrides the environment variables.

View file

@ -22,36 +22,54 @@
AUTOMAKE_OPTIONS = foreign no-dependencies
man_MANS = curl.1 curl-config.1
noinst_man_MANS = mk-ca-bundle.1
# EXTRA_DIST breaks with $(abs_builddir) so build it using this variable
# but distribute it (using the relative file name) in the next variable
man_MANS = $(abs_builddir)/curl.1
noinst_man_MANS = curl.1 mk-ca-bundle.1
dist_man_MANS = curl-config.1
GENHTMLPAGES = curl.html curl-config.html mk-ca-bundle.html
PDFPAGES = curl.pdf curl-config.pdf mk-ca-bundle.pdf
MANDISTPAGES = curl.1.dist curl-config.1.dist
HTMLPAGES = $(GENHTMLPAGES) index.html
SUBDIRS = examples libcurl cmdline-opts
# Build targets in this file (.) before cmdline-opts to ensure that
# the curl.1 rule below runs first
SUBDIRS = libcurl . cmdline-opts
DIST_SUBDIRS = $(SUBDIRS) examples
CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES) curl.1
CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES) $(MANDISTPAGES) curl.1
EXTRA_DIST = MANUAL BUGS CONTRIBUTE.md FAQ FEATURES INTERNALS.md SSLCERTS.md \
README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS KNOWN_BUGS \
BINDINGS.md $(man_MANS) HISTORY.md INSTALL INSTALL.md LICENSE-MIXING.md \
README.netware MAIL-ETIQUETTE HTTP-COOKIES.md SECURITY.md RELEASE-PROCEDURE \
SSL-PROBLEMS.md HTTP2.md ROADMAP.md CODE_OF_CONDUCT.md CODE_STYLE.md \
CHECKSRC.md
EXTRA_DIST = MANUAL BUGS CONTRIBUTE.md FAQ FEATURES INTERNALS.md SSLCERTS.md \
README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS KNOWN_BUGS \
BINDINGS.md HISTORY.md INSTALL INSTALL.md LICENSE-MIXING.md \
README.netware MAIL-ETIQUETTE HTTP-COOKIES.md SECURITY.md RELEASE-PROCEDURE \
SSL-PROBLEMS.md HTTP2.md ROADMAP.md CODE_OF_CONDUCT.md CODE_STYLE.md \
CHECKSRC.md CMakeLists.txt README.md CIPHERS.md INSTALL.cmake README.cmake \
$(noinst_man_MANS)
MAN2HTML= roffit $< >$@
SUFFIXES = .1 .html .pdf
curl.1:
cd cmdline-opts && make
# $(abs_builddir) is to disable VPATH when searching for this file, which
# would otherwise find the copy in $(srcdir) which breaks the $(HUGE)
# rule in src/Makefile.am in out-of-tree builds that references the file in the
# build directory.
#
# First, seed the used copy of curl.1 with the prebuilt copy (in an out-of-tree
# build), then run make recursively to rebuild it only if its dependencies
# have changed.
$(abs_builddir)/curl.1:
if test "$(top_builddir)x" != "$(top_srcdir)x" -a -e "$(srcdir)/curl.1"; then \
cp -fp "$(srcdir)/curl.1" $@; fi
cd cmdline-opts && $(MAKE)
html: $(HTMLPAGES)
cd libcurl && make html
cd libcurl && $(MAKE) html
pdf: $(PDFPAGES)
cd libcurl && make pdf
cd libcurl && $(MAKE) pdf
.1.html:
$(MAN2HTML)

View file

@ -111,7 +111,8 @@ build_triplet = @build@
host_triplet = @host@
subdir = docs
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
$(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
$(top_srcdir)/m4/curl-functions.m4 \
$(top_srcdir)/m4/curl-openssl.m4 \
@ -194,7 +195,7 @@ am__uninstall_files_from_dir = { \
}
man1dir = $(mandir)/man1
am__installdirs = "$(DESTDIR)$(man1dir)"
MANS = $(man_MANS)
MANS = $(dist_man_MANS) $(man_MANS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
@ -222,8 +223,8 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in INSTALL THANKS TODO
am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in INSTALL \
THANKS TODO
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
@ -264,6 +265,9 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
@ -303,6 +307,8 @@ ENABLE_SHARED = @ENABLE_SHARED@
ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GCOV = @GCOV@
GENHTML = @GENHTML@
GREP = @GREP@
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
@ -315,6 +321,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPV6_ENABLED = @IPV6_ENABLED@
LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBCURL_LIBS = @LIBCURL_LIBS@
@ -441,19 +448,29 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign no-dependencies
man_MANS = curl.1 curl-config.1
noinst_man_MANS = mk-ca-bundle.1
# EXTRA_DIST breaks with $(abs_builddir) so build it using this variable
# but distribute it (using the relative file name) in the next variable
man_MANS = $(abs_builddir)/curl.1
noinst_man_MANS = curl.1 mk-ca-bundle.1
dist_man_MANS = curl-config.1
GENHTMLPAGES = curl.html curl-config.html mk-ca-bundle.html
PDFPAGES = curl.pdf curl-config.pdf mk-ca-bundle.pdf
MANDISTPAGES = curl.1.dist curl-config.1.dist
HTMLPAGES = $(GENHTMLPAGES) index.html
SUBDIRS = examples libcurl cmdline-opts
CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES) curl.1
EXTRA_DIST = MANUAL BUGS CONTRIBUTE.md FAQ FEATURES INTERNALS.md SSLCERTS.md \
README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS KNOWN_BUGS \
BINDINGS.md $(man_MANS) HISTORY.md INSTALL INSTALL.md LICENSE-MIXING.md \
README.netware MAIL-ETIQUETTE HTTP-COOKIES.md SECURITY.md RELEASE-PROCEDURE \
SSL-PROBLEMS.md HTTP2.md ROADMAP.md CODE_OF_CONDUCT.md CODE_STYLE.md \
CHECKSRC.md
# Build targets in this file (.) before cmdline-opts to ensure that
# the curl.1 rule below runs first
SUBDIRS = libcurl . cmdline-opts
DIST_SUBDIRS = $(SUBDIRS) examples
CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES) $(MANDISTPAGES) curl.1
EXTRA_DIST = MANUAL BUGS CONTRIBUTE.md FAQ FEATURES INTERNALS.md SSLCERTS.md \
README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS KNOWN_BUGS \
BINDINGS.md HISTORY.md INSTALL INSTALL.md LICENSE-MIXING.md \
README.netware MAIL-ETIQUETTE HTTP-COOKIES.md SECURITY.md RELEASE-PROCEDURE \
SSL-PROBLEMS.md HTTP2.md ROADMAP.md CODE_OF_CONDUCT.md CODE_STYLE.md \
CHECKSRC.md CMakeLists.txt README.md CIPHERS.md INSTALL.cmake README.cmake \
$(noinst_man_MANS)
MAN2HTML = roffit $< >$@
SUFFIXES = .1 .html .pdf
@ -496,10 +513,10 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
install-man1: $(man_MANS)
install-man1: $(dist_man_MANS) $(man_MANS)
@$(NORMAL_INSTALL)
@list1=''; \
list2='$(man_MANS)'; \
list2='$(dist_man_MANS) $(man_MANS)'; \
test -n "$(man1dir)" \
&& test -n "`echo $$list1$$list2`" \
|| exit 0; \
@ -534,7 +551,7 @@ uninstall-man1:
@$(NORMAL_UNINSTALL)
@list=''; test -n "$(man1dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
l2='$(dist_man_MANS) $(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.1[a-z]*$$/p'; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
@ -816,14 +833,24 @@ uninstall-man: uninstall-man1
.PRECIOUS: Makefile
curl.1:
cd cmdline-opts && make
# $(abs_builddir) is to disable VPATH when searching for this file, which
# would otherwise find the copy in $(srcdir) which breaks the $(HUGE)
# rule in src/Makefile.am in out-of-tree builds that references the file in the
# build directory.
#
# First, seed the used copy of curl.1 with the prebuilt copy (in an out-of-tree
# build), then run make recursively to rebuild it only if its dependencies
# have changed.
$(abs_builddir)/curl.1:
if test "$(top_builddir)x" != "$(top_srcdir)x" -a -e "$(srcdir)/curl.1"; then \
cp -fp "$(srcdir)/curl.1" $@; fi
cd cmdline-opts && $(MAKE)
html: $(HTMLPAGES)
cd libcurl && make html
cd libcurl && $(MAKE) html
pdf: $(PDFPAGES)
cd libcurl && make pdf
cd libcurl && $(MAKE) pdf
.1.html:
$(MAN2HTML)

16
curl/docs/README.cmake Normal file
View file

@ -0,0 +1,16 @@
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
README.cmake
Read the README file first.
Curl contains CMake build files that provide a way to build Curl with the
CMake build tool (www.cmake.org). CMake is a cross platform meta build tool
that generates native makefiles and IDE project files. The CMake build
system can be used to build Curl on any of its supported platforms.
Read the INSTALL.cmake file for instructions on how to compile curl with
CMake.

12
curl/docs/README.md Normal file
View file

@ -0,0 +1,12 @@
![curl logo](https://cdn.rawgit.com/curl/curl-www/master/logo/curl-logo.svg)
# Documentation
You'll find a mix of various documentation in this directory and
subdirectories, using several different formats. Some of them are not ideal
for reading directly in your browser.
If you'd rather see the rendered version of the documentation, check out the
curl web site's [documentation section](https://curl.haxx.se/docs/) for
general curl stuff or the [libcurl section](https://curl.haxx.se/libcurl/) for
libcurl related documentation.

View file

@ -83,9 +83,10 @@ Coming dates
Based on the description above, here are some planned release dates (at the
time of this writing):
- February 22, 2017 (version 7.53.0)
- April 19, 2017
- June 14, 2017
- June 14, 2017 (version 7.54.1)
- August 9, 2017
- October 4, 2017
- December 29, 2017
- November 29, 2017
- January 24, 2018
- March 21, 2018
- May 16, 2018

View file

@ -161,3 +161,13 @@ disabled. Secure Transport on iOS will run OCSP checks on certificates unless
peer verification is disabled. Secure Transport on OS X will run either OCSP
or CRL checks on certificates if those features are enabled, and this behavior
can be adjusted in the preferences of Keychain Access.
HTTPS proxy
-----------
Since version 7.52.0, curl can do HTTPS to the proxy separately from the
connection to the server. This TLS connection is handled separately from the
server connection so instead of `--insecure` and `--cacert` to control the
certificate verification, you use `--proxy-insecure` and `--proxy-cacert`.
With these options, you make sure that the TLS connection and the trust of the
proxy can be kept totally separate from the TLS connection to the server.

View file

@ -19,10 +19,12 @@ Adam Tkac
Adrian Schuur
Adriano Meirelles
Ajit Dhumale
Akhil Kedia
Aki Koskinen
Akos Pasztory
Akshay Vernekar
Alain Danteny
Alan Jenkins
Alan Pinstein
Albert Chin-A-Young
Albert Choy
@ -30,6 +32,7 @@ Ale Vesely
Alejandro Alvarez Ayllon
Aleksandar Milivojevic
Aleksey Tulinov
Ales Mlakar
Ales Novak
Alessandro Ghedini
Alessandro Vesely
@ -71,6 +74,7 @@ Anatoli Tubman
Anders Bakken
Anders Gustafsson
Anders Havn
Anders Roxell
Andi Jahja
Andre Guibert de Bruet
Andre Heinecke
@ -95,6 +99,7 @@ Andrew Biggs
Andrew Bushnell
Andrew Francis
Andrew Fuller
Andrew Krieger
Andrew Kurushin
Andrew Moise
Andrew Robbins
@ -118,6 +123,8 @@ Anton Kalmykov
Anton Malov
Anton Yabchinskiy
Antonio Larrosa
Antony74 on github
Antti Hätälä
Arkadiusz Miskiewicz
Armel Asselin
Arnaud Compan
@ -154,6 +161,7 @@ Benoit Neil
Benoit Sigoure
Bernard Leak
Bernard Spil
Bernhard M. Wiedemann
Bernhard Reutner-Fischer
Bert Huijben
Bertrand Demiddelaer
@ -184,6 +192,8 @@ Brandon Wang
Brendan Jurd
Brent Beardsley
Brian Akins
Brian Carpenter
Brian Childs
Brian Chrisman
Brian Dessent
Brian J. Murrell
@ -203,6 +213,8 @@ Cameron Kaiser
Cameron MacMinn
Camille Moncelier
Caolan McNamara
Carlo Cannas
Carlo Teubner
Carlo Wood
Carsten Lange
Casey O'Donnell
@ -215,9 +227,11 @@ Chen Prog
Chih-Chung Chang
Chris "Bob Bob"
Chris Araman
Chris Carlmar
Chris Combes
Chris Conlon
Chris Deidun
Chris Faherty
Chris Flerackers
Chris Gaukroger
Chris Maltby
@ -305,6 +319,7 @@ Daniel Steinberg
Daniel Stenberg
Daniel Theron
Daniel at touchtunes
Daphne Luong
Darryl House
Darshan Mody
Darío Hereñú
@ -351,6 +366,7 @@ Dengminwen
Denis Feklushkin
Dennis Clarke
Derek Higgins
Desmond O. Chang
Detlef Schmier
Didier Brisebourg
Diego Bes
@ -394,13 +410,16 @@ Dustin Boswell
Dusty Mabe
Dylan Ellicott
Dylan Salisbury
Dániel Bakai
Early Ehlinger
Ebenezer Ikonne
Ed Morley
Edin Kadribasic
Eduard Bloch
Edward Kimmel
Edward Rudd
Edward Sheldrake
Edward Thomson
Eelco Dolstra
Eetu Ojanen
Egon Eckert
@ -411,6 +430,7 @@ Emanuele Bovisio
Emil Lerner
Emil Romanus
Emiliano Ida
Emmanuel Tychon
Enrico Scholz
Enrik Berkhan
Eramoto Masaya
@ -458,6 +478,7 @@ Florian Schoppmann
Florian Weimer
Forrest Cahoon
Francisco Moraes
Francois Petitjean
Frank Gevaerts
Frank Hempel
Frank Keeney
@ -502,6 +523,7 @@ Gilles Blanc
Gisle Vanem
Giuseppe Attardi
Giuseppe D'Ambrosio
Giuseppe Persico
Glen A Johnson Jr.
Glen Nakamura
Glen Scott
@ -516,6 +538,7 @@ Greg Hewgill
Greg Morse
Greg Onufer
Greg Pratt
Greg Rowe
Greg Zavertnik
Gregory Szorc
Grigory Entin
@ -526,6 +549,7 @@ Guillaume Arluison
Gunter Knauf
Gustaf Hui
Gustavo Grieco
GwanYeong Kim
Gwenole Beauchesne
Gökhan Şengün
Götz Babin-Ebell
@ -545,6 +569,7 @@ He Qin
Heikki Korpela
Heinrich Ko
Heinrich Schaefer
Helmut K. C. Tessarek
Helwing Lutz
Hendrik Visage
Henrik Gaßmann
@ -589,6 +614,7 @@ Jactry Zeng
Jad Chamcham
Jaime Fullaondo
Jakub Zakrzewski
James Atwill
James Bursa
James Cheng
James Clancy
@ -605,6 +631,7 @@ Jan Ehrhardt
Jan Koen Annot
Jan Kunder
Jan Schaumann
Jan Schmidt
Jan Van Boghout
Jared Jennings
Jared Lundell
@ -724,6 +751,7 @@ Josef Wolf
Josh Kapell
Joshua Kwan
Josue Andrade Gomes
Jozef Kralik
Juan Barreto
Juan F. Codagnone
Juan Ignacio Hervás
@ -739,6 +767,7 @@ Julien Nabet
Julien Royer
Jun-ichiro itojun Hagino
Jurij Smakov
Justin Clift
Justin Ehlert
Justin Fletcher
Justin Karneges
@ -771,6 +800,7 @@ Kent Boortz
Keshav Krity
Kevin Baughman
Kevin Fisk
Kevin Ji
Kevin Lussier
Kevin Reed
Kevin Roth
@ -796,6 +826,7 @@ Lachlan O'Dea
Larry Campbell
Larry Fahnoe
Larry Lin
Larry Stefani
Larry Stone
Lars Buitinck
Lars Gustafsson
@ -826,6 +857,7 @@ Lior Kaplan
Lisa Xu
Liviu Chircu
Liza Alenchery
Lloyd Fournier
Lluís Batlle i Rossell
Loic Dachary
Loren Kirkby
@ -848,6 +880,7 @@ Lyndon Hill
Maciej Karpiuk
Maciej Puzio
Maciej W. Rozycki
Mahmoud Samir Fayed
Maks Naumov
Maksim Kuzevanov
Maksim Stsepanenka
@ -862,6 +895,7 @@ Marc Hesse
Marc Hörsken
Marc Kleine-Budde
Marc Renault
Marc-Antoine Perennou
Marcel Raad
Marcel Roelofs
Marcelo Echeverria
@ -902,6 +936,7 @@ Martin Frodl
Martin Hager
Martin Hedenfalk
Martin Jansen
Martin Kepplinger
Martin Lemke
Martin Skinner
Martin Storsjö
@ -927,6 +962,7 @@ Matthias Bolte
Maurice Barnum
Mauro Iorio
Mauro Rappa
Max Dymond
Max Katsev
Max Khon
Maxim Ivanov
@ -948,6 +984,7 @@ Michael Jerris
Michael Kalinin
Michael Kaufmann
Michael König
Michael Maltese
Michael Mealling
Michael Mueller
Michael Osipov
@ -1000,6 +1037,7 @@ Nathaniel Waisbrot
Naveen Chandran
Naveen Noel
Neal Poole
Nehal J Wani
Neil Bowers
Neil Dunbar
Neil Spring
@ -1048,8 +1086,10 @@ Ori Avtalion
Oscar Koeroo
Oscar Norlander
P R Schaffner
Palo Markovic
Paolo Piacentini
Paras Sethia
Pascal Gaudette
Pascal Terjan
Pasha Kuznetsov
Pasi Karkkainen
@ -1067,6 +1107,7 @@ Patrik Thunstrom
Pau Garcia i Quiles
Paul Donohue
Paul Harrington
Paul Harris
Paul Howarth
Paul Joyce
Paul Marks
@ -1108,6 +1149,7 @@ Petr Bahula
Petr Novak
Petr Pisar
Phil Blundell
Phil Crump
Phil Karn
Phil Lisiecki
Phil Pellouchoud
@ -1122,6 +1164,7 @@ Pierre Brico
Pierre Chapuis
Pierre Joye
Pierre Ynard
Piotr Dobrogost
Pooyan McSporran
Pramod Sharma
Prash Dush
@ -1180,6 +1223,7 @@ Richard Cooper
Richard Gorton
Richard Gray
Richard Hosking
Richard Hsu
Richard Michael
Richard Moore
Richard Prescott
@ -1221,6 +1265,7 @@ Romain Coltel
Roman Koifman
Roman Mamedov
Romulo A. Ceccon
Ron Eldor
Ron Parker
Ron Zapp
Ronnie Mose
@ -1234,6 +1279,7 @@ Ryan Chan
Ryan Nelson
Ryan Schmidt
Ryan Scott
Ryuichi KAWAMATA
Rémy Léone
S. Moonesamy
Salvador Dávila
@ -1314,7 +1360,9 @@ Stephen Brokenshire
Stephen Collyer
Stephen Kick
Stephen More
Stephen Toub
Sterling Hughes
Steve Brokenshire
Steve Green
Steve H Truong
Steve Havelka
@ -1330,11 +1378,13 @@ Steven Gu
Steven M. Schweda
Steven Parkes
Stoned Elipot
Stuart Henderson
Sune Ahlgren
Sven Anders
Sven Neuhaus
Sven Wegener
Svyatoslav Mishyn
Sylvestre Ledru
Symeon Paraschoudis
Sébastien Willemijns
T. Bharath
@ -1346,6 +1396,7 @@ Tanguy Fautre
Tatsuhiro Tsujikawa
Temprimus
Terri Oda
TheAssassin at github
Theodore Dubois
Thomas Braun
Thomas Glanzmann
@ -1415,6 +1466,7 @@ Toshio Kuratomi
Toshiyuki Maezawa
Traian Nicolescu
Travis Burtrum
Travis Obenhaus
Troels Walsted Hansen
Troy Engel
Tupone Alfredo
@ -1428,12 +1480,14 @@ Ulrich Zadow
Valentin David
Vasy Okhin
Venkat Akella
Venkataramana Mokkapati
Victor Snezhko
Vijay Panghal
Vikram Saxena
Viktor Szakáts
Ville Skyttä
Vilmos Nebehaj
Vincas Razma
Vincent Bronner
Vincent Le Normand
Vincent Penquerc'h
@ -1458,6 +1512,7 @@ Werner Koch
Wesley Laxton
Wesley Miaw
Wez Furlong
Wham Bang
Wilfredo Sanchez
Will Dietz
Willem Sparreboom
@ -1491,22 +1546,32 @@ afrind on github
asavah on github
baumanj on github
bsammon on github
canavan at github
dkjjr89 on github
eXeC64 on github
jonrumsey at github
jonrumsey on github
jveazey on github
ka7 on github
kreshano on github
lijian996 on github
lukaszgn on github
madblobfish on github
marc-groundctl on github
mccormickt12 on github
mkzero on github
neex on github
neheb on github
nk
nopjmp on github
silveja1 on github
stootill at github
swalkaus at yahoo.com
tarek112 on github
tommink[at]post.pl
vanillajonathan on github
wmsch on github
wyattoday at github
zelinchen on github
İsmail Dönmez
Štefan Kremeň

View file

@ -25,7 +25,7 @@
1.7 Detect when called from within callbacks
1.8 CURLOPT_RESOLVE for any port number
1.9 Cache negative name resolves
1.11 minimize dependencies with dynamicly loaded modules
1.11 minimize dependencies with dynamically loaded modules
1.12 have form functions use CURL handle argument
1.14 Typesafe curl_easy_setopt()
1.15 Monitor connections in the connection pool
@ -47,7 +47,6 @@
2.5 Edge-triggered sockets should work
3. Documentation
3.1 Update date and version in man pages
3.2 Provide cmake config-file
4. FTP
@ -77,7 +76,6 @@
6.1 ditch stdin
6.2 ditch telnet-specific select
6.3 feature negotiation debug data
6.4 send data in chunks
7. SMTP
7.1 Pipelining
@ -259,7 +257,7 @@
A name resolve that has failed is likely to fail when made again within a
short period of time. Currently we only cache positive responses.
1.11 minimize dependencies with dynamicly loaded modules
1.11 minimize dependencies with dynamically loaded modules
We can create a system with loadable modules/plug-ins, where these modules
would be the ones that link to 3rd party libs. That would allow us to avoid
@ -444,12 +442,6 @@
3. Documentation
3.1 Update date and version in man pages
'maketgz' or another suitable script could update the .TH sections of the man
pages at release time to use the current date and curl/libcurl version
number.
3.2 Provide cmake config-file
A config-file package is a set of files provided by us to allow applications
@ -531,7 +523,7 @@ This is not detailed in any FTP specification.
RFC 7616 introduces an update to the HTTP Digest authentication
specification, which amongst other thing defines how new digest algorithms
can be used instead of MD5 which is considered old and not recommanded.
can be used instead of MD5 which is considered old and not recommended.
See https://tools.ietf.org/html/rfc7616 and
https://github.com/curl/curl/issues/1018
@ -630,11 +622,6 @@ to provide the data to send.
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. SMTP
@ -1046,9 +1033,9 @@ that doesn't exist on the server, just like --ftp-create-dirs.
18.15 --retry should resume
When --retry is used and curl actually retries transfer, it should use the
already transfered data and do a resumed transfer for the rest (when
already transferred data and do a resumed transfer for the rest (when
possible) so that it doesn't have to transfer the same data again that was
already tranfered before the retry.
already transferred before the retry.
See https://github.com/curl/curl/issues/1084

View file

@ -0,0 +1,12 @@
set(MANPAGE "${CMAKE_BINARY_DIR}/docs/curl.1")
# Load DPAGES and OTHERPAGES from shared file
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
add_custom_command(OUTPUT "${MANPAGE}"
COMMAND "${PERL_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/gen.pl" mainpage "${CMAKE_CURRENT_SOURCE_DIR}" > "${MANPAGE}"
DEPENDS ${DPAGES} ${OTHERPAGES}
VERBATIM
)
add_custom_target(generate-curl.1 DEPENDS "${MANPAGE}")

View file

@ -23,9 +23,9 @@ Each file has a set of meta-data and a body of text.
Tags: (space separated list)
Protocols: (space separated list for which protocols this option works)
Added: (version number in which this was added)
Mutexed: (space separated list of options this overrides)
Requires: (space separated list of features this option requires)
See-also: (space separated list of related options)
Mutexed: (space separated list of options this overrides, no dashes)
Requires: (space separated list of features this requires, no dashes)
See-also: (space separated list of related options, no dashes)
Help: (short text for the --help output for this option)
--- (end of meta-data)

View file

@ -24,53 +24,11 @@ AUTOMAKE_OPTIONS = foreign no-dependencies
MANPAGE = $(top_builddir)/docs/curl.1
DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cert.d \
cert-status.d cert-type.d ciphers.d compressed.d config.d \
connect-timeout.d connect-to.d continue-at.d cookie.d cookie-jar.d \
create-dirs.d crlf.d crlfile.d data-ascii.d data-binary.d data.d \
data-raw.d data-urlencode.d delegation.d digest.d disable.d \
disable-eprt.d disable-epsv.d dns-interface.d dns-ipv4-addr.d \
dns-ipv6-addr.d dns-servers.d dump-header.d egd-file.d engine.d \
environment.d expect100-timeout.d fail.d fail-early.d false-start.d \
form.d form-string.d ftp-account.d ftp-alternative-to-user.d \
ftp-create-dirs.d ftp-method.d ftp-pasv.d ftp-port.d ftp-pret.d \
ftp-skip-pasv-ip.d ftp-ssl-ccc.d ftp-ssl-ccc-mode.d ftp-ssl-control.d \
get.d globoff.d head.d header.d help.d hostpubmd5.d http1.0.d \
http1.1.d http2.d http2-prior-knowledge.d ignore-content-length.d \
include.d insecure.d interface.d ipv4.d ipv6.d junk-session-cookies.d \
keepalive-time.d key.d key-type.d krb.d libcurl.d limit-rate.d \
list-only.d local-port.d location.d location-trusted.d \
login-options.d mail-auth.d mail-from.d mail-rcpt.d manual.d \
max-filesize.d max-redirs.d max-time.d metalink.d negotiate.d netrc.d \
netrc-file.d netrc-optional.d next.d no-alpn.d no-buffer.d \
no-keepalive.d no-npn.d noproxy.d no-sessionid.d ntlm.d ntlm-wb.d \
oauth2-bearer.d output.d pass.d path-as-is.d pinnedpubkey.d post301.d \
post302.d post303.d preproxy.d progress-bar.d proto.d proto-default.d \
proto-redir.d proxy1.0.d proxy-anyauth.d proxy-basic.d proxy-cacert.d \
proxy-capath.d proxy-cert.d proxy-cert-type.d proxy-ciphers.d \
proxy-crlfile.d proxy.d proxy-digest.d proxy-header.d \
proxy-insecure.d proxy-key.d proxy-key-type.d proxy-negotiate.d \
proxy-ntlm.d proxy-pass.d proxy-service-name.d \
proxy-ssl-allow-beast.d proxy-tlsauthtype.d proxy-tlspassword.d \
proxy-tlsuser.d proxy-tlsv1.d proxytunnel.d proxy-user.d pubkey.d \
quote.d random-file.d range.d raw.d referer.d remote-header-name.d \
remote-name-all.d remote-name.d remote-time.d request.d resolve.d \
retry-connrefused.d retry.d retry-delay.d retry-max-time.d sasl-ir.d \
service-name.d show-error.d silent.d socks4a.d socks4.d socks5.d \
socks5-gssapi-nec.d socks5-gssapi-service.d socks5-hostname.d \
speed-limit.d speed-time.d ssl-allow-beast.d ssl.d ssl-no-revoke.d \
ssl-reqd.d sslv2.d sslv3.d stderr.d tcp-fastopen.d tcp-nodelay.d \
telnet-option.d tftp-blksize.d tftp-no-options.d time-cond.d \
tlsauthtype.d tlspassword.d tlsuser.d tlsv1.0.d tlsv1.1.d tlsv1.2.d \
tlsv1.3.d tlsv1.d trace-ascii.d trace.d trace-time.d tr-encoding.d \
unix-socket.d upload-file.d url.d use-ascii.d user-agent.d user.d \
verbose.d version.d write-out.d xattr.d
include Makefile.inc
OTHERPAGES = page-footer page-header
EXTRA_DIST = $(DPAGES) MANPAGE.md gen.pl $(OTHERPAGES)
EXTRA_DIST = $(DPAGES) MANPAGE.md gen.pl $(OTHERPAGES) CMakeLists.txt
all: $(MANPAGE)
$(MANPAGE): $(DPAGES) $(OTHERPAGES)
$(MANPAGE): $(DPAGES) $(OTHERPAGES) Makefile.inc
@PERL@ $(srcdir)/gen.pl mainpage $(srcdir) > $(MANPAGE)

View file

@ -35,6 +35,8 @@
# KIND, either express or implied.
#
###########################################################################
# Shared between Makefile.am and CMakeLists.txt
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
@ -111,7 +113,8 @@ build_triplet = @build@
host_triplet = @host@
subdir = docs/cmdline-opts
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
$(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
$(top_srcdir)/m4/curl-functions.m4 \
$(top_srcdir)/m4/curl-openssl.m4 \
@ -158,7 +161,7 @@ am__can_run_installinfo = \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(srcdir)/Makefile.in
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.inc
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@ -174,6 +177,9 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
@ -213,6 +219,8 @@ ENABLE_SHARED = @ENABLE_SHARED@
ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GCOV = @GCOV@
GENHTML = @GENHTML@
GREP = @GREP@
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
@ -225,6 +233,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPV6_ENABLED = @IPV6_ENABLED@
LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBCURL_LIBS = @LIBCURL_LIBS@
@ -353,53 +362,55 @@ top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign no-dependencies
MANPAGE = $(top_builddir)/docs/curl.1
DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cert.d \
cert-status.d cert-type.d ciphers.d compressed.d config.d \
connect-timeout.d connect-to.d continue-at.d cookie.d cookie-jar.d \
create-dirs.d crlf.d crlfile.d data-ascii.d data-binary.d data.d \
data-raw.d data-urlencode.d delegation.d digest.d disable.d \
disable-eprt.d disable-epsv.d dns-interface.d dns-ipv4-addr.d \
dns-ipv6-addr.d dns-servers.d dump-header.d egd-file.d engine.d \
environment.d expect100-timeout.d fail.d fail-early.d false-start.d \
form.d form-string.d ftp-account.d ftp-alternative-to-user.d \
ftp-create-dirs.d ftp-method.d ftp-pasv.d ftp-port.d ftp-pret.d \
ftp-skip-pasv-ip.d ftp-ssl-ccc.d ftp-ssl-ccc-mode.d ftp-ssl-control.d \
get.d globoff.d head.d header.d help.d hostpubmd5.d http1.0.d \
http1.1.d http2.d http2-prior-knowledge.d ignore-content-length.d \
include.d insecure.d interface.d ipv4.d ipv6.d junk-session-cookies.d \
keepalive-time.d key.d key-type.d krb.d libcurl.d limit-rate.d \
list-only.d local-port.d location.d location-trusted.d \
login-options.d mail-auth.d mail-from.d mail-rcpt.d manual.d \
max-filesize.d max-redirs.d max-time.d metalink.d negotiate.d netrc.d \
netrc-file.d netrc-optional.d next.d no-alpn.d no-buffer.d \
no-keepalive.d no-npn.d noproxy.d no-sessionid.d ntlm.d ntlm-wb.d \
oauth2-bearer.d output.d pass.d path-as-is.d pinnedpubkey.d post301.d \
post302.d post303.d preproxy.d progress-bar.d proto.d proto-default.d \
proto-redir.d proxy1.0.d proxy-anyauth.d proxy-basic.d proxy-cacert.d \
proxy-capath.d proxy-cert.d proxy-cert-type.d proxy-ciphers.d \
proxy-crlfile.d proxy.d proxy-digest.d proxy-header.d \
proxy-insecure.d proxy-key.d proxy-key-type.d proxy-negotiate.d \
proxy-ntlm.d proxy-pass.d proxy-service-name.d \
proxy-ssl-allow-beast.d proxy-tlsauthtype.d proxy-tlspassword.d \
proxy-tlsuser.d proxy-tlsv1.d proxytunnel.d proxy-user.d pubkey.d \
quote.d random-file.d range.d raw.d referer.d remote-header-name.d \
remote-name-all.d remote-name.d remote-time.d request.d resolve.d \
retry-connrefused.d retry.d retry-delay.d retry-max-time.d sasl-ir.d \
service-name.d show-error.d silent.d socks4a.d socks4.d socks5.d \
socks5-gssapi-nec.d socks5-gssapi-service.d socks5-hostname.d \
speed-limit.d speed-time.d ssl-allow-beast.d ssl.d ssl-no-revoke.d \
ssl-reqd.d sslv2.d sslv3.d stderr.d tcp-fastopen.d tcp-nodelay.d \
telnet-option.d tftp-blksize.d tftp-no-options.d time-cond.d \
tlsauthtype.d tlspassword.d tlsuser.d tlsv1.0.d tlsv1.1.d tlsv1.2.d \
tlsv1.3.d tlsv1.d trace-ascii.d trace.d trace-time.d tr-encoding.d \
unix-socket.d upload-file.d url.d use-ascii.d user-agent.d user.d \
cert-status.d cert-type.d ciphers.d compressed.d config.d \
connect-timeout.d connect-to.d continue-at.d cookie.d cookie-jar.d \
create-dirs.d crlf.d crlfile.d data-ascii.d data-binary.d data.d \
data-raw.d data-urlencode.d delegation.d digest.d disable.d \
disable-eprt.d disable-epsv.d dns-interface.d dns-ipv4-addr.d \
dns-ipv6-addr.d dns-servers.d dump-header.d egd-file.d engine.d \
expect100-timeout.d fail.d fail-early.d false-start.d \
form.d form-string.d ftp-account.d ftp-alternative-to-user.d \
ftp-create-dirs.d ftp-method.d ftp-pasv.d ftp-port.d ftp-pret.d \
ftp-skip-pasv-ip.d ftp-ssl-ccc.d ftp-ssl-ccc-mode.d ftp-ssl-control.d \
get.d globoff.d head.d header.d help.d hostpubmd5.d http1.0.d \
http1.1.d http2.d http2-prior-knowledge.d ignore-content-length.d \
include.d insecure.d interface.d ipv4.d ipv6.d junk-session-cookies.d \
keepalive-time.d key.d key-type.d krb.d libcurl.d limit-rate.d \
list-only.d local-port.d location.d location-trusted.d \
login-options.d mail-auth.d mail-from.d mail-rcpt.d manual.d \
max-filesize.d max-redirs.d max-time.d metalink.d negotiate.d netrc.d \
netrc-file.d netrc-optional.d next.d no-alpn.d no-buffer.d \
no-keepalive.d no-npn.d noproxy.d no-sessionid.d ntlm.d ntlm-wb.d \
oauth2-bearer.d output.d pass.d path-as-is.d pinnedpubkey.d post301.d \
post302.d post303.d preproxy.d progress-bar.d proto.d proto-default.d \
proto-redir.d proxy1.0.d proxy-anyauth.d proxy-basic.d proxy-cacert.d \
proxy-capath.d proxy-cert.d proxy-cert-type.d proxy-ciphers.d \
proxy-crlfile.d proxy.d proxy-digest.d proxy-header.d \
proxy-insecure.d proxy-key.d proxy-key-type.d proxy-negotiate.d \
proxy-ntlm.d proxy-pass.d proxy-service-name.d \
proxy-ssl-allow-beast.d proxy-tlsauthtype.d proxy-tlspassword.d \
proxy-tlsuser.d proxy-tlsv1.d proxytunnel.d proxy-user.d pubkey.d \
quote.d random-file.d range.d raw.d referer.d remote-header-name.d \
remote-name-all.d remote-name.d remote-time.d request.d resolve.d \
retry-connrefused.d retry.d retry-delay.d retry-max-time.d sasl-ir.d \
service-name.d show-error.d silent.d socks4a.d socks4.d socks5.d \
socks5-gssapi-nec.d socks5-gssapi-service.d socks5-hostname.d \
speed-limit.d speed-time.d ssl-allow-beast.d ssl.d ssl-no-revoke.d \
ssl-reqd.d sslv2.d sslv3.d stderr.d suppress-connect-headers.d \
tcp-fastopen.d tcp-nodelay.d \
telnet-option.d tftp-blksize.d tftp-no-options.d time-cond.d \
tls-max.d \
tlsauthtype.d tlspassword.d tlsuser.d tlsv1.0.d tlsv1.1.d tlsv1.2.d \
tlsv1.3.d tlsv1.d trace-ascii.d trace.d trace-time.d tr-encoding.d \
unix-socket.d upload-file.d url.d use-ascii.d user-agent.d user.d \
verbose.d version.d write-out.d xattr.d
OTHERPAGES = page-footer page-header
EXTRA_DIST = $(DPAGES) MANPAGE.md gen.pl $(OTHERPAGES)
EXTRA_DIST = $(DPAGES) MANPAGE.md gen.pl $(OTHERPAGES) CMakeLists.txt
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.inc $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@ -419,6 +430,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(srcdir)/Makefile.inc $(am__empty):
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@ -590,7 +602,7 @@ uninstall-am:
all: $(MANPAGE)
$(MANPAGE): $(DPAGES) $(OTHERPAGES)
$(MANPAGE): $(DPAGES) $(OTHERPAGES) Makefile.inc
@PERL@ $(srcdir)/gen.pl mainpage $(srcdir) > $(MANPAGE)
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View file

@ -0,0 +1,47 @@
# Shared between Makefile.am and CMakeLists.txt
DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cert.d \
cert-status.d cert-type.d ciphers.d compressed.d config.d \
connect-timeout.d connect-to.d continue-at.d cookie.d cookie-jar.d \
create-dirs.d crlf.d crlfile.d data-ascii.d data-binary.d data.d \
data-raw.d data-urlencode.d delegation.d digest.d disable.d \
disable-eprt.d disable-epsv.d dns-interface.d dns-ipv4-addr.d \
dns-ipv6-addr.d dns-servers.d dump-header.d egd-file.d engine.d \
expect100-timeout.d fail.d fail-early.d false-start.d \
form.d form-string.d ftp-account.d ftp-alternative-to-user.d \
ftp-create-dirs.d ftp-method.d ftp-pasv.d ftp-port.d ftp-pret.d \
ftp-skip-pasv-ip.d ftp-ssl-ccc.d ftp-ssl-ccc-mode.d ftp-ssl-control.d \
get.d globoff.d head.d header.d help.d hostpubmd5.d http1.0.d \
http1.1.d http2.d http2-prior-knowledge.d ignore-content-length.d \
include.d insecure.d interface.d ipv4.d ipv6.d junk-session-cookies.d \
keepalive-time.d key.d key-type.d krb.d libcurl.d limit-rate.d \
list-only.d local-port.d location.d location-trusted.d \
login-options.d mail-auth.d mail-from.d mail-rcpt.d manual.d \
max-filesize.d max-redirs.d max-time.d metalink.d negotiate.d netrc.d \
netrc-file.d netrc-optional.d next.d no-alpn.d no-buffer.d \
no-keepalive.d no-npn.d noproxy.d no-sessionid.d ntlm.d ntlm-wb.d \
oauth2-bearer.d output.d pass.d path-as-is.d pinnedpubkey.d post301.d \
post302.d post303.d preproxy.d progress-bar.d proto.d proto-default.d \
proto-redir.d proxy1.0.d proxy-anyauth.d proxy-basic.d proxy-cacert.d \
proxy-capath.d proxy-cert.d proxy-cert-type.d proxy-ciphers.d \
proxy-crlfile.d proxy.d proxy-digest.d proxy-header.d \
proxy-insecure.d proxy-key.d proxy-key-type.d proxy-negotiate.d \
proxy-ntlm.d proxy-pass.d proxy-service-name.d \
proxy-ssl-allow-beast.d proxy-tlsauthtype.d proxy-tlspassword.d \
proxy-tlsuser.d proxy-tlsv1.d proxytunnel.d proxy-user.d pubkey.d \
quote.d random-file.d range.d raw.d referer.d remote-header-name.d \
remote-name-all.d remote-name.d remote-time.d request.d resolve.d \
retry-connrefused.d retry.d retry-delay.d retry-max-time.d sasl-ir.d \
service-name.d show-error.d silent.d socks4a.d socks4.d socks5.d \
socks5-gssapi-nec.d socks5-gssapi-service.d socks5-hostname.d \
speed-limit.d speed-time.d ssl-allow-beast.d ssl.d ssl-no-revoke.d \
ssl-reqd.d sslv2.d sslv3.d stderr.d suppress-connect-headers.d \
tcp-fastopen.d tcp-nodelay.d \
telnet-option.d tftp-blksize.d tftp-no-options.d time-cond.d \
tls-max.d \
tlsauthtype.d tlspassword.d tlsuser.d tlsv1.0.d tlsv1.1.d tlsv1.2.d \
tlsv1.3.d tlsv1.d trace-ascii.d trace.d trace-time.d tr-encoding.d \
unix-socket.d upload-file.d url.d use-ascii.d user-agent.d user.d \
verbose.d version.d write-out.d xattr.d
OTHERPAGES = page-footer page-header

View file

@ -1,6 +1,6 @@
Long: abstract-unix-socket
Arg: <path>
Help: Connect through an abstract Unix domain socket
Help: Connect via abstract Unix domain socket
Added: 7.53.0
Protocols: HTTP
---

View file

@ -3,11 +3,12 @@ Arg: <file>
Help: Read config from a file
Short: K
---
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,
Specify a text file to read curl arguments from. The command line arguments
found in the text file will be used as if they were provided on the command
line.
Options and their parameters must be specified on the same line in the file,
separated by whitespace, colon, or the equals sign. Long option names can
optionally be given in the config file without the initial double dashes and
if so, the colon or equals characters can be used as separators. If the option
@ -29,9 +30,9 @@ line. So, it could look similar to this:
url = "https://curl.haxx.se/docs/"
When curl is invoked, it always (unless --disable 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:
When curl is invoked, it (unless --disable 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

View file

@ -1,7 +0,0 @@
Long: environment
Help: Write results to environment variables
Requires: RISC OS
---
Sets a range of environment variables, using the names the --write-out option
supports, to allow easier extraction of useful information after having run
curl.

View file

@ -2,7 +2,7 @@ Long: fail-early
Help: Fail on first transfer error, do not continue
Added: 7.52.0
---
Fail and exit on first detected error.
Fail and exit on the first detected transfer error.
When curl is used to do multiple transfers on the command line, it will
attempt to operate on each given URL, one by one. By default, it will ignore
@ -10,9 +10,12 @@ errors if there are more URLs given and the last URL's success will determine
the error code curl returns. So early failures will be "hidden" by subsequent
successful transfers.
Using this option, curl will instead return an error on the first transfers
that fails, independent on the amount of more URLs that are given on the
command line. This way, no transfer failures go undetected by scripts and
similar.
Using this option, curl will instead return an error on the first transfer
that fails, independent of the amount of URLs that are given on the command
line. This way, no transfer failures go undetected by scripts and similar.
This option will apply for all given URLs even if you use --next.
This option is global and does not need to be specified for each use of --next.
This option does not imply --fail, which causes transfers to fail due to the
server's HTTP status code. You can combine the two options, however note --fail
is not global and is therefore contained by --next.

View file

@ -307,10 +307,12 @@ sub listhelp {
if($arg) {
$opt .= " $arg";
}
my $desc = $helplong{$f};
$desc =~ s/\"/\\\"/g; # escape double quotes
my $line = sprintf " %-19s %s\n", $opt, $helplong{$f};
my $line = sprintf " {\"%s\",\n \"%s\"},\n", $opt, $desc;
if(length($line) > 79) {
if(length($opt) + length($desc) > 78) {
print STDERR "WARN: the --$long line is too long\n";
}
print $line;

View file

@ -1,12 +1,16 @@
Long: insecure
Short: k
Help: Allow insecure connections when using SSL
Help: Allow insecure server connections when using SSL
Protocols: TLS
See-also: proxy-insecure cacert
---
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 --insecure is used.
By default, every SSL connection curl makes is verified to be secure. This
option allows curl to proceed and operate even for server connections
otherwise considered insecure.
The server connection is verified by making sure the server's certificate
contains the right name and verifies successfully using the cert store.
See this online resource for further details:
https://curl.haxx.se/docs/sslcerts.html

View file

@ -1,6 +1,6 @@
Long: netrc-file
Help: Specify FILE for netrc
Arg: <filemame>
Arg: <filename>
Added: 7.21.5
Mutexed: netrc
---

View file

@ -1,7 +1,7 @@
Long: no-keepalive
Help: Disable TCP keepalive on the connection
---
Disables the use of keepalive messages on the TCP connection. curl otherwis
Disables the use of keepalive messages on the TCP connection. curl otherwise
enables them by default.
Note that this is the negated option name documented. You can thus use

View file

@ -1,5 +1,6 @@
Long: oauth2-bearer
Help: OAuth 2 Bearer Token
Arg: <token>
Protocols: IMAP POP3 SMTP
---
Specify the Bearer Token for OAUTH 2.0 server authentication. The Bearer Token

View file

@ -8,3 +8,6 @@ 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.
To suppress proxy CONNECT response headers when curl is set to output headers
use --suppress-connect-headers.

View file

@ -2,7 +2,7 @@ Long: referer
Short: e
Arg: <URL>
Protocols: HTTP
Help: Referer URL
Help: Referrer URL
See-also: user-agent header
---
Sends the "Referrer Page" information to the HTTP server. This can also be set

View file

@ -0,0 +1,8 @@
Long: suppress-connect-headers
Help: Suppress proxy CONNECT response headers
See-also: dump-header include proxytunnel
---
When --proxytunnel is used and a CONNECT request is made don't output proxy
CONNECT response headers. This option is meant to be used with --dump-header or
--include which are used to show protocol headers in the output. It has no
effect on debug options such as --verbose or --trace, or any statistics.

View file

@ -5,5 +5,5 @@ Added: 7.11.2
Turn on the TCP_NODELAY option. See the \fIcurl_easy_setopt(3)\fP man page for
details about this option.
Since 7.50.2, curl sets this option by default and you need to explictitly
Since 7.50.2, curl sets this option by default and you need to explicitly
switch it off if you don't want it on.

View file

@ -0,0 +1,24 @@
Long: tls-max
Arg: <VERSION>
Tags: Versions
Protocols: SSL
Added: 7.54.0
Requires: TLS
See-also: tlsv1.0 tlsv1.1 tlsv1.2
Help: Use TLSv1.0 or greater
---
VERSION defines maximum supported TLS version. A minimum is defined
by arguments tlsv1.0 or tlsv1.1 or tlsv1.2.
.RS
.IP "default"
Use up to recommended TLS version.
.IP "1.0"
Use up to TLSv1.0.
.IP "1.1"
Use up to TLSv1.1.
.IP "1.2"
Use up to TLSv1.2.
.IP "1.3"
Use up to TLSv1.3.
.RE

View file

@ -65,8 +65,9 @@ The result of the HTTPS proxy's SSL peer certificate verification that was
requested. 0 means the verification was successful. (Added in 7.52.0)
.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)
When an HTTP request was made without --location to follow redirects (or when
--max-redir is met), this variable will show the actual URL a redirect
\fIwould\fP have gone to. (Added in 7.18.2)
.TP
.B remote_ip
The remote IP address of the most recently done connection - can be either
@ -120,7 +121,7 @@ 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,
The time, in seconds, it took for all redirection steps including 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)

View file

@ -20,7 +20,8 @@
.\" *
.\" **************************************************************************
.\"
.TH curl-config 1 "25 Oct 2007" "Curl 7.17.1" "curl-config manual"
.TH curl-config 1 "February 03, 2016" "Curl 5.5.5" "curl-config manual"
.SH NAME
curl-config \- Get information about a libcurl installation
.SH SYNOPSIS

View file

@ -22,7 +22,8 @@
.\"
.\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
.\"
.TH curl 1 "16 Dec 2016" "Curl 7.52.0" "Curl Manual"
.TH curl 1 "November 16, 2016" "Curl 7.54.1" "Curl Manual"
.SH NAME
curl \- transfer a URL
.SH SYNOPSIS
@ -266,11 +267,12 @@ If this option is used several times, the last one will be used.
save the uncompressed document. If this option is used and the server sends
an unsupported encoding, curl will report an error.
.IP "-K, --config <file>"
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,
Specify a text file to read curl arguments from. The command line arguments
found in the text file will be used as if they were provided on the command
line.
Options and their parameters must be specified on the same line in the file,
separated by whitespace, colon, or the equals sign. Long option names can
optionally be given in the config file without the initial double dashes and
if so, the colon or equals characters can be used as separators. If the option
@ -292,9 +294,9 @@ line. So, it could look similar to this:
url = "https://curl.haxx.se/docs/"
When curl is invoked, it always (unless \fI-q, --disable\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:
When curl is invoked, it (unless \fI-q, --disable\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
@ -596,12 +598,6 @@ See also \fI--random-file\fP.
(TLS) Select the OpenSSL crypto engine to use for cipher operations. Use \fI--engine\fP
list 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"
Sets a range of environment variables, using the names the \fI-w, --write-out\fP option
supports, to allow easier extraction of useful information after having run
curl.
\fI--environment\fP requires that the underlying libcurl was built to support RISC OS.
.IP "--expect100-timeout <seconds>"
(HTTP) Maximum time in seconds that you allow curl to wait for a 100-continue
response when curl emits an Expects: 100-continue header in its request. By
@ -610,7 +606,7 @@ curl stops waiting, it will continue as if the response has been received.
See also \fI--connect-timeout\fP. Added in 7.47.0.
.IP "--fail-early"
Fail and exit on first detected error.
Fail and exit on the first detected transfer error.
When curl is used to do multiple transfers on the command line, it will
attempt to operate on each given URL, one by one. By default, it will ignore
@ -618,12 +614,15 @@ errors if there are more URLs given and the last URL's success will determine
the error code curl returns. So early failures will be "hidden" by subsequent
successful transfers.
Using this option, curl will instead return an error on the first transfers
that fails, independent on the amount of more URLs that are given on the
command line. This way, no transfer failures go undetected by scripts and
similar.
Using this option, curl will instead return an error on the first transfer
that fails, independent of the amount of URLs that are given on the command
line. This way, no transfer failures go undetected by scripts and similar.
This option will apply for all given URLs even if you use \fI-:, --next\fP.
This option is global and does not need to be specified for each use of \fI-:, --next\fP.
This option does not imply \fI-f, --fail\fP, which causes transfers to fail due to the
server's HTTP status code. You can combine the two options, however note \fI-f, --fail\fP
is not global and is therefore contained by \fI-:, --next\fP.
Added in 7.52.0.
.IP "-f, --fail"
@ -914,13 +913,18 @@ server-name, date of the document, HTTP-version and more...
See also \fI-v, --verbose\fP.
.IP "-k, --insecure"
(TLS) 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.
(TLS)
By default, every SSL connection curl makes is verified to be secure. This
option allows curl to proceed and operate even for server connections
otherwise considered insecure.
The server connection is verified by making sure the server's certificate
contains the right name and verifies successfully using the cert store.
See this online resource for further details:
https://curl.haxx.se/docs/sslcerts.html
See also \fI--proxy-insecure\fP and \fI--cacert\fP.
.IP "--interface <name>"
Perform an operation using a specified interface. You can enter interface
@ -1160,7 +1164,7 @@ and password from the \fI-u, --user\fP option aren't actually used.
If this option is used several times, only the first one is used.
See also \fI--basic\fP and \fI--ntlm\fP and \fI--anyauth\fP and \fI--proxy-negotiate\fP.
.IP "--netrc-file <filemame>"
.IP "--netrc-file <filename>"
This option is similar to \fI-n, --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,
@ -1218,7 +1222,7 @@ Using this option will disable that buffering.
Note that this is the negated option name documented. You can thus use
--buffer to enforce the buffering.
.IP "--no-keepalive"
Disables the use of keepalive messages on the TCP connection. curl otherwis
Disables the use of keepalive messages on the TCP connection. curl otherwise
enables them by default.
Note that this is the negated option name documented. You can thus use
@ -1272,7 +1276,7 @@ If you want to enable NTLM for your proxy authentication, then use
If this option is used several times, only the first one is used.
See also \fI--proxy-ntlm\fP. \fI--ntlm\fP requires that the underlying libcurl was built to support TLS. This option overrides \fI--basic\fP and \fI--negotiated\fP and \fI--digest\fP and \fI--anyauth\fP.
.IP "--oauth2-bearer"
.IP "--oauth2-bearer <token>"
(IMAP POP3 SMTP) Specify the Bearer Token for OAUTH 2.0 server authentication. The Bearer Token
is used in conjunction with the user name which can be specified as part of
the \fI--url\fP or \fI-u, --user\fP options.
@ -1628,6 +1632,9 @@ 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.
To suppress proxy CONNECT response headers when curl is set to output headers
use \fI--suppress-connect-headers\fP.
See also \fI-x, --proxy\fP.
.IP "--pubkey <key>"
(SFTP SCP) Public key file name. Allows you to provide your public key in this separate
@ -2058,6 +2065,13 @@ is a plain '-', it is instead written to stdout.
If this option is used several times, the last one will be used.
See also \fI-v, --verbose\fP and \fI-s, --silent\fP.
.IP "--suppress-connect-headers"
When \fI-p, --proxytunnel\fP is used and a CONNECT request is made don't output proxy
CONNECT response headers. This option is meant to be used with \fI-D, --dump-header\fP or
\fI-i, --include\fP which are used to show protocol headers in the output. It has no
effect on debug options such as \fI-v, --verbose\fP or \fI--trace\fP, or any statistics.
See also \fI-D, --dump-header\fP and \fI-i, --include\fP and \fI-p, --proxytunnel\fP.
.IP "--tcp-fastopen"
Enable use of TCP Fast Open (RFC7413).
@ -2066,7 +2080,7 @@ Added in 7.49.0.
Turn on the TCP_NODELAY option. See the \fIcurl_easy_setopt(3)\fP man page for
details about this option.
Since 7.50.2, curl sets this option by default and you need to explictitly
Since 7.50.2, curl sets this option by default and you need to explicitly
switch it off if you don't want it on.
Added in 7.11.2.
@ -2106,6 +2120,24 @@ that is older than the given date/time, default is a document that is newer
than the specified date/time.
If this option is used several times, the last one will be used.
.IP "--tls-max <VERSION>"
(SSL) VERSION defines maximum supported TLS version. A minimum is defined
by arguments tlsv1.0 or tlsv1.1 or tlsv1.2.
.RS
.IP "default"
Use up to recommended TLS version.
.IP "1.0"
Use up to TLSv1.0.
.IP "1.1"
Use up to TLSv1.1.
.IP "1.2"
Use up to TLSv1.2.
.IP "1.3"
Use up to TLSv1.3.
.RE
See also \fI--tlsv1.0\fP and \fI--tlsv1.1\fP and \fI--tlsv1.2\fP. \fI--tls-max\fP requires that the underlying libcurl was built to support TLS. Added in 7.54.0.
.IP "--tlsauthtype <type>"
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
@ -2395,8 +2427,9 @@ The result of the HTTPS proxy's SSL peer certificate verification that was
requested. 0 means the verification was successful. (Added in 7.52.0)
.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)
When an HTTP request was made without \fI-L, --location\fP to follow redirects (or when
--max-redir is met), this variable will show the actual URL a redirect
\fIwould\fP have gone to. (Added in 7.18.2)
.TP
.B remote_ip
The remote IP address of the most recently done connection - can be either
@ -2450,7 +2483,7 @@ 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,
The time, in seconds, it took for all redirection steps including 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)

View file

@ -43,7 +43,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@ -158,10 +158,12 @@ check_PROGRAMS = 10-at-a-time$(EXEEXT) anyauthput$(EXEEXT) \
imap-tls$(EXEEXT) imap-multi$(EXEEXT) url2file$(EXEEXT) \
sftpget$(EXEEXT) ftpsget$(EXEEXT) postinmemory$(EXEEXT) \
http2-download$(EXEEXT) http2-upload$(EXEEXT) \
http2-serverpush$(EXEEXT) getredirect$(EXEEXT)
http2-serverpush$(EXEEXT) getredirect$(EXEEXT) \
ftpuploadfrommem$(EXEEXT)
subdir = docs/examples
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
$(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
$(top_srcdir)/m4/curl-functions.m4 \
$(top_srcdir)/m4/curl-openssl.m4 \
@ -293,6 +295,13 @@ ftpupload_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@ftpupload_DEPENDENCIES = \
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
ftpuploadfrommem_SOURCES = ftpuploadfrommem.c
ftpuploadfrommem_OBJECTS = ftpuploadfrommem.$(OBJEXT)
ftpuploadfrommem_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@ftpuploadfrommem_DEPENDENCIES = \
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@ftpuploadfrommem_DEPENDENCIES = \
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
getinfo_SOURCES = getinfo.c
getinfo_OBJECTS = getinfo.$(OBJEXT)
getinfo_LDADD = $(LDADD)
@ -740,16 +749,16 @@ am__v_CCLD_1 =
SOURCES = 10-at-a-time.c anyauthput.c certinfo.c chkspeed.c \
cookie_interface.c debug.c externalsocket.c fileupload.c \
fopen.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
ftpsget.c ftpupload.c getinfo.c getinmemory.c getredirect.c \
http-post.c http2-download.c http2-serverpush.c http2-upload.c \
httpcustomheader.c httpput.c https.c imap-append.c imap-copy.c \
imap-create.c imap-delete.c imap-examine.c imap-fetch.c \
imap-list.c imap-lsub.c imap-multi.c imap-noop.c imap-search.c \
imap-ssl.c imap-store.c imap-tls.c multi-app.c \
multi-debugcallback.c multi-double.c multi-post.c \
multi-single.c persistant.c pop3-dele.c pop3-list.c \
pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c \
pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
ftpsget.c ftpupload.c ftpuploadfrommem.c getinfo.c \
getinmemory.c getredirect.c http-post.c http2-download.c \
http2-serverpush.c http2-upload.c httpcustomheader.c httpput.c \
https.c imap-append.c imap-copy.c imap-create.c imap-delete.c \
imap-examine.c imap-fetch.c imap-list.c imap-lsub.c \
imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c \
imap-tls.c multi-app.c multi-debugcallback.c multi-double.c \
multi-post.c multi-single.c persistant.c pop3-dele.c \
pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c \
pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
postinmemory.c postit2.c progressfunc.c resolve.c rtsp.c \
sendrecv.c sepheaders.c sftpget.c simple.c simplepost.c \
simplessl.c smtp-expn.c smtp-mail.c smtp-multi.c smtp-ssl.c \
@ -757,16 +766,16 @@ SOURCES = 10-at-a-time.c anyauthput.c certinfo.c chkspeed.c \
DIST_SOURCES = 10-at-a-time.c anyauthput.c certinfo.c chkspeed.c \
cookie_interface.c debug.c externalsocket.c fileupload.c \
fopen.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
ftpsget.c ftpupload.c getinfo.c getinmemory.c getredirect.c \
http-post.c http2-download.c http2-serverpush.c http2-upload.c \
httpcustomheader.c httpput.c https.c imap-append.c imap-copy.c \
imap-create.c imap-delete.c imap-examine.c imap-fetch.c \
imap-list.c imap-lsub.c imap-multi.c imap-noop.c imap-search.c \
imap-ssl.c imap-store.c imap-tls.c multi-app.c \
multi-debugcallback.c multi-double.c multi-post.c \
multi-single.c persistant.c pop3-dele.c pop3-list.c \
pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c \
pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
ftpsget.c ftpupload.c ftpuploadfrommem.c getinfo.c \
getinmemory.c getredirect.c http-post.c http2-download.c \
http2-serverpush.c http2-upload.c httpcustomheader.c httpput.c \
https.c imap-append.c imap-copy.c imap-create.c imap-delete.c \
imap-examine.c imap-fetch.c imap-list.c imap-lsub.c \
imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c \
imap-tls.c multi-app.c multi-debugcallback.c multi-double.c \
multi-post.c multi-single.c persistant.c pop3-dele.c \
pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c \
pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
postinmemory.c postit2.c progressfunc.c resolve.c rtsp.c \
sendrecv.c sepheaders.c sftpget.c simple.c simplepost.c \
simplessl.c smtp-expn.c smtp-mail.c smtp-multi.c smtp-ssl.c \
@ -812,6 +821,9 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
@ -851,6 +863,8 @@ ENABLE_SHARED = @ENABLE_SHARED@
ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GCOV = @GCOV@
GENHTML = @GENHTML@
GREP = @GREP@
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
@ -863,6 +877,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPV6_ENABLED = @IPV6_ENABLED@
LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBCURL_LIBS = @LIBCURL_LIBS@
@ -1125,6 +1140,10 @@ ftpupload$(EXEEXT): $(ftpupload_OBJECTS) $(ftpupload_DEPENDENCIES) $(EXTRA_ftpup
@rm -f ftpupload$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ftpupload_OBJECTS) $(ftpupload_LDADD) $(LIBS)
ftpuploadfrommem$(EXEEXT): $(ftpuploadfrommem_OBJECTS) $(ftpuploadfrommem_DEPENDENCIES) $(EXTRA_ftpuploadfrommem_DEPENDENCIES)
@rm -f ftpuploadfrommem$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ftpuploadfrommem_OBJECTS) $(ftpuploadfrommem_LDADD) $(LIBS)
getinfo$(EXEEXT): $(getinfo_OBJECTS) $(getinfo_DEPENDENCIES) $(EXTRA_getinfo_DEPENDENCIES)
@rm -f getinfo$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(getinfo_OBJECTS) $(getinfo_LDADD) $(LIBS)
@ -1382,6 +1401,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftpgetresp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftpsget.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftpupload.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftpuploadfrommem.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getinfo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getinmemory.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getredirect.Po@am__quote@

View file

@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@ -32,7 +32,7 @@ check_PROGRAMS = 10-at-a-time anyauthput cookie_interface debug fileupload \
imap-list imap-lsub imap-fetch imap-store imap-append imap-examine \
imap-search imap-create imap-delete imap-copy imap-noop imap-ssl \
imap-tls imap-multi url2file sftpget ftpsget postinmemory http2-download \
http2-upload http2-serverpush getredirect
http2-upload http2-serverpush getredirect ftpuploadfrommem
# These examples require external dependencies that may not be commonly
# available on POSIX systems, so don't bother attempting to compile them here.

View file

@ -64,7 +64,7 @@ DESCR = curl ($(LIBARCH))
MTSAFE = YES
STACK = 8192
SCREEN = Example Program
# Comment the line below if you dont want to load protected automatically.
# Comment the line below if you don't want to load protected automatically.
# LDRING = 3
# Uncomment the next line to enable linking with POSIX semantics.
@ -136,7 +136,7 @@ endif
CFLAGS += -align 4
else
# PRELUDE = $(NDK_CLIB)/imports/clibpre.o
# to avoid the __init_* / __deinit_* whoes dont use prelude from NDK
# to avoid the __init_* / __deinit_* whoes don't use prelude from NDK
PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj"
# CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h"
CFLAGS += -align 1
@ -159,7 +159,7 @@ else
endif
else
# PRELUDE = $(NDK_CLIB)/imports/clibpre.gcc.o
# to avoid the __init_* / __deinit_* whoes dont use prelude from NDK
# to avoid the __init_* / __deinit_* whoes don't use prelude from NDK
# http://www.gknw.net/development/mk_nlm/gcc_pre.zip
PRELUDE = $(NDK_ROOT)/pre/prelude.o
CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h

View file

@ -29,41 +29,17 @@
#ifdef WIN32
# include <io.h>
#else
# ifdef __VMS
typedef int intptr_t;
# endif
# if !defined(_AIX) && !defined(__sgi) && !defined(__osf__)
# include <stdint.h>
# endif
# include <unistd.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#ifdef _MSC_VER
# ifdef _WIN64
typedef __int64 intptr_t;
# else
typedef int intptr_t;
# endif
#endif
#include <curl/curl.h>
#if LIBCURL_VERSION_NUM < 0x070c03
#error "upgrade your libcurl to no less than 7.12.3"
#endif
#ifndef TRUE
#define TRUE 1
#endif
#if defined(_AIX) || defined(__sgi) || defined(__osf__)
#ifndef intptr_t
#define intptr_t long
#endif
#endif
/*
* This example shows a HTTP PUT operation with authentiction using "any"
* type. It PUTs a file given as a command line argument to the URL also given

View file

@ -90,7 +90,7 @@ static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g)
timer.expires_from_now(boost::posix_time::millisec(timeout_ms));
timer.async_wait(boost::bind(&timer_cb, _1, g));
}
else {
else if(timeout_ms == 0) {
/* call timeout function immediately */
boost::system::error_code error; /*success*/
timer_cb(error, g);
@ -170,15 +170,19 @@ static void check_multi_info(GlobalInfo *g)
}
/* Called by asio when there is an action on a socket */
static void event_cb(GlobalInfo *g, boost::asio::ip::tcp::socket *tcp_socket,
static void event_cb(GlobalInfo *g, curl_socket_t s,
int action, const boost::system::error_code & error,
int *fdp)
{
fprintf(MSG_OUT, "\nevent_cb: action=%d", action);
if(socket_map.find(s) == socket_map.end()) {
fprintf(MSG_OUT, "\nevent_cb: socket already closed");
return;
}
/* make sure the event matches what are wanted */
if(*fdp == action || *fdp == CURL_POLL_INOUT) {
curl_socket_t s = tcp_socket->native_handle();
CURLMcode rc;
if(error)
action = CURL_CSELECT_ERR;
@ -197,14 +201,16 @@ static void event_cb(GlobalInfo *g, boost::asio::ip::tcp::socket *tcp_socket,
* in curl_multi_socket_action(), so check them both */
if(!error && socket_map.find(s) != socket_map.end() &&
(*fdp == action || *fdp == CURL_POLL_INOUT)) {
boost::asio::ip::tcp::socket *tcp_socket = socket_map.find(s)->second;
if(action == CURL_POLL_IN) {
tcp_socket->async_read_some(boost::asio::null_buffers(),
boost::bind(&event_cb, g, tcp_socket,
boost::bind(&event_cb, g, s,
action, _1, fdp));
}
if(action == CURL_POLL_OUT) {
tcp_socket->async_write_some(boost::asio::null_buffers(),
boost::bind(&event_cb, g, tcp_socket,
boost::bind(&event_cb, g, s,
action, _1, fdp));
}
}
@ -257,7 +263,7 @@ static void setsock(int *fdp, curl_socket_t s, CURL *e, int act, int oldact,
fprintf(MSG_OUT, "\nwatching for socket to become readable");
if(oldact != CURL_POLL_IN && oldact != CURL_POLL_INOUT) {
tcp_socket->async_read_some(boost::asio::null_buffers(),
boost::bind(&event_cb, g, tcp_socket,
boost::bind(&event_cb, g, s,
CURL_POLL_IN, _1, fdp));
}
}
@ -265,7 +271,7 @@ static void setsock(int *fdp, curl_socket_t s, CURL *e, int act, int oldact,
fprintf(MSG_OUT, "\nwatching for socket to become writable");
if(oldact != CURL_POLL_OUT && oldact != CURL_POLL_INOUT) {
tcp_socket->async_write_some(boost::asio::null_buffers(),
boost::bind(&event_cb, g, tcp_socket,
boost::bind(&event_cb, g, s,
CURL_POLL_OUT, _1, fdp));
}
}
@ -273,12 +279,12 @@ static void setsock(int *fdp, curl_socket_t s, CURL *e, int act, int oldact,
fprintf(MSG_OUT, "\nwatching for socket to become readable & writable");
if(oldact != CURL_POLL_IN && oldact != CURL_POLL_INOUT) {
tcp_socket->async_read_some(boost::asio::null_buffers(),
boost::bind(&event_cb, g, tcp_socket,
boost::bind(&event_cb, g, s,
CURL_POLL_IN, _1, fdp));
}
if(oldact != CURL_POLL_OUT && oldact != CURL_POLL_INOUT) {
tcp_socket->async_write_some(boost::asio::null_buffers(),
boost::bind(&event_cb, g, tcp_socket,
boost::bind(&event_cb, g, s,
CURL_POLL_OUT, _1, fdp));
}
}

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -133,7 +133,7 @@ int main(void)
printf("*** transfer failed ***\n");
/* second try: retrieve page using cacerts' certificate -> will succeed
* load the certificate by installing a function doing the nescessary
* load the certificate by installing a function doing the necessary
* "modifications" to the SSL CONTEXT just before link init
*/
rv=curl_easy_setopt(ch, CURLOPT_SSL_CTX_FUNCTION, *sslctx_function);

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -56,24 +56,19 @@ int main(void)
res = curl_easy_perform(curl);
if(!res) {
union {
struct curl_slist *to_info;
struct curl_certinfo *to_certinfo;
} ptr;
struct curl_certinfo *certinfo;
ptr.to_info = NULL;
res = curl_easy_getinfo(curl, CURLINFO_CERTINFO, &certinfo);
res = curl_easy_getinfo(curl, CURLINFO_CERTINFO, &ptr.to_info);
if(!res && ptr.to_info) {
if(!res && certinfo) {
int i;
printf("%d certs!\n", ptr.to_certinfo->num_of_certs);
printf("%d certs!\n", certinfo->num_of_certs);
for(i = 0; i < ptr.to_certinfo->num_of_certs; i++) {
for(i = 0; i < certinfo->num_of_certs; i++) {
struct curl_slist *slist;
for(slist = ptr.to_certinfo->certinfo[i]; slist; slist = slist->next)
for(slist = certinfo->certinfo[i]; slist; slist = slist->next)
printf("%s\n", slist->data);
}

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -47,7 +47,8 @@ print_cookies(CURL *curl)
curl_easy_strerror(res));
exit(1);
}
nc = cookies, i = 1;
nc = cookies;
i = 1;
while(nc) {
printf("[%d]: %s\n", i, nc->data);
nc = nc->next;
@ -93,9 +94,9 @@ main(void)
#endif
/* Netscape format cookie */
snprintf(nline, sizeof(nline), "%s\t%s\t%s\t%s\t%lu\t%s\t%s",
".google.com", "TRUE", "/", "FALSE",
".example.com", "TRUE", "/", "FALSE",
(unsigned long)time(NULL) + 31337UL,
"PREF", "hello google, i like you very much!");
"PREF", "hello example, i like you very much!");
res = curl_easy_setopt(curl, CURLOPT_COOKIELIST, nline);
if(res != CURLE_OK) {
fprintf(stderr, "Curl curl_easy_setopt failed: %s\n",
@ -111,7 +112,7 @@ main(void)
*/
snprintf(nline, sizeof(nline),
"Set-Cookie: OLD_PREF=3d141414bf4209321; "
"expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com");
"expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.example.com");
res = curl_easy_setopt(curl, CURLOPT_COOKIELIST, nline);
if(res != CURLE_OK) {
fprintf(stderr, "Curl curl_easy_setopt failed: %s\n",

View file

@ -101,7 +101,7 @@
static const char *curlx_usage[]={
"usage: curlx args\n",
" -p12 arg - tia file ",
" -envpass arg - environement variable which content the tia private"
" -envpass arg - environment variable which content the tia private"
" key password",
" -out arg - output file (response)- default stdout",
" -in arg - input file (request)- default stdin",

View file

@ -91,6 +91,7 @@ int my_trace(CURL *handle, curl_infotype type,
switch(type) {
case CURLINFO_TEXT:
fprintf(stderr, "== Info: %s", data);
/* FALLTHROUGH */
default: /* in case a new one is introduced to shock us */
return 0;

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -124,7 +124,7 @@ static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g)
ev_timer_init(&g->timer_event, timer_cb, t, 0.);
ev_timer_start(g->loop, &g->timer_event);
}
else
else if(timeout_ms == 0)
timer_cb(g->loop, &g->timer_event, 0);
return 0;
}

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -38,7 +38,7 @@
#include <sys/types.h> /* socket types */
#include <sys/socket.h> /* socket definitions */
#include <netinet/in.h>
#include <arpa/inet.h> /* inet (3) funtions */
#include <arpa/inet.h> /* inet (3) functions */
#include <unistd.h> /* misc. Unix functions */
#endif
@ -58,6 +58,13 @@ static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
return written;
}
static int closecb(void *clientp, curl_socket_t item)
{
(void)clientp;
printf("libcurl wants to close %d now\n", (int)item);
return 0;
}
static curl_socket_t opensocket(void *clientp,
curlsocktype purpose,
struct curl_sockaddr *address)
@ -137,6 +144,10 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_OPENSOCKETFUNCTION, opensocket);
curl_easy_setopt(curl, CURLOPT_OPENSOCKETDATA, &sockfd);
/* call this function to close sockets */
curl_easy_setopt(curl, CURLOPT_CLOSESOCKETFUNCTION, closecb);
curl_easy_setopt(curl, CURLOPT_CLOSESOCKETDATA, &sockfd);
/* call this function to set options for the socket */
curl_easy_setopt(curl, CURLOPT_SOCKOPTFUNCTION, sockopt_callback);

View file

@ -10,8 +10,8 @@
* instead of (only) local files. Local files (ie those that can be directly
* fopened) will drop back to using the underlying clib implementations
*
* See the main() function at the bottom that shows an app that retrives from a
* specified url using fgets() and fread() and saves as two output files.
* See the main() function at the bottom that shows an app that retrieves from
* a specified url using fgets() and fread() and saves as two output files.
*
* Copyright (c) 2003 Simtec Electronics
*
@ -88,7 +88,7 @@ char *url_fgets(char *ptr, size_t size, URL_FILE *file);
void url_rewind(URL_FILE *file);
/* we use a global one for convenience */
CURLM *multi_handle;
static CURLM *multi_handle;
/* curl calls this routine to get more data */
static size_t write_callback(char *buffer,
@ -345,7 +345,7 @@ size_t url_fread(void *ptr, size_t size, size_t nmemb, URL_FILE *file)
fill_buffer(file, want);
/* check if theres data in the buffer - if not fill_buffer()
/* check if there's data in the buffer - if not fill_buffer()
* either errored or EOF */
if(!file->buffer_pos)
return 0;
@ -384,7 +384,7 @@ char *url_fgets(char *ptr, size_t size, URL_FILE *file)
case CFTYPE_CURL:
fill_buffer(file, want);
/* check if theres data in the buffer - if not fill either errored or
/* check if there's data in the buffer - if not fill either errored or
* EOF */
if(!file->buffer_pos)
return NULL;
@ -404,7 +404,7 @@ char *url_fgets(char *ptr, size_t size, URL_FILE *file)
/* xfer data to caller */
memcpy(ptr, file->buffer, want);
ptr[want]=0;/* allways null terminate */
ptr[want]=0;/* always null terminate */
use_buffer(file, want);
@ -450,7 +450,7 @@ void url_rewind(URL_FILE *file)
#define FREADFILE "fread.test"
#define REWINDFILE "rewind.test"
/* Small main program to retrive from a url using fgets and fread saving the
/* Small main program to retrieve from a url using fgets and fread saving the
* output to two test files (note the fgets method will corrupt binary files if
* they contain 0 chars */
int main(int argc, char *argv[])

View file

@ -0,0 +1,124 @@
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, 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 https://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.
*
***************************************************************************/
/* <DESC>
* FTP upload a file from memory
* </DESC>
*/
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
static const char data[]=
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. "
"Nam rhoncus odio id venenatis volutpat. Vestibulum dapibus "
"bibendum ullamcorper. Maecenas finibus elit augue, vel "
"condimentum odio maximus nec. In hac habitasse platea dictumst. "
"Vestibulum vel dolor et turpis rutrum finibus ac at nulla. "
"Vivamus nec neque ac elit blandit pretium vitae maximus ipsum. "
"Quisque sodales magna vel erat auctor, sed pellentesque nisi "
"rhoncus. Donec vehicula maximus pretium. Aliquam eu tincidunt "
"lorem.";
struct WriteThis {
const char *readptr;
size_t sizeleft;
};
static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp)
{
struct WriteThis *upload = (struct WriteThis *)userp;
size_t max = size*nmemb;
if(max < 1)
return 0;
if(upload->sizeleft) {
size_t copylen = max;
if(copylen > upload->sizeleft)
copylen = upload->sizeleft;
memcpy(ptr, upload->readptr, copylen);
upload->readptr += copylen;
upload->sizeleft -= copylen;
return copylen;
}
return 0; /* no more data left to deliver */
}
int main(void)
{
CURL *curl;
CURLcode res;
struct WriteThis upload;
upload.readptr = data;
upload.sizeleft = strlen(data);
/* In windows, this will init the winsock stuff */
res = curl_global_init(CURL_GLOBAL_DEFAULT);
/* Check for errors */
if(res != CURLE_OK) {
fprintf(stderr, "curl_global_init() failed: %s\n",
curl_easy_strerror(res));
return 1;
}
/* get a curl handle */
curl = curl_easy_init();
if(curl) {
/* First set the URL, the target file */
curl_easy_setopt(curl, CURLOPT_URL,
"ftp://example.com/path/to/upload/file");
/* User and password for the FTP login */
curl_easy_setopt(curl, CURLOPT_USERPWD, "login:secret");
/* Now specify we want to UPLOAD data */
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
/* we want to use our own read function */
curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback);
/* pointer to pass to our read function */
curl_easy_setopt(curl, CURLOPT_READDATA, &upload);
/* get verbose debug output please */
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
/* Set the expected upload size. */
curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
(curl_off_t)upload.sizeleft);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -163,6 +163,15 @@ static int update_timeout_cb(CURLM *multi, long timeout_ms, void *userp)
MSG_OUT("*** update_timeout_cb %ld => %ld:%ld ***\n",
timeout_ms, timeout.tv_sec, timeout.tv_usec);
/* TODO
*
* if timeout_ms is 0, call curl_multi_socket_action() at once!
*
* if timeout_ms is -1, just delete the timer
*
* for all other values of timeout_ms, this should set or *update*
* the timer to the new value
*/
g->timer_event = g_timeout_add(timeout_ms, timer_cb, g);
return 0;
}

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -108,8 +108,6 @@ typedef struct _SockInfo
GlobalInfo *global;
} SockInfo;
/* Update the event timer after curl_multi library calls */
static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g)
{
@ -119,6 +117,16 @@ static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g)
timeout.tv_sec = timeout_ms/1000;
timeout.tv_usec = (timeout_ms%1000)*1000;
fprintf(MSG_OUT, "multi_timer_cb: Setting timeout to %ld ms\n", timeout_ms);
/* TODO
*
* if timeout_ms is 0, call curl_multi_socket_action() at once!
*
* if timeout_ms is -1, just delete the timer
*
* for all other values of timeout_ms, this should set or *update*
* the timer to the new value
*/
evtimer_add(g->timer_event, &timeout);
return 0;
}

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -43,8 +43,8 @@
#define NUM_HANDLES 1000
void *curl_hnd[NUM_HANDLES];
int num_transfers;
static void *curl_hnd[NUM_HANDLES];
static int num_transfers;
/* a handle to number lookup, highly ineffective when we do many
transfers... */
@ -117,6 +117,7 @@ int my_trace(CURL *handle, curl_infotype type,
switch(type) {
case CURLINFO_TEXT:
fprintf(stderr, "== %d Info: %s", num, data);
/* FALLTHROUGH */
default: /* in case a new one is introduced to shock us */
return 0;
@ -159,7 +160,7 @@ static void setup(CURL *hnd, int num)
/* set the same URL */
curl_easy_setopt(hnd, CURLOPT_URL, "https://localhost:8443/index.html");
/* send it verbose for max debuggaility */
/* please be verbose */
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_DEBUGFUNCTION, my_trace);

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -96,6 +96,7 @@ int my_trace(CURL *handle, curl_infotype type,
switch(type) {
case CURLINFO_TEXT:
fprintf(stderr, "== Info: %s", data);
/* FALLTHROUGH */
default: /* in case a new one is introduced to shock us */
return 0;
@ -135,7 +136,7 @@ static void setup(CURL *hnd)
/* set the same URL */
curl_easy_setopt(hnd, CURLOPT_URL, "https://localhost:8443/index.html");
/* send it verbose for max debuggaility */
/* please be verbose */
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_DEBUGFUNCTION, my_trace);

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -45,8 +45,8 @@
#define NUM_HANDLES 1000
void *curl_hnd[NUM_HANDLES];
int num_transfers;
static void *curl_hnd[NUM_HANDLES];
static int num_transfers;
/* a handle to number lookup, highly ineffective when we do many
transfers... */
@ -136,6 +136,7 @@ int my_trace(CURL *handle, curl_infotype type,
switch(type) {
case CURLINFO_TEXT:
fprintf(stderr, "%s [%d] Info: %s", timebuf, num, data);
/* FALLTHROUGH */
default: /* in case a new one is introduced to shock us */
return 0;
@ -177,7 +178,7 @@ static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp)
return retcode;
}
struct input indata[NUM_HANDLES];
static struct input indata[NUM_HANDLES];
static void setup(CURL *hnd, int num, const char *upload)
{
@ -215,7 +216,7 @@ static void setup(CURL *hnd, int num, const char *upload)
/* upload please */
curl_easy_setopt(hnd, CURLOPT_UPLOAD, 1L);
/* send it verbose for max debuggaility */
/* please be verbose */
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_DEBUGFUNCTION, my_trace);

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -48,7 +48,7 @@ int main(void)
/* This is source mailbox folder to select */
curl_easy_setopt(curl, CURLOPT_URL, "imap://imap.example.com/INBOX");
/* Set the COPY command specifing the message ID and destination folder */
/* Set the COPY command specifying the message ID and destination folder */
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "COPY 1 FOLDER");
/* Note that to perform a move operation you will need to perform the copy,

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -48,7 +48,7 @@ int main(void)
/* This is just the server URL */
curl_easy_setopt(curl, CURLOPT_URL, "imap://imap.example.com");
/* Set the CREATE command specifing the new folder name */
/* Set the CREATE command specifying the new folder name */
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "CREATE FOLDER");
/* Perform the custom request */

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -48,7 +48,7 @@ int main(void)
/* This is just the server URL */
curl_easy_setopt(curl, CURLOPT_URL, "imap://imap.example.com");
/* Set the DELETE command specifing the existing folder */
/* Set the DELETE command specifying the existing folder */
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE FOLDER");
/* Perform the custom request */

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -48,7 +48,7 @@ int main(void)
/* This is just the server URL */
curl_easy_setopt(curl, CURLOPT_URL, "imap://imap.example.com");
/* Set the EXAMINE command specifing the mailbox folder */
/* Set the EXAMINE command specifying the mailbox folder */
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "EXAMINE OUTBOX");
/* Perform the custom request */

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -48,7 +48,7 @@ int main(void)
/* This is mailbox folder to select */
curl_easy_setopt(curl, CURLOPT_URL, "imap://imap.example.com/INBOX");
/* Set the SEARCH command specifing what we want to search for. Note that
/* Set the SEARCH command specifying what we want to search for. Note that
* this can contain a message sequence set and a number of search criteria
* keywords including flags such as ANSWERED, DELETED, DRAFT, FLAGGED, NEW,
* RECENT and SEEN. For more information about the search criteria please

View file

@ -99,6 +99,7 @@ int my_trace(CURL *handle, curl_infotype type,
switch(type) {
case CURLINFO_TEXT:
fprintf(stderr, "== Info: %s", data);
/* FALLTHROUGH */
default: /* in case a new one is introduced to shock us */
return 0;

View file

@ -148,7 +148,7 @@ static void curl_perform(uv_poll_t *req, int status, int events)
check_multi_info();
}
static void on_timeout(uv_timer_t *req, int status)
static void on_timeout(uv_timer_t *req)
{
int running_handles;
curl_multi_socket_action(curl_handle, CURL_SOCKET_TIMEOUT, 0,

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -21,7 +21,7 @@
***************************************************************************/
/* <DESC>
* POP3 example showing how to retreive only the headers of an e-mail
* POP3 example showing how to retrieve only the headers of an e-mail
* </DESC>
*/

View file

@ -28,7 +28,7 @@
#include <string.h>
#include <curl/curl.h>
const char data[]="this is what we post to the silly web server";
static const char data[]="this is what we post to the silly web server";
struct WriteThis {
const char *readptr;

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@ -42,49 +42,49 @@
#include <stdio.h>
#include <curl/curl.h>
CURLcode my_conv_from_ascii_to_ebcdic(char *buffer, size_t length)
static CURLcode my_conv_from_ascii_to_ebcdic(char *buffer, size_t length)
{
char *tempptrin, *tempptrout;
size_t bytes = length;
int rc;
tempptrin = tempptrout = buffer;
rc = platform_a2e(&tempptrin, &bytes, &tempptrout, &bytes);
if(rc == PLATFORM_CONV_OK) {
return CURLE_OK;
}
else {
return CURLE_CONV_FAILED;
}
char *tempptrin, *tempptrout;
size_t bytes = length;
int rc;
tempptrin = tempptrout = buffer;
rc = platform_a2e(&tempptrin, &bytes, &tempptrout, &bytes);
if(rc == PLATFORM_CONV_OK) {
return CURLE_OK;
}
else {
return CURLE_CONV_FAILED;
}
}
CURLcode my_conv_from_ebcdic_to_ascii(char *buffer, size_t length)
static CURLcode my_conv_from_ebcdic_to_ascii(char *buffer, size_t length)
{
char *tempptrin, *tempptrout;
size_t bytes = length;
int rc;
tempptrin = tempptrout = buffer;
rc = platform_e2a(&tempptrin, &bytes, &tempptrout, &bytes);
if(rc == PLATFORM_CONV_OK) {
return CURLE_OK;
}
else {
return CURLE_CONV_FAILED;
}
char *tempptrin, *tempptrout;
size_t bytes = length;
int rc;
tempptrin = tempptrout = buffer;
rc = platform_e2a(&tempptrin, &bytes, &tempptrout, &bytes);
if(rc == PLATFORM_CONV_OK) {
return CURLE_OK;
}
else {
return CURLE_CONV_FAILED;
}
}
CURLcode my_conv_from_utf8_to_ebcdic(char *buffer, size_t length)
static CURLcode my_conv_from_utf8_to_ebcdic(char *buffer, size_t length)
{
char *tempptrin, *tempptrout;
size_t bytes = length;
int rc;
tempptrin = tempptrout = buffer;
rc = platform_u2e(&tempptrin, &bytes, &tempptrout, &bytes);
if(rc == PLATFORM_CONV_OK) {
return CURLE_OK;
}
else {
return CURLE_CONV_FAILED;
}
char *tempptrin, *tempptrout;
size_t bytes = length;
int rc;
tempptrin = tempptrout = buffer;
rc = platform_u2e(&tempptrin, &bytes, &tempptrout, &bytes);
if(rc == PLATFORM_CONV_OK) {
return CURLE_OK;
}
else {
return CURLE_CONV_FAILED;
}
}
int main(void)

View file

@ -52,7 +52,7 @@ static int wait_on_socket(curl_socket_t sockfd, int for_recv, long timeout_ms)
}
/* select() returns the number of signalled sockets or -1 */
res = select(sockfd + 1, &infd, &outfd, &errfd, &tv);
res = select((int)sockfd + 1, &infd, &outfd, &errfd, &tv);
return res;
}

View file

@ -0,0 +1,55 @@
# Load man_MANS from shared file
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
function(add_manual_pages _listname)
foreach(_file IN LISTS ${_listname})
if(_file STREQUAL "libcurl-symbols.3")
# Special case, an auto-generated file.
set(_srcfile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
else()
set(_srcfile "${CMAKE_CURRENT_SOURCE_DIR}/${_file}")
endif()
string(REPLACE ".3" ".html" _htmlfile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
add_custom_command(OUTPUT "${_htmlfile}"
COMMAND roffit "--mandir=${CMAKE_CURRENT_SOURCE_DIR}" "${_srcfile}" > "${_htmlfile}"
DEPENDS "${_srcfile}"
VERBATIM
)
string(REPLACE ".3" ".pdf" _pdffile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
string(REPLACE ".3" ".ps" _psfile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
# XXX any reason why groff -Tpdf (for gropdf) is not used?
add_custom_command(OUTPUT "${_pdffile}"
COMMAND groff -Tps -man "${_srcfile}" > "${_psfile}"
COMMAND ps2pdf "${_psfile}" "${_pdffile}"
COMMAND "${CMAKE_COMMAND}" -E remove "${_psfile}"
DEPENDS "${_srcfile}"
#BYPRODUCTS "${_psfile}"
VERBATIM
)
# "BYPRODUCTS" for add_custom_command requires CMake 3.2. For now hope that
# the temporary files are removed (i.e. the command is not interrupted).
endforeach()
endfunction()
add_custom_command(OUTPUT libcurl-symbols.3
COMMAND
"${PERL_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/mksymbolsmanpage.pl" <
"${CMAKE_CURRENT_SOURCE_DIR}/symbols-in-versions" > libcurl-symbols.3
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/symbols-in-versions"
"${CMAKE_CURRENT_SOURCE_DIR}/mksymbolsmanpage.pl"
VERBATIM
)
add_manual_pages(man_MANS)
string(REPLACE ".3" ".html" HTMLPAGES "${man_MANS}")
string(REPLACE ".3" ".pdf" PDFPAGES "${man_MANS}")
add_custom_target(html DEPENDS ${HTMLPAGES})
add_custom_target(pdf DEPENDS ${PDFPAGES})
add_subdirectory(opts)

View file

@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@ -24,74 +24,22 @@ AUTOMAKE_OPTIONS = foreign no-dependencies
SUBDIRS = opts
man_MANS = curl_easy_cleanup.3 curl_easy_getinfo.3 curl_easy_init.3 \
curl_easy_perform.3 curl_easy_setopt.3 curl_easy_duphandle.3 \
curl_formadd.3 curl_formfree.3 curl_getdate.3 curl_getenv.3 \
curl_slist_append.3 curl_slist_free_all.3 curl_version.3 \
curl_version_info.3 curl_escape.3 curl_unescape.3 curl_free.3 \
curl_strequal.3 curl_mprintf.3 curl_global_init.3 \
curl_global_cleanup.3 curl_multi_add_handle.3 curl_multi_cleanup.3 \
curl_multi_fdset.3 curl_multi_info_read.3 curl_multi_init.3 \
curl_multi_perform.3 curl_multi_remove_handle.3 curl_share_cleanup.3 \
curl_share_init.3 curl_share_setopt.3 libcurl.3 libcurl-easy.3 \
libcurl-multi.3 libcurl-share.3 libcurl-errors.3 curl_easy_strerror.3 \
curl_multi_strerror.3 curl_share_strerror.3 curl_global_init_mem.3 \
libcurl-tutorial.3 curl_easy_reset.3 curl_easy_escape.3 \
curl_easy_unescape.3 curl_multi_setopt.3 curl_multi_socket.3 \
curl_multi_timeout.3 curl_formget.3 curl_multi_assign.3 \
curl_easy_pause.3 curl_easy_recv.3 curl_easy_send.3 \
curl_multi_socket_action.3 curl_multi_wait.3 libcurl-symbols.3 \
libcurl-thread.3 curl_multi_socket_all.3
include Makefile.inc
HTMLPAGES = curl_easy_cleanup.html curl_easy_getinfo.html \
curl_easy_init.html curl_easy_perform.html curl_easy_setopt.html \
curl_easy_duphandle.html curl_formadd.html curl_formfree.html \
curl_getdate.html curl_getenv.html curl_slist_append.html \
curl_slist_free_all.html curl_version.html curl_version_info.html \
curl_escape.html curl_unescape.html curl_free.html curl_strequal.html \
curl_mprintf.html curl_global_init.html curl_global_cleanup.html \
curl_multi_add_handle.html curl_multi_cleanup.html \
curl_multi_fdset.html curl_multi_info_read.html curl_multi_init.html \
curl_multi_perform.html curl_multi_remove_handle.html \
curl_share_cleanup.html curl_share_init.html curl_share_setopt.html \
libcurl.html libcurl-multi.html libcurl-easy.html libcurl-share.html \
libcurl-errors.html curl_easy_strerror.html curl_multi_strerror.html \
curl_share_strerror.html curl_global_init_mem.html \
libcurl-tutorial.html curl_easy_reset.html curl_easy_escape.html \
curl_easy_unescape.html curl_multi_setopt.html curl_multi_socket.html \
curl_multi_timeout.html curl_formget.html curl_multi_assign.html \
curl_easy_pause.html curl_easy_recv.html curl_easy_send.html \
curl_multi_socket_action.html curl_multi_wait.html \
libcurl-symbols.html libcurl-thread.html curl_multi_socket_all.html
man_DISTMANS = $(man_MANS:.3=.3.dist)
PDFPAGES = curl_easy_cleanup.pdf curl_easy_getinfo.pdf \
curl_easy_init.pdf curl_easy_perform.pdf curl_easy_setopt.pdf \
curl_easy_duphandle.pdf curl_formadd.pdf curl_formfree.pdf \
curl_getdate.pdf curl_getenv.pdf curl_slist_append.pdf \
curl_slist_free_all.pdf curl_version.pdf curl_version_info.pdf \
curl_escape.pdf curl_unescape.pdf curl_free.pdf curl_strequal.pdf \
curl_mprintf.pdf curl_global_init.pdf curl_global_cleanup.pdf \
curl_multi_add_handle.pdf curl_multi_cleanup.pdf curl_multi_fdset.pdf \
curl_multi_info_read.pdf curl_multi_init.pdf curl_multi_perform.pdf \
curl_multi_remove_handle.pdf curl_share_cleanup.pdf \
curl_share_init.pdf curl_share_setopt.pdf libcurl.pdf \
libcurl-multi.pdf libcurl-easy.pdf libcurl-share.pdf \
libcurl-errors.pdf curl_easy_strerror.pdf curl_multi_strerror.pdf \
curl_share_strerror.pdf curl_global_init_mem.pdf libcurl-tutorial.pdf \
curl_easy_reset.pdf curl_easy_escape.pdf curl_easy_unescape.pdf \
curl_multi_setopt.pdf curl_multi_socket.pdf curl_multi_timeout.pdf \
curl_formget.pdf curl_multi_assign.pdf curl_easy_pause.pdf \
curl_easy_recv.pdf curl_easy_send.pdf curl_multi_socket_action.pdf \
curl_multi_wait.pdf libcurl-symbols.pdf libcurl-thread.pdf \
curl_multi_socket_all.pdf
HTMLPAGES = $(man_MANS:.3=.html)
PDFPAGES = $(man_MANS:.3=.pdf)
m4macrodir = $(datadir)/aclocal
dist_m4macro_DATA = libcurl.m4
CLEANFILES = $(HTMLPAGES) $(PDFPAGES) $(TESTS) libcurl-symbols.3
CLEANFILES = $(HTMLPAGES) $(PDFPAGES) $(TESTS) $(man_DISTMANS) \
libcurl-symbols.3
EXTRA_DIST = $(man_MANS) index.html ABI symbols-in-versions symbols.pl \
mksymbolsmanpage.pl
mksymbolsmanpage.pl CMakeLists.txt
MAN2HTML= roffit --mandir=. $< >$@
SUFFIXES = .3 .html
@ -100,13 +48,13 @@ libcurl-symbols.3: $(srcdir)/symbols-in-versions $(srcdir)/mksymbolsmanpage.pl
perl $(srcdir)/mksymbolsmanpage.pl < $(srcdir)/symbols-in-versions > $@
html: $(HTMLPAGES)
cd opts && make html
cd opts && $(MAKE) html
.3.html:
$(MAN2HTML)
pdf: $(PDFPAGES)
cd opts && make pdf
cd opts && $(MAKE) pdf
.3.pdf:
@(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \

View file

@ -21,7 +21,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@ -36,6 +36,8 @@
#
###########################################################################
# Shared between Makefile.am and CMakeLists.txt
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
@ -112,7 +114,8 @@ build_triplet = @build@
host_triplet = @host@
subdir = docs/libcurl
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
$(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
$(top_srcdir)/m4/curl-functions.m4 \
$(top_srcdir)/m4/curl-openssl.m4 \
@ -402,7 +405,8 @@ TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
$(TEST_LOG_FLAGS)
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/test-driver
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.inc \
$(top_srcdir)/test-driver
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
@ -443,6 +447,9 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
@ -482,6 +489,8 @@ ENABLE_SHARED = @ENABLE_SHARED@
ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GCOV = @GCOV@
GENHTML = @GENHTML@
GREP = @GREP@
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
@ -494,6 +503,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPV6_ENABLED = @IPV6_ENABLED@
LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBCURL_LIBS = @LIBCURL_LIBS@
@ -621,72 +631,35 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign no-dependencies
SUBDIRS = opts
man_MANS = curl_easy_cleanup.3 curl_easy_getinfo.3 curl_easy_init.3 \
curl_easy_perform.3 curl_easy_setopt.3 curl_easy_duphandle.3 \
curl_formadd.3 curl_formfree.3 curl_getdate.3 curl_getenv.3 \
curl_slist_append.3 curl_slist_free_all.3 curl_version.3 \
curl_version_info.3 curl_escape.3 curl_unescape.3 curl_free.3 \
curl_strequal.3 curl_mprintf.3 curl_global_init.3 \
curl_global_cleanup.3 curl_multi_add_handle.3 curl_multi_cleanup.3 \
curl_multi_fdset.3 curl_multi_info_read.3 curl_multi_init.3 \
curl_multi_perform.3 curl_multi_remove_handle.3 curl_share_cleanup.3 \
curl_share_init.3 curl_share_setopt.3 libcurl.3 libcurl-easy.3 \
libcurl-multi.3 libcurl-share.3 libcurl-errors.3 curl_easy_strerror.3 \
curl_multi_strerror.3 curl_share_strerror.3 curl_global_init_mem.3 \
libcurl-tutorial.3 curl_easy_reset.3 curl_easy_escape.3 \
curl_easy_unescape.3 curl_multi_setopt.3 curl_multi_socket.3 \
curl_multi_timeout.3 curl_formget.3 curl_multi_assign.3 \
curl_easy_pause.3 curl_easy_recv.3 curl_easy_send.3 \
curl_multi_socket_action.3 curl_multi_wait.3 libcurl-symbols.3 \
libcurl-thread.3 curl_multi_socket_all.3
HTMLPAGES = curl_easy_cleanup.html curl_easy_getinfo.html \
curl_easy_init.html curl_easy_perform.html curl_easy_setopt.html \
curl_easy_duphandle.html curl_formadd.html curl_formfree.html \
curl_getdate.html curl_getenv.html curl_slist_append.html \
curl_slist_free_all.html curl_version.html curl_version_info.html \
curl_escape.html curl_unescape.html curl_free.html curl_strequal.html \
curl_mprintf.html curl_global_init.html curl_global_cleanup.html \
curl_multi_add_handle.html curl_multi_cleanup.html \
curl_multi_fdset.html curl_multi_info_read.html curl_multi_init.html \
curl_multi_perform.html curl_multi_remove_handle.html \
curl_share_cleanup.html curl_share_init.html curl_share_setopt.html \
libcurl.html libcurl-multi.html libcurl-easy.html libcurl-share.html \
libcurl-errors.html curl_easy_strerror.html curl_multi_strerror.html \
curl_share_strerror.html curl_global_init_mem.html \
libcurl-tutorial.html curl_easy_reset.html curl_easy_escape.html \
curl_easy_unescape.html curl_multi_setopt.html curl_multi_socket.html \
curl_multi_timeout.html curl_formget.html curl_multi_assign.html \
curl_easy_pause.html curl_easy_recv.html curl_easy_send.html \
curl_multi_socket_action.html curl_multi_wait.html \
libcurl-symbols.html libcurl-thread.html curl_multi_socket_all.html
PDFPAGES = curl_easy_cleanup.pdf curl_easy_getinfo.pdf \
curl_easy_init.pdf curl_easy_perform.pdf curl_easy_setopt.pdf \
curl_easy_duphandle.pdf curl_formadd.pdf curl_formfree.pdf \
curl_getdate.pdf curl_getenv.pdf curl_slist_append.pdf \
curl_slist_free_all.pdf curl_version.pdf curl_version_info.pdf \
curl_escape.pdf curl_unescape.pdf curl_free.pdf curl_strequal.pdf \
curl_mprintf.pdf curl_global_init.pdf curl_global_cleanup.pdf \
curl_multi_add_handle.pdf curl_multi_cleanup.pdf curl_multi_fdset.pdf \
curl_multi_info_read.pdf curl_multi_init.pdf curl_multi_perform.pdf \
curl_multi_remove_handle.pdf curl_share_cleanup.pdf \
curl_share_init.pdf curl_share_setopt.pdf libcurl.pdf \
libcurl-multi.pdf libcurl-easy.pdf libcurl-share.pdf \
libcurl-errors.pdf curl_easy_strerror.pdf curl_multi_strerror.pdf \
curl_share_strerror.pdf curl_global_init_mem.pdf libcurl-tutorial.pdf \
curl_easy_reset.pdf curl_easy_escape.pdf curl_easy_unescape.pdf \
curl_multi_setopt.pdf curl_multi_socket.pdf curl_multi_timeout.pdf \
curl_formget.pdf curl_multi_assign.pdf curl_easy_pause.pdf \
curl_easy_recv.pdf curl_easy_send.pdf curl_multi_socket_action.pdf \
curl_multi_wait.pdf libcurl-symbols.pdf libcurl-thread.pdf \
curl_multi_socket_all.pdf
man_MANS = curl_easy_cleanup.3 curl_easy_getinfo.3 curl_easy_init.3 \
curl_easy_perform.3 curl_easy_setopt.3 curl_easy_duphandle.3 \
curl_formadd.3 curl_formfree.3 curl_getdate.3 curl_getenv.3 \
curl_slist_append.3 curl_slist_free_all.3 curl_version.3 \
curl_version_info.3 curl_escape.3 curl_unescape.3 curl_free.3 \
curl_strequal.3 curl_mprintf.3 curl_global_init.3 \
curl_global_cleanup.3 curl_multi_add_handle.3 curl_multi_cleanup.3 \
curl_multi_fdset.3 curl_multi_info_read.3 curl_multi_init.3 \
curl_multi_perform.3 curl_multi_remove_handle.3 curl_share_cleanup.3 \
curl_share_init.3 curl_share_setopt.3 libcurl.3 libcurl-easy.3 \
libcurl-multi.3 libcurl-share.3 libcurl-errors.3 curl_easy_strerror.3 \
curl_multi_strerror.3 curl_share_strerror.3 curl_global_init_mem.3 \
libcurl-tutorial.3 curl_easy_reset.3 curl_easy_escape.3 \
curl_easy_unescape.3 curl_multi_setopt.3 curl_multi_socket.3 \
curl_multi_timeout.3 curl_formget.3 curl_multi_assign.3 \
curl_easy_pause.3 curl_easy_recv.3 curl_easy_send.3 \
curl_multi_socket_action.3 curl_multi_wait.3 libcurl-symbols.3 \
libcurl-thread.3 curl_multi_socket_all.3
man_DISTMANS = $(man_MANS:.3=.3.dist)
HTMLPAGES = $(man_MANS:.3=.html)
PDFPAGES = $(man_MANS:.3=.pdf)
m4macrodir = $(datadir)/aclocal
dist_m4macro_DATA = libcurl.m4
CLEANFILES = $(HTMLPAGES) $(PDFPAGES) $(TESTS) libcurl-symbols.3
CLEANFILES = $(HTMLPAGES) $(PDFPAGES) $(TESTS) $(man_DISTMANS) \
libcurl-symbols.3
EXTRA_DIST = $(man_MANS) index.html ABI symbols-in-versions symbols.pl \
mksymbolsmanpage.pl
mksymbolsmanpage.pl CMakeLists.txt
MAN2HTML = roffit --mandir=. $< >$@
SUFFIXES = .3 .html
@ -700,7 +673,7 @@ all: all-recursive
.SUFFIXES:
.SUFFIXES: .3 .html .log .pdf .test .test$(EXEEXT) .trs
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.inc $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@ -720,6 +693,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(srcdir)/Makefile.inc $(am__empty):
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@ -1256,13 +1230,13 @@ libcurl-symbols.3: $(srcdir)/symbols-in-versions $(srcdir)/mksymbolsmanpage.pl
perl $(srcdir)/mksymbolsmanpage.pl < $(srcdir)/symbols-in-versions > $@
html: $(HTMLPAGES)
cd opts && make html
cd opts && $(MAKE) html
.3.html:
$(MAN2HTML)
pdf: $(PDFPAGES)
cd opts && make pdf
cd opts && $(MAKE) pdf
.3.pdf:
@(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \

View file

@ -0,0 +1,20 @@
# Shared between Makefile.am and CMakeLists.txt
man_MANS = curl_easy_cleanup.3 curl_easy_getinfo.3 curl_easy_init.3 \
curl_easy_perform.3 curl_easy_setopt.3 curl_easy_duphandle.3 \
curl_formadd.3 curl_formfree.3 curl_getdate.3 curl_getenv.3 \
curl_slist_append.3 curl_slist_free_all.3 curl_version.3 \
curl_version_info.3 curl_escape.3 curl_unescape.3 curl_free.3 \
curl_strequal.3 curl_mprintf.3 curl_global_init.3 \
curl_global_cleanup.3 curl_multi_add_handle.3 curl_multi_cleanup.3 \
curl_multi_fdset.3 curl_multi_info_read.3 curl_multi_init.3 \
curl_multi_perform.3 curl_multi_remove_handle.3 curl_share_cleanup.3 \
curl_share_init.3 curl_share_setopt.3 libcurl.3 libcurl-easy.3 \
libcurl-multi.3 libcurl-share.3 libcurl-errors.3 curl_easy_strerror.3 \
curl_multi_strerror.3 curl_share_strerror.3 curl_global_init_mem.3 \
libcurl-tutorial.3 curl_easy_reset.3 curl_easy_escape.3 \
curl_easy_unescape.3 curl_multi_setopt.3 curl_multi_socket.3 \
curl_multi_timeout.3 curl_formget.3 curl_multi_assign.3 \
curl_easy_pause.3 curl_easy_recv.3 curl_easy_send.3 \
curl_multi_socket_action.3 curl_multi_wait.3 libcurl-symbols.3 \
libcurl-thread.3 curl_multi_socket_all.3

View file

@ -20,7 +20,8 @@
.\" *
.\" **************************************************************************
.\"
.TH curl_easy_cleanup 3 "22 aug 2007" "libcurl 7.17.0" "libcurl Manual"
.TH curl_easy_cleanup 3 "February 03, 2016" "libcurl 5.5.5" "libcurl Manual"
.SH NAME
curl_easy_cleanup - End a libcurl easy handle
.SH SYNOPSIS

View file

@ -19,7 +19,8 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.TH curl_easy_duphandle 3 "19 Sep 2014" "libcurl" "libcurl Manual"
.TH curl_easy_duphandle 3 "February 03, 2016" "libcurl 5.5.5" "libcurl Manual"
.SH NAME
curl_easy_duphandle - Clone a libcurl session handle
.SH SYNOPSIS

View file

@ -20,7 +20,8 @@
.\" *
.\" **************************************************************************
.\"
.TH curl_easy_escape 3 "7 April 2006" "libcurl 7.15.4" "libcurl Manual"
.TH curl_easy_escape 3 "February 03, 2016" "libcurl 5.5.5" "libcurl Manual"
.SH NAME
curl_easy_escape - URL encodes the given string
.SH SYNOPSIS

View file

@ -20,7 +20,8 @@
.\" *
.\" **************************************************************************
.\"
.TH curl_easy_getinfo 3 "11 Feb 2009" "libcurl 7.19.4" "libcurl Manual"
.TH curl_easy_getinfo 3 "November 23, 2016" "libcurl 7.54.1" "libcurl Manual"
.SH NAME
curl_easy_getinfo - extract information from a curl handle
.SH SYNOPSIS

View file

@ -19,7 +19,8 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.TH curl_easy_init 3 "4 March 2002" "libcurl 7.8.1" "libcurl Manual"
.TH curl_easy_init 3 "February 03, 2016" "libcurl 5.5.5" "libcurl Manual"
.SH NAME
curl_easy_init - Start a libcurl easy session
.SH SYNOPSIS

View file

@ -19,7 +19,8 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.TH curl_easy_pause 3 "17 Dec 2007" "libcurl 7.18.0" "libcurl Manual"
.TH curl_easy_pause 3 "May 01, 2016" "libcurl 7.54.1" "libcurl Manual"
.SH NAME
curl_easy_pause - pause and unpause a connection
.SH SYNOPSIS

View file

@ -19,7 +19,8 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.TH curl_easy_perform 3 "5 Mar 2001" "libcurl 7.7" "libcurl Manual"
.TH curl_easy_perform 3 "May 02, 2016" "libcurl 7.54.1" "libcurl Manual"
.SH NAME
curl_easy_perform - perform a blocking file transfer
.SH SYNOPSIS

View file

@ -20,7 +20,8 @@
.\" *
.\" **************************************************************************
.\"
.TH curl_easy_recv 3 "29 April 2008" "libcurl 7.18.2" "libcurl Manual"
.TH curl_easy_recv 3 "December 18, 2016" "libcurl 7.54.1" "libcurl Manual"
.SH NAME
curl_easy_recv - receives raw data on an "easy" connection
.SH SYNOPSIS

View file

@ -19,7 +19,8 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.TH curl_easy_reset 3 "31 July 2004" "libcurl 7.12.1" "libcurl Manual"
.TH curl_easy_reset 3 "February 03, 2016" "libcurl 5.5.5" "libcurl Manual"
.SH NAME
curl_easy_reset - reset all options of a libcurl session handle
.SH SYNOPSIS

View file

@ -20,7 +20,8 @@
.\" *
.\" **************************************************************************
.\"
.TH curl_easy_send 3 "29 April 2008" "libcurl 7.18.2" "libcurl Manual"
.TH curl_easy_send 3 "December 18, 2016" "libcurl 7.54.1" "libcurl Manual"
.SH NAME
curl_easy_send - sends raw data over an "easy" connection
.SH SYNOPSIS

View file

@ -20,7 +20,8 @@
.\" *
.\" **************************************************************************
.\"
.TH curl_easy_setopt 3 "25 Jun 2014" "libcurl 7.38.0" "libcurl Manual"
.TH curl_easy_setopt 3 "April 28, 2016" "libcurl 7.54.1" "libcurl Manual"
.SH NAME
curl_easy_setopt \- set options for a curl easy handle
.SH SYNOPSIS
@ -137,6 +138,8 @@ Data pointer to pass to the chunk callbacks. See \fICURLOPT_CHUNK_DATA(3)\fP
Callback for wildcard matching. See \fICURLOPT_FNMATCH_FUNCTION(3)\fP
.IP CURLOPT_FNMATCH_DATA
Data pointer to pass to the wildcard matching callback. See \fICURLOPT_FNMATCH_DATA(3)\fP
.IP CURLOPT_SUPPRESS_CONNECT_HEADERS
Suppress proxy CONNECT response headers from user callbacks. See \fICURLOPT_SUPPRESS_CONNECT_HEADERS(3)\fP
.SH ERROR OPTIONS
.IP CURLOPT_ERRORBUFFER
Error message buffer. See \fICURLOPT_ERRORBUFFER(3)\fP

View file

@ -19,7 +19,8 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.TH curl_easy_strerror 3 "26 Apr 2004" "libcurl 7.12" "libcurl Manual"
.TH curl_easy_strerror 3 "February 03, 2016" "libcurl 5.5.5" "libcurl Manual"
.SH NAME
curl_easy_strerror - return string describing error code
.SH SYNOPSIS

View file

@ -20,7 +20,8 @@
.\" *
.\" **************************************************************************
.\"
.TH curl_easy_unescape 3 "7 April 2006" "libcurl 7.15.4" "libcurl Manual"
.TH curl_easy_unescape 3 "October 04, 2016" "libcurl 7.54.1" "libcurl Manual"
.SH NAME
curl_easy_unescape - URL decodes the given string
.SH SYNOPSIS

Some files were not shown because too many files have changed in this diff Show more