aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/network/services/odhcpd/Makefile2
-rw-r--r--package/network/services/odhcpd/files/odhcpd.defaults30
2 files changed, 26 insertions, 6 deletions
diff --git a/package/network/services/odhcpd/Makefile b/package/network/services/odhcpd/Makefile
index fe3e526ef1..799a63c23d 100644
--- a/package/network/services/odhcpd/Makefile
+++ b/package/network/services/odhcpd/Makefile
@@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=odhcpd
-PKG_RELEASE:=1
+PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git
diff --git a/package/network/services/odhcpd/files/odhcpd.defaults b/package/network/services/odhcpd/files/odhcpd.defaults
index 5a1706f785..1350636ba4 100644
--- a/package/network/services/odhcpd/files/odhcpd.defaults
+++ b/package/network/services/odhcpd/files/odhcpd.defaults
@@ -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