+++ /dev/null
-#!/bin/sh
-
-NAME=freeswitch
-COMMAND=/etc/init.d/$NAME
-
-LOGGER="/usr/bin/logger -t $NAME-hotplug"
-LOG_ERR="$LOGGER -p user.err --"
-LOG_NOTICE="$LOGGER -p user.notice --"
-
-[ "$ACTION" = ifup ] || exit 0
-
-. /lib/functions.sh
-config_load $NAME
-
-config_get interface hotplug interface
-
-[ "$INTERFACE" = "$interface" ] || exit 0
-
-pidof $NAME &> /dev/null
-if [ $? -eq 0 ]; then
- $LOG_NOTICE stopping $NAME
- $COMMAND stop &> /dev/null
-fi
-
-config_get timeout hotplug timeout 60
-
-[ "$timeout" -gt 0 ] 2> /dev/null || unset timeout
-timeout="${timeout:-60}"
-
-config_get mount_point hotplug mount_point
-
-# Mount condition, idea lifted from OpenWrt Wiki
-[ -n "$mount_point" ] && {
-
- if ! [ -d "$mount_point" ]; then
- $LOG_ERR "$mount_point" not a valid mount point
- exit 1
- fi
-
- mnt="$mount_point"
- notReady=start
- tmp_timeout=$timeout
-
- while [ -n "$notReady" -a $tmp_timeout -gt 0 ]; do
- if [ "$notReady" != start ]; then
- $LOG_NOTICE "$mnt" not yet mounted, timeout in $tmp_timeout s
- sleep 5
- tmp_timeout=$(($tmp_timeout-5))
- fi
-
- notReady=
-
- result=$(cat /proc/mounts | awk '{print $2}' | grep "^$mnt\$")
- if [ -z "$result" ]; then
- notReady="$mnt not ready yet"
- fi
- done
-
- if [ -n "$notReady" ]; then
- $LOG_ERR "$mnt" still not mounted
- $LOG_ERR not starting $NAME
- exit 1
- else
- $LOG_NOTICE "$mnt" mounted
- fi
-
-}
-
-config_get_bool ntpd hotplug ntpd 0
-
-# ntpd condition
-[ $ntpd -eq 1 ] && {
-
- type ntpq &> /dev/null
- [ $? -eq 0 ] || {
- $LOG_ERR ntpq utility not found
- exit 1
- }
-
- pidof ntpd &> /dev/null || {
- $LOG_ERR ntpd not running
- exit 1
- }
-
- notReady=start
- tmp_timeout=$timeout
-
- while [ -n "$notReady" -a $tmp_timeout -gt 0 ]; do
- if [ "$notReady" != start ]; then
- $LOG_NOTICE system time not in sync yet, timeout in $tmp_timeout s
- sleep 5
- tmp_timeout=$(($tmp_timeout-5))
- fi
-
- notReady=
-
- result=$(ntpq -c 'timeout 300' -c 'rv 0 stratum' 2> /dev/null | \
- awk -F '=' '{print $2}' | grep -o -E '^[0-9]+')
- if [ -z $result ]; then
- $LOG_ERR failed to extract stratum from ntpd
- notReady="unable to extract stratum"
- else
- $LOG_NOTICE ntpd stratum $result
- if [ $result -lt 16 ] 2> /dev/null; then
- result=$(ntpq -c 'timeout 300' -c 'rv 0 offset' 2> /dev/null \
- | awk -F '=' '{print $2}' | grep -o -E '^-?[0-9]+')
- if [ -z $result ]; then
- $LOG_ERR failed to extract offset from ntpd
- notReady="unable to extract offset"
- else
- # "-0" looks stupid, so remove "-"
- result=$(echo $result | grep -o '[0-9]*')
- $LOG_NOTICE ntpd to system time offset \+\/\- $result ms
- # If offset < 100 ms consider system time in sync
- [ $result -lt 100 ] || notReady="system time not in sync yet"
- fi
- else
- notReady="ntpd not in sync yet"
- fi
- fi
- done
-
- if [ -n "$notReady" ]; then
- $LOG_ERR system time still not in sync
- $LOG_ERR not starting $NAME
- exit 1
- else
- $LOG_NOTICE system time in sync
- fi
-
-}
-
-$COMMAND start &> /dev/null
-sleep 1
-pidof $NAME &>/dev/null
-if [ $? -eq 0 ]; then
- $LOG_NOTICE started $NAME due to \"ifup "$INTERFACE"\" event
-else
- $LOG_ERR start of $NAME due to \"ifup "$INTERFACE"\" event failed
- exit 1
-fi