Aleksander Machniak
2013-09-25 955a613cace064eb8a4579680ad0e971f2881ac4
Support HTTP_HOST, SERVER_NAME and SERVER_ADDR values in include_host_config feature
2 files modified
34 ■■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_config.php 33 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -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)
program/lib/Roundcube/rcube_config.php
@@ -119,8 +119,7 @@
        }
        // 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,20 +175,30 @@
     */
    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