summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Palsson <karlp@etactica.com>2017-09-01 11:22:11 +0000
committerHans Dedecker <dedeckeh@gmail.com>2017-10-02 18:51:17 +0200
commit783465d783b17a66b37e6dd7db732244e30e6913 (patch)
treea78981816ab61b541bcae677b218bd0983d29f43
parentc92c1894a53e034661bd4790328ca2ae764581e2 (diff)
downloadmtk-20170518-783465d783b17a66b37e6dd7db732244e30e6913.zip
mtk-20170518-783465d783b17a66b37e6dd7db732244e30e6913.tar.gz
mtk-20170518-783465d783b17a66b37e6dd7db732244e30e6913.tar.bz2
odhcpd: don't enable server mode on non-static lan port
Instead of blindly enabling the odhcpd v6 server and RA server on the lan port, only do that if the lan port protocol is "static" This prevents the unhelpful case of a device being a dhcpv4 client and v6 server on the same ethernet port. Signed-off-by: Karl Palsson <karlp@etactica.com> [PKG_SOURCE_DATE increase; odhcpd.defaults script cleanup] Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
-rw-r--r--package/network/services/odhcpd/Makefile2
-rw-r--r--package/network/services/odhcpd/files/odhcpd.defaults19
2 files changed, 18 insertions, 3 deletions
diff --git a/package/network/services/odhcpd/Makefile b/package/network/services/odhcpd/Makefile
index ba8d9fd..5ba9e7c 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:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(LEDE_GIT)/project/odhcpd.git
diff --git a/package/network/services/odhcpd/files/odhcpd.defaults b/package/network/services/odhcpd/files/odhcpd.defaults
index d079ec0..175e56e 100644
--- a/package/network/services/odhcpd/files/odhcpd.defaults
+++ b/package/network/services/odhcpd/files/odhcpd.defaults
@@ -2,12 +2,27 @@
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") MODE=server ;;
+*) 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.lan.dhcpv6=server
-set dhcp.lan.ra=server
+set dhcp.lan.dhcpv6=$MODE
+set dhcp.lan.ra=$MODE
commit dhcp
EOF