diff --git a/debian/ngcp-rtpengine-daemon.init b/debian/ngcp-rtpengine-daemon.init index 521ffe0d7..0fa309cca 100755 --- a/debian/ngcp-rtpengine-daemon.init +++ b/debian/ngcp-rtpengine-daemon.init @@ -90,7 +90,7 @@ case "$1" in esac fi echo -n "Starting $DESC: $NAME" - if [ $TABLE -ge 0 ] && [ "$VIRT" != "yes" ]; then + if [ "$TABLE" -ge 0 ] && [ "$VIRT" != "yes" ]; then set +e modprobe xt_MEDIAPROXY if [ -e /proc/mediaproxy/control ]; then @@ -99,13 +99,13 @@ case "$1" in iptables -N mediaproxy 2> /dev/null iptables -D INPUT -j mediaproxy 2> /dev/null iptables -I INPUT -j mediaproxy - iptables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null - iptables -I mediaproxy -p udp -j MEDIAPROXY --id $TABLE + iptables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null + iptables -I mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" ip6tables -N mediaproxy 2> /dev/null ip6tables -D INPUT -j mediaproxy 2> /dev/null ip6tables -I INPUT -j mediaproxy - ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null - ip6tables -I mediaproxy -p udp -j MEDIAPROXY --id $TABLE + ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null + ip6tables -I mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" set -e fi start-stop-daemon --start --quiet --pidfile $PIDFILE \ @@ -119,15 +119,15 @@ case "$1" in if [ "$?" -ne 0 ]; then return $? fi - if [ $TABLE -ge 0 ] && [ "$VIRT" != "yes" ]; then + if [ "$TABLE" -ge 0 ] && [ "$VIRT" != "yes" ]; then set +e if [ -e /proc/mediaproxy/control ]; then echo "del $TABLE" > /proc/mediaproxy/control 2>/dev/null fi iptables -D INPUT -j mediaproxy 2> /dev/null - iptables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null + iptables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null ip6tables -D INPUT -j mediaproxy 2> /dev/null - ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null + ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null rmmod xt_MEDIAPROXY 2>/dev/null set -e fi @@ -156,24 +156,24 @@ case "$1" in ;; esac fi - if [ $TABLE -ge 0 ] && [ "$VIRT" != "yes" ]; then + if [ "$TABLE" -ge 0 ] && [ "$VIRT" != "yes" ]; then sleep 1 set +e if [ -e /proc/mediaproxy/control ]; then echo "del $TABLE" > /proc/mediaproxy/control 2>/dev/null fi iptables -D INPUT -j mediaproxy 2> /dev/null - iptables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null + iptables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null ip6tables -D INPUT -j mediaproxy 2> /dev/null - ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null + ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null rmmod xt_MEDIAPROXY 2>/dev/null modprobe xt_MEDIAPROXY iptables -N mediaproxy 2> /dev/null iptables -I INPUT -j mediaproxy - iptables -I mediaproxy -p udp -j MEDIAPROXY --id $TABLE + iptables -I mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" ip6tables -N mediaproxy 2> /dev/null ip6tables -I INPUT -j mediaproxy - ip6tables -I mediaproxy -p udp -j MEDIAPROXY --id $TABLE + ip6tables -I mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" set -e fi start-stop-daemon --start --quiet --pidfile \ diff --git a/debian/ngcp-rtpengine-daemon.postinst b/debian/ngcp-rtpengine-daemon.postinst new file mode 100644 index 000000000..5af0f86f6 --- /dev/null +++ b/debian/ngcp-rtpengine-daemon.postinst @@ -0,0 +1,35 @@ +#!/bin/sh + +set -e + +default=/etc/default/ngcp-rtpengine-daemon +modname=xt_MEDIAPROXY + +if [ -x /usr/sbin/ngcp-virt-identify ]; then + if /usr/sbin/ngcp-virt-identify --type container; then + VIRT="yes" + fi +fi + +if [ "$VIRT" = "yes" ]; then + echo "Container environment detected. Skip kernel module check" +else + if [ -f $default ]; then + . $default || true + fi + + if [ "$TABLE" -ge 0 -a -n "$NO_FALLBACK" -a \( "$NO_FALLBACK" = "1" -o "$NO_FALLBACK" = "yes" \) ]; then + if lsmod | grep -q $modname || modinfo $modname > /dev/null 2> /dev/null; then + true + else + echo "Kernel module $modname not found and NO_FALLBACK is set." + echo "Daemon restart not performed." + exit 0 + fi + fi +fi + +#DEBHELPER# + +exit 0 +