#!/bin/sh
-FS=freeswitch
-LOGGER="/usr/bin/logger -t ${FS}-hotplug"
+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 --"
-LOG_WARN="$LOGGER -p user.warn --"
[ "$ACTION" = ifup ] || exit 0
. /lib/functions.sh
-config_load $FS
-
-config_get FS_HOTPLUG_INTERFACE hotplug interface
+config_load $NAME
-[ -n "$FS_HOTPLUG_INTERFACE" ] || exit 0
+config_get interface hotplug interface
-[ "$INTERFACE" = "$FS_HOTPLUG_INTERFACE" ] || exit 0
+[ "$INTERFACE" = "$interface" ] || exit 0
-pgrep $FS &> /dev/null
+pidof $NAME &> /dev/null
if [ $? -eq 0 ]; then
- $LOG_NOTICE stopping $FS
- /etc/init.d/$FS stop &> /dev/null
+ $LOG_NOTICE stopping $NAME
+ $COMMAND stop &> /dev/null
fi
-config_get FS_HOTPLUG_TIMEOUT hotplug timeout
+config_get timeout hotplug timeout 60
-[ "$FS_HOTPLUG_TIMEOUT" -gt 0 ] 2> /dev/null || unset FS_HOTPLUG_TIMEOUT
-TIMEOUT="${FS_HOTPLUG_TIMEOUT:-60}"
+[ "$timeout" -gt 0 ] 2> /dev/null || unset timeout
+timeout="${timeout:-60}"
-config_get FS_HOTPLUG_MOUNTPOINT hotplug mount_point
+config_get mount_point hotplug mount_point
-# Mount condition, idea lifted from OpenWrt wiki
-[ -n "$FS_HOTPLUG_MOUNTPOINT" ] && {
+# Mount condition, idea lifted from OpenWrt Wiki
+[ -n "$mount_point" ] && {
- if ! [ -d "$FS_HOTPLUG_MOUNTPOINT" ]; then
- $LOG_ERR "$FS_HOTPLUG_MOUNTPOINT" not a valid mount point
+ if ! [ -d "$mount_point" ]; then
+ $LOG_ERR "$mount_point" not a valid mount point
exit 1
fi
- mnt="$FS_HOTPLUG_MOUNTPOINT"
+ mnt="$mount_point"
notReady=start
- timeout=$TIMEOUT
+ tmp_timeout=$timeout
- while [ -n "$notReady" -a $timeout -gt 0 ]; do
+ while [ -n "$notReady" -a $tmp_timeout -gt 0 ]; do
if [ "$notReady" != start ]; then
- $LOG_NOTICE "$mnt" not yet mounted, timeout in $timeout s
+ $LOG_NOTICE "$mnt" not yet mounted, timeout in $tmp_timeout s
sleep 5
- timeout=$(($timeout-5))
+ tmp_timeout=$(($tmp_timeout-5))
fi
notReady=
if [ -n "$notReady" ]; then
$LOG_ERR "$mnt" still not mounted
- $LOG_ERR not starting $FS
+ $LOG_ERR not starting $NAME
exit 1
else
$LOG_NOTICE "$mnt" mounted
}
-config_get_bool FS_HOTPLUG_NTPD hotplug ntpd 0
+config_get_bool ntpd hotplug ntpd 0
# ntpd condition
-[ $FS_HOTPLUG_NTPD -eq 1 ] && {
+[ $ntpd -eq 1 ] && {
type ntpq &> /dev/null
[ $? -eq 0 ] || {
exit 1
}
- pgrep ntpd &> /dev/null || {
+ pidof ntpd &> /dev/null || {
$LOG_ERR ntpd not running
exit 1
}
notReady=start
- timeout=$TIMEOUT
+ tmp_timeout=$timeout
- while [ -n "$notReady" -a $timeout -gt 0 ]; do
+ while [ -n "$notReady" -a $tmp_timeout -gt 0 ]; do
if [ "$notReady" != start ]; then
- $LOG_NOTICE system time not in sync yet, timeout in $timeout s
+ $LOG_NOTICE system time not in sync yet, timeout in $tmp_timeout s
sleep 5
- timeout=$(($timeout-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_WARN failed to extract stratum from ntpd
+ $LOG_ERR failed to extract stratum from ntpd
notReady="unable to extract stratum"
else
$LOG_NOTICE ntpd stratum $result
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_WARN failed to extract offset from ntpd
+ $LOG_ERR failed to extract offset from ntpd
notReady="unable to extract offset"
else
# "-0" looks stupid, so remove "-"
if [ -n "$notReady" ]; then
$LOG_ERR system time still not in sync
- $LOG_ERR not starting $FS
+ $LOG_ERR not starting $NAME
exit 1
else
$LOG_NOTICE system time in sync
}
-/etc/init.d/$FS start &> /dev/null
-# Wait a bit in order for pgrep to be able to find the new process
+$COMMAND start &> /dev/null
sleep 1
-pgrep $FS &>/dev/null
+pidof $NAME &>/dev/null
if [ $? -eq 0 ]; then
- $LOG_NOTICE started $FS due to \"ifup "$INTERFACE"\" event
+ $LOG_NOTICE started $NAME due to \"ifup "$INTERFACE"\" event
else
- $LOG_ERR start of $FS due to \"ifup "$INTERFACE"\" event failed
+ $LOG_ERR start of $NAME due to \"ifup "$INTERFACE"\" event failed
exit 1
fi