#!/bin/sh 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") [ -e /proc/sys/net/ipv6 ] && MODE=server || MODE=disabled ;; *) 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=$MODE set dhcp.lan.ra=$MODE set dhcp.lan.ra_slaac=1 add_list dhcp.lan.ra_flags=managed-config add_list dhcp.lan.ra_flags=other-config commit dhcp EOF