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; }