Blame SOURCES/gnutls-3.3.29-cli-sni-hostname.patch
Branch: 519d7df72f647b48bdd09cafcf293d7490a0e286
519d7d
diff --git a/src/cli-args.def b/src/cli-args.def
519d7d
index c661f458b..11d66ae8a 100644
519d7d
--- a/src/cli-args.def
519d7d
+++ b/src/cli-args.def
519d7d
@@ -80,6 +80,13 @@ flag = {
519d7d
doc = "Connect, establish a session and rehandshake immediately.";
519d7d
};
519d7d
519d7d
+flag = {
519d7d
+ name = sni-hostname;
519d7d
+ descrip = "Server's hostname for server name indication extension";
519d7d
+ arg-type = string;
519d7d
+ doc = "Set explicitly the server name used in the TLS server name indication extension. That is useful when testing with servers setup on different DNS name than the intended. If not specified, the provided hostname is used.";
519d7d
+};
519d7d
+
519d7d
flag = {
519d7d
name = starttls;
519d7d
value = s;
519d7d
diff --git a/src/cli.c b/src/cli.c
519d7d
index 82d8e1166..f3d159a29 100644
519d7d
--- a/src/cli.c
519d7d
+++ b/src/cli.c
519d7d
@@ -638,7 +638,10 @@ static gnutls_session_t init_tls_session(const char *hostname)
519d7d
/* allow the use of private ciphersuites.
519d7d
*/
519d7d
if (disable_extensions == 0 && disable_sni == 0) {
519d7d
- if (hostname != NULL && is_ip(hostname) == 0)
519d7d
+ if (HAVE_OPT(SNI_HOSTNAME)) {
519d7d
+ gnutls_server_name_set(session, GNUTLS_NAME_DNS,
519d7d
+ OPT_ARG(SNI_HOSTNAME), strlen(OPT_ARG(SNI_HOSTNAME)));
519d7d
+ } else if (hostname != NULL && is_ip(hostname) == 0)
519d7d
gnutls_server_name_set(session, GNUTLS_NAME_DNS,
519d7d
hostname, strlen(hostname));
519d7d
}
519d7d
--
519d7d
2.14.3
519d7d