Dominik
2014-01-23 2d7d9eaa5acda62f1580bc09304ce85a7f7cea9f
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';
      }
   }
}