From bfcdef6bc91753cb2044e3626f522b5b1aec129f Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Wed, 14 Nov 2012 05:34:56 -0500 Subject: [PATCH] Merged revisions 3596-3670 from 3.0.5 stable branch. --- install/lib/install.lib.php | 40 +++++++++++++++++++++++----------------- 1 files changed, 23 insertions(+), 17 deletions(-) diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php index 8d2ae48..9673a76 100644 --- a/install/lib/install.lib.php +++ b/install/lib/install.lib.php @@ -757,10 +757,11 @@ function find_hash_file($hash, $dir, $basedir = '') { $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; - + while($cur = readdir($res)) { if($cur == '.' || $cur == '..') continue; $entry = $dir.'/'.$cur; @@ -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,23 +783,28 @@ (c) 2012 Marius Cramer, pixcept KG, m.cramer@pixcept.de */ function get_system_timezone() { - if(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 { - $hash = md5_file('/etc/localtime'); - $timezone = find_hash_file($hash, '/usr/share/zoneinfo'); - } + $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); + } elseif(!$timezone) { + $hash = md5_file('/etc/localtime'); + $timezone = find_hash_file($hash, '/usr/share/zoneinfo'); + } - if(!$timezone) { - exec('date +%Z', $tzinfo); - $timezone = $tzinfo[0]; - } + if(!$timezone) { + exec('date +%Z', $tzinfo); + $timezone = $tzinfo[0]; + } - return $timezone; + return $timezone; } - ?> -- Gitblit v1.9.1