Commit e23da86b authored by Michal Sojka's avatar Michal Sojka
Browse files

nixos/avahi-daemon: let nssmdns{4,6} options affect also non-minimal mdns source

This is a followup to commit bba808db ("nixos/avahi-daemon:
resolve mdns only over enabled protocols, disable ipv6 by default",
2023-10-01, PR #258424). mdns occurs twice in /etc/nsswitch.conf but
that commit changed only the first one (mdns_minimal, before resolve).
This commits ensures that both occurrences are set consistently.

This is not only consistent with upstream example[1] but it also
fixes #118628 -- a longstanding issue with CUPS and printer detection.

[1]  https://github.com/avahi/nss-mdns#activation
parent bd645e86
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -274,17 +274,17 @@ in

    system.nssModules = optional (cfg.nssmdns4 || cfg.nssmdns6) pkgs.nssmdns;
    system.nssDatabases.hosts = let
      mdnsMinimal = if (cfg.nssmdns4 && cfg.nssmdns6) then
        "mdns_minimal"
      mdns = if (cfg.nssmdns4 && cfg.nssmdns6) then
        "mdns"
      else if (!cfg.nssmdns4 && cfg.nssmdns6) then
        "mdns6_minimal"
        "mdns6"
      else if (cfg.nssmdns4 && !cfg.nssmdns6) then
        "mdns4_minimal"
        "mdns4"
      else
        "";
    in optionals (cfg.nssmdns4 || cfg.nssmdns6) (mkMerge [
      (mkBefore [ "${mdnsMinimal} [NOTFOUND=return]" ]) # before resolve
      (mkAfter [ "mdns" ]) # after dns
      (mkBefore [ "${mdns}_minimal [NOTFOUND=return]" ]) # before resolve
      (mkAfter [ "${mdns}" ]) # after dns
    ]);

    environment.systemPackages = [ cfg.package ];