1=pod 2 3=head1 NAME 4 5SSL_dup, SSL_new, SSL_up_ref - create an SSL structure for a connection 6 7=head1 SYNOPSIS 8 9 #include <openssl/ssl.h> 10 11 SSL *SSL_dup(SSL *s); 12 SSL *SSL_new(SSL_CTX *ctx); 13 int SSL_up_ref(SSL *s); 14 15=head1 DESCRIPTION 16 17SSL_new() creates a new B<SSL> structure which is needed to hold the 18data for a TLS/SSL connection. The new structure inherits the settings 19of the underlying context B<ctx>: connection method, 20options, verification settings, timeout settings. An B<SSL> structure is 21reference counted. Creating an B<SSL> structure for the first time increments 22the reference count. Freeing it (using SSL_free) decrements it. When the 23reference count drops to zero, any memory or resources allocated to the B<SSL> 24structure are freed. 25 26SSL_up_ref() increments the reference count for an 27existing B<SSL> structure. 28 29SSL_dup() duplicates an existing B<SSL> structure into a new allocated one. All 30settings are inherited from the original B<SSL> structure. Dynamic data (i.e. 31existing connection details) are not copied, the new B<SSL> is set into an 32initial accept (server) or connect (client) state. 33 34=head1 RETURN VALUES 35 36The following return values can occur: 37 38=over 4 39 40=item NULL 41 42The creation of a new SSL structure failed. Check the error stack to 43find out the reason. 44 45=item Pointer to an SSL structure 46 47The return value points to an allocated SSL structure. 48 49SSL_up_ref() returns 1 for success and 0 for failure. 50 51=back 52 53=head1 SEE ALSO 54 55L<SSL_free(3)>, L<SSL_clear(3)>, 56L<SSL_CTX_set_options(3)>, 57L<SSL_get_SSL_CTX(3)>, 58L<ssl(7)> 59 60=head1 COPYRIGHT 61 62Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved. 63 64Licensed under the OpenSSL license (the "License"). You may not use 65this file except in compliance with the License. You can obtain a copy 66in the file LICENSE in the source distribution or at 67L<https://www.openssl.org/source/license.html>. 68 69=cut 70