1#!/bin/sh 2 3# We get two "add" events for hostap cards due to wifi0 4echo "$INTERFACE" | grep -q wifi && exit 0 5 6# udevd does clearenv(). Export shell PATH to children. 7export PATH 8 9# Check if /etc/init.d/network has been run yet to see if we are 10# called by starting /etc/rcS.d/S03udev and not by hotplugging a device 11# 12# At this stage, network interfaces should not be brought up 13# automatically because: 14# a) /etc/init.d/network has not been run yet (security issue) 15# b) /var has not been populated yet so /etc/resolv,conf points to 16# oblivion, making the network unusable 17# 18 19spoofp="`grep ^spoofprotect /etc/network/options`" 20if test -z "$spoofp" 21then 22 # This is the default from /etc/init.d/network 23 spoofp_val=yes 24else 25 spoofp_val=${spoofp#spoofprotect=} 26fi 27 28test "$spoofp_val" = yes && spoofp_val=1 || spoofp_val=0 29 30# I think it is safe to assume that "lo" will always be there ;) 31if test "`cat /proc/sys/net/ipv4/conf/lo/rp_filter`" != "$spoofp_val" -a -n "$spoofp_val" 32then 33 echo "$INTERFACE" >> /dev/udev_network_queue 34 exit 0 35fi 36 37# 38# Code taken from pcmcia-cs:/etc/pcmcia/network 39# 40 41# if this interface has an entry in /etc/network/interfaces, let ifupdown 42# handle it 43if grep -q "iface \+$INTERFACE" /etc/network/interfaces; then 44 case $ACTION in 45 add) 46 ifconfig | grep -q "^$INTERFACE" || ifup $INTERFACE 47 ;; 48 remove) 49 ifdown $INTERFACE 50 ;; 51 esac 52 53 exit 0 54fi 55