From aa78fde6a92f66b84d626e114d8b54a5fb6ece0c Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Wed, 14 Nov 2012 07:19:43 -0500 Subject: [PATCH] - Added function for IPv6 prefixes in multiserver mirror setups to nginx plugin. --- install/lib/install.lib.php | 61 +++++++++++++++++++++++++++++- 1 files changed, 58 insertions(+), 3 deletions(-) diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php index 71ebe0b..9673a76 100644 --- a/install/lib/install.lib.php +++ b/install/lib/install.lib.php @@ -163,9 +163,9 @@ } elseif(strstr(trim(file_get_contents('/etc/debian_version')),'6.0') || trim(file_get_contents('/etc/debian_version')) == 'wheezy/sid') { $distname = 'Debian'; $distver = 'Wheezy/Sid'; - $distid = 'debian70'; + $distid = 'debian60'; $distbaseid = 'debian'; - swriteln("Operating System: Debian 6.0 (Squeeze/Sid) or compatible\n"); + swriteln("Operating System: Debian 7.0 (Wheezy/Sid) or compatible\n"); } else { $distname = 'Debian'; $distver = 'Unknown'; @@ -723,7 +723,7 @@ if(is_file($ispconfig_vhost_file)) { $tmp = file_get_contents($ispconfig_vhost_file); preg_match($regex,$tmp,$matches); - $port_number = intval($matches[1]); + $port_number = @intval($matches[1]); if($port_number > 0) { return $port_number; } else { @@ -750,6 +750,61 @@ } } +/** + Function to find the hash file for timezone detection + (c) 2012 Marius Cramer, pixcept KG, m.cramer@pixcept.de +*/ +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; + if(is_dir($entry)) { + $result = find_hash_file($hash, $entry, $basedir); + if($result !== false) return $result; + } elseif(md5_file($entry) === $hash) { + $entry = substr($entry, strlen($basedir) + 1); + if(substr($entry, 0, 7) === '/posix/') $entry = substr($entry, 7); + return $entry; + } + } + closedir($res); + return false; +} + +/** + Function to get the timezone of the Linux system + (c) 2012 Marius Cramer, pixcept KG, m.cramer@pixcept.de +*/ +function get_system_timezone() { + $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]; + } + + return $timezone; +} ?> -- Gitblit v1.9.1