From b04c51fafbc9dd688e17370626139a93d17abe77 Mon Sep 17 00:00:00 2001
From: vbenincasa <vbenincasa@gmail.com>
Date: Wed, 27 Apr 2011 04:38:21 -0400
Subject: [PATCH]  - Added the %s variable in 'default_host' and 'smtp_server' option (%s variable is the domain name after the '@' from e-mail address provided at login screen). The %s just returns a value if the provided e-mail is valid to avoid unnecessary lookups and reduce the possibility of connections to undesirable hosts.  - Small fix to the code comment of rcube_parse_host()

---
 program/include/main.inc |    7 +++++--
 config/main.inc.php.dist |    2 ++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 6f92c6e..d74c82d 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -64,6 +64,7 @@
 // Supported replacement variables:
 // %n - http hostname ($_SERVER['SERVER_NAME'])
 // %d - domain (http hostname without the first part)
+// %s - domain name after the '@' from e-mail address provided at login screen
 // For example %n = mail.domain.tld, %d = domain.tld
 $rcmail_config['default_host'] = '';
 
@@ -119,6 +120,7 @@
 // %h - user's IMAP hostname
 // %n - http hostname ($_SERVER['SERVER_NAME'])
 // %d - domain (http hostname without the first part)
+// %s - domain name after the '@' from e-mail address provided at login screen
 // %z - IMAP domain (IMAP hostname without the first part)
 // For example %n = mail.domain.tld, %d = domain.tld
 $rcmail_config['smtp_server'] = '';
diff --git a/program/include/main.inc b/program/include/main.inc
index d7009c0..0c83af2 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -1673,14 +1673,17 @@
 {
   // %n - host
   $n = preg_replace('/:\d+$/', '', $_SERVER['SERVER_NAME']);
-  // %d - domain name without first part, e.g. %d=mail.domain.tld, %m=domain.tld
+  // %d - domain name without first part, e.g. %n=mail.domain.tld, %d=domain.tld
   $d = preg_replace('/^[^\.]+\./', '', $n);
   // %h - IMAP host
   $h = $_SESSION['imap_host'] ? $_SESSION['imap_host'] : $host;
   // %z - IMAP domain without first part, e.g. %h=imap.domain.tld, %z=domain.tld
   $z = preg_replace('/^[^\.]+\./', '', $h);
+  // %s - domain name after the '@' from e-mail address provided at login screen
+  if ( filter_var(get_input_value('_user', RCUBE_INPUT_POST), FILTER_VALIDATE_EMAIL) !== FALSE )
+    preg_match('/[^@]+$/', get_input_value('_user', RCUBE_INPUT_POST), $s);
 
-  $name = str_replace(array('%n', '%d', '%h', '%z'), array($n, $d, $h, $z), $name);
+  $name = str_replace(array('%n', '%d', '%h', '%z', '%s'), array($n, $d, $h, $z, $s[0]), $name);
   return $name;
 }
 

--
Gitblit v1.9.1