mirror of
https://github.com/etlegacy/etlegacy-libs.git
synced 2024-11-10 14:51:58 +00:00
libs: updated to cURL 7.58.0
This commit is contained in:
parent
50a596810d
commit
f8b65b2e41
1097 changed files with 77819 additions and 29045 deletions
11086
curl/CHANGES
11086
curl/CHANGES
File diff suppressed because it is too large
Load diff
|
@ -93,3 +93,32 @@ macro(CURL_INTERNAL_TEST_RUN CURL_TEST)
|
|||
endif(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST})
|
||||
endif()
|
||||
endmacro(CURL_INTERNAL_TEST_RUN)
|
||||
|
||||
macro(CURL_NROFF_CHECK)
|
||||
find_program(NROFF NAMES gnroff nroff)
|
||||
if(NROFF)
|
||||
# Need a way to write to stdin, this will do
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt" "test")
|
||||
# Tests for a valid nroff option to generate a manpage
|
||||
foreach(_MANOPT "-man" "-mandoc")
|
||||
execute_process(COMMAND "${NROFF}" ${_MANOPT}
|
||||
OUTPUT_VARIABLE NROFF_MANOPT_OUTPUT
|
||||
INPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt"
|
||||
ERROR_QUIET)
|
||||
# Save the option if it was valid
|
||||
if(NROFF_MANOPT_OUTPUT)
|
||||
message("Found *nroff option: -- ${_MANOPT}")
|
||||
set(NROFF_MANOPT ${_MANOPT})
|
||||
set(NROFF_USEFUL ON)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
# No need for the temporary file
|
||||
file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt")
|
||||
if(NOT NROFF_USEFUL)
|
||||
message(WARNING "Found no *nroff option to get plaintext from man pages")
|
||||
endif()
|
||||
else()
|
||||
message(WARNING "Found no *nroff program")
|
||||
endif()
|
||||
endmacro(CURL_NROFF_CHECK)
|
||||
|
|
|
@ -32,9 +32,9 @@ int main(void) {
|
|||
if(curl_cv_recv)
|
||||
if(NOT DEFINED curl_cv_func_recv_args OR "${curl_cv_func_recv_args}" STREQUAL "unknown")
|
||||
foreach(recv_retv "int" "ssize_t" )
|
||||
foreach(recv_arg1 "int" "ssize_t" "SOCKET")
|
||||
foreach(recv_arg2 "void *" "char *")
|
||||
foreach(recv_arg3 "size_t" "int" "socklen_t" "unsigned int")
|
||||
foreach(recv_arg1 "SOCKET" "int" )
|
||||
foreach(recv_arg2 "char *" "void *" )
|
||||
foreach(recv_arg3 "int" "size_t" "socklen_t" "unsigned int")
|
||||
foreach(recv_arg4 "int" "unsigned int")
|
||||
if(NOT curl_cv_func_recv_done)
|
||||
unset(curl_cv_func_recv_test CACHE)
|
||||
|
@ -96,9 +96,9 @@ int main(void) {
|
|||
if(curl_cv_send)
|
||||
if(NOT DEFINED curl_cv_func_send_args OR "${curl_cv_func_send_args}" STREQUAL "unknown")
|
||||
foreach(send_retv "int" "ssize_t" )
|
||||
foreach(send_arg1 "int" "ssize_t" "SOCKET")
|
||||
foreach(send_arg2 "const void *" "void *" "char *" "const char *")
|
||||
foreach(send_arg3 "size_t" "int" "socklen_t" "unsigned int")
|
||||
foreach(send_arg1 "SOCKET" "int" "ssize_t" )
|
||||
foreach(send_arg2 "const char *" "const void *" "void *" "char *")
|
||||
foreach(send_arg3 "int" "size_t" "socklen_t" "unsigned int")
|
||||
foreach(send_arg4 "int" "unsigned int")
|
||||
if(NOT curl_cv_func_send_done)
|
||||
unset(curl_cv_func_send_test CACHE)
|
||||
|
|
26
curl/CMake/cmake_uninstall.cmake.in
Normal file
26
curl/CMake/cmake_uninstall.cmake.in
Normal file
|
@ -0,0 +1,26 @@
|
|||
if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
|
||||
if (NOT DEFINED CMAKE_INSTALL_PREFIX)
|
||||
set (CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@")
|
||||
endif ()
|
||||
message(${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||
string(REGEX REPLACE "\n" ";" files "${files}")
|
||||
foreach(file ${files})
|
||||
message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
|
||||
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
exec_program(
|
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VALUE rm_retval
|
||||
)
|
||||
if(NOT "${rm_retval}" STREQUAL 0)
|
||||
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
|
||||
endif(NOT "${rm_retval}" STREQUAL 0)
|
||||
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
|
||||
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
endforeach(file)
|
59
curl/CMake/curl-config.cmake
Normal file
59
curl/CMake/curl-config.cmake
Normal file
|
@ -0,0 +1,59 @@
|
|||
|
||||
get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
|
||||
if(NOT CURL_FIND_COMPONENTS)
|
||||
set(CURL_FIND_COMPONENTS curl libcurl)
|
||||
if(CURL_FIND_REQUIRED)
|
||||
set(CURL_FIND_REQUIRED_curl TRUE)
|
||||
set(CURL_FIND_REQUIRED_libcurl TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(_curl_missing_components)
|
||||
foreach(_comp ${CURL_FIND_COMPONENTS})
|
||||
if(EXISTS "${_DIR}/${_comp}-target.cmake")
|
||||
include("${_DIR}/${_comp}-target.cmake")
|
||||
set(CURL_${_comp}_FOUND TRUE)
|
||||
else()
|
||||
set(CURL_${_comp}_FOUND FALSE)
|
||||
if(CURL_FIND_REQUIRED_${_comp})
|
||||
set(CURL_FOUND FALSE)
|
||||
list(APPEND _curl_missing_components ${_comp})
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(_curl_missing_components)
|
||||
set(CURL_NOT_FOUND_MESSAGE "Following required components not found: " ${_curl_missing_components})
|
||||
else()
|
||||
if(TARGET CURL::libcurl)
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" _curl_current_config)
|
||||
if(NOT _curl_current_config)
|
||||
set(_curl_current_config "NOCONFIG")
|
||||
endif()
|
||||
get_target_property(_curl_configurations CURL::libcurl IMPORTED_CONFIGURATIONS)
|
||||
list(FIND _curl_configurations "${_curl_current_config}" _i)
|
||||
if(_i LESS 0)
|
||||
set(_curl_config "RELEASE")
|
||||
list(FIND _curl_configurations "${_curl_current_config}" _i)
|
||||
if(_i LESS 0)
|
||||
set(_curl_config "NOCONFIG")
|
||||
list(FIND _curl_configurations "${_curl_current_config}" _i)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(_i LESS 0)
|
||||
set(_curl_current_config "") # let CMake pick config at random
|
||||
else()
|
||||
set(_curl_current_config "_${_curl_current_config}")
|
||||
endif()
|
||||
|
||||
get_target_property(CURL_INCLUDE_DIRS CURL::libcurl INTERFACE_INCLUDE_DIRECTORIES)
|
||||
get_target_property(CURL_LIBRARIES CURL::libcurl "LOCATION${_curl_current_config}")
|
||||
set(_curl_current_config)
|
||||
set(_curl_configurations)
|
||||
set(_i)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
unset(_curl_missing_components)
|
|
@ -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,11 +38,12 @@
|
|||
# To check:
|
||||
# (From Daniel Stenberg) The cmake build selected to run gcc with -fPIC on my box while the plain configure script did not.
|
||||
# (From Daniel Stenberg) The gcc command line use neither -g nor any -O options. As a developer, I also treasure our configure scripts's --enable-debug option that sets a long range of "picky" compiler options.
|
||||
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
|
||||
include(Utilities)
|
||||
include(Macros)
|
||||
include(CMakeDependentOption)
|
||||
include(CheckCCompilerFlag)
|
||||
|
||||
project( CURL C )
|
||||
|
||||
|
@ -72,20 +73,36 @@ set(OS "\"${CMAKE_SYSTEM_NAME}\"")
|
|||
include_directories(${PROJECT_BINARY_DIR}/include/curl)
|
||||
include_directories( ${CURL_SOURCE_DIR}/include )
|
||||
|
||||
option(CURL_WERROR "Turn compiler warnings into errors" OFF)
|
||||
option(PICKY_COMPILER "Enable picky compiler options" ON)
|
||||
option(BUILD_CURL_EXE "Set to ON to build curl executable." ON)
|
||||
option(CURL_STATICLIB "Set to ON to build libcurl with static linking." OFF)
|
||||
option(ENABLE_ARES "Set to ON to enable c-ares support" OFF)
|
||||
if(WIN32)
|
||||
CMAKE_DEPENDENT_OPTION(ENABLE_THREADED_RESOLVER
|
||||
"Set to ON to enable threaded DNS lookup"
|
||||
option(CURL_STATIC_CRT "Set to ON to build libcurl with static CRT on Windows (/MT)." OFF)
|
||||
option(ENABLE_INET_PTON "Set to OFF to prevent usage of inet_pton when building against modern SDKs while still requiring compatibility with older Windows versions, such as Windows XP, Windows Server 2003 etc." ON)
|
||||
endif()
|
||||
|
||||
CMAKE_DEPENDENT_OPTION(ENABLE_THREADED_RESOLVER "Set to ON to enable threaded DNS lookup"
|
||||
ON "NOT ENABLE_ARES"
|
||||
OFF)
|
||||
else()
|
||||
option(ENABLE_THREADED_RESOLVER "Set to ON to enable POSIX threaded DNS lookup" OFF)
|
||||
endif()
|
||||
|
||||
option(ENABLE_DEBUG "Set to ON to enable curl debug features" OFF)
|
||||
option(ENABLE_CURLDEBUG "Set to ON to build with TrackMemory feature enabled" OFF)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
|
||||
if (PICKY_COMPILER)
|
||||
foreach (_CCOPT -pedantic -Wall -W -Wpointer-arith -Wwrite-strings -Wunused -Wshadow -Winline -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal -Wno-multichar -Wsign-compare -Wundef -Wno-format-nonliteral -Wendif-labels -Wstrict-prototypes -Wdeclaration-after-statement -Wstrict-aliasing=3 -Wcast-align -Wtype-limits -Wold-style-declaration -Wmissing-parameter-type -Wempty-body -Wclobbered -Wignored-qualifiers -Wconversion -Wno-sign-conversion -Wvla -Wdouble-promotion -Wno-system-headers)
|
||||
# surprisingly, CHECK_C_COMPILER_FLAG needs a new variable to store each new
|
||||
# test result in.
|
||||
CHECK_C_COMPILER_FLAG(${_CCOPT} OPT${_CCOPT})
|
||||
if(OPT${_CCOPT})
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_CCOPT}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif(PICKY_COMPILER)
|
||||
endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
|
||||
|
||||
if (ENABLE_DEBUG)
|
||||
# DEBUGBUILD will be defined only for Debug builds
|
||||
if(NOT CMAKE_VERSION VERSION_LESS 3.0)
|
||||
|
@ -100,13 +117,12 @@ if (ENABLE_CURLDEBUG)
|
|||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS CURLDEBUG)
|
||||
endif()
|
||||
|
||||
# For debug libs and exes, add "-d" postfix
|
||||
set(CMAKE_DEBUG_POSTFIX "-d" CACHE STRING "Set debug library postfix")
|
||||
|
||||
# initialize CURL_LIBS
|
||||
set(CURL_LIBS "")
|
||||
|
||||
if(ENABLE_THREADED_RESOLVER AND ENABLE_ARES)
|
||||
message(FATAL_ERROR "Options ENABLE_THREADED_RESOLVER and ENABLE_ARES are mutually exclusive")
|
||||
endif()
|
||||
|
||||
if(ENABLE_ARES)
|
||||
set(USE_ARES 1)
|
||||
find_package(CARES REQUIRED)
|
||||
|
@ -114,11 +130,6 @@ if(ENABLE_ARES)
|
|||
set(CURL_LIBS ${CURL_LIBS} ${CARES_LIBRARY})
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
option(BUILD_RELEASE_DEBUG_DIRS "Set OFF to build each configuration to a separate directory" OFF)
|
||||
mark_as_advanced(BUILD_RELEASE_DEBUG_DIRS)
|
||||
endif()
|
||||
|
||||
include(CurlSymbolHiding)
|
||||
|
||||
option(HTTP_ONLY "disables all protocols except HTTP (This overrides all CURL_DISABLE_* options)" OFF)
|
||||
|
@ -176,8 +187,6 @@ option(CURL_DISABLE_CRYPTO_AUTH "to disable cryptographic authentication" OFF)
|
|||
mark_as_advanced(CURL_DISABLE_CRYPTO_AUTH)
|
||||
option(CURL_DISABLE_VERBOSE_STRINGS "to disable verbose strings" OFF)
|
||||
mark_as_advanced(CURL_DISABLE_VERBOSE_STRINGS)
|
||||
option(DISABLED_THREADSAFE "Set to explicitly specify we don't want to use thread-safe functions" OFF)
|
||||
mark_as_advanced(DISABLED_THREADSAFE)
|
||||
option(ENABLE_IPV6 "Define if you want to enable IPv6 support" ON)
|
||||
mark_as_advanced(ENABLE_IPV6)
|
||||
if(ENABLE_IPV6 AND NOT WIN32)
|
||||
|
@ -194,48 +203,45 @@ if(ENABLE_IPV6 AND NOT WIN32)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
option(ENABLE_MANUAL "to provide the built-in manual" ON)
|
||||
unset(USE_MANUAL CACHE) # TODO: cache NROFF/NROFF_MANOPT/USE_MANUAL vars?
|
||||
if(ENABLE_MANUAL)
|
||||
find_program(NROFF NAMES gnroff nroff)
|
||||
if(NROFF)
|
||||
# Need a way to write to stdin, this will do
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt" "test")
|
||||
# Tests for a valid nroff option to generate a manpage
|
||||
foreach(_MANOPT "-man" "-mandoc")
|
||||
execute_process(COMMAND "${NROFF}" ${_MANOPT}
|
||||
OUTPUT_VARIABLE NROFF_MANOPT_OUTPUT
|
||||
INPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt"
|
||||
ERROR_QUIET)
|
||||
# Save the option if it was valid
|
||||
if(NROFF_MANOPT_OUTPUT)
|
||||
message("Found *nroff option: -- ${_MANOPT}")
|
||||
set(NROFF_MANOPT ${_MANOPT})
|
||||
set(USE_MANUAL 1)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
# No need for the temporary file
|
||||
file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt")
|
||||
if(NOT USE_MANUAL)
|
||||
message(WARNING "Found no *nroff option to get plaintext from man pages")
|
||||
endif()
|
||||
else()
|
||||
message(WARNING "Found no *nroff program")
|
||||
endif()
|
||||
endif()
|
||||
# Required for building manual, docs, tests
|
||||
CURL_NROFF_CHECK()
|
||||
find_package(Perl)
|
||||
|
||||
CMAKE_DEPENDENT_OPTION(ENABLE_MANUAL "to provide the built-in manual"
|
||||
ON "NROFF_USEFUL;PERL_FOUND"
|
||||
OFF)
|
||||
|
||||
if(NOT PERL_FOUND)
|
||||
message(STATUS "Perl not found, testing disabled.")
|
||||
set(BUILD_TESTING OFF)
|
||||
endif()
|
||||
if(ENABLE_MANUAL)
|
||||
set(USE_MANUAL ON)
|
||||
endif()
|
||||
|
||||
# We need ansi c-flags, especially on HP
|
||||
set(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")
|
||||
set(CMAKE_REQUIRED_FLAGS ${CMAKE_ANSI_CFLAGS})
|
||||
|
||||
if(CURL_STATIC_CRT)
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT")
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd")
|
||||
endif()
|
||||
|
||||
# Disable warnings on Borland to avoid changing 3rd party code.
|
||||
if(BORLAND)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w-")
|
||||
endif(BORLAND)
|
||||
|
||||
if(CURL_WERROR)
|
||||
if(MSVC_VERSION)
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /WX")
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /WX")
|
||||
else()
|
||||
# this assumes clang or gcc style options
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
|
||||
endif()
|
||||
endif(CURL_WERROR)
|
||||
|
||||
# If we are on AIX, do the _ALL_SOURCE magic
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES AIX)
|
||||
set(_ALL_SOURCE 1)
|
||||
|
@ -258,19 +264,14 @@ if(WIN32)
|
|||
endif(WIN32)
|
||||
|
||||
if(ENABLE_THREADED_RESOLVER)
|
||||
find_package(Threads REQUIRED)
|
||||
if(WIN32)
|
||||
set(USE_THREADS_WIN32 ON)
|
||||
else()
|
||||
check_include_file_concat("pthread.h" HAVE_PTHREAD_H)
|
||||
if(HAVE_PTHREAD_H)
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD 1)
|
||||
find_package(Threads)
|
||||
if(CMAKE_USE_PTHREADS_INIT)
|
||||
set(USE_THREADS_POSIX ${CMAKE_USE_PTHREADS_INIT})
|
||||
set(HAVE_PTHREAD_H ${CMAKE_USE_PTHREADS_INIT})
|
||||
endif()
|
||||
set(CURL_LIBS ${CURL_LIBS} ${CMAKE_THREAD_LIBS_INIT})
|
||||
set(USE_THREADS_POSIX 1)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Check for all needed libraries
|
||||
|
@ -365,7 +366,6 @@ if(CMAKE_USE_OPENSSL)
|
|||
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)
|
||||
|
@ -737,7 +737,6 @@ check_include_file_concat("ifaddrs.h" HAVE_IFADDRS_H)
|
|||
check_include_file_concat("io.h" HAVE_IO_H)
|
||||
check_include_file_concat("krb.h" HAVE_KRB_H)
|
||||
check_include_file_concat("libgen.h" HAVE_LIBGEN_H)
|
||||
check_include_file_concat("limits.h" HAVE_LIMITS_H)
|
||||
check_include_file_concat("locale.h" HAVE_LOCALE_H)
|
||||
check_include_file_concat("net/if.h" HAVE_NET_IF_H)
|
||||
check_include_file_concat("netdb.h" HAVE_NETDB_H)
|
||||
|
@ -795,50 +794,6 @@ if(NOT HAVE_SIZEOF_SSIZE_T)
|
|||
endif(NOT HAVE_SIZEOF_SSIZE_T)
|
||||
# off_t is sized later, after the HAVE_FILE_OFFSET_BITS test
|
||||
|
||||
# Different sizeofs, etc.
|
||||
|
||||
# define CURL_SIZEOF_LONG 4
|
||||
# define CURL_TYPEOF_CURL_OFF_T long long
|
||||
# define CURL_FORMAT_CURL_OFF_T "lld"
|
||||
# define CURL_FORMAT_CURL_OFF_TU "llu"
|
||||
# define CURL_FORMAT_OFF_T "%lld"
|
||||
# define CURL_SIZEOF_CURL_OFF_T 8
|
||||
# define CURL_SUFFIX_CURL_OFF_T LL
|
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL
|
||||
|
||||
set(CURL_SIZEOF_LONG ${SIZEOF_LONG})
|
||||
|
||||
if(SIZEOF_LONG EQUAL 8)
|
||||
set(CURL_TYPEOF_CURL_OFF_T long)
|
||||
set(CURL_SIZEOF_CURL_OFF_T 8)
|
||||
set(CURL_FORMAT_CURL_OFF_T "ld")
|
||||
set(CURL_FORMAT_CURL_OFF_TU "lu")
|
||||
set(CURL_FORMAT_OFF_T "%ld")
|
||||
set(CURL_SUFFIX_CURL_OFF_T L)
|
||||
set(CURL_SUFFIX_CURL_OFF_TU UL)
|
||||
endif(SIZEOF_LONG EQUAL 8)
|
||||
|
||||
if(SIZEOF_LONG_LONG EQUAL 8)
|
||||
set(CURL_TYPEOF_CURL_OFF_T "long long")
|
||||
set(CURL_SIZEOF_CURL_OFF_T 8)
|
||||
set(CURL_FORMAT_CURL_OFF_T "lld")
|
||||
set(CURL_FORMAT_CURL_OFF_TU "llu")
|
||||
set(CURL_FORMAT_OFF_T "%lld")
|
||||
set(CURL_SUFFIX_CURL_OFF_T LL)
|
||||
set(CURL_SUFFIX_CURL_OFF_TU ULL)
|
||||
endif(SIZEOF_LONG_LONG EQUAL 8)
|
||||
|
||||
if(NOT CURL_TYPEOF_CURL_OFF_T)
|
||||
set(CURL_TYPEOF_CURL_OFF_T ${ssize_t})
|
||||
set(CURL_SIZEOF_CURL_OFF_T ${SIZEOF_SSIZE_T})
|
||||
# TODO: need adjustment here.
|
||||
set(CURL_FORMAT_CURL_OFF_T "ld")
|
||||
set(CURL_FORMAT_CURL_OFF_TU "lu")
|
||||
set(CURL_FORMAT_OFF_T "%ld")
|
||||
set(CURL_SUFFIX_CURL_OFF_T L)
|
||||
set(CURL_SUFFIX_CURL_OFF_TU LU)
|
||||
endif(NOT CURL_TYPEOF_CURL_OFF_T)
|
||||
|
||||
if(HAVE_SIZEOF_LONG_LONG)
|
||||
set(HAVE_LONGLONG 1)
|
||||
set(HAVE_LL 1)
|
||||
|
@ -918,13 +873,26 @@ check_symbol_exists(ftruncate "${CURL_INCLUDES}" HAVE_FTRUNCATE)
|
|||
check_symbol_exists(getprotobyname "${CURL_INCLUDES}" HAVE_GETPROTOBYNAME)
|
||||
check_symbol_exists(getrlimit "${CURL_INCLUDES}" HAVE_GETRLIMIT)
|
||||
check_symbol_exists(setlocale "${CURL_INCLUDES}" HAVE_SETLOCALE)
|
||||
check_symbol_exists(setmode "${CURL_INCLUDES}" HAVE_SETMODE)
|
||||
check_symbol_exists(setrlimit "${CURL_INCLUDES}" HAVE_SETRLIMIT)
|
||||
check_symbol_exists(fcntl "${CURL_INCLUDES}" HAVE_FCNTL)
|
||||
check_symbol_exists(ioctl "${CURL_INCLUDES}" HAVE_IOCTL)
|
||||
check_symbol_exists(setsockopt "${CURL_INCLUDES}" HAVE_SETSOCKOPT)
|
||||
check_function_exists(mach_absolute_time HAVE_MACH_ABSOLUTE_TIME)
|
||||
|
||||
# symbol exists in win32, but function does not.
|
||||
if(WIN32)
|
||||
if(ENABLE_INET_PTON)
|
||||
check_function_exists(inet_pton HAVE_INET_PTON)
|
||||
# _WIN32_WINNT_VISTA (0x0600)
|
||||
add_definitions(-D_WIN32_WINNT=0x0600)
|
||||
else()
|
||||
# _WIN32_WINNT_WINXP (0x0501)
|
||||
add_definitions(-D_WIN32_WINNT=0x0501)
|
||||
endif()
|
||||
else()
|
||||
check_function_exists(inet_pton HAVE_INET_PTON)
|
||||
endif()
|
||||
|
||||
check_symbol_exists(fsetxattr "${CURL_INCLUDES}" HAVE_FSETXATTR)
|
||||
if(HAVE_FSETXATTR)
|
||||
|
@ -996,6 +964,13 @@ if(HAVE_FILE_OFFSET_BITS)
|
|||
set(CMAKE_REQUIRED_FLAGS "-D_FILE_OFFSET_BITS=64")
|
||||
endif(HAVE_FILE_OFFSET_BITS)
|
||||
check_type_size("off_t" SIZEOF_OFF_T)
|
||||
|
||||
# include this header to get the type
|
||||
set(CMAKE_REQUIRED_INCLUDES "${CURL_SOURCE_DIR}/include")
|
||||
set(CMAKE_EXTRA_INCLUDE_FILES "curl/system.h")
|
||||
check_type_size("curl_off_t" SIZEOF_CURL_OFF_T)
|
||||
set(CMAKE_EXTRA_INCLUDE_FILES "")
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS)
|
||||
|
||||
foreach(CURL_TEST
|
||||
|
@ -1111,7 +1086,7 @@ else()
|
|||
set(CURL_SIZEOF_CURL_SOCKLEN_T ${SIZEOF_INT})
|
||||
endif()
|
||||
|
||||
# TODO test which of these headers are required for the typedefs used in curlbuild.h
|
||||
# TODO test which of these headers are required
|
||||
if(WIN32)
|
||||
set(CURL_PULL_WS2TCPIP_H ${HAVE_WS2TCPIP_H})
|
||||
else()
|
||||
|
@ -1126,11 +1101,6 @@ include(CMake/OtherTests.cmake)
|
|||
|
||||
add_definitions(-DHAVE_CONFIG_H)
|
||||
|
||||
# For windows, do not allow the compiler to use default target (Vista).
|
||||
if(WIN32)
|
||||
add_definitions(-D_WIN32_WINNT=0x0501)
|
||||
endif(WIN32)
|
||||
|
||||
# For windows, all compilers used by cmake should support large files
|
||||
if(WIN32)
|
||||
set(USE_WIN32_LARGE_FILES ON)
|
||||
|
@ -1138,6 +1108,11 @@ endif(WIN32)
|
|||
|
||||
if(MSVC)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
|
||||
if(CMAKE_C_FLAGS MATCHES "/W[0-4]")
|
||||
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
else(CMAKE_C_FLAGS MATCHES "/W[0-4]")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
|
||||
endif(CMAKE_C_FLAGS MATCHES "/W[0-4]")
|
||||
endif(MSVC)
|
||||
|
||||
# Ugly (but functional) way to include "Makefile.inc" by transforming it (= regenerate it).
|
||||
|
@ -1156,8 +1131,18 @@ function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE)
|
|||
|
||||
endfunction()
|
||||
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
set(CURL_INSTALL_CMAKE_DIR CMake)
|
||||
else()
|
||||
set(CURL_INSTALL_CMAKE_DIR lib/cmake/curl)
|
||||
endif()
|
||||
|
||||
if(USE_MANUAL)
|
||||
add_subdirectory(docs)
|
||||
endif()
|
||||
|
||||
add_subdirectory(lib)
|
||||
|
||||
if(BUILD_CURL_EXE)
|
||||
add_subdirectory(src)
|
||||
endif()
|
||||
|
@ -1261,7 +1246,7 @@ set(LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
|||
set(LIBCURL_LIBS "")
|
||||
set(libdir "${CMAKE_INSTALL_PREFIX}/lib")
|
||||
foreach(_lib ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} ${CURL_LIBS})
|
||||
if(_lib MATCHES ".*/.*")
|
||||
if(_lib MATCHES ".*/.*" OR _lib MATCHES "^-")
|
||||
set(LIBCURL_LIBS "${LIBCURL_LIBS} ${_lib}")
|
||||
else()
|
||||
set(LIBCURL_LIBS "${LIBCURL_LIBS} -l${_lib}")
|
||||
|
@ -1297,17 +1282,30 @@ if(NOT CURL_CONFIG_HAS_BEEN_RUN_BEFORE)
|
|||
set(CURL_CONFIG_HAS_BEEN_RUN_BEFORE 1 CACHE INTERNAL "Flag to track whether this is the first time running CMake or if CMake has been configured before")
|
||||
endif()
|
||||
|
||||
# Installation.
|
||||
# First, install generated curlbuild.h
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/curl/curlbuild.h"
|
||||
DESTINATION include/curl )
|
||||
# Next, install other headers excluding curlbuild.h
|
||||
# install headers
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/curl"
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.h"
|
||||
PATTERN "curlbuild.h" EXCLUDE)
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
write_basic_package_version_file(
|
||||
"${PROJECT_BINARY_DIR}/curl-config-version.cmake"
|
||||
VERSION ${CURL_VERSION}
|
||||
COMPATIBILITY SameMajorVersion
|
||||
)
|
||||
|
||||
configure_file(CMake/curl-config.cmake
|
||||
"${PROJECT_BINARY_DIR}/curl-config.cmake"
|
||||
COPYONLY
|
||||
)
|
||||
|
||||
install(
|
||||
FILES ${PROJECT_BINARY_DIR}/curl-config.cmake
|
||||
${PROJECT_BINARY_DIR}/curl-config-version.cmake
|
||||
DESTINATION ${CURL_INSTALL_CMAKE_DIR}
|
||||
)
|
||||
|
||||
# Workaround for MSVS10 to avoid the Dialog Hell
|
||||
# FIXME: This could be removed with future version of CMake.
|
||||
if(MSVC_VERSION EQUAL 1600)
|
||||
|
@ -1316,3 +1314,14 @@ if(MSVC_VERSION EQUAL 1600)
|
|||
file(APPEND "${CURL_SLN_FILENAME}" "\n# This should be regenerated!\n")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT TARGET uninstall)
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMake/cmake_uninstall.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/CMake/cmake_uninstall.cmake
|
||||
IMMEDIATE @ONLY)
|
||||
|
||||
add_custom_target(uninstall
|
||||
COMMAND ${CMAKE_COMMAND} -P
|
||||
${CMAKE_CURRENT_BINARY_DIR}/CMake/cmake_uninstall.cmake)
|
||||
endif()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
COPYRIGHT AND PERMISSION NOTICE
|
||||
|
||||
Copyright (c) 1996 - 2017, Daniel Stenberg, <daniel@haxx.se>, and many
|
||||
Copyright (c) 1996 - 2018, Daniel Stenberg, <daniel@haxx.se>, and many
|
||||
contributors, see the THANKS file.
|
||||
|
||||
All rights reserved.
|
||||
|
|
|
@ -126,15 +126,6 @@ if test ! -z $SDK32; then
|
|||
pwd
|
||||
lipo libcurl.framework/${FRAMEWORK_VERSION}/libcurl32 libcurl.framework/${FRAMEWORK_VERSION}/libcurl64 -create -output libcurl.framework/${FRAMEWORK_VERSION}/libcurl
|
||||
rm libcurl.framework/${FRAMEWORK_VERSION}/libcurl32 libcurl.framework/${FRAMEWORK_VERSION}/libcurl64
|
||||
cp libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild.h libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild32.h
|
||||
cp include/curl/curlbuild.h libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild64.h
|
||||
cat >libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl/curlbuild.h <<EOF
|
||||
#ifdef __LP64__
|
||||
#include "curl/curlbuild64.h"
|
||||
#else
|
||||
#include "curl/curlbuild32.h"
|
||||
#endif
|
||||
EOF
|
||||
fi
|
||||
|
||||
pwd
|
||||
|
|
|
@ -27,10 +27,11 @@ ACLOCAL_AMFLAGS = -I m4
|
|||
CMAKE_DIST = CMakeLists.txt CMake/CMakeConfigurableFile.in \
|
||||
CMake/CurlTests.c CMake/FindGSS.cmake CMake/OtherTests.cmake \
|
||||
CMake/Platforms/WindowsCache.cmake CMake/Utilities.cmake \
|
||||
include/curl/curlbuild.h.cmake CMake/Macros.cmake \
|
||||
CMake/Macros.cmake \
|
||||
CMake/CurlSymbolHiding.cmake CMake/FindCARES.cmake \
|
||||
CMake/FindLibSSH2.cmake CMake/FindNGHTTP2.cmake \
|
||||
CMake/FindMbedTLS.cmake
|
||||
CMake/FindMbedTLS.cmake CMake/cmake_uninstall.cmake.in \
|
||||
CMake/curl-config.cmake
|
||||
|
||||
VC6_LIBTMPL = projects/Windows/VC6/lib/libcurl.tmpl
|
||||
VC6_LIBDSP = projects/Windows/VC6/lib/libcurl.dsp.dist
|
||||
|
@ -95,6 +96,13 @@ VC14_SRCTMPL = projects/Windows/VC14/src/curl.tmpl
|
|||
VC14_SRCVCXPROJ = projects/Windows/VC14/src/curl.vcxproj.dist
|
||||
VC14_SRCVCXPROJ_DEPS = $(VC14_SRCTMPL) Makefile.am src/Makefile.inc
|
||||
|
||||
VC15_LIBTMPL = projects/Windows/VC15/lib/libcurl.tmpl
|
||||
VC15_LIBVCXPROJ = projects/Windows/VC15/lib/libcurl.vcxproj.dist
|
||||
VC15_LIBVCXPROJ_DEPS = $(VC15_LIBTMPL) Makefile.am lib/Makefile.inc
|
||||
VC15_SRCTMPL = projects/Windows/VC15/src/curl.tmpl
|
||||
VC15_SRCVCXPROJ = projects/Windows/VC15/src/curl.vcxproj.dist
|
||||
VC15_SRCVCXPROJ_DEPS = $(VC15_SRCTMPL) Makefile.am src/Makefile.inc
|
||||
|
||||
VC_DIST = projects/README \
|
||||
projects/build-openssl.bat \
|
||||
projects/build-wolfssl.bat \
|
||||
|
@ -134,6 +142,11 @@ VC_DIST = projects/README \
|
|||
projects/Windows/VC14/lib/libcurl.vcxproj.filters \
|
||||
projects/Windows/VC14/src/curl.sln \
|
||||
projects/Windows/VC14/src/curl.vcxproj.filters \
|
||||
projects/Windows/VC15/curl-all.sln \
|
||||
projects/Windows/VC15/lib/libcurl.sln \
|
||||
projects/Windows/VC15/lib/libcurl.vcxproj.filters \
|
||||
projects/Windows/VC15/src/curl.sln \
|
||||
projects/Windows/VC15/src/curl.vcxproj.filters \
|
||||
projects/generate.bat \
|
||||
projects/wolfssl_options.h \
|
||||
projects/wolfssl_override.props
|
||||
|
@ -150,12 +163,12 @@ CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
|
|||
$(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \
|
||||
$(VC9_LIBVCPROJ) $(VC9_SRCVCPROJ) $(VC10_LIBVCXPROJ) $(VC10_SRCVCXPROJ) \
|
||||
$(VC11_LIBVCXPROJ) $(VC11_SRCVCXPROJ) $(VC12_LIBVCXPROJ) $(VC12_SRCVCXPROJ) \
|
||||
$(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ)
|
||||
$(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ) $(VC15_LIBVCXPROJ) $(VC15_SRCVCXPROJ)
|
||||
|
||||
bin_SCRIPTS = curl-config
|
||||
|
||||
SUBDIRS = lib docs src include
|
||||
DIST_SUBDIRS = $(SUBDIRS) tests packages scripts
|
||||
SUBDIRS = lib src
|
||||
DIST_SUBDIRS = $(SUBDIRS) tests packages scripts include docs
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libcurl.pc
|
||||
|
@ -170,7 +183,7 @@ dist-hook:
|
|||
(distit=`find $(srcdir) -name "*.dist" | grep -v ./ares/`; \
|
||||
for file in $$distit; do \
|
||||
strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \
|
||||
cp $$file $(distdir)$$strip; \
|
||||
cp -p $$file $(distdir)$$strip; \
|
||||
done)
|
||||
|
||||
html:
|
||||
|
@ -216,15 +229,6 @@ examples:
|
|||
check-docs:
|
||||
@(cd docs/libcurl; $(MAKE) check)
|
||||
|
||||
# This is a hook to have 'make clean' also clean up the docs and the tests
|
||||
# dir. The extra check for the Makefiles being present is necessary because
|
||||
# 'make distcheck' will make clean first in these directories _before_ it runs
|
||||
# this hook.
|
||||
clean-local:
|
||||
@(if test -f tests/Makefile; then cd tests; $(MAKE) clean; fi)
|
||||
@(if test -f docs/Makefile; then cd docs; $(MAKE) clean; fi)
|
||||
|
||||
#
|
||||
# Build source and binary rpms. For rpm-3.0 and above, the ~/.rpmmacros
|
||||
# must contain the following line:
|
||||
# %_topdir /home/loic/local/rpm
|
||||
|
@ -276,11 +280,13 @@ cygwinbin:
|
|||
install-data-hook:
|
||||
cd include && $(MAKE) install
|
||||
cd docs && $(MAKE) install
|
||||
cd docs/libcurl && $(MAKE) install
|
||||
|
||||
# We extend the standard uninstall with a custom hook:
|
||||
uninstall-hook:
|
||||
cd include && $(MAKE) uninstall
|
||||
cd docs && $(MAKE) uninstall
|
||||
cd docs/libcurl && $(MAKE) uninstall
|
||||
|
||||
ca-bundle: lib/mk-ca-bundle.pl
|
||||
@echo "generating a fresh ca-bundle.crt"
|
||||
|
@ -304,7 +310,8 @@ vc-ide: $(VC6_LIBDSP_DEPS) $(VC6_SRCDSP_DEPS) $(VC7_LIBVCPROJ_DEPS) \
|
|||
$(VC8_LIBVCPROJ_DEPS) $(VC8_SRCVCPROJ_DEPS) $(VC9_LIBVCPROJ_DEPS) \
|
||||
$(VC9_SRCVCPROJ_DEPS) $(VC10_LIBVCXPROJ_DEPS) $(VC10_SRCVCXPROJ_DEPS) \
|
||||
$(VC11_LIBVCXPROJ_DEPS) $(VC11_SRCVCXPROJ_DEPS) $(VC12_LIBVCXPROJ_DEPS) \
|
||||
$(VC12_SRCVCXPROJ_DEPS) $(VC14_LIBVCXPROJ_DEPS) $(VC14_SRCVCXPROJ_DEPS)
|
||||
$(VC12_SRCVCXPROJ_DEPS) $(VC14_LIBVCXPROJ_DEPS) $(VC14_SRCVCXPROJ_DEPS) \
|
||||
$(VC15_LIBVCXPROJ_DEPS) $(VC15_SRCVCXPROJ_DEPS)
|
||||
@(win32_lib_srcs='$(LIB_CFILES)'; \
|
||||
win32_lib_hdrs='$(LIB_HFILES) config-win32.h'; \
|
||||
win32_lib_rc='$(LIB_RCFILES)'; \
|
||||
|
@ -614,4 +621,24 @@ function gen_element(type, dir, file)\
|
|||
-v src_rc="$$win32_src_rc" \
|
||||
-v src_x_srcs="$$sorted_src_x_srcs" \
|
||||
-v src_x_hdrs="$$sorted_src_x_hdrs" \
|
||||
"$$awk_code" $(srcdir)/$(VC14_SRCTMPL) > $(VC14_SRCVCXPROJ) || { exit 1; };)
|
||||
"$$awk_code" $(srcdir)/$(VC14_SRCTMPL) > $(VC14_SRCVCXPROJ) || { exit 1; }; \
|
||||
\
|
||||
echo "generating '$(VC15_LIBVCXPROJ)'"; \
|
||||
awk -v proj_type=vcxproj \
|
||||
-v lib_srcs="$$sorted_lib_srcs" \
|
||||
-v lib_hdrs="$$sorted_lib_hdrs" \
|
||||
-v lib_rc="$$win32_lib_rc" \
|
||||
-v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
|
||||
-v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
|
||||
-v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
|
||||
-v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
|
||||
"$$awk_code" $(srcdir)/$(VC15_LIBTMPL) > $(VC15_LIBVCXPROJ) || { exit 1; }; \
|
||||
\
|
||||
echo "generating '$(VC15_SRCVCXPROJ)'"; \
|
||||
awk -v proj_type=vcxproj \
|
||||
-v src_srcs="$$sorted_src_srcs" \
|
||||
-v src_hdrs="$$sorted_src_hdrs" \
|
||||
-v src_rc="$$win32_src_rc" \
|
||||
-v src_x_srcs="$$sorted_src_x_srcs" \
|
||||
-v src_x_hdrs="$$sorted_src_x_hdrs" \
|
||||
"$$awk_code" $(srcdir)/$(VC15_SRCTMPL) > $(VC15_SRCVCXPROJ) || { exit 1; };)
|
||||
|
|
103
curl/Makefile.in
103
curl/Makefile.in
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -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
|
||||
|
@ -169,8 +169,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
|
|||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
|
||||
$(top_builddir)/include/curl/curlbuild.h
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h
|
||||
CONFIG_CLEAN_FILES = curl-config libcurl.pc
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
|
@ -319,8 +318,11 @@ CCDEPMODE = @CCDEPMODE@
|
|||
CFLAGS = @CFLAGS@
|
||||
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
|
||||
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
|
||||
CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@
|
||||
CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@
|
||||
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
|
||||
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
|
||||
CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@
|
||||
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
|
@ -346,7 +348,9 @@ CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
|
|||
CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@
|
||||
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
|
||||
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
|
||||
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
|
@ -363,6 +367,7 @@ FGREP = @FGREP@
|
|||
GCOV = @GCOV@
|
||||
GENHTML = @GENHTML@
|
||||
GREP = @GREP@
|
||||
HAVE_BROTLI = @HAVE_BROTLI@
|
||||
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
|
||||
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
|
||||
HAVE_LIBZ = @HAVE_LIBZ@
|
||||
|
@ -420,6 +425,7 @@ REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
|
|||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SSL_BACKENDS = @SSL_BACKENDS@
|
||||
SSL_ENABLED = @SSL_ENABLED@
|
||||
SSL_LIBS = @SSL_LIBS@
|
||||
STRIP = @STRIP@
|
||||
|
@ -432,6 +438,7 @@ USE_DARWINSSL = @USE_DARWINSSL@
|
|||
USE_GNUTLS = @USE_GNUTLS@
|
||||
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
|
||||
USE_LIBRTMP = @USE_LIBRTMP@
|
||||
USE_LIBSSH = @USE_LIBSSH@
|
||||
USE_LIBSSH2 = @USE_LIBSSH2@
|
||||
USE_MBEDTLS = @USE_MBEDTLS@
|
||||
USE_NGHTTP2 = @USE_NGHTTP2@
|
||||
|
@ -505,10 +512,11 @@ ACLOCAL_AMFLAGS = -I m4
|
|||
CMAKE_DIST = CMakeLists.txt CMake/CMakeConfigurableFile.in \
|
||||
CMake/CurlTests.c CMake/FindGSS.cmake CMake/OtherTests.cmake \
|
||||
CMake/Platforms/WindowsCache.cmake CMake/Utilities.cmake \
|
||||
include/curl/curlbuild.h.cmake CMake/Macros.cmake \
|
||||
CMake/Macros.cmake \
|
||||
CMake/CurlSymbolHiding.cmake CMake/FindCARES.cmake \
|
||||
CMake/FindLibSSH2.cmake CMake/FindNGHTTP2.cmake \
|
||||
CMake/FindMbedTLS.cmake
|
||||
CMake/FindMbedTLS.cmake CMake/cmake_uninstall.cmake.in \
|
||||
CMake/curl-config.cmake
|
||||
|
||||
VC6_LIBTMPL = projects/Windows/VC6/lib/libcurl.tmpl
|
||||
VC6_LIBDSP = projects/Windows/VC6/lib/libcurl.dsp.dist
|
||||
|
@ -564,6 +572,12 @@ VC14_LIBVCXPROJ_DEPS = $(VC14_LIBTMPL) Makefile.am lib/Makefile.inc
|
|||
VC14_SRCTMPL = projects/Windows/VC14/src/curl.tmpl
|
||||
VC14_SRCVCXPROJ = projects/Windows/VC14/src/curl.vcxproj.dist
|
||||
VC14_SRCVCXPROJ_DEPS = $(VC14_SRCTMPL) Makefile.am src/Makefile.inc
|
||||
VC15_LIBTMPL = projects/Windows/VC15/lib/libcurl.tmpl
|
||||
VC15_LIBVCXPROJ = projects/Windows/VC15/lib/libcurl.vcxproj.dist
|
||||
VC15_LIBVCXPROJ_DEPS = $(VC15_LIBTMPL) Makefile.am lib/Makefile.inc
|
||||
VC15_SRCTMPL = projects/Windows/VC15/src/curl.tmpl
|
||||
VC15_SRCVCXPROJ = projects/Windows/VC15/src/curl.vcxproj.dist
|
||||
VC15_SRCVCXPROJ_DEPS = $(VC15_SRCTMPL) Makefile.am src/Makefile.inc
|
||||
VC_DIST = projects/README \
|
||||
projects/build-openssl.bat \
|
||||
projects/build-wolfssl.bat \
|
||||
|
@ -603,6 +617,11 @@ VC_DIST = projects/README \
|
|||
projects/Windows/VC14/lib/libcurl.vcxproj.filters \
|
||||
projects/Windows/VC14/src/curl.sln \
|
||||
projects/Windows/VC14/src/curl.vcxproj.filters \
|
||||
projects/Windows/VC15/curl-all.sln \
|
||||
projects/Windows/VC15/lib/libcurl.sln \
|
||||
projects/Windows/VC15/lib/libcurl.vcxproj.filters \
|
||||
projects/Windows/VC15/src/curl.sln \
|
||||
projects/Windows/VC15/src/curl.vcxproj.filters \
|
||||
projects/generate.bat \
|
||||
projects/wolfssl_options.h \
|
||||
projects/wolfssl_override.props
|
||||
|
@ -619,11 +638,11 @@ CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
|
|||
$(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \
|
||||
$(VC9_LIBVCPROJ) $(VC9_SRCVCPROJ) $(VC10_LIBVCXPROJ) $(VC10_SRCVCXPROJ) \
|
||||
$(VC11_LIBVCXPROJ) $(VC11_SRCVCXPROJ) $(VC12_LIBVCXPROJ) $(VC12_SRCVCXPROJ) \
|
||||
$(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ)
|
||||
$(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ) $(VC15_LIBVCXPROJ) $(VC15_SRCVCXPROJ)
|
||||
|
||||
bin_SCRIPTS = curl-config
|
||||
SUBDIRS = lib docs src include
|
||||
DIST_SUBDIRS = $(SUBDIRS) tests packages scripts
|
||||
SUBDIRS = lib src
|
||||
DIST_SUBDIRS = $(SUBDIRS) tests packages scripts include docs
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libcurl.pc
|
||||
LIB_VAUTH_CFILES = vauth/vauth.c vauth/cleartext.c vauth/cram.c \
|
||||
|
@ -651,14 +670,15 @@ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
|
|||
http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c \
|
||||
strerror.c amigaos.c hostasyn.c hostip4.c hostip6.c hostsyn.c \
|
||||
inet_ntop.c parsedate.c select.c tftp.c splay.c strdup.c socks.c \
|
||||
ssh.c curl_addrinfo.c socks_gssapi.c socks_sspi.c \
|
||||
ssh.c ssh-libssh.c curl_addrinfo.c socks_gssapi.c socks_sspi.c \
|
||||
curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c pop3.c smtp.c \
|
||||
pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c \
|
||||
openldap.c curl_gethostname.c gopher.c idn_win32.c \
|
||||
http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c \
|
||||
http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c \
|
||||
curl_multibyte.c hostcheck.c conncache.c pipeline.c dotdot.c \
|
||||
x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c
|
||||
x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c \
|
||||
mime.c sha256.c setopt.c curl_path.c
|
||||
|
||||
LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
|
||||
formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \
|
||||
|
@ -677,7 +697,8 @@ LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
|
|||
curl_sasl.h curl_multibyte.h hostcheck.h conncache.h \
|
||||
curl_setup_once.h multihandle.h setup-vms.h pipeline.h dotdot.h \
|
||||
x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \
|
||||
curl_printf.h system_win32.h rand.h
|
||||
curl_printf.h system_win32.h rand.h mime.h curl_sha256.h setopt.h \
|
||||
curl_path.h
|
||||
|
||||
LIB_RCFILES = libcurl.rc
|
||||
CSOURCES = $(LIB_CFILES) $(LIB_VAUTH_CFILES) $(LIB_VTLS_CFILES)
|
||||
|
@ -721,7 +742,6 @@ CURL_CFILES = \
|
|||
tool_libinfo.c \
|
||||
tool_main.c \
|
||||
tool_metalink.c \
|
||||
tool_mfiles.c \
|
||||
tool_msgs.c \
|
||||
tool_operate.c \
|
||||
tool_operhlp.c \
|
||||
|
@ -762,7 +782,6 @@ CURL_HFILES = \
|
|||
tool_libinfo.h \
|
||||
tool_main.h \
|
||||
tool_metalink.h \
|
||||
tool_mfiles.h \
|
||||
tool_msgs.h \
|
||||
tool_operate.h \
|
||||
tool_operhlp.h \
|
||||
|
@ -1066,7 +1085,7 @@ distdir: $(DISTFILES)
|
|||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
|
@ -1092,7 +1111,7 @@ dist-shar: distdir
|
|||
@echo WARNING: "Support for shar distribution archives is" \
|
||||
"deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
|
@ -1110,7 +1129,7 @@ dist dist-all:
|
|||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lz*) \
|
||||
|
@ -1120,7 +1139,7 @@ distcheck: dist
|
|||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
|
@ -1230,7 +1249,7 @@ maintainer-clean-generic:
|
|||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
|
@ -1301,9 +1320,9 @@ uninstall-am: uninstall-binSCRIPTS uninstall-pkgconfigDATA
|
|||
|
||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
|
||||
am--refresh check check-am clean clean-cscope clean-generic \
|
||||
clean-libtool clean-local cscope cscopelist-am ctags ctags-am \
|
||||
dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzip \
|
||||
dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
|
||||
clean-libtool cscope cscopelist-am ctags ctags-am dist \
|
||||
dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
|
||||
dist-tarZ dist-xz dist-zip distcheck distclean \
|
||||
distclean-generic distclean-libtool distclean-tags \
|
||||
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
||||
html-am info info-am install install-am install-binSCRIPTS \
|
||||
|
@ -1329,7 +1348,7 @@ dist-hook:
|
|||
(distit=`find $(srcdir) -name "*.dist" | grep -v ./ares/`; \
|
||||
for file in $$distit; do \
|
||||
strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \
|
||||
cp $$file $(distdir)$$strip; \
|
||||
cp -p $$file $(distdir)$$strip; \
|
||||
done)
|
||||
|
||||
html:
|
||||
|
@ -1370,15 +1389,6 @@ examples:
|
|||
check-docs:
|
||||
@(cd docs/libcurl; $(MAKE) check)
|
||||
|
||||
# This is a hook to have 'make clean' also clean up the docs and the tests
|
||||
# dir. The extra check for the Makefiles being present is necessary because
|
||||
# 'make distcheck' will make clean first in these directories _before_ it runs
|
||||
# this hook.
|
||||
clean-local:
|
||||
@(if test -f tests/Makefile; then cd tests; $(MAKE) clean; fi)
|
||||
@(if test -f docs/Makefile; then cd docs; $(MAKE) clean; fi)
|
||||
|
||||
#
|
||||
# Build source and binary rpms. For rpm-3.0 and above, the ~/.rpmmacros
|
||||
# must contain the following line:
|
||||
# %_topdir /home/loic/local/rpm
|
||||
|
@ -1430,11 +1440,13 @@ cygwinbin:
|
|||
install-data-hook:
|
||||
cd include && $(MAKE) install
|
||||
cd docs && $(MAKE) install
|
||||
cd docs/libcurl && $(MAKE) install
|
||||
|
||||
# We extend the standard uninstall with a custom hook:
|
||||
uninstall-hook:
|
||||
cd include && $(MAKE) uninstall
|
||||
cd docs && $(MAKE) uninstall
|
||||
cd docs/libcurl && $(MAKE) uninstall
|
||||
|
||||
ca-bundle: lib/mk-ca-bundle.pl
|
||||
@echo "generating a fresh ca-bundle.crt"
|
||||
|
@ -1458,7 +1470,8 @@ vc-ide: $(VC6_LIBDSP_DEPS) $(VC6_SRCDSP_DEPS) $(VC7_LIBVCPROJ_DEPS) \
|
|||
$(VC8_LIBVCPROJ_DEPS) $(VC8_SRCVCPROJ_DEPS) $(VC9_LIBVCPROJ_DEPS) \
|
||||
$(VC9_SRCVCPROJ_DEPS) $(VC10_LIBVCXPROJ_DEPS) $(VC10_SRCVCXPROJ_DEPS) \
|
||||
$(VC11_LIBVCXPROJ_DEPS) $(VC11_SRCVCXPROJ_DEPS) $(VC12_LIBVCXPROJ_DEPS) \
|
||||
$(VC12_SRCVCXPROJ_DEPS) $(VC14_LIBVCXPROJ_DEPS) $(VC14_SRCVCXPROJ_DEPS)
|
||||
$(VC12_SRCVCXPROJ_DEPS) $(VC14_LIBVCXPROJ_DEPS) $(VC14_SRCVCXPROJ_DEPS) \
|
||||
$(VC15_LIBVCXPROJ_DEPS) $(VC15_SRCVCXPROJ_DEPS)
|
||||
@(win32_lib_srcs='$(LIB_CFILES)'; \
|
||||
win32_lib_hdrs='$(LIB_HFILES) config-win32.h'; \
|
||||
win32_lib_rc='$(LIB_RCFILES)'; \
|
||||
|
@ -1768,7 +1781,27 @@ function gen_element(type, dir, file)\
|
|||
-v src_rc="$$win32_src_rc" \
|
||||
-v src_x_srcs="$$sorted_src_x_srcs" \
|
||||
-v src_x_hdrs="$$sorted_src_x_hdrs" \
|
||||
"$$awk_code" $(srcdir)/$(VC14_SRCTMPL) > $(VC14_SRCVCXPROJ) || { exit 1; };)
|
||||
"$$awk_code" $(srcdir)/$(VC14_SRCTMPL) > $(VC14_SRCVCXPROJ) || { exit 1; }; \
|
||||
\
|
||||
echo "generating '$(VC15_LIBVCXPROJ)'"; \
|
||||
awk -v proj_type=vcxproj \
|
||||
-v lib_srcs="$$sorted_lib_srcs" \
|
||||
-v lib_hdrs="$$sorted_lib_hdrs" \
|
||||
-v lib_rc="$$win32_lib_rc" \
|
||||
-v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
|
||||
-v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
|
||||
-v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
|
||||
-v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
|
||||
"$$awk_code" $(srcdir)/$(VC15_LIBTMPL) > $(VC15_LIBVCXPROJ) || { exit 1; }; \
|
||||
\
|
||||
echo "generating '$(VC15_SRCVCXPROJ)'"; \
|
||||
awk -v proj_type=vcxproj \
|
||||
-v src_srcs="$$sorted_src_srcs" \
|
||||
-v src_hdrs="$$sorted_src_hdrs" \
|
||||
-v src_rc="$$win32_src_rc" \
|
||||
-v src_x_srcs="$$sorted_src_x_srcs" \
|
||||
-v src_x_hdrs="$$sorted_src_x_hdrs" \
|
||||
"$$awk_code" $(srcdir)/$(VC15_SRCTMPL) > $(VC15_SRCVCXPROJ) || { exit 1; };)
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
|
|
|
@ -1,132 +1,100 @@
|
|||
Curl and libcurl 7.54.1
|
||||
Curl and libcurl 7.58.0
|
||||
|
||||
Public curl releases: 166
|
||||
Command line options: 207
|
||||
curl_easy_setopt() options: 245
|
||||
Public functions in libcurl: 61
|
||||
Contributors: 1571
|
||||
Public curl releases: 172
|
||||
Command line options: 211
|
||||
curl_easy_setopt() options: 249
|
||||
Public functions in libcurl: 74
|
||||
Contributors: 1685
|
||||
|
||||
This release includes the following changes:
|
||||
|
||||
o curl: show the libcurl release date in --version output [32]
|
||||
o new libssh-powered SSH SCP/SFTP back-end
|
||||
o curl-config: add --ssl-backends [10]
|
||||
|
||||
This release includes the following bugfixes:
|
||||
|
||||
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]
|
||||
o http2: fix incorrect trailer buffer size [40]
|
||||
o http: prevent custom Authorization headers in redirects [55]
|
||||
o travis: add boringssl build [1]
|
||||
o examples/xmlstream.c: don't switch off CURL_GLOBAL_SSL [2]
|
||||
o SSL: Avoid magic allocation of SSL backend specific data [3]
|
||||
o lib: don't export all symbols, just everything curl_* [4]
|
||||
o libssh2: send the correct CURLE error code on scp file not found
|
||||
o libssh2: return CURLE_UPLOAD_FAILED on failure to upload
|
||||
o openssl: enable pkcs12 in boringssl builds [5]
|
||||
o libssh2: remove dead code from SSH_SFTP_QUOTE [6]
|
||||
o sasl_getmesssage: make sure we have a long enough string to pass [7]
|
||||
o conncache: fix several lock issues [8]
|
||||
o threaded-shared-conn.c: new example
|
||||
o conncache: only allow multiplexing within same multi handle [9]
|
||||
o configure: check for netinet/in6.h [11]
|
||||
o URL: tolerate backslash after drive letter for FILE: [12]
|
||||
o openldap: add commented out debug possibilities [13]
|
||||
o include: get netinet/in.h before linux/tcp.h [14]
|
||||
o CONNECT: keep close connection flag in http_connect_state struct [15]
|
||||
o BINDINGS: another PostgreSQL client
|
||||
o curl: limit -# update frequency for unknown total size [16]
|
||||
o configure: add AX_CODE_COVERAGE only if using gcc [17]
|
||||
o curl.h: remove incorrect comment about ERRORBUFFER
|
||||
o openssl: improve data-pending check for https proxy [18]
|
||||
o curl: remove __EMX__ #ifdefs [19]
|
||||
o CURLOPT_PRIVATE.3: fix grammar [20]
|
||||
o sftp: allow quoted commands to use relative paths [21]
|
||||
o CURLOPT_DNS_CACHE_TIMEOUT.3: see also CURLOPT_RESOLVE
|
||||
o RESOLVE: output verbose text when trying to set a duplicate name
|
||||
o openssl: Disable file buffering for Win32 SSLKEYLOGFILE [22]
|
||||
o multi_done: prune DNS cache [23]
|
||||
o tests: update .gitignore for libtests
|
||||
o tests: mark data files as non-executable in git
|
||||
o CURLOPT_DNS_LOCAL_IP4.3: fixed the "SEE ALSO" to not self-reference
|
||||
o curl.1: documented two missing valid exit codes
|
||||
o curl.1: mention http:// and https:// as valid proxy prefixes
|
||||
o vtls: replaced getenv() with curl_getenv() [24]
|
||||
o setopt: less *or equal* than INT_MAX/1000 should be fine [25]
|
||||
o examples/smtp-mail.c: use separate defines for options and mail
|
||||
o curl: support >256 bytes warning messsages [26]
|
||||
o conncache: fix a return code
|
||||
o krb5: fix a potential access of uninitialized memory
|
||||
o rand: add a clang-analyzer work-around
|
||||
o CURLOPT_READFUNCTION.3: refer to argument with correct name [27]
|
||||
o brotli: allow compiling with version 0.6.0
|
||||
o content_encoding: rework zlib_inflate [28]
|
||||
o curl_easy_reset: release mime-related data [29]
|
||||
o examples/rtsp: fix error handling macros [30]
|
||||
o build-openssl.bat: Added support for VC15
|
||||
o build-wolfssl.bat: Added support for VC15
|
||||
o build: Added Visual Studio 2017 project files
|
||||
o winbuild: Added support for VC15
|
||||
o curl: Support size modifiers for --max-filesize [32]
|
||||
o examples/cacertinmem: ignore cert-already-exists error [33]
|
||||
o brotli: data at the end of content can be lost [34]
|
||||
o curl_version_info.3: call the argument 'age' [35]
|
||||
o openssl: fix memory leak of SSLKEYLOGFILE filename
|
||||
o build: remove HAVE_LIMITS_H check [36]
|
||||
o --mail-rcpt: fix short-text description
|
||||
o scripts: allow all perl scripts to be run directly [37]
|
||||
o progress: calculate transfer speed on milliseconds if possible [38]
|
||||
o system.h: check __LONG_MAX__ for defining curl_off_t [31]
|
||||
o easy: fix connection ownership in curl_easy_pause [39]
|
||||
o setopt: reintroduce non-static Curl_vsetopt() for OS400 support [41]
|
||||
o setopt: fix SSLVERSION to allow CURL_SSLVERSION_MAX_ values [42]
|
||||
o configure.ac: append extra linker flags instead of prepending them [43]
|
||||
o HTTP: bail out on negative Content-Length: values [44]
|
||||
o docs: comment about CURLE_READ_ERROR returned by curl_mime_filedata
|
||||
o mime: clone mime tree upon easy handle duplication [45]
|
||||
o openssl: enable SSLKEYLOGFILE support by default [46]
|
||||
o smtp/pop3/imap_get_message: decrease the data length too... [47]
|
||||
o CURLOPT_TCP_NODELAY.3: fix typo [48]
|
||||
o SMB: fix numeric constant suffix and variable types [49]
|
||||
o ftp-wildcard: fix matching an empty string with "*[^a]" [50]
|
||||
o curl_fnmatch: only allow 5 '*' sections in a single pattern
|
||||
o openssl: fix potential memory leak in SSLKEYLOGFILE logic
|
||||
o SSH: Fix state machine for ssh-agent authentication [51]
|
||||
o examples/url2file.c: add missing curl_global_cleanup() call [52]
|
||||
o http2: don't close connection when single transfer is stopped [53]
|
||||
o libcurl-env.3: first version
|
||||
o curl: progress bar refresh, get width using ioctl() [54]
|
||||
o CONNECT_TO: fail attempt to set an IPv6 numerical without IPv6 support [56]
|
||||
|
||||
This release includes the following known bugs:
|
||||
|
||||
|
@ -135,85 +103,78 @@ 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:
|
||||
|
||||
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)
|
||||
ahodesuka on github, Andreas Schneider, Basuke Suzuki, Brad Spencer,
|
||||
Chester Liu, cmfrolick on github, Craig de Stigter, Daniel Stenberg,
|
||||
Dan Johnson, David Benjamin, Dima Tisnek, Dimitrios Apostolou,
|
||||
Dmitry Kostjuchenko, Dominik Hölzl, Elliot Saba, Frank Gevaerts, Gisle Vanem,
|
||||
guitared on github, Jan Ehrhardt, Johannes Schindelin, John DeHelian,
|
||||
John Hascall, jonrumsey on github, jungle-boogie on github, Kartik Mahajan,
|
||||
Martin Galvan, Matthew Kerwin, Mattias Fornander, Max Dymond, Michael Felt,
|
||||
Michael Gmelin, Michael Kaufmann, Mikalai Ananenka, Nikos Mavrogiannopoulos,
|
||||
Oleg Pudeyev, Patrick Dawson, Patrick Monnerat, Per Malmberg, Pete Lomax,
|
||||
Rainer Canavan, Randall S. Becker, Ray Satiro, Richard Alcock, Robert Kolcun,
|
||||
Sean MacLennan, Stanislav Zidek, Stepan Broz, Steve Holme,
|
||||
Thomas van Hesteren, Tomas Mraz, W. Mark Kubacki, XhstormR on github,
|
||||
Zachary Seguin, Zhouyihai Ding,
|
||||
(54 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=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] = https://curl.haxx.se/bug/?i=2118
|
||||
[2] = https://curl.haxx.se/mail/lib-2017-12/0000.html
|
||||
[3] = https://curl.haxx.se/bug/?i=2119
|
||||
[4] = https://curl.haxx.se/bug/?i=2127
|
||||
[5] = https://curl.haxx.se/bug/?i=2134
|
||||
[6] = https://curl.haxx.se/bug/?i=2143
|
||||
[7] = https://curl.haxx.se/bug/?i=2150
|
||||
[8] = https://curl.haxx.se/bug/?i=2132
|
||||
[9] = https://curl.haxx.se/bug/?i=2152
|
||||
[10] = https://curl.haxx.se/bug/?i=2128
|
||||
[11] = https://curl.haxx.se/bug/?i=2146
|
||||
[12] = https://curl.haxx.se/bug/?i=2154
|
||||
[13] = https://curl.haxx.se/bug/?i=2159
|
||||
[14] = https://curl.haxx.se/bug/?i=2160
|
||||
[15] = https://curl.haxx.se/bug/?i=2088
|
||||
[16] = https://curl.haxx.se/bug/?i=2158
|
||||
[17] = https://curl.haxx.se/bug/?i=2076
|
||||
[18] = https://curl.haxx.se/bug/?i=1916
|
||||
[19] = https://curl.haxx.se/bug/?i=2166
|
||||
[20] = https://curl.haxx.se/bug/?i=2168
|
||||
[21] = https://curl.haxx.se/bug/?i=1900
|
||||
[22] = https://github.com/curl/curl/pull/1346#issuecomment-350530901
|
||||
[23] = https://curl.haxx.se/bug/?i=2169
|
||||
[24] = https://curl.haxx.se/bug/?i=2171
|
||||
[25] = https://curl.haxx.se/bug/?i=2173
|
||||
[26] = https://curl.haxx.se/bug/?i=2174
|
||||
[27] = https://curl.haxx.se/bug/?i=2175
|
||||
[28] = https://curl.haxx.se/bug/?i=2068
|
||||
[29] = https://curl.haxx.se/mail/lib-2017-12/0060.html
|
||||
[30] = https://curl.haxx.se/bug/?i=2185
|
||||
[31] = https://curl.haxx.se/bug/?i=2216
|
||||
[32] = https://curl.haxx.se/bug/?i=2179
|
||||
[33] = https://curl.haxx.se/mail/lib-2017-12/0057.html
|
||||
[34] = https://curl.haxx.se/bug/?i=2194
|
||||
[35] = https://curl.haxx.se/mail/lib-2017-12/0074.html
|
||||
[36] = https://curl.haxx.se/bug/?i=2215
|
||||
[37] = https://curl.haxx.se/bug/?i=2222
|
||||
[38] = https://curl.haxx.se/bug/?i=2200
|
||||
[39] = https://curl.haxx.se/bug/?i=2217
|
||||
[40] = https://curl.haxx.se/docs/adv_2018-824a.html
|
||||
[41] = https://curl.haxx.se/bug/?i=2230
|
||||
[42] = https://curl.haxx.se/bug/?i=2225
|
||||
[43] = https://curl.haxx.se/bug/?i=2234
|
||||
[44] = https://curl.haxx.se/bug/?i=2212
|
||||
[45] = https://curl.haxx.se/bug/?i=2235
|
||||
[46] = https://curl.haxx.se/bug/?i=2210
|
||||
[47] = https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5206
|
||||
[48] = https://curl.haxx.se/bug/?i=2239
|
||||
[49] = https://curl.haxx.se/bug/?i=2211
|
||||
[50] = https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5251
|
||||
[51] = https://curl.haxx.se/bug/?i=2248
|
||||
[52] = https://curl.haxx.se/bug/?i=2245
|
||||
[53] = https://curl.haxx.se/bug/?i=2237
|
||||
[54] = https://curl.haxx.se/bug/?i=2242
|
||||
[55] = https://curl.haxx.se/docs/adv_2018-b3bf.html
|
||||
[56] = https://curl.haxx.se/mail/lib-2018-01/0087.html
|
||||
|
|
361
curl/acinclude.m4
Normal file → Executable file
361
curl/acinclude.m4
Normal file → Executable 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
|
||||
|
@ -199,8 +199,6 @@ AC_DEFUN([CURL_CHECK_HEADER_WINDOWS], [
|
|||
yes)
|
||||
AC_DEFINE_UNQUOTED(HAVE_WINDOWS_H, 1,
|
||||
[Define to 1 if you have the windows.h header file.])
|
||||
AC_DEFINE_UNQUOTED(WIN32_LEAN_AND_MEAN, 1,
|
||||
[Define to avoid automatic inclusion of winsock.h])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
@ -790,8 +788,8 @@ AC_DEFUN([CURL_CHECK_LIBS_LDAP], [
|
|||
#
|
||||
for x_nlibs in '' "$u_libs" \
|
||||
'-lldap' \
|
||||
'-llber -lldap' \
|
||||
'-lldap -llber' \
|
||||
'-llber -lldap' \
|
||||
'-lldapssl -lldapx -lldapsdk' \
|
||||
'-lldapsdk -lldapx -lldapssl' ; do
|
||||
if test "$curl_cv_ldap_LIBS" = "unknown"; then
|
||||
|
@ -1084,7 +1082,11 @@ AC_DEFUN([CURL_CHECK_FUNC_GETNAMEINFO], [
|
|||
#endif
|
||||
#define GNICALLCONV
|
||||
#endif
|
||||
extern int GNICALLCONV getnameinfo($gni_arg1, $gni_arg2,
|
||||
extern int GNICALLCONV
|
||||
#ifdef __ANDROID__
|
||||
__attribute__((overloadable))
|
||||
#endif
|
||||
getnameinfo($gni_arg1, $gni_arg2,
|
||||
char *, $gni_arg46,
|
||||
char *, $gni_arg46,
|
||||
$gni_arg7);
|
||||
|
@ -1388,6 +1390,9 @@ AC_DEFUN([CURL_CHECK_FUNC_RECV], [
|
|||
#define RECVCALLCONV
|
||||
#endif
|
||||
extern $recv_retv RECVCALLCONV
|
||||
#ifdef __ANDROID__
|
||||
__attribute__((overloadable))
|
||||
#endif
|
||||
recv($recv_arg1, $recv_arg2, $recv_arg3, $recv_arg4);
|
||||
]],[[
|
||||
$recv_arg1 s=0;
|
||||
|
@ -1522,6 +1527,9 @@ AC_DEFUN([CURL_CHECK_FUNC_SEND], [
|
|||
#define SENDCALLCONV
|
||||
#endif
|
||||
extern $send_retv SENDCALLCONV
|
||||
#ifdef __ANDROID__
|
||||
__attribute__((overloadable))
|
||||
#endif
|
||||
send($send_arg1, $send_arg2, $send_arg3, $send_arg4);
|
||||
]],[[
|
||||
$send_arg1 s=0;
|
||||
|
@ -2076,29 +2084,8 @@ _EOF
|
|||
])
|
||||
|
||||
|
||||
dnl CURL_CONFIGURE_LONG
|
||||
dnl -------------------------------------------------
|
||||
dnl Find out the size of long as reported by sizeof() and define
|
||||
dnl CURL_SIZEOF_LONG as appropriate to be used in template file
|
||||
dnl include/curl/curlbuild.h.in to properly configure the library.
|
||||
dnl The size of long is a build time characteristic and as such
|
||||
dnl must be recorded in curlbuild.h
|
||||
|
||||
AC_DEFUN([CURL_CONFIGURE_LONG], [
|
||||
if test -z "$ac_cv_sizeof_long" ||
|
||||
test "$ac_cv_sizeof_long" -eq "0"; then
|
||||
AC_MSG_ERROR([cannot find out size of long.])
|
||||
fi
|
||||
CURL_DEFINE_UNQUOTED([CURL_SIZEOF_LONG], [$ac_cv_sizeof_long])
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_CONFIGURE_CURL_SOCKLEN_T
|
||||
dnl -------------------------------------------------
|
||||
dnl Find out suitable curl_socklen_t data type definition and size, making
|
||||
dnl appropriate definitions for template file include/curl/curlbuild.h.in
|
||||
dnl to properly configure and use the library.
|
||||
dnl
|
||||
dnl The need for the curl_socklen_t definition arises mainly to properly
|
||||
dnl interface HP-UX systems which on one hand have a typedef'ed socklen_t
|
||||
dnl data type which is 32 or 64-Bit wide depending on the data model being
|
||||
|
@ -2222,10 +2209,6 @@ AC_DEFUN([CURL_CONFIGURE_CURL_SOCKLEN_T], [
|
|||
|
||||
dnl CURL_CONFIGURE_PULL_SYS_POLL
|
||||
dnl -------------------------------------------------
|
||||
dnl Find out if system header file sys/poll.h must be included by the
|
||||
dnl external interface, making appropriate definitions for template file
|
||||
dnl include/curl/curlbuild.h.in to properly configure and use the library.
|
||||
dnl
|
||||
dnl The need for the sys/poll.h inclusion arises mainly to properly
|
||||
dnl interface AIX systems which define macros 'events' and 'revents'.
|
||||
|
||||
|
@ -2378,7 +2361,11 @@ AC_DEFUN([CURL_CHECK_FUNC_SELECT], [
|
|||
long tv_usec;
|
||||
};
|
||||
#endif
|
||||
extern $sel_retv SELECTCALLCONV select($sel_arg1,
|
||||
extern $sel_retv SELECTCALLCONV
|
||||
#ifdef __ANDROID__
|
||||
__attribute__((overloadable))
|
||||
#endif
|
||||
select($sel_arg1,
|
||||
$sel_arg234,
|
||||
$sel_arg234,
|
||||
$sel_arg234,
|
||||
|
@ -2717,292 +2704,6 @@ AC_HELP_STRING([--without-ca-fallback], [Don't use the built in CA store of the
|
|||
fi
|
||||
])
|
||||
|
||||
|
||||
dnl DO_CURL_OFF_T_CHECK (TYPE, SIZE)
|
||||
dnl -------------------------------------------------
|
||||
dnl Internal macro for CURL_CONFIGURE_CURL_OFF_T
|
||||
|
||||
AC_DEFUN([DO_CURL_OFF_T_CHECK], [
|
||||
AC_REQUIRE([CURL_INCLUDES_INTTYPES])dnl
|
||||
if test "$curl_typeof_curl_off_t" = "unknown" && test ! -z "$1"; then
|
||||
tmp_includes=""
|
||||
tmp_source=""
|
||||
tmp_fmt=""
|
||||
case XC_SH_TR_SH([$1]) in
|
||||
int64_t)
|
||||
tmp_includes="$curl_includes_inttypes"
|
||||
tmp_source="char f@<:@@:>@ = PRId64;"
|
||||
tmp_fmt="PRId64"
|
||||
;;
|
||||
int32_t)
|
||||
tmp_includes="$curl_includes_inttypes"
|
||||
tmp_source="char f@<:@@:>@ = PRId32;"
|
||||
tmp_fmt="PRId32"
|
||||
;;
|
||||
int16_t)
|
||||
tmp_includes="$curl_includes_inttypes"
|
||||
tmp_source="char f@<:@@:>@ = PRId16;"
|
||||
tmp_fmt="PRId16"
|
||||
;;
|
||||
esac
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
$tmp_includes
|
||||
typedef $1 curl_off_t;
|
||||
typedef char dummy_arr[sizeof(curl_off_t) == $2 ? 1 : -1];
|
||||
]],[[
|
||||
$tmp_source
|
||||
curl_off_t dummy;
|
||||
]])
|
||||
],[
|
||||
if test -z "$tmp_fmt"; then
|
||||
curl_typeof_curl_off_t="$1"
|
||||
curl_sizeof_curl_off_t="$2"
|
||||
else
|
||||
CURL_CHECK_DEF([$tmp_fmt], [$curl_includes_inttypes], [silent])
|
||||
AS_VAR_PUSHDEF([tmp_HaveFmtDef], [curl_cv_have_def_$tmp_fmt])dnl
|
||||
AS_VAR_PUSHDEF([tmp_FmtDef], [curl_cv_def_$tmp_fmt])dnl
|
||||
if test AS_VAR_GET(tmp_HaveFmtDef) = "yes"; then
|
||||
curl_format_curl_off_t=AS_VAR_GET(tmp_FmtDef)
|
||||
curl_typeof_curl_off_t="$1"
|
||||
curl_sizeof_curl_off_t="$2"
|
||||
fi
|
||||
AS_VAR_POPDEF([tmp_FmtDef])dnl
|
||||
AS_VAR_POPDEF([tmp_HaveFmtDef])dnl
|
||||
fi
|
||||
])
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
dnl DO_CURL_OFF_T_SUFFIX_CHECK (TYPE)
|
||||
dnl -------------------------------------------------
|
||||
dnl Internal macro for CURL_CONFIGURE_CURL_OFF_T
|
||||
|
||||
AC_DEFUN([DO_CURL_OFF_T_SUFFIX_CHECK], [
|
||||
AC_REQUIRE([CURL_INCLUDES_INTTYPES])dnl
|
||||
AC_MSG_CHECKING([constant suffix string for curl_off_t])
|
||||
#
|
||||
curl_suffix_curl_off_t="unknown"
|
||||
curl_suffix_curl_off_tu="unknown"
|
||||
#
|
||||
case XC_SH_TR_SH([$1]) in
|
||||
long_long | __longlong | __longlong_t)
|
||||
tst_suffixes="LL::"
|
||||
;;
|
||||
long)
|
||||
tst_suffixes="L::"
|
||||
;;
|
||||
int)
|
||||
tst_suffixes="::"
|
||||
;;
|
||||
__int64 | int64_t)
|
||||
tst_suffixes="LL:i64::"
|
||||
;;
|
||||
__int32 | int32_t)
|
||||
tst_suffixes="L:i32::"
|
||||
;;
|
||||
__int16 | int16_t)
|
||||
tst_suffixes="L:i16::"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([unexpected data type $1])
|
||||
;;
|
||||
esac
|
||||
#
|
||||
old_IFS=$IFS; IFS=':'
|
||||
for tmp_ssuf in $tst_suffixes ; do
|
||||
IFS=$old_IFS
|
||||
if test "x$curl_suffix_curl_off_t" = "xunknown"; then
|
||||
case $tmp_ssuf in
|
||||
i64 | i32 | i16)
|
||||
tmp_usuf="u$tmp_ssuf"
|
||||
;;
|
||||
LL | L)
|
||||
tmp_usuf="U$tmp_ssuf"
|
||||
;;
|
||||
*)
|
||||
tmp_usuf=""
|
||||
;;
|
||||
esac
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
$curl_includes_inttypes
|
||||
typedef $1 new_t;
|
||||
]],[[
|
||||
new_t s1;
|
||||
new_t s2;
|
||||
s1 = -10$tmp_ssuf ;
|
||||
s2 = 20$tmp_ssuf ;
|
||||
if(s1 > s2)
|
||||
return 1;
|
||||
]])
|
||||
],[
|
||||
curl_suffix_curl_off_t="$tmp_ssuf"
|
||||
curl_suffix_curl_off_tu="$tmp_usuf"
|
||||
])
|
||||
fi
|
||||
done
|
||||
IFS=$old_IFS
|
||||
#
|
||||
if test "x$curl_suffix_curl_off_t" = "xunknown"; then
|
||||
AC_MSG_ERROR([cannot find constant suffix string for curl_off_t.])
|
||||
else
|
||||
AC_MSG_RESULT([$curl_suffix_curl_off_t])
|
||||
AC_MSG_CHECKING([constant suffix string for unsigned curl_off_t])
|
||||
AC_MSG_RESULT([$curl_suffix_curl_off_tu])
|
||||
fi
|
||||
#
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_CONFIGURE_CURL_OFF_T
|
||||
dnl -------------------------------------------------
|
||||
dnl Find out suitable curl_off_t data type definition and associated
|
||||
dnl items, and make the appropriate definitions used in template file
|
||||
dnl include/curl/curlbuild.h.in to properly configure the library.
|
||||
|
||||
AC_DEFUN([CURL_CONFIGURE_CURL_OFF_T], [
|
||||
AC_REQUIRE([CURL_INCLUDES_INTTYPES])dnl
|
||||
#
|
||||
AC_BEFORE([$0],[AC_SYS_LARGEFILE])dnl
|
||||
AC_BEFORE([$0],[CURL_CONFIGURE_REENTRANT])dnl
|
||||
AC_BEFORE([$0],[CURL_CHECK_AIX_ALL_SOURCE])dnl
|
||||
#
|
||||
if test -z "$SED"; then
|
||||
AC_MSG_ERROR([SED not set. Cannot continue without SED being set.])
|
||||
fi
|
||||
#
|
||||
AC_CHECK_SIZEOF(long)
|
||||
AC_CHECK_SIZEOF(void*)
|
||||
#
|
||||
if test -z "$ac_cv_sizeof_long" ||
|
||||
test "$ac_cv_sizeof_long" -eq "0"; then
|
||||
AC_MSG_ERROR([cannot find out size of long.])
|
||||
fi
|
||||
if test -z "$ac_cv_sizeof_voidp" ||
|
||||
test "$ac_cv_sizeof_voidp" -eq "0"; then
|
||||
AC_MSG_ERROR([cannot find out size of void*.])
|
||||
fi
|
||||
#
|
||||
x_LP64_long=""
|
||||
x_LP32_long=""
|
||||
#
|
||||
if test "$ac_cv_sizeof_long" -eq "8" &&
|
||||
test "$ac_cv_sizeof_voidp" -ge "8"; then
|
||||
x_LP64_long="long"
|
||||
elif test "$ac_cv_sizeof_long" -eq "4" &&
|
||||
test "$ac_cv_sizeof_voidp" -ge "4"; then
|
||||
x_LP32_long="long"
|
||||
fi
|
||||
#
|
||||
dnl DO_CURL_OFF_T_CHECK results are stored in next 3 vars
|
||||
#
|
||||
curl_typeof_curl_off_t="unknown"
|
||||
curl_sizeof_curl_off_t="unknown"
|
||||
curl_format_curl_off_t="unknown"
|
||||
curl_format_curl_off_tu="unknown"
|
||||
#
|
||||
if test "$curl_typeof_curl_off_t" = "unknown"; then
|
||||
AC_MSG_CHECKING([for 64-bit curl_off_t data type])
|
||||
for t8 in \
|
||||
"$x_LP64_long" \
|
||||
'int64_t' \
|
||||
'__int64' \
|
||||
'long long' \
|
||||
'__longlong' \
|
||||
'__longlong_t' ; do
|
||||
DO_CURL_OFF_T_CHECK([$t8], [8])
|
||||
done
|
||||
AC_MSG_RESULT([$curl_typeof_curl_off_t])
|
||||
fi
|
||||
if test "$curl_typeof_curl_off_t" = "unknown"; then
|
||||
AC_MSG_CHECKING([for 32-bit curl_off_t data type])
|
||||
for t4 in \
|
||||
"$x_LP32_long" \
|
||||
'int32_t' \
|
||||
'__int32' \
|
||||
'int' ; do
|
||||
DO_CURL_OFF_T_CHECK([$t4], [4])
|
||||
done
|
||||
AC_MSG_RESULT([$curl_typeof_curl_off_t])
|
||||
fi
|
||||
if test "$curl_typeof_curl_off_t" = "unknown"; then
|
||||
AC_MSG_ERROR([cannot find data type for curl_off_t.])
|
||||
fi
|
||||
#
|
||||
AC_MSG_CHECKING([size of curl_off_t])
|
||||
AC_MSG_RESULT([$curl_sizeof_curl_off_t])
|
||||
#
|
||||
AC_MSG_CHECKING([formatting string directive for curl_off_t])
|
||||
if test "$curl_format_curl_off_t" != "unknown"; then
|
||||
x_pull_headers="yes"
|
||||
curl_format_curl_off_t=`echo "$curl_format_curl_off_t" | "$SED" 's/[["]]//g'`
|
||||
curl_format_curl_off_tu=`echo "$curl_format_curl_off_t" | "$SED" 's/i$/u/'`
|
||||
curl_format_curl_off_tu=`echo "$curl_format_curl_off_tu" | "$SED" 's/d$/u/'`
|
||||
curl_format_curl_off_tu=`echo "$curl_format_curl_off_tu" | "$SED" 's/D$/U/'`
|
||||
else
|
||||
x_pull_headers="no"
|
||||
case XC_SH_TR_SH([$curl_typeof_curl_off_t]) in
|
||||
long_long | __longlong | __longlong_t)
|
||||
curl_format_curl_off_t="lld"
|
||||
curl_format_curl_off_tu="llu"
|
||||
;;
|
||||
long)
|
||||
curl_format_curl_off_t="ld"
|
||||
curl_format_curl_off_tu="lu"
|
||||
;;
|
||||
int)
|
||||
curl_format_curl_off_t="d"
|
||||
curl_format_curl_off_tu="u"
|
||||
;;
|
||||
__int64)
|
||||
curl_format_curl_off_t="I64d"
|
||||
curl_format_curl_off_tu="I64u"
|
||||
;;
|
||||
__int32)
|
||||
curl_format_curl_off_t="I32d"
|
||||
curl_format_curl_off_tu="I32u"
|
||||
;;
|
||||
__int16)
|
||||
curl_format_curl_off_t="I16d"
|
||||
curl_format_curl_off_tu="I16u"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([cannot find print format string for curl_off_t.])
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_MSG_RESULT(["$curl_format_curl_off_t"])
|
||||
#
|
||||
AC_MSG_CHECKING([formatting string directive for unsigned curl_off_t])
|
||||
AC_MSG_RESULT(["$curl_format_curl_off_tu"])
|
||||
#
|
||||
DO_CURL_OFF_T_SUFFIX_CHECK([$curl_typeof_curl_off_t])
|
||||
#
|
||||
if test "$x_pull_headers" = "yes"; then
|
||||
if test "x$ac_cv_header_sys_types_h" = "xyes"; then
|
||||
CURL_DEFINE_UNQUOTED([CURL_PULL_SYS_TYPES_H])
|
||||
fi
|
||||
if test "x$ac_cv_header_stdint_h" = "xyes"; then
|
||||
CURL_DEFINE_UNQUOTED([CURL_PULL_STDINT_H])
|
||||
fi
|
||||
if test "x$ac_cv_header_inttypes_h" = "xyes"; then
|
||||
CURL_DEFINE_UNQUOTED([CURL_PULL_INTTYPES_H])
|
||||
fi
|
||||
fi
|
||||
#
|
||||
CURL_DEFINE_UNQUOTED([CURL_TYPEOF_CURL_OFF_T], [$curl_typeof_curl_off_t])
|
||||
CURL_DEFINE_UNQUOTED([CURL_FORMAT_CURL_OFF_T], ["$curl_format_curl_off_t"])
|
||||
CURL_DEFINE_UNQUOTED([CURL_FORMAT_CURL_OFF_TU], ["$curl_format_curl_off_tu"])
|
||||
CURL_DEFINE_UNQUOTED([CURL_FORMAT_OFF_T], ["%$curl_format_curl_off_t"])
|
||||
CURL_DEFINE_UNQUOTED([CURL_SIZEOF_CURL_OFF_T], [$curl_sizeof_curl_off_t])
|
||||
CURL_DEFINE_UNQUOTED([CURL_SUFFIX_CURL_OFF_T], [$curl_suffix_curl_off_t])
|
||||
CURL_DEFINE_UNQUOTED([CURL_SUFFIX_CURL_OFF_TU], [$curl_suffix_curl_off_tu])
|
||||
#
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_CHECK_WIN32_LARGEFILE
|
||||
dnl -------------------------------------------------
|
||||
dnl Check if curl's WIN32 large file will be used
|
||||
|
@ -3243,3 +2944,29 @@ AC_DEFUN([CURL_MAC_CFLAGS], [
|
|||
fi
|
||||
|
||||
])
|
||||
|
||||
|
||||
dnl CURL_SUPPORTS_BUILTIN_AVAILABLE
|
||||
dnl
|
||||
dnl Check to see if the compiler supports __builtin_available. This built-in
|
||||
dnl compiler function first appeared in Apple LLVM 9.0.0. It's so new that, at
|
||||
dnl the time this macro was written, the function was not yet documented. Its
|
||||
dnl purpose is to return true if the code is running under a certain OS version
|
||||
dnl or later.
|
||||
|
||||
AC_DEFUN([CURL_SUPPORTS_BUILTIN_AVAILABLE], [
|
||||
AC_MSG_CHECKING([to see if the compiler supports __builtin_available()])
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
#include <stdlib.h>
|
||||
]],[[
|
||||
if (__builtin_available(macOS 10.8, iOS 5.0, *)) {}
|
||||
]])
|
||||
],[
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE_UNQUOTED(HAVE_BUILTIN_AVAILABLE, 1,
|
||||
[Define to 1 if you have the __builtin_available function.])
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
])
|
||||
])
|
||||
|
|
46
curl/aclocal.m4
vendored
46
curl/aclocal.m4
vendored
|
@ -1,6 +1,6 @@
|
|||
# generated automatically by aclocal 1.15 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
|
|||
If you have problems, you may need to regenerate the build system entirely.
|
||||
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
||||
|
||||
# Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
|
|||
[am__api_version='1.15'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.15], [],
|
||||
m4_if([$1], [1.15.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
|
@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
|||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.15])dnl
|
||||
[AM_AUTOMAKE_VERSION([1.15.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
|||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE(
|
|||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -332,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
|
|||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -408,7 +408,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
|||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -605,7 +605,7 @@ for _am_header in $config_headers :; do
|
|||
done
|
||||
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -626,7 +626,7 @@ if test x"${install_sh+set}" != xset; then
|
|||
fi
|
||||
AC_SUBST([install_sh])])
|
||||
|
||||
# Copyright (C) 2003-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -648,7 +648,7 @@ AC_SUBST([am__leading_dot])])
|
|||
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
|
||||
# From Jim Meyering
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -683,7 +683,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
|||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -733,7 +733,7 @@ rm -f confinc confmf
|
|||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -772,7 +772,7 @@ fi
|
|||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -801,7 +801,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
|
|||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -848,7 +848,7 @@ AC_LANG_POP([C])])
|
|||
# For backward compatibility.
|
||||
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -867,7 +867,7 @@ AC_DEFUN([AM_RUN_LOG],
|
|||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -948,7 +948,7 @@ AC_CONFIG_COMMANDS_PRE(
|
|||
rm -f conftest.file
|
||||
])
|
||||
|
||||
# Copyright (C) 2009-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2009-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1008,7 +1008,7 @@ AC_SUBST([AM_BACKSLASH])dnl
|
|||
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
||||
])
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1036,7 +1036,7 @@ fi
|
|||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Copyright (C) 2006-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1055,7 +1055,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
|||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2004-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
|
@ -306,7 +306,6 @@ for fname in .deps \
|
|||
configure \
|
||||
configurehelp.pm \
|
||||
curl-config \
|
||||
curlbuild.h \
|
||||
depcomp \
|
||||
libcares.pc \
|
||||
libcurl.pc \
|
||||
|
|
|
@ -6,7 +6,7 @@ rem * / __| | | | |_) | |
|
|||
rem * | (__| |_| | _ <| |___
|
||||
rem * \___|\___/|_| \_\_____|
|
||||
rem *
|
||||
rem * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
rem * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
rem *
|
||||
rem * This software is licensed as described in the file COPYING, which
|
||||
rem * you should have received as part of this distribution. The terms
|
||||
|
@ -73,7 +73,6 @@ rem
|
|||
echo Generating prerequisite files
|
||||
|
||||
call :generate
|
||||
if errorlevel 4 goto nogencurlbuild
|
||||
if errorlevel 3 goto nogenhugehelp
|
||||
if errorlevel 2 goto nogenmakefile
|
||||
if errorlevel 1 goto warning
|
||||
|
@ -83,7 +82,6 @@ rem
|
|||
echo Removing prerequisite files
|
||||
|
||||
call :clean
|
||||
if errorlevel 3 goto nocleancurlbuild
|
||||
if errorlevel 2 goto nocleanhugehelp
|
||||
if errorlevel 1 goto nocleanmakefile
|
||||
)
|
||||
|
@ -98,7 +96,6 @@ rem 0 - success
|
|||
rem 1 - success with simplified tool_hugehelp.c
|
||||
rem 2 - failed to generate Makefile
|
||||
rem 3 - failed to generate tool_hugehelp.c
|
||||
rem 4 - failed to generate curlbuild.h
|
||||
rem
|
||||
:generate
|
||||
if "%OS%" == "Windows_NT" setlocal
|
||||
|
@ -126,16 +123,6 @@ rem
|
|||
)
|
||||
cmd /c exit 0
|
||||
|
||||
rem Create curlbuild.h
|
||||
echo * %CD%\include\curl\curlbuild.h
|
||||
if exist include\curl\curlbuild.h.dist (
|
||||
copy /Y include\curl\curlbuild.h.dist include\curl\curlbuild.h 1>NUL 2>&1
|
||||
if errorlevel 1 (
|
||||
if "%OS%" == "Windows_NT" endlocal
|
||||
exit /B 4
|
||||
)
|
||||
)
|
||||
|
||||
rem Setup c-ares git tree
|
||||
if exist ares\buildconf.bat (
|
||||
echo.
|
||||
|
@ -160,7 +147,6 @@ rem
|
|||
rem 0 - success
|
||||
rem 1 - failed to clean Makefile
|
||||
rem 2 - failed to clean tool_hugehelp.c
|
||||
rem 3 - failed to clean curlbuild.h
|
||||
rem
|
||||
:clean
|
||||
rem Remove Makefile
|
||||
|
@ -181,15 +167,6 @@ rem
|
|||
)
|
||||
)
|
||||
|
||||
rem Remove curlbuild.h
|
||||
echo * %CD%\include\curl\curlbuild.h
|
||||
if exist include\curl\curlbuild.h (
|
||||
del include\curl\curlbuild.h 2>NUL
|
||||
if exist include\curl\curlbuild.h (
|
||||
exit /B 3
|
||||
)
|
||||
)
|
||||
|
||||
exit /B
|
||||
|
||||
rem Function to generate src\tool_hugehelp.c
|
||||
|
@ -304,11 +281,6 @@ rem
|
|||
echo Error: Unable to generate src\tool_hugehelp.c
|
||||
goto error
|
||||
|
||||
:nogencurlbuild
|
||||
echo.
|
||||
echo Error: Unable to generate include\curl\curlbuild.h
|
||||
goto error
|
||||
|
||||
:nocleanmakefile
|
||||
echo.
|
||||
echo Error: Unable to clean Makefile
|
||||
|
@ -319,11 +291,6 @@ rem
|
|||
echo Error: Unable to clean src\tool_hugehelp.c
|
||||
goto error
|
||||
|
||||
:nocleancurlbuild
|
||||
echo.
|
||||
echo Error: Unable to clean include\curl\curlbuild.h
|
||||
goto error
|
||||
|
||||
:warning
|
||||
echo.
|
||||
echo Warning: The curl manual could not be integrated in the source. This means when
|
||||
|
|
101
curl/config.guess
vendored
101
curl/config.guess
vendored
|
@ -1,8 +1,8 @@
|
|||
#! /bin/sh
|
||||
# Attempt to guess a canonical system name.
|
||||
# Copyright 1992-2016 Free Software Foundation, Inc.
|
||||
# Copyright 1992-2017 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2016-10-02'
|
||||
timestamp='2017-11-07'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
@ -15,7 +15,7 @@ timestamp='2016-10-02'
|
|||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
|
@ -27,7 +27,7 @@ timestamp='2016-10-02'
|
|||
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
|
||||
#
|
||||
# You can get the latest version of this script from:
|
||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
|
||||
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
|
||||
#
|
||||
# Please send patches to <config-patches@gnu.org>.
|
||||
|
||||
|
@ -39,7 +39,7 @@ Usage: $0 [OPTION]
|
|||
|
||||
Output the configuration name of the system \`$me' is run on.
|
||||
|
||||
Operation modes:
|
||||
Options:
|
||||
-h, --help print this help, then exit
|
||||
-t, --time-stamp print date of last modification, then exit
|
||||
-v, --version print version number, then exit
|
||||
|
@ -50,7 +50,7 @@ version="\
|
|||
GNU config.guess ($timestamp)
|
||||
|
||||
Originally written by Per Bothner.
|
||||
Copyright 1992-2016 Free Software Foundation, Inc.
|
||||
Copyright 1992-2017 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
@ -244,6 +244,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:MidnightBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:ekkoBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
|
@ -259,6 +262,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
*:Sortix:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-sortix
|
||||
exit ;;
|
||||
*:Redox:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-redox
|
||||
exit ;;
|
||||
alpha:OSF1:*:*)
|
||||
case $UNAME_RELEASE in
|
||||
*4.0)
|
||||
|
@ -315,15 +321,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
exitcode=$?
|
||||
trap '' 0
|
||||
exit $exitcode ;;
|
||||
Alpha\ *:Windows_NT*:*)
|
||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||
# Should we change UNAME_MACHINE based on the output of uname instead
|
||||
# of the specific Alpha model?
|
||||
echo alpha-pc-interix
|
||||
exit ;;
|
||||
21064:Windows_NT:50:3)
|
||||
echo alpha-dec-winnt3.5
|
||||
exit ;;
|
||||
Amiga*:UNIX_System_V:4.0:*)
|
||||
echo m68k-unknown-sysv4
|
||||
exit ;;
|
||||
|
@ -485,13 +482,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
#endif
|
||||
#if defined (host_mips) && defined (MIPSEB)
|
||||
#if defined (SYSTYPE_SYSV)
|
||||
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
|
||||
printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
|
||||
#endif
|
||||
#if defined (SYSTYPE_SVR4)
|
||||
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
|
||||
printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
|
||||
#endif
|
||||
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
|
||||
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
|
||||
printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
|
||||
#endif
|
||||
#endif
|
||||
exit (-1);
|
||||
|
@ -614,7 +611,7 @@ EOF
|
|||
*:AIX:*:*)
|
||||
echo rs6000-ibm-aix
|
||||
exit ;;
|
||||
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
|
||||
ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
|
||||
echo romp-ibm-bsd4.4
|
||||
exit ;;
|
||||
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
|
||||
|
@ -837,10 +834,11 @@ EOF
|
|||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||
case ${UNAME_PROCESSOR} in
|
||||
amd64)
|
||||
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
*)
|
||||
echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
UNAME_PROCESSOR=x86_64 ;;
|
||||
i386)
|
||||
UNAME_PROCESSOR=i586 ;;
|
||||
esac
|
||||
echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
|
||||
exit ;;
|
||||
i*:CYGWIN*:*)
|
||||
echo ${UNAME_MACHINE}-pc-cygwin
|
||||
|
@ -854,10 +852,6 @@ EOF
|
|||
*:MSYS*:*)
|
||||
echo ${UNAME_MACHINE}-pc-msys
|
||||
exit ;;
|
||||
i*:windows32*:*)
|
||||
# uname -m includes "-pc" on this system.
|
||||
echo ${UNAME_MACHINE}-mingw32
|
||||
exit ;;
|
||||
i*:PW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-pw32
|
||||
exit ;;
|
||||
|
@ -873,27 +867,12 @@ EOF
|
|||
echo ia64-unknown-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
esac ;;
|
||||
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
||||
echo i${UNAME_MACHINE}-pc-mks
|
||||
exit ;;
|
||||
8664:Windows_NT:*)
|
||||
echo x86_64-pc-mks
|
||||
exit ;;
|
||||
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
||||
# UNAME_MACHINE based on the output of uname instead of i386?
|
||||
echo i586-pc-interix
|
||||
exit ;;
|
||||
i*:UWIN*:*)
|
||||
echo ${UNAME_MACHINE}-pc-uwin
|
||||
exit ;;
|
||||
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
|
||||
echo x86_64-unknown-cygwin
|
||||
exit ;;
|
||||
p*:CYGWIN*:*)
|
||||
echo powerpcle-unknown-cygwin
|
||||
exit ;;
|
||||
prep*:SunOS:5.*:*)
|
||||
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
|
@ -1096,7 +1075,7 @@ EOF
|
|||
i*86:*DOS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-msdosdjgpp
|
||||
exit ;;
|
||||
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
|
||||
i*86:*:4.*:*)
|
||||
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
|
||||
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
|
||||
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
|
||||
|
@ -1311,6 +1290,13 @@ EOF
|
|||
powerpc) UNAME_PROCESSOR=powerpc64 ;;
|
||||
esac
|
||||
fi
|
||||
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
|
||||
if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
|
||||
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_PPC >/dev/null
|
||||
then
|
||||
UNAME_PROCESSOR=powerpc
|
||||
fi
|
||||
fi
|
||||
elif test "$UNAME_PROCESSOR" = i386 ; then
|
||||
# Avoid executing cc on OS X 10.9, as it ships with a stub
|
||||
|
@ -1334,15 +1320,18 @@ EOF
|
|||
*:QNX:*:4*)
|
||||
echo i386-pc-qnx
|
||||
exit ;;
|
||||
NEO-?:NONSTOP_KERNEL:*:*)
|
||||
NEO-*:NONSTOP_KERNEL:*:*)
|
||||
echo neo-tandem-nsk${UNAME_RELEASE}
|
||||
exit ;;
|
||||
NSE-*:NONSTOP_KERNEL:*:*)
|
||||
echo nse-tandem-nsk${UNAME_RELEASE}
|
||||
exit ;;
|
||||
NSR-?:NONSTOP_KERNEL:*:*)
|
||||
NSR-*:NONSTOP_KERNEL:*:*)
|
||||
echo nsr-tandem-nsk${UNAME_RELEASE}
|
||||
exit ;;
|
||||
NSX-*:NONSTOP_KERNEL:*:*)
|
||||
echo nsx-tandem-nsk${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:NonStop-UX:*:*)
|
||||
echo mips-compaq-nonstopux
|
||||
exit ;;
|
||||
|
@ -1414,16 +1403,28 @@ EOF
|
|||
exit ;;
|
||||
esac
|
||||
|
||||
echo "$0: unable to guess system type" >&2
|
||||
|
||||
case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in
|
||||
mips:Linux | mips64:Linux)
|
||||
# If we got here on MIPS GNU/Linux, output extra information.
|
||||
cat >&2 <<EOF
|
||||
|
||||
NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
|
||||
the system type. Please install a C compiler and try again.
|
||||
EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
cat >&2 <<EOF
|
||||
$0: unable to guess system type
|
||||
|
||||
This script (version $timestamp), has failed to recognize the
|
||||
operating system you are using. If your script is old, overwrite
|
||||
config.guess and config.sub with the latest versions from:
|
||||
operating system you are using. If your script is old, overwrite *all*
|
||||
copies of config.guess and config.sub with the latest versions from:
|
||||
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
|
||||
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
|
||||
and
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||
|
||||
If $0 has already been updated, send the following data and any
|
||||
information you think might be pertinent to config-patches@gnu.org to
|
||||
|
@ -1455,7 +1456,7 @@ EOF
|
|||
exit 1
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'write-file-functions 'time-stamp)
|
||||
# time-stamp-start: "timestamp='"
|
||||
# time-stamp-format: "%:y-%02m-%02d"
|
||||
# time-stamp-end: "'"
|
||||
|
|
63
curl/config.sub
vendored
63
curl/config.sub
vendored
|
@ -1,8 +1,8 @@
|
|||
#! /bin/sh
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright 1992-2016 Free Software Foundation, Inc.
|
||||
# Copyright 1992-2017 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2016-11-04'
|
||||
timestamp='2017-11-23'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
@ -15,7 +15,7 @@ timestamp='2016-11-04'
|
|||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
|
@ -33,7 +33,7 @@ timestamp='2016-11-04'
|
|||
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||
|
||||
# You can get the latest version of this script from:
|
||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||
|
||||
# This file is supposed to be the same for all GNU packages
|
||||
# and recognize all the CPU types, system types and aliases
|
||||
|
@ -57,7 +57,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
|
|||
|
||||
Canonicalize a configuration name.
|
||||
|
||||
Operation modes:
|
||||
Options:
|
||||
-h, --help print this help, then exit
|
||||
-t, --time-stamp print date of last modification, then exit
|
||||
-v, --version print version number, then exit
|
||||
|
@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
|
|||
version="\
|
||||
GNU config.sub ($timestamp)
|
||||
|
||||
Copyright 1992-2016 Free Software Foundation, Inc.
|
||||
Copyright 1992-2017 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
@ -229,9 +229,6 @@ case $os in
|
|||
-ptx*)
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
|
||||
;;
|
||||
-windowsnt*)
|
||||
os=`echo $os | sed -e 's/windowsnt/winnt/'`
|
||||
;;
|
||||
-psos*)
|
||||
os=-psos
|
||||
;;
|
||||
|
@ -263,7 +260,7 @@ case $basic_machine in
|
|||
| fido | fr30 | frv | ft32 \
|
||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||
| hexagon \
|
||||
| i370 | i860 | i960 | ia64 \
|
||||
| i370 | i860 | i960 | ia16 | ia64 \
|
||||
| ip2k | iq2000 \
|
||||
| k1om \
|
||||
| le32 | le64 \
|
||||
|
@ -315,7 +312,7 @@ case $basic_machine in
|
|||
| ubicom32 \
|
||||
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
|
||||
| visium \
|
||||
| we32k \
|
||||
| wasm32 \
|
||||
| x86 | xc16x | xstormy16 | xtensa \
|
||||
| z8k | z80)
|
||||
basic_machine=$basic_machine-unknown
|
||||
|
@ -388,7 +385,7 @@ case $basic_machine in
|
|||
| h8300-* | h8500-* \
|
||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||
| hexagon-* \
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
|
||||
| ip2k-* | iq2000-* \
|
||||
| k1om-* \
|
||||
| le32-* | le64-* \
|
||||
|
@ -446,6 +443,7 @@ case $basic_machine in
|
|||
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
|
||||
| vax-* \
|
||||
| visium-* \
|
||||
| wasm32-* \
|
||||
| we32k-* \
|
||||
| x86-* | x86_64-* | xc16x-* | xps100-* \
|
||||
| xstormy16-* | xtensa*-* \
|
||||
|
@ -641,7 +639,7 @@ case $basic_machine in
|
|||
basic_machine=rs6000-bull
|
||||
os=-bosx
|
||||
;;
|
||||
dpx2* | dpx2*-bull)
|
||||
dpx2*)
|
||||
basic_machine=m68k-bull
|
||||
os=-sysv3
|
||||
;;
|
||||
|
@ -948,6 +946,9 @@ case $basic_machine in
|
|||
nsr-tandem)
|
||||
basic_machine=nsr-tandem
|
||||
;;
|
||||
nsx-tandem)
|
||||
basic_machine=nsx-tandem
|
||||
;;
|
||||
op50n-* | op60c-*)
|
||||
basic_machine=hppa1.1-oki
|
||||
os=-proelf
|
||||
|
@ -1243,6 +1244,9 @@ case $basic_machine in
|
|||
basic_machine=a29k-wrs
|
||||
os=-vxworks
|
||||
;;
|
||||
wasm32)
|
||||
basic_machine=wasm32-unknown
|
||||
;;
|
||||
w65*)
|
||||
basic_machine=w65-wdc
|
||||
os=-none
|
||||
|
@ -1251,6 +1255,9 @@ case $basic_machine in
|
|||
basic_machine=hppa1.1-winbond
|
||||
os=-proelf
|
||||
;;
|
||||
x64)
|
||||
basic_machine=x86_64-pc
|
||||
;;
|
||||
xbox)
|
||||
basic_machine=i686-pc
|
||||
os=-mingw32
|
||||
|
@ -1358,8 +1365,8 @@ esac
|
|||
if [ x"$os" != x"" ]
|
||||
then
|
||||
case $os in
|
||||
# First match some system type aliases
|
||||
# that might get confused with valid system types.
|
||||
# First match some system type aliases that might get confused
|
||||
# with valid system types.
|
||||
# -solaris* is a basic system type, with this one exception.
|
||||
-auroraux)
|
||||
os=-auroraux
|
||||
|
@ -1379,9 +1386,9 @@ case $os in
|
|||
-gnu/linux*)
|
||||
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
|
||||
;;
|
||||
# First accept the basic system types.
|
||||
# Now accept the basic system types.
|
||||
# The portable systems comes first.
|
||||
# Each alternative MUST END IN A *, to match a version number.
|
||||
# Each alternative MUST end in a * to match a version number.
|
||||
# -sysv* is not here because it comes later, after sysvr4.
|
||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||
|
@ -1397,7 +1404,7 @@ case $os in
|
|||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
||||
| -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
|
||||
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
|
||||
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
|
||||
|
@ -1409,7 +1416,7 @@ case $os in
|
|||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
|
||||
| -onefs* | -tirtos* | -phoenix* | -fuchsia*)
|
||||
| -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
|
@ -1539,6 +1546,19 @@ case $os in
|
|||
-dicos*)
|
||||
os=-dicos
|
||||
;;
|
||||
-pikeos*)
|
||||
# Until real need of OS specific support for
|
||||
# particular features comes up, bare metal
|
||||
# configurations are quite functional.
|
||||
case $basic_machine in
|
||||
arm*)
|
||||
os=-eabi
|
||||
;;
|
||||
*)
|
||||
os=-elf
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-nacl*)
|
||||
;;
|
||||
-ios)
|
||||
|
@ -1638,6 +1658,9 @@ case $basic_machine in
|
|||
sparc-* | *-sun)
|
||||
os=-sunos4.1.1
|
||||
;;
|
||||
pru-*)
|
||||
os=-elf
|
||||
;;
|
||||
*-be)
|
||||
os=-beos
|
||||
;;
|
||||
|
@ -1818,7 +1841,7 @@ echo $basic_machine$os
|
|||
exit
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'write-file-functions 'time-stamp)
|
||||
# time-stamp-start: "timestamp='"
|
||||
# time-stamp-format: "%:y-%02m-%02d"
|
||||
# time-stamp-end: "'"
|
||||
|
|
3239
curl/configure
vendored
3239
curl/configure
vendored
File diff suppressed because it is too large
Load diff
459
curl/configure.ac
Normal file → Executable file
459
curl/configure.ac
Normal file → Executable file
|
@ -36,7 +36,7 @@ This configure script may be copied, distributed and modified under the
|
|||
terms of the curl license; see COPYING for more details])
|
||||
|
||||
AC_CONFIG_SRCDIR([lib/urldata.h])
|
||||
AC_CONFIG_HEADERS(lib/curl_config.h include/curl/curlbuild.h)
|
||||
AC_CONFIG_HEADERS(lib/curl_config.h)
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AM_MAINTAINER_MODE
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
|
@ -51,7 +51,6 @@ CURL_CHECK_OPTION_ARES
|
|||
CURL_CHECK_OPTION_RT
|
||||
|
||||
XC_CHECK_PATH_SEPARATOR
|
||||
AX_CODE_COVERAGE
|
||||
|
||||
#
|
||||
# save the configure arguments
|
||||
|
@ -121,14 +120,16 @@ AC_SUBST([AR])
|
|||
|
||||
AC_SUBST(libext)
|
||||
|
||||
dnl Remove non-configure distributed curlbuild.h
|
||||
if test -f ${srcdir}/include/curl/curlbuild.h; then
|
||||
rm -f ${srcdir}/include/curl/curlbuild.h
|
||||
fi
|
||||
|
||||
dnl figure out the libcurl version
|
||||
CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)".*/\1/p' ${srcdir}/include/curl/curlver.h`
|
||||
XC_CHECK_PROG_CC
|
||||
|
||||
dnl Check if gcc is being used before adding AX_CODE_COVERAGE
|
||||
AS_IF([ test "$GCC" = "yes" ], [AX_CODE_COVERAGE],
|
||||
# not using GCC so pass a test below - CODE_COVERAGE_ENABLED_TRUE is not zero length
|
||||
CODE_COVERAGE_ENABLED_TRUE='#'
|
||||
)
|
||||
|
||||
XC_AUTOMAKE
|
||||
AC_MSG_CHECKING([curl version])
|
||||
AC_MSG_RESULT($CURLVERSION)
|
||||
|
@ -153,6 +154,7 @@ dnl initialize all the info variables
|
|||
curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )"
|
||||
curl_ssh_msg="no (--with-libssh2)"
|
||||
curl_zlib_msg="no (--with-zlib)"
|
||||
curl_brotli_msg="no (--with-brotli)"
|
||||
curl_gss_msg="no (--with-gssapi)"
|
||||
curl_tls_srp_msg="no (--enable-tls-srp)"
|
||||
curl_res_msg="default (--enable-ares / --enable-threaded-resolver)"
|
||||
|
@ -170,7 +172,7 @@ curl_verbose_msg="enabled (--disable-verbose)"
|
|||
curl_mtlnk_msg="no (--with-libmetalink)"
|
||||
curl_psl_msg="no (--with-libpsl)"
|
||||
|
||||
init_ssl_msg=${curl_ssl_msg}
|
||||
ssl_backends=
|
||||
|
||||
dnl
|
||||
dnl Save some initial values the user might have provided
|
||||
|
@ -188,9 +190,6 @@ AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS])
|
|||
|
||||
dnl Checks for programs.
|
||||
|
||||
dnl Our curl_off_t internal and external configure settings
|
||||
CURL_CONFIGURE_CURL_OFF_T
|
||||
|
||||
dnl This defines _ALL_SOURCE for AIX
|
||||
CURL_CHECK_AIX_ALL_SOURCE
|
||||
|
||||
|
@ -359,6 +358,7 @@ esac
|
|||
CURL_CHECK_WIN32_LARGEFILE
|
||||
|
||||
CURL_MAC_CFLAGS
|
||||
CURL_SUPPORTS_BUILTIN_AVAILABLE
|
||||
|
||||
dnl ************************************************************
|
||||
dnl switch off particular protocols
|
||||
|
@ -371,6 +371,7 @@ AC_HELP_STRING([--disable-http],[Disable HTTP support]),
|
|||
no)
|
||||
AC_MSG_RESULT(no)
|
||||
AC_DEFINE(CURL_DISABLE_HTTP, 1, [to disable HTTP])
|
||||
disable_http="yes"
|
||||
AC_MSG_WARN([disable HTTP disables FTP over proxy and RTSP])
|
||||
AC_SUBST(CURL_DISABLE_HTTP, [1])
|
||||
AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
|
||||
|
@ -981,6 +982,94 @@ dnl set variable for use in automakefile(s)
|
|||
AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1)
|
||||
AC_SUBST(ZLIB_LIBS)
|
||||
|
||||
dnl **********************************************************************
|
||||
dnl Check for the presence of BROTLI decoder libraries and headers
|
||||
dnl **********************************************************************
|
||||
|
||||
dnl Brotli project home page: https://github.com/google/brotli
|
||||
|
||||
dnl Default to compiler & linker defaults for BROTLI files & libraries.
|
||||
OPT_BROTLI=off
|
||||
AC_ARG_WITH(brotli,dnl
|
||||
AC_HELP_STRING([--with-brotli=PATH],[Where to look for brotli, PATH points to the BROTLI installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option])
|
||||
AC_HELP_STRING([--without-brotli], [disable BROTLI]),
|
||||
OPT_BROTLI=$withval)
|
||||
|
||||
if test X"$OPT_BROTLI" != Xno; then
|
||||
dnl backup the pre-brotli variables
|
||||
CLEANLDFLAGS="$LDFLAGS"
|
||||
CLEANCPPFLAGS="$CPPFLAGS"
|
||||
CLEANLIBS="$LIBS"
|
||||
|
||||
case "$OPT_BROTLI" in
|
||||
yes)
|
||||
dnl --with-brotli (without path) used
|
||||
CURL_CHECK_PKGCONFIG(libbrotlidec)
|
||||
|
||||
if test "$PKGCONFIG" != "no" ; then
|
||||
LIB_BROTLI=`$PKGCONFIG --libs-only-l libbrotlidec`
|
||||
LD_BROTLI=`$PKGCONFIG --libs-only-L libbrotlidec`
|
||||
CPP_BROTLI=`$PKGCONFIG --cflags-only-I libbrotlidec`
|
||||
version=`$PKGCONFIG --modversion libbrotlidec`
|
||||
DIR_BROTLI=`echo $LD_BROTLI | $SED -e 's/-L//'`
|
||||
fi
|
||||
|
||||
;;
|
||||
off)
|
||||
dnl no --with-brotli option given, just check default places
|
||||
;;
|
||||
*)
|
||||
dnl use the given --with-brotli spot
|
||||
PREFIX_BROTLI=$OPT_BROTLI
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl if given with a prefix, we set -L and -I based on that
|
||||
if test -n "$PREFIX_BROTLI"; then
|
||||
LIB_BROTLI="-lbrotlidec"
|
||||
LD_BROTLI=-L${PREFIX_BROTLI}/lib$libsuff
|
||||
CPP_BROTLI=-I${PREFIX_BROTLI}/include
|
||||
DIR_BROTLI=${PREFIX_BROTLI}/lib$libsuff
|
||||
fi
|
||||
|
||||
LDFLAGS="$LDFLAGS $LD_BROTLI"
|
||||
CPPFLAGS="$CPPFLAGS $CPP_BROTLI"
|
||||
LIBS="$LIB_BROTLI $LIBS"
|
||||
|
||||
AC_CHECK_LIB(brotlidec, BrotliDecoderDecompress)
|
||||
|
||||
AC_CHECK_HEADERS(brotli/decode.h,
|
||||
curl_brotli_msg="enabled (libbrotlidec)"
|
||||
HAVE_BROTLI=1
|
||||
AC_DEFINE(HAVE_BROTLI, 1, [if BROTLI is in use])
|
||||
AC_SUBST(HAVE_BROTLI, [1])
|
||||
)
|
||||
|
||||
if test X"$OPT_BROTLI" != Xoff &&
|
||||
test "$HAVE_BROTLI" != "1"; then
|
||||
AC_MSG_ERROR([BROTLI libs and/or directories were not found where specified!])
|
||||
fi
|
||||
|
||||
if test "$HAVE_BROTLI" = "1"; then
|
||||
if test -n "$DIR_BROTLI"; then
|
||||
dnl when the brotli shared libs were found in a path that the run-time
|
||||
dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
|
||||
dnl to prevent further configure tests to fail due to this
|
||||
|
||||
if test "x$cross_compiling" != "xyes"; then
|
||||
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_BROTLI"
|
||||
export LD_LIBRARY_PATH
|
||||
AC_MSG_NOTICE([Added $DIR_BROTLI to LD_LIBRARY_PATH])
|
||||
fi
|
||||
fi
|
||||
else
|
||||
dnl no brotli, revert back to clean variables
|
||||
LDFLAGS=$CLEANLDFLAGS
|
||||
CPPFLAGS=$CLEANCPPFLAGS
|
||||
LIBS=$CLEANLIBS
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl **********************************************************************
|
||||
dnl Check for LDAP
|
||||
dnl **********************************************************************
|
||||
|
@ -1123,6 +1212,9 @@ if test "$ipv6" = yes; then
|
|||
#include <ws2tcpip.h>
|
||||
#else
|
||||
#include <netinet/in.h>
|
||||
#if defined (__TANDEM)
|
||||
# include <netinet/in6.h>
|
||||
#endif
|
||||
#endif] ,
|
||||
struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes)
|
||||
if test "$have_sin6_scope_id" = yes; then
|
||||
|
@ -1340,6 +1432,41 @@ else
|
|||
CPPFLAGS="$save_CPPFLAGS"
|
||||
fi
|
||||
|
||||
build_libstubgss=no
|
||||
if test x"$want_gss" = "xyes"; then
|
||||
build_libstubgss=yes
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(BUILD_STUB_GSS, test "x$build_libstubgss" = "xyes")
|
||||
|
||||
dnl -------------------------------------------------------------
|
||||
dnl parse --with-default-ssl-backend so it can be validated below
|
||||
dnl -------------------------------------------------------------
|
||||
|
||||
DEFAULT_SSL_BACKEND=no
|
||||
VALID_DEFAULT_SSL_BACKEND=
|
||||
AC_ARG_WITH(default-ssl-backend,
|
||||
AC_HELP_STRING([--with-default-ssl-backend=NAME],[Use NAME as default SSL backend])
|
||||
AC_HELP_STRING([--without-default-ssl-backend],[Use implicit default SSL backend]),
|
||||
[DEFAULT_SSL_BACKEND=$withval])
|
||||
case "$DEFAULT_SSL_BACKEND" in
|
||||
no)
|
||||
dnl --without-default-ssl-backend option used
|
||||
;;
|
||||
default|yes)
|
||||
dnl --with-default-ssl-backend option used without name
|
||||
AC_MSG_ERROR([The name of the default SSL backend is required.])
|
||||
;;
|
||||
*)
|
||||
dnl --with-default-ssl-backend option used with name
|
||||
AC_SUBST(DEFAULT_SSL_BACKEND)
|
||||
dnl needs to be validated below
|
||||
VALID_DEFAULT_SSL_BACKEND=no
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl **********************************************************************
|
||||
|
||||
dnl -------------------------------------------------
|
||||
dnl check winssl option before other SSL libraries
|
||||
dnl -------------------------------------------------
|
||||
|
@ -1351,13 +1478,15 @@ AC_HELP_STRING([--without-winssl], [disable Windows native SSL/TLS]),
|
|||
OPT_WINSSL=$withval)
|
||||
|
||||
AC_MSG_CHECKING([whether to enable Windows native SSL/TLS (Windows native builds only)])
|
||||
if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
||||
if test -z "$ssl_backends" -o "x$OPT_WINSSL" != xno; then
|
||||
ssl_msg=
|
||||
if test "x$OPT_WINSSL" != "xno" &&
|
||||
test "x$curl_cv_native_windows" = "xyes"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(USE_SCHANNEL, 1, [to enable Windows native SSL/TLS support])
|
||||
AC_SUBST(USE_SCHANNEL, [1])
|
||||
curl_ssl_msg="enabled (Windows-native)"
|
||||
ssl_msg="Windows-native"
|
||||
test schannel != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
WINSSL_ENABLED=1
|
||||
# --with-winssl implies --enable-sspi
|
||||
AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
|
||||
|
@ -1367,6 +1496,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
@ -1378,18 +1508,20 @@ AC_HELP_STRING([--without-darwinssl], [disable Apple OS native SSL/TLS]),
|
|||
OPT_DARWINSSL=$withval)
|
||||
|
||||
AC_MSG_CHECKING([whether to enable Apple OS native SSL/TLS])
|
||||
if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
||||
if test -z "$ssl_backends" -o "x$OPT_DARWINSSL" != xno; then
|
||||
if test "x$OPT_DARWINSSL" != "xno" &&
|
||||
test -d "/System/Library/Frameworks/Security.framework"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(USE_DARWINSSL, 1, [to enable Apple OS native SSL/TLS support])
|
||||
AC_SUBST(USE_DARWINSSL, [1])
|
||||
curl_ssl_msg="enabled (Apple OS-native)"
|
||||
ssl_msg="Apple OS-native"
|
||||
test darwinssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
DARWINSSL_ENABLED=1
|
||||
LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security"
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
@ -1407,7 +1539,10 @@ AC_HELP_STRING([--with-ssl=PATH],[Where to look for OpenSSL, PATH points to the
|
|||
AC_HELP_STRING([--without-ssl], [disable OpenSSL]),
|
||||
OPT_SSL=$withval)
|
||||
|
||||
if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
|
||||
if test -z "$ssl_backends" -o "x$OPT_SSL" != xno &&
|
||||
test X"$OPT_SSL" != Xno; then
|
||||
ssl_msg=
|
||||
|
||||
dnl backup the pre-ssl variables
|
||||
CLEANLDFLAGS="$LDFLAGS"
|
||||
CLEANCPPFLAGS="$CPPFLAGS"
|
||||
|
@ -1521,7 +1656,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
|
|||
|
||||
dnl still no, but what about with -ldl?
|
||||
AC_MSG_CHECKING([OpenSSL linking with -ldl])
|
||||
LIBS="-ldl $LIBS"
|
||||
LIBS="$LIBS -ldl"
|
||||
AC_TRY_LINK(
|
||||
[
|
||||
#include <openssl/err.h>
|
||||
|
@ -1538,7 +1673,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
|
|||
dnl ok, so what about bouth -ldl and -lpthread?
|
||||
|
||||
AC_MSG_CHECKING([OpenSSL linking with -ldl and -lpthread])
|
||||
LIBS="-lpthread $LIBS"
|
||||
LIBS="$LIBS -lpthread"
|
||||
AC_TRY_LINK(
|
||||
[
|
||||
#include <openssl/err.h>
|
||||
|
@ -1588,7 +1723,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
|
|||
dnl Have the libraries--check for OpenSSL headers
|
||||
AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \
|
||||
openssl/pem.h openssl/ssl.h openssl/err.h,
|
||||
curl_ssl_msg="enabled (OpenSSL)"
|
||||
ssl_msg="OpenSSL"
|
||||
test openssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
OPENSSL_ENABLED=1
|
||||
AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use]))
|
||||
|
||||
|
@ -1602,16 +1738,13 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
|
|||
test $ac_cv_header_crypto_h = yes &&
|
||||
test $ac_cv_header_ssl_h = yes; then
|
||||
dnl three matches
|
||||
curl_ssl_msg="enabled (OpenSSL)"
|
||||
ssl_msg="OpenSSL"
|
||||
OPENSSL_ENABLED=1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test X"$OPENSSL_ENABLED" = X"1"; then
|
||||
dnl is there a pkcs12.h header present?
|
||||
AC_CHECK_HEADERS(openssl/pkcs12.h)
|
||||
else
|
||||
if test X"$OPENSSL_ENABLED" != X"1"; then
|
||||
LIBS="$CLEANLIBS"
|
||||
fi
|
||||
|
||||
|
@ -1653,7 +1786,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
|
|||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE_UNQUOTED(HAVE_BORINGSSL, 1,
|
||||
[Define to 1 if using BoringSSL.])
|
||||
curl_ssl_msg="enabled (BoringSSL)"
|
||||
ssl_msg="BoringSSL"
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
])
|
||||
|
@ -1669,7 +1802,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
|
|||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE_UNQUOTED(HAVE_LIBRESSL, 1,
|
||||
[Define to 1 if using libressl.])
|
||||
curl_ssl_msg="enabled (libressl)"
|
||||
ssl_msg="libressl"
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
])
|
||||
|
@ -1689,6 +1822,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
|
|||
CURL_CHECK_OPENSSL_API
|
||||
fi
|
||||
|
||||
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
|
||||
fi
|
||||
|
||||
dnl **********************************************************************
|
||||
|
@ -1750,7 +1884,8 @@ AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to th
|
|||
AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]),
|
||||
OPT_GNUTLS=$withval)
|
||||
|
||||
if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
||||
if test -z "$ssl_backends" -o "x$OPT_GNUTLS" != xno; then
|
||||
ssl_msg=
|
||||
|
||||
if test X"$OPT_GNUTLS" != Xno; then
|
||||
|
||||
|
@ -1824,7 +1959,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
AC_SUBST(USE_GNUTLS, [1])
|
||||
GNUTLS_ENABLED=1
|
||||
USE_GNUTLS="yes"
|
||||
curl_ssl_msg="enabled (GnuTLS)"
|
||||
ssl_msg="GnuTLS"
|
||||
test gnutls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
],
|
||||
[
|
||||
LIBS="$CLEANLIBS"
|
||||
|
@ -1852,6 +1988,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
|
||||
fi dnl GNUTLS not disabled
|
||||
|
||||
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
|
||||
fi
|
||||
|
||||
dnl ---
|
||||
|
@ -1909,7 +2046,8 @@ AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points t
|
|||
AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]),
|
||||
OPT_POLARSSL=$withval)
|
||||
|
||||
if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
||||
if test -z "$ssl_backends" -o "x$OPT_POLARSSL" != xno; then
|
||||
ssl_msg=
|
||||
|
||||
if test X"$OPT_POLARSSL" != Xno; then
|
||||
|
||||
|
@ -1927,7 +2065,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
AC_SUBST(USE_POLARSSL, [1])
|
||||
POLARSSL_ENABLED=1
|
||||
USE_POLARSSL="yes"
|
||||
curl_ssl_msg="enabled (PolarSSL)"
|
||||
ssl_msg="PolarSSL"
|
||||
test polarssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
])
|
||||
fi
|
||||
|
||||
|
@ -1953,7 +2092,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
AC_SUBST(USE_POLARSSL, [1])
|
||||
POLARSSL_ENABLED=1
|
||||
USE_POLARSSL="yes"
|
||||
curl_ssl_msg="enabled (PolarSSL)"
|
||||
ssl_msg="PolarSSL"
|
||||
test polarssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
],
|
||||
[
|
||||
CPPFLAGS=$_cppflags
|
||||
|
@ -1981,6 +2121,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
|
||||
fi dnl PolarSSL not disabled
|
||||
|
||||
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
|
||||
fi
|
||||
|
||||
dnl ----------------------------------------------------
|
||||
|
@ -1996,7 +2137,8 @@ AC_HELP_STRING([--with-mbedtls=PATH],[where to look for mbedTLS, PATH points to
|
|||
AC_HELP_STRING([--without-mbedtls], [disable mbedTLS detection]),
|
||||
OPT_MBEDTLS=$withval)
|
||||
|
||||
if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
||||
if test -z "$ssl_backends" -o "x$OPT_MBEDTLS" != xno; then
|
||||
ssl_msg=
|
||||
|
||||
if test X"$OPT_MBEDTLS" != Xno; then
|
||||
|
||||
|
@ -2014,7 +2156,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
AC_SUBST(USE_MBEDTLS, [1])
|
||||
MBEDTLS_ENABLED=1
|
||||
USE_MBEDTLS="yes"
|
||||
curl_ssl_msg="enabled (mbedTLS)"
|
||||
ssl_msg="mbedTLS"
|
||||
test mbedtls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
], [], -lmbedx509 -lmbedcrypto)
|
||||
fi
|
||||
|
||||
|
@ -2040,7 +2183,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
AC_SUBST(USE_MBEDTLS, [1])
|
||||
MBEDTLS_ENABLED=1
|
||||
USE_MBEDTLS="yes"
|
||||
curl_ssl_msg="enabled (mbedTLS)"
|
||||
ssl_msg="mbedTLS"
|
||||
test mbedtls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
],
|
||||
[
|
||||
CPPFLAGS=$_cppflags
|
||||
|
@ -2068,6 +2212,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
|
||||
fi dnl mbedTLS not disabled
|
||||
|
||||
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
|
||||
fi
|
||||
|
||||
dnl ----------------------------------------------------
|
||||
|
@ -2084,7 +2229,8 @@ AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to th
|
|||
AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]),
|
||||
OPT_CYASSL=$withval)
|
||||
|
||||
if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
||||
if test -z "$ssl_backends" -o "x$OPT_CYASSL" != xno; then
|
||||
ssl_msg=
|
||||
|
||||
if test X"$OPT_CYASSL" != Xno; then
|
||||
|
||||
|
@ -2106,7 +2252,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
AC_SUBST(USE_CYASSL, [1])
|
||||
CYASSL_ENABLED=1
|
||||
USE_CYASSL="yes"
|
||||
curl_ssl_msg="enabled (CyaSSL)"
|
||||
ssl_msg="CyaSSL"
|
||||
test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
])
|
||||
fi
|
||||
|
||||
|
@ -2132,7 +2279,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
AC_SUBST(USE_CYASSL, [1])
|
||||
CYASSL_ENABLED=1
|
||||
USE_CYASSL="yes"
|
||||
curl_ssl_msg="enabled (CyaSSL)"
|
||||
ssl_msg="CyaSSL"
|
||||
test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
],
|
||||
[
|
||||
CPPFLAGS=$_cppflags
|
||||
|
@ -2177,7 +2325,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
AC_SUBST(USE_CYASSL, [1])
|
||||
CYASSL_ENABLED=1
|
||||
USE_CYASSL="yes"
|
||||
curl_ssl_msg="enabled (WolfSSL)"
|
||||
ssl_msg="WolfSSL"
|
||||
test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT(no)
|
||||
|
@ -2231,6 +2380,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
|
||||
fi dnl CyaSSL not disabled
|
||||
|
||||
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
|
||||
fi
|
||||
|
||||
dnl ----------------------------------------------------
|
||||
|
@ -2245,7 +2395,8 @@ AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the inst
|
|||
AC_HELP_STRING([--without-nss], [disable NSS detection]),
|
||||
OPT_NSS=$withval)
|
||||
|
||||
if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
||||
if test -z "$ssl_backends" -o "x$OPT_NSS" != xno; then
|
||||
ssl_msg=
|
||||
|
||||
if test X"$OPT_NSS" != Xno; then
|
||||
|
||||
|
@ -2320,7 +2471,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
AC_SUBST(USE_NSS, [1])
|
||||
USE_NSS="yes"
|
||||
NSS_ENABLED=1
|
||||
curl_ssl_msg="enabled (NSS)"
|
||||
ssl_msg="NSS"
|
||||
test nss != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
],
|
||||
[
|
||||
LDFLAGS="$CLEANLDFLAGS"
|
||||
|
@ -2349,7 +2501,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
|
||||
fi dnl NSS not disabled
|
||||
|
||||
fi dnl curl_ssl_msg = init_ssl_msg
|
||||
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
|
||||
fi
|
||||
|
||||
OPT_AXTLS=off
|
||||
|
||||
|
@ -2358,7 +2511,8 @@ AC_HELP_STRING([--with-axtls=PATH],[Where to look for axTLS, PATH points to the
|
|||
AC_HELP_STRING([--without-axtls], [disable axTLS]),
|
||||
OPT_AXTLS=$withval)
|
||||
|
||||
if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
||||
if test -z "$ssl_backends" -o "x$OPT_AXTLS" != xno; then
|
||||
ssl_msg=
|
||||
if test X"$OPT_AXTLS" != Xno; then
|
||||
dnl backup the pre-axtls variables
|
||||
CLEANLDFLAGS="$LDFLAGS"
|
||||
|
@ -2392,7 +2546,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
AC_SUBST(USE_AXTLS, [1])
|
||||
AXTLS_ENABLED=1
|
||||
USE_AXTLS="yes"
|
||||
curl_ssl_msg="enabled (axTLS)"
|
||||
ssl_msg="axTLS"
|
||||
test axtls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
||||
|
||||
if test "x$cross_compiling" != "xyes"; then
|
||||
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS"
|
||||
|
@ -2405,15 +2560,46 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||
LIBS="$CLEANLIBS"
|
||||
])
|
||||
fi
|
||||
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
|
||||
fi
|
||||
|
||||
if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
|
||||
case "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" in
|
||||
x)
|
||||
AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
|
||||
AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.])
|
||||
else
|
||||
# SSL is enabled, genericly
|
||||
;;
|
||||
x1)
|
||||
# one SSL backend is enabled
|
||||
AC_SUBST(SSL_ENABLED)
|
||||
SSL_ENABLED="1"
|
||||
AC_MSG_NOTICE([built with one SSL backend])
|
||||
;;
|
||||
*)
|
||||
# more than one SSL backend is enabled
|
||||
AC_SUBST(SSL_ENABLED)
|
||||
SSL_ENABLED="1"
|
||||
AC_SUBST(CURL_WITH_MULTI_SSL)
|
||||
CURL_WITH_MULTI_SSL="1"
|
||||
AC_DEFINE(CURL_WITH_MULTI_SSL, 1, [built with multiple SSL backends])
|
||||
AC_MSG_NOTICE([built with multiple SSL backends])
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -n "$ssl_backends"; then
|
||||
curl_ssl_msg="enabled ($ssl_backends)"
|
||||
fi
|
||||
|
||||
if test no = "$VALID_DEFAULT_SSL_BACKEND"
|
||||
then
|
||||
if test -n "$SSL_ENABLED"
|
||||
then
|
||||
AC_MSG_ERROR([Default SSL backend $DEFAULT_SSL_BACKEND not enabled!])
|
||||
else
|
||||
AC_MSG_ERROR([Default SSL backend requires SSL!])
|
||||
fi
|
||||
elif test yes = "$VALID_DEFAULT_SSL_BACKEND"
|
||||
then
|
||||
AC_DEFINE_UNQUOTED([CURL_DEFAULT_SSL_BACKEND], ["$DEFAULT_SSL_BACKEND"], [Default SSL backend])
|
||||
fi
|
||||
|
||||
dnl **********************************************************************
|
||||
|
@ -2539,8 +2725,15 @@ dnl Default to compiler & linker defaults for LIBSSH2 files & libraries.
|
|||
OPT_LIBSSH2=off
|
||||
AC_ARG_WITH(libssh2,dnl
|
||||
AC_HELP_STRING([--with-libssh2=PATH],[Where to look for libssh2, PATH points to the LIBSSH2 installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option])
|
||||
AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]),
|
||||
OPT_LIBSSH2=$withval)
|
||||
AC_HELP_STRING([--with-libssh2], [enable LIBSSH2]),
|
||||
OPT_LIBSSH2=$withval, OPT_LIBSSH2=no)
|
||||
|
||||
|
||||
OPT_LIBSSH=off
|
||||
AC_ARG_WITH(libssh,dnl
|
||||
AC_HELP_STRING([--with-libssh=PATH],[Where to look for libssh, PATH points to the LIBSSH installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option])
|
||||
AC_HELP_STRING([--with-libssh], [enable LIBSSH]),
|
||||
OPT_LIBSSH=$withval, OPT_LIBSSH=no)
|
||||
|
||||
if test X"$OPT_LIBSSH2" != Xno; then
|
||||
dnl backup the pre-libssh2 variables
|
||||
|
@ -2615,6 +2808,79 @@ if test X"$OPT_LIBSSH2" != Xno; then
|
|||
CPPFLAGS=$CLEANCPPFLAGS
|
||||
LIBS=$CLEANLIBS
|
||||
fi
|
||||
elif test X"$OPT_LIBSSH" != Xno; then
|
||||
dnl backup the pre-libssh variables
|
||||
CLEANLDFLAGS="$LDFLAGS"
|
||||
CLEANCPPFLAGS="$CPPFLAGS"
|
||||
CLEANLIBS="$LIBS"
|
||||
|
||||
case "$OPT_LIBSSH" in
|
||||
yes)
|
||||
dnl --with-libssh (without path) used
|
||||
CURL_CHECK_PKGCONFIG(libssh)
|
||||
|
||||
if test "$PKGCONFIG" != "no" ; then
|
||||
LIB_SSH=`$PKGCONFIG --libs-only-l libssh`
|
||||
LD_SSH=`$PKGCONFIG --libs-only-L libssh`
|
||||
CPP_SSH=`$PKGCONFIG --cflags-only-I libssh`
|
||||
version=`$PKGCONFIG --modversion libssh`
|
||||
DIR_SSH=`echo $LD_SSH | $SED -e 's/-L//'`
|
||||
fi
|
||||
|
||||
;;
|
||||
off)
|
||||
dnl no --with-libssh option given, just check default places
|
||||
;;
|
||||
*)
|
||||
dnl use the given --with-libssh spot
|
||||
PREFIX_SSH=$OPT_LIBSSH
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl if given with a prefix, we set -L and -I based on that
|
||||
if test -n "$PREFIX_SSH"; then
|
||||
LIB_SSH="-lssh"
|
||||
LD_SSH=-L${PREFIX_SSH}/lib$libsuff
|
||||
CPP_SSH=-I${PREFIX_SSH}/include
|
||||
DIR_SSH=${PREFIX_SSH}/lib$libsuff
|
||||
fi
|
||||
|
||||
LDFLAGS="$LDFLAGS $LD_SSH"
|
||||
CPPFLAGS="$CPPFLAGS $CPP_SSH"
|
||||
LIBS="$LIB_SSH $LIBS"
|
||||
|
||||
AC_CHECK_LIB(ssh, ssh_new)
|
||||
|
||||
AC_CHECK_HEADERS(libssh/libssh.h,
|
||||
curl_ssh_msg="enabled (libSSH)"
|
||||
LIBSSH_ENABLED=1
|
||||
AC_DEFINE(USE_LIBSSH, 1, [if libSSH is in use])
|
||||
AC_SUBST(USE_LIBSSH, [1])
|
||||
)
|
||||
|
||||
if test X"$OPT_LIBSSH" != Xoff &&
|
||||
test "$LIBSSH_ENABLED" != "1"; then
|
||||
AC_MSG_ERROR([libSSH libs and/or directories were not found where specified!])
|
||||
fi
|
||||
|
||||
if test "$LIBSSH_ENABLED" = "1"; then
|
||||
if test -n "$DIR_SSH"; then
|
||||
dnl when the libssh shared libs were found in a path that the run-time
|
||||
dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
|
||||
dnl to prevent further configure tests to fail due to this
|
||||
|
||||
if test "x$cross_compiling" != "xyes"; then
|
||||
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH"
|
||||
export LD_LIBRARY_PATH
|
||||
AC_MSG_NOTICE([Added $DIR_SSH to LD_LIBRARY_PATH])
|
||||
fi
|
||||
fi
|
||||
else
|
||||
dnl no libssh, revert back to clean variables
|
||||
LDFLAGS=$CLEANLDFLAGS
|
||||
CPPFLAGS=$CLEANCPPFLAGS
|
||||
LIBS=$CLEANLIBS
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl **********************************************************************
|
||||
|
@ -2714,7 +2980,9 @@ AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shar
|
|||
AC_MSG_WARN([You need an ld version supporting the --version-script option])
|
||||
else
|
||||
AC_MSG_RESULT(yes)
|
||||
if test "x$OPENSSL_ENABLED" = "x1"; then
|
||||
if test "x$CURL_WITH_MULTI_SSL" = "x1"; then
|
||||
versioned_symbols_flavour="MULTISSL_"
|
||||
elif test "x$OPENSSL_ENABLED" = "x1"; then
|
||||
versioned_symbols_flavour="OPENSSL_"
|
||||
elif test "x$GNUTLS_ENABLED" = "x1"; then
|
||||
versioned_symbols_flavour="GNUTLS_"
|
||||
|
@ -2786,6 +3054,7 @@ if test "$want_winidn" = "yes"; then
|
|||
clean_LDFLAGS="$LDFLAGS"
|
||||
clean_LIBS="$LIBS"
|
||||
WINIDN_LIBS="-lnormaliz"
|
||||
WINIDN_CPPFLAGS="-DWINVER=0x0600"
|
||||
#
|
||||
if test "$want_winidn_path" != "default"; then
|
||||
dnl path has been specified
|
||||
|
@ -2801,7 +3070,11 @@ if test "$want_winidn" = "yes"; then
|
|||
#
|
||||
AC_MSG_CHECKING([if IdnToUnicode can be linked])
|
||||
AC_LINK_IFELSE([
|
||||
AC_LANG_FUNC_LINK_TRY([IdnToUnicode])
|
||||
AC_LANG_PROGRAM([[
|
||||
#include <windows.h>
|
||||
]],[[
|
||||
IdnToUnicode(0, NULL, 0, NULL, 0);
|
||||
]])
|
||||
],[
|
||||
AC_MSG_RESULT([yes])
|
||||
tst_links_winidn="yes"
|
||||
|
@ -2958,6 +3231,12 @@ dnl Check for nghttp2
|
|||
dnl **********************************************************************
|
||||
|
||||
OPT_H2="yes"
|
||||
|
||||
if test "x$disable_http" = "xyes"; then
|
||||
# without HTTP, nghttp2 is no use
|
||||
OPT_H2="no"
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(nghttp2,
|
||||
AC_HELP_STRING([--with-nghttp2=PATH],[Enable nghttp2 usage])
|
||||
AC_HELP_STRING([--without-nghttp2],[Disable nghttp2 usage]),
|
||||
|
@ -3080,11 +3359,12 @@ AC_CHECK_HEADERS(
|
|||
assert.h \
|
||||
unistd.h \
|
||||
stdlib.h \
|
||||
limits.h \
|
||||
arpa/inet.h \
|
||||
net/if.h \
|
||||
netinet/in.h \
|
||||
netinet/in6.h \
|
||||
sys/un.h \
|
||||
linux/tcp.h \
|
||||
netinet/tcp.h \
|
||||
netdb.h \
|
||||
sys/sockio.h \
|
||||
|
@ -3133,6 +3413,9 @@ dnl default includes
|
|||
#ifdef HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
#ifdef HAVE_NETINET_IN6_H
|
||||
#include <netinet/in6.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_UN_H
|
||||
#include <sys/un.h>
|
||||
#endif
|
||||
|
@ -3151,18 +3434,15 @@ AC_CHECK_SIZEOF(size_t)
|
|||
AC_CHECK_SIZEOF(long)
|
||||
AC_CHECK_SIZEOF(int)
|
||||
AC_CHECK_SIZEOF(short)
|
||||
CURL_CONFIGURE_LONG
|
||||
AC_CHECK_SIZEOF(time_t)
|
||||
AC_CHECK_SIZEOF(off_t)
|
||||
|
||||
soname_bump=no
|
||||
if test x"$curl_cv_native_windows" != "xyes" &&
|
||||
test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then
|
||||
AC_MSG_WARN([This libcurl built is probably not ABI compatible with previous])
|
||||
AC_MSG_WARN([builds! You MUST read lib/README.curl_off_t to figure it out.])
|
||||
soname_bump=yes
|
||||
fi
|
||||
|
||||
o=$CPPFLAGS
|
||||
CPPFLAGS="-I$srcdir/include $CPPFLAGS"
|
||||
AC_CHECK_SIZEOF(curl_off_t, unused , [
|
||||
#include <curl/system.h>
|
||||
])
|
||||
CPPFLAGS=$o
|
||||
|
||||
AC_CHECK_TYPE(long long,
|
||||
[AC_DEFINE(HAVE_LONGLONG, 1,
|
||||
|
@ -3279,23 +3559,19 @@ case $host in
|
|||
;;
|
||||
esac
|
||||
|
||||
AC_CHECK_FUNCS([fork \
|
||||
geteuid \
|
||||
AC_CHECK_FUNCS([geteuid \
|
||||
getpass_r \
|
||||
getppid \
|
||||
getprotobyname \
|
||||
getpwuid \
|
||||
getpwuid_r \
|
||||
getrlimit \
|
||||
gettimeofday \
|
||||
if_nametoindex \
|
||||
inet_addr \
|
||||
perror \
|
||||
mach_absolute_time \
|
||||
pipe \
|
||||
setlocale \
|
||||
setmode \
|
||||
setrlimit \
|
||||
uname \
|
||||
utime \
|
||||
utimes
|
||||
],[
|
||||
|
@ -3400,11 +3676,8 @@ else
|
|||
fi
|
||||
AM_CONDITIONAL(BUILD_LIBHOSTNAME, test x$build_libhostname = xyes)
|
||||
|
||||
if test "x$want_ares" != xyes; then
|
||||
CURL_CHECK_OPTION_THREADED_RESOLVER
|
||||
|
||||
if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then
|
||||
AC_MSG_ERROR(
|
||||
[Options --enable-threaded-resolver and --enable-ares are mutually exclusive])
|
||||
fi
|
||||
|
||||
dnl ************************************************************
|
||||
|
@ -3649,26 +3922,6 @@ dnl hiding of library internal symbols
|
|||
dnl
|
||||
CURL_CONFIGURE_SYMBOL_HIDING
|
||||
|
||||
dnl ************************************************************
|
||||
dnl enforce SONAME bump
|
||||
dnl
|
||||
|
||||
AC_MSG_CHECKING([whether to enforce SONAME bump])
|
||||
AC_ARG_ENABLE(soname-bump,
|
||||
AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump])
|
||||
AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]),
|
||||
[ case "$enableval" in
|
||||
yes) AC_MSG_RESULT(yes)
|
||||
soname_bump=yes
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(no)
|
||||
;;
|
||||
esac ],
|
||||
AC_MSG_RESULT($soname_bump)
|
||||
)
|
||||
AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes)
|
||||
|
||||
dnl
|
||||
dnl All the library dependencies put into $LIB apply to libcurl only.
|
||||
dnl
|
||||
|
@ -3715,6 +3968,9 @@ fi
|
|||
if test "x$HAVE_LIBZ" = "x1"; then
|
||||
SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
|
||||
fi
|
||||
if test "x$HAVE_BROTLI" = "x1"; then
|
||||
SUPPORT_FEATURES="$SUPPORT_FEATURES brotli"
|
||||
fi
|
||||
if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1" \
|
||||
-o "x$USE_THREADS_WIN32" = "x1"; then
|
||||
SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
|
||||
|
@ -3765,6 +4021,10 @@ if test "x$USE_NGHTTP2" = "x1"; then
|
|||
SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2"
|
||||
fi
|
||||
|
||||
if test "x$CURL_WITH_MULTI_SSL" = "x1"; then
|
||||
SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL"
|
||||
fi
|
||||
|
||||
if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \
|
||||
-o "x$NSS_ENABLED" = "x1"; then
|
||||
SUPPORT_FEATURES="$SUPPORT_FEATURES HTTPS-proxy"
|
||||
|
@ -3841,6 +4101,10 @@ if test "x$USE_LIBSSH2" = "x1"; then
|
|||
SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP"
|
||||
SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP"
|
||||
fi
|
||||
if test "x$USE_LIBSSH" = "x1"; then
|
||||
SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP"
|
||||
SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP"
|
||||
fi
|
||||
if test "x$CURL_DISABLE_RTSP" != "x1"; then
|
||||
SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP"
|
||||
fi
|
||||
|
@ -3872,6 +4136,9 @@ squeeze SUPPORT_PROTOCOLS
|
|||
|
||||
XC_CHECK_BUILD_FLAGS
|
||||
|
||||
SSL_BACKENDS=${ssl_backends}
|
||||
AC_SUBST(SSL_BACKENDS)
|
||||
|
||||
if test "x$want_curldebug_assumed" = "xyes" &&
|
||||
test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then
|
||||
ac_configure_args="$ac_configure_args --enable-curldebug"
|
||||
|
@ -3928,6 +4195,7 @@ AC_MSG_NOTICE([Configured to build curl/libcurl:
|
|||
SSL support: ${curl_ssl_msg}
|
||||
SSH support: ${curl_ssh_msg}
|
||||
zlib support: ${curl_zlib_msg}
|
||||
brotli support: ${curl_brotli_msg}
|
||||
GSS-API support: ${curl_gss_msg}
|
||||
TLS-SRP support: ${curl_tls_srp_msg}
|
||||
resolver: ${curl_res_msg}
|
||||
|
@ -3951,14 +4219,3 @@ AC_MSG_NOTICE([Configured to build curl/libcurl:
|
|||
HTTP2 support: ${curl_h2_msg}
|
||||
Protocols: ${SUPPORT_PROTOCOLS}
|
||||
])
|
||||
|
||||
if test "x$soname_bump" = "xyes"; then
|
||||
|
||||
cat <<EOM
|
||||
SONAME bump: yes - WARNING: this library will be built with the SONAME
|
||||
number bumped due to (a detected) ABI breakage.
|
||||
See lib/README.curl_off_t for details on this.
|
||||
EOM
|
||||
|
||||
fi
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) 2001 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
# Copyright (C) 2001 - 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
|
||||
|
@ -44,6 +44,7 @@ Available values for OPTION include:
|
|||
--libs library linking information
|
||||
--prefix curl install prefix
|
||||
--protocols newline separated list of enabled protocols
|
||||
--ssl-backends output the SSL backends libcurl was built to support
|
||||
--static-libs static libcurl library linking information
|
||||
--version output version information
|
||||
--vernum output the version information as a number (hexadecimal)
|
||||
|
@ -153,6 +154,9 @@ while test $# -gt 0; do
|
|||
echo ${CURLLIBDIR}-lcurl
|
||||
fi
|
||||
;;
|
||||
--ssl-backends)
|
||||
echo "@SSL_BACKENDS@"
|
||||
;;
|
||||
|
||||
--static-libs)
|
||||
if test "X@ENABLE_STATIC@" != "Xno" ; then
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2013-05-30.07; # UTC
|
||||
scriptversion=2016-01-11.22; # UTC
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -786,6 +786,6 @@ exit 0
|
|||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
|
|
@ -65,7 +65,7 @@ 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.
|
||||
|
||||
[OCaml](http://opam.ocaml.org/packages/ocurl/) Written by Lars Nilsson and ygrek
|
||||
[OCaml](https://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.
|
||||
|
||||
|
@ -75,7 +75,7 @@ Bailiff and Bálint Szilakszi,
|
|||
|
||||
[PHP](https://php.net/curl) Originally written by Sterling Hughes
|
||||
|
||||
[PostgreSQL](http://gborg.postgresql.org/project/pgcurl/projdisplay.php) Written by Gian Paolo Ciceri
|
||||
[PostgreSQL](https://github.com/pramsey/pgsql-http) - HTTP client for PostgreSQL
|
||||
|
||||
[Python](http://pycurl.io/) PycURL by Kjetil Jacobsen
|
||||
|
||||
|
@ -83,7 +83,7 @@ Bailiff and Bálint Szilakszi,
|
|||
|
||||
[Rexx](https://rexxcurl.sourceforge.io/) Written Mark Hessling
|
||||
|
||||
[Ring](http://ring-lang.sourceforge.net/doc1.3/libcurl.html) RingLibCurl by Mahmoud Fayed
|
||||
[Ring](https://ring-lang.sourceforge.io/doc1.3/libcurl.html) RingLibCurl by Mahmoud Fayed
|
||||
|
||||
RPG, support for ILE/RPG on OS/400 is included in source distribution
|
||||
|
||||
|
@ -99,7 +99,7 @@ Ruby: [curb](http://curb.rubyforge.org/) written by Ross Bamford, [ruby-curl-mul
|
|||
|
||||
[Smalltalk](http://www.squeaksource.com/CurlPlugin/) Written by Danil Osipchuk
|
||||
|
||||
[SP-Forth](http://spf.cvs.sourceforge.net/viewvc/spf/devel/~ac/lib/lin/curl/) Written by Andrey Cherezov
|
||||
[SP-Forth](https://sourceforge.net/p/spf/spf/ci/master/tree/devel/~ac/lib/lin/curl/) Written by Andrey Cherezov
|
||||
|
||||
[SPL](http://www.clifford.at/spl/) Written by Clifford Wolf
|
||||
|
||||
|
|
|
@ -9,12 +9,13 @@ BUGS
|
|||
1. Bugs
|
||||
1.1 There are still bugs
|
||||
1.2 Where to report
|
||||
1.3 What to report
|
||||
1.4 libcurl problems
|
||||
1.5 Who will fix the problems
|
||||
1.6 How to get a stack trace
|
||||
1.7 Bugs in libcurl bindings
|
||||
1.8 Bugs in old versions
|
||||
1.3 Security bugs
|
||||
1.4 What to report
|
||||
1.5 libcurl problems
|
||||
1.6 Who will fix the problems
|
||||
1.7 How to get a stack trace
|
||||
1.8 Bugs in libcurl bindings
|
||||
1.9 Bugs in old versions
|
||||
|
||||
2. Bug fixing procedure
|
||||
2.1 What happens on first filing
|
||||
|
@ -30,9 +31,8 @@ BUGS
|
|||
|
||||
1.1 There are still bugs
|
||||
|
||||
Curl and libcurl have grown substantially since the beginning. At the time
|
||||
of writing (January 2013), there are about 83,000 lines of source code, and
|
||||
by the time you read this it has probably grown even more.
|
||||
Curl and libcurl keep being developed. Adding features and changing code
|
||||
means that bugs will sneak in, no matter how hard we try not to.
|
||||
|
||||
Of course there are lots of bugs left. And lots of misfeatures.
|
||||
|
||||
|
@ -53,7 +53,24 @@ BUGS
|
|||
If you feel you need to ask around first, find a suitable mailing list and
|
||||
post there. The lists are available on https://curl.haxx.se/mail/
|
||||
|
||||
1.3 What to report
|
||||
1.3 Security bugs
|
||||
|
||||
If you find a bug or problem in curl or libcurl that you think has a
|
||||
security impact, for example a bug that can put users in danger or make them
|
||||
vulnerable if the bug becomes public knowledge, then please report that bug
|
||||
using our security development process.
|
||||
|
||||
Security related bugs or bugs that are suspected to have a security impact,
|
||||
should be reported by email to curl-security@haxx.se so that they first can
|
||||
be dealt with away from the public to minimize the harm and impact it will
|
||||
have on existing users out there who might be using the vulnerable versions.
|
||||
|
||||
The curl project's process for handling security related issues is
|
||||
documented here:
|
||||
|
||||
https://curl.haxx.se/dev/security.html
|
||||
|
||||
1.4 What to report
|
||||
|
||||
When reporting a bug, you should include all information that will help us
|
||||
understand what's wrong, what you expected to happen and how to repeat the
|
||||
|
@ -85,7 +102,7 @@ BUGS
|
|||
The address and how to subscribe to the mailing lists are detailed in the
|
||||
MANUAL file.
|
||||
|
||||
1.4 libcurl problems
|
||||
1.5 libcurl problems
|
||||
|
||||
When you've written your own application with libcurl to perform transfers,
|
||||
it is even more important to be specific and detailed when reporting bugs.
|
||||
|
@ -105,7 +122,7 @@ BUGS
|
|||
valgrind or similar before you post memory-related or "crashing" problems to
|
||||
us.
|
||||
|
||||
1.5 Who will fix the problems
|
||||
1.6 Who will fix the problems
|
||||
|
||||
If the problems or bugs you describe are considered to be bugs, we want to
|
||||
have the problems fixed.
|
||||
|
@ -124,7 +141,7 @@ BUGS
|
|||
We get reports from many people every month and each report can take a
|
||||
considerable amount of time to really go to the bottom with.
|
||||
|
||||
1.6 How to get a stack trace
|
||||
1.7 How to get a stack trace
|
||||
|
||||
First, you must make sure that you compile all sources with -g and that you
|
||||
don't 'strip' the final executable. Try to avoid optimizing the code as
|
||||
|
@ -144,7 +161,7 @@ BUGS
|
|||
crashed. Include the stack trace with your detailed bug report. It'll help a
|
||||
lot.
|
||||
|
||||
1.7 Bugs in libcurl bindings
|
||||
1.8 Bugs in libcurl bindings
|
||||
|
||||
There will of course pop up bugs in libcurl bindings. You should then
|
||||
primarily approach the team that works on that particular binding and see
|
||||
|
@ -154,7 +171,7 @@ BUGS
|
|||
please convert your program over to plain C and follow the steps outlined
|
||||
above.
|
||||
|
||||
1.8 Bugs in old versions
|
||||
1.9 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
|
||||
|
@ -169,7 +186,7 @@ BUGS
|
|||
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.
|
||||
persists or how/if it has changed in appearance.
|
||||
|
||||
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
|
||||
|
@ -273,8 +290,8 @@ BUGS
|
|||
The issue and pull request trackers on https://github.com/curl/curl will
|
||||
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
|
||||
abandoned or in other ways dormant will be closed and sometimes added to
|
||||
TODO and KNOWN_BUGS instead.
|
||||
|
||||
This way, we only have "active" issues open on github. Irrelevant issues and
|
||||
pull requests will not distract developes or casual visitors.
|
||||
pull requests will not distract developers or casual visitors.
|
||||
|
|
|
@ -250,7 +250,7 @@ libcurl was built to use. This is an attempt to list known cipher names.
|
|||
|
||||
## GSKit
|
||||
|
||||
Ciphers are internally defined as numeric codes (http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/apis/gsk_attribute_set_buffer.htm),
|
||||
Ciphers are internally defined as numeric codes (https://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)
|
||||
|
|
|
@ -28,5 +28,5 @@ reported by opening an issue or contacting one or more of the project
|
|||
maintainers.
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor
|
||||
Covenant](http://contributor-covenant.org), version 1.1.0, available at
|
||||
[http://contributor-covenant.org/version/1/1/0/](http://contributor-covenant.org/version/1/1/0/)
|
||||
Covenant](https://contributor-covenant.org/), version 1.1.0, available at
|
||||
[https://contributor-covenant.org/version/1/1/0/](https://contributor-covenant.org/version/1/1/0/)
|
||||
|
|
|
@ -157,14 +157,15 @@ 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
|
||||
- ... it 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
|
||||
- ... it still builds fine on Windows with several MSVC versions
|
||||
- ... it still builds with cmake on Linux, with gcc and clang
|
||||
- ... it 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
|
||||
- ... it builds fine in-tree as well as out-of-tree
|
||||
- ... 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
|
||||
|
|
|
@ -30,7 +30,6 @@ FAQ
|
|||
2.2 Does curl work/build with other SSL libraries?
|
||||
2.3 Where can I find a copy of LIBEAY32.DLL?
|
||||
2.4 Does curl support SOCKS (RFC 1928) ?
|
||||
2.5 Install libcurl for both 32bit and 64bit?
|
||||
|
||||
3. Usage Problems
|
||||
3.1 curl: (1) SSL is disabled, https: not supported
|
||||
|
@ -163,7 +162,7 @@ FAQ
|
|||
We pronounce curl with an initial k sound. It rhymes with words like girl
|
||||
and earl. This is a short WAV file to help you:
|
||||
|
||||
http://media.merriam-webster.com/soundc11/c/curl0001.wav
|
||||
https://media.merriam-webster.com/soundc11/c/curl0001.wav
|
||||
|
||||
There are numerous sub-projects and related projects that also use the word
|
||||
curl in the project names in various combinations, but you should take
|
||||
|
@ -367,8 +366,8 @@ FAQ
|
|||
Comprehensible explanations of the meaning of such numbers and how to obtain
|
||||
them (resp.) are here
|
||||
|
||||
http://www.bis.doc.gov/licensing/exportingbasics.htm
|
||||
http://www.bis.doc.gov/licensing/do_i_needaneccn.html
|
||||
https://www.bis.doc.gov/licensing/exportingbasics.htm
|
||||
https://www.bis.doc.gov/licensing/do_i_needaneccn.html
|
||||
|
||||
An incomprehensible description of the two numbers above is here
|
||||
http://www.access.gpo.gov/bis/ear/pdf/ccl5-pt2.pdf
|
||||
|
@ -466,32 +465,6 @@ FAQ
|
|||
|
||||
Yes, SOCKS 4 and 5 are supported.
|
||||
|
||||
2.5 Install libcurl for both 32bit and 64bit?
|
||||
|
||||
In curl's configure procedure one of the regular include files gets created
|
||||
with platform specific information. The file 'curl/curlbuild.h' in the
|
||||
installed libcurl file tree is therefore somewhat tied to that particular
|
||||
platform.
|
||||
|
||||
To allow applications to get built for either 32bit or 64bit you need to
|
||||
install libcurl headers for both setups and unfortunately curl doesn't do
|
||||
this automatically.
|
||||
|
||||
A commonly used procedure is this:
|
||||
|
||||
$ ./configure [32bit platform]
|
||||
$ mv curl/curlbuild.h curl/curlbuild-32bit.h
|
||||
$ ./configure [64bit platform]
|
||||
$ mv curl/curlbuild.h curl/curlbuild-64bit.h
|
||||
|
||||
Then you make a toplevel curl/curlbuild.h replacement that only does this:
|
||||
|
||||
#ifdef IS_32BIT
|
||||
#include "curlbuild-32bit.h"
|
||||
else
|
||||
#include "curlbuild-64bit.h"
|
||||
#endif
|
||||
|
||||
|
||||
3. Usage problems
|
||||
|
||||
|
@ -1445,7 +1418,7 @@ FAQ
|
|||
timed out.
|
||||
|
||||
The most flexible way is by writing your own time-out logic and using
|
||||
CURLOPT_PROGRESSFUNCTION (perhaps in combination with other callbacks) and
|
||||
CURLOPT_XFERINFOFUNCTION (perhaps in combination with other callbacks) and
|
||||
use that to figure out exactly when the right condition is met when the
|
||||
transfer should get stopped.
|
||||
|
||||
|
|
70
curl/docs/HELP-US.md
Normal file
70
curl/docs/HELP-US.md
Normal file
|
@ -0,0 +1,70 @@
|
|||
# How to get started helping out in the curl project
|
||||
|
||||
We are always in need of more help. If you are new to the project and are
|
||||
looking for ways to contribute and help out, this document aims to give a few
|
||||
good starting points.
|
||||
|
||||
A good idea is to start by subscribing to the [curl-library mailing
|
||||
list](https://cool.haxx.se/mailman/listinfo/curl-library) to keep track of the
|
||||
current discussion topics.
|
||||
|
||||
## Scratch your own itch
|
||||
|
||||
One of the best ways is to start working on any problems or issues you have
|
||||
found yourself or perhaps got annoyed at in the past. It can be a spelling
|
||||
error in an error text or a weirdly phrased section in a man page. Hunt it
|
||||
down and report the bug. Or make your first pull request with a fix for that.
|
||||
|
||||
## Help wanted
|
||||
|
||||
In the issue tracker we occasionally mark bugs with [help
|
||||
wanted](https://github.com/curl/curl/labels/help%20wanted), as a sign that the
|
||||
bug is acknowledged to exist and that there's nobody known to work on this
|
||||
issue for the moment. Those are bugs that are fine to "grab" and provide a
|
||||
pull request for. The complexity level of these will of course vary, so pick
|
||||
one that piques your interest.
|
||||
|
||||
## Work on known bugs
|
||||
|
||||
Some bugs are known and haven't yet received attention and work enough to get
|
||||
fixed. We collect such known existing flaws in the
|
||||
[KNOWN_BUGS](https://curl.haxx.se/docs/knownbugs.html) page. Many of them link
|
||||
to the original bug report with some additional details, but some may also
|
||||
have aged a bit and may require some verification that the bug still exists in
|
||||
the same way and that what was said about it in the past is still valid.
|
||||
|
||||
## Fix autobuild problems
|
||||
|
||||
On the [autobuilds page](https://curl.haxx.se/dev/builds.html) we show a
|
||||
collection of test results from the automatic curl build and tests that are
|
||||
performed by volunteers. Fixing compiler warnings and errors shown there is
|
||||
something we value greatly. Also, if you own or run systems or architectures
|
||||
that aren't already tested in the autobuilds, we also appreciate more
|
||||
volunteers running builds automatically to help us keep curl portable.
|
||||
|
||||
## TODO items
|
||||
|
||||
Ideas for features and functions that we have considered worthwhile to
|
||||
implement and provide are kept in the
|
||||
[TODO](https://curl.haxx.se/docs/todo.html) file. Some of the ideas are
|
||||
rough. Some are well thought out. Some probably aren't really suitable
|
||||
anymore.
|
||||
|
||||
Before you invest a lot of time on a TODO item, do bring it up for discussion
|
||||
on the mailing list. For discussion on applicability but also for ideas and
|
||||
brainstorming on specific ways to do the implementation etc.
|
||||
|
||||
## You decide
|
||||
|
||||
You can also come up with a completely new thing you think we should do. Or
|
||||
not do. Or fix. Or add to the project. You then either bring it to the mailing
|
||||
list first to see if people will shoot down the idea at once, or you bring a
|
||||
first draft of the idea as a pull request and take the discussion there around
|
||||
the specific implementation. Either way is fine.
|
||||
|
||||
## CONTRIBUTE
|
||||
|
||||
We offer [guidelines](https://curl.haxx.se/dev/contribute.html) that are
|
||||
suitable to be familiar with before you decide to contribute to curl. If
|
||||
you're used to open source development, you'll probably not find many
|
||||
surprises in there.
|
|
@ -275,3 +275,21 @@ August:
|
|||
March: first real release supporting HTTP/2
|
||||
|
||||
September: Web site had 245,000 unique visitors and served 236GB data
|
||||
|
||||
2016
|
||||
----
|
||||
|
||||
December: curl 7.52.0 introduced support for HTTPS-proxy!
|
||||
|
||||
2017
|
||||
----
|
||||
|
||||
September: Added Multi-SSL support
|
||||
|
||||
The web site serves 3100 GB/month
|
||||
|
||||
Public curl releases: 169
|
||||
Command line options: 211
|
||||
curl_easy_setopt() options: 249
|
||||
Public functions in libcurl: 74
|
||||
Contributors: 1609
|
||||
|
|
|
@ -37,17 +37,6 @@ Current flaws in the curl CMake build
|
|||
- 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
|
||||
|
|
|
@ -222,6 +222,9 @@ subdirectory run following command from mentioned subdirectory:
|
|||
In order to build sample program simplessl.c an SSL enabled libcurl is
|
||||
required, as well as the OpenSSL libeay32.lib and ssleay32.lib libraries.
|
||||
|
||||
In order to build sample program `sslbackend.c`, an SSL enabled libcurl
|
||||
is required.
|
||||
|
||||
## Disabling Specific Protocols in Windows builds
|
||||
|
||||
The configure utility, unfortunately, is not available for the Windows
|
||||
|
@ -278,8 +281,8 @@ before including any libcurl header. Your program does not need the
|
|||
`USE_LWIPSOCK` preprocessor definition which is for libcurl internals only.
|
||||
|
||||
Compilation has been verified with [lwIP
|
||||
1.4.0](http://download.savannah.gnu.org/releases/lwip/lwip-1.4.0.zip) and
|
||||
[contrib-1.4.0](http://download.savannah.gnu.org/releases/lwip/contrib-1.4.0.zip).
|
||||
1.4.0](https://download.savannah.gnu.org/releases/lwip/lwip-1.4.0.zip) and
|
||||
[contrib-1.4.0](https://download.savannah.gnu.org/releases/lwip/contrib-1.4.0.zip).
|
||||
|
||||
This BSD-style lwIP TCP/IP stack support must be considered experimental given
|
||||
that it has been verified that lwIP 1.4.0 still needs some polish, and libcurl
|
||||
|
|
|
@ -82,7 +82,7 @@ Dependencies
|
|||
- zlib 1.1.4
|
||||
- libssh2 0.16
|
||||
- c-ares 1.6.0
|
||||
- libidn 0.4.1
|
||||
- libidn2 2.0.0
|
||||
- cyassl 2.0.0
|
||||
- openldap 2.0
|
||||
- MIT Kerberos 1.2.4
|
||||
|
@ -612,20 +612,6 @@ curlx
|
|||
strtoll() (or equivalent) function exist on your platform. If `curl_off_t`
|
||||
is only a 32 bit number on your platform, this macro uses strtol().
|
||||
|
||||
`curlx_tvnow()`
|
||||
---------------
|
||||
returns a struct timeval for the current time.
|
||||
|
||||
`curlx_tvdiff()`
|
||||
--------------
|
||||
returns the difference between two timeval structs, in number of
|
||||
milliseconds.
|
||||
|
||||
`curlx_tvdiff_secs()`
|
||||
---------------------
|
||||
returns the same as `curlx_tvdiff` but with full usec resolution (as a
|
||||
double)
|
||||
|
||||
Future
|
||||
------
|
||||
|
||||
|
@ -656,29 +642,29 @@ Content Encoding
|
|||
## About content encodings
|
||||
|
||||
[HTTP/1.1][4] specifies that a client may request that a server encode its
|
||||
response. This is usually used to compress a response using one of a set of
|
||||
commonly available compression techniques. These schemes are 'deflate' (the
|
||||
zlib algorithm), 'gzip' and 'compress'. A client requests that the server
|
||||
perform an encoding by including an Accept-Encoding header in the request
|
||||
document. The value of the header should be one of the recognized tokens
|
||||
'deflate', ... (there's a way to register new schemes/tokens, see sec 3.5 of
|
||||
the spec). A server MAY honor the client's encoding request. When a response
|
||||
is encoded, the server includes a Content-Encoding header in the
|
||||
response. The value of the Content-Encoding header indicates which scheme was
|
||||
used to encode the data.
|
||||
response. This is usually used to compress a response using one (or more)
|
||||
encodings from a set of commonly available compression techniques. These
|
||||
schemes include 'deflate' (the zlib algorithm), 'gzip' 'br' (brotli) and
|
||||
'compress'. A client requests that the server perform an encoding by including
|
||||
an Accept-Encoding header in the request document. The value of the header
|
||||
should be one of the recognized tokens 'deflate', ... (there's a way to
|
||||
register new schemes/tokens, see sec 3.5 of the spec). A server MAY honor
|
||||
the client's encoding request. When a response is encoded, the server
|
||||
includes a Content-Encoding header in the response. The value of the
|
||||
Content-Encoding header indicates which encodings were used to encode the
|
||||
data, in the order in which they were applied.
|
||||
|
||||
A client may tell a server that it can understand several different encoding
|
||||
schemes. In this case the server may choose any one of those and use it to
|
||||
encode the response (indicating which one using the Content-Encoding header).
|
||||
It's also possible for a client to attach priorities to different schemes so
|
||||
that the server knows which it prefers. See sec 14.3 of RFC 2616 for more
|
||||
information on the Accept-Encoding header.
|
||||
information on the Accept-Encoding header. See sec [3.1.2.2 of RFC 7231][15]
|
||||
for more information on the Content-Encoding header.
|
||||
|
||||
## Supported content encodings
|
||||
|
||||
The 'deflate' and 'gzip' content encoding are supported by libcurl. Both
|
||||
regular and chunked transfers work fine. The zlib library is required for
|
||||
this feature.
|
||||
The 'deflate', 'gzip' and 'br' content encodings are supported by libcurl.
|
||||
Both regular and chunked transfers work fine. The zlib library is required
|
||||
for the 'deflate' and 'gzip' encodings, while the brotli decoding library is
|
||||
for the 'br' encoding.
|
||||
|
||||
## The libcurl interface
|
||||
|
||||
|
@ -688,14 +674,15 @@ Content Encoding
|
|||
|
||||
where string is the intended value of the Accept-Encoding header.
|
||||
|
||||
Currently, libcurl only understands how to process responses that use the
|
||||
"deflate" or "gzip" Content-Encoding, so the only values for
|
||||
[`CURLOPT_ACCEPT_ENCODING`][5] that will work (besides "identity," which does
|
||||
nothing) are "deflate" and "gzip" If a response is encoded using the
|
||||
"compress" or methods, libcurl will return an error indicating that the
|
||||
response could not be decoded. If <string> is NULL no Accept-Encoding header
|
||||
is generated. If <string> is a zero-length string, then an Accept-Encoding
|
||||
header containing all supported encodings will be generated.
|
||||
Currently, libcurl does support multiple encodings but only
|
||||
understands how to process responses that use the "deflate", "gzip" and/or
|
||||
"br" content encodings, so the only values for [`CURLOPT_ACCEPT_ENCODING`][5]
|
||||
that will work (besides "identity," which does nothing) are "deflate",
|
||||
"gzip" and "br". If a response is encoded using the "compress" or methods,
|
||||
libcurl will return an error indicating that the response could
|
||||
not be decoded. If <string> is NULL no Accept-Encoding header is generated.
|
||||
If <string> is a zero-length string, then an Accept-Encoding header
|
||||
containing all supported encodings will be generated.
|
||||
|
||||
The [`CURLOPT_ACCEPT_ENCODING`][5] must be set to any non-NULL value for
|
||||
content to be automatically decoded. If it is not set and the server still
|
||||
|
@ -1079,7 +1066,7 @@ for older and later versions as things don't change drastically that often.
|
|||
|
||||
[1]: https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
|
||||
[2]: https://curl.haxx.se/libcurl/c/curl_easy_init.html
|
||||
[3]: http://c-ares.haxx.se/
|
||||
[3]: https://c-ares.haxx.se/
|
||||
[4]: https://tools.ietf.org/html/rfc7230 "RFC 7230"
|
||||
[5]: https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html
|
||||
[6]: https://curl.haxx.se/docs/manpage.html#--compressed
|
||||
|
@ -1091,3 +1078,4 @@ for older and later versions as things don't change drastically that often.
|
|||
[12]: https://curl.haxx.se/libcurl/c/curl_multi_fdset.html
|
||||
[13]: https://curl.haxx.se/libcurl/c/curl_multi_add_handle.html
|
||||
[14]: https://curl.haxx.se/libcurl/c/curl_multi_info_read.html
|
||||
[15]: https://tools.ietf.org/html/rfc7231#section-3.1.2.2
|
||||
|
|
|
@ -18,7 +18,6 @@ problems may have been fixed or changed somewhat since this was written!
|
|||
1.4 multipart formposts file name encoding
|
||||
1.5 Expect-100 meets 417
|
||||
1.6 Unnecessary close when 401 received waiting for 100
|
||||
1.8 DNS timing is wrong for HTTP redirects
|
||||
1.9 HTTP/2 frames while in the connection pool kill reuse
|
||||
1.10 Strips trailing dot from host name
|
||||
1.11 CURLOPT_SEEKFUNCTION not called with CURLFORM_STREAM
|
||||
|
@ -83,6 +82,7 @@ problems may have been fixed or changed somewhat since this was written!
|
|||
11.1 Curl leaks .onion hostnames in DNS
|
||||
11.2 error buffer not set if connection to multiple addresses fails
|
||||
11.3 c-ares deviates from stock resolver on http://1346569778
|
||||
11.4 HTTP test server 'connection-monitor' problems
|
||||
|
||||
12. LDAP and OpenLDAP
|
||||
12.1 OpenLDAP hangs after returning results
|
||||
|
@ -140,12 +140,6 @@ problems may have been fixed or changed somewhat since this was written!
|
|||
waiting for the the 100-continue response.
|
||||
https://curl.haxx.se/mail/lib-2008-08/0462.html
|
||||
|
||||
1.8 DNS timing is wrong for HTTP redirects
|
||||
|
||||
When extracting timing information after HTTP redirects, only the last
|
||||
transfer's results are returned and not the totals:
|
||||
https://github.com/curl/curl/issues/522
|
||||
|
||||
1.9 HTTP/2 frames while in the connection pool kill reuse
|
||||
|
||||
If the server sends HTTP/2 frames (like for example an HTTP/2 PING frame) to
|
||||
|
@ -322,7 +316,6 @@ problems may have been fixed or changed somewhat since this was written!
|
|||
The cmake build setup lacks several features that the autoconf build
|
||||
offers. This includes:
|
||||
|
||||
- symbol hiding when the shared library is built
|
||||
- use of correct soname for the shared library build
|
||||
- support for several TLS backends are missing
|
||||
- the unit tests cause link failures in regular non-static builds
|
||||
|
@ -380,7 +373,7 @@ problems may have been fixed or changed somewhat since this was written!
|
|||
|
||||
libcurl fails to build with MIT Kerberos for Windows (KfW) due to KfW's
|
||||
library header files exporting symbols/macros that should be kept private to
|
||||
the KfW library. See ticket #5601 at http://krbdev.mit.edu/rt/
|
||||
the KfW library. See ticket #5601 at https://krbdev.mit.edu/rt/
|
||||
|
||||
6.3 NTLM in system context uses wrong name
|
||||
|
||||
|
@ -559,6 +552,13 @@ problems may have been fixed or changed somewhat since this was written!
|
|||
|
||||
See https://github.com/curl/curl/issues/893
|
||||
|
||||
11.4 HTTP test server 'connection-monitor' problems
|
||||
|
||||
The 'connection-monitor' feature of the sws HTTP test server doesn't work
|
||||
properly if some tests are run in unexpected order. Like 1509 and then 1525.
|
||||
|
||||
See https://github.com/curl/curl/issues/868
|
||||
|
||||
|
||||
12. LDAP and OpenLDAP
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ MAIL ETIQUETTE
|
|||
1.6 Handling trolls and spam
|
||||
1.7 How to unsubscribe
|
||||
1.8 I posted, now what?
|
||||
1.9 Your emails are public
|
||||
|
||||
2. Sending mail
|
||||
2.1 Reply or New Mail
|
||||
|
@ -162,6 +163,27 @@ MAIL ETIQUETTE
|
|||
chances are that people will ignore you at will and your chances to get
|
||||
responses in the future will greatly diminish.
|
||||
|
||||
1.9 Your emails are public
|
||||
|
||||
Your email, its contents and all its headers and the details in those
|
||||
headers will be received by every subscriber of the mailing list that you
|
||||
send your email to.
|
||||
|
||||
Your email as sent to a curl mailing list will end up in mail archives, on
|
||||
the curl web site and elsewhere, for others to see and read. Today and in
|
||||
the future. In addition to the archives, the mail is sent out to thousands
|
||||
of individuals. There is no way to undo a sent email.
|
||||
|
||||
When sending emails to a curl mailing list, do not include sensitive
|
||||
information such as user names and passwords; use fake ones, temporary ones
|
||||
or just remove them completely from the mail. Note that this includes base64
|
||||
encoded HTTP Basic auth headers.
|
||||
|
||||
This public nature of the curl mailing lists makes automaticly inserted mail
|
||||
footers about mails being "private" or "only meant for the receipient" or
|
||||
similar even more silly than usual. Because they are absolutely not private
|
||||
when sent to a public mailing list.
|
||||
|
||||
|
||||
2. Sending mail
|
||||
|
||||
|
@ -261,4 +283,3 @@ MAIL ETIQUETTE
|
|||
Getting the solution posted also helps other users that experience the same
|
||||
problem(s). They get to see (possibly in the web archives) that the
|
||||
suggested fixes actually has helped at least one person.
|
||||
|
||||
|
|
|
@ -35,8 +35,8 @@ HTMLPAGES = $(GENHTMLPAGES) index.html
|
|||
|
||||
# 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
|
||||
SUBDIRS = . cmdline-opts
|
||||
DIST_SUBDIRS = $(SUBDIRS) examples libcurl
|
||||
|
||||
CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES) $(MANDISTPAGES) curl.1
|
||||
|
||||
|
@ -46,7 +46,7 @@ EXTRA_DIST = MANUAL BUGS CONTRIBUTE.md FAQ FEATURES INTERNALS.md SSLCERTS.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)
|
||||
$(noinst_man_MANS) HELP-US.md
|
||||
|
||||
MAN2HTML= roffit $< >$@
|
||||
|
||||
|
@ -81,3 +81,6 @@ pdf: $(PDFPAGES)
|
|||
rm $$foo.ps; \
|
||||
echo "converted $< to $@")
|
||||
|
||||
distclean:
|
||||
rm -f $(CLEANFILES)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -133,8 +133,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
|
||||
$(top_builddir)/include/curl/curlbuild.h
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
|
@ -266,8 +265,11 @@ CCDEPMODE = @CCDEPMODE@
|
|||
CFLAGS = @CFLAGS@
|
||||
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
|
||||
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
|
||||
CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@
|
||||
CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@
|
||||
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
|
||||
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
|
||||
CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@
|
||||
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
|
@ -293,7 +295,9 @@ CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
|
|||
CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@
|
||||
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
|
||||
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
|
||||
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
|
@ -310,6 +314,7 @@ FGREP = @FGREP@
|
|||
GCOV = @GCOV@
|
||||
GENHTML = @GENHTML@
|
||||
GREP = @GREP@
|
||||
HAVE_BROTLI = @HAVE_BROTLI@
|
||||
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
|
||||
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
|
||||
HAVE_LIBZ = @HAVE_LIBZ@
|
||||
|
@ -367,6 +372,7 @@ REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
|
|||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SSL_BACKENDS = @SSL_BACKENDS@
|
||||
SSL_ENABLED = @SSL_ENABLED@
|
||||
SSL_LIBS = @SSL_LIBS@
|
||||
STRIP = @STRIP@
|
||||
|
@ -379,6 +385,7 @@ USE_DARWINSSL = @USE_DARWINSSL@
|
|||
USE_GNUTLS = @USE_GNUTLS@
|
||||
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
|
||||
USE_LIBRTMP = @USE_LIBRTMP@
|
||||
USE_LIBSSH = @USE_LIBSSH@
|
||||
USE_LIBSSH2 = @USE_LIBSSH2@
|
||||
USE_MBEDTLS = @USE_MBEDTLS@
|
||||
USE_NGHTTP2 = @USE_NGHTTP2@
|
||||
|
@ -461,8 +468,8 @@ HTMLPAGES = $(GENHTMLPAGES) index.html
|
|||
|
||||
# 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
|
||||
SUBDIRS = . cmdline-opts
|
||||
DIST_SUBDIRS = $(SUBDIRS) examples libcurl
|
||||
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 \
|
||||
|
@ -470,7 +477,7 @@ EXTRA_DIST = MANUAL BUGS CONTRIBUTE.md FAQ FEATURES INTERNALS.md SSLCERTS.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)
|
||||
$(noinst_man_MANS) HELP-US.md
|
||||
|
||||
MAN2HTML = roffit $< >$@
|
||||
SUFFIXES = .1 .html .pdf
|
||||
|
@ -754,8 +761,6 @@ clean: clean-recursive
|
|||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
@ -862,6 +867,9 @@ pdf: $(PDFPAGES)
|
|||
rm $$foo.ps; \
|
||||
echo "converted $< to $@")
|
||||
|
||||
distclean:
|
||||
rm -f $(CLEANFILES)
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
|
|
@ -83,10 +83,13 @@ Coming dates
|
|||
Based on the description above, here are some planned release dates (at the
|
||||
time of this writing):
|
||||
|
||||
- June 14, 2017 (version 7.54.1)
|
||||
- August 9, 2017
|
||||
- October 4, 2017
|
||||
- November 29, 2017
|
||||
- January 24, 2018
|
||||
- March 21, 2018
|
||||
- May 16, 2018
|
||||
- July 11, 2018
|
||||
- September 5, 2018
|
||||
- October 31, 2018
|
||||
- December 26, 2018
|
||||
- February 20, 2019
|
||||
- April 17, 2019
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
This document lists documents and standards used by curl.
|
||||
|
||||
RFC 959 - The FTP protocol
|
||||
RFC 959 - FTP Protocol
|
||||
|
||||
RFC 1635 - How to Use Anonymous FTP
|
||||
|
||||
RFC 1738 - Uniform Resource Locators
|
||||
|
||||
RFC 1777 - defines the LDAP protocol
|
||||
RFC 1777 - Lightweight Directory Access Protocol (LDAP)
|
||||
|
||||
RFC 1808 - Relative Uniform Resource Locators
|
||||
|
||||
|
@ -23,9 +23,9 @@ This document lists documents and standards used by curl.
|
|||
|
||||
RFC 1951 - DEFLATE Compressed Data Format Specification
|
||||
|
||||
RFC 1952 - gzip compression format
|
||||
RFC 1952 - GZIP File Format Specification
|
||||
|
||||
RFC 1959 - LDAP URL syntax
|
||||
RFC 1959 - LDAP URL Syntax
|
||||
|
||||
RFC 2045-2049 - Everything you need to know about MIME! (needed for form
|
||||
based upload)
|
||||
|
@ -40,11 +40,11 @@ This document lists documents and standards used by curl.
|
|||
|
||||
RFC 2183 - The Content-Disposition Header Field
|
||||
|
||||
RFC 2195 - CRAM-MD5 authentication
|
||||
RFC 2195 - CRAM-MD5 Authentication
|
||||
|
||||
RFC 2229 - A Dictionary Server Protocol
|
||||
|
||||
RFC 2255 - Newer LDAP URL syntax document.
|
||||
RFC 2255 - Newer LDAP URL Format
|
||||
|
||||
RFC 2231 - MIME Parameter Value and Encoded Word Extensions:
|
||||
Character Sets, Languages, and Continuations
|
||||
|
@ -70,14 +70,16 @@ This document lists documents and standards used by curl.
|
|||
|
||||
RFC 2818 - HTTP Over TLS (TLS is the successor to SSL)
|
||||
|
||||
RFC 2821 - SMTP protocol
|
||||
RFC 2821 - Simple Mail Transfer Protocol (SMTP)
|
||||
|
||||
RFC 2964 - Use of HTTP State Management
|
||||
|
||||
RFC 2965 - HTTP State Management Mechanism. Cookies. Obsoletes RFC2109
|
||||
|
||||
RFC 3207 - SMTP over TLS
|
||||
RFC 3207 - SMTP Over TLS
|
||||
|
||||
RFC 4616 - PLAIN authentication
|
||||
RFC 4616 - PLAIN Authentication
|
||||
|
||||
RFC 4954 - SMTP Authentication
|
||||
|
||||
RFC 7932 - Brotli Compressed Data Format
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
curl the next few years - perhaps
|
||||
=================================
|
||||
|
||||
Roadmap of things Daniel Stenberg and Steve Holme want to work on next. It is
|
||||
intended to serve as a guideline for others for information, feedback and
|
||||
possible participation.
|
||||
Roadmap of things Daniel Stenberg wants to work on next. It is intended to
|
||||
serve as a guideline for others for information, feedback and possible
|
||||
participation.
|
||||
|
||||
QUIC
|
||||
----
|
||||
|
||||
The standardization process of QUIC has been taken to the IETF and can be
|
||||
followed on the [IETF QUIC Mailing
|
||||
list](https://www.ietf.org/mailman/listinfo/quic). I'd like us to get on the
|
||||
bandwagon. Ideally, this would be done with a separate library/project to
|
||||
handle the binary/framing layer in a similar fashion to how HTTP/2 is
|
||||
implemented. This, to allow other projects to benefit from the work and to
|
||||
thus broaden the interest and chance of others to participate.
|
||||
See the [QUIC wiki page](https://github.com/curl/curl/wiki/QUIC).
|
||||
|
||||
HTTP cookies
|
||||
------------
|
||||
|
@ -34,85 +28,15 @@ SRV records
|
|||
|
||||
How to find services for specific domains/hosts.
|
||||
|
||||
curl_formadd()
|
||||
--------------
|
||||
|
||||
make sure there's an easy handle passed in to `curl_formadd()`,
|
||||
`curl_formget()` and `curl_formfree()` by adding replacement functions and
|
||||
deprecating the old ones to allow custom mallocs and more.
|
||||
|
||||
Or perhaps even better: revamp the formpost API completely while we're at it
|
||||
and making something that is easier to use and understand:
|
||||
|
||||
https://github.com/curl/curl/wiki/formpost-API-redesigned
|
||||
|
||||
Third-party SASL
|
||||
----------------
|
||||
|
||||
Add support for third-party SASL libraries such as Cyrus SASL.
|
||||
|
||||
SASL authentication in LDAP
|
||||
---------------------------
|
||||
|
||||
...
|
||||
|
||||
Simplify the SMTP email
|
||||
-----------------------
|
||||
|
||||
Simplify the SMTP email interface so that programmers don't have to
|
||||
construct the body of an email that contains all the headers, alternative
|
||||
content, images and attachments - maintain raw interface so that
|
||||
programmers that want to do this can
|
||||
|
||||
email capabilities
|
||||
------------------
|
||||
|
||||
Allow the email protocols to return the capabilities before
|
||||
authenticating. This will allow an application to decide on the best
|
||||
authentication mechanism
|
||||
|
||||
Win32 pthreads
|
||||
--------------
|
||||
|
||||
Allow Windows threading model to be replaced by Win32 pthreads port
|
||||
|
||||
dynamic buffer size
|
||||
-------------------
|
||||
|
||||
Implement a dynamic buffer size to allow SFTP to use much larger buffers and
|
||||
possibly allow the size to be customizable by applications. Use less memory
|
||||
when handles are not in use?
|
||||
|
||||
New stuff - curl
|
||||
----------------
|
||||
|
||||
1. Embed a language interpreter (lua?). For that middle ground where curl
|
||||
isn’t enough and a libcurl binding feels “too much”. Build-time conditional
|
||||
of course.
|
||||
|
||||
2. Simplify the SMTP command line so that the headers and multi-part content
|
||||
don't have to be constructed before calling curl
|
||||
|
||||
Improve
|
||||
-------
|
||||
|
||||
1. build for windows (considered hard by many users)
|
||||
1. curl -h output (considered overwhelming to users).
|
||||
|
||||
2. curl -h output (considered overwhelming to users)
|
||||
|
||||
3. we have > 200 command line options, is there a way to redo things to
|
||||
2. We have > 200 command line options, is there a way to redo things to
|
||||
simplify or improve the situation as we are likely to keep adding
|
||||
features/options in the future too
|
||||
features/options in the future too.
|
||||
|
||||
4. authentication framework (consider merging HTTP and SASL authentication to
|
||||
give one API for protocols to call)
|
||||
|
||||
5. Perform some of the clean up from the TODO document, removing old
|
||||
3. Perform some of the clean up from the TODO document, removing old
|
||||
definitions and such like that are currently earmarked to be removed years
|
||||
ago
|
||||
|
||||
Remove
|
||||
------
|
||||
|
||||
1. makefile.vc files as there is no point in maintaining two sets of Windows
|
||||
makefiles. Note: These are currently being used by the Windows autobuilds
|
||||
ago.
|
||||
|
|
121
curl/docs/THANKS
121
curl/docs/THANKS
|
@ -40,8 +40,11 @@ Alex Bligh
|
|||
Alex Chan
|
||||
Alex Fishman
|
||||
Alex Gruz
|
||||
Alex Malinovich
|
||||
Alex McLellan
|
||||
Alex Neblett
|
||||
Alex Nichols
|
||||
Alex Potapenko
|
||||
Alex Rousskov
|
||||
Alex Suykov
|
||||
Alex Vinnik
|
||||
|
@ -59,11 +62,13 @@ Alexander Sinditskiy
|
|||
Alexander Traud
|
||||
Alexander Zhuravlev
|
||||
Alexey Borzov
|
||||
Alexey Melnichuk
|
||||
Alexey Pesternikov
|
||||
Alexey Simak
|
||||
Alexey Zakhlestin
|
||||
Alexis Carvalho
|
||||
Alexis La Goutte
|
||||
Alfonso Martone
|
||||
Alfred Gebert
|
||||
Allen Pulsifer
|
||||
Alona Rossen
|
||||
|
@ -86,11 +91,13 @@ Andreas Ntaflos
|
|||
Andreas Olsson
|
||||
Andreas Rieke
|
||||
Andreas Roth
|
||||
Andreas Schneider
|
||||
Andreas Schuldei
|
||||
Andreas Streichardt
|
||||
Andreas Wurf
|
||||
Andrei Benea
|
||||
Andrei Cipu
|
||||
Andrei Karas
|
||||
Andrei Kurushin
|
||||
Andrei Sedoi
|
||||
Andrej E Baranov
|
||||
|
@ -101,6 +108,7 @@ Andrew Francis
|
|||
Andrew Fuller
|
||||
Andrew Krieger
|
||||
Andrew Kurushin
|
||||
Andrew Lambert
|
||||
Andrew Moise
|
||||
Andrew Robbins
|
||||
Andrew Wansink
|
||||
|
@ -129,6 +137,7 @@ Arkadiusz Miskiewicz
|
|||
Armel Asselin
|
||||
Arnaud Compan
|
||||
Arnaud Ebalard
|
||||
Artak Galoyan
|
||||
Arthur Murray
|
||||
Arve Knudsen
|
||||
Arvid Norberg
|
||||
|
@ -145,6 +154,7 @@ Balint Szilakszi
|
|||
Barry Abrahamson
|
||||
Bart Whiteley
|
||||
Bas Mevissen
|
||||
Basuke Suzuki
|
||||
Ben Boeckel
|
||||
Ben Darnell
|
||||
Ben Greear
|
||||
|
@ -157,6 +167,7 @@ Benjamin Gerard
|
|||
Benjamin Gilbert
|
||||
Benjamin Johnson
|
||||
Benjamin Kircher
|
||||
Benjamin Sergeant
|
||||
Benoit Neil
|
||||
Benoit Sigoure
|
||||
Bernard Leak
|
||||
|
@ -171,6 +182,7 @@ Bill Egert
|
|||
Bill Hoffman
|
||||
Bill Middlecamp
|
||||
Bill Nagel
|
||||
Bill Pyne
|
||||
Bjoern Sikora
|
||||
Bjorn Augustsson
|
||||
Bjorn Reese
|
||||
|
@ -224,6 +236,7 @@ Chandrakant Bagul
|
|||
Charles Kerr
|
||||
Charles Romestant
|
||||
Chen Prog
|
||||
Chester Liu
|
||||
Chih-Chung Chang
|
||||
Chris "Bob Bob"
|
||||
Chris Araman
|
||||
|
@ -275,6 +288,7 @@ Cory Nelson
|
|||
Craig A West
|
||||
Craig Davison
|
||||
Craig Markwardt
|
||||
Craig de Stigter
|
||||
Cris Bailiff
|
||||
Cristian Rodríguez
|
||||
Curt Bogmine
|
||||
|
@ -295,12 +309,14 @@ Dan Cristian
|
|||
Dan Donahue
|
||||
Dan Fandrich
|
||||
Dan Jacobson
|
||||
Dan Johnson
|
||||
Dan Locks
|
||||
Dan McNulty
|
||||
Dan Nelson
|
||||
Dan Petitt
|
||||
Dan Torop
|
||||
Dan Zitter
|
||||
Daniel Bankhead
|
||||
Daniel Black
|
||||
Daniel Cater
|
||||
Daniel Egger
|
||||
|
@ -308,6 +324,7 @@ Daniel Gustafsson
|
|||
Daniel Hwang
|
||||
Daniel Johnson
|
||||
Daniel Kahn Gillmor
|
||||
Daniel Krügler
|
||||
Daniel Lee Hwang
|
||||
Daniel Melani
|
||||
Daniel Mentz
|
||||
|
@ -337,6 +354,7 @@ David Binderman
|
|||
David Blaikie
|
||||
David Byron
|
||||
David Cohen
|
||||
David E. Narváez
|
||||
David Eriksson
|
||||
David Houlder
|
||||
David Hull
|
||||
|
@ -347,6 +365,7 @@ David Kierznowski
|
|||
David Kimdon
|
||||
David Lang
|
||||
David LeBlanc
|
||||
David Lord
|
||||
David McCreedy
|
||||
David Meyer
|
||||
David Odin
|
||||
|
@ -376,16 +395,20 @@ Dima Barsky
|
|||
Dima Tisnek
|
||||
Dimitar Boevski
|
||||
Dimitre Dimitrov
|
||||
Dimitrios Apostolou
|
||||
Dimitrios Siganos
|
||||
Dimitris Sarris
|
||||
Dinar
|
||||
Dirk Eddelbuettel
|
||||
Dirk Feytons
|
||||
Dirk Manske
|
||||
Dmitri Shubin
|
||||
Dmitri Tikhonov
|
||||
Dmitriy Sergeyev
|
||||
Dmitry Bartsevich
|
||||
Dmitry Eremin-Solenikov
|
||||
Dmitry Falko
|
||||
Dmitry Kostjuchenko
|
||||
Dmitry Kurochkin
|
||||
Dmitry Popov
|
||||
Dmitry Rechkin
|
||||
|
@ -408,6 +431,7 @@ Duane Cathey
|
|||
Duncan Mac-Vicar Prett
|
||||
Dustin Boswell
|
||||
Dusty Mabe
|
||||
Dwarakanath Yadavalli
|
||||
Dylan Ellicott
|
||||
Dylan Salisbury
|
||||
Dániel Bakai
|
||||
|
@ -424,6 +448,7 @@ Eelco Dolstra
|
|||
Eetu Ojanen
|
||||
Egon Eckert
|
||||
Eldar Zaitov
|
||||
Elliot Saba
|
||||
Ellis Pritchard
|
||||
Elmira A Semenova
|
||||
Emanuele Bovisio
|
||||
|
@ -458,6 +483,8 @@ Erwin Authried
|
|||
Ethan Glasser Camp
|
||||
Eugene Kotlyarov
|
||||
Evan Jordan
|
||||
Even Rouault
|
||||
Evert Pot
|
||||
Evgeny Grin
|
||||
Evgeny Turnaev
|
||||
Eygene Ryabinkin
|
||||
|
@ -469,6 +496,7 @@ Fabrizio Ammollo
|
|||
Fahim Chandurwala
|
||||
Fedor Karpelevitch
|
||||
Feist Josselin
|
||||
Felix Kaiser
|
||||
Felix Yan
|
||||
Felix von Leitner
|
||||
Feng Tu
|
||||
|
@ -476,9 +504,11 @@ Fernando Muñoz
|
|||
Flavio Medeiros
|
||||
Florian Schoppmann
|
||||
Florian Weimer
|
||||
Florin Petriuc
|
||||
Forrest Cahoon
|
||||
Francisco Moraes
|
||||
Francois Petitjean
|
||||
Frank Denis
|
||||
Frank Gevaerts
|
||||
Frank Hempel
|
||||
Frank Keeney
|
||||
|
@ -493,6 +523,7 @@ Fred New
|
|||
Fred Noz
|
||||
Fred Stluka
|
||||
Frederic Lepied
|
||||
Frederik B
|
||||
Fredrik Thulin
|
||||
Gabriel Kuri
|
||||
Gabriel Sjoberg
|
||||
|
@ -554,8 +585,10 @@ Gwenole Beauchesne
|
|||
Gökhan Şengün
|
||||
Götz Babin-Ebell
|
||||
Hamish Mackenzie
|
||||
Han Qiao
|
||||
Hang Kin Lau
|
||||
Hang Su
|
||||
Hannes Magnusson
|
||||
Hanno Böck
|
||||
Hanno Kranzhoff
|
||||
Hans Steegers
|
||||
|
@ -584,6 +617,7 @@ Howard Chu
|
|||
Hubert Kario
|
||||
Hzhijun
|
||||
Ian D Allen
|
||||
Ian Fette
|
||||
Ian Ford
|
||||
Ian Gulliver
|
||||
Ian Lynagh
|
||||
|
@ -607,12 +641,14 @@ Ishan SinghLevett
|
|||
Ivan Avdeev
|
||||
Ivo Bellin Salarin
|
||||
Jack Zhang
|
||||
Jackarain on github
|
||||
Jacky Lam
|
||||
Jacob Meuser
|
||||
Jacob Moshenko
|
||||
Jactry Zeng
|
||||
Jad Chamcham
|
||||
Jaime Fullaondo
|
||||
Jakub Wilk
|
||||
Jakub Zakrzewski
|
||||
James Atwill
|
||||
James Bursa
|
||||
|
@ -624,9 +660,11 @@ James Gallagher
|
|||
James Griffiths
|
||||
James Housley
|
||||
James MacMillan
|
||||
James Slaughter
|
||||
Jamie Lokier
|
||||
Jamie Newton
|
||||
Jamie Wilkinson
|
||||
Jan Alexander Steffens
|
||||
Jan Ehrhardt
|
||||
Jan Koen Annot
|
||||
Jan Kunder
|
||||
|
@ -638,11 +676,13 @@ Jared Lundell
|
|||
Jari Aalto
|
||||
Jari Sundell
|
||||
Jason Glasgow
|
||||
Jason Juang
|
||||
Jason Liu
|
||||
Jason McDonald
|
||||
Jason S. Priebe
|
||||
Javier Barroso
|
||||
Javier G. Sogo
|
||||
Javier Sixto
|
||||
Jay Austin
|
||||
Jayesh A Shah
|
||||
Jaz Fresh
|
||||
|
@ -669,6 +709,7 @@ Jeremy Friesner
|
|||
Jeremy Huddleston
|
||||
Jeremy Lin
|
||||
Jeremy Pearson
|
||||
Jeremy Tan
|
||||
Jeroen Koekkoek
|
||||
Jeroen Ooms
|
||||
Jerome Muffat-Meridol
|
||||
|
@ -678,6 +719,7 @@ Jerry Krinock
|
|||
Jerry Wu
|
||||
Jes Badwal
|
||||
Jesper Jensen
|
||||
Jesse Chisholm
|
||||
Jesse Noller
|
||||
Jesse Tan
|
||||
Jie He
|
||||
|
@ -706,10 +748,13 @@ Johannes Schindelin
|
|||
John Bradshaw
|
||||
John Coffey
|
||||
John Crow
|
||||
John David Anglin
|
||||
John DeHelian
|
||||
John Dennis
|
||||
John Dunn
|
||||
John E. Malmberg
|
||||
John Gardiner Myers
|
||||
John Hascall
|
||||
John Janssen
|
||||
John Joseph Bachir
|
||||
John Kelly
|
||||
|
@ -721,11 +766,13 @@ John Marino
|
|||
John Marshall
|
||||
John McGowan
|
||||
John P. McCaskey
|
||||
John Starks
|
||||
John Suprock
|
||||
John Wanghui
|
||||
John Wilkinson
|
||||
John-Mark Bell
|
||||
Johnny Luong
|
||||
Jon DeVree
|
||||
Jon Grubbs
|
||||
Jon Nelson
|
||||
Jon Sargeant
|
||||
|
@ -767,6 +814,7 @@ Julien Nabet
|
|||
Julien Royer
|
||||
Jun-ichiro itojun Hagino
|
||||
Jurij Smakov
|
||||
Juro Bystricky
|
||||
Justin Clift
|
||||
Justin Ehlert
|
||||
Justin Fletcher
|
||||
|
@ -786,6 +834,7 @@ Kang Lin
|
|||
Kang-Jin Lee
|
||||
Karl Moerder
|
||||
Karol Pietrzak
|
||||
Kartik Mahajan
|
||||
Kaspar Brand
|
||||
Katie Wang
|
||||
Kazuho Oku
|
||||
|
@ -804,6 +853,7 @@ Kevin Ji
|
|||
Kevin Lussier
|
||||
Kevin Reed
|
||||
Kevin Roth
|
||||
Kevin Smith
|
||||
Kim Minjoong
|
||||
Kim Rinnewitz
|
||||
Kim Vandry
|
||||
|
@ -817,6 +867,7 @@ Krishnendu Majumdar
|
|||
Krister Johansen
|
||||
Kristian Gunstone
|
||||
Kristian Köhntopp
|
||||
Kristiyan Tsaklev
|
||||
Kurt Fankhauser
|
||||
Kyle J. McKay
|
||||
Kyle L. Huff
|
||||
|
@ -837,6 +888,7 @@ Lars Torben Wilson
|
|||
Lau Hang Kin
|
||||
Laurent Rabret
|
||||
Lauri Kasanen
|
||||
Lawrence Wagerfield
|
||||
Legoff Vincent
|
||||
Lehel Bernadt
|
||||
Leif W
|
||||
|
@ -863,6 +915,7 @@ Loic Dachary
|
|||
Loren Kirkby
|
||||
Luan Cestari
|
||||
Luca Altea
|
||||
Luca Boccassi
|
||||
Lucas Adamski
|
||||
Lucas Pardue
|
||||
Ludek Finstrle
|
||||
|
@ -888,6 +941,7 @@ Mamoru Tasaka
|
|||
Mandy Wu
|
||||
Manfred Schwarb
|
||||
Manuel Massing
|
||||
Marc Aldorasi
|
||||
Marc Boucher
|
||||
Marc Deslauriers
|
||||
Marc Doughty
|
||||
|
@ -933,6 +987,7 @@ Martijn Koster
|
|||
Martin C. Martin
|
||||
Martin Drasar
|
||||
Martin Frodl
|
||||
Martin Galvan
|
||||
Martin Hager
|
||||
Martin Hedenfalk
|
||||
Martin Jansen
|
||||
|
@ -954,11 +1009,14 @@ Matt Kraai
|
|||
Matt Veenstra
|
||||
Matt Witherspoon
|
||||
Matt Wixson
|
||||
Matteo B.
|
||||
Matteo Rocco
|
||||
Matthew Blain
|
||||
Matthew Clarke
|
||||
Matthew Hall
|
||||
Matthew Kerwin
|
||||
Matthias Bolte
|
||||
Mattias Fornander
|
||||
Maurice Barnum
|
||||
Mauro Iorio
|
||||
Mauro Rappa
|
||||
|
@ -978,6 +1036,8 @@ Michael Calmer
|
|||
Michael Cronenworth
|
||||
Michael Curtis
|
||||
Michael Day
|
||||
Michael Felt
|
||||
Michael Gmelin
|
||||
Michael Goffioul
|
||||
Michael Jahn
|
||||
Michael Jerris
|
||||
|
@ -1005,6 +1065,7 @@ Miguel Diaz
|
|||
Mihai Ionescu
|
||||
Mikael Johansson
|
||||
Mikael Sennerholm
|
||||
Mikalai Ananenka
|
||||
Mike Bytnar
|
||||
Mike Crowe
|
||||
Mike Dobbs
|
||||
|
@ -1040,17 +1101,20 @@ Neal Poole
|
|||
Nehal J Wani
|
||||
Neil Bowers
|
||||
Neil Dunbar
|
||||
Neil Kolban
|
||||
Neil Spring
|
||||
Nic Roets
|
||||
Nicholas Maniscalco
|
||||
Nick Draffen
|
||||
Nick Gimbrone
|
||||
Nick Humfrey
|
||||
Nick Miyake
|
||||
Nick Zitzmann
|
||||
Nico Baggus
|
||||
Nicolas Berloquin
|
||||
Nicolas Croiset
|
||||
Nicolas François
|
||||
Nicolas Morey-Chaisemartin
|
||||
Niels van Tongeren
|
||||
Nikita Schmidt
|
||||
Nikitinskit Dmitriy
|
||||
|
@ -1072,6 +1136,7 @@ Ola Mork
|
|||
Olaf Flebbe
|
||||
Olaf Stüben
|
||||
Oleg Pudeyev
|
||||
Oli Kingshott
|
||||
Oliver Gondža
|
||||
Oliver Graute
|
||||
Oliver Kuckertz
|
||||
|
@ -1097,6 +1162,7 @@ Pat Ray
|
|||
Patrice Guerin
|
||||
Patricia Muscalu
|
||||
Patrick Bihan-Faou
|
||||
Patrick Dawson
|
||||
Patrick McManus
|
||||
Patrick Monnerat
|
||||
Patrick Rapin
|
||||
|
@ -1118,13 +1184,19 @@ Paul Oliver
|
|||
Paul Querna
|
||||
Paul Saab
|
||||
Pavel Cenek
|
||||
Pavel Gushchin
|
||||
Pavel Orehov
|
||||
Pavel Pavlov
|
||||
Pavel Raiskup
|
||||
Pavel Rochnyak
|
||||
Pavol Markovic
|
||||
Pawel A. Gajda
|
||||
Pawel Kierski
|
||||
Pedro Larroy
|
||||
Pedro Neves
|
||||
Per Lundberg
|
||||
Per Malmberg
|
||||
Pete Lomax
|
||||
Peter Bray
|
||||
Peter Forret
|
||||
Peter Frühberger
|
||||
|
@ -1132,10 +1204,12 @@ Peter Gal
|
|||
Peter Heuchert
|
||||
Peter Hjalmarsson
|
||||
Peter Korsgaard
|
||||
Peter Lamare
|
||||
Peter Lamberg
|
||||
Peter Laser
|
||||
Peter O'Gorman
|
||||
Peter Pentchev
|
||||
Peter Piekarski
|
||||
Peter Silva
|
||||
Peter Su
|
||||
Peter Sylvester
|
||||
|
@ -1148,6 +1222,7 @@ Peteris Krumins
|
|||
Petr Bahula
|
||||
Petr Novak
|
||||
Petr Pisar
|
||||
Petr Voytsik
|
||||
Phil Blundell
|
||||
Phil Crump
|
||||
Phil Karn
|
||||
|
@ -1191,6 +1266,7 @@ Ralf S. Engelschall
|
|||
Ralph Beckmann
|
||||
Ralph Mitchell
|
||||
Ramana Mokkapati
|
||||
Randall S. Becker
|
||||
Randy Armstrong
|
||||
Randy McMurchy
|
||||
Ravi Pratap
|
||||
|
@ -1215,6 +1291,7 @@ Ricardo Cadime
|
|||
Rich Burridge
|
||||
Rich Gray
|
||||
Rich Rauenzahn
|
||||
Richard Alcock
|
||||
Richard Archer
|
||||
Richard Atterer
|
||||
Richard Bramante
|
||||
|
@ -1234,9 +1311,11 @@ Rick Jones
|
|||
Rick Richardson
|
||||
Ricki Hirner
|
||||
Rider Linden
|
||||
Rob Cotrone
|
||||
Rob Crittenden
|
||||
Rob Davies
|
||||
Rob Jones
|
||||
Rob Sanders
|
||||
Rob Stanzel
|
||||
Rob Ward
|
||||
Robert A. Monat
|
||||
|
@ -1244,6 +1323,7 @@ Robert B. Harris
|
|||
Robert D. Young
|
||||
Robert Foreman
|
||||
Robert Iakobashvili
|
||||
Robert Kolcun
|
||||
Robert Olson
|
||||
Robert Schumann
|
||||
Robert Weaver
|
||||
|
@ -1279,9 +1359,12 @@ Ryan Chan
|
|||
Ryan Nelson
|
||||
Ryan Schmidt
|
||||
Ryan Scott
|
||||
Ryan Winograd
|
||||
Ryuichi KAWAMATA
|
||||
Rémy Léone
|
||||
S. Moonesamy
|
||||
SBKarr on github
|
||||
Salah-Eddin Shaban
|
||||
Salvador Dávila
|
||||
Salvatore Sorrentino
|
||||
Sam Deane
|
||||
|
@ -1308,6 +1391,7 @@ Scott Davis
|
|||
Scott McCreary
|
||||
Sean Boudreau
|
||||
Sean Burford
|
||||
Sean MacLennan
|
||||
Sebastian Mundry
|
||||
Sebastian Pohlschmidt
|
||||
Sebastian Rasmussen
|
||||
|
@ -1345,6 +1429,7 @@ Spork Schivago
|
|||
Stadler Stephan
|
||||
Stan van de Burgt
|
||||
Stanislav Ivochkin
|
||||
Stanislav Zidek
|
||||
Stefan Bühler
|
||||
Stefan Eissing
|
||||
Stefan Esser
|
||||
|
@ -1355,6 +1440,7 @@ Stefan Teleman
|
|||
Stefan Tomanek
|
||||
Stefan Ulrich
|
||||
Steinar H. Gunderson
|
||||
Stepan Broz
|
||||
Stephan Bergmann
|
||||
Stephen Brokenshire
|
||||
Stephen Collyer
|
||||
|
@ -1404,9 +1490,11 @@ Thomas J. Moore
|
|||
Thomas Klausner
|
||||
Thomas L. Shinnick
|
||||
Thomas Lopatic
|
||||
Thomas Petazzoni
|
||||
Thomas Ruecker
|
||||
Thomas Schwinge
|
||||
Thomas Tonino
|
||||
Thomas van Hesteren
|
||||
Thorsten Schöning
|
||||
Tiit Pikma
|
||||
Till Maas
|
||||
|
@ -1424,6 +1512,7 @@ Tim Stack
|
|||
Tim Starling
|
||||
Timo Sirainen
|
||||
Timotej Lazar
|
||||
Timothe Litt
|
||||
Timothy Polich
|
||||
Tinus van den Berg
|
||||
Tobias Markus
|
||||
|
@ -1442,12 +1531,14 @@ Tom Mattison
|
|||
Tom Moers
|
||||
Tom Mueller
|
||||
Tom Regner
|
||||
Tom Seddon
|
||||
Tom Sparrow
|
||||
Tom Wright
|
||||
Tom Zerucha
|
||||
Tomas Hoger
|
||||
Tomas Jakobsson
|
||||
Tomas Mlcoch
|
||||
Tomas Mraz
|
||||
Tomas Pospisek
|
||||
Tomas Szepe
|
||||
Tomas Tomecek
|
||||
|
@ -1520,7 +1611,9 @@ William Ahern
|
|||
Wojciech Zwiefka
|
||||
Wouter Van Rooy
|
||||
Wu Yongzheng
|
||||
Wyatt O'Day
|
||||
Xavier Bouchoux
|
||||
XhstormR on github
|
||||
Xiangbin Li
|
||||
Yaakov Selkowitz
|
||||
Yamada Yasuharu
|
||||
|
@ -1538,19 +1631,33 @@ Yun SangHo
|
|||
Yuriy Sosov
|
||||
Yves Arrouye
|
||||
Yves Lejeune
|
||||
Zachary Seguin
|
||||
Zdenek Pavlas
|
||||
Zekun Ni
|
||||
Zenju on github
|
||||
Zhouyihai Ding
|
||||
Zmey Petroff
|
||||
Zvi Har'El
|
||||
afrind on github
|
||||
ahodesuka on github
|
||||
arainchik on github
|
||||
asavah on github
|
||||
baumanj on github
|
||||
bsammon on github
|
||||
canavan at github
|
||||
canavan on github
|
||||
cbartl on github
|
||||
cmfrolick on github
|
||||
destman on github
|
||||
dkjjr89 on github
|
||||
dpull on github
|
||||
eXeC64 on github
|
||||
jonrumsey at github
|
||||
elelel on github
|
||||
guitared on github
|
||||
hsiao yi
|
||||
imilli on github
|
||||
jonrumsey on github
|
||||
joshhe on github
|
||||
jungle-boogie on github
|
||||
jveazey on github
|
||||
ka7 on github
|
||||
kreshano on github
|
||||
|
@ -1560,18 +1667,24 @@ madblobfish on github
|
|||
marc-groundctl on github
|
||||
mccormickt12 on github
|
||||
mkzero on github
|
||||
moohoorama on github
|
||||
neex on github
|
||||
neheb on github
|
||||
nk
|
||||
nopjmp on github
|
||||
olesteban on github
|
||||
omau on github
|
||||
ovidiu-benea on github
|
||||
paulharris on github
|
||||
silveja1 on github
|
||||
stootill at github
|
||||
stootill on github
|
||||
swalkaus at yahoo.com
|
||||
tarek112 on github
|
||||
tommink[at]post.pl
|
||||
vanillajonathan on github
|
||||
wmsch on github
|
||||
wyattoday at github
|
||||
wyattoday on github
|
||||
youngchopin on github
|
||||
zelinchen on github
|
||||
İsmail Dönmez
|
||||
Štefan Kremeň
|
||||
|
|
162
curl/docs/TODO
162
curl/docs/TODO
|
@ -25,8 +25,10 @@
|
|||
1.7 Detect when called from within callbacks
|
||||
1.8 CURLOPT_RESOLVE for any port number
|
||||
1.9 Cache negative name resolves
|
||||
1.10 auto-detect proxy
|
||||
1.11 minimize dependencies with dynamically loaded modules
|
||||
1.12 have form functions use CURL handle argument
|
||||
1.12 updated DNS server while running
|
||||
1.13 DNS-over-HTTPS
|
||||
1.14 Typesafe curl_easy_setopt()
|
||||
1.15 Monitor connections in the connection pool
|
||||
1.16 Try to URL encode given URL
|
||||
|
@ -37,7 +39,7 @@
|
|||
1.21 API for URL parsing/splitting
|
||||
1.23 Offer API to flush the connection pool
|
||||
1.24 TCP Fast Open for windows
|
||||
1.25 Remove the generated include file
|
||||
1.25 Expose tried IP addresses that failed
|
||||
|
||||
2. libcurl - multi interface
|
||||
2.1 More non-blocking
|
||||
|
@ -57,6 +59,7 @@
|
|||
4.5 ASCII support
|
||||
4.6 GSSAPI via Windows SSPI
|
||||
4.7 STAT for LIST without data connection
|
||||
4.8 Option to ignore private IP addresses in PASV response
|
||||
|
||||
5. HTTP
|
||||
5.1 Better persistency for HTTP 1.0
|
||||
|
@ -65,12 +68,8 @@
|
|||
5.4 HTTP Digest using SHA-256
|
||||
5.5 auth= in URLs
|
||||
5.6 Refuse "downgrade" redirects
|
||||
5.7 Brotli compression
|
||||
5.8 QUIC
|
||||
5.9 Improve formpost API
|
||||
5.10 Leave secure cookies alone
|
||||
5.11 Chunked transfer multipart formpost
|
||||
5.12 OPTIONS *
|
||||
5.7 QUIC
|
||||
5.8 Leave secure cookies alone
|
||||
|
||||
6. TELNET
|
||||
6.1 ditch stdin
|
||||
|
@ -133,15 +132,14 @@
|
|||
17.1 Multiplexing
|
||||
17.2 SFTP performance
|
||||
17.3 Support better than MD5 hostkey hash
|
||||
17.4 Support CURLOPT_PREQUOTE
|
||||
|
||||
18. Command line tool
|
||||
18.1 sync
|
||||
18.2 glob posts
|
||||
18.3 prevent file overwriting
|
||||
18.4 simultaneous parallel transfers
|
||||
18.5 provide formpost headers
|
||||
18.6 warning when setting an option
|
||||
18.7 warning when sending binary output to terminal
|
||||
18.8 offer color-coded HTTP header output
|
||||
18.9 Choose the name of file in braces for complex URLs
|
||||
18.10 improve how curl works in a windows console window
|
||||
|
@ -211,7 +209,7 @@
|
|||
1.5 get rid of PATH_MAX
|
||||
|
||||
Having code use and rely on PATH_MAX is not nice:
|
||||
http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html
|
||||
https://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html
|
||||
|
||||
Currently the SSH based code uses it a bit, but to remove PATH_MAX from there
|
||||
we need libssh2 to properly tell us when we pass in a too small buffer and
|
||||
|
@ -257,6 +255,18 @@
|
|||
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.10 auto-detect proxy
|
||||
|
||||
libcurl could be made to detect the system proxy setup automatically and use
|
||||
that. On Windows, macOS and Linux desktops for example.
|
||||
|
||||
The pull-request to use libproxy for this was deferred due to doubts on the
|
||||
reliability of the dependency and how to use it:
|
||||
https://github.com/curl/curl/pull/977
|
||||
|
||||
libdetectproxy is a (C++) library for detecting the proxy on Windows
|
||||
https://github.com/paulharris/libdetectproxy
|
||||
|
||||
1.11 minimize dependencies with dynamically loaded modules
|
||||
|
||||
We can create a system with loadable modules/plug-ins, where these modules
|
||||
|
@ -265,17 +275,24 @@
|
|||
app/invoke/used protocols would be necessary to load. See
|
||||
https://github.com/curl/curl/issues/349
|
||||
|
||||
1.12 have form functions use CURL handle argument
|
||||
1.12 updated DNS server while running
|
||||
|
||||
curl_formadd() and curl_formget() both currently have no CURL handle
|
||||
argument, but both can use a callback that is set in the easy handle, and
|
||||
thus curl_formget() with callback cannot function without first having
|
||||
curl_easy_perform() (or similar) called - which is hard to grasp and a design
|
||||
mistake.
|
||||
If /etc/resolv.conf gets updated while a program using libcurl is running, it
|
||||
is may cause name resolves to fail unless res_init() is called. We should
|
||||
consider calling res_init() + retry once unconditionally on all name resolve
|
||||
failures to mitigate against this. Firefox works like that. Note that Windows
|
||||
doesn't have res_init() or an alternative.
|
||||
|
||||
The curl_formadd() design can probably also be reconsidered to make it easier
|
||||
to use and less error-prone. Probably easiest by splitting it into several
|
||||
function calls.
|
||||
https://github.com/curl/curl/issues/2251
|
||||
|
||||
1.13 DNS-over-HTTPS
|
||||
|
||||
By adding support for DNS-over-HTTPS curl could resolve host names using a
|
||||
totally separate name server than the standard system resolver, while at the
|
||||
same time doing so over a communication channel that enhances privacy and
|
||||
security.
|
||||
|
||||
https://github.com/curl/curl/wiki/DNS-over-HTTPS
|
||||
|
||||
1.14 Typesafe curl_easy_setopt()
|
||||
|
||||
|
@ -369,32 +386,12 @@
|
|||
Mac OS. Windows supports TCP Fast Open starting with Windows 10, version 1607
|
||||
and we should add support for it.
|
||||
|
||||
1.25 Remove the generated include file
|
||||
1.25 Expose tried IP addresses that failed
|
||||
|
||||
When curl and libcurl are built, one of the public include files are
|
||||
generated and is populated with a set of defines that are derevid from sizes
|
||||
and constants for the particular target architecture that build is made. For
|
||||
platforms that can select between 32 bit and 64 bit at build time, this
|
||||
approach makes the libcurl build only create a set of public headers suitable
|
||||
for one of the architectures and not both. If you build libcurl for such a
|
||||
platform and you want to allow applications to get built using either 32/64
|
||||
version, you must generate the libcurl headers once for each setup and you
|
||||
must then add a replacement curl header that would itself select the correct
|
||||
32 or 64 bit specific header as necessary.
|
||||
|
||||
Your curl/curl.h alternative could then look like (replace with suitable CPP
|
||||
variable to check):
|
||||
|
||||
#ifdef ARCH_32bit
|
||||
#include <curl32/curl.h>
|
||||
#else /* ARCH_64bit */
|
||||
#include <curl64/curl.h>
|
||||
#endif
|
||||
|
||||
A fix would either (A) fix the 32/64 setup automatically or even better (B)
|
||||
work away the architecture specific defines from the headers so that they can
|
||||
be used for all architectures independently of what libcurl was built for.
|
||||
When libcurl fails to connect to a host, it should be able to offer the
|
||||
application the list of IP addresses that were used in the attempt.
|
||||
|
||||
https://github.com/curl/curl/issues/2126
|
||||
|
||||
2. libcurl - multi interface
|
||||
|
||||
|
@ -404,7 +401,6 @@
|
|||
EWOULDBLOCK or similar. Blocking cases include:
|
||||
|
||||
- Name resolves on non-windows unless c-ares or the threaded resolver is used
|
||||
- HTTP proxy CONNECT operations
|
||||
- SOCKS proxy handshakes
|
||||
- file:// transfers
|
||||
- TELNET transfers
|
||||
|
@ -488,12 +484,18 @@ support for GSSAPI authentication via Windows SSPI.
|
|||
|
||||
4.7 STAT for LIST without data connection
|
||||
|
||||
Some FTP servers allow STAT for listing directories instead of using LIST, and
|
||||
the response is then sent over the control connection instead of as the
|
||||
Some FTP servers allow STAT for listing directories instead of using LIST,
|
||||
and the response is then sent over the control connection instead of as the
|
||||
otherwise usedw data connection: http://www.nsftools.com/tips/RawFTP.htm#STAT
|
||||
|
||||
This is not detailed in any FTP specification.
|
||||
|
||||
4.8 Option to ignore private IP addresses in PASV response
|
||||
|
||||
Some servers respond with and some other FTP client implementations can
|
||||
ignore private (RFC 1918 style) IP addresses when received in PASV responses.
|
||||
To consider for libcurl as well. See https://github.com/curl/curl/issues/1455
|
||||
|
||||
5. HTTP
|
||||
|
||||
5.1 Better persistency for HTTP 1.0
|
||||
|
@ -547,13 +549,7 @@ This is not detailed in any FTP specification.
|
|||
Consider a way to tell curl to refuse to "downgrade" protocol with a redirect
|
||||
and/or possibly a bit that refuses redirect to change protocol completely.
|
||||
|
||||
5.7 Brotli compression
|
||||
|
||||
Brotli compression performs better than gzip and is being implemented by
|
||||
browsers and servers widely. The algorithm: https://github.com/google/brotli
|
||||
The Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=366559
|
||||
|
||||
5.8 QUIC
|
||||
5.7 QUIC
|
||||
|
||||
The standardization process of QUIC has been taken to the IETF and can be
|
||||
followed on the [IETF QUIC Mailing
|
||||
|
@ -563,46 +559,13 @@ This is not detailed in any FTP specification.
|
|||
implemented. This, to allow other projects to benefit from the work and to
|
||||
thus broaden the interest and chance of others to participate.
|
||||
|
||||
5.9 Improve formpost API
|
||||
|
||||
Revamp the formpost API and making something that is easier to use and
|
||||
understand:
|
||||
|
||||
https://github.com/curl/curl/wiki/formpost-API-redesigned
|
||||
|
||||
5.10 Leave secure cookies alone
|
||||
5.8 Leave secure cookies alone
|
||||
|
||||
Non-secure origins (HTTP sites) should not be allowed to set or modify
|
||||
cookies with the 'secure' property:
|
||||
|
||||
https://tools.ietf.org/html/draft-ietf-httpbis-cookie-alone-01
|
||||
|
||||
5.11 Chunked transfer multipart formpost
|
||||
|
||||
For a case where the file is being made during the upload is progressing
|
||||
(like passed on stdin to the curl tool), we cannot know the size before-hand
|
||||
and we rather not read the entire thing into memory before it can start the
|
||||
upload.
|
||||
|
||||
https://github.com/curl/curl/issues/1139
|
||||
|
||||
5.12 OPTIONS *
|
||||
|
||||
HTTP defines an OPTIONS method that can be sent with an asterisk option like
|
||||
"OPTIONS *" to ask about options from the server and not a specific URL
|
||||
resource. https://tools.ietf.org/html/rfc7230#section-5.3.4
|
||||
|
||||
libcurl as it currently works will always sent HTTP methods with a path that
|
||||
starts with a slash so there's no way for an application to send a proper
|
||||
"OPTIONS *" using libcurl. This should be fixed.
|
||||
|
||||
I can't think of any other non-slash paths we should support so it will
|
||||
probably make sense to add a new boolean option for issuign an "OPTIONS *"
|
||||
request. CURLOPT_OPTIONSASTERISK perhaps (and a corresponding command line
|
||||
option)?
|
||||
|
||||
See https://github.com/curl/curl/issues/1280
|
||||
|
||||
|
||||
6. TELNET
|
||||
|
||||
|
@ -906,6 +869,10 @@ that doesn't exist on the server, just like --ftp-create-dirs.
|
|||
SHA-1 is also being deprecated these days so we should consider workign with
|
||||
libssh2 to instead offer support for SHA-256 or similar.
|
||||
|
||||
17.4 Support CURLOPT_PREQUOTE
|
||||
|
||||
The two other QUOTE options are supported for SFTP, but this was left out for
|
||||
unknown reasons!
|
||||
|
||||
18. Command line tool
|
||||
|
||||
|
@ -941,31 +908,12 @@ that doesn't exist on the server, just like --ftp-create-dirs.
|
|||
Using the multi interface would also allow properly using parallel transfers
|
||||
with HTTP/2 and supporting HTTP/2 server push from the command line.
|
||||
|
||||
18.5 provide formpost headers
|
||||
|
||||
Extending the capabilities of the multipart formposting. How about leaving
|
||||
the ';type=foo' syntax as it is and adding an extra tag (headers) which
|
||||
works like this: curl -F "coolfiles=@fil1.txt;headers=@fil1.hdr" where
|
||||
fil1.hdr contains extra headers like
|
||||
|
||||
Content-Type: text/plain; charset=KOI8-R"
|
||||
Content-Transfer-Encoding: base64
|
||||
X-User-Comment: Please don't use browser specific HTML code
|
||||
|
||||
which should overwrite the program reasonable defaults (plain/text,
|
||||
8bit...)
|
||||
|
||||
18.6 warning when setting an option
|
||||
|
||||
Display a warning when libcurl returns an error when setting an option.
|
||||
This can be useful to tell when support for a particular feature hasn't been
|
||||
compiled into the library.
|
||||
|
||||
18.7 warning when sending binary output to terminal
|
||||
|
||||
Provide a way that prompts the user for confirmation before binary data is
|
||||
sent to the terminal, much in the style 'less' does it.
|
||||
|
||||
18.8 offer color-coded HTTP header output
|
||||
|
||||
By offering different color output on the header name and the header
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -135,8 +135,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
|
||||
$(top_builddir)/include/curl/curlbuild.h
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
|
@ -178,8 +177,11 @@ CCDEPMODE = @CCDEPMODE@
|
|||
CFLAGS = @CFLAGS@
|
||||
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
|
||||
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
|
||||
CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@
|
||||
CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@
|
||||
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
|
||||
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
|
||||
CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@
|
||||
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
|
@ -205,7 +207,9 @@ CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
|
|||
CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@
|
||||
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
|
||||
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
|
||||
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
|
@ -222,6 +226,7 @@ FGREP = @FGREP@
|
|||
GCOV = @GCOV@
|
||||
GENHTML = @GENHTML@
|
||||
GREP = @GREP@
|
||||
HAVE_BROTLI = @HAVE_BROTLI@
|
||||
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
|
||||
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
|
||||
HAVE_LIBZ = @HAVE_LIBZ@
|
||||
|
@ -279,6 +284,7 @@ REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
|
|||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SSL_BACKENDS = @SSL_BACKENDS@
|
||||
SSL_ENABLED = @SSL_ENABLED@
|
||||
SSL_LIBS = @SSL_LIBS@
|
||||
STRIP = @STRIP@
|
||||
|
@ -291,6 +297,7 @@ USE_DARWINSSL = @USE_DARWINSSL@
|
|||
USE_GNUTLS = @USE_GNUTLS@
|
||||
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
|
||||
USE_LIBRTMP = @USE_LIBRTMP@
|
||||
USE_LIBSSH = @USE_LIBSSH@
|
||||
USE_LIBSSH2 = @USE_LIBSSH2@
|
||||
USE_MBEDTLS = @USE_MBEDTLS@
|
||||
USE_NGHTTP2 = @USE_NGHTTP2@
|
||||
|
@ -362,7 +369,8 @@ 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 \
|
||||
cert-status.d cert-type.d ciphers.d compressed.d compressed-ssh.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 \
|
||||
|
@ -394,6 +402,7 @@ DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cer
|
|||
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-basic.d socks5-gssapi.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 \
|
||||
|
@ -403,7 +412,7 @@ DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cer
|
|||
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
|
||||
verbose.d version.d write-out.d xattr.d request-target.d
|
||||
|
||||
OTHERPAGES = page-footer page-header
|
||||
EXTRA_DIST = $(DPAGES) MANPAGE.md gen.pl $(OTHERPAGES) CMakeLists.txt
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
# 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 \
|
||||
cert-status.d cert-type.d ciphers.d compressed.d compressed-ssh.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 \
|
||||
|
@ -33,6 +34,7 @@ DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cer
|
|||
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-basic.d socks5-gssapi.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 \
|
||||
|
@ -42,6 +44,6 @@ DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cer
|
|||
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
|
||||
verbose.d version.d write-out.d xattr.d request-target.d
|
||||
|
||||
OTHERPAGES = page-footer page-header
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Long: cacert
|
||||
Arg: <CA certificate>
|
||||
Arg: <file>
|
||||
Help: CA certificate to verify peer against
|
||||
Protocols: TLS
|
||||
---
|
||||
|
|
7
curl/docs/cmdline-opts/compressed-ssh.d
Normal file
7
curl/docs/cmdline-opts/compressed-ssh.d
Normal file
|
@ -0,0 +1,7 @@
|
|||
Long: compressed-ssh
|
||||
Help: Enable SSH compression
|
||||
Protocols: SCP SFTP
|
||||
Added: 7.56.0
|
||||
---
|
||||
Enables built-in SSH compression.
|
||||
This is a request, not an order; the server may or may not do it.
|
|
@ -5,14 +5,17 @@ Added: 7.49.0
|
|||
See-also: resolve header
|
||||
---
|
||||
|
||||
For a request to the given HOST:PORT pair, connect to
|
||||
CONNECT-TO-HOST:CONNECT-TO-PORT instead. This option is suitable to direct
|
||||
requests at a specific server, e.g. at a specific cluster node in a cluster of
|
||||
servers. This option is only used to establish the network connection. It
|
||||
does NOT affect the hostname/port that is used for TLS/SSL (e.g. SNI,
|
||||
certificate verification) or for the application protocols. "host" and "port"
|
||||
may be the empty string, meaning "any host/port". "connect-to-host" and
|
||||
"connect-to-port" may also be the empty string, meaning "use the request's
|
||||
original host/port".
|
||||
For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead.
|
||||
This option is suitable to direct requests at a specific server, e.g. at a
|
||||
specific cluster node in a cluster of servers. This option is only used to
|
||||
establish the network connection. It does NOT affect the hostname/port that is
|
||||
used for TLS/SSL (e.g. SNI, certificate verification) or for the application
|
||||
protocols. "HOST1" and "PORT1" may be the empty string, meaning "any
|
||||
host/port". "HOST2" and "PORT2" may also be the empty string, meaning "use the
|
||||
request's original host/port".
|
||||
|
||||
A "host" specified to this option is compared as a string, so it needs to
|
||||
match the name used in request URL. It can be either numerical such as
|
||||
"127.0.0.1" or the full host name such as "example.org".
|
||||
|
||||
This option can be used many times to add many connect rules.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Long: form-string
|
||||
Help: Specify HTTP multipart POST data
|
||||
Protocols: HTTP
|
||||
Help: Specify multipart MIME data
|
||||
Protocols: HTTP SMTP IMAP
|
||||
Arg: <name=string>
|
||||
See-also: form
|
||||
---
|
||||
|
|
|
@ -1,28 +1,36 @@
|
|||
Long: form
|
||||
Short: F
|
||||
Arg: <name=content>
|
||||
Help: Specify HTTP multipart POST data
|
||||
Protocols: HTTP
|
||||
Help: Specify multipart MIME data
|
||||
Protocols: HTTP SMTP IMAP
|
||||
Mutexed: data head upload
|
||||
---
|
||||
This lets curl emulate a filled-in form in which a user has pressed the submit
|
||||
button. This causes curl to POST data using the Content-Type
|
||||
multipart/form-data according to RFC 2388. This enables uploading of binary
|
||||
For HTTP protocol family, this lets curl emulate a filled-in form in which a
|
||||
user has pressed the submit button. This causes curl to POST data using the
|
||||
Content-Type multipart/form-data according to RFC 2388.
|
||||
|
||||
For SMTP and IMAP protocols, this is the mean to compose a multipart mail
|
||||
message to transmit.
|
||||
|
||||
This enables uploading of binary
|
||||
files etc. To force the 'content' part to be a file, prefix the file name with
|
||||
an @ sign. To just get the content part from a file, prefix the file name with
|
||||
the symbol <. The difference between @ and < is then that @ makes a file get
|
||||
attached in the post as a file upload, while the < makes a text field and just
|
||||
get the contents for that text field from a file.
|
||||
|
||||
Example: to send an image to a server, where \&'profile' is the name of the
|
||||
form-field to which portrait.jpg will be the input:
|
||||
Example: to send an image to an HTTP server, where \&'profile' is the name of
|
||||
the form-field to which portrait.jpg will be the input:
|
||||
|
||||
curl -F profile=@portrait.jpg https://example.com/upload.cgi
|
||||
|
||||
To read content from stdin instead of a file, use - as the filename. This goes
|
||||
for both @ and < constructs. Unfortunately it does not support reading the
|
||||
file from a named pipe or similar, as it needs the full size before the
|
||||
transfer starts.
|
||||
for both @ and < constructs. If stdin is not attached to a regular file, it is
|
||||
buffered first to determine its size and allow a possible resend. Defining a
|
||||
part's data from a named non-regular file (such as a named pipe or similar) is
|
||||
unfortunately not subject to buffering and will be effectively read at
|
||||
transmission time; since the full size is unknown before the transfer starts,
|
||||
data is sent as chunks by HTTP and rejected by IMAP.
|
||||
|
||||
You can also tell curl what Content-Type to use by using 'type=', in a manner
|
||||
similar to:
|
||||
|
@ -49,6 +57,72 @@ or
|
|||
Note that if a filename/path is quoted by double-quotes, any double-quote
|
||||
or backslash within the filename must be escaped by backslash.
|
||||
|
||||
Quoting must also be applied to non-file data if it contains semicolons,
|
||||
leading/trailing spaces or leading double quotes:
|
||||
|
||||
curl -F 'colors="red; green; blue";type=text/x-myapp' example.com
|
||||
|
||||
You can add custom headers to the field by setting headers=, like
|
||||
|
||||
curl -F "submit=OK;headers=\\"X-submit-type: OK\\"" example.com
|
||||
|
||||
or
|
||||
|
||||
curl -F "submit=OK;headers=@headerfile" example.com
|
||||
|
||||
The headers= keyword may appear more that once and above notes about quoting
|
||||
apply. When headers are read from a file, Empty lines and lines starting
|
||||
with '#' are comments and ignored; each header can be folded by splitting
|
||||
between two words and starting the continuation line with a space; embedded
|
||||
carriage-returns and trailing spaces are stripped.
|
||||
Here is an example of a header file contents:
|
||||
|
||||
# This file contain two headers.
|
||||
.br
|
||||
X-header-1: this is a header
|
||||
|
||||
# The following header is folded.
|
||||
.br
|
||||
X-header-2: this is
|
||||
.br
|
||||
another header
|
||||
|
||||
|
||||
To support sending multipart mail messages, the syntax is extended as follows:
|
||||
.br
|
||||
- name can be omitted: the equal sign is the first character of the argument,
|
||||
.br
|
||||
- if data starts with '(', this signals to start a new multipart: it can be
|
||||
followed by a content type specification.
|
||||
.br
|
||||
- a multipart can be terminated with a '=)' argument.
|
||||
|
||||
Example: the following command sends an SMTP mime e-mail consisting in an
|
||||
inline part in two alternative formats: plain text and HTML. It attaches a
|
||||
text file:
|
||||
|
||||
curl -F '=(;type=multipart/alternative' \\
|
||||
.br
|
||||
-F '=plain text message' \\
|
||||
.br
|
||||
-F '= <body>HTML message</body>;type=text/html' \\
|
||||
.br
|
||||
-F '=)' -F '=@textfile.txt' ... smtp://example.com
|
||||
|
||||
Data can be encoded for transfer using encoder=. Available encodings are
|
||||
\fIbinary\fP and \fI8bit\fP that do nothing else than adding the corresponding
|
||||
Content-Transfer-Encoding header, \fI7bit\fP that only rejects 8-bit characters
|
||||
with a transfer error, \fIquoted-printable\fP and \fIbase64\fP that encodes
|
||||
data according to the corresponding schemes, limiting lines length to
|
||||
76 characters.
|
||||
|
||||
Example: send multipart mail with a quoted-printable text message and a
|
||||
base64 attached file:
|
||||
|
||||
curl -F '=text message;encoder=quoted-printable' \\
|
||||
.br
|
||||
-F '=@localfile;encoder=base64' ... smtp://example.com
|
||||
|
||||
See further examples and details in the MANUAL.
|
||||
|
||||
This option can be used multiple times.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/perl
|
||||
#!/usr/bin/env perl
|
||||
|
||||
=begin comment
|
||||
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
Long: header
|
||||
Short: H
|
||||
Arg: <header>
|
||||
Help: Pass custom header LINE to server
|
||||
Arg: <header/@file>
|
||||
Help: Pass custom header(s) to server
|
||||
Protocols: HTTP
|
||||
---
|
||||
|
||||
Extra header to include in the request when sending HTTP to a server. You may
|
||||
specify any number of extra headers. Note that if you should add a custom
|
||||
header that has the same name as one of the internal ones curl would use, your
|
||||
|
@ -21,6 +20,10 @@ end-of-line marker, you should thus \fBnot\fP add that as a part of the header
|
|||
content: do not add newlines or carriage returns, they will only mess things up
|
||||
for you.
|
||||
|
||||
Starting in 7.55.0, this option can take an argument in @filename style, which
|
||||
then adds a header for each line in the input file. Using @- will make curl
|
||||
read the header file from stdin.
|
||||
|
||||
See also the --user-agent and --referer options.
|
||||
|
||||
Starting in 7.37.0, you need --proxy-header to send custom headers intended
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
Long: include
|
||||
Short: i
|
||||
Help: Include protocol headers in the output
|
||||
Help: Include protocol response headers in the output
|
||||
See-also: verbose
|
||||
---
|
||||
Include the HTTP-header in the output. The HTTP-header includes things like
|
||||
server-name, date of the document, HTTP-version and more...
|
||||
Include the HTTP response headers in the output. The HTTP response headers can
|
||||
include things like server name, cookies, date of the document, HTTP version
|
||||
and more...
|
||||
|
||||
To view the request headers, consider the --verbose option.
|
||||
|
|
|
@ -10,3 +10,7 @@ name, IP address or host name. An example could look like:
|
|||
curl --interface eth0:1 https://www.example.com/
|
||||
|
||||
If this option is used several times, the last one will be used.
|
||||
|
||||
On Linux it can be used to specify a VRF, but the binary needs to either
|
||||
have CAP_NET_RAW or to be ran as root. More information about Linux VRF:
|
||||
https://www.kernel.org/doc/Documentation/networking/vrf.txt
|
||||
|
|
|
@ -8,7 +8,7 @@ your transfer not to use your entire bandwidth. To make it slower than it
|
|||
otherwise would be.
|
||||
|
||||
The given speed is measured in bytes/second, unless a suffix is appended.
|
||||
Appending 'k' or 'K' will count the number as kilobytes, 'm' or M' makes it
|
||||
Appending 'k' or 'K' will count the number as kilobytes, 'm' or 'M' makes it
|
||||
megabytes, while 'g' or 'G' makes it gigabytes. Examples: 200K, 3m and 1G.
|
||||
|
||||
If you also use the --speed-limit option, that option will take precedence and
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Long: mail-rcpt
|
||||
Arg: <address>
|
||||
Help: Mail from this address
|
||||
Help: Mail to this address
|
||||
Protocols: SMTP
|
||||
Added: 7.20.0
|
||||
---
|
||||
|
|
|
@ -7,6 +7,10 @@ Specify the maximum size (in bytes) of a file to download. If the file
|
|||
requested is larger than this value, the transfer will not start and curl will
|
||||
return with exit code 63.
|
||||
|
||||
A size modifier may be used. For example, Appending 'k' or 'K' will count the
|
||||
number as kilobytes, 'm' or 'M' makes it megabytes, while 'g' or 'G' makes it
|
||||
gigabytes. Examples: 200K, 3m and 1G. (Added in 7.58.0)
|
||||
|
||||
\fBNOTE:\fP The file size is not always known prior to download, and for such
|
||||
files this option has no effect even if the file transfer ends up being larger
|
||||
than this given limit. This concerns both FTP and HTTP transfers.
|
||||
|
|
|
@ -41,6 +41,10 @@ If no protocol is specified in the proxy string or if the string doesn't match
|
|||
a supported one, the proxy will be treated as an HTTP proxy.
|
||||
|
||||
The supported proxy protocol prefixes are as follows:
|
||||
.IP "http://"
|
||||
Makes it use it as a HTTP proxy. The default if no scheme prefix is used.
|
||||
.IP "https://"
|
||||
Makes it treated as a \fBHTTPS\fP proxy.
|
||||
.IP "socks4://"
|
||||
Makes it the equivalent of --socks4
|
||||
.IP "socks4a://"
|
||||
|
@ -231,6 +235,10 @@ FTP chunk callback reported error
|
|||
No connection available, the session will be queued
|
||||
.IP 90
|
||||
SSL public key does not matched pinned public key
|
||||
.IP 91
|
||||
Invalid SSL certificate status.
|
||||
.IP 92
|
||||
Stream error in HTTP/2 framing layer.
|
||||
.IP XX
|
||||
More error codes will appear here in future releases. The existing ones
|
||||
are meant to never change.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Long: proxy-header
|
||||
Arg: <header>
|
||||
Help: Pass custom header LINE to proxy
|
||||
Arg: <header/@file>
|
||||
Help: Pass custom header(s) to proxy
|
||||
Protocols: HTTP
|
||||
Added: 7.37.0
|
||||
---
|
||||
|
@ -17,4 +17,8 @@ up for you.
|
|||
Headers specified with this option will not be included in requests that curl
|
||||
knows will not be sent to a proxy.
|
||||
|
||||
Starting in 7.55.0, this option can take an argument in @filename style, which
|
||||
then adds a header for each line in the input file. Using @- will make curl
|
||||
read the header file from stdin.
|
||||
|
||||
This option can be used multiple times to add/replace/remove multiple headers.
|
||||
|
|
9
curl/docs/cmdline-opts/request-target.d
Normal file
9
curl/docs/cmdline-opts/request-target.d
Normal file
|
@ -0,0 +1,9 @@
|
|||
Long: request-target
|
||||
Help: Specify the target for this request
|
||||
Protocols: HTTP
|
||||
Added: 7.55.0
|
||||
---
|
||||
Tells curl to use an alternative "target" (path) instead of using the path as
|
||||
provided in the URL. Particularly useful when wanting to issue HTTP requests
|
||||
without leading slash or other data that doesn't follow the regular URL
|
||||
pattern, like "OPTIONS *".
|
|
@ -14,4 +14,6 @@ different ports.
|
|||
The provided address set by this option will be used even if --ipv4 or --ipv6
|
||||
is set to make curl use another IP version.
|
||||
|
||||
Support for providing the IP address within [brackets] was added in 7.57.0.
|
||||
|
||||
This option can be used many times to add many host names to resolve.
|
||||
|
|
7
curl/docs/cmdline-opts/socks5-basic.d
Normal file
7
curl/docs/cmdline-opts/socks5-basic.d
Normal file
|
@ -0,0 +1,7 @@
|
|||
Long: socks5-basic
|
||||
Help: Enable username/password auth for SOCKS5 proxies
|
||||
Added: 7.55.0
|
||||
---
|
||||
Tells curl to use username/password authentication when connecting to a SOCKS5
|
||||
proxy. The username/password authentication is enabled by default. Use
|
||||
--socks5-gssapi to force GSS-API authentication to SOCKS5 proxies.
|
8
curl/docs/cmdline-opts/socks5-gssapi.d
Normal file
8
curl/docs/cmdline-opts/socks5-gssapi.d
Normal file
|
@ -0,0 +1,8 @@
|
|||
Long: socks5-gssapi
|
||||
Help: Enable GSS-API auth for SOCKS5 proxies
|
||||
Added: 7.55.0
|
||||
---
|
||||
Tells curl to use GSS-API authentication when connecting to a SOCKS5 proxy.
|
||||
The GSS-API authentication is enabled by default (if curl is compiled with
|
||||
GSS-API support). Use --socks5-basic to force username/password authentication
|
||||
to SOCKS5 proxies.
|
|
@ -6,4 +6,5 @@ Added: 7.52.0
|
|||
Forces curl to use TLS version 1.3 when connecting to a remote TLS server.
|
||||
|
||||
Note that TLS 1.3 is only supported by a subset of TLS backends. At the time
|
||||
of writing this, those are BoringSSL and NSS only.
|
||||
of this writing, they are BoringSSL, NSS, and Secure Transport (on iOS 11 or
|
||||
later, and macOS 10.13 or later).
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2012, 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
|
||||
|
@ -20,7 +20,7 @@
|
|||
.\" *
|
||||
.\" **************************************************************************
|
||||
.\"
|
||||
.TH curl-config 1 "February 03, 2016" "Curl 5.5.5" "curl-config manual"
|
||||
.TH curl-config 1 "November 30, 2017" "Curl 7.58.0" "curl-config manual"
|
||||
|
||||
.SH NAME
|
||||
curl-config \- Get information about a libcurl installation
|
||||
|
@ -64,6 +64,10 @@ the time of writing, this list may include HTTP, HTTPS, FTP, FTPS, FILE,
|
|||
TELNET, LDAP, DICT. Do not assume any particular order. The protocols will
|
||||
be listed using uppercase and are separated by newlines. There may be none,
|
||||
one, or several protocols in the list. (Added in 7.13.0)
|
||||
.IP "--ssl-backends"
|
||||
Lists the SSL backends that were enabled when libcurl was built. It might be
|
||||
no, one or several names. If more than one name, they will appear
|
||||
comma-separated. (Added in 7.58.0)
|
||||
.IP "--static-libs"
|
||||
Shows the complete set of libs and other linker options you will need in order
|
||||
to link your application with libcurl statically. (Added in 7.17.1)
|
||||
|
|
187
curl/docs/curl.1
187
curl/docs/curl.1
|
@ -22,7 +22,7 @@
|
|||
.\"
|
||||
.\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
|
||||
.\"
|
||||
.TH curl 1 "November 16, 2016" "Curl 7.54.1" "Curl Manual"
|
||||
.TH curl 1 "November 16, 2016" "Curl 7.58.0" "Curl Manual"
|
||||
|
||||
.SH NAME
|
||||
curl \- transfer a URL
|
||||
|
@ -174,7 +174,7 @@ previously set option that sets a different authentication method (such as
|
|||
Used together with \fI-u, --user\fP.
|
||||
|
||||
See also \fI--proxy-basic\fP.
|
||||
.IP "--cacert <CA certificate>"
|
||||
.IP "--cacert <file>"
|
||||
(TLS) Tells curl to use the specified certificate file to verify the peer. The file
|
||||
may contain multiple CA certificates. The certificate(s) must be in PEM
|
||||
format. Normally curl is built to use a default file for this, so this option
|
||||
|
@ -262,6 +262,11 @@ specify valid ciphers. Read up on SSL cipher list details on this URL:
|
|||
https://curl.haxx.se/docs/ssl-ciphers.html
|
||||
|
||||
If this option is used several times, the last one will be used.
|
||||
.IP "--compressed-ssh"
|
||||
(SCP SFTP) Enables built-in SSH compression.
|
||||
This is a request, not an order; the server may or may not do it.
|
||||
|
||||
Added in 7.56.0.
|
||||
.IP "--compressed"
|
||||
(HTTP) Request a compressed response using one of the algorithms curl supports, and
|
||||
save the uncompressed document. If this option is used and the server sends
|
||||
|
@ -334,15 +339,18 @@ If this option is used several times, the last one will be used.
|
|||
See also \fI-m, --max-time\fP.
|
||||
.IP "--connect-to <HOST1:PORT1:HOST2:PORT2>"
|
||||
|
||||
For a request to the given HOST:PORT pair, connect to
|
||||
CONNECT-TO-HOST:CONNECT-TO-PORT instead. This option is suitable to direct
|
||||
requests at a specific server, e.g. at a specific cluster node in a cluster of
|
||||
servers. This option is only used to establish the network connection. It
|
||||
does NOT affect the hostname/port that is used for TLS/SSL (e.g. SNI,
|
||||
certificate verification) or for the application protocols. "host" and "port"
|
||||
may be the empty string, meaning "any host/port". "connect-to-host" and
|
||||
"connect-to-port" may also be the empty string, meaning "use the request's
|
||||
original host/port".
|
||||
For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead.
|
||||
This option is suitable to direct requests at a specific server, e.g. at a
|
||||
specific cluster node in a cluster of servers. This option is only used to
|
||||
establish the network connection. It does NOT affect the hostname/port that is
|
||||
used for TLS/SSL (e.g. SNI, certificate verification) or for the application
|
||||
protocols. "HOST1" and "PORT1" may be the empty string, meaning "any
|
||||
host/port". "HOST2" and "PORT2" may also be the empty string, meaning "use the
|
||||
request's original host/port".
|
||||
|
||||
A "host" specified to this option is compared as a string, so it needs to
|
||||
match the name used in request URL. It can be either numerical such as
|
||||
"127.0.0.1" or the full host name such as "example.org".
|
||||
|
||||
This option can be used many times to add many connect rules.
|
||||
|
||||
|
@ -646,7 +654,7 @@ or later, or OS X 10.9 or later) backends.
|
|||
|
||||
Added in 7.42.0.
|
||||
.IP "--form-string <name=string>"
|
||||
(HTTP) Similar to \fI-F, --form\fP except that the value string for the named parameter is used
|
||||
(HTTP SMTP IMAP) Similar to \fI-F, --form\fP except that the value string for the named parameter is used
|
||||
literally. Leading \&'@' and \&'<' characters, and the \&';type=' string in
|
||||
the value have no special meaning. Use this in preference to \fI-F, --form\fP if
|
||||
there's any possibility that the string value may accidentally trigger the
|
||||
|
@ -654,24 +662,32 @@ there's any possibility that the string value may accidentally trigger the
|
|||
|
||||
See also \fI-F, --form\fP.
|
||||
.IP "-F, --form <name=content>"
|
||||
(HTTP) This lets curl emulate a filled-in form in which a user has pressed the submit
|
||||
button. This causes curl to POST data using the Content-Type
|
||||
multipart/form-data according to RFC 2388. This enables uploading of binary
|
||||
(HTTP SMTP IMAP) For HTTP protocol family, this lets curl emulate a filled-in form in which a
|
||||
user has pressed the submit button. This causes curl to POST data using the
|
||||
Content-Type multipart/form-data according to RFC 2388.
|
||||
|
||||
For SMTP and IMAP protocols, this is the mean to compose a multipart mail
|
||||
message to transmit.
|
||||
|
||||
This enables uploading of binary
|
||||
files etc. To force the 'content' part to be a file, prefix the file name with
|
||||
an @ sign. To just get the content part from a file, prefix the file name with
|
||||
the symbol <. The difference between @ and < is then that @ makes a file get
|
||||
attached in the post as a file upload, while the < makes a text field and just
|
||||
get the contents for that text field from a file.
|
||||
|
||||
Example: to send an image to a server, where \&'profile' is the name of the
|
||||
form-field to which portrait.jpg will be the input:
|
||||
Example: to send an image to an HTTP server, where \&'profile' is the name of
|
||||
the form-field to which portrait.jpg will be the input:
|
||||
|
||||
curl -F profile=@portrait.jpg https://example.com/upload.cgi
|
||||
|
||||
To read content from stdin instead of a file, use - as the filename. This goes
|
||||
for both @ and < constructs. Unfortunately it does not support reading the
|
||||
file from a named pipe or similar, as it needs the full size before the
|
||||
transfer starts.
|
||||
for both @ and < constructs. If stdin is not attached to a regular file, it is
|
||||
buffered first to determine its size and allow a possible resend. Defining a
|
||||
part's data from a named non-regular file (such as a named pipe or similar) is
|
||||
unfortunately not subject to buffering and will be effectively read at
|
||||
transmission time; since the full size is unknown before the transfer starts,
|
||||
data is sent as chunks by HTTP and rejected by IMAP.
|
||||
|
||||
You can also tell curl what Content-Type to use by using 'type=', in a manner
|
||||
similar to:
|
||||
|
@ -698,6 +714,72 @@ or
|
|||
Note that if a filename/path is quoted by double-quotes, any double-quote
|
||||
or backslash within the filename must be escaped by backslash.
|
||||
|
||||
Quoting must also be applied to non-file data if it contains semicolons,
|
||||
leading/trailing spaces or leading double quotes:
|
||||
|
||||
curl -F 'colors="red; green; blue";type=text/x-myapp' example.com
|
||||
|
||||
You can add custom headers to the field by setting headers=, like
|
||||
|
||||
curl -F "submit=OK;headers=\\"X-submit-type: OK\\"" example.com
|
||||
|
||||
or
|
||||
|
||||
curl -F "submit=OK;headers=@headerfile" example.com
|
||||
|
||||
The headers= keyword may appear more that once and above notes about quoting
|
||||
apply. When headers are read from a file, Empty lines and lines starting
|
||||
with '#' are comments and ignored; each header can be folded by splitting
|
||||
between two words and starting the continuation line with a space; embedded
|
||||
carriage-returns and trailing spaces are stripped.
|
||||
Here is an example of a header file contents:
|
||||
|
||||
# This file contain two headers.
|
||||
.br
|
||||
X-header-1: this is a header
|
||||
|
||||
# The following header is folded.
|
||||
.br
|
||||
X-header-2: this is
|
||||
.br
|
||||
another header
|
||||
|
||||
|
||||
To support sending multipart mail messages, the syntax is extended as follows:
|
||||
.br
|
||||
- name can be omitted: the equal sign is the first character of the argument,
|
||||
.br
|
||||
- if data starts with '(', this signals to start a new multipart: it can be
|
||||
followed by a content type specification.
|
||||
.br
|
||||
- a multipart can be terminated with a '=)' argument.
|
||||
|
||||
Example: the following command sends an SMTP mime e-mail consisting in an
|
||||
inline part in two alternative formats: plain text and HTML. It attaches a
|
||||
text file:
|
||||
|
||||
curl -F '=(;type=multipart/alternative' \\
|
||||
.br
|
||||
-F '=plain text message' \\
|
||||
.br
|
||||
-F '= <body>HTML message</body>;type=text/html' \\
|
||||
.br
|
||||
-F '=)' -F '=@textfile.txt' ... smtp://example.com
|
||||
|
||||
Data can be encoded for transfer using encoder=. Available encodings are
|
||||
\fIbinary\fP and \fI8bit\fP that do nothing else than adding the corresponding
|
||||
Content-Transfer-Encoding header, \fI7bit\fP that only rejects 8-bit characters
|
||||
with a transfer error, \fIquoted-printable\fP and \fIbase64\fP that encodes
|
||||
data according to the corresponding schemes, limiting lines length to
|
||||
76 characters.
|
||||
|
||||
Example: send multipart mail with a quoted-printable text message and a
|
||||
base64 attached file:
|
||||
|
||||
curl -F '=text message;encoder=quoted-printable' \\
|
||||
.br
|
||||
-F '=@localfile;encoder=base64' ... smtp://example.com
|
||||
|
||||
See further examples and details in the MANUAL.
|
||||
|
||||
This option can be used multiple times.
|
||||
|
@ -838,9 +920,8 @@ contents but they should be encoded according to the URI standard.
|
|||
(HTTP FTP FILE) Fetch the headers only! HTTP-servers feature the command HEAD which this uses
|
||||
to get nothing but the header of a document. When used on an FTP or FILE file,
|
||||
curl displays the file size and last modification time only.
|
||||
.IP "-H, --header <header>"
|
||||
(HTTP)
|
||||
Extra header to include in the request when sending HTTP to a server. You may
|
||||
.IP "-H, --header <header/@file>"
|
||||
(HTTP) Extra header to include in the request when sending HTTP to a server. You may
|
||||
specify any number of extra headers. Note that if you should add a custom
|
||||
header that has the same name as one of the internal ones curl would use, your
|
||||
externally set header will be used instead of the internal one. This allows
|
||||
|
@ -856,6 +937,10 @@ end-of-line marker, you should thus \fBnot\fP add that as a part of the header
|
|||
content: do not add newlines or carriage returns, they will only mess things up
|
||||
for you.
|
||||
|
||||
Starting in 7.55.0, this option can take an argument in @filename style, which
|
||||
then adds a header for each line in the input file. Using @- will make curl
|
||||
read the header file from stdin.
|
||||
|
||||
See also the \fI-A, --user-agent\fP and \fI-e, --referer\fP options.
|
||||
|
||||
Starting in 7.37.0, you need \fI--proxy-header\fP to send custom headers intended
|
||||
|
@ -908,8 +993,11 @@ files larger than 2 gigabytes.
|
|||
For FTP (since 7.46.0), skip the RETR command to figure out the size before
|
||||
downloading a file.
|
||||
.IP "-i, --include"
|
||||
Include the HTTP-header in the output. The HTTP-header includes things like
|
||||
server-name, date of the document, HTTP-version and more...
|
||||
Include the HTTP response headers in the output. The HTTP response headers can
|
||||
include things like server name, cookies, date of the document, HTTP version
|
||||
and more...
|
||||
|
||||
To view the request headers, consider the \fI-v, --verbose\fP option.
|
||||
|
||||
See also \fI-v, --verbose\fP.
|
||||
.IP "-k, --insecure"
|
||||
|
@ -934,6 +1022,10 @@ name, IP address or host name. An example could look like:
|
|||
|
||||
If this option is used several times, the last one will be used.
|
||||
|
||||
On Linux it can be used to specify a VRF, but the binary needs to either
|
||||
have CAP_NET_RAW or to be ran as root. More information about Linux VRF:
|
||||
https://www.kernel.org/doc/Documentation/networking/vrf.txt
|
||||
|
||||
See also \fI--dns-interface\fP.
|
||||
.IP "-4, --ipv4"
|
||||
This option tells curl to resolve names to IPv4 addresses only, and not for
|
||||
|
@ -998,7 +1090,7 @@ your transfer not to use your entire bandwidth. To make it slower than it
|
|||
otherwise would be.
|
||||
|
||||
The given speed is measured in bytes/second, unless a suffix is appended.
|
||||
Appending 'k' or 'K' will count the number as kilobytes, 'm' or M' makes it
|
||||
Appending 'k' or 'K' will count the number as kilobytes, 'm' or 'M' makes it
|
||||
megabytes, while 'g' or 'G' makes it gigabytes. Examples: 200K, 3m and 1G.
|
||||
|
||||
If you also use the \fI-Y, --speed-limit\fP option, that option will take precedence and
|
||||
|
@ -1104,6 +1196,10 @@ Specify the maximum size (in bytes) of a file to download. If the file
|
|||
requested is larger than this value, the transfer will not start and curl will
|
||||
return with exit code 63.
|
||||
|
||||
A size modifier may be used. For example, Appending 'k' or 'K' will count the
|
||||
number as kilobytes, 'm' or 'M' makes it megabytes, while 'g' or 'G' makes it
|
||||
gigabytes. Examples: 200K, 3m and 1G. (Added in 7.58.0)
|
||||
|
||||
\fBNOTE:\fP The file size is not always known prior to download, and for such
|
||||
files this option has no effect even if the file transfer ends up being larger
|
||||
than this given limit. This concerns both FTP and HTTP transfers.
|
||||
|
@ -1509,7 +1605,7 @@ Tells curl to use HTTP Digest authentication when communicating with the given
|
|||
proxy. Use \fI--digest\fP for enabling HTTP Digest with a remote host.
|
||||
|
||||
See also \fI-x, --proxy\fP and \fI--proxy-anyauth\fP and \fI--proxy-basic\fP.
|
||||
.IP "--proxy-header <header>"
|
||||
.IP "--proxy-header <header/@file>"
|
||||
(HTTP) Extra header to include in the request when sending HTTP to a proxy. You may
|
||||
specify any number of extra headers. This is the equivalent option to \fI-H, --header\fP
|
||||
but is for proxy communication only like in CONNECT requests when you want a
|
||||
|
@ -1523,6 +1619,10 @@ up for you.
|
|||
Headers specified with this option will not be included in requests that curl
|
||||
knows will not be sent to a proxy.
|
||||
|
||||
Starting in 7.55.0, this option can take an argument in @filename style, which
|
||||
then adds a header for each line in the input file. Using @- will make curl
|
||||
read the header file from stdin.
|
||||
|
||||
This option can be used multiple times to add/replace/remove multiple headers.
|
||||
|
||||
Added in 7.37.0.
|
||||
|
@ -1802,6 +1902,13 @@ You may use this option as many times as the number of URLs you have.
|
|||
When used, this will make curl attempt to figure out the timestamp of the
|
||||
remote file, and if that is available make the local file get that same
|
||||
timestamp.
|
||||
.IP "--request-target"
|
||||
(HTTP) Tells curl to use an alternative "target" (path) instead of using the path as
|
||||
provided in the URL. Particularly useful when wanting to issue HTTP requests
|
||||
without leading slash or other data that doesn't follow the regular URL
|
||||
pattern, like "OPTIONS *".
|
||||
|
||||
Added in 7.55.0.
|
||||
.IP "-X, --request <command>"
|
||||
(HTTP) Specifies a custom request method to use when communicating with the
|
||||
HTTP server. The specified request method will be used instead of the method
|
||||
|
@ -1849,6 +1956,8 @@ different ports.
|
|||
The provided address set by this option will be used even if \fI-4, --ipv4\fP or \fI-6, --ipv6\fP
|
||||
is set to make curl use another IP version.
|
||||
|
||||
Support for providing the IP address within [brackets] was added in 7.57.0.
|
||||
|
||||
This option can be used many times to add many host names to resolve.
|
||||
|
||||
Added in 7.21.3.
|
||||
|
@ -1947,6 +2056,12 @@ the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy.
|
|||
If this option is used several times, the last one will be used.
|
||||
|
||||
Added in 7.18.0.
|
||||
.IP "--socks5-basic"
|
||||
Tells curl to use username/password authentication when connecting to a SOCKS5
|
||||
proxy. The username/password authentication is enabled by default. Use
|
||||
\fI--socks5-gssapi\fP to force GSS-API authentication to SOCKS5 proxies.
|
||||
|
||||
Added in 7.55.0.
|
||||
.IP "--socks5-gssapi-nec"
|
||||
As part of the GSS-API negotiation a protection mode is negotiated. RFC 1961
|
||||
says in section 4.3/4.4 it should be protected, but the NEC reference
|
||||
|
@ -1964,6 +2079,13 @@ would use sockd/real-name for cases where the proxy-name does not match the
|
|||
principal name.
|
||||
|
||||
Added in 7.19.4.
|
||||
.IP "--socks5-gssapi"
|
||||
Tells curl to use GSS-API authentication when connecting to a SOCKS5 proxy.
|
||||
The GSS-API authentication is enabled by default (if curl is compiled with
|
||||
GSS-API support). Use \fI--socks5-basic\fP to force username/password authentication
|
||||
to SOCKS5 proxies.
|
||||
|
||||
Added in 7.55.0.
|
||||
.IP "--socks5-hostname <host[:port]>"
|
||||
Use the specified SOCKS5 proxy (and let the proxy resolve the host name). If
|
||||
the port number is not specified, it is assumed at port 1080.
|
||||
|
@ -2170,7 +2292,8 @@ Added in 7.34.0.
|
|||
(TLS) Forces curl to use TLS version 1.3 when connecting to a remote TLS server.
|
||||
|
||||
Note that TLS 1.3 is only supported by a subset of TLS backends. At the time
|
||||
of writing this, those are BoringSSL and NSS only.
|
||||
of this writing, they are BoringSSL, NSS, and Secure Transport (on iOS 11 or
|
||||
later, and macOS 10.13 or later).
|
||||
|
||||
Added in 7.52.0.
|
||||
.IP "-1, --tlsv1"
|
||||
|
@ -2551,6 +2674,10 @@ If no protocol is specified in the proxy string or if the string doesn't match
|
|||
a supported one, the proxy will be treated as an HTTP proxy.
|
||||
|
||||
The supported proxy protocol prefixes are as follows:
|
||||
.IP "http://"
|
||||
Makes it use it as a HTTP proxy. The default if no scheme prefix is used.
|
||||
.IP "https://"
|
||||
Makes it treated as a \fBHTTPS\fP proxy.
|
||||
.IP "socks4://"
|
||||
Makes it the equivalent of \fI--socks4\fP
|
||||
.IP "socks4a://"
|
||||
|
@ -2741,6 +2868,10 @@ FTP chunk callback reported error
|
|||
No connection available, the session will be queued
|
||||
.IP 90
|
||||
SSL public key does not matched pinned public key
|
||||
.IP 91
|
||||
Invalid SSL certificate status.
|
||||
.IP 92
|
||||
Stream error in HTTP/2 framing layer.
|
||||
.IP XX
|
||||
More error codes will appear here in future releases. The existing ones
|
||||
are meant to never change.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -30,13 +30,9 @@ EXTRA_DIST = README Makefile.example Makefile.inc Makefile.m32 \
|
|||
# being currently built and tested are searched before the library which
|
||||
# might possibly already be installed in the system.
|
||||
#
|
||||
# $(top_builddir)/include/curl for generated curlbuild.h included from curl.h
|
||||
# $(top_builddir)/include for generated curlbuild.h inc. from lib/curl_setup.h
|
||||
# $(top_srcdir)/include is for libcurl's external include files
|
||||
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include/curl \
|
||||
-I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/include
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/include
|
||||
|
||||
LIBDIR = $(top_builddir)/lib
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -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
|
||||
|
@ -144,22 +144,24 @@ check_PROGRAMS = 10-at-a-time$(EXEEXT) anyauthput$(EXEEXT) \
|
|||
simple$(EXEEXT) simplepost$(EXEEXT) simplessl$(EXEEXT) \
|
||||
sendrecv$(EXEEXT) httpcustomheader$(EXEEXT) certinfo$(EXEEXT) \
|
||||
chkspeed$(EXEEXT) ftpgetinfo$(EXEEXT) ftp-wildcard$(EXEEXT) \
|
||||
smtp-mail$(EXEEXT) smtp-multi$(EXEEXT) smtp-ssl$(EXEEXT) \
|
||||
smtp-tls$(EXEEXT) smtp-vrfy$(EXEEXT) smtp-expn$(EXEEXT) \
|
||||
rtsp$(EXEEXT) externalsocket$(EXEEXT) resolve$(EXEEXT) \
|
||||
progressfunc$(EXEEXT) pop3-retr$(EXEEXT) pop3-list$(EXEEXT) \
|
||||
pop3-uidl$(EXEEXT) pop3-dele$(EXEEXT) pop3-top$(EXEEXT) \
|
||||
pop3-stat$(EXEEXT) pop3-noop$(EXEEXT) pop3-ssl$(EXEEXT) \
|
||||
pop3-tls$(EXEEXT) pop3-multi$(EXEEXT) imap-list$(EXEEXT) \
|
||||
imap-lsub$(EXEEXT) imap-fetch$(EXEEXT) imap-store$(EXEEXT) \
|
||||
imap-append$(EXEEXT) imap-examine$(EXEEXT) \
|
||||
smtp-mail$(EXEEXT) smtp-mime$(EXEEXT) smtp-multi$(EXEEXT) \
|
||||
smtp-ssl$(EXEEXT) smtp-tls$(EXEEXT) smtp-vrfy$(EXEEXT) \
|
||||
smtp-expn$(EXEEXT) rtsp$(EXEEXT) externalsocket$(EXEEXT) \
|
||||
resolve$(EXEEXT) progressfunc$(EXEEXT) pop3-retr$(EXEEXT) \
|
||||
pop3-list$(EXEEXT) pop3-uidl$(EXEEXT) pop3-dele$(EXEEXT) \
|
||||
pop3-top$(EXEEXT) pop3-stat$(EXEEXT) pop3-noop$(EXEEXT) \
|
||||
pop3-ssl$(EXEEXT) pop3-tls$(EXEEXT) pop3-multi$(EXEEXT) \
|
||||
imap-list$(EXEEXT) imap-lsub$(EXEEXT) imap-fetch$(EXEEXT) \
|
||||
imap-store$(EXEEXT) imap-append$(EXEEXT) imap-examine$(EXEEXT) \
|
||||
imap-search$(EXEEXT) imap-create$(EXEEXT) imap-delete$(EXEEXT) \
|
||||
imap-copy$(EXEEXT) imap-noop$(EXEEXT) imap-ssl$(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) \
|
||||
ftpuploadfrommem$(EXEEXT)
|
||||
ftpuploadfrommem$(EXEEXT) ftpuploadresume$(EXEEXT) \
|
||||
sslbackend$(EXEEXT) postit2-formadd$(EXEEXT) \
|
||||
multi-formadd$(EXEEXT) shared-connection-cache$(EXEEXT)
|
||||
subdir = docs/examples
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
|
||||
|
@ -184,8 +186,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
|
||||
$(top_builddir)/include/curl/curlbuild.h
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
10_at_a_time_SOURCES = 10-at-a-time.c
|
||||
|
@ -302,6 +303,13 @@ ftpuploadfrommem_LDADD = $(LDADD)
|
|||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ftpuploadfrommem_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
ftpuploadresume_SOURCES = ftpuploadresume.c
|
||||
ftpuploadresume_OBJECTS = ftpuploadresume.$(OBJEXT)
|
||||
ftpuploadresume_LDADD = $(LDADD)
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@ftpuploadresume_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ftpuploadresume_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
getinfo_SOURCES = getinfo.c
|
||||
getinfo_OBJECTS = getinfo.$(OBJEXT)
|
||||
getinfo_LDADD = $(LDADD)
|
||||
|
@ -490,6 +498,13 @@ multi_double_LDADD = $(LDADD)
|
|||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@multi_double_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
multi_formadd_SOURCES = multi-formadd.c
|
||||
multi_formadd_OBJECTS = multi-formadd.$(OBJEXT)
|
||||
multi_formadd_LDADD = $(LDADD)
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@multi_formadd_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@multi_formadd_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
multi_post_SOURCES = multi-post.c
|
||||
multi_post_OBJECTS = multi-post.$(OBJEXT)
|
||||
multi_post_LDADD = $(LDADD)
|
||||
|
@ -602,6 +617,13 @@ postit2_LDADD = $(LDADD)
|
|||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@postit2_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
postit2_formadd_SOURCES = postit2-formadd.c
|
||||
postit2_formadd_OBJECTS = postit2-formadd.$(OBJEXT)
|
||||
postit2_formadd_LDADD = $(LDADD)
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@postit2_formadd_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@postit2_formadd_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
progressfunc_SOURCES = progressfunc.c
|
||||
progressfunc_OBJECTS = progressfunc.$(OBJEXT)
|
||||
progressfunc_LDADD = $(LDADD)
|
||||
|
@ -642,6 +664,13 @@ sftpget_LDADD = $(LDADD)
|
|||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@sftpget_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
shared_connection_cache_SOURCES = shared-connection-cache.c
|
||||
shared_connection_cache_OBJECTS = shared-connection-cache.$(OBJEXT)
|
||||
shared_connection_cache_LDADD = $(LDADD)
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@shared_connection_cache_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@shared_connection_cache_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
simple_SOURCES = simple.c
|
||||
simple_OBJECTS = simple.$(OBJEXT)
|
||||
simple_LDADD = $(LDADD)
|
||||
|
@ -677,6 +706,13 @@ smtp_mail_LDADD = $(LDADD)
|
|||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@smtp_mail_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
smtp_mime_SOURCES = smtp-mime.c
|
||||
smtp_mime_OBJECTS = smtp-mime.$(OBJEXT)
|
||||
smtp_mime_LDADD = $(LDADD)
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@smtp_mime_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@smtp_mime_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
smtp_multi_SOURCES = smtp-multi.c
|
||||
smtp_multi_OBJECTS = smtp-multi.$(OBJEXT)
|
||||
smtp_multi_LDADD = $(LDADD)
|
||||
|
@ -705,6 +741,13 @@ smtp_vrfy_LDADD = $(LDADD)
|
|||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@smtp_vrfy_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
sslbackend_SOURCES = sslbackend.c
|
||||
sslbackend_OBJECTS = sslbackend.$(OBJEXT)
|
||||
sslbackend_LDADD = $(LDADD)
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@sslbackend_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@sslbackend_DEPENDENCIES = \
|
||||
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
|
||||
url2file_SOURCES = url2file.c
|
||||
url2file_OBJECTS = url2file.$(OBJEXT)
|
||||
url2file_LDADD = $(LDADD)
|
||||
|
@ -749,37 +792,41 @@ 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 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 \
|
||||
ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.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-formadd.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 \
|
||||
smtp-tls.c smtp-vrfy.c url2file.c
|
||||
postinmemory.c postit2.c postit2-formadd.c progressfunc.c \
|
||||
resolve.c rtsp.c sendrecv.c sepheaders.c sftpget.c \
|
||||
shared-connection-cache.c simple.c simplepost.c simplessl.c \
|
||||
smtp-expn.c smtp-mail.c smtp-mime.c smtp-multi.c smtp-ssl.c \
|
||||
smtp-tls.c smtp-vrfy.c sslbackend.c url2file.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 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 \
|
||||
ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.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-formadd.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 \
|
||||
smtp-tls.c smtp-vrfy.c url2file.c
|
||||
postinmemory.c postit2.c postit2-formadd.c progressfunc.c \
|
||||
resolve.c rtsp.c sendrecv.c sepheaders.c sftpget.c \
|
||||
shared-connection-cache.c simple.c simplepost.c simplessl.c \
|
||||
smtp-expn.c smtp-mail.c smtp-mime.c smtp-multi.c smtp-ssl.c \
|
||||
smtp-tls.c smtp-vrfy.c sslbackend.c url2file.c
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
|
@ -822,8 +869,11 @@ CCDEPMODE = @CCDEPMODE@
|
|||
CFLAGS = @CFLAGS@
|
||||
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
|
||||
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
|
||||
CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@
|
||||
CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@
|
||||
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
|
||||
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
|
||||
CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@
|
||||
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
|
@ -849,7 +899,9 @@ CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
|
|||
CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@
|
||||
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
|
||||
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
|
||||
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
|
@ -866,6 +918,7 @@ FGREP = @FGREP@
|
|||
GCOV = @GCOV@
|
||||
GENHTML = @GENHTML@
|
||||
GREP = @GREP@
|
||||
HAVE_BROTLI = @HAVE_BROTLI@
|
||||
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
|
||||
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
|
||||
HAVE_LIBZ = @HAVE_LIBZ@
|
||||
|
@ -925,6 +978,7 @@ REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
|
|||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SSL_BACKENDS = @SSL_BACKENDS@
|
||||
SSL_ENABLED = @SSL_ENABLED@
|
||||
SSL_LIBS = @SSL_LIBS@
|
||||
STRIP = @STRIP@
|
||||
|
@ -937,6 +991,7 @@ USE_DARWINSSL = @USE_DARWINSSL@
|
|||
USE_GNUTLS = @USE_GNUTLS@
|
||||
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
|
||||
USE_LIBRTMP = @USE_LIBRTMP@
|
||||
USE_LIBSSH = @USE_LIBSSH@
|
||||
USE_LIBSSH2 = @USE_LIBSSH2@
|
||||
USE_MBEDTLS = @USE_MBEDTLS@
|
||||
USE_NGHTTP2 = @USE_NGHTTP2@
|
||||
|
@ -1015,13 +1070,10 @@ EXTRA_DIST = README Makefile.example Makefile.inc Makefile.m32 \
|
|||
# being currently built and tested are searched before the library which
|
||||
# might possibly already be installed in the system.
|
||||
#
|
||||
# $(top_builddir)/include/curl for generated curlbuild.h included from curl.h
|
||||
# $(top_builddir)/include for generated curlbuild.h inc. from lib/curl_setup.h
|
||||
# $(top_srcdir)/include is for libcurl's external include files
|
||||
|
||||
# Avoid libcurl obsolete stuff
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include/curl -I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/include -DCURL_NO_OLDIES $(am__append_1)
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/include -DCURL_NO_OLDIES $(am__append_1)
|
||||
LIBDIR = $(top_builddir)/lib
|
||||
@USE_EXPLICIT_LIB_DEPS_FALSE@LDADD = $(LIBDIR)/libcurl.la
|
||||
|
||||
|
@ -1031,10 +1083,11 @@ LIBDIR = $(top_builddir)/lib
|
|||
# These examples require external dependencies that may not be commonly
|
||||
# available on POSIX systems, so don't bother attempting to compile them here.
|
||||
COMPLICATED_EXAMPLES = curlgtk.c curlx.c htmltitle.cpp cacertinmem.c \
|
||||
ftpuploadresume.c ghiper.c hiperfifo.c htmltidy.c multithread.c \
|
||||
opensslthreadlock.c sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c \
|
||||
ghiper.c hiperfifo.c htmltidy.c multithread.c opensslthreadlock.c \
|
||||
sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c \
|
||||
smooth-gtk-thread.c version-check.pl href_extractor.c asiohiper.cpp \
|
||||
multi-uv.c xmlstream.c usercertinmem.c sessioninfo.c
|
||||
multi-uv.c xmlstream.c usercertinmem.c sessioninfo.c \
|
||||
threaded-shared-conn.c
|
||||
|
||||
all: all-am
|
||||
|
||||
|
@ -1144,6 +1197,10 @@ ftpuploadfrommem$(EXEEXT): $(ftpuploadfrommem_OBJECTS) $(ftpuploadfrommem_DEPEND
|
|||
@rm -f ftpuploadfrommem$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(ftpuploadfrommem_OBJECTS) $(ftpuploadfrommem_LDADD) $(LIBS)
|
||||
|
||||
ftpuploadresume$(EXEEXT): $(ftpuploadresume_OBJECTS) $(ftpuploadresume_DEPENDENCIES) $(EXTRA_ftpuploadresume_DEPENDENCIES)
|
||||
@rm -f ftpuploadresume$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(ftpuploadresume_OBJECTS) $(ftpuploadresume_LDADD) $(LIBS)
|
||||
|
||||
getinfo$(EXEEXT): $(getinfo_OBJECTS) $(getinfo_DEPENDENCIES) $(EXTRA_getinfo_DEPENDENCIES)
|
||||
@rm -f getinfo$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(getinfo_OBJECTS) $(getinfo_LDADD) $(LIBS)
|
||||
|
@ -1252,6 +1309,10 @@ multi-double$(EXEEXT): $(multi_double_OBJECTS) $(multi_double_DEPENDENCIES) $(EX
|
|||
@rm -f multi-double$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(multi_double_OBJECTS) $(multi_double_LDADD) $(LIBS)
|
||||
|
||||
multi-formadd$(EXEEXT): $(multi_formadd_OBJECTS) $(multi_formadd_DEPENDENCIES) $(EXTRA_multi_formadd_DEPENDENCIES)
|
||||
@rm -f multi-formadd$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(multi_formadd_OBJECTS) $(multi_formadd_LDADD) $(LIBS)
|
||||
|
||||
multi-post$(EXEEXT): $(multi_post_OBJECTS) $(multi_post_DEPENDENCIES) $(EXTRA_multi_post_DEPENDENCIES)
|
||||
@rm -f multi-post$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(multi_post_OBJECTS) $(multi_post_LDADD) $(LIBS)
|
||||
|
@ -1316,6 +1377,10 @@ postit2$(EXEEXT): $(postit2_OBJECTS) $(postit2_DEPENDENCIES) $(EXTRA_postit2_DEP
|
|||
@rm -f postit2$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(postit2_OBJECTS) $(postit2_LDADD) $(LIBS)
|
||||
|
||||
postit2-formadd$(EXEEXT): $(postit2_formadd_OBJECTS) $(postit2_formadd_DEPENDENCIES) $(EXTRA_postit2_formadd_DEPENDENCIES)
|
||||
@rm -f postit2-formadd$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(postit2_formadd_OBJECTS) $(postit2_formadd_LDADD) $(LIBS)
|
||||
|
||||
progressfunc$(EXEEXT): $(progressfunc_OBJECTS) $(progressfunc_DEPENDENCIES) $(EXTRA_progressfunc_DEPENDENCIES)
|
||||
@rm -f progressfunc$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(progressfunc_OBJECTS) $(progressfunc_LDADD) $(LIBS)
|
||||
|
@ -1340,6 +1405,10 @@ sftpget$(EXEEXT): $(sftpget_OBJECTS) $(sftpget_DEPENDENCIES) $(EXTRA_sftpget_DEP
|
|||
@rm -f sftpget$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(sftpget_OBJECTS) $(sftpget_LDADD) $(LIBS)
|
||||
|
||||
shared-connection-cache$(EXEEXT): $(shared_connection_cache_OBJECTS) $(shared_connection_cache_DEPENDENCIES) $(EXTRA_shared_connection_cache_DEPENDENCIES)
|
||||
@rm -f shared-connection-cache$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(shared_connection_cache_OBJECTS) $(shared_connection_cache_LDADD) $(LIBS)
|
||||
|
||||
simple$(EXEEXT): $(simple_OBJECTS) $(simple_DEPENDENCIES) $(EXTRA_simple_DEPENDENCIES)
|
||||
@rm -f simple$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(simple_OBJECTS) $(simple_LDADD) $(LIBS)
|
||||
|
@ -1360,6 +1429,10 @@ smtp-mail$(EXEEXT): $(smtp_mail_OBJECTS) $(smtp_mail_DEPENDENCIES) $(EXTRA_smtp_
|
|||
@rm -f smtp-mail$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(smtp_mail_OBJECTS) $(smtp_mail_LDADD) $(LIBS)
|
||||
|
||||
smtp-mime$(EXEEXT): $(smtp_mime_OBJECTS) $(smtp_mime_DEPENDENCIES) $(EXTRA_smtp_mime_DEPENDENCIES)
|
||||
@rm -f smtp-mime$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(smtp_mime_OBJECTS) $(smtp_mime_LDADD) $(LIBS)
|
||||
|
||||
smtp-multi$(EXEEXT): $(smtp_multi_OBJECTS) $(smtp_multi_DEPENDENCIES) $(EXTRA_smtp_multi_DEPENDENCIES)
|
||||
@rm -f smtp-multi$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(smtp_multi_OBJECTS) $(smtp_multi_LDADD) $(LIBS)
|
||||
|
@ -1376,6 +1449,10 @@ smtp-vrfy$(EXEEXT): $(smtp_vrfy_OBJECTS) $(smtp_vrfy_DEPENDENCIES) $(EXTRA_smtp_
|
|||
@rm -f smtp-vrfy$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(smtp_vrfy_OBJECTS) $(smtp_vrfy_LDADD) $(LIBS)
|
||||
|
||||
sslbackend$(EXEEXT): $(sslbackend_OBJECTS) $(sslbackend_DEPENDENCIES) $(EXTRA_sslbackend_DEPENDENCIES)
|
||||
@rm -f sslbackend$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(sslbackend_OBJECTS) $(sslbackend_LDADD) $(LIBS)
|
||||
|
||||
url2file$(EXEEXT): $(url2file_OBJECTS) $(url2file_DEPENDENCIES) $(EXTRA_url2file_DEPENDENCIES)
|
||||
@rm -f url2file$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(url2file_OBJECTS) $(url2file_LDADD) $(LIBS)
|
||||
|
@ -1402,6 +1479,7 @@ distclean-compile:
|
|||
@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)/ftpuploadresume.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@
|
||||
|
@ -1429,6 +1507,7 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-app.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-debugcallback.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-double.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-formadd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-post.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-single.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/persistant.Po@am__quote@
|
||||
|
@ -1444,6 +1523,7 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-uidl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/post-callback.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/postinmemory.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/postit2-formadd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/postit2.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progressfunc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resolve.Po@am__quote@
|
||||
|
@ -1451,15 +1531,18 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendrecv.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sepheaders.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sftpget.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shared-connection-cache.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplepost.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplessl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-expn.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-mail.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-mime.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-multi.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-ssl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-tls.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-vrfy.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sslbackend.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/url2file.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
|
|
|
@ -26,18 +26,21 @@ check_PROGRAMS = 10-at-a-time anyauthput cookie_interface debug fileupload \
|
|||
https multi-app multi-debugcallback multi-double multi-post multi-single \
|
||||
persistant post-callback postit2 sepheaders simple simplepost simplessl \
|
||||
sendrecv httpcustomheader certinfo chkspeed ftpgetinfo ftp-wildcard \
|
||||
smtp-mail smtp-multi smtp-ssl smtp-tls smtp-vrfy smtp-expn rtsp \
|
||||
externalsocket resolve progressfunc pop3-retr pop3-list pop3-uidl \
|
||||
smtp-mail smtp-mime smtp-multi smtp-ssl smtp-tls smtp-vrfy smtp-expn \
|
||||
rtsp externalsocket resolve progressfunc pop3-retr pop3-list pop3-uidl \
|
||||
pop3-dele pop3-top pop3-stat pop3-noop pop3-ssl pop3-tls pop3-multi \
|
||||
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 ftpuploadfrommem
|
||||
http2-upload http2-serverpush getredirect ftpuploadfrommem \
|
||||
ftpuploadresume sslbackend postit2-formadd multi-formadd \
|
||||
shared-connection-cache
|
||||
|
||||
# These examples require external dependencies that may not be commonly
|
||||
# available on POSIX systems, so don't bother attempting to compile them here.
|
||||
COMPLICATED_EXAMPLES = curlgtk.c curlx.c htmltitle.cpp cacertinmem.c \
|
||||
ftpuploadresume.c ghiper.c hiperfifo.c htmltidy.c multithread.c \
|
||||
opensslthreadlock.c sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c \
|
||||
ghiper.c hiperfifo.c htmltidy.c multithread.c opensslthreadlock.c \
|
||||
sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c \
|
||||
smooth-gtk-thread.c version-check.pl href_extractor.c asiohiper.cpp \
|
||||
multi-uv.c xmlstream.c usercertinmem.c sessioninfo.c
|
||||
multi-uv.c xmlstream.c usercertinmem.c sessioninfo.c \
|
||||
threaded-shared-conn.c
|
||||
|
|
|
@ -84,7 +84,7 @@ endif
|
|||
endif
|
||||
|
||||
CC = $(CROSSPREFIX)gcc
|
||||
CFLAGS = -g -O2 -Wall
|
||||
CFLAGS = -g -O2 -Wall -W
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
ifeq ($(ARCH),w64)
|
||||
CFLAGS += -m64 -D_AMD64_
|
||||
|
|
|
@ -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,85 +24,103 @@
|
|||
* </DESC>
|
||||
*/
|
||||
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/ssl.h>
|
||||
#include <curl/curl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
size_t writefunction(void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
{
|
||||
fwrite(ptr, size, nmemb, stream);
|
||||
fwrite(ptr, size, nmemb, (FILE *)stream);
|
||||
return (nmemb*size);
|
||||
}
|
||||
|
||||
static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm)
|
||||
{
|
||||
X509_STORE *store;
|
||||
CURLcode rv = CURLE_ABORTED_BY_CALLBACK;
|
||||
X509_STORE *store = NULL;
|
||||
X509 *cert = NULL;
|
||||
BIO *bio;
|
||||
char *mypem = /* www.cacert.org */
|
||||
"-----BEGIN CERTIFICATE-----\n"\
|
||||
"MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290\n"\
|
||||
"IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB\n"\
|
||||
"IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA\n"\
|
||||
"Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO\n"\
|
||||
"BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi\n"\
|
||||
"MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ\n"\
|
||||
"ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\n"\
|
||||
"CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ\n"\
|
||||
"8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6\n"\
|
||||
"zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y\n"\
|
||||
"fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7\n"\
|
||||
"w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc\n"\
|
||||
"G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k\n"\
|
||||
"epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q\n"\
|
||||
"laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ\n"\
|
||||
"QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU\n"\
|
||||
"fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826\n"\
|
||||
"YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w\n"\
|
||||
"ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY\n"\
|
||||
"gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe\n"\
|
||||
"MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0\n"\
|
||||
"IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy\n"\
|
||||
"dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw\n"\
|
||||
"czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0\n"\
|
||||
"dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl\n"\
|
||||
"aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC\n"\
|
||||
"AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg\n"\
|
||||
"b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB\n"\
|
||||
"ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc\n"\
|
||||
"nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg\n"\
|
||||
"18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c\n"\
|
||||
"gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl\n"\
|
||||
"Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY\n"\
|
||||
"sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T\n"\
|
||||
"SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF\n"\
|
||||
"CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum\n"\
|
||||
"GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk\n"\
|
||||
"zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW\n"\
|
||||
"omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD\n"\
|
||||
BIO *bio = NULL;
|
||||
char *mypem =
|
||||
/* CA for example.com. CN = DigiCert High Assurance EV Root CA */
|
||||
"-----BEGIN CERTIFICATE-----\n"
|
||||
"MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs\n"
|
||||
"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n"
|
||||
"d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\n"
|
||||
"ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL\n"
|
||||
"MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\n"
|
||||
"LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug\n"
|
||||
"RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm\n"
|
||||
"+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW\n"
|
||||
"PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM\n"
|
||||
"xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB\n"
|
||||
"Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3\n"
|
||||
"hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg\n"
|
||||
"EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF\n"
|
||||
"MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA\n"
|
||||
"FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec\n"
|
||||
"nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z\n"
|
||||
"eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF\n"
|
||||
"hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2\n"
|
||||
"Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe\n"
|
||||
"vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep\n"
|
||||
"+OkuE6N36B9K\n"
|
||||
"-----END CERTIFICATE-----\n";
|
||||
|
||||
/* clear the current thread's OpenSSL error queue */
|
||||
ERR_clear_error();
|
||||
|
||||
/* get a BIO */
|
||||
bio = BIO_new_mem_buf(mypem, -1);
|
||||
if(!bio)
|
||||
goto err;
|
||||
|
||||
/* use it to read the PEM formatted certificate from memory into an X509
|
||||
* structure that SSL can use
|
||||
*/
|
||||
PEM_read_bio_X509(bio, &cert, 0, NULL);
|
||||
if(cert == NULL)
|
||||
printf("PEM_read_bio_X509 failed...\n");
|
||||
if(!PEM_read_bio_X509(bio, &cert, 0, NULL))
|
||||
goto err;
|
||||
|
||||
/* get a pointer to the X509 certificate store (which may be empty!) */
|
||||
store = SSL_CTX_get_cert_store((SSL_CTX *)sslctx);
|
||||
if(!store)
|
||||
goto err;
|
||||
|
||||
/* add our certificate to this store */
|
||||
if(X509_STORE_add_cert(store, cert)==0)
|
||||
printf("error adding certificate\n");
|
||||
if(!X509_STORE_add_cert(store, cert)) {
|
||||
unsigned long error = ERR_peek_last_error();
|
||||
|
||||
/* Ignore error X509_R_CERT_ALREADY_IN_HASH_TABLE which means the
|
||||
* certificate is already in the store. That could happen if
|
||||
* libcurl already loaded the certificate from a ca cert bundle
|
||||
* set at libcurl build-time or runtime.
|
||||
*/
|
||||
if(ERR_GET_LIB(error) != ERR_LIB_X509 ||
|
||||
ERR_GET_REASON(error) != X509_R_CERT_ALREADY_IN_HASH_TABLE)
|
||||
goto err;
|
||||
|
||||
ERR_clear_error();
|
||||
}
|
||||
|
||||
rv = CURLE_OK;
|
||||
|
||||
err:
|
||||
if(rv != CURLE_OK) {
|
||||
char errbuf[256];
|
||||
unsigned long error = ERR_peek_last_error();
|
||||
|
||||
fprintf(stderr, "error adding certificate\n");
|
||||
if(error) {
|
||||
ERR_error_string_n(error, errbuf, sizeof errbuf);
|
||||
fprintf(stderr, "%s\n", errbuf);
|
||||
}
|
||||
}
|
||||
|
||||
/* decrease reference counts */
|
||||
X509_free(cert);
|
||||
BIO_free(bio);
|
||||
ERR_clear_error();
|
||||
|
||||
/* all set to go */
|
||||
return CURLE_OK;
|
||||
return rv;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
|
@ -124,7 +142,15 @@ int main(void)
|
|||
rv = curl_easy_setopt(ch, CURLOPT_SSL_VERIFYPEER, 1L);
|
||||
rv = curl_easy_setopt(ch, CURLOPT_URL, "https://www.example.com/");
|
||||
|
||||
/* first try: retrieve page without cacerts' certificate -> will fail
|
||||
/* turn off the default CA locations (optional)
|
||||
* otherwise libcurl will load CA certificates from the locations that
|
||||
* were detected/specified at build-time
|
||||
*/
|
||||
rv = curl_easy_setopt(ch, CURLOPT_CAINFO, NULL);
|
||||
rv = curl_easy_setopt(ch, CURLOPT_CAPATH, NULL);
|
||||
|
||||
/* first try: retrieve page without ca certificates -> should fail
|
||||
* unless libcurl was built --with-ca-fallback enabled at build-time
|
||||
*/
|
||||
rv = curl_easy_perform(ch);
|
||||
if(rv == CURLE_OK)
|
||||
|
@ -132,6 +158,17 @@ int main(void)
|
|||
else
|
||||
printf("*** transfer failed ***\n");
|
||||
|
||||
/* use a fresh connection (optional)
|
||||
* this option seriously impacts performance of multiple transfers but
|
||||
* it is necessary order to demonstrate this example. recall that the
|
||||
* ssl ctx callback is only called _before_ an SSL connection is
|
||||
* established, therefore it will not affect existing verified SSL
|
||||
* connections already in the connection cache associated with this
|
||||
* handle. normally you would set the ssl ctx function before making
|
||||
* any transfers, and not use this option.
|
||||
*/
|
||||
rv = curl_easy_setopt(ch, CURLOPT_FRESH_CONNECT, 1L);
|
||||
|
||||
/* second try: retrieve page using cacerts' certificate -> will succeed
|
||||
* load the certificate by installing a function doing the necessary
|
||||
* "modifications" to the SSL CONTEXT just before link init
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -195,7 +195,8 @@ static int ssl_app_verify_callback(X509_STORE_CTX *ctx, void *arg)
|
|||
if(p->verbose > 2)
|
||||
BIO_printf(p->errorbio, "entering ssl_app_verify_callback\n");
|
||||
|
||||
if((ok= X509_verify_cert(ctx)) && ctx->cert) {
|
||||
ok = X509_verify_cert(ctx);
|
||||
if(ok && ctx->cert) {
|
||||
unsigned char *accessinfo;
|
||||
if(p->verbose > 1)
|
||||
X509_print_ex(p->errorbio, ctx->cert, 0, 0);
|
||||
|
@ -383,7 +384,8 @@ int main(int argc, char **argv)
|
|||
|
||||
/* set input */
|
||||
|
||||
if((in=BIO_new(BIO_s_file())) == NULL) {
|
||||
in = BIO_new(BIO_s_file());
|
||||
if(in == NULL) {
|
||||
BIO_printf(p.errorbio, "Error setting input bio\n");
|
||||
goto err;
|
||||
}
|
||||
|
@ -397,7 +399,8 @@ int main(int argc, char **argv)
|
|||
|
||||
/* set output */
|
||||
|
||||
if((out=BIO_new(BIO_s_file())) == NULL) {
|
||||
out = BIO_new(BIO_s_file());
|
||||
if(out == NULL) {
|
||||
BIO_printf(p.errorbio, "Error setting output bio.\n");
|
||||
goto err;
|
||||
}
|
||||
|
@ -534,7 +537,7 @@ int main(int argc, char **argv)
|
|||
res = curl_easy_perform(p.curl));
|
||||
{
|
||||
int result = curl_easy_getinfo(p.curl, CURLINFO_CONTENT_TYPE, &response);
|
||||
if(mimetypeaccept && p.verbose)
|
||||
if(mimetypeaccept && p.verbose) {
|
||||
if(!strcmp(mimetypeaccept, response))
|
||||
BIO_printf(p.errorbio, "the response has a correct mimetype : %s\n",
|
||||
response);
|
||||
|
@ -543,6 +546,7 @@ int main(int argc, char **argv)
|
|||
"mime type, it is %s instead of %s\n",
|
||||
response, mimetypeaccept);
|
||||
}
|
||||
}
|
||||
|
||||
/*** code d'erreur si accept mime ***, egalement code return HTTP != 200 ***/
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -62,14 +62,16 @@ void dump(const char *text,
|
|||
|
||||
for(c = 0; (c < width) && (i + c < size); c++) {
|
||||
/* check for 0D0A; if found, skip past and start a new line of output */
|
||||
if(nohex && (i+c+1 < size) && ptr[i+c]==0x0D && ptr[i+c+1]==0x0A) {
|
||||
if(nohex && (i + c + 1 < size) && ptr[i + c] == 0x0D &&
|
||||
ptr[i + c + 1] == 0x0A) {
|
||||
i += (c + 2 - width);
|
||||
break;
|
||||
}
|
||||
fprintf(stream, "%c",
|
||||
(ptr[i + c] >= 0x20) && (ptr[i + c]<0x80)?ptr[i + c]:'.');
|
||||
/* check again for 0D0A, to avoid an extra \n if it's at width */
|
||||
if(nohex && (i+c+2 < size) && ptr[i+c+1]==0x0D && ptr[i+c+2]==0x0A) {
|
||||
if(nohex && (i + c + 2 < size) && ptr[i + c + 1] == 0x0D &&
|
||||
ptr[i + c + 2] == 0x0A) {
|
||||
i += (c + 3 - width);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
* 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
|
||||
* Copyright (c) 2003, 2017 Simtec Electronics
|
||||
*
|
||||
* Re-implemented by Vincent Sanders <vince@kyllikki.org> with extensive
|
||||
* reference to original curl example code
|
||||
|
@ -243,7 +243,8 @@ URL_FILE *url_fopen(const char *url, const char *operation)
|
|||
|
||||
memset(file, 0, sizeof(URL_FILE));
|
||||
|
||||
if((file->handle.file=fopen(url, operation)))
|
||||
file->handle.file = fopen(url, operation);
|
||||
if(file->handle.file)
|
||||
file->type = CFTYPE_FILE; /* marked as URL */
|
||||
|
||||
else {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2015, 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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -26,44 +26,32 @@
|
|||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER < 1300)
|
||||
# error _snscanf requires MSVC 7.0 or later.
|
||||
#endif
|
||||
|
||||
/* The MinGW headers are missing a few Win32 function definitions,
|
||||
you shouldn't need this if you use VC++ */
|
||||
#if defined(__MINGW32__) && !defined(__MINGW64__)
|
||||
int __cdecl _snscanf(const char *input, size_t length,
|
||||
const char *format, ...);
|
||||
#endif
|
||||
|
||||
|
||||
/* parse headers for Content-Length */
|
||||
size_t getcontentlengthfunc(void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
static size_t getcontentlengthfunc(void *ptr, size_t size, size_t nmemb,
|
||||
void *stream)
|
||||
{
|
||||
int r;
|
||||
long len = 0;
|
||||
|
||||
/* _snscanf() is Win32 specific */
|
||||
r = _snscanf(ptr, size * nmemb, "Content-Length: %ld\n", &len);
|
||||
|
||||
if(r) /* Microsoft: we don't read the specs */
|
||||
r = sscanf(ptr, "Content-Length: %ld\n", &len);
|
||||
if(r)
|
||||
*((long *) stream) = len;
|
||||
|
||||
return size * nmemb;
|
||||
}
|
||||
|
||||
/* discard downloaded data */
|
||||
size_t discardfunc(void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
static size_t discardfunc(void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
{
|
||||
(void)ptr;
|
||||
(void)stream;
|
||||
return size * nmemb;
|
||||
}
|
||||
|
||||
/* read data to upload */
|
||||
size_t readfunc(void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
static size_t readfunc(void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
{
|
||||
FILE *f = stream;
|
||||
size_t n;
|
||||
|
@ -77,8 +65,8 @@ size_t readfunc(void *ptr, size_t size, size_t nmemb, void *stream)
|
|||
}
|
||||
|
||||
|
||||
int upload(CURL *curlhandle, const char *remotepath, const char *localpath,
|
||||
long timeout, long tries)
|
||||
static int upload(CURL *curlhandle, const char *remotepath,
|
||||
const char *localpath, long timeout, long tries)
|
||||
{
|
||||
FILE *f;
|
||||
long uploaded_len = 0;
|
||||
|
@ -156,7 +144,7 @@ int upload(CURL *curlhandle, const char *remotepath, const char *localpath,
|
|||
}
|
||||
}
|
||||
|
||||
int main(int c, char **argv)
|
||||
int main(void)
|
||||
{
|
||||
CURL *curlhandle = NULL;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -89,14 +89,16 @@ void dump(const char *text, int num, unsigned char *ptr, size_t size,
|
|||
|
||||
for(c = 0; (c < width) && (i + c < size); c++) {
|
||||
/* check for 0D0A; if found, skip past and start a new line of output */
|
||||
if(nohex && (i+c+1 < size) && ptr[i+c]==0x0D && ptr[i+c+1]==0x0A) {
|
||||
if(nohex && (i + c + 1 < size) && ptr[i + c] == 0x0D &&
|
||||
ptr[i + c + 1] == 0x0A) {
|
||||
i += (c + 2 - width);
|
||||
break;
|
||||
}
|
||||
fprintf(stderr, "%c",
|
||||
(ptr[i + c] >= 0x20) && (ptr[i + c]<0x80)?ptr[i + c]:'.');
|
||||
/* check again for 0D0A, to avoid an extra \n if it's at width */
|
||||
if(nohex && (i+c+2 < size) && ptr[i+c+1]==0x0D && ptr[i+c+2]==0x0A) {
|
||||
if(nohex && (i + c + 2 < size) && ptr[i + c + 1] == 0x0D &&
|
||||
ptr[i + c + 2] == 0x0A) {
|
||||
i += (c + 3 - width);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -69,14 +69,16 @@ void dump(const char *text, unsigned char *ptr, size_t size,
|
|||
|
||||
for(c = 0; (c < width) && (i + c < size); c++) {
|
||||
/* check for 0D0A; if found, skip past and start a new line of output */
|
||||
if(nohex && (i+c+1 < size) && ptr[i+c]==0x0D && ptr[i+c+1]==0x0A) {
|
||||
if(nohex && (i + c + 1 < size) && ptr[i + c] == 0x0D &&
|
||||
ptr[i + c + 1] == 0x0A) {
|
||||
i += (c + 2 - width);
|
||||
break;
|
||||
}
|
||||
fprintf(stderr, "%c",
|
||||
(ptr[i + c] >= 0x20) && (ptr[i + c]<0x80)?ptr[i + c]:'.');
|
||||
/* check again for 0D0A, to avoid an extra \n if it's at width */
|
||||
if(nohex && (i+c+2 < size) && ptr[i+c+1]==0x0D && ptr[i+c+2]==0x0A) {
|
||||
if(nohex && (i + c + 2 < size) && ptr[i + c + 1] == 0x0D &&
|
||||
ptr[i + c + 2] == 0x0A) {
|
||||
i += (c + 3 - width);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -90,14 +90,16 @@ void dump(const char *text, int num, unsigned char *ptr, size_t size,
|
|||
|
||||
for(c = 0; (c < width) && (i + c < size); c++) {
|
||||
/* check for 0D0A; if found, skip past and start a new line of output */
|
||||
if(nohex && (i+c+1 < size) && ptr[i+c]==0x0D && ptr[i+c+1]==0x0A) {
|
||||
if(nohex && (i + c + 1 < size) && ptr[i + c] == 0x0D &&
|
||||
ptr[i + c + 1] == 0x0A) {
|
||||
i += (c + 2 - width);
|
||||
break;
|
||||
}
|
||||
fprintf(stderr, "%c",
|
||||
(ptr[i + c] >= 0x20) && (ptr[i + c]<0x80)?ptr[i + c]:'.');
|
||||
/* check again for 0D0A, to avoid an extra \n if it's at width */
|
||||
if(nohex && (i+c+2 < size) && ptr[i+c+1]==0x0D && ptr[i+c+2]==0x0A) {
|
||||
if(nohex && (i + c + 2 < size) && ptr[i + c + 1] == 0x0D &&
|
||||
ptr[i + c + 2] == 0x0A) {
|
||||
i += (c + 3 - width);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -69,14 +69,16 @@ void dump(const char *text,
|
|||
|
||||
for(c = 0; (c < width) && (i + c < size); c++) {
|
||||
/* check for 0D0A; if found, skip past and start a new line of output */
|
||||
if(nohex && (i+c+1 < size) && ptr[i+c]==0x0D && ptr[i+c+1]==0x0A) {
|
||||
if(nohex && (i + c + 1 < size) && ptr[i + c] == 0x0D &&
|
||||
ptr[i + c + 1] == 0x0A) {
|
||||
i += (c + 2 - width);
|
||||
break;
|
||||
}
|
||||
fprintf(stream, "%c",
|
||||
(ptr[i + c] >= 0x20) && (ptr[i + c]<0x80)?ptr[i + c]:'.');
|
||||
/* check again for 0D0A, to avoid an extra \n if it's at width */
|
||||
if(nohex && (i+c+2 < size) && ptr[i+c+1]==0x0D && ptr[i+c+2]==0x0A) {
|
||||
if(nohex && (i + c + 2 < size) && ptr[i + c + 1] == 0x0D &&
|
||||
ptr[i + c + 2] == 0x0A) {
|
||||
i += (c + 3 - width);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
171
curl/docs/examples/multi-formadd.c
Normal file
171
curl/docs/examples/multi-formadd.c
Normal file
|
@ -0,0 +1,171 @@
|
|||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* 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>
|
||||
* using the multi interface to do a multipart formpost without blocking
|
||||
* </DESC>
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
CURL *curl;
|
||||
|
||||
CURLM *multi_handle;
|
||||
int still_running;
|
||||
|
||||
struct curl_httppost *formpost = NULL;
|
||||
struct curl_httppost *lastptr = NULL;
|
||||
struct curl_slist *headerlist = NULL;
|
||||
static const char buf[] = "Expect:";
|
||||
|
||||
/* Fill in the file upload field. This makes libcurl load data from
|
||||
the given file name when curl_easy_perform() is called. */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "sendfile",
|
||||
CURLFORM_FILE, "postit2.c",
|
||||
CURLFORM_END);
|
||||
|
||||
/* Fill in the filename field */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "filename",
|
||||
CURLFORM_COPYCONTENTS, "postit2.c",
|
||||
CURLFORM_END);
|
||||
|
||||
/* Fill in the submit field too, even if this is rarely needed */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "submit",
|
||||
CURLFORM_COPYCONTENTS, "send",
|
||||
CURLFORM_END);
|
||||
|
||||
curl = curl_easy_init();
|
||||
multi_handle = curl_multi_init();
|
||||
|
||||
/* initialize custom header list (stating that Expect: 100-continue is not
|
||||
wanted */
|
||||
headerlist = curl_slist_append(headerlist, buf);
|
||||
if(curl && multi_handle) {
|
||||
|
||||
/* what URL that receives this POST */
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/upload.cgi");
|
||||
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
|
||||
|
||||
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
|
||||
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
|
||||
|
||||
curl_multi_add_handle(multi_handle, curl);
|
||||
|
||||
curl_multi_perform(multi_handle, &still_running);
|
||||
|
||||
do {
|
||||
struct timeval timeout;
|
||||
int rc; /* select() return code */
|
||||
CURLMcode mc; /* curl_multi_fdset() return code */
|
||||
|
||||
fd_set fdread;
|
||||
fd_set fdwrite;
|
||||
fd_set fdexcep;
|
||||
int maxfd = -1;
|
||||
|
||||
long curl_timeo = -1;
|
||||
|
||||
FD_ZERO(&fdread);
|
||||
FD_ZERO(&fdwrite);
|
||||
FD_ZERO(&fdexcep);
|
||||
|
||||
/* set a suitable timeout to play around with */
|
||||
timeout.tv_sec = 1;
|
||||
timeout.tv_usec = 0;
|
||||
|
||||
curl_multi_timeout(multi_handle, &curl_timeo);
|
||||
if(curl_timeo >= 0) {
|
||||
timeout.tv_sec = curl_timeo / 1000;
|
||||
if(timeout.tv_sec > 1)
|
||||
timeout.tv_sec = 1;
|
||||
else
|
||||
timeout.tv_usec = (curl_timeo % 1000) * 1000;
|
||||
}
|
||||
|
||||
/* get file descriptors from the transfers */
|
||||
mc = curl_multi_fdset(multi_handle, &fdread, &fdwrite, &fdexcep, &maxfd);
|
||||
|
||||
if(mc != CURLM_OK) {
|
||||
fprintf(stderr, "curl_multi_fdset() failed, code %d.\n", mc);
|
||||
break;
|
||||
}
|
||||
|
||||
/* On success the value of maxfd is guaranteed to be >= -1. We call
|
||||
select(maxfd + 1, ...); specially in case of (maxfd == -1) there are
|
||||
no fds ready yet so we call select(0, ...) --or Sleep() on Windows--
|
||||
to sleep 100ms, which is the minimum suggested value in the
|
||||
curl_multi_fdset() doc. */
|
||||
|
||||
if(maxfd == -1) {
|
||||
#ifdef _WIN32
|
||||
Sleep(100);
|
||||
rc = 0;
|
||||
#else
|
||||
/* Portable sleep for platforms other than Windows. */
|
||||
struct timeval wait = { 0, 100 * 1000 }; /* 100ms */
|
||||
rc = select(0, NULL, NULL, NULL, &wait);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
/* Note that on some platforms 'timeout' may be modified by select().
|
||||
If you need access to the original value save a copy beforehand. */
|
||||
rc = select(maxfd + 1, &fdread, &fdwrite, &fdexcep, &timeout);
|
||||
}
|
||||
|
||||
switch(rc) {
|
||||
case -1:
|
||||
/* select error */
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
/* timeout or readable/writable sockets */
|
||||
printf("perform!\n");
|
||||
curl_multi_perform(multi_handle, &still_running);
|
||||
printf("running: %d!\n", still_running);
|
||||
break;
|
||||
}
|
||||
} while(still_running);
|
||||
|
||||
curl_multi_cleanup(multi_handle);
|
||||
|
||||
/* always cleanup */
|
||||
curl_easy_cleanup(curl);
|
||||
|
||||
/* then cleanup the formpost chain */
|
||||
curl_formfree(formpost);
|
||||
|
||||
/* free slist */
|
||||
curl_slist_free_all(headerlist);
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -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
|
||||
|
@ -37,47 +37,43 @@ int main(void)
|
|||
CURLM *multi_handle;
|
||||
int still_running;
|
||||
|
||||
struct curl_httppost *formpost=NULL;
|
||||
struct curl_httppost *lastptr=NULL;
|
||||
curl_mime *form = NULL;
|
||||
curl_mimepart *field = NULL;
|
||||
struct curl_slist *headerlist = NULL;
|
||||
static const char buf[] = "Expect:";
|
||||
|
||||
/* Fill in the file upload field. This makes libcurl load data from
|
||||
the given file name when curl_easy_perform() is called. */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "sendfile",
|
||||
CURLFORM_FILE, "postit2.c",
|
||||
CURLFORM_END);
|
||||
|
||||
/* Fill in the filename field */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "filename",
|
||||
CURLFORM_COPYCONTENTS, "postit2.c",
|
||||
CURLFORM_END);
|
||||
|
||||
/* Fill in the submit field too, even if this is rarely needed */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "submit",
|
||||
CURLFORM_COPYCONTENTS, "send",
|
||||
CURLFORM_END);
|
||||
|
||||
curl = curl_easy_init();
|
||||
multi_handle = curl_multi_init();
|
||||
|
||||
if(curl && multi_handle) {
|
||||
/* Create the form */
|
||||
form = curl_mime_init(curl);
|
||||
|
||||
/* Fill in the file upload field */
|
||||
field = curl_mime_addpart(form);
|
||||
curl_mime_name(field, "sendfile");
|
||||
curl_mime_filedata(field, "multi-post.c");
|
||||
|
||||
/* Fill in the filename field */
|
||||
field = curl_mime_addpart(form);
|
||||
curl_mime_name(field, "filename");
|
||||
curl_mime_data(field, "multi-post.c", CURL_ZERO_TERMINATED);
|
||||
|
||||
/* Fill in the submit field too, even if this is rarely needed */
|
||||
field = curl_mime_addpart(form);
|
||||
curl_mime_name(field, "submit");
|
||||
curl_mime_data(field, "send", CURL_ZERO_TERMINATED);
|
||||
|
||||
/* initialize custom header list (stating that Expect: 100-continue is not
|
||||
wanted */
|
||||
headerlist = curl_slist_append(headerlist, buf);
|
||||
if(curl && multi_handle) {
|
||||
|
||||
/* what URL that receives this POST */
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/upload.cgi");
|
||||
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
|
||||
|
||||
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
|
||||
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
|
||||
curl_easy_setopt(curl, CURLOPT_MIMEPOST, form);
|
||||
|
||||
curl_multi_add_handle(multi_handle, curl);
|
||||
|
||||
|
@ -161,8 +157,8 @@ int main(void)
|
|||
/* always cleanup */
|
||||
curl_easy_cleanup(curl);
|
||||
|
||||
/* then cleanup the formpost chain */
|
||||
curl_formfree(formpost);
|
||||
/* then cleanup the form */
|
||||
curl_mime_free(form);
|
||||
|
||||
/* free slist */
|
||||
curl_slist_free_all(headerlist);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -20,33 +20,42 @@
|
|||
*
|
||||
***************************************************************************/
|
||||
/* <DESC>
|
||||
* An example source code that issues a HTTP POST and we provide the actual
|
||||
* data through a read callback.
|
||||
* Issue an HTTP POST and provide the data through the read callback.
|
||||
* </DESC>
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <curl/curl.h>
|
||||
|
||||
static const char data[]="this is what we post to the silly web server";
|
||||
/* silly test data to POST */
|
||||
static const char data[]="Lorem ipsum dolor sit amet, consectetur adipiscing "
|
||||
"elit. Sed vel urna neque. Ut quis leo metus. Quisque eleifend, ex at "
|
||||
"laoreet rhoncus, odio ipsum semper metus, at tempus ante urna in mauris. "
|
||||
"Suspendisse ornare tempor venenatis. Ut dui neque, pellentesque a varius "
|
||||
"eget, mattis vitae ligula. Fusce ut pharetra est. Ut ullamcorper mi ac "
|
||||
"sollicitudin semper. Praesent sit amet tellus varius, posuere nulla non, "
|
||||
"rhoncus ipsum.";
|
||||
|
||||
struct WriteThis {
|
||||
const char *readptr;
|
||||
long sizeleft;
|
||||
size_t sizeleft;
|
||||
};
|
||||
|
||||
static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp)
|
||||
static size_t read_callback(void *dest, size_t size, size_t nmemb, void *userp)
|
||||
{
|
||||
struct WriteThis *pooh = (struct WriteThis *)userp;
|
||||
struct WriteThis *wt = (struct WriteThis *)userp;
|
||||
size_t buffer_size = size*nmemb;
|
||||
|
||||
if(size*nmemb < 1)
|
||||
return 0;
|
||||
if(wt->sizeleft) {
|
||||
/* copy as much as possible from the source to the destination */
|
||||
size_t copy_this_much = wt->sizeleft;
|
||||
if(copy_this_much > buffer_size)
|
||||
copy_this_much = buffer_size;
|
||||
memcpy(dest, wt->readptr, copy_this_much);
|
||||
|
||||
if(pooh->sizeleft) {
|
||||
*(char *)ptr = pooh->readptr[0]; /* copy one single byte */
|
||||
pooh->readptr++; /* advance pointer */
|
||||
pooh->sizeleft--; /* less data left */
|
||||
return 1; /* we return 1 byte at a time! */
|
||||
wt->readptr += copy_this_much;
|
||||
wt->sizeleft -= copy_this_much;
|
||||
return copy_this_much; /* we copied this many bytes */
|
||||
}
|
||||
|
||||
return 0; /* no more data left to deliver */
|
||||
|
@ -57,10 +66,10 @@ int main(void)
|
|||
CURL *curl;
|
||||
CURLcode res;
|
||||
|
||||
struct WriteThis pooh;
|
||||
struct WriteThis wt;
|
||||
|
||||
pooh.readptr = data;
|
||||
pooh.sizeleft = (long)strlen(data);
|
||||
wt.readptr = data;
|
||||
wt.sizeleft = strlen(data);
|
||||
|
||||
/* In windows, this will init the winsock stuff */
|
||||
res = curl_global_init(CURL_GLOBAL_DEFAULT);
|
||||
|
@ -75,7 +84,7 @@ int main(void)
|
|||
curl = curl_easy_init();
|
||||
if(curl) {
|
||||
/* First set the URL that is about to receive our POST. */
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/index.cgi");
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/index.cgi");
|
||||
|
||||
/* Now specify we want to POST data */
|
||||
curl_easy_setopt(curl, CURLOPT_POST, 1L);
|
||||
|
@ -84,7 +93,7 @@ int main(void)
|
|||
curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback);
|
||||
|
||||
/* pointer to pass to our read function */
|
||||
curl_easy_setopt(curl, CURLOPT_READDATA, &pooh);
|
||||
curl_easy_setopt(curl, CURLOPT_READDATA, &wt);
|
||||
|
||||
/* get verbose debug output please */
|
||||
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
|
||||
|
@ -108,7 +117,7 @@ int main(void)
|
|||
#else
|
||||
/* Set the expected POST size. If you want to POST large amounts of data,
|
||||
consider CURLOPT_POSTFIELDSIZE_LARGE */
|
||||
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, pooh.sizeleft);
|
||||
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)wt.sizeleft);
|
||||
#endif
|
||||
|
||||
#ifdef DISABLE_EXPECT
|
||||
|
|
|
@ -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
|
||||
|
|
107
curl/docs/examples/postit2-formadd.c
Normal file
107
curl/docs/examples/postit2-formadd.c
Normal file
|
@ -0,0 +1,107 @@
|
|||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* 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>
|
||||
* HTTP Multipart formpost with file upload and two additional parts.
|
||||
* </DESC>
|
||||
*/
|
||||
/* Example code that uploads a file name 'foo' to a remote script that accepts
|
||||
* "HTML form based" (as described in RFC1738) uploads using HTTP POST.
|
||||
*
|
||||
* The imaginary form we'll fill in looks like:
|
||||
*
|
||||
* <form method="post" enctype="multipart/form-data" action="examplepost.cgi">
|
||||
* Enter file: <input type="file" name="sendfile" size="40">
|
||||
* Enter file name: <input type="text" name="filename" size="30">
|
||||
* <input type="submit" value="send" name="submit">
|
||||
* </form>
|
||||
*
|
||||
* This exact source code has not been verified to work.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
CURL *curl;
|
||||
CURLcode res;
|
||||
|
||||
struct curl_httppost *formpost = NULL;
|
||||
struct curl_httppost *lastptr = NULL;
|
||||
struct curl_slist *headerlist = NULL;
|
||||
static const char buf[] = "Expect:";
|
||||
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
|
||||
/* Fill in the file upload field */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "sendfile",
|
||||
CURLFORM_FILE, "postit2.c",
|
||||
CURLFORM_END);
|
||||
|
||||
/* Fill in the filename field */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "filename",
|
||||
CURLFORM_COPYCONTENTS, "postit2.c",
|
||||
CURLFORM_END);
|
||||
|
||||
|
||||
/* Fill in the submit field too, even if this is rarely needed */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "submit",
|
||||
CURLFORM_COPYCONTENTS, "send",
|
||||
CURLFORM_END);
|
||||
|
||||
curl = curl_easy_init();
|
||||
/* initialize custom header list (stating that Expect: 100-continue is not
|
||||
wanted */
|
||||
headerlist = curl_slist_append(headerlist, buf);
|
||||
if(curl) {
|
||||
/* what URL that receives this POST */
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/examplepost.cgi");
|
||||
if((argc == 2) && (!strcmp(argv[1], "noexpectheader")))
|
||||
/* only disable 100-continue header if explicitly requested */
|
||||
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
|
||||
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
|
||||
|
||||
/* 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);
|
||||
|
||||
/* then cleanup the formpost chain */
|
||||
curl_formfree(formpost);
|
||||
/* free slist */
|
||||
curl_slist_free_all(headerlist);
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -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,46 +47,42 @@ int main(int argc, char *argv[])
|
|||
CURL *curl;
|
||||
CURLcode res;
|
||||
|
||||
struct curl_httppost *formpost=NULL;
|
||||
struct curl_httppost *lastptr=NULL;
|
||||
curl_mime *form = NULL;
|
||||
curl_mimepart *field = NULL;
|
||||
struct curl_slist *headerlist = NULL;
|
||||
static const char buf[] = "Expect:";
|
||||
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
|
||||
curl = curl_easy_init();
|
||||
if(curl) {
|
||||
/* Create the form */
|
||||
form = curl_mime_init(curl);
|
||||
|
||||
/* Fill in the file upload field */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "sendfile",
|
||||
CURLFORM_FILE, "postit2.c",
|
||||
CURLFORM_END);
|
||||
field = curl_mime_addpart(form);
|
||||
curl_mime_name(field, "sendfile");
|
||||
curl_mime_filedata(field, "postit2.c");
|
||||
|
||||
/* Fill in the filename field */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "filename",
|
||||
CURLFORM_COPYCONTENTS, "postit2.c",
|
||||
CURLFORM_END);
|
||||
|
||||
field = curl_mime_addpart(form);
|
||||
curl_mime_name(field, "filename");
|
||||
curl_mime_data(field, "postit2.c", CURL_ZERO_TERMINATED);
|
||||
|
||||
/* Fill in the submit field too, even if this is rarely needed */
|
||||
curl_formadd(&formpost,
|
||||
&lastptr,
|
||||
CURLFORM_COPYNAME, "submit",
|
||||
CURLFORM_COPYCONTENTS, "send",
|
||||
CURLFORM_END);
|
||||
field = curl_mime_addpart(form);
|
||||
curl_mime_name(field, "submit");
|
||||
curl_mime_data(field, "send", CURL_ZERO_TERMINATED);
|
||||
|
||||
curl = curl_easy_init();
|
||||
/* initialize custom header list (stating that Expect: 100-continue is not
|
||||
wanted */
|
||||
headerlist = curl_slist_append(headerlist, buf);
|
||||
if(curl) {
|
||||
/* what URL that receives this POST */
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/examplepost.cgi");
|
||||
if((argc == 2) && (!strcmp(argv[1], "noexpectheader")))
|
||||
/* only disable 100-continue header if explicitly requested */
|
||||
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
|
||||
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
|
||||
curl_easy_setopt(curl, CURLOPT_MIMEPOST, form);
|
||||
|
||||
/* Perform the request, res will get the return code */
|
||||
res = curl_easy_perform(curl);
|
||||
|
@ -98,8 +94,8 @@ int main(int argc, char *argv[])
|
|||
/* always cleanup */
|
||||
curl_easy_cleanup(curl);
|
||||
|
||||
/* then cleanup the formpost chain */
|
||||
curl_formfree(formpost);
|
||||
/* then cleanup the form */
|
||||
curl_mime_free(form);
|
||||
/* free slist */
|
||||
curl_slist_free_all(headerlist);
|
||||
}
|
||||
|
|
|
@ -63,13 +63,13 @@ static int _getch(void)
|
|||
/* error handling macros */
|
||||
#define my_curl_easy_setopt(A, B, C) \
|
||||
res = curl_easy_setopt((A), (B), (C)); \
|
||||
if(!res) \
|
||||
if(res != CURLE_OK) \
|
||||
fprintf(stderr, "curl_easy_setopt(%s, %s, %s) failed: %d\n", \
|
||||
#A, #B, #C, res);
|
||||
|
||||
#define my_curl_easy_perform(A) \
|
||||
res = curl_easy_perform(A); \
|
||||
if(!res) \
|
||||
if(res != CURLE_OK) \
|
||||
fprintf(stderr, "curl_easy_perform(%s) failed: %d\n", #A, res);
|
||||
|
||||
|
||||
|
@ -129,6 +129,9 @@ static void rtsp_play(CURL *curl, const char *uri, const char *range)
|
|||
my_curl_easy_setopt(curl, CURLOPT_RANGE, range);
|
||||
my_curl_easy_setopt(curl, CURLOPT_RTSP_REQUEST, (long)CURL_RTSPREQ_PLAY);
|
||||
my_curl_easy_perform(curl);
|
||||
|
||||
/* switch off using range again */
|
||||
my_curl_easy_setopt(curl, CURLOPT_RANGE, NULL);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
85
curl/docs/examples/shared-connection-cache.c
Normal file
85
curl/docs/examples/shared-connection-cache.c
Normal file
|
@ -0,0 +1,85 @@
|
|||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* 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>
|
||||
* Connection cache shared between easy handles with the share inteface
|
||||
* </DESC>
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <curl/curl.h>
|
||||
|
||||
static void my_lock(CURL *handle, curl_lock_data data,
|
||||
curl_lock_access laccess, void *useptr)
|
||||
{
|
||||
(void)handle;
|
||||
(void)data;
|
||||
(void)laccess;
|
||||
(void)useptr;
|
||||
fprintf(stderr, "-> Mutex lock\n");
|
||||
}
|
||||
|
||||
static void my_unlock(CURL *handle, curl_lock_data data, void *useptr)
|
||||
{
|
||||
(void)handle;
|
||||
(void)data;
|
||||
(void)useptr;
|
||||
fprintf(stderr, "<- Mutex unlock\n");
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
CURL *curl;
|
||||
CURLcode res;
|
||||
CURLSH *share;
|
||||
int i;
|
||||
|
||||
share = curl_share_init();
|
||||
curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_CONNECT);
|
||||
|
||||
curl_share_setopt(share, CURLSHOPT_LOCKFUNC, my_lock);
|
||||
curl_share_setopt(share, CURLSHOPT_UNLOCKFUNC, my_unlock);
|
||||
|
||||
/* Loop the transfer and cleanup the handle properly every lap. This will
|
||||
still reuse connections since the pool is in the shared object! */
|
||||
|
||||
for(i = 0; i < 3; i++) {
|
||||
curl = curl_easy_init();
|
||||
if(curl) {
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "https://curl.haxx.se/");
|
||||
|
||||
/* use the share object */
|
||||
curl_easy_setopt(curl, CURLOPT_SHARE, share);
|
||||
|
||||
/* 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_share_cleanup(share);
|
||||
return 0;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue