PortField disable wellknown ports by default, add switch. closes https://github.com/opnsense/core/issues/2916

This commit is contained in:
Ad Schellevis 2018-11-15 00:19:28 +01:00
parent 9349cffb24
commit f161674426
2 changed files with 23 additions and 1 deletions

View File

@ -93,6 +93,11 @@ class PortField extends BaseField
'rfb'
);
/**
* @var bool enable well known ports
*/
private $enableWellKown = false;
/**
* @var array collected options
*/
@ -104,7 +109,9 @@ class PortField extends BaseField
protected function actionPostLoadingEvent()
{
if (!is_array(self::$internalOptionList)) {
self::$internalOptionList = array("any") + self::$wellknownservices;
if ($this->enableWellKown) {
self::$internalOptionList = array("any") + self::$wellknownservices;
}
for ($port=1; $port <= 65535; $port++) {
self::$internalOptionList[] = (string)$port;
@ -112,6 +119,19 @@ class PortField extends BaseField
}
}
/**
* setter for maximum value
* @param integer $value
*/
public function setEnableWellKnown($value)
{
if (strtoupper(trim($value)) == "Y") {
$this->enableWellKown = true;
} else {
$this->enableWellKown = false;
}
}
/**
* always lowercase portnames
* @param string $value

View File

@ -284,6 +284,7 @@
</source_not>
<src_port type="PortField">
<Required>Y</Required>
<EnableWellKnown>Y</EnableWellKnown>
<default>any</default>
</src_port>
<destination type="NetworkField">
@ -297,6 +298,7 @@
</destination_not>
<dst_port type="PortField">
<Required>Y</Required>
<EnableWellKnown>Y</EnableWellKnown>
<default>any</default>
</dst_port>
<direction type="OptionField">