summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Grennan <tgrennan@io.vyatta.com>2007-12-17 17:16:48 -0800
committerTom Grennan <tgrennan@io.vyatta.com>2007-12-17 17:16:48 -0800
commita9cd192305b779cb62aecd858ad9a4e5a1fbcad4 (patch)
tree52f6c7fafda5760191b868dc03fc61fa09f7cd38
parent35a2193ed8baa7af1c4c01f239b0363a9d5a5d19 (diff)
downloadvyatta-cfg-quagga-a9cd192305b779cb62aecd858ad9a4e5a1fbcad4.tar.gz
vyatta-cfg-quagga-a9cd192305b779cb62aecd858ad9a4e5a1fbcad4.zip
add init script to force udev settle before itf configured
-rw-r--r--Makefile.am11
-rw-r--r--debian/vyatta-cfg-system.postinst.in2
-rwxr-xr-xetc/init.d/vyatta-udev58
3 files changed, 67 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am
index f893bf13..2d109577 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,8 @@
-cfgdir = $(datadir)/vyatta-cfg/templates
-share_perl5dir = $(datarootdir)/perl5
-libudevdir = /lib/udev
-etcudevdir = /etc/udev
+cfgdir = $(datadir)/vyatta-cfg/templates
+share_perl5dir = $(datarootdir)/perl5
+libudevdir = /lib/udev
+etcudevdir = /etc/udev
+initddir = /etc/init.d
bin_SCRIPTS =
sbin_SCRIPTS =
@@ -39,6 +40,8 @@ sysconf_DATA += sysconf/config.boot.default
libudev_SCRIPTS = scripts/vyatta_net_name
etcudev_DATA = sysconf/vyatta-net.rules
+initd_SCRIPTS = etc/init.d/vyatta-udev
+
cpiop = find . ! -regex '\(.*~\|.*\.bak\|.*\.swp\|.*\#.*\#\)' -print0 | \
cpio -0pd
diff --git a/debian/vyatta-cfg-system.postinst.in b/debian/vyatta-cfg-system.postinst.in
index 13ba6dc6..b747b786 100644
--- a/debian/vyatta-cfg-system.postinst.in
+++ b/debian/vyatta-cfg-system.postinst.in
@@ -22,6 +22,8 @@ esac
ln -sf ../vyatta-net.rules /etc/udev/rules.d/$vyatta_net_rules
+update-rc.d vyatta-udev start 21 S .
+
if [ "$sysconfdir" != "/etc" ]; then
# for "admin" level (FIXME)
sed -i 's/^# %sudo ALL=NOPASSWD: ALL/%sudo ALL=NOPASSWD: ALL/' /etc/sudoers
diff --git a/etc/init.d/vyatta-udev b/etc/init.d/vyatta-udev
new file mode 100755
index 00000000..5c2c1d37
--- /dev/null
+++ b/etc/init.d/vyatta-udev
@@ -0,0 +1,58 @@
+#!/bin/bash
+### BEGIN INIT INFO
+# Provides: vyatta-udev
+# Required-Start: udev module-init-tools
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+# Short-Description: Trigger udev net subsystem to process interface renaming
+### END INIT INFO
+# **** License ****
+# Version: VPL 1.0
+#
+# The contents of this file are subject to the Vyatta Public License
+# Version 1.0 ("License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://www.vyatta.com/vpl
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and limitations
+# under the License.
+#
+# This code was originally developed by Vyatta, Inc.
+# Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc.
+# All Rights Reserved.
+#
+# Author: Tom Grennan <tgrennan@vyatta.com>
+# **** End License ****
+
+. /lib/lsb/init-functions
+
+: ${vyatta_env:=/etc/default/vyatta}
+source $vyatta_env
+
+declare progname=${0##*/}
+declare action=$1; shift
+
+start ()
+{
+ log_action_begin_msg "Trigger rename of network interfaces"
+ udevtrigger --subsystem-match=net
+ udevsettle
+ log_action_end_msg $?
+}
+
+case "$action" in
+ start) start ;;
+ stop|restart|force-reload) true ;;
+ *) log_failure_msg "usage: $progname [ start|stop|restart ]" ;
+ false ;;
+esac
+
+exit $?
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 4
+# End: