# HG changeset patch # User Pascal Bellard # Date 1217173567 0 # Node ID 75582bc44d58ef3064b978b3141a4ff6cc0da274 # Parent 444e44898f2768dc636fe1a2f55e5ad29860c674 /etc/init.d/network.sh restart fix (thanks sygne@ombres.eu) diff -r 444e44898f27 -r 75582bc44d58 etc/init.d/network.sh --- a/etc/init.d/network.sh Thu Jul 24 09:07:50 2008 +0000 +++ b/etc/init.d/network.sh Sun Jul 27 15:46:07 2008 +0000 @@ -3,50 +3,68 @@ # Config file is: /etc/network.conf # . /etc/init.d/rc.functions -. /etc/network.conf -# Only configure hostname and loopback at boot time -if [ -z "$1" ]; then - -# Set hostname. -echo -n "Setting hostname... " -/bin/hostname -F /etc/hostname -status - -# Configure loopback interface. -echo -n "Configuring loopback... " -/sbin/ifconfig lo 127.0.0.1 up -/sbin/route add 127.0.0.1 lo -status - +if [ -z "$2" ]; then + . /etc/network.conf +else + . $2 fi -# For wifi. Users just have to enable it throught yes and usually -# essid any will work and interface is autodetected. -if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then - if [ -n "$NDISWRAPPER_DRIVERS" -a -x /usr/sbin/ndiswrapper ]; then - for i in $NDISWRAPPER_DRIVERS; do - ndiswrapper -i $i - done - echo -n "Loading ndiswrapper module..." - modprobe ndiswrapper - status - fi - if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then - echo "$WIFI_INTERFACE is not a wifi interface, changing it." - WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \ - while read dev; do iwconfig $dev 2>&1 | \ - grep -iq "essid" && { echo $dev ; break; }; \ - done) - [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf - fi - [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext" - if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "unassociated"; then - IWCONFIG_ARGS="" - [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" - [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in - wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";; - wpa|WPA) cat > /tmp/wpa.conf <&1 | \ + grep -iq "essid" && { echo $dev ; break; }; \ + done) + [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf + fi + [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext" + if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "unassociated"; then + IWCONFIG_ARGS="" + [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" + [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in + wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";; + wpa|WPA) cat > /tmp/wpa.conf < /tmp/wpa.conf < /tmp/wpa.conf <> /etc/resolv.conf + done + fi +} + + +# looking for arguments: +if [ -z "$1" ]; then + Boot + Start +else + case $1 in + start) + Start + ;; + stop) + Stop + ;; + restart) + Stop + Start + ;; + *) + echo "" + echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]" + echo "" + echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m" + echo -e " You can specify another configuration file in second argument:" + echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf" + echo "" + + esac fi - -# For a dynamic IP with DHCP. -if [ "$DHCP" = "yes" ] ; then - echo "Starting udhcpc client on: $INTERFACE... " - /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid -fi - -# For a static IP. -if [ "$STATIC" = "yes" ] ; then - echo "Configuring static IP on $INTERFACE: $IP... " - /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up - /sbin/route add default gateway $GATEWAY - # Multi-DNS server in $DNS_SERVER. - /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$ - for NS in $DNS_SERVER - do - echo "nameserver $NS" >> /etc/resolv.conf - done -fi