source: projects/initscripts/tags/initscripts-8.91.0/sysconfig/network-scripts/ifup-post @ 2576

Revision 2576, 2.4 KB checked in by daisuke, 13 years ago (diff)

tagging as initscripts-8.91.0

Line 
1#!/bin/sh
2
3cd /etc/sysconfig/network-scripts
4. /etc/sysconfig/network-scripts/network-functions
5
6[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
7
8unset REALDEVICE
9if [ "$1" = --realdevice ] ; then
10    REALDEVICE=$2
11    shift 2
12fi
13
14CONFIG=$1
15source_config
16
17[ -z "$REALDEVICE" ] && REALDEVICE=$DEVICE
18
19if [ "$ISALIAS" = no ] ; then
20    /etc/sysconfig/network-scripts/ifup-aliases ${DEVICE} ${CONFIG}
21fi
22
23/etc/sysconfig/network-scripts/ifup-routes ${REALDEVICE} ${DEVNAME}
24
25
26if [ "$PEERDNS" != "no" ] ||[ -n "$RESOLV_MODS" -a "$RESOLV_MODS" != "no" ]; then
27  [ -n "$MS_DNS1" ] && DNS1=$MS_DNS1
28  [ -n "$MS_DNS2" ] && DNS2=$MS_DNS2
29  if [ -n "$DNS1" ] && ! grep -q "^nameserver $DNS1" /etc/resolv.conf &&
30   tr=`mktemp /tmp/XXXXXX` ; then
31    current_replacement="$DNS1"
32    next_replacement="$DNS2"
33    search=
34    (cat /etc/resolv.conf ; echo EOF ; echo EOF) | while read answer ; do
35        case $answer in
36            nameserver*|EOF)
37                if [ -n "$current_replacement" ] ; then
38                    echo "nameserver $current_replacement" >> $tr
39                    if [ -n "$next_replacement" ] ; then
40                        current_replacement="$next_replacement"
41                        next_replacement=
42                    else
43                        current_replacement=
44                    fi
45                else
46                    if [ "$answer" != EOF ] ; then
47                        echo "$answer" >> $tr
48                    fi
49                fi
50                ;;
51            domain*|search*)
52                if [ -n "$DOMAIN" ]; then
53                    echo "$answer" | while read key value ; do
54                        search="$search $value"
55                    done
56                else
57                    echo "$answer" >> $tr
58                fi
59                ;;
60            *)
61                echo "$answer" >> $tr
62                ;;
63        esac
64    done
65    if [ -n "$DOMAIN" ]; then
66        echo "search $DOMAIN $search" >> $tr
67    fi
68
69    # backup resolv.conf
70    cp -af /etc/resolv.conf /etc/resolv.conf.save
71
72    # maintain permissions
73    # but set umask in case it doesn't exist!
74    oldumask=`umask`
75    umask 022
76    change_resolv_conf $tr 
77    rm -f $tr
78    umask $oldumask
79  fi
80fi
81
82# don't set hostname on ppp/slip connections
83if [ "$2" = "boot" -a \
84     "${DEVICE}" != lo -a \
85     "${DEVICETYPE}" != "ppp" -a \
86     "${DEVICETYPE}" != "slip" ]; then
87    if need_hostname; then
88        IPADDR=$(LANG=C ip -o -4 addr ls dev ${DEVICE} | awk '{ print $4 ; exit }')
89        eval $(/bin/ipcalc --silent --hostname ${IPADDR} ; echo "status=$?")
90        if [ "$status" = "0" ]; then
91            set_hostname $HOSTNAME
92        fi
93    fi
94fi
95
96# Notify programs that have requested notification
97do_netreport
98
99if [ -x /sbin/ifup-local ]; then
100    /sbin/ifup-local ${DEVICE}
101fi
102
103exit 0
Note: See TracBrowser for help on using the repository browser.