mcramer
2012-11-07 d150c4d4de8200f24360cb13c0105168193fdbdf
Fixed: timezone detection improved

1 files modified
14 ■■■■ changed files
install/lib/install.lib.php 14 ●●●● patch | view | raw | blame | history
install/lib/install.lib.php
@@ -758,6 +758,7 @@
    $res = opendir($dir);
    if(!$res) return false;
    
    if(substr($basedir, -1) === '/') $basedir = substr($basedir, 0, strlen($basedir) - 1);
    if(substr($dir, -1) === '/') $dir = substr($dir, 0, strlen($dir) - 1);
    if($basedir === '') $basedir = $dir;
    
@@ -768,7 +769,7 @@
            $result = find_hash_file($hash, $entry, $basedir);
            if($result !== false) return $result;
        } elseif(md5_file($entry) === $hash) {
            $entry = substr($entry, strlen($basedir));
            $entry = substr($entry, strlen($basedir) + 1);
            if(substr($entry, 0, 7) === '/posix/') $entry = substr($entry, 7);
            return $entry;
        }
@@ -782,11 +783,17 @@
  (c) 2012 Marius Cramer, pixcept KG, m.cramer@pixcept.de
*/
function get_system_timezone() {
    if(is_link('/etc/localtime')) {
    $timezone = false;
    if(file_exists('/etc/timezone') && is_readable('/etc/timezone')) {
        $timezone = trim(file_get_contents('/etc/timezone'));
        if(file_exists('/usr/share/zoneinfo/' . $timezone) == false) $timezone = false;
    }
    if(!$timezone && is_link('/etc/localtime')) {
        $timezone = readlink('/etc/localtime');
        $timezone = str_replace('/usr/share/zoneinfo/', '', $timezone);
        if(substr($timezone, 0, 6) === 'posix/') $timezone = substr($timezone, 6);
    } else {
    } elseif(!$timezone) {
        $hash = md5_file('/etc/localtime');
        $timezone = find_hash_file($hash, '/usr/share/zoneinfo');
    }
@@ -798,7 +805,6 @@
    return $timezone;
}
?>