浏览代码

conf.pl no longer offers to detect auth methods if TLS is enabled.

tassium 22 年之前
父节点
当前提交
3ee4ee358f
共有 2 个文件被更改,包括 115 次插入106 次删除
  1. 1 0
      ChangeLog
  2. 114 106
      config/conf.pl

+ 1 - 0
ChangeLog

@@ -93,6 +93,7 @@ Version 1.5.0 -- CVS
     (address separator).
   - Added SASL PLAIN to IMAP and SMTP. Thanks to avel for the prodding and
     code snippet.
+  - conf.pl will no longer offer to detect login methods if TLS is enabled.
 
 **************************************
 *** SquirrelMail Stable Series 1.4 ***

+ 114 - 106
config/conf.pl

@@ -1135,43 +1135,47 @@ sub command111 {
 # Now offers to detect supported mechs, assuming server & port are set correctly
 
 sub command112a {
-	print "If you have already set the hostname and port number, I can try to\n";
-	print "detect the mechanisms your IMAP server supports.\n";
-	print "I will try to detect CRAM-MD5 and DIGEST-MD5 support.  I can't test\n";
-	print "for \"login\" or \"plain\" without knowing a username and password.\n";
-	print "Auto-detecting is optional - you can safely say \"n\" here.\n";
-	print "\nTry to detect supported mechanisms? [y/N]: ";
-	$inval=<STDIN>;
-	chomp($inval);
-	if ($inval =~ /^y\b/i) {
-	  # Yes, let's try to detect.
-	  print "Trying to detect IMAP capabilities...\n";
-	  my $host = $imapServerAddress . ':'. $imapPort;
-	  print "CRAM-MD5:\t";
-	  my $tmp = detect_auth_support('IMAP',$host,'CRAM-MD5');
-	  if (defined($tmp)) {
-		  if ($tmp eq 'YES') {
-		  	print "$WHT SUPPORTED$NRM\n";
-		  } else {
-		    print "$WHT NOT SUPPORTED$NRM\n";
-		  }
-      } else {
-	    print $WHT . " ERROR DETECTING$NRM\n";
-	  }
-
-	  print "DIGEST-MD5:\t";
-	  $tmp = detect_auth_support('IMAP',$host,'DIGEST-MD5');
-	  if (defined($tmp)) {
-	  	if ($tmp eq 'YES') {
-			print "$WHT SUPPORTED$NRM\n";
-		} else {
-			print "$WHT NOT SUPPORTED$NRM\n";
-		}
-	  } else {
-	    print $WHT . " ERROR DETECTING$NRM\n";
-	  }
-	  
-	} 
+    if ($use_imap_tls =~ /^true\b/i) {
+        print "Auto-detection of login methods is unavailable when using TLS.\n";
+    } else {
+    	print "If you have already set the hostname and port number, I can try to\n";
+    	print "detect the mechanisms your IMAP server supports.\n";
+    	print "I will try to detect CRAM-MD5 and DIGEST-MD5 support.  I can't test\n";
+    	print "for \"login\" or \"plain\" without knowing a username and password.\n";
+    	print "Auto-detecting is optional - you can safely say \"n\" here.\n";
+    	print "\nTry to detect supported mechanisms? [y/N]: ";
+    	$inval=<STDIN>;
+    	chomp($inval);
+    	if ($inval =~ /^y\b/i) {
+    	  # Yes, let's try to detect.
+    	  print "Trying to detect IMAP capabilities...\n";
+    	  my $host = $imapServerAddress . ':'. $imapPort;
+    	  print "CRAM-MD5:\t";
+    	  my $tmp = detect_auth_support('IMAP',$host,'CRAM-MD5');
+    	  if (defined($tmp)) {
+    		  if ($tmp eq 'YES') {
+    		  	print "$WHT SUPPORTED$NRM\n";
+    		  } else {
+    		    print "$WHT NOT SUPPORTED$NRM\n";
+    		  }
+          } else {
+    	    print $WHT . " ERROR DETECTING$NRM\n";
+    	  }
+
+    	  print "DIGEST-MD5:\t";
+    	  $tmp = detect_auth_support('IMAP',$host,'DIGEST-MD5');
+    	  if (defined($tmp)) {
+	      	if ($tmp eq 'YES') {
+		    	print "$WHT SUPPORTED$NRM\n";
+    		} else {
+	    		print "$WHT NOT SUPPORTED$NRM\n";
+    		}
+    	  } else {
+    	    print $WHT . " ERROR DETECTING$NRM\n";
+    	  }
+    	  
+    	}
+    } 
 	  print "\nWhat authentication mechanism do you want to use for IMAP connections?\n\n";
 	  print $WHT . "login" . $NRM . " - Plaintext. If you can do better, you probably should.\n";
       print $WHT . "plain" . $NRM . " - SASL PLAIN. If you need this, you already know it.\n";
@@ -1194,79 +1198,83 @@ sub command112a {
 # SMTP authentication type
 # Possible choices: none, plain, cram-md5, digest-md5
 sub command112b {
-    print "If you have already set the hostname and port number, I can try to\n";
-    print "automatically detect some of the mechanisms your SMTP server supports.\n";
-	print "Auto-detection is *optional* - you can safely say \"n\" here.\n";
-    print "\nTry to detect auth mechanisms? [y/N]: ";
-    $inval=<STDIN>;
-    chomp($inval);
-    if ($inval =~ /^y\b/i) {
-		# Yes, let's try to detect.
-		print "Trying to detect supported methods (SMTP)...\n";
+    if ($use_smtp_tls =~ /^true\b/i) {
+        print "Auto-detection of login methods is unavailable when using TLS.\n";
+    } else {
+        print "If you have already set the hostname and port number, I can try to\n";
+        print "automatically detect some of the mechanisms your SMTP server supports.\n";
+    	print "Auto-detection is *optional* - you can safely say \"n\" here.\n";
+        print "\nTry to detect auth mechanisms? [y/N]: ";
+        $inval=<STDIN>;
+        chomp($inval);
+        if ($inval =~ /^y\b/i) {
+    		# Yes, let's try to detect.
+    		print "Trying to detect supported methods (SMTP)...\n";
 		
-		# Special case!
-		# Check none by trying to relay to junk@microsoft.com
-		$host = $smtpServerAddress . ':' . $smtpPort;
-		use IO::Socket;
-		my $sock = IO::Socket::INET->new($host);
-		print "Testing none:\t\t$WHT";
-		if (!defined($sock)) {
-			print " ERROR TESTING\n";
-			close $sock;
-		} else {
-			print $sock "mail from: tester\@squirrelmail.org\n";
-			$got = <$sock>;  # Discard
-			print $sock "rcpt to: junk\@microsoft.com\n";
-			$got = <$sock>;  # This is the important line
-			if ($got =~ /^250\b/) {  # SMTP will relay without auth
-				print "SUPPORTED$NRM\n";
-	        } else {
-			  print "NOT SUPPORTED$NRM\n";
-        	}
-			print $sock "rset\n";
-			print $sock "quit\n";
-			close $sock;
-		}
-		# Try login (SquirrelMail default)
-		print "Testing login:\t\t";
-		$tmp=detect_auth_support('SMTP',$host,'LOGIN');
-		if (defined($tmp)) {
-        	if ($tmp eq 'YES') {
-            	print $WHT . "SUPPORTED$NRM\n";
-	        } else {
-    	        print $WHT . "NOT SUPPORTED$NRM\n";
-        	}
-	      } else {
-    		  print $WHT . "ERROR DETECTING$NRM\n";
-      	}
-
-		# Try CRAM-MD5
-        print "Testing CRAM-MD5:\t";
-        $tmp=detect_auth_support('SMTP',$host,'CRAM-MD5');
-        if (defined($tmp)) {
-            if ($tmp eq 'YES') {
-                print $WHT . "SUPPORTED$NRM\n";
-            } else {
-                print $WHT . "NOT SUPPORTED$NRM\n";
+    		# Special case!
+    		# Check none by trying to relay to junk@microsoft.com
+    		$host = $smtpServerAddress . ':' . $smtpPort;
+    		use IO::Socket;
+    		my $sock = IO::Socket::INET->new($host);
+    		print "Testing none:\t\t$WHT";
+    		if (!defined($sock)) {
+    			print " ERROR TESTING\n";
+    			close $sock;
+    		} else {
+    			print $sock "mail from: tester\@squirrelmail.org\n";
+    			$got = <$sock>;  # Discard
+    			print $sock "rcpt to: junk\@microsoft.com\n";
+    			$got = <$sock>;  # This is the important line
+    			if ($got =~ /^250\b/) {  # SMTP will relay without auth
+    				print "SUPPORTED$NRM\n";
+    	        } else {
+    			  print "NOT SUPPORTED$NRM\n";
+            	}
+    			print $sock "rset\n";
+    			print $sock "quit\n";
+    			close $sock;
+    		}
+    		# Try login (SquirrelMail default)
+    		print "Testing login:\t\t";
+    		$tmp=detect_auth_support('SMTP',$host,'LOGIN');
+    		if (defined($tmp)) {
+            	if ($tmp eq 'YES') {
+                	print $WHT . "SUPPORTED$NRM\n";
+    	        } else {
+        	        print $WHT . "NOT SUPPORTED$NRM\n";
+            	}
+    	      } else {
+        		  print $WHT . "ERROR DETECTING$NRM\n";
+          	}
+    
+    		# Try CRAM-MD5
+            print "Testing CRAM-MD5:\t";
+            $tmp=detect_auth_support('SMTP',$host,'CRAM-MD5');
+            if (defined($tmp)) {
+                if ($tmp eq 'YES') {
+                    print $WHT . "SUPPORTED$NRM\n";
+                } else {
+                    print $WHT . "NOT SUPPORTED$NRM\n";
+                }
+              } else {
+                  print $WHT . "ERROR DETECTING$NRM\n";
             }
-          } else {
-              print $WHT . "ERROR DETECTING$NRM\n";
-        }
-
+    
 
-        print "Testing DIGEST-MD5:\t";
-        $tmp=detect_auth_support('SMTP',$host,'DIGEST-MD5');
-        if (defined($tmp)) {
-            if ($tmp eq 'YES') {
-                print $WHT . "SUPPORTED$NRM\n";
-            } else {
-                print $WHT . "NOT SUPPORTED$NRM\n";
+            print "Testing DIGEST-MD5:\t";
+            $tmp=detect_auth_support('SMTP',$host,'DIGEST-MD5');
+            if (defined($tmp)) {
+                if ($tmp eq 'YES') {
+                    print $WHT . "SUPPORTED$NRM\n";
+                } else {
+                    print $WHT . "NOT SUPPORTED$NRM\n";
+                }
+              } else {
+                  print $WHT . "ERROR DETECTING$NRM\n";
             }
-          } else {
-              print $WHT . "ERROR DETECTING$NRM\n";
-        }
-    } 
-    print "\tWhat authentication mechanism do you want to use for SMTP connections?\n";
+        } 
+    }
+    print "\nWhat authentication mechanism do you want to use for SMTP connections?\n";
     print $WHT . "none" . $NRM . " - Your SMTP server does not require authorization.\n";
     print $WHT . "login" . $NRM . " - Plaintext. If you can do better, you probably should.\n";
     print $WHT . "plain" . $NRM . " - SASL PLAIN.  You already know it if you need this.\n";