From 03203aba9366a008c11cc74989c0dc86e92d1d04 Mon Sep 17 00:00:00 2001 From: erauhut Date: Sun, 23 Mar 2014 12:24:40 +0800 Subject: [PATCH] trac 58 ssl enable SNI per vhost certs http://libwebsockets.org/trac/libwebsockets/ticket/58#no1 --- lib/client.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/client.c b/lib/client.c index 560603e9..28fcadbc 100644 --- a/lib/client.c +++ b/lib/client.c @@ -129,6 +129,22 @@ int lws_client_socket_service(struct libwebsocket_context *context, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); + /* use server name indication (SNI), if supported, + * when establishing connection */ +#ifdef USE_CYASSL +#ifdef CYASSL_SNI_HOST_NAME + const char *hostname = lws_hdr_simple_ptr(wsi, + _WSI_TOKEN_CLIENT_PEER_ADDRESS); + CyaSSL_UseSNI(wsi->ssl, CYASSL_SNI_HOST_NAME, + hostname, strlen(hostname)); +#endif +#else + const char *hostname = lws_hdr_simple_ptr(wsi, + _WSI_TOKEN_CLIENT_PEER_ADDRESS); + SSL_set_tlsext_host_name(wsi->ssl, hostname); +#endif + + #ifdef USE_CYASSL /* * CyaSSL does certificate verification differently