[openwrt/openwrt] odhcpd: setup dhcpv4 server automagically

LEDE Commits lede-commits at lists.infradead.org
Sun Feb 14 19:36:04 EST 2021


dangole pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/d79eeba6887b69d6ee608480d267bd1bef768cb7

commit d79eeba6887b69d6ee608480d267bd1bef768cb7
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sun Feb 14 22:39:24 2021 +0000

    odhcpd: setup dhcpv4 server automagically
    
    Automatically setup dhcpv4 server just like it's done for dhcpv6.
    To select whether odhcpd or dnsmasq are serving DHCPv4 requests there
    still is the 'maindhcp' option. To make things less confusing, make
    sure things really work out-of-the-box in case dnsmasq is not even
    installed at the time the uci-defaults script is being run.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 package/network/services/odhcpd/Makefile           |  2 +-
 .../network/services/odhcpd/files/odhcpd.defaults  | 30 ++++++++++++++++++----
 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



More information about the lede-commits mailing list