aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/udev/udev-extraconf/network.sh
diff options
context:
space:
mode:
authorMartin Jansa <martin.jansa@gmail.com>2012-07-30 17:03:14 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-09-04 14:03:13 +0100
commit0ca3a7823e97c4e4af6e89d852f98d29ed6193d7 (patch)
tree2f8f42c299a352d491c37499ecea22e03839c89f /meta/recipes-core/udev/udev-extraconf/network.sh
parent8f1cedaaafd1248e77db84ac238fa88a318df2e9 (diff)
downloadopenembedded-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.sh54
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