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
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
for IF in `ls -d /sys/class/net/*[^lo]`; do
|
for IF in `ls -d /sys/class/net/*[^lo]`; do
|
||||||
DEVNAME=`basename $IF`
|
DEVNAME=`basename $IF`
|
||||||
if [ -d /sys/class/net/$DEVNAME/wireless ]; then
|
/sbin/if_up $DEVNAME
|
||||||
/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
|
|
||||||
done
|
done
|
||||||
if [ ! -f /var/run/net_up ] && [ -f /etc/nsswitch.default ]; then
|
if [ ! -f /var/run/net_up ] && [ -f /etc/nsswitch.default ]; then
|
||||||
cp /etc/nsswitch.files /etc/nsswitch.conf
|
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>"
|
echo "Usage: $0 <NetworkInterfaceName>"
|
||||||
exit 10
|
exit 10
|
||||||
fi
|
fi
|
||||||
|
if pgrep vtun >/dev/null; then
|
||||||
|
/etc/init.d/vtund stop
|
||||||
|
fi
|
||||||
if [ -f /etc/sysconfig/net/${DEV}.dhcp ]; then
|
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
|
ifconfig $DEV 0.0.0.0 down
|
||||||
|
evaluate_retval
|
||||||
elif [ -f /etc/sysconfig/net/hostname.${DEV} ]; then
|
elif [ -f /etc/sysconfig/net/hostname.${DEV} ]; then
|
||||||
HOST=`cat /etc/sysconfig/net/hostname.${DEV}|awk '{print $1}'`
|
HOST=`cat /etc/sysconfig/net/hostname.${DEV}|awk '{print $1}'`
|
||||||
IP=`grep $HOST /etc/hosts|awk '{print $1}'`
|
IP=`grep $HOST /etc/hosts|awk '{print $1}'`
|
||||||
NETMASK=`getmask $IP`
|
NETMASK=`getmask $IP`
|
||||||
SHMASK=`GetShortMask $NETMASK`
|
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
|
if [ "$NETMASK" = "" ]; then
|
||||||
DEV=`echo $i|cut -d ":" -f 1`
|
DEV=`echo $i|cut -d ":" -f 1`
|
||||||
$DEBUG ip addr del $IP broadcast + dev $DEV
|
$DEBUG ip addr del $IP broadcast + dev $DEV
|
||||||
@ -55,3 +65,31 @@ elif [ -f /etc/sysconfig/net/hostname.${DEV} ]; then
|
|||||||
fi
|
fi
|
||||||
evaluate_retval
|
evaluate_retval
|
||||||
fi
|
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
|
source /etc/init.d/functions
|
||||||
|
|
||||||
DEV=$1
|
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
|
if [ ! "$DEV" ]; then
|
||||||
echo "Usage: $0 <NetworkInterfaceName>"
|
echo "Usage: $0 <NetworkInterfaceName>"
|
||||||
exit 10
|
exit 10
|
||||||
fi
|
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
|
if [ -f /etc/sysconfig/net/${DEV}.dhcp ]; then
|
||||||
echo -n "Setting up ${DEV} with dhcp"
|
#ok this is the dynamic part for setup ${DEV}
|
||||||
dhclient -q ${DEV}
|
#first we have to startup interface to check interface type
|
||||||
evaluate_retval
|
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
|
elif ls /etc/sysconfig/net/hostname.${DEV}* &>/dev/null; then
|
||||||
for NETDEV in `ls /etc/sysconfig/net/hostname.${DEV}*|awk -F "." '{print $2}'`; do
|
ifconfig ${DEV} up
|
||||||
HOST=`cat /etc/sysconfig/net/hostname.${NETDEV}|awk '{print $1}'`
|
if [ -d /sys/class/net/${DEV}/wireless ]; then
|
||||||
IP=`grep $HOST /etc/hosts|awk '{print $1}'`
|
/sbin/wlan_setup ${DEV}
|
||||||
NETMASK=`getmask $IP`
|
#give wlan time to startup and create a link
|
||||||
SHMASK=`GetShortMask $NETMASK`
|
sleep 1
|
||||||
echo -n "setting up interface $NETDEV:IP=$IP NMASK=$NETMASK"
|
fi
|
||||||
if [ "$NETMASK" = "" ]; then
|
if CheckForLink ${DEV}; then
|
||||||
DEV=`echo $NETDEV|cut -d ":" -f 1`
|
for NETDEV in `ls /etc/sysconfig/net/hostname.${DEV}*|awk -F "." '{print $2}'`; do
|
||||||
$DEBUG ip addr add $IP broadcast + dev $DEV
|
HOST=`cat /etc/sysconfig/net/hostname.${NETDEV}|awk '{print $1}'`
|
||||||
$DEBUG ip link set $DEV up
|
IP=`grep $HOST /etc/hosts|awk '{print $1}'`
|
||||||
else
|
NETMASK=`getmask $IP`
|
||||||
DEV=`echo $NETDEV|cut -d ":" -f 1`
|
SHMASK=`GetShortMask $NETMASK`
|
||||||
$DEBUG ip addr add $IP/$SHMASK broadcast + dev $DEV
|
echo -n "setting up interface $NETDEV:IP=$IP NMASK=$NETMASK"
|
||||||
$DEBUG ip link set $DEV up
|
if [ "$NETMASK" = "" ]; then
|
||||||
fi
|
DEV=`echo $NETDEV|cut -d ":" -f 1`
|
||||||
done
|
$DEBUG ip addr add $IP broadcast + dev $DEV
|
||||||
evaluate_retval
|
$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
|
fi
|
||||||
|
@ -84,9 +84,13 @@ for AP in `iwlist $DEV scan 2>/dev/null|\
|
|||||||
if [ -f /etc/sysconfig/nis/defaultdomain.wlan ]; then
|
if [ -f /etc/sysconfig/nis/defaultdomain.wlan ]; then
|
||||||
mv /etc/sysconfig/nis/defaultdomain.wlan \
|
mv /etc/sysconfig/nis/defaultdomain.wlan \
|
||||||
/etc/sysconfig/nis/defaultdomain
|
/etc/sysconfig/nis/defaultdomain
|
||||||
|
elif [ -f /etc/sysconfig/nis/defaultdomain ]; then
|
||||||
|
rm /etc/sysconfig/nis/defaultdomain
|
||||||
fi
|
fi
|
||||||
if [ -f /etc/yp.conf.store ]; then
|
if [ -f /etc/yp.conf.wlan ]; then
|
||||||
mv /etc/yp.conf.wlan /etc/yp.conf
|
mv /etc/yp.conf.wlan /etc/yp.conf
|
||||||
|
elif [ -f /etc/yp.conf ]; then
|
||||||
|
rm /etc/yp.conf
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
touch /var/run/shutdown/wlan_nis
|
touch /var/run/shutdown/wlan_nis
|
||||||
|
Loading…
Reference in New Issue
Block a user