ipv6-support: Preliminary support for dnsmasq >=2.66

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34858 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Steven Barth 2012-12-22 13:00:53 +00:00
parent 70a28cb7bb
commit 0e4a0f7b38
2 changed files with 29 additions and 5 deletions

View File

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=ipv6-support PKG_NAME:=ipv6-support
PKG_VERSION:=2012-12-11 PKG_VERSION:=2012-12-22
PKG_RELEASE:=1 PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk

View File

@ -172,8 +172,17 @@ disable_router() {
# Notify the address distribution daemon # Notify the address distribution daemon
ubus call 6distributed deliface '{"network": "'"$network"'"}' ubus call 6distributed deliface '{"network": "'"$network"'"}'
# Disable advertisement daemon
stop_service /usr/sbin/6relayd "/var/run/ipv6-router-$network.pid" # Start RD & DHCPv6 service
local router_service
config_get router_service global router_service
if [ "$router_service" == "dnsmasq" ]; then
rm -f "/var/etc/dnsmasq.d/ipv6-router-$network.conf"
/etc/init.d/dnsmasq restart
else
stop_service /usr/sbin/6relayd "/var/run/ipv6-router-$network.pid"
fi
} }
@ -424,8 +433,23 @@ enable_router() {
[ "$length" -ne "0" ] && ubus call 6distributed newiface '{"network": "'"$network"'", "iface": "'"$device"'", "length": '"$length"'}' [ "$length" -ne "0" ] && ubus call 6distributed newiface '{"network": "'"$network"'", "iface": "'"$device"'", "length": '"$length"'}'
# Start RD & DHCPv6 service # Start RD & DHCPv6 service
local pid="/var/run/ipv6-router-$network.pid" local router_service
start_service "/usr/sbin/6relayd -S . $device" "$pid" config_get router_service global router_service
if [ "$router_service" == "dnsmasq" ]; then
local dnsmasq_opts
config_get dnsmasq_opts global dnsmasq_opts
[ -z "$dnsmasq_opts" ] && dnsmasq_opts="ra-stateful,ra-names"
local conf="/var/etc/dnsmasq.d/ipv6-router-$network.conf"
mkdir -p $(dirname $conf)
echo "dhcp-range=::1,constructor:$device,$dnsmasq_opts" > $conf
echo "enable-ra" >> $conf
/etc/init.d/dnsmasq restart
else
local pid="/var/run/ipv6-router-$network.pid"
start_service "/usr/sbin/6relayd -S . $device" "$pid"
fi
# Try relaying if necessary # Try relaying if necessary
restart_master_relay "$network" restart_master_relay "$network"