odhcpd: setup dhcpv4 server automagically
[openwrt/openwrt.git] / package / network / services / odhcpd / files / odhcpd.defaults
index 5a1706f78564cb3b7bee3fdacd42b77180a90e2e..1350636ba4300f4ef69508576597de99c0193c1f 100644 (file)
@@ -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