summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authornzbr <mail@nzbr.de>2022-12-01 01:49:46 +0100
committerGitHub <noreply@github.com>2022-12-01 01:49:46 +0100
commit7578743a71b79fa3a2bd21cd7a1eb703c447cfe0 (patch)
treedec019cfcb27050a222e31622fadc820192c2144 /modules
parent2bb34d04bc866ae4cecd5d23d7fda36bb4832f60 (diff)
Fix setting custom nameservers through networking.nameservers (#157)
* fix: allow setting DNS servers through networking.nameservers * fix: warnings * Update modules/wsl-distro.nix Co-authored-by: Sandro <sandro.jaeckel@gmail.com> * add setting names to warning output Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Diffstat (limited to 'modules')
-rw-r--r--modules/wsl-distro.nix28
1 files changed, 20 insertions, 8 deletions
diff --git a/modules/wsl-distro.nix b/modules/wsl-distro.nix
index 9811c70..da3cd42 100644
--- a/modules/wsl-distro.nix
+++ b/modules/wsl-distro.nix
@@ -51,11 +51,15 @@ with lib; {
environment = {
- etc = {
- # DNS settings are managed by WSL
- hosts.enable = !config.wsl.wslConf.network.generateHosts;
- "resolv.conf".enable = !config.wsl.wslConf.network.generateResolvConf;
- };
+ # Only set the options if the files are managed by WSL
+ etc = mkMerge [
+ (mkIf config.wsl.wslConf.network.generateHosts {
+ hosts.enable = false;
+ })
+ (mkIf config.wsl.wslConf.network.generateResolvConf {
+ "resolv.conf".enable = false;
+ })
+ ];
systemPackages = [
(pkgs.runCommand "wslpath" { } ''
@@ -126,9 +130,17 @@ with lib; {
# Start a systemd user session when starting a command through runuser
security.pam.services.runuser.startSession = true;
- warnings = (optional (config.systemd.services.systemd-resolved.enable && config.wsl.wslConf.network.generateResolvConf)
- "systemd-resolved is enabled, but resolv.conf is managed by WSL"
- );
+ warnings = flatten [
+ (optional (config.services.resolved.enable && config.wsl.wslConf.network.generateResolvConf)
+ "systemd-resolved is enabled, but resolv.conf is managed by WSL (wsl.wslConf.network.generateResolvConf)"
+ )
+ (optional ((length config.networking.nameservers) > 0 && config.wsl.wslConf.network.generateResolvConf)
+ "custom nameservers are set (networking.nameservers), but resolv.conf is managed by WSL (wsl.wslConf.network.generateResolvConf)"
+ )
+ (optional ((length config.networking.nameservers) == 0 && !config.services.resolved.enable && !config.wsl.wslConf.network.generateResolvConf)
+ "resolv.conf generation is turned off (wsl.wslConf.network.generateResolvConf), but no other nameservers are configured (networking.nameservers)"
+ )
+ ];
}
(mkIf (!cfg.nativeSystemd) {
users.users.root.shell = "${syschdemd}/bin/syschdemd";