Skip to content
  • Johannes Schindelin's avatar
    vtls: introduce curl_global_sslset() · 1328f69d
    Johannes Schindelin authored
    
    
    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: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    1328f69d