#!/bin/sh # adds aliases of device $1 if [ "$1" = "" ]; then echo "usage: $0 " exit 1 fi # don't run linuxconf if /usr isn't there... if [ -x /bin/linuxconf -a -f /usr/lib/libncurses.so.4.2 ] ; then # ask linuxconf for lines like: # add # del # reload KERN20= if uname -r | grep -q "^2\.0"; then KERN20=true fi linuxconf --hint ipalias $1 | while read verb arg1 arg2 arg3 arg4; do case $verb in add) if [ -z "$arg3" ] ; then # old linuxconf /sbin/ifconfig $arg1 $arg2 else # new linuxconf /sbin/ifconfig $arg1 $arg2 netmask $arg3 broadcast $arg4 fi [ -n "$KERN20" ] && /sbin/route add $arg2 $arg1 ;; del) # the - 0.0.0.0 tells the kernel to remove the device # it is necessary to remove it in order for reload to work. if [ -n "$KERN20" ]; then /sbin/ifconfig ${arg1}- 0.0.0.0 else /sbin/ifconfig ${arg1} 0.0.0.0 fi ;; reload) echo $arg1 > /proc/sys/net/core/net_alias_max ;; esac done else # we don't have linuxconf to fall back on, so presumably we do # not have to parse linuxconf ipalias ranges, either. # bash 2 is so much fun. if [ "$BASH_VERSINFO" ]; then shopt -s nullglob else allow_null_glob_expansion=foo fi for alias in /etc/sysconfig/network-scripts/ifcfg-$1:* ; do [ -f $alias ] && /etc/sysconfig/network-scripts/ifup $alias done if [ "$BASH_VERSINFO" ]; then shopt -u nullglob else unset allow_null_glob_expansion fi fi