slitaz-boot-scripts rev 112
/etc/init.d/network.sh restart fix (thanks sygne@ombres.eu)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Jul 27 15:46:07 2008 +0000 (2008-07-27) |
parents | 444e44898f27 |
children | d029ffebc94b |
files | etc/init.d/network.sh |
line diff
1.1 --- a/etc/init.d/network.sh Thu Jul 24 09:07:50 2008 +0000 1.2 +++ b/etc/init.d/network.sh Sun Jul 27 15:46:07 2008 +0000 1.3 @@ -3,50 +3,68 @@ 1.4 # Config file is: /etc/network.conf 1.5 # 1.6 . /etc/init.d/rc.functions 1.7 -. /etc/network.conf 1.8 1.9 -# Only configure hostname and loopback at boot time 1.10 -if [ -z "$1" ]; then 1.11 - 1.12 -# Set hostname. 1.13 -echo -n "Setting hostname... " 1.14 -/bin/hostname -F /etc/hostname 1.15 -status 1.16 - 1.17 -# Configure loopback interface. 1.18 -echo -n "Configuring loopback... " 1.19 -/sbin/ifconfig lo 127.0.0.1 up 1.20 -/sbin/route add 127.0.0.1 lo 1.21 -status 1.22 - 1.23 +if [ -z "$2" ]; then 1.24 + . /etc/network.conf 1.25 +else 1.26 + . $2 1.27 fi 1.28 1.29 -# For wifi. Users just have to enable it throught yes and usually 1.30 -# essid any will work and interface is autodetected. 1.31 -if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then 1.32 - if [ -n "$NDISWRAPPER_DRIVERS" -a -x /usr/sbin/ndiswrapper ]; then 1.33 - for i in $NDISWRAPPER_DRIVERS; do 1.34 - ndiswrapper -i $i 1.35 - done 1.36 - echo -n "Loading ndiswrapper module..." 1.37 - modprobe ndiswrapper 1.38 - status 1.39 - fi 1.40 - if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then 1.41 - echo "$WIFI_INTERFACE is not a wifi interface, changing it." 1.42 - WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \ 1.43 - while read dev; do iwconfig $dev 2>&1 | \ 1.44 - grep -iq "essid" && { echo $dev ; break; }; \ 1.45 - done) 1.46 - [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf 1.47 - fi 1.48 - [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext" 1.49 - if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "unassociated"; then 1.50 - IWCONFIG_ARGS="" 1.51 - [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" 1.52 - [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in 1.53 - wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";; 1.54 - wpa|WPA) cat > /tmp/wpa.conf <<EOF 1.55 +Boot() { 1.56 + # Set hostname. 1.57 + echo -n "Setting hostname... " 1.58 + /bin/hostname -F /etc/hostname 1.59 + status 1.60 + 1.61 + # Configure loopback interface. 1.62 + echo -n "Configuring loopback... " 1.63 + /sbin/ifconfig lo 127.0.0.1 up 1.64 + /sbin/route add 127.0.0.1 lo 1.65 + status 1.66 +} 1.67 + 1.68 +# Stopping everything 1.69 +Stop() { 1.70 + echo "Stopping all interfaces" 1.71 + ifconfig $INTERFACE down 1.72 + ifconfig $WIFI_INTERFACE down 1.73 + 1.74 + echo "Killing all daemons" 1.75 + killall udhcpc 1.76 + killall wpa_supplicant 1.77 + 1.78 + echo "Shutting down wifi card" 1.79 + iwconfig $WIFI_INTERFACE txpower off 1.80 + 1.81 +} 1.82 + 1.83 +Start() { 1.84 + # For wifi. Users just have to enable it throught yes and usually 1.85 + # essid any will work and interface is autodetected. 1.86 + if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then 1.87 + if [ -n "$NDISWRAPPER_DRIVERS" -a -x /usr/sbin/ndiswrapper ]; then 1.88 + for i in $NDISWRAPPER_DRIVERS; do 1.89 + ndiswrapper -i $i 1.90 + done 1.91 + echo -n "Loading ndiswrapper module..." 1.92 + modprobe ndiswrapper 1.93 + status 1.94 + fi 1.95 + if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then 1.96 + echo "$WIFI_INTERFACE is not a wifi interface, changing it." 1.97 + WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \ 1.98 + while read dev; do iwconfig $dev 2>&1 | \ 1.99 + grep -iq "essid" && { echo $dev ; break; }; \ 1.100 + done) 1.101 + [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf 1.102 + fi 1.103 + [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext" 1.104 + if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "unassociated"; then 1.105 + IWCONFIG_ARGS="" 1.106 + [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" 1.107 + [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in 1.108 + wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";; 1.109 + wpa|WPA) cat > /tmp/wpa.conf <<EOF 1.110 ap_scan=1 1.111 network={ 1.112 ssid="$WIFI_ESSID" 1.113 @@ -57,10 +75,10 @@ 1.114 priority=5 1.115 } 1.116 EOF 1.117 - echo -n "starting wpa_supplicant, for WPA-PSK" 1.118 - wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 1.119 - ;; 1.120 - any|ANY) cat > /tmp/wpa.conf <<EOF 1.121 + echo "starting wpa_supplicant, for WPA-PSK" 1.122 + wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 1.123 + ;; 1.124 + any|ANY) cat > /tmp/wpa.conf <<EOF 1.125 ap_scan=1 1.126 network={ 1.127 ssid="$WIFI_ESSID" 1.128 @@ -72,36 +90,66 @@ 1.129 priority=5 1.130 } 1.131 EOF 1.132 - echo -n "starting wpa_supplicant for any key type" 1.133 - wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 1.134 - ;; 1.135 - esac 1.136 - rm -f /tmp/wpa.conf 1.137 - [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL" 1.138 - echo -n "configuring $WIFI_INTERFACE..." 1.139 - ifconfig $WIFI_INTERFACE up 1.140 - iwconfig $WIFI_INTERFACE txpower on 1.141 - iwconfig $WIFI_INTERFACE essid $WIFI_ESSID $IWCONFIG_ARGS 1.142 - status 1.143 - INTERFACE=$WIFI_INTERFACE 1.144 - fi 1.145 + echo "starting wpa_supplicant for any key type" 1.146 + wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 1.147 + ;; 1.148 + esac 1.149 + rm -f /tmp/wpa.conf 1.150 + [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL" 1.151 + echo -n "configuring $WIFI_INTERFACE..." 1.152 + ifconfig $WIFI_INTERFACE up 1.153 + iwconfig $WIFI_INTERFACE txpower on 1.154 + iwconfig $WIFI_INTERFACE essid $WIFI_ESSID $IWCONFIG_ARGS 1.155 + status 1.156 + INTERFACE=$WIFI_INTERFACE 1.157 + fi 1.158 + fi 1.159 + 1.160 + # For a dynamic IP with DHCP. 1.161 + if [ "$DHCP" = "yes" ] ; then 1.162 + echo "Starting udhcpc client on: $INTERFACE... " 1.163 + /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid 1.164 + fi 1.165 + 1.166 + # For a static IP. 1.167 + if [ "$STATIC" = "yes" ] ; then 1.168 + echo "Configuring static IP on $INTERFACE: $IP... " 1.169 + /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up 1.170 + /sbin/route add default gateway $GATEWAY 1.171 + # Multi-DNS server in $DNS_SERVER. 1.172 + /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$ 1.173 + for NS in $DNS_SERVER 1.174 + do 1.175 + echo "nameserver $NS" >> /etc/resolv.conf 1.176 + done 1.177 + fi 1.178 +} 1.179 + 1.180 + 1.181 +# looking for arguments: 1.182 +if [ -z "$1" ]; then 1.183 + Boot 1.184 + Start 1.185 +else 1.186 + case $1 in 1.187 + start) 1.188 + Start 1.189 + ;; 1.190 + stop) 1.191 + Stop 1.192 + ;; 1.193 + restart) 1.194 + Stop 1.195 + Start 1.196 + ;; 1.197 + *) 1.198 + echo "" 1.199 + echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]" 1.200 + echo "" 1.201 + echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m" 1.202 + echo -e " You can specify another configuration file in second argument:" 1.203 + echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf" 1.204 + echo "" 1.205 + 1.206 + esac 1.207 fi 1.208 - 1.209 -# For a dynamic IP with DHCP. 1.210 -if [ "$DHCP" = "yes" ] ; then 1.211 - echo "Starting udhcpc client on: $INTERFACE... " 1.212 - /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid 1.213 -fi 1.214 - 1.215 -# For a static IP. 1.216 -if [ "$STATIC" = "yes" ] ; then 1.217 - echo "Configuring static IP on $INTERFACE: $IP... " 1.218 - /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up 1.219 - /sbin/route add default gateway $GATEWAY 1.220 - # Multi-DNS server in $DNS_SERVER. 1.221 - /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$ 1.222 - for NS in $DNS_SERVER 1.223 - do 1.224 - echo "nameserver $NS" >> /etc/resolv.conf 1.225 - done 1.226 -fi