[Pkg-voip-commits] [dahdi-tools] 85/285: xpp: astribank_hook: wait for udev to settle

tzafrir at debian.org tzafrir at debian.org
Thu Jul 7 19:18:34 UTC 2016


This is an automated email from the git hooks/post-receive script.

tzafrir pushed a commit to branch master
in repository dahdi-tools.

commit 4c7786a696500013b37bb7645c61a441d2d24392
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Thu Mar 22 17:38:57 2012 +0000

    xpp: astribank_hook: wait for udev to settle
    
    When running the astribank_hook (only on Astribanks, in XPP_HOTPLUG_DAHDI
    mode), wait for all other Astribanks to create all the required device
    files.
    
    Signed-off-by: Oron Peled <oron.peled at xorcom.com>
    Acked-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    
    git-svn-id: http://svn.astersk.org/svn/dahdi/tools/trunk@10585 17933a7a-c749-41c5-a318-cba88f637d49
---
 xpp/astribank_hook | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/xpp/astribank_hook b/xpp/astribank_hook
index 074ea31..0888733 100755
--- a/xpp/astribank_hook
+++ b/xpp/astribank_hook
@@ -68,7 +68,34 @@ NUM_WANTED=`clean_lines | sed '/^$/d' | wc -l`
 NUM_GOOD=`matched_devices | wc -l`
 LOCK="/var/lock/twinstar_startup"
 
+# Wait until udev finished processing our requests
+# so we know the device files were actually created
+# before trying dahdi_cfg et-al.
+wait_for_udev() {
+	UDEV_SETTLE_MAX_TIME=10
+
+	echo "Waiting for udev to settle down..."
+	if [ -x /sbin/udevsettle ]; then
+		# Old system, stand-alone udevsettle command
+		time /sbin/udevsettle --timeout="$UDEV_SETTLE_MAX_TIME"
+	elif [ -x /sbin/udevadm ]; then
+		# Assume modern system, udevadm has settle parameter
+		if ! time /sbin/udevadm settle --timeout="$UDEV_SETTLE_MAX_TIME"
+		then
+			echo "udevadm failed ($?)."
+			echo "Fallback to sleep $UDEV_SETTLE_MAX_TIME seconds."
+			sleep "$UDEV_SETTLE_MAX_TIME"
+		fi
+	else
+		echo "No udevsettle/udevadm."
+		echo "Fallback to sleep $UDEV_SETTLE_MAX_TIME seconds."
+		sleep "$UDEV_SETTLE_MAX_TIME"
+	fi
+	sleep 1	# Wait a bit more (races)
+}
+
 start_dahdi() {
+	wait_for_udev
 	script=/etc/init.d/dahdi
 	echo "Starting $script."
 	"$script" start | logger -i -t "$script"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-voip/dahdi-tools.git



More information about the Pkg-voip-commits mailing list