diff options
author | P. J. McDermott <pj@pehjota.net> | 2014-08-06 13:03:50 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2014-08-06 13:03:50 (EDT) |
commit | aaa5253959c5add2c37d546053071f1707dfc02f (patch) | |
tree | 51251ba0b118f53ccd7e7c34f26a91cfd285d07d /src.etc/network/if-up.d/dhcpd | |
parent | 0e281d0103a636d27bd99b952f873d5b37cdebfe (diff) |
Only run udhcpd on interfaces that configure it
Diffstat (limited to 'src.etc/network/if-up.d/dhcpd')
-rw-r--r-- | src.etc/network/if-up.d/dhcpd | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src.etc/network/if-up.d/dhcpd b/src.etc/network/if-up.d/dhcpd index 5fcc18e..1f86512 100644 --- a/src.etc/network/if-up.d/dhcpd +++ b/src.etc/network/if-up.d/dhcpd @@ -4,11 +4,12 @@ set -eu +dhcpd_enabled=false address= subnet= gateway= -dhcpd_opts_start_cb() +dhcpd_start_config() { exec 3>"/var/run/udhcpd.${IFACE}.conf" printf 'interface %s\n' "${IFACE}" >&3 @@ -24,6 +25,10 @@ dhcpd_opt_cb() case "${key}" in dhcpd-*) + if ! ${dhcpd_enabled}; then + dhcpd_start_config + dhcpd_enabled=true + fi key="$(printf '%s\n' "${key#dhcpd-}" | tr '-' '_')" printf '%s %s\n' "${key}" "${val}" >&3 ;; @@ -39,7 +44,7 @@ dhcpd_opt_cb() esac } -dhcpd_opts_end_cb() +dhcpd_end_config() { printf 'option subnet %s\n' "${subnet}" >&3 if [ "x${gateway}" != 'x' ]; then @@ -53,4 +58,7 @@ dhcpd_opts_end_cb() udhcpd -S "/var/run/udhcpd.${IFACE}.conf" } -get_iface_opts dhcpd_opts_start_cb dhcpd_opt_cb dhcpd_opts_end_cb +get_iface_opts dhcpd_opt_cb +if ${dhcpd_enabled}; then + dhcpd_end_config +fi |