From 5c1f8cbc70cd5e6867ef6a2a06d27a40daa07010 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 10 Oct 2013 13:28:20 +0200 Subject: Move all of NixOS to nixos/ in preparation of the repository merge --- nixos/modules/config/nsswitch.nix | 63 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 nixos/modules/config/nsswitch.nix (limited to 'nixos/modules/config/nsswitch.nix') diff --git a/nixos/modules/config/nsswitch.nix b/nixos/modules/config/nsswitch.nix new file mode 100644 index 000000000000..ad62b5597be8 --- /dev/null +++ b/nixos/modules/config/nsswitch.nix @@ -0,0 +1,63 @@ +# Configuration for the Name Service Switch (/etc/nsswitch.conf). + +{ config, pkgs, ... }: + +with pkgs.lib; + +let + + inherit (config.services.avahi) nssmdns; + inherit (config.services.samba) nsswins; + +in + +{ + options = { + + # NSS modules. Hacky! + system.nssModules = mkOption { + internal = true; + default = []; + description = '' + Search path for NSS (Name Service Switch) modules. This allows + several DNS resolution methods to be specified via + /etc/nsswitch.conf. + ''; + merge = mergeListOption; + apply = list: + { + inherit list; + path = makeLibraryPath list; + }; + }; + + }; + + config = { + + environment.etc = + [ # Name Service Switch configuration file. Required by the C library. + # !!! Factor out the mdns stuff. The avahi module should define + # an option used by this module. + { source = pkgs.writeText "nsswitch.conf" + '' + passwd: files ldap + group: files ldap + shadow: files ldap + hosts: files ${optionalString nssmdns "mdns_minimal [NOTFOUND=return]"} dns ${optionalString nssmdns "mdns"} ${optionalString nsswins "wins"} myhostname + networks: files dns + ethers: files + services: files + protocols: files + ''; + target = "nsswitch.conf"; + } + ]; + + # Use nss-myhostname to ensure that our hostname always resolves to + # a valid IP address. It returns all locally configured IP + # addresses, or ::1 and 127.0.0.2 as fallbacks. + system.nssModules = [ pkgs.systemd ]; + + }; +} -- cgit v1.2.3