diff options
author | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2012-03-22 19:01:32 +0000 |
---|---|---|
committer | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2012-03-22 19:01:32 +0000 |
commit | 90c9955dbbc1eabb0761cbfdface04919d50901a (patch) | |
tree | cad20548d6d1c515023b24a154f79be60d94dd04 | |
parent | 6e48e366e4cd7498655cf116d787139209de8880 (diff) |
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@xorcom.com>
Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10585
git-svn-id: http://svn.asterisk.org/svn/dahdi/tools/branches/2.6@10596 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rwxr-xr-x | xpp/astribank_hook | 27 |
1 files changed, 27 insertions, 0 deletions
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" |