Remove networking.hostConf option

This PR is part of the networking.* namespace cleanup. We feel that
networking.hostConf is rarely used and provides little value compared to
using environment.etc."host.conf" directly.

Provide sensible default: multi on
This commit is contained in:
Christian Kauhaus 2019-11-29 12:08:34 +01:00
parent 724133984f
commit 918c2ca01a
3 changed files with 81 additions and 14 deletions

View File

@ -41,19 +41,6 @@ in
'';
};
networking.hostConf = lib.mkOption {
type = types.lines;
default = "multi on";
example = ''
multi on
reorder on
trim lan
'';
description = ''
The contents of <filename>/etc/host.conf</filename>. See also <citerefentry><refentrytitle>host.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
'';
};
networking.timeServers = mkOption {
default = [
"0.nixos.pool.ntp.org"
@ -186,7 +173,9 @@ in
'';
# /etc/host.conf: resolver configuration file
"host.conf".text = cfg.hostConf;
"host.conf".text = ''
multi on
'';
} // optionalAttrs (pkgs.stdenv.hostPlatform.libc == "glibc") {
# /etc/rpc: RPC program numbers.

View File

@ -239,6 +239,7 @@ with lib;
(mkRemovedOptionModule [ "systemd" "generator-packages" ] "Use systemd.packages instead.")
(mkRemovedOptionModule [ "fonts" "enableCoreFonts" ] "Use fonts.fonts = [ pkgs.corefonts ]; instead.")
(mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
(mkRemovedOptionModule [ "networking" "hostConf" ] "Use environment.etc.\"host.conf\" instead.")
# ZSH
(mkRenamedOptionModule [ "programs" "zsh" "enableSyntaxHighlighting" ] [ "programs" "zsh" "syntaxHighlighting" "enable" ])

77
nixos/tests/resolv.nix Normal file
View File

@ -0,0 +1,77 @@
# Test whether DNS resolving returns multiple records and all address families.
import ./make-test-python.nix ({ pkgs, ... } : {
name = "resolv";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ckauhaus ];
};
nodes.resolv = { ... }: {
networking.extraHosts = ''
# IPv4 only
192.0.2.1 host-ipv4.example.net
192.0.2.2 host-ipv4.example.net
# IP6 only
2001:db8::2:1 host-ipv6.example.net
2001:db8::2:2 host-ipv6.example.net
# dual stack
192.0.2.1 host-dual.example.net
192.0.2.2 host-dual.example.net
2001:db8::2:1 host-dual.example.net
2001:db8::2:2 host-dual.example.net
'';
};
testScript = let
getaddrinfo_py = pkgs.writeScript "getaddrinfo.py" ''
import socket
import sys
result = set()
for gai in socket.getaddrinfo(sys.argv[1], 0):
result.add(gai[4][0])
print(' '.join(sorted(list(result))))
'';
getaddrinfo = "${pkgs.python3.interpreter} ${getaddrinfo_py}";
in
''
def compare(test, should, is_):
should = should.strip()
is_ = is_.strip()
resolv.log("{}: expected '{}', actual '{}'".format(test, should, is_))
if should == is_:
resolv.log("* OK")
return True
else:
resolv.log("* FAILED")
return False
start_all()
resolv.wait_for_unit("nscd")
res = []
out = resolv.succeed(
"${getaddrinfo} host-ipv4.example.net"
)
res.append(compare("resolve IPv4", "192.0.2.1 192.0.2.2", out))
out = resolv.succeed(
"${getaddrinfo} host-ipv6.example.net"
)
res.append(compare("resolve IPv6", "2001:db8::2:1 2001:db8::2:2", out))
out = resolv.succeed(
"${getaddrinfo} host-dual.example.net"
)
res.append(
compare(
"resolve dual stack", "192.0.2.1 192.0.2.2 2001:db8::2:1 2001:db8::2:2", out
)
)
assert all(res) is True
'';
})