summaryrefslogtreecommitdiffstats
path: root/modules-available/dnbd3/page.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/dnbd3/page.inc.php')
-rw-r--r--modules-available/dnbd3/page.inc.php22
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);
}