From fe07a61d544007e2cc7e746d354467a9e5885df7 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 5 Nov 2020 10:51:20 +0100 Subject: [dnbd3] Allow overriding certain server.conf values for proxy As requested in issue #3328 you can now override the default values of certain settings. It's kept simple, labeled "advanced config" with a little disclaimer, as you can easily enter stupid values that will render the dnbd3-proxy useless. --- modules-available/dnbd3/page.inc.php | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'modules-available/dnbd3/page.inc.php') 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); } -- cgit v1.2.3-55-g7522