Merge pull request #78745 from bene1618/dhcpcd
nixos/dhcpcd: Add option for dhcpcd waiting behaviour
This commit is contained in:
commit
c693bd142c
@ -59,6 +59,16 @@ let
|
|||||||
# Use the list of allowed interfaces if specified
|
# Use the list of allowed interfaces if specified
|
||||||
${optionalString (allowInterfaces != null) "allowinterfaces ${toString allowInterfaces}"}
|
${optionalString (allowInterfaces != null) "allowinterfaces ${toString allowInterfaces}"}
|
||||||
|
|
||||||
|
# Immediately fork to background if specified, otherwise wait for IP address to be assigned
|
||||||
|
${{
|
||||||
|
background = "background";
|
||||||
|
any = "waitip";
|
||||||
|
ipv4 = "waitip 4";
|
||||||
|
ipv6 = "waitip 6";
|
||||||
|
both = "waitip 4\nwaitip 6";
|
||||||
|
if-carrier-up = "";
|
||||||
|
}.${cfg.wait}}
|
||||||
|
|
||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -146,6 +156,21 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.dhcpcd.wait = mkOption {
|
||||||
|
type = types.enum [ "background" "any" "ipv4" "ipv6" "both" "if-carrier-up" ];
|
||||||
|
default = "any";
|
||||||
|
description = ''
|
||||||
|
This option specifies when the dhcpcd service will fork to background.
|
||||||
|
If set to "background", dhcpcd will fork to background immediately.
|
||||||
|
If set to "ipv4" or "ipv6", dhcpcd will wait for the corresponding IP
|
||||||
|
address to be assigned. If set to "any", dhcpcd will wait for any type
|
||||||
|
(IPv4 or IPv6) to be assigned. If set to "both", dhcpcd will wait for
|
||||||
|
both an IPv4 and an IPv6 address before forking.
|
||||||
|
The option "if-carrier-up" is equivalent to "any" if either ethernet
|
||||||
|
is plugged nor WiFi is powered, and to "background" otherwise.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -177,7 +202,7 @@ in
|
|||||||
serviceConfig =
|
serviceConfig =
|
||||||
{ Type = "forking";
|
{ Type = "forking";
|
||||||
PIDFile = "/run/dhcpcd.pid";
|
PIDFile = "/run/dhcpcd.pid";
|
||||||
ExecStart = "@${dhcpcd}/sbin/dhcpcd dhcpcd -w --quiet ${optionalString cfg.persistent "--persistent"} --config ${dhcpcdConf}";
|
ExecStart = "@${dhcpcd}/sbin/dhcpcd dhcpcd --quiet ${optionalString cfg.persistent "--persistent"} --config ${dhcpcdConf}";
|
||||||
ExecReload = "${dhcpcd}/sbin/dhcpcd --rebind";
|
ExecReload = "${dhcpcd}/sbin/dhcpcd --rebind";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user