summaryrefslogtreecommitdiff
path: root/modules/networkd
diff options
context:
space:
mode:
Diffstat (limited to 'modules/networkd')
-rw-r--r--modules/networkd/default.nix1
-rw-r--r--modules/networkd/systemd-lib.nix4
2 files changed, 5 insertions, 0 deletions
diff --git a/modules/networkd/default.nix b/modules/networkd/default.nix
index 007f14c6..f78a9aee 100644
--- a/modules/networkd/default.nix
+++ b/modules/networkd/default.nix
@@ -96,6 +96,7 @@ let
96 "MACAddress" 96 "MACAddress"
97 ]) 97 ])
98 (assertHasField "Name") 98 (assertHasField "Name")
99 (assertMaxLength "Name" 15)
99 (assertHasField "Kind") 100 (assertHasField "Kind")
100 (assertValueOneOf "Kind" [ 101 (assertValueOneOf "Kind" [
101 "bond" 102 "bond"
diff --git a/modules/networkd/systemd-lib.nix b/modules/networkd/systemd-lib.nix
index 2dbf1503..c5b5b7cb 100644
--- a/modules/networkd/systemd-lib.nix
+++ b/modules/networkd/systemd-lib.nix
@@ -90,6 +90,10 @@ in rec {
90 optional (attr ? ${name} && !isInt attr.${name}) 90 optional (attr ? ${name} && !isInt attr.${name})
91 "Systemd ${group} field `${name}' is not an integer"; 91 "Systemd ${group} field `${name}' is not an integer";
92 92
93 assertMaxLength = name: max: group: attr:
94 optional (attr ? ${name} && stringLength attr.${name} > max)
95 "Systemd ${group} field `${name}' is too long (max of ${max})";
96
93 checkUnitConfig = group: checks: attrs: let 97 checkUnitConfig = group: checks: attrs: let
94 # We're applied at the top-level type (attrsOf unitOption), so the actual 98 # We're applied at the top-level type (attrsOf unitOption), so the actual
95 # unit options might contain attributes from mkOverride and mkIf that we need to 99 # unit options might contain attributes from mkOverride and mkIf that we need to