diff options
Diffstat (limited to 'package/network/services/odhcpd/files')
-rw-r--r-- | package/network/services/odhcpd/files/odhcpd.defaults | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/package/network/services/odhcpd/files/odhcpd.defaults b/package/network/services/odhcpd/files/odhcpd.defaults index e184da90ac..cecbdd4a8d 100644 --- a/package/network/services/odhcpd/files/odhcpd.defaults +++ b/package/network/services/odhcpd/files/odhcpd.defaults @@ -2,13 +2,28 @@ uci -q get dhcp.odhcpd && exit 0 touch /etc/config/dhcp +. /usr/share/libubox/jshn.sh + +json_load "$(cat /etc/board.json)" +json_select network +json_select lan +json_get_vars protocol +json_select .. +json_select .. + +case "$protocol" in +# only enable server mode on statically addressed lan ports +"static") MODE=server ;; +*) MODE=disabled ;; +esac + uci batch <<EOF set dhcp.odhcpd=odhcpd set dhcp.odhcpd.maindhcp=0 set dhcp.odhcpd.leasefile=/tmp/hosts/odhcpd set dhcp.odhcpd.leasetrigger=/usr/sbin/odhcpd-update set dhcp.odhcpd.loglevel=4 -set dhcp.lan.dhcpv6=server -set dhcp.lan.ra=server +set dhcp.lan.dhcpv6=$MODE +set dhcp.lan.ra=$MODE commit dhcp EOF |