diff options
Diffstat (limited to 'modules-available/dnbd3/page.inc.php')
-rw-r--r-- | modules-available/dnbd3/page.inc.php | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/modules-available/dnbd3/page.inc.php b/modules-available/dnbd3/page.inc.php index 7721dac1..9ae7858e 100644 --- a/modules-available/dnbd3/page.inc.php +++ b/modules-available/dnbd3/page.inc.php @@ -66,8 +66,15 @@ class Page_Dnbd3 extends Page 'fixedip' => $overrideIp, )); } + $advancedSettings = []; + foreach (Request::post('extra', [], 'array') as $name => $value) { + $value = preg_replace('/[^0-9]/', '', $value); + if ($value === '') + continue; + $advancedSettings[$name] = $value; + } RunMode::setRunMode($server['machineuuid'], 'dnbd3', 'proxy', - json_encode(compact('bgr', 'firewall')), false); + json_encode(compact('bgr', 'firewall', 'advancedSettings')), false); } private function toggleUsage() @@ -533,6 +540,19 @@ class Page_Dnbd3 extends Page } $modeData = (array)json_decode($rm[$server['machineuuid']]['modedata'], true); $server += $modeData + Dnbd3Util::defaultRunmodeConfig(); + $extraSettings = $server['advancedSettings'] ?? []; + $server['advancedSettings'] = []; + foreach (['dnbd3.serverPenalty', + 'dnbd3.clientPenalty', + 'dnbd3.bgrMinClient', + 'dnbd3.bgrWindowSize', + 'dnbd3.autoFreeDiskSpaceDelay', + 'limits.maxClients', + 'limits.maxImages', + 'limits.maxPayload', + 'limits.maxReplicationSize'] as $item) { + $server['advancedSettings'][] = ['name' => $item, 'value' => $extraSettings[$item] ?? '']; + } echo Render::parse('fragment-server-settings', $server); } |