diff options
author | Richard Purdie <rpurdie@rpsys.net> | 2006-05-06 17:53:07 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2006-05-06 17:53:07 +0000 |
commit | 574009f3b76ac859d173f5450b53a8b31d5ef1ca (patch) | |
tree | 0ab2716ec1e40025cea1fcdd443d16cce24f756d /packages/udev/files | |
parent | b7c0b97dec8d44496972003a3258654945872d29 (diff) | |
parent | 90d7e5110319cc4ab6b5e47af5e989b58004ee2f (diff) |
merge of 224e3cbcf014b8cd9406d30cb74a19c2d77cd5d6
and 253cbfe06dd468b449fb7cf63f7d91224be6c3d1
Diffstat (limited to 'packages/udev/files')
-rw-r--r-- | packages/udev/files/network.sh | 29 | ||||
-rw-r--r-- | packages/udev/files/udev_network_queue.sh | 35 |
2 files changed, 64 insertions, 0 deletions
diff --git a/packages/udev/files/network.sh b/packages/udev/files/network.sh index 5e2bd5799a..5016328df4 100644 --- a/packages/udev/files/network.sh +++ b/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 # diff --git a/packages/udev/files/udev_network_queue.sh b/packages/udev/files/udev_network_queue.sh new file mode 100644 index 0000000000..05e08e9d1b --- /dev/null +++ b/packages/udev/files/udev_network_queue.sh @@ -0,0 +1,35 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2006 +# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) +# +# Filename: udev_network_queue.sh +# Date: 03-May-06 + +do_start() { + if test -e /dev/udev_network_queue + then + echo "Activating queued NICs..." + for NIC in `cat /dev/udev_network_queue` + do + export INTERFACE="$NIC" ; export ACTION=add + /etc/udev/scripts/network.sh + done + echo "" + else + echo "No NICs queued" + fi +} + +do_stop() { + /bin/true +} + +case "$1" in +start) do_start;; +stop) do_stop;; +restart) do_stop + do_start;; +*) echo "Usage: `basename $0` [ start | stop | restart ]" + exit 0;; +esac |