From 2d7d9eaa5acda62f1580bc09304ce85a7f7cea9f Mon Sep 17 00:00:00 2001 From: Dominik <info@profi-webdesign.net> Date: Thu, 23 Jan 2014 13:40:54 -0500 Subject: [PATCH] Merge remote-tracking branch 'ispc3master/master' into vhostalias --- server/lib/classes/system.inc.php | 29 +++++++++++++++++++++++++++-- 1 files changed, 27 insertions(+), 2 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 9b7d994..6ee9555 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -899,7 +899,7 @@ //* We allow only some characters in the path // * is allowed, for example it is part of wildcard certificates/keys: *.example.com.crt - if(!preg_match('@^/[-a-zA-Z0-9_/.*~]{1,}$@', $path)) return false; + if(!preg_match('@^/[-a-zA-Z0-9_/.*]{1,}[~]?$@', $path)) return false; //* Check path for symlinks $path_parts = explode('/', $path); @@ -1524,7 +1524,7 @@ } } - function maildirmake($maildir_path, $user = '', $group = '', $subfolder = '') { + function maildirmake($maildir_path, $user = '', $subfolder = '', $group = '') { global $app; @@ -1774,6 +1774,31 @@ if(substr($init_script_directory, -1) === '/') $init_script_directory = substr($init_script_directory, 0, -1); return $init_script_directory.'/'.$servicename.' '.$action; } + + function getapacheversion($get_minor = false) { + global $app; + + $cmd = ''; + if($this->is_installed('apache2ctl')) $cmd = 'apache2ctl -v'; + elseif($this->is_installed('apachectl')) $cmd = 'apachectl -v'; + else { + $app->log("Could not check apache version, apachectl not found.", LOGLEVEL_WARN); + return '2.2'; + } + + exec($cmd, $output, $return_var); + if($return_var != 0 || !$output[0]) { + $app->log("Could not check apache version, apachectl did not return any data.", LOGLEVEL_WARN); + return '2.2'; + } + + if(preg_match('/version:\s*Apache\/(\d+)(\.(\d+)(\.(\d+))*)?(\D|$)/i', $output[0], $matches)) { + return $matches[1] . (isset($matches[3]) ? '.' . $matches[3] : '') . (isset($matches[5]) && $get_minor == true ? '.' . $matches[5] : ''); + } else { + $app->log("Could not check apache version, did not find version string in apachectl output.", LOGLEVEL_WARN); + return '2.2'; + } + } } -- Gitblit v1.9.1