diff options
| author | nzbr <mail@nzbr.de> | 2022-12-01 01:49:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-01 01:49:46 +0100 |
| commit | 7578743a71b79fa3a2bd21cd7a1eb703c447cfe0 (patch) | |
| tree | dec019cfcb27050a222e31622fadc820192c2144 /modules | |
| parent | 2bb34d04bc866ae4cecd5d23d7fda36bb4832f60 (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.nix | 28 |
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"; |
