=pod

=head1 NAME

SSL_get_session - retrieve TLS/SSL session data

=head1 SYNOPSIS

 #include <openssl/ssl.h>

 SSL_SESSION *SSL_get_session(SSL *ssl);
 SSL_SESSION *SSL_get0_session(SSL *ssl);
 SSL_SESSION *SSL_get1_session(SSL *ssl);

=head1 DESCRIPTION

SSL_get_session() returns a pointer to the B<SSL_SESSION> actually used in
B<ssl>. The reference count of the B<SSL_SESSION> is not incremented, so
that the pointer can become invalid when the B<ssl> is freed and
SSL_SESSION_free() is implicitly called.

SSL_get0_session() is the same as SSL_get_session().

SSL_get1_session() is the same as SSL_get_session(), but the reference
count of the B<SSL_SESSION> is incremented by one.

=head1 RETURN VALUES

The following return values can occur:

=over 4

=item NULL

There is no session available in B<ssl>.

=item Pointer to an SSL

The return value points to the data of an SSL session.

=back

=head1 SEE ALSO

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

=cut
