1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-12 01:38:28 +02:00
openwrt-xburst/package/network/ipv6/ipv6-support/files/dhcpv6.sh
cyrus 83ef4411d0 ipv6-support: next iteration
* Introduce mode 6rd
* Introduce mode 6to4
* Fix announcement of DNS-Servers received from DHCPv6
* Fix some corner-cases in relaying behaviour

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34542 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-06 20:52:40 +00:00

54 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# Copyright (c) 2012 OpenWrt.org
. /lib/ipv6/support.sh
. /lib/netifd/netifd-proto.sh
local device="$1"
local state="$2"
local network=""
resolve_network network "$device"
# Unknown network
[ -z "$network" ] && exit 0
# Announce prefixes
for prefix in $PREFIXES; do
announce_prefix "$prefix" "$network"
done
for prefix in $PREFIXES_LOST; do
announce_prefix "$prefix" "$network" delprefix
done
# Enable relaying if requested
local prefix_fallback
config_get prefix_fallback "$network" prefix_fallback
[ "$prefix_fallback" == "relay" -a -z "$PREFIXES" -a "$state" != "unbound" ] &&
restart_relay "$network" "fallback"
# Disable relay if requested
[ "$prefix_fallback" != "relay" -o -n "$PREFIXES" -o "$state" == "unbound" ] &&
restart_relay "$network"
# Operations in case of success
[ "$state" == "timeout" || "$state" == "unbound" ] && exit 0
local peerdns
config_get_bool peerdns "$network" peerdns 0
[ "$peerdns" -eq "1" ] && {
proto_init_update "*" 1
proto_set_keep 1
for server in $RDNSS; do
proto_add_dns_server "$server"
done
for domain in $DOMAINS; do
proto_add_dns_search "$domain"
done
proto_send_update "$network"
}