diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-09-25 13:03:41 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-09-25 13:03:41 +0200 |
commit | 955a613cace064eb8a4579680ad0e971f2881ac4 (patch) | |
tree | 877b25e9cc29c4b6617c19ae6871b85e912aec8a /program | |
parent | 1390316a872c7c1ec24169e0d1f3922d93c3b42d (diff) |
Support HTTP_HOST, SERVER_NAME and SERVER_ADDR values in include_host_config feature
Diffstat (limited to 'program')
-rw-r--r-- | program/lib/Roundcube/rcube_config.php | 33 |
1 files changed, 21 insertions, 12 deletions
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 |