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@makrotopia.org>
This commit is contained in:
parent
304df2836a
commit
d79eeba688
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue