diff options
author | Steven Barth <steven@midlink.org> | 2012-12-22 13:00:53 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2012-12-22 13:00:53 +0000 |
commit | 0e4a0f7b38aca8ad4a1c0b3f529ca1c3b3303664 (patch) | |
tree | 8b4a06ec41bada665cbcc083d9b4970e8a293701 | |
parent | 70a28cb7bbe36744ac8fc95ff82dea7b669d50db (diff) | |
download | upstream-0e4a0f7b38aca8ad4a1c0b3f529ca1c3b3303664.tar.gz upstream-0e4a0f7b38aca8ad4a1c0b3f529ca1c3b3303664.tar.bz2 upstream-0e4a0f7b38aca8ad4a1c0b3f529ca1c3b3303664.zip |
ipv6-support: Preliminary support for dnsmasq >=2.66
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34858 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | package/network/ipv6/ipv6-support/Makefile | 2 | ||||
-rw-r--r-- | package/network/ipv6/ipv6-support/files/support.sh | 32 |
2 files changed, 29 insertions, 5 deletions
diff --git a/package/network/ipv6/ipv6-support/Makefile b/package/network/ipv6/ipv6-support/Makefile index d570e54fc4..6bc3f79b39 100644 --- a/package/network/ipv6/ipv6-support/Makefile +++ b/package/network/ipv6/ipv6-support/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ipv6-support -PKG_VERSION:=2012-12-11 +PKG_VERSION:=2012-12-22 PKG_RELEASE:=1 include $(INCLUDE_DIR)/package.mk diff --git a/package/network/ipv6/ipv6-support/files/support.sh b/package/network/ipv6/ipv6-support/files/support.sh index f723e6e5a0..8cd044f990 100644 --- a/package/network/ipv6/ipv6-support/files/support.sh +++ b/package/network/ipv6/ipv6-support/files/support.sh @@ -172,8 +172,17 @@ disable_router() { # Notify the address distribution daemon 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"'}' # Start RD & DHCPv6 service - local pid="/var/run/ipv6-router-$network.pid" - start_service "/usr/sbin/6relayd -S . $device" "$pid" + local router_service + 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 restart_master_relay "$network" |