From 698a1ec4d52e90d611c233a12147daf261168bc6 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 20 Feb 2013 16:02:42 -0800 Subject: [PATCH] imap-send: support Server Name Indication (RFC4366) To talk with some sites that serve multiple names on a single IP address, the client needs to ask for the specific host that it wants to talk to. Signed-off-by: Junio C Hamano --- imap-send.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/imap-send.c b/imap-send.c index 171c887076..91671d6f41 100644 --- a/imap-send.c +++ b/imap-send.c @@ -370,6 +370,17 @@ static int ssl_socket_connect(struct imap_socket *sock, int use_tls_only, int ve return -1; } +#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME + /* + * SNI (RFC4366) + * OpenSSL does not document this function, but the implementation + * returns 1 on success, 0 on failure after calling SSLerr(). + */ + ret = SSL_set_tlsext_host_name(sock->ssl, server.host); + if (ret != 1) + warning("SSL_set_tlsext_host_name(%s) failed.", server.host); +#endif + ret = SSL_connect(sock->ssl); if (ret <= 0) { socket_perror("SSL_connect", sock, ret); -- 2.11.4.GIT