diff options
author | Martin Jansa <martin.jansa@gmail.com> | 2012-07-30 17:03:14 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-09-04 14:03:13 +0100 |
commit | 0ca3a7823e97c4e4af6e89d852f98d29ed6193d7 (patch) | |
tree | 2f8f42c299a352d491c37499ecea22e03839c89f /meta/recipes-core/udev/udev-extraconf/network.sh | |
parent | 8f1cedaaafd1248e77db84ac238fa88a318df2e9 (diff) | |
download | openembedded-core-contrib-0ca3a7823e97c4e4af6e89d852f98d29ed6193d7.tar.gz |
udev-extraconf: Merge with udev-extra-rules from meta-oe
* Move parts of local.rules from udev to udev-extraconf
* Move mount.sh and network.sh to udev-extraconf along with rule fragments
* Add mount.blacklist to CONFFILES
* Change PV to 1.0 and bump PR to provide upgrade path from meta-oe's udev-extra-rules
including RREPLACE/RPROVIDES/RCONFLICTS trio
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/udev/udev-extraconf/network.sh')
-rw-r--r-- | meta/recipes-core/udev/udev-extraconf/network.sh | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/meta/recipes-core/udev/udev-extraconf/network.sh b/meta/recipes-core/udev/udev-extraconf/network.sh new file mode 100644 index 0000000000..3ee92714af --- /dev/null +++ b/meta/recipes-core/udev/udev-extraconf/network.sh @@ -0,0 +1,54 @@ +#!/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 |