mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 04:19:00 +02:00
Merge pull request #293710 from B4dM4n/networkd-policy-rule-port-range
nixos/networkd: allow RoutingPolicyRule port ranges
This commit is contained in:
commit
486e837cbe
|
@ -73,13 +73,26 @@ in rec {
|
|||
optional (attr ? ${name} && (! isMacAddress attr.${name} && attr.${name} != "none"))
|
||||
"Systemd ${group} field `${name}` must be a valid MAC address or the special value `none`.";
|
||||
|
||||
|
||||
isNumberOrRangeOf = check: v:
|
||||
if isInt v
|
||||
then check v
|
||||
else let
|
||||
parts = splitString "-" v;
|
||||
lower = toIntBase10 (head parts);
|
||||
upper = if tail parts != [] then toIntBase10 (head (tail parts)) else lower;
|
||||
in
|
||||
length parts <= 2 && lower <= upper && check lower && check upper;
|
||||
isPort = i: i >= 0 && i <= 65535;
|
||||
isPortOrPortRange = isNumberOrRangeOf isPort;
|
||||
|
||||
assertPort = name: group: attr:
|
||||
optional (attr ? ${name} && ! isPort attr.${name})
|
||||
"Error on the systemd ${group} field `${name}': ${attr.name} is not a valid port number.";
|
||||
|
||||
assertPortOrPortRange = name: group: attr:
|
||||
optional (attr ? ${name} && ! isPortOrPortRange attr.${name})
|
||||
"Error on the systemd ${group} field `${name}': ${attr.name} is not a valid port number or range of port numbers.";
|
||||
|
||||
assertValueOneOf = name: values: group: attr:
|
||||
optional (attr ? ${name} && !elem attr.${name} values)
|
||||
"Systemd ${group} field `${name}' cannot have value `${toString attr.${name}}'.";
|
||||
|
|
|
@ -729,8 +729,8 @@ let
|
|||
(assertInt "FirewallMark")
|
||||
(assertRange "FirewallMark" 1 4294967295)
|
||||
(assertInt "Priority")
|
||||
(assertPort "SourcePort")
|
||||
(assertPort "DestinationPort")
|
||||
(assertPortOrPortRange "SourcePort")
|
||||
(assertPortOrPortRange "DestinationPort")
|
||||
(assertValueOneOf "InvertRule" boolValues)
|
||||
(assertValueOneOf "Family" ["ipv4" "ipv6" "both"])
|
||||
(assertInt "SuppressPrefixLength")
|
||||
|
|
Loading…
Reference in a new issue