diff options
| -rw-r--r-- | CHANGELOG | 1 | ||||
| -rw-r--r-- | program/lib/Roundcube/rcube_config.php | 33 | 
2 files changed, 22 insertions, 12 deletions
@@ -1,6 +1,7 @@  CHANGELOG Roundcube Webmail  =========================== +- Support HTTP_HOST, SERVER_NAME and SERVER_ADDR values in include_host_config feature  - Hide Delivery Status Notification option when smtp_server is unset (#1489336)  - Make default font size for HTML messages configurable (request #118)  - Display full attachment name using title attribute when name is too long to display (#1489320) diff --git a/program/lib/Roundcube/rcube_config.php b/program/lib/Roundcube/rcube_config.php index a3741758f..04b914c3d 100644 --- a/program/lib/Roundcube/rcube_config.php +++ b/program/lib/Roundcube/rcube_config.php @@ -119,8 +119,7 @@ class rcube_config          }          // load host-specific configuration -        if (!empty($_SERVER['HTTP_HOST'])) -            $this->load_host_config(); +        $this->load_host_config();          // set skin (with fallback to old 'skin_path' property)          if (empty($this->prop['skin'])) { @@ -176,21 +175,31 @@ class rcube_config       */      private function load_host_config()      { -        $fname = null; - -        if (is_array($this->prop['include_host_config'])) { -            $fname = $this->prop['include_host_config'][$_SERVER['HTTP_HOST']]; -        } -        else if (!empty($this->prop['include_host_config'])) { -            $fname = preg_replace('/[^a-z0-9\.\-_]/i', '', $_SERVER['HTTP_HOST']) . '.inc.php'; +        if (empty($this->prop['include_host_config'])) { +            return;          } -        if ($fname) { -            $this->load_from_file($fname); +        foreach (array('HTTP_HOST', 'SERVER_NAME', 'SERVER_ADDR') as $key) { +            $fname = null; +            $name  = $_SERVER[$key]; + +            if (!$name) { +                continue; +            } + +            if (is_array($this->prop['include_host_config'])) { +                $fname = $this->prop['include_host_config'][$name]; +            } +            else { +                $fname = preg_replace('/[^a-z0-9\.\-_]/i', '', $name) . '.inc.php'; +            } + +            if ($fname && $this->load_from_file($fname)) { +                return; +            }          }      } -      /**       * Read configuration from a file       * and merge with the already stored config values  | 
