From 610bf85460c1371aa2af035054b7f9d641132388 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Sun, 17 Oct 2021 20:58:27 +0200 Subject: yggdrasil-wg: ... --- modules/networkd/default.nix | 1 + modules/networkd/systemd-lib.nix | 4 ++++ 2 files changed, 5 insertions(+) (limited to 'modules/networkd') 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 "MACAddress" ]) (assertHasField "Name") + (assertMaxLength "Name" 15) (assertHasField "Kind") (assertValueOneOf "Kind" [ "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 { optional (attr ? ${name} && !isInt attr.${name}) "Systemd ${group} field `${name}' is not an integer"; + assertMaxLength = name: max: group: attr: + optional (attr ? ${name} && stringLength attr.${name} > max) + "Systemd ${group} field `${name}' is too long (max of ${max})"; + checkUnitConfig = group: checks: attrs: let # We're applied at the top-level type (attrsOf unitOption), so the actual # unit options might contain attributes from mkOverride and mkIf that we need to -- cgit v1.2.3