From 31278471d3f2b882e28e01184814f3edc69973bf Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 21 Jan 2011 11:50:07 -0500
Subject: [PATCH] Use improved strtotime() function + reduce duplicated code

---
 program/include/rcube_imap_generic.php |   30 ++++++++++--------------------
 1 files changed, 10 insertions(+), 20 deletions(-)

diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php
index b11266f..b4f01a9 100644
--- a/program/include/rcube_imap_generic.php
+++ b/program/include/rcube_imap_generic.php
@@ -5,7 +5,7 @@
  | program/include/rcube_imap_generic.php                                |
  |                                                                       |
  | This file is part of the Roundcube Webmail client                     |
- | Copyright (C) 2005-2010, Roundcube Dev. - Switzerland                 |
+ | Copyright (C) 2005-2010, The Roundcube Dev Team                       |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  | PURPOSE:                                                              |
@@ -768,10 +768,14 @@
                 $auth_methods = $auth_caps;
             }
             // RFC 2595 (LOGINDISABLED) LOGIN disabled when connection is not secure
-            if (($key = array_search('LOGIN', $auth_methods)) !== false
-                && $this->getCapability('LOGINDISABLED')
-            ) {
-                unset($auth_methods[$key]);
+            $login_disabled = $this->getCapability('LOGINDISABLED');
+            if (($key = array_search('LOGIN', $auth_methods)) !== false) {
+                if ($login_disabled) {
+                    unset($auth_methods[$key]);
+                }
+            }
+            else if (!$login_disabled) {
+                $auth_methods[] = 'LOGIN';
             }
         }
         else {
@@ -3219,21 +3223,7 @@
      */
     private function strToTime($date)
     {
-        // support non-standard "GMTXXXX" literal
-        $date = preg_replace('/GMT\s*([+-][0-9]+)/', '\\1', $date);
-        // if date parsing fails, we have a date in non-rfc format.
-        // remove token from the end and try again
-        while ((($ts = @strtotime($date))===false) || ($ts < 0)) {
-            $d = explode(' ', $date);
-            array_pop($d);
-            if (!$d) {
-                break;
-            }
-            $date = implode(' ', $d);
-        }
-
-        $ts = (int) $ts;
-
+        $ts = (int) rcube_strtotime($date);
         return $ts < 0 ? 0 : $ts;
     }
 

--
Gitblit v1.9.1