=pod

=head1 NAME

SSL_SESSION_get0_hostname - retrieve the SNI hostname associated with a session

=head1 SYNOPSIS

 #include <openssl/ssl.h>

 const char *SSL_SESSION_get0_hostname(const SSL_SESSSION *s);

=head1 DESCRIPTION

SSL_SESSION_get0_hostname() retrieves the SNI value that was sent by the
client when the session was created, or NULL if no value was sent.

The value returned is a pointer to memory maintained within B<s> and
should not be free'd.

=head1 SEE ALSO

L<ssl(3)>,
L<d2i_SSL_SESSION(3)>,
L<SSL_SESSION_get_time(3)>,
L<SSL_SESSION_free(3)>

=head1 COPYRIGHT

Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the OpenSSL license (the "License").  You may not use
this file except in compliance with the License.  You can obtain a copy
in the file LICENSE in the source distribution or at
L<https://www.openssl.org/source/license.html>.

=cut
