networking config: specify resolv.conf options as list of strings

This commit is contained in:
Joachim Fasting 2016-05-28 13:49:54 +02:00
parent 14dfdeb31a
commit 4e74479807
No known key found for this signature in database
GPG Key ID: 4330820E1E04DCF4

View File

@ -11,11 +11,9 @@ let
config.services.dnsmasq.resolveLocalQueries;
hasLocalResolver = config.services.bind.enable || dnsmasqResolve;
resolvconfOptions =
builtins.replaceStrings ["\n"] [" "]
(cfg.resolvconfOptions +
(optionalString cfg.dnsSingleRequest " single-request") +
(optionalString cfg.dnsExtensionMechanism " ends0"));
resolvconfOptions = cfg.resolvconfOptions
++ optional cfg.dnsSingleRequest "single-request"
++ optional cfg.dnsExtensionMechanism "ends0";
in
{
@ -65,9 +63,9 @@ in
};
networking.resolvconfOptions = lib.mkOption {
type = types.lines;
default = "";
example = "ndots:1 rotate";
type = types.listOf types.str;
default = [];
example = [ "ndots:1" "rotate" ];
description = ''
Set the options in <filename>/etc/resolv.conf</filename>.
'';
@ -184,9 +182,9 @@ in
# Invalidate the nscd cache whenever resolv.conf is
# regenerated.
libc_restart='${pkgs.systemd}/bin/systemctl try-restart --no-block nscd.service 2> /dev/null'
'' + optionalString ((stringLength resolvconfOptions) > 0) ''
'' + optionalString (length resolvconfOptions > 0) ''
# Options as described in resolv.conf(5)
resolv_conf_options='${resolvconfOptions}'
resolv_conf_options='${concatStringsSep " " resolvconfOptions}'
'' + optionalString hasLocalResolver ''
# This hosts runs a full-blown DNS resolver.
name_servers='127.0.0.1'