summaryrefslogtreecommitdiff
path: root/sysconf
diff options
context:
space:
mode:
Diffstat (limited to 'sysconf')
-rw-r--r--sysconf/vyatta-net.rules23
1 files changed, 18 insertions, 5 deletions
diff --git a/sysconf/vyatta-net.rules b/sysconf/vyatta-net.rules
index a215c325..f01c3d3c 100644
--- a/sysconf/vyatta-net.rules
+++ b/sysconf/vyatta-net.rules
@@ -1,13 +1,26 @@
# These rules use vyatta_net_name to persistently name network interfaces
# per "hwid" association with the interface block of the vyatta config file.
-ACTION!="add", GOTO="vyatta_net_end"
+# note that this is actually invoked twice: once during early rcS (udev)
+# and the second time during rl-system (rescan). pre-mendocino, ACTION is
+# "add" on both invocations, so the original rule looks for "add".
+#
+# however, in mendocino, the squeeze udev performs the second invocation with
+# ACTION "change", so the original rule does not get applied on the second
+# invocation, and therefore config.boot is not updated by rl-system.
+#
+# to emulate the previous behavior, invoke vyatta_net_name for both "add" and
+# "change" for now. however, the two-pass approach should be revisited to
+# determine if it is still necessary.
+
+ACTION!="add", ACTION!="change", GOTO="vyatta_net_end"
SUBSYSTEM!="net", GOTO="vyatta_net_end"
-# Do name change for ethernet devices only
-KERNEL=="eth*", DRIVERS=="?*",\
- PROGRAM="vyatta_net_name %k $attr{address}", \
- NAME="%c"
+# Do name change for ethernet devices only.
+# note that the original rule was checking "DRIVERS", which does not appear
+# to be available (empty string) from the squeeze udev. skip the DRIVERS
+# check for now.
+KERNEL=="eth*", PROGRAM="vyatta_net_name %k $attr{address}", NAME="%c"
LABEL="vyatta_net_end"