|
@@ -11,20 +11,40 @@ json_get_vars protocol
|
|
|
json_select ..
|
|
|
json_select ..
|
|
|
|
|
|
+ODHCPDONLY=0
|
|
|
+V4MODE=disabled
|
|
|
+V6MODE=disabled
|
|
|
+
|
|
|
+[ -e /usr/sbin/dnsmasq ] || ODHCPDONLY=1
|
|
|
+
|
|
|
case "$protocol" in
|
|
|
# only enable server mode on statically addressed lan ports
|
|
|
-"static") [ -e /proc/sys/net/ipv6 ] && MODE=server || MODE=disabled ;;
|
|
|
-*) MODE=disabled ;;
|
|
|
+"static")
|
|
|
+ V4MODE=server
|
|
|
+ [ -e /proc/sys/net/ipv6 ] && V6MODE=server
|
|
|
+ ;;
|
|
|
esac
|
|
|
|
|
|
+uci get dhcp.lan 1>/dev/null 2>/dev/null || {
|
|
|
+uci batch <<EOF
|
|
|
+set dhcp.lan=dhcp
|
|
|
+set dhcp.lan.interface='lan'
|
|
|
+set dhcp.lan.start='100'
|
|
|
+set dhcp.lan.limit='150'
|
|
|
+set dhcp.lan.leasetime='12h'
|
|
|
+set dhcp.lan.domain='lan'
|
|
|
+EOF
|
|
|
+}
|
|
|
+
|
|
|
uci batch <<EOF
|
|
|
set dhcp.odhcpd=odhcpd
|
|
|
-set dhcp.odhcpd.maindhcp=0
|
|
|
+set dhcp.odhcpd.maindhcp=$ODHCPDONLY
|
|
|
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.dhcpv4=$V4MODE
|
|
|
+set dhcp.lan.dhcpv6=$V6MODE
|
|
|
+set dhcp.lan.ra=$V6MODE
|
|
|
set dhcp.lan.ra_slaac=1
|
|
|
add_list dhcp.lan.ra_flags=managed-config
|
|
|
add_list dhcp.lan.ra_flags=other-config
|