diff options
author | Richard Purdie <richard@openedhand.com> | 2006-05-09 19:35:13 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2006-05-09 19:35:13 +0000 |
commit | 30285dd379000284555a38c80b7d4dad472fe515 (patch) | |
tree | 8755c94e0a945ddaf1c1f05d6a7158b67c8a298c /openembedded/packages/udev/files/network.sh | |
parent | 103c8510e0cdc03760885db52ffd2a6908a6f401 (diff) | |
download | openembedded-core-30285dd379000284555a38c80b7d4dad472fe515.tar.gz openembedded-core-30285dd379000284555a38c80b7d4dad472fe515.tar.bz2 openembedded-core-30285dd379000284555a38c80b7d4dad472fe515.tar.xz openembedded-core-30285dd379000284555a38c80b7d4dad472fe515.zip |
More packages merging with OE
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@390 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'openembedded/packages/udev/files/network.sh')
-rw-r--r-- | openembedded/packages/udev/files/network.sh | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/openembedded/packages/udev/files/network.sh b/openembedded/packages/udev/files/network.sh index 2cfbfa91b..5016328df 100644 --- a/openembedded/packages/udev/files/network.sh +++ b/openembedded/packages/udev/files/network.sh @@ -6,6 +6,35 @@ test -x /sbin/cardctl && exit 0 # We get two "add" events for hostap cards due to wifi0 echo "$INTERFACE" | grep -q wifi && exit 0 + +# 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 # @@ -15,7 +44,7 @@ echo "$INTERFACE" | grep -q wifi && exit 0 if grep -q "iface \+$INTERFACE" /etc/network/interfaces; then case $ACTION in add) - ifup $INTERFACE + ifconfig | grep -q "^$INTERFACE" || ifup $INTERFACE ;; remove) ifdown $INTERFACE |