From 48f04d368e67fe61796c18aaf72df17465a74004 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 25 Jan 2012 03:18:30 -0500
Subject: [PATCH] Fix autoselect_host() for login (#1488297)

---
 CHANGELOG                  |    1 +
 program/include/rcmail.php |   11 ++++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 35d13ba..39d1a5b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix autoselect_host() for login (#1488297)
 - Fix drafts update issues when edited from preview pane (#1488314)
 - Changed license to GNU GPLv3+ with exceptions for skins & plugins
 - Make mime type detection based on filename extension to be case-insensitive
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 6587737..5965099 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -1020,16 +1020,21 @@
       list($user, $domain) = explode('@', get_input_value('_user', RCUBE_INPUT_POST));
       if (!empty($domain)) {
         foreach ($default_host as $storage_host => $mail_domains) {
-          if (is_array($mail_domains) && in_array($domain, $mail_domains)) {
+          if (is_array($mail_domains) && in_array_nocase($domain, $mail_domains)) {
             $host = $storage_host;
+            break;
+          }
+          else if (stripos($storage_host, $domain) !== false || stripos(strval($mail_domains), $domain) !== false) {
+            $host = is_numeric($storage_host) ? $mail_domains : $storage_host;
             break;
           }
         }
       }
 
-      // take the first entry if $host is still an array
+      // take the first entry if $host is still not set
       if (empty($host)) {
-        $host = array_shift($default_host);
+        list($key, $val) = each($default_host);
+        $host = is_numeric($key) ? $val : $key;
       }
     }
     else if (empty($default_host)) {

--
Gitblit v1.9.1