Marius Cramer
2014-02-17 ebbe6374fc9c308daf729d2ad1b2f8007ed771ce
install/lib/install.lib.php
@@ -637,6 +637,11 @@
               $out .= $line;
            }
         }
         if (!$found) {
            if (trim($line) == $new_line) {
               $found = 1;
            }
         }
      }
      if($found == 0) {
         //* add \n if the last line does not end with \n or \r
@@ -666,6 +671,23 @@
   }
}
function hasLine($filename, $search_pattern, $strict = 0) {
   if($lines = @file($filename)) {
      foreach($lines as $line) {
         if($strict == 0) {
            if(stristr($line, $search_pattern)) {
               return true;
            }
         } else {
            if(trim($line) == $search_pattern) {
               return true;
            }
         }
      }
   }
   return false;
}
function is_installed($appname) {
   exec('which '.escapeshellcmd($appname).' 2> /dev/null', $out, $returncode);
   if(isset($out[0]) && stristr($out[0], $appname) && $returncode == 0) {
@@ -673,43 +695,6 @@
   } else {
      return false;
   }
}
/*
 * Compare ISPConfig version number.
 * return values:
 * -1 $current version is newer then $new version (downgrade)
 * 0 $current version = $new version
 * 1 $current version is older then new version (update)
*/
function compare_ispconfig_version($current, $new) {
   if( $current == $new) {
      return 0;
   }
   $p = explode('.', $current);
   $tmp = '';
   $tmp .= str_pad(intval($p[0]), 3, '0', STR_PAD_LEFT);
   $tmp .= (isset($p[1]))?str_pad(intval($p[1]), 3, '0', STR_PAD_LEFT):'000';
   $tmp .= (isset($p[2]))?str_pad(intval($p[2]), 3, '0', STR_PAD_LEFT):'000';
   $tmp .= (isset($p[3]))?str_pad(intval($p[3]), 3, '0', STR_PAD_LEFT):'000';
   $current = $tmp;
   $p = explode('.', $new);
   $tmp = '';
   $tmp .= str_pad(intval($p[0]), 3, '0', STR_PAD_LEFT);
   $tmp .= (isset($p[1]))?str_pad(intval($p[1]), 3, '0', STR_PAD_LEFT):'000';
   $tmp .= (isset($p[2]))?str_pad(intval($p[2]), 3, '0', STR_PAD_LEFT):'000';
   $tmp .= (isset($p[3]))?str_pad(intval($p[3]), 3, '0', STR_PAD_LEFT):'000';
   $new = $tmp;
   if($new > $current) {
      return 1;
   } else {
      return -1;
   }
}
/*
@@ -734,6 +719,32 @@
         return $port_number;
      } else {
         return '8080';
      }
   }
}
/*
* Get the port number of the ISPConfig apps vhost
*/
function get_apps_vhost_port_number() {
   global $conf;
   if($conf['nginx']['installed'] == true){
      $ispconfig_vhost_file = $conf['nginx']['vhost_conf_dir'].'/apps.vhost';
      $regex = '/listen (\d+)/';
   } else {
      $ispconfig_vhost_file = $conf['apache']['vhost_conf_dir'].'/apps.vhost';
      $regex = '/\<VirtualHost.*\:(\d{1,})\>/';
   }
   if(is_file($ispconfig_vhost_file)) {
      $tmp = file_get_contents($ispconfig_vhost_file);
      preg_match($regex, $tmp, $matches);
      $port_number = @intval($matches[1]);
      if($port_number > 0) {
         return $port_number;
      } else {
         return '8081';
      }
   }
}
@@ -811,6 +822,8 @@
      exec('date +%Z', $tzinfo);
      $timezone = $tzinfo[0];
   }
   if(substr($timezone, 0, 1) === '/') $timezone = substr($timezone, 1);
   return $timezone;
}