Пример #1
0
 public static function loadSettings($settings)
 {
     $error = FALSE;
     static $ktr = array('-' => '');
     foreach ($settings as $k => $v) {
         $k = strtolower(strtr($k, $ktr));
         if ($k === 'config') {
             $k = 'configfile';
         }
         if ($k === 'user' || $k === 'group') {
             if ($v === '') {
                 $v = NULL;
             }
         }
         if (array_key_exists($k, Daemon::$settings)) {
             if ($k === 'maxmemoryusage') {
                 Daemon::$parsedSettings[$k] = Daemon::parseSize($v);
             } elseif ($k === 'maxrequests') {
                 Daemon::$parsedSettings[$k] = Daemon::parseNum($v);
             } elseif ($k === 'autogc') {
                 Daemon::$parsedSettings[$k] = Daemon::parseNum($v);
             } elseif ($k === 'maxidle') {
                 Daemon::$parsedSettings[$k] = Daemon::parseTime($v);
             } elseif ($k === 'autoreload') {
                 Daemon::$parsedSettings[$k] = Daemon::parseTime($v);
             } elseif ($k === 'maxconcurrentrequestsperworker') {
                 Daemon::$parsedSettings[$k] = Daemon::parseNum($v);
             } elseif ($k === 'keepalive') {
                 Daemon::$parsedSettings[$k] = Daemon::parseTime($v);
             } elseif ($k === 'mpmdelay') {
                 Daemon::$parsedSettings[$k] = Daemon::parseTime($v);
             } elseif ($k === 'chunksize') {
                 Daemon::$parsedSettings[$k] = Daemon::parseSize($v);
             }
             if (is_int(Daemon::$settings[$k])) {
                 Daemon::$settings[$k] = (int) $v;
             } else {
                 Daemon::$settings[$k] = $v;
             }
         } elseif (strpos($k, 'mod') === 0) {
             Daemon::$settings[$k] = $v;
         } else {
             Daemon::log('Unrecognized parameter \'' . $k . '\'');
             $error = TRUE;
         }
     }
     if (isset($settings['path'])) {
         if (isset(Daemon::$settings['chroot'])) {
             Daemon::$pathReal = realpath(Daemon::$settings['chroot'] . (substr(Daemon::$settings['chroot'], -1) != '/' ? '/' : '') . Daemon::$settings['path']);
         } else {
             Daemon::$pathReal = realpath(Daemon::$settings['path']);
         }
     }
     return !$error;
 }