=pod

=head1 NAME

SSL_set_session - set a TLS/SSL session to be used during TLS/SSL connect

=head1 SYNOPSIS

 #include <openssl/ssl.h>

 int SSL_set_session(SSL *ssl, SSL_SESSION *session);

=head1 DESCRIPTION

SSL_set_session() sets B<session> to be used when the TLS/SSL connection
is to be established. SSL_set_session() is only useful for TLS/SSL clients.
When the session is set, the reference count of B<session> is incremented
by 1. If the session is not reused, the reference count is decremented
again during SSL_connect().

If there is already a session set inside B<ssl> (because it was set with
SSL_set_session() before or because the same B<ssl> was already used for
a connection), SSL_SESSION_free() will be called for that session.

=head1 RETURN VALUES

The following return values can occur:

=over 4

=item 0

The operation failed; check the error stack to find out the reason.

=item 1

The operation succeeded.

=back

=head1 SEE ALSO

L<ssl(3)|ssl(3)>, L<SSL_SESSION_free(3)|SSL_SESSION_free(3)>,
L<SSL_CTX_set_session_cache_mode(3)|SSL_CTX_set_session_cache_mode(3)>

=cut
