| #!/bin/sh |
| |
| # We get two "add" events for hostap cards due to wifi0 |
| echo "$INTERFACE" | grep -q wifi && exit 0 |
| |
| # udevd does clearenv(). Export shell PATH to children. |
| export PATH |
| |
| # Check if /etc/init.d/network has been run yet to see if we are |
| # called by starting /etc/rcS.d/S03udev and not by hotplugging a device |
| # |
| # At this stage, network interfaces should not be brought up |
| # automatically because: |
| # a) /etc/init.d/network has not been run yet (security issue) |
| # b) /var has not been populated yet so /etc/resolv,conf points to |
| # oblivion, making the network unusable |
| # |
| |
| spoofp="`grep ^spoofprotect /etc/network/options`" |
| if test -z "$spoofp" |
| then |
| # This is the default from /etc/init.d/network |
| spoofp_val=yes |
| else |
| spoofp_val=${spoofp#spoofprotect=} |
| fi |
| |
| test "$spoofp_val" = yes && spoofp_val=1 || spoofp_val=0 |
| |
| # I think it is safe to assume that "lo" will always be there ;) |
| if test "`cat /proc/sys/net/ipv4/conf/lo/rp_filter`" != "$spoofp_val" -a -n "$spoofp_val" |
| then |
| echo "$INTERFACE" >> /dev/udev_network_queue |
| exit 0 |
| fi |
| |
| # |
| # Code taken from pcmcia-cs:/etc/pcmcia/network |
| # |
| |
| # if this interface has an entry in /etc/network/interfaces, let ifupdown |
| # handle it |
| if grep -q "iface \+$INTERFACE" /etc/network/interfaces; then |
| case $ACTION in |
| add) |
| ifconfig | grep -q "^$INTERFACE" || ifup $INTERFACE |
| ;; |
| remove) |
| ifdown $INTERFACE |
| ;; |
| esac |
| |
| exit 0 |
| fi |