From 44ea3fd4782889ee97717ce925d87979390e4bb3 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 18 Dec 2008 05:15:39 -0500
Subject: [PATCH] - Fix STARTTLS before AUTH in SMTP connection (#1484883)

---
 CHANGELOG                |    4 ++++
 program/lib/Net/SMTP.php |   19 +++++++------------
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 7228b44..8e55051 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,10 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+2008/12/18 (alec)
+----------
+- Fix STARTTLS before AUTH in SMTP connection (#1484883)
+
 2008/12/16 (thomasb)
 ----------
 - Only abbreviate file name for IE browsers (#1485063)
diff --git a/program/lib/Net/SMTP.php b/program/lib/Net/SMTP.php
index 005691d..b9ad4b2 100644
--- a/program/lib/Net/SMTP.php
+++ b/program/lib/Net/SMTP.php
@@ -375,7 +375,7 @@
 
             return true;
         }
-
+console($this->_arguments);
         foreach ($this->_arguments as $argument) {
             $verb = strtok($argument, ' ');
             $arguments = substr($argument, strlen($verb) + 1,
@@ -424,11 +424,8 @@
      */
     function auth($uid, $pwd , $method = '')
     {
-        if (empty($this->_esmtp['AUTH'])) {
-            if (version_compare(PHP_VERSION, '5.1.0', '>=')) {
-                if (!isset($this->_esmtp['STARTTLS'])) {
-                    return PEAR::raiseError('SMTP server does not support authentication');
-                }
+        if (version_compare(PHP_VERSION, '5.1.0', '>=') && isset($this->_esmtp['STARTTLS'])) {
+
                 if (PEAR::isError($result = $this->_put('STARTTLS'))) {
                     return $result;
                 }
@@ -444,12 +441,10 @@
                 /* Send EHLO again to recieve the AUTH string from the
                  * SMTP server. */
                 $this->_negotiate();
-                if (empty($this->_esmtp['AUTH'])) {
-                    return PEAR::raiseError('SMTP server does not support authentication');
-                }
-            } else {
-                return PEAR::raiseError('SMTP server does not support authentication');
-            }
+	}
+        
+	if (empty($this->_esmtp['AUTH'])) {
+            return PEAR::raiseError('SMTP server does not support authentication');
         }
 
         /* If no method has been specified, get the name of the best

--
Gitblit v1.9.1