42 lines
		
	
	
	
		
			805 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			805 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| [ -n "$IF_VRF_TABLE" ] && VRF_TABLE="table $IF_VRF_TABLE"
 | |
| [ -n "$IF_METRIC" ] && METRIC="metric $IF_METRIC"
 | |
| 
 | |
| addr_family() {
 | |
| 	if [ "$1" != "${1#*[0-9].[0-9]}" ]; then
 | |
| 		echo "-4"
 | |
| 	elif [ "$1" != "${1#*:[0-9a-fA-F]}" ]; then
 | |
| 		echo "-6"
 | |
| 	else
 | |
| 		exit 1
 | |
| 	fi
 | |
| }
 | |
| 
 | |
| configure_addresses() {
 | |
| 	for i in $(ifquery -p address -i $INTERFACES_FILE $IFACE); do
 | |
| 		addrfam=$(addr_family $i)
 | |
| 		${MOCK} ip $addrfam addr $1 $i dev $IFACE
 | |
| 	done
 | |
| }
 | |
| 
 | |
| configure_gateways() {
 | |
| 	for i in $(ifquery -p gateway -i $INTERFACES_FILE $IFACE); do
 | |
| 		addrfam=$(addr_family $i)
 | |
| 		${MOCK} ip $addrfam route $1 default via $i $VRF_TABLE $METRIC
 | |
| 	done
 | |
| }
 | |
| 
 | |
| [ -z "$VERBOSE" ] || set -x
 | |
| 
 | |
| case "$PHASE" in
 | |
| up)
 | |
| 	configure_addresses add
 | |
| 	configure_gateways add
 | |
| 	;;
 | |
| down)
 | |
| 	configure_gateways del
 | |
| 	configure_addresses del
 | |
| 	;;
 | |
| *)	exit 0 ;;
 | |
| esac
 |