slitaz-boot-scripts view etc/init.d/network.sh @ 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 6d7cab1978a8
line source
1 #!/bin/sh
2 # /etc/init.d/network.sh - Network initialization boot script.
3 # Config file is: /etc/network.conf
4 #
5 . /etc/init.d/rc.functions
7 if [ -z "$2" ]; then
8 . /etc/network.conf
9 else
10 . $2
11 fi
13 Boot() {
14 # Set hostname.
15 echo -n "Setting hostname... "
16 /bin/hostname -F /etc/hostname
17 status
19 # Configure loopback interface.
20 echo -n "Configuring loopback... "
21 /sbin/ifconfig lo 127.0.0.1 up
22 /sbin/route add 127.0.0.1 lo
23 status
24 }
26 # Stopping everything
27 Stop() {
28 echo "Stopping all interfaces"
29 ifconfig $INTERFACE down
30 ifconfig $WIFI_INTERFACE down
32 echo "Killing all daemons"
33 killall udhcpc
34 killall wpa_supplicant
36 echo "Shutting down wifi card"
37 iwconfig $WIFI_INTERFACE txpower off
39 }
41 Start() {
42 # For wifi. Users just have to enable it throught yes and usually
43 # essid any will work and interface is autodetected.
44 if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then
45 if [ -n "$NDISWRAPPER_DRIVERS" -a -x /usr/sbin/ndiswrapper ]; then
46 for i in $NDISWRAPPER_DRIVERS; do
47 ndiswrapper -i $i
48 done
49 echo -n "Loading ndiswrapper module..."
50 modprobe ndiswrapper
51 status
52 fi
53 if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
54 echo "$WIFI_INTERFACE is not a wifi interface, changing it."
55 WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \
56 while read dev; do iwconfig $dev 2>&1 | \
57 grep -iq "essid" && { echo $dev ; break; }; \
58 done)
59 [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
60 fi
61 [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext"
62 if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "unassociated"; then
63 IWCONFIG_ARGS=""
64 [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE"
65 [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in
66 wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";;
67 wpa|WPA) cat > /tmp/wpa.conf <<EOF
68 ap_scan=1
69 network={
70 ssid="$WIFI_ESSID"
71 scan_ssid=1
72 proto=WPA
73 key_mgmt=WPA-PSK
74 psk="$WIFI_KEY"
75 priority=5
76 }
77 EOF
78 echo "starting wpa_supplicant, for WPA-PSK"
79 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
80 ;;
81 any|ANY) cat > /tmp/wpa.conf <<EOF
82 ap_scan=1
83 network={
84 ssid="$WIFI_ESSID"
85 scan_ssid=1
86 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
87 group=CCMP TKIP WEP104 WEP40
88 pairwise=CCMP TKIP
89 psk="$WIFI_KEY"
90 priority=5
91 }
92 EOF
93 echo "starting wpa_supplicant for any key type"
94 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
95 ;;
96 esac
97 rm -f /tmp/wpa.conf
98 [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL"
99 echo -n "configuring $WIFI_INTERFACE..."
100 ifconfig $WIFI_INTERFACE up
101 iwconfig $WIFI_INTERFACE txpower on
102 iwconfig $WIFI_INTERFACE essid $WIFI_ESSID $IWCONFIG_ARGS
103 status
104 INTERFACE=$WIFI_INTERFACE
105 fi
106 fi
108 # For a dynamic IP with DHCP.
109 if [ "$DHCP" = "yes" ] ; then
110 echo "Starting udhcpc client on: $INTERFACE... "
111 /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid
112 fi
114 # For a static IP.
115 if [ "$STATIC" = "yes" ] ; then
116 echo "Configuring static IP on $INTERFACE: $IP... "
117 /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up
118 /sbin/route add default gateway $GATEWAY
119 # Multi-DNS server in $DNS_SERVER.
120 /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$
121 for NS in $DNS_SERVER
122 do
123 echo "nameserver $NS" >> /etc/resolv.conf
124 done
125 fi
126 }
129 # looking for arguments:
130 if [ -z "$1" ]; then
131 Boot
132 Start
133 else
134 case $1 in
135 start)
136 Start
137 ;;
138 stop)
139 Stop
140 ;;
141 restart)
142 Stop
143 Start
144 ;;
145 *)
146 echo ""
147 echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]"
148 echo ""
149 echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m"
150 echo -e " You can specify another configuration file in second argument:"
151 echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf"
152 echo ""
154 esac
155 fi