1
0
mirror of https://github.com/moparisthebest/curl synced 2024-08-13 17:03:50 -04:00
Go to file
Johannes Schindelin 1328f69d53
vtls: introduce curl_global_sslset()
Let's add a compile time safe API to select an SSL backend. This
function needs to be called *before* curl_global_init(), and can be
called only once.

Side note: we do not explicitly test that it is called before
curl_global_init(), but we do verify that it is not called multiple times
(even implicitly).

If SSL is used before the function was called, it will use whatever the
CURL_SSL_BACKEND environment variable says (or default to the first
available SSL backend), and if a subsequent call to
curl_global_sslset() disagrees with the previous choice, it will fail
with CURLSSLSET_TOO_LATE.

The function also accepts an "avail" parameter to point to a (read-only)
NULL-terminated list of available backends. This comes in real handy if
an application wants to let the user choose between whatever SSL backends
the currently available libcurl has to offer: simply call

	curl_global_sslset(-1, NULL, &avail);

which will return CURLSSLSET_UNKNOWN_BACKEND and populate the avail
variable to point to the relevant information to present to the user.

Just like with the HTTP/2 push functions, we have to add the function
declaration of curl_global_sslset() function to the header file
*multi.h* because VMS and OS/400 require a stable order of functions
declared in include/curl/*.h (where the header files are sorted
alphabetically). This looks a bit funny, but it cannot be helped.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2017-08-28 14:56:59 +02:00
.github ISSUE_TEMPLATE: Add a comment not to file security issues on github 2017-07-11 11:48:37 -04:00
CMake cmake: move cmake_uninstall.cmake to CMake/ 2017-08-10 15:05:49 +02:00
docs vtls: introduce curl_global_sslset() 2017-08-28 14:56:59 +02:00
include vtls: introduce curl_global_sslset() 2017-08-28 14:56:59 +02:00
lib vtls: introduce curl_global_sslset() 2017-08-28 14:56:59 +02:00
m4 m4/curl-compilers.m4: use proper quotes around string, not backticks 2017-08-16 00:05:11 +02:00
packages ssh: add the ability to enable compression (for SCP/SFTP) 2017-08-17 03:32:00 -04:00
projects build: check out *.sln files with Windows line endings 2017-08-10 09:11:46 +02:00
scripts scripts/contri*sh: use "git log --use-mailmap" 2017-08-18 22:41:48 +02:00
src curl: shorten and clean up CA cert verification error message 2017-08-22 23:32:43 +02:00
tests vtls: introduce curl_global_sslset() 2017-08-28 14:56:59 +02:00
winbuild winbuild: fix embedded manifest option 2017-08-26 02:33:01 -04:00
.dir-locals.el Add .dir-locals and set c-basic-offset to 2. 2015-12-23 10:16:14 +01:00
.gitattributes .gitattributes: force shell scripts to LF 2017-04-17 08:32:13 +02:00
.gitignore gitignore: ignore .xz now instead of .lzma 2017-08-13 18:11:44 +02:00
.mailmap mailmap: de-duplify some git authors 2017-08-18 17:49:20 +02:00
.travis.yml travis: add metalink to some osx builds 2017-08-16 13:31:13 +02:00
acinclude.m4 CURL_SIZEOF_LONG: removed, use only SIZEOF_LONG 2017-08-17 10:27:00 +02:00
appveyor.yml AppVeyor: now really use CURL_WERROR 2017-07-29 18:47:18 +02:00
buildconf includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
buildconf.bat includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
CHANGES CHANGES: spell fix, use correct path to script 2017-02-07 08:22:37 +01:00
CMakeLists.txt cmake: enable picky compiler options with clang and gcc 2017-08-20 23:32:32 +02:00
configure.ac vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
COPYING COPYING: update the generic copyright year range 2017-01-07 20:25:43 +01:00
curl-config.in URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
GIT-INFO CHANGES.0: removed 2017-02-07 08:20:10 +01:00
libcurl.pc.in URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
MacOSX-Framework includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
Makefile.am cmake: move cmake_uninstall.cmake to CMake/ 2017-08-10 15:05:49 +02:00
Makefile.dist VC: remove the makefile.vc6 build infra 2017-01-23 14:27:32 +01:00
maketgz maketgz: remove old *.dist files before making the tarball 2017-08-10 22:56:49 +02:00
README URLs: follow GitHub project rename (also Travis CI) 2016-02-04 23:01:38 +01:00
README.md README.md: show the coverall coverage on github 2017-06-06 14:40:57 +02:00
RELEASE-NOTES RELEASE-NOTES: synced with 8baead425 2017-08-18 23:30:40 +02:00

curl logo CII Best Practices Coverity passed Build Status Coverage Status

Curl is a command-line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document.

libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl.3 man page to learn how!

You find answers to the most frequent questions we get in the FAQ document.

Study the COPYING file for distribution terms and similar. If you distribute curl binaries or other binaries that involve libcurl, you might enjoy the LICENSE-MIXING document.

Contact

If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list.

All contributors to the project are listed in the THANKS document.

Website

Visit the curl web site for the latest news and downloads.

Git

To download the very latest source off the Git server do this:

git clone https://github.com/curl/curl.git

(you'll get a directory named curl created, filled with the source code)

Notice

Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms.