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