diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2014-08-14 21:01:27 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2014-08-14 21:01:27 +0200 |
commit | 7fdd16cb54c70063ba0291684d7c7344073cd647 (patch) | |
tree | 2bf0387a52e3da1e4951f4652adb3f188cc3cb9a /nixos/modules/services/networking/dhcpd.nix | |
parent | dc80331638568b63f32dd5c1b32723166de3f33f (diff) | |
parent | 5337b164359f8b3578788ba5f3aaadd39d917e37 (diff) | |
download | nixlib-7fdd16cb54c70063ba0291684d7c7344073cd647.tar nixlib-7fdd16cb54c70063ba0291684d7c7344073cd647.tar.gz nixlib-7fdd16cb54c70063ba0291684d7c7344073cd647.tar.bz2 nixlib-7fdd16cb54c70063ba0291684d7c7344073cd647.tar.lz nixlib-7fdd16cb54c70063ba0291684d7c7344073cd647.tar.xz nixlib-7fdd16cb54c70063ba0291684d7c7344073cd647.tar.zst nixlib-7fdd16cb54c70063ba0291684d7c7344073cd647.zip |
merge #3074: dhcp: update to the latest version
Diffstat (limited to 'nixos/modules/services/networking/dhcpd.nix')
-rw-r--r-- | nixos/modules/services/networking/dhcpd.nix | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/nixos/modules/services/networking/dhcpd.nix b/nixos/modules/services/networking/dhcpd.nix index e5e1c103c686..900df67b53aa 100644 --- a/nixos/modules/services/networking/dhcpd.nix +++ b/nixos/modules/services/networking/dhcpd.nix @@ -13,7 +13,7 @@ let default-lease-time 600; max-lease-time 7200; authoritative; - ddns-update-style ad-hoc; + ddns-update-style interim; log-facility local1; # see dhcpd.nix ${cfg.extraConfig} @@ -108,22 +108,41 @@ in config = mkIf config.services.dhcpd.enable { - jobs.dhcpd = + users = { + extraUsers.dhcpd = { + uid = config.ids.uids.dhcpd; + description = "DHCP daemon user"; + }; + }; + + systemd.services.dhcpd = { description = "DHCP server"; - startOn = "started network-interfaces"; - stopOn = "stopping network-interfaces"; + wantedBy = [ "multi-user.target" ]; - script = + after = [ "network.target" ]; + + path = [ pkgs.dhcp ]; + + preStart = '' mkdir -m 755 -p ${stateDir} touch ${stateDir}/dhcpd.leases - exec ${pkgs.dhcp}/sbin/dhcpd -f -cf ${configFile} \ - -lf ${stateDir}/dhcpd.leases \ - ${toString cfg.interfaces} + mkdir -m 755 -p /run/dhcpd + chown dhcpd /run/dhcpd ''; + + serviceConfig = + { ExecStart = "@${pkgs.dhcp}/sbin/dhcpd dhcpd" + + " -pf /run/dhcpd/dhcpd.pid -cf ${configFile}" + + " -lf ${stateDir}/dhcpd.leases -user dhcpd -group nogroup" + + " ${toString cfg.interfaces}"; + Restart = "always"; + Type = "forking"; + PIDFile = "/run/dhcpd/dhcpd.pid"; + }; }; }; |