Neues Interface Setup. Effektiver, mit kuerzerer Laufzeit...
git-svn-id: svn://svn.compuextreme.de/Viitor/V962/Viitor_sysvinit@5487 504e572c-2e33-0410-9681-be2bf7408885
This commit is contained in:
parent
3a3ede230b
commit
450357bddc
@ -99,39 +99,8 @@ source /etc/init.d/functions
|
||||
case "$1" in
|
||||
start)
|
||||
for IF in `ls -d /sys/class/net/*[^lo]`; do
|
||||
DEVNAME=`basename $IF`
|
||||
if [ -d /sys/class/net/$DEVNAME/wireless ]; then
|
||||
/sbin/wlan_setup $DEVNAME
|
||||
#give wlan a chance go create link
|
||||
sleep 1
|
||||
fi
|
||||
if [ -f /usr/sbin/ethtool ]; then
|
||||
#Einige Dumme Interfaces (z.B. die VMware Emulationen) Zeiten
|
||||
#den korrekten Status erst nach einem ifconfig up
|
||||
ifconfig $DEVNAME up
|
||||
WAITTIME=7
|
||||
ZAHLER=0
|
||||
if ! ethtool $DEVNAME|grep -q "No data available"; then
|
||||
while [ ${ZAHLER} -le ${WAITTIME} ]; do
|
||||
if [ ! `ethtool $DEVNAME|grep Link|awk '{print $3}'` == "yes" ]; then
|
||||
(( ZAHLER++ ))
|
||||
else
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
if [ `ethtool $DEVNAME|grep Link|awk '{print $3}'` == "yes" ]; then
|
||||
/sbin/if_up $DEVNAME
|
||||
touch /var/run/net_up
|
||||
fi
|
||||
else
|
||||
/sbin/if_up $DEVNAME
|
||||
touch /var/run/net_up
|
||||
fi
|
||||
else
|
||||
/sbin/if_up $DEVNAME
|
||||
touch /var/run/net_up
|
||||
fi
|
||||
DEVNAME=`basename $IF`
|
||||
/sbin/if_up $DEVNAME
|
||||
done
|
||||
if [ ! -f /var/run/net_up ] && [ -f /etc/nsswitch.default ]; then
|
||||
cp /etc/nsswitch.files /etc/nsswitch.conf
|
||||
|
42
sbin/if_down
42
sbin/if_down
@ -35,15 +35,25 @@ if [ ! "$DEV" ]; then
|
||||
echo "Usage: $0 <NetworkInterfaceName>"
|
||||
exit 10
|
||||
fi
|
||||
if pgrep vtun >/dev/null; then
|
||||
/etc/init.d/vtund stop
|
||||
fi
|
||||
if [ -f /etc/sysconfig/net/${DEV}.dhcp ]; then
|
||||
kill `ps -ef|grep dhclient|grep ${DEV}|awk '{print $2}'`
|
||||
echo -n "Stopping dhclient for $DEV"
|
||||
DHPID=`ps -ef|grep dhclient|grep ${DEV}|awk '{print $2}'`
|
||||
if [ "$DHPID" ]; then
|
||||
kill $DHPID
|
||||
fi
|
||||
evaluate_retval
|
||||
echo -n "Shutting down Interface $DEV"
|
||||
ifconfig $DEV 0.0.0.0 down
|
||||
evaluate_retval
|
||||
elif [ -f /etc/sysconfig/net/hostname.${DEV} ]; then
|
||||
HOST=`cat /etc/sysconfig/net/hostname.${DEV}|awk '{print $1}'`
|
||||
IP=`grep $HOST /etc/hosts|awk '{print $1}'`
|
||||
NETMASK=`getmask $IP`
|
||||
SHMASK=`GetShortMask $NETMASK`
|
||||
echo -n "setting up interface $i:IP=$IP NMASK=$NETMASK"
|
||||
echo -n "shutting down interface $i:IP=$IP NMASK=$NETMASK"
|
||||
if [ "$NETMASK" = "" ]; then
|
||||
DEV=`echo $i|cut -d ":" -f 1`
|
||||
$DEBUG ip addr del $IP broadcast + dev $DEV
|
||||
@ -55,3 +65,31 @@ elif [ -f /etc/sysconfig/net/hostname.${DEV} ]; then
|
||||
fi
|
||||
evaluate_retval
|
||||
fi
|
||||
if [ -f /var/run/shutdown/wlan_nis ]; then
|
||||
if [ -f /etc/sysconfig/nis/defaultdomain.wlan ]; then
|
||||
echo -n "Restoring nis defaultdomain"
|
||||
mv /etc/sysconfig/nis/defaultdomain.wlan \
|
||||
/etc/sysconfig/nis/defaultdomain
|
||||
evaluate_retval
|
||||
fi
|
||||
if [ -f /etc/yp.conf.wlan ]; then
|
||||
echo -n "Restoring nis yp.conf"
|
||||
mv /etc/yp.conf.wlan \
|
||||
/etc/yp.conf
|
||||
evaluate_retval
|
||||
fi
|
||||
rm /var/run/shutdown/wlan_nis
|
||||
if [ -f /var/run/shutdown/wlan_dns ]; then
|
||||
if [ -f /etc/resolv.conf.wlan ]; then
|
||||
echo -n "Restoring resolv.conf"
|
||||
mv /etc/resolv.conf.wlan /etc/resolv.conf
|
||||
evaluate_retval
|
||||
fi
|
||||
rm /var/run/shutdown/wlan_dns
|
||||
fi
|
||||
fi
|
||||
if pgrep wpa_supplicant >/dev/null; then
|
||||
echo -n "Stopping wpa_supplicant"
|
||||
pkill wpa_supplicant
|
||||
evaluate_retval
|
||||
fi
|
||||
|
105
sbin/if_up
105
sbin/if_up
@ -30,31 +30,96 @@
|
||||
#
|
||||
|
||||
source /etc/init.d/functions
|
||||
|
||||
DEV=$1
|
||||
|
||||
CheckForLink() {
|
||||
NETDEVICE=$1
|
||||
if [ -f /usr/sbin/ethtool ]; then
|
||||
#Einige Dumme Interfaces (z.B. die VMware Emulationen) Zeiten
|
||||
#den korrekten Status erst nach einem ifconfig up
|
||||
WAITTIME=7
|
||||
ZAHLER=0
|
||||
if ! ethtool $NETDEVICE|grep -q "No data available"; then
|
||||
while [ ${ZAHLER} -le ${WAITTIME} ]; do
|
||||
if [ ! `ethtool $NETDEVICE|grep Link|awk '{print $3}'` == "yes" ]; then
|
||||
(( ZAHLER++ ))
|
||||
else
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
if [ `ethtool $NETDEVICE|grep Link|awk '{print $3}'` == "yes" ]; then
|
||||
touch /var/run/net_up
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
touch /var/run/net_up
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
touch /var/run/net_up
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
if [ ! "$DEV" ]; then
|
||||
echo "Usage: $0 <NetworkInterfaceName>"
|
||||
exit 10
|
||||
fi
|
||||
|
||||
#Check for files in /etc/sysconfig/net
|
||||
#hostname.<if> will setup static ip for the interfaces, based
|
||||
#on /etc/hosts (hostname) and /etc/networks (netmask/Broadcast)
|
||||
#<if>.dhcp will do a dynamic setup for the interface with dhcp
|
||||
|
||||
if [ -f /etc/sysconfig/net/${DEV}.dhcp ]; then
|
||||
echo -n "Setting up ${DEV} with dhcp"
|
||||
dhclient -q ${DEV}
|
||||
evaluate_retval
|
||||
#ok this is the dynamic part for setup ${DEV}
|
||||
#first we have to startup interface to check interface type
|
||||
ifconfig ${DEV} up
|
||||
#Let check in /sys if the interface is a wireless interface
|
||||
if [ -d /sys/class/net/${DEV}/wireless ]; then
|
||||
#wireless interface need special setup..
|
||||
/sbin/wlan_setup ${DEV}
|
||||
#give wlan time to startup and create a link
|
||||
sleep 1
|
||||
fi
|
||||
#let check if there is a link on the interface.
|
||||
#only if there is a link, we will setup the interface..
|
||||
if CheckForLink ${DEV}; then
|
||||
echo -n "Setting up ${DEV} with dhcp"
|
||||
dhclient -q ${DEV}
|
||||
evaluate_retval
|
||||
else
|
||||
ifconfig ${DEV} down
|
||||
fi
|
||||
elif ls /etc/sysconfig/net/hostname.${DEV}* &>/dev/null; then
|
||||
for NETDEV in `ls /etc/sysconfig/net/hostname.${DEV}*|awk -F "." '{print $2}'`; do
|
||||
HOST=`cat /etc/sysconfig/net/hostname.${NETDEV}|awk '{print $1}'`
|
||||
IP=`grep $HOST /etc/hosts|awk '{print $1}'`
|
||||
NETMASK=`getmask $IP`
|
||||
SHMASK=`GetShortMask $NETMASK`
|
||||
echo -n "setting up interface $NETDEV:IP=$IP NMASK=$NETMASK"
|
||||
if [ "$NETMASK" = "" ]; then
|
||||
DEV=`echo $NETDEV|cut -d ":" -f 1`
|
||||
$DEBUG ip addr add $IP broadcast + dev $DEV
|
||||
$DEBUG ip link set $DEV up
|
||||
else
|
||||
DEV=`echo $NETDEV|cut -d ":" -f 1`
|
||||
$DEBUG ip addr add $IP/$SHMASK broadcast + dev $DEV
|
||||
$DEBUG ip link set $DEV up
|
||||
fi
|
||||
done
|
||||
evaluate_retval
|
||||
ifconfig ${DEV} up
|
||||
if [ -d /sys/class/net/${DEV}/wireless ]; then
|
||||
/sbin/wlan_setup ${DEV}
|
||||
#give wlan time to startup and create a link
|
||||
sleep 1
|
||||
fi
|
||||
if CheckForLink ${DEV}; then
|
||||
for NETDEV in `ls /etc/sysconfig/net/hostname.${DEV}*|awk -F "." '{print $2}'`; do
|
||||
HOST=`cat /etc/sysconfig/net/hostname.${NETDEV}|awk '{print $1}'`
|
||||
IP=`grep $HOST /etc/hosts|awk '{print $1}'`
|
||||
NETMASK=`getmask $IP`
|
||||
SHMASK=`GetShortMask $NETMASK`
|
||||
echo -n "setting up interface $NETDEV:IP=$IP NMASK=$NETMASK"
|
||||
if [ "$NETMASK" = "" ]; then
|
||||
DEV=`echo $NETDEV|cut -d ":" -f 1`
|
||||
$DEBUG ip addr add $IP broadcast + dev $DEV
|
||||
$DEBUG ip link set $DEV up
|
||||
else
|
||||
DEV=`echo $NETDEV|cut -d ":" -f 1`
|
||||
$DEBUG ip addr add $IP/$SHMASK broadcast + dev $DEV
|
||||
$DEBUG ip link set $DEV up
|
||||
fi
|
||||
done
|
||||
else
|
||||
ifconfig ${DEV} down
|
||||
fi
|
||||
fi
|
||||
|
@ -84,9 +84,13 @@ for AP in `iwlist $DEV scan 2>/dev/null|\
|
||||
if [ -f /etc/sysconfig/nis/defaultdomain.wlan ]; then
|
||||
mv /etc/sysconfig/nis/defaultdomain.wlan \
|
||||
/etc/sysconfig/nis/defaultdomain
|
||||
elif [ -f /etc/sysconfig/nis/defaultdomain ]; then
|
||||
rm /etc/sysconfig/nis/defaultdomain
|
||||
fi
|
||||
if [ -f /etc/yp.conf.store ]; then
|
||||
if [ -f /etc/yp.conf.wlan ]; then
|
||||
mv /etc/yp.conf.wlan /etc/yp.conf
|
||||
elif [ -f /etc/yp.conf ]; then
|
||||
rm /etc/yp.conf
|
||||
fi
|
||||
fi
|
||||
touch /var/run/shutdown/wlan_nis
|
||||
|
Loading…
Reference in New Issue
Block a user