Kaynağa Gözat

actually use STARTTLS if only TLSv1.1 or TLSv1.2 is enabled

Oswald Buddenhagen 11 yıl önce
ebeveyn
işleme
06c731cbf8
1 değiştirilmiş dosya ile 7 ekleme ve 2 silme
  1. 7 2
      src/drv_imap.c

+ 7 - 2
src/drv_imap.c

@@ -45,6 +45,7 @@ typedef struct imap_server_conf {
 	char *pass_cmd;
 	int max_in_progress;
 #ifdef HAVE_LIBSSL
+	char use_ssl;
 	char require_ssl;
 	char require_cram;
 #endif
@@ -1578,8 +1579,7 @@ imap_open_store_authenticate( imap_store_t *ctx )
 
 	if (ctx->greeting != GreetingPreauth) {
 #ifdef HAVE_LIBSSL
-		if (!srvc->sconf.use_imaps &&
-		    (srvc->sconf.use_sslv2 || srvc->sconf.use_sslv3 || srvc->sconf.use_tlsv1)) {
+		if (!srvc->sconf.use_imaps && srvc->use_ssl) {
 			/* always try to select SSL support if available */
 			if (CAP(STARTTLS)) {
 				imap_exec( ctx, 0, imap_open_store_authenticate_p2, "STARTTLS" );
@@ -2360,6 +2360,11 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep )
 			cfg->err = 1;
 			return 1;
 		}
+#ifdef HAVE_LIBSSL
+		server->use_ssl =
+		        server->sconf.use_sslv2 | server->sconf.use_sslv3 |
+		        server->sconf.use_tlsv1 | server->sconf.use_tlsv11 | server->sconf.use_tlsv12;
+#endif
 	}
 	if (store) {
 		if (!store->server) {