aboutsummaryrefslogtreecommitdiff
path: root/meta-linaro-integration/recipes-overlayed/udev/udev-extraconf/network.sh
diff options
context:
space:
mode:
authorRiku Voipio <riku.voipio@linaro.org>2014-08-20 13:45:42 +0300
committerRiku Voipio <riku.voipio@linaro.org>2014-08-20 13:49:27 +0300
commitca4bc75d5fd9f7b82e507a50cebf08628cf897bc (patch)
tree20a9d1e452012dd6adce0e45775cfec3bb9fd088 /meta-linaro-integration/recipes-overlayed/udev/udev-extraconf/network.sh
parent57269d73e00d4d4022853e70e4d155f0b3d5cda2 (diff)
udev: overlay for postgres fix14.08
Fix for https://bugs.linaro.org/show_bug.cgi?id=336 Change-Id: Ia8f4296a42cd96eb3943648b8ef38e5ecf848008 Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Diffstat (limited to 'meta-linaro-integration/recipes-overlayed/udev/udev-extraconf/network.sh')
-rw-r--r--meta-linaro-integration/recipes-overlayed/udev/udev-extraconf/network.sh54
1 files changed, 54 insertions, 0 deletions
diff --git a/meta-linaro-integration/recipes-overlayed/udev/udev-extraconf/network.sh b/meta-linaro-integration/recipes-overlayed/udev/udev-extraconf/network.sh
new file mode 100644
index 00000000..3ee92714
--- /dev/null
+++ b/meta-linaro-integration/recipes-overlayed/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