Unverified Commit 8011f7dd authored by Peter Simons's avatar Peter Simons Committed by GitHub
Browse files

nixos/bind: fix listenOnPort option (#455222)

parents 775a2355 fa252e8e
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -107,8 +107,12 @@ let
      acl badnetworks { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.blockedNetworks} };

      options {
        listen-on { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.listenOn} };
        listen-on-v6 { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.listenOnIpv6} };
        listen-on port ${toString cfg.listenOnPort} { ${
          lib.concatMapStrings (entry: " ${entry}; ") cfg.listenOn
        } };
        listen-on-v6 port ${toString cfg.listenOnIpv6Port} { ${
          lib.concatMapStrings (entry: " ${entry}; ") cfg.listenOnIpv6
        } };
        allow-query-cache { cachenetworks; };
        blackhole { badnetworks; };
        forward ${cfg.forward};
+48 −21
Original line number Diff line number Diff line
{ ... }:
{
  name = "bind";

  nodes.machine =
    { pkgs, lib, ... }:
    {
      services.bind.enable = true;
      services.bind.extraOptions = "empty-zones-enable no;";
      services.bind.zones = lib.singleton {
  config,
  lib,
  pkgs,
  ...
}:
let
  zones = lib.singleton {
    name = ".";
    master = true;
    file = pkgs.writeText "root.zone" ''
@@ -21,10 +19,39 @@
      1.0.168.192.in-addr.arpa IN PTR ns.example.org.
    '';
  };
in
{
  name = "bind";

  nodes = {
    machine = {
      services.bind = {
        enable = true;

        extraOptions = "empty-zones-enable no;";
        inherit zones;
      };
    };

    machineNonDefaultPort = {
      services.bind = {
        enable = true;

        extraOptions = "empty-zones-enable no;";
        inherit zones;

        listenOnPort = 9053;
      };
    };
  };

  testScript = ''
    with subtest("Bind starts and responds"):
      machine.wait_for_unit("bind.service")
      machine.succeed("host 192.168.0.1 127.0.0.1 | grep -qF ns.example.org")

    with subtest("Bind starts and responds on nondefault port"):
      machineNonDefaultPort.wait_for_unit("bind.service")
      machineNonDefaultPort.succeed("host -p 9053 192.168.0.1 127.0.0.1 | grep -qF ns.example.org")
  '';
}