--- /dev/null
+--- nagios-plugins-2.2.1/plugins/check_smtp.org 2019-08-30 11:23:27.030644413 +0200
++++ nagios-plugins-2.2.1/plugins/check_smtp.c 2019-08-30 11:23:46.804575703 +0200
+@@ -106,6 +106,7 @@ double critical_time = 0;
+ int check_critical_time = FALSE;
+ int verbose = 0;
+ int use_ssl = FALSE;
++int use_sni = FALSE;
+ short use_ehlo = FALSE;
+ short use_lhlo = FALSE;
+ short ssl_established = 0;
+@@ -250,7 +251,7 @@ main (int argc, char **argv)
+ smtp_quit();
+ return STATE_UNKNOWN;
+ }
+- result = np_net_ssl_init(sd);
++ result = np_net_ssl_init_with_hostname(sd, (use_sni ? server_address : NULL));
+ if(result != STATE_OK) {
+ printf (_("CRITICAL - Cannot create SSL context.\n"));
+ close(sd);
+@@ -460,6 +461,10 @@ process_arguments (int argc, char **argv
+ int c;
+ char* temp;
+
++ enum {
++ SNI_OPTION
++ };
++
+ int option = 0;
+ static struct option longopts[] = {
+ {"hostname", required_argument, 0, 'H'},
+@@ -482,6 +487,7 @@ process_arguments (int argc, char **argv
+ {"help", no_argument, 0, 'h'},
+ {"lmtp", no_argument, 0, 'L'},
+ {"starttls",no_argument,0,'S'},
++ {"sni", no_argument, 0, SNI_OPTION},
+ {"certificate",required_argument,0,'D'},
+ {"ignore-quit-failure",no_argument,0,'q'},
+ {0, 0, 0, 0}
+@@ -622,6 +628,13 @@ process_arguments (int argc, char **argv
+ use_ssl = TRUE;
+ use_ehlo = TRUE;
+ break;
++ case SNI_OPTION:
++#ifdef HAVE_SSL
++ use_sni = TRUE;
++#else
++ usage (_("SSL support not available - install OpenSSL and recompile"));
++#endif
++ break;
+ case 'L':
+ use_lhlo = TRUE;
+ break;
+@@ -825,6 +838,8 @@ print_help (void)
+ printf (" %s\n", _("Minimum number of days a certificate has to be valid."));
+ printf (" %s\n", "-S, --starttls");
+ printf (" %s\n", _("Use STARTTLS for the connection."));
++ printf (" %s\n", "--sni");
++ printf (" %s\n", _("Enable SSL/TLS hostname extension support (SNI)"));
+ #endif
+
+ printf (" %s\n", "-A, --authtype=STRING");
+@@ -861,6 +876,6 @@ print_usage (void)
+ printf ("%s\n", _("Usage:"));
+ printf ("%s -H host [-p port] [-4|-6] [-e expect] [-C command] [-R response] [-f from addr]\n", progname);
+ printf ("[-A authtype -U authuser -P authpass] [-w warn] [-c crit] [-t timeout] [-q]\n");
+- printf ("[-F fqdn] [-S] [-L] [-D warn days cert expire[,crit days cert expire]] [-v] \n");
++ printf ("[-F fqdn] [-S] [-L] [-D warn days cert expire[,crit days cert expire]] [--sni] [-v] \n");
+ }
+