]> git.pld-linux.org Git - projects/rc-scripts.git/blame - sysconfig/network-scripts/ifup-aliases
ifup-{aliases,routes,neigh} are now sourced instead of executed
[projects/rc-scripts.git] / sysconfig / network-scripts / ifup-aliases
CommitLineData
12de71be 1#!/bin/sh
b0443108 2#
ec8b15cb 3# $Id$
b0443108 4#
de1fc6ce 5# adds all addresses of device $1
7742e157 6
de1fc6ce
JR
7# Add all addresses
8for IP_ADDR in $IPADDR_ALIASES; do
5e6dfc29
JR
9 IP_ADDR_OPT=""
10 IP_ROUTE_OPT=""
11
12 [ -z "$IP_ADDR" ] && continue
13 # Be sure that primary address is added
14 if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
15 if (ip addr show dev $DEVICE | egrep -q "[[:space:]]${IP_ADDR}[[:space:]]"); then
16 continue
17 fi
de1fc6ce 18 fi
5e6dfc29
JR
19 if is_yes "${IPV4_NETWORKING}"; then
20 # If broadcast is missing then autocalculate it
21 if ! (echo $IP_ADDR_OPT | egrep -q "brd|broadcast"); then
22 IP_ADDR_OPT="brd + ${IP_ADDR_OPT}"
23 fi
24 ip -4 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
de1fc6ce 25 fi
f3002e12
JK
26done
27
de1fc6ce 28for IP_ADDR in $IPV6_ADDR; do
5e6dfc29
JR
29 IP_ADDR_OPT=""
30 IP_ROUTE_OPT=""
31
32 [ -z "$IP_ADDR" ] && continue
33 # Be sure that primary address is added
34 if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
35 if (ip addr show dev $DEVICE | egrep -q "[[:space:]]${IP_ADDR}[[:space:]]"); then
36 continue
37 fi
de1fc6ce 38 fi
5e6dfc29
JR
39 # Check for IPv6 address
40 if (echo $IP_ADDR | grep -q ":"); then
41 if is_yes "${IPV6_NETWORKING}"; then
42 ip -6 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
43 fi
44 elif is_yes "${IPV4_NETWORKING}"; then
45 # If broadcast is missing then autocalculate it
46 if ! (echo $IP_ADDR_OPT | egrep -q "brd|broadcast"); then
47 IP_ADDR_OPT="brd + ${IP_ADDR_OPT}"
48 fi
49 ip -4 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
74a7f2e4 50 fi
f3002e12
JK
51done
52
13118158 53for nr in $(awk 'BEGIN { max=0; }; /^IPADDR[0-9]+=/ { s = $0; gsub(/^IPADDR/, "", s); gsub(/=.*/, "", s); if (int(s) > int(max)) { max=s; }; }; END { for(j=1; j<=int(max); j++) print j } ' $CONFIG); do
5e6dfc29 54 eval IP_ADDR="\$IPADDR${nr}"
13118158
AM
55 [ -z "$IP_ADDR" ] && continue
56
5e6dfc29
JR
57 eval IP_ADDR_OPT="\$IP_AOPTS${nr}"
58 eval IP_ROUTE_OPT="\$IP_ROPTS${nr}"
59
5e6dfc29
JR
60 # Be sure that primary address is added
61 if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
62 if (ip addr show dev $DEVICE | egrep -q "[[:space:]]${IP_ADDR}[[:space:]]"); then
63 continue
64 fi
de1fc6ce 65 fi
5e6dfc29
JR
66 # Check for IPv6 address
67 if (echo $IP_ADDR | grep -q ":"); then
68 if is_yes "${IPV6_NETWORKING}"; then
69 ip -6 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
70 fi
71 elif is_yes "${IPV4_NETWORKING}"; then
72 # If broadcast is missing then autocalculate it
73 if ! (echo $IP_ADDR_OPT | egrep -q "brd|broadcast"); then
74 IP_ADDR_OPT="brd + ${IP_ADDR_OPT}"
75 fi
76 ip -4 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
de1fc6ce
JR
77 fi
78done
79
80# Setup IPv4-compatible addresses
16eb00d9 81if is_yes "$IPV6_NETWORKING" && [ "$BOOTPROTO6" = "v4compat" ]; then
5e6dfc29
JR
82 # enable automatic tunnels
83 ip link set sit0 up
de1fc6ce 84
5e6dfc29
JR
85 # add v4compat addresses to device
86 for addr in $(ip -4 addr show scope global dev $DEVICE | \
87 awk '/inet/ { print $2 }' | awk -F"/" '{ print $1 }'); do
88 ip -6 addr add ::$addr dev $DEVICE
89 done
5726f160
AM
90fi
91
de1fc6ce 92# This must be last line !
5e6dfc29 93# vi:syntax=sh
This page took 0.063965 seconds and 4 git commands to generate.