mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			996 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			996 B
		
	
	
	
		
			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" "$device"
 | |
| done
 | |
| 
 | |
| for prefix in $PREFIXES_LOST; do
 | |
| 	announce_prefix "$prefix" "$network" "$device" delprefix
 | |
| done
 | |
| 
 | |
| 
 | |
| # Enable relaying if requested
 | |
| local fallback="stop"
 | |
| [ -z "$PREFIXES" -a "$state" != "unbound" ] && fallback="start"
 | |
| setup_prefix_fallback "$fallback" "$network" "$device"
 | |
| 
 | |
| 
 | |
| # Operations in case of success
 | |
| [ "$state" == "timeout" || "$state" == "unbound" ] && exit 0
 | |
| 
 | |
| local peerdns
 | |
| config_get_bool peerdns "$network" peerdns 1
 | |
| [ "$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"
 | |
| }
 | |
| 
 |