Merge pull request #4353 from TDT-GmbH/mwan3-fixes

Mwan3 fixes
This commit is contained in:
champtar 2017-05-12 15:11:50 -07:00 committed by GitHub
commit c421c797bf
6 changed files with 26 additions and 52 deletions

View file

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=mwan3 PKG_NAME:=mwan3
PKG_VERSION:=2.5.1 PKG_VERSION:=2.5.2
PKG_RELEASE:=5 PKG_RELEASE:=5
PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de> PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
PKG_LICENSE:=GPLv2 PKG_LICENSE:=GPLv2

View file

@ -11,12 +11,6 @@ if [ "$ACTION" == "ifup" ]; then
[ -n "$DEVICE" ] || exit 3 [ -n "$DEVICE" ] || exit 3
fi fi
[ -x /usr/bin/ip ] || exit 4
[ -x /usr/sbin/ipset ] || exit 5
[ -x /usr/sbin/iptables ] || exit 6
[ -x /usr/sbin/ip6tables ] || exit 7
[ -x /usr/bin/logger ] || exit 8
mwan3_set_connected_iptables mwan3_set_connected_iptables
config_load mwan3 config_load mwan3

View file

@ -1,11 +1,11 @@
#!/bin/sh #!/bin/sh
IP4="/usr/bin/ip -4" IP4="ip -4"
IP6="/usr/bin/ip -6" IP6="ip -6"
IPS="/usr/sbin/ipset" IPS="ipset"
IPT4="/usr/sbin/iptables -t mangle -w" IPT4="iptables -t mangle -w"
IPT6="/usr/sbin/ip6tables -t mangle -w" IPT6="ip6tables -t mangle -w"
LOG="/usr/bin/logger -t mwan3 -p" LOG="logger -t mwan3 -p"
CONNTRACK_FILE="/proc/net/nf_conntrack" CONNTRACK_FILE="/proc/net/nf_conntrack"
mwan3_get_iface_id() mwan3_get_iface_id()
@ -390,10 +390,7 @@ mwan3_track()
} }
config_list_foreach $1 track_ip mwan3_list_track_ips config_list_foreach $1 track_ip mwan3_list_track_ips
if [ -e /var/run/mwan3track-$1.pid ] ; then kill $(pgrep -f "mwan3track $1") &> /dev/null
kill $(cat /var/run/mwan3track-$1.pid) &> /dev/null
fi
if [ -n "$track_ips" ]; then if [ -n "$track_ips" ]; then
[ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track $1 $2 $track_ips & [ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track $1 $2 $track_ips &
fi fi
@ -401,18 +398,13 @@ mwan3_track()
mwan3_track_signal() mwan3_track_signal()
{ {
local pid status local pid
if [ -f "/var/run/mwan3track-${1}.pid" ]; then pid="$(pgrep -f "mwan3track $1")"
pid="$(cat "/var/run/mwan3track-${1}.pid")" if [ "${pid}" != "" ]; then
status="$(pgrep -f mwan3track | grep "${pid}")" kill -USR1 "${pid}"
if [ "${status}" != "" ]; then
kill -USR1 "${pid}"
else
$LOG warn "Unable to send signal USR1 to mwan3track on interface $1 with pid ${pid}"
fi
else else
$LOG warn "Unable to find \"/var/run/mwan3track-${1}.pid\" file for mwan3track on interface $1" $LOG warn "Unable to send signal USR1 to mwan3track on interface $1 with pid ${pid}"
fi fi
} }

View file

@ -6,9 +6,9 @@
MWAN3_STATUS_DIR="/var/run/mwan3track" MWAN3_STATUS_DIR="/var/run/mwan3track"
MWAN3_PID_FILE="/var/run/mwan3track" MWAN3_PID_FILE="/var/run/mwan3track"
IPS="/usr/sbin/ipset" IPS="ipset"
IPT4="/usr/sbin/iptables -t mangle -w" IPT4="iptables -t mangle -w"
IPT6="/usr/sbin/ip6tables -t mangle -w" IPT6="ip6tables -t mangle -w"
report_connected_v4() { report_connected_v4() {
local address local address
@ -34,16 +34,12 @@ get_mwan3_status() {
local iface="${1}" local iface="${1}"
local iface_select="${2}" local iface_select="${2}"
local running="0" local running="0"
local pid="" local pid
local status=""
if [ "${iface}" = "${iface_select}" ] || [ "${iface_select}" = "" ]; then if [ "${iface}" = "${iface_select}" ] || [ "${iface_select}" = "" ]; then
if [ -f "${MWAN3_PID_FILE}-${iface}.pid" ]; then pid="$(pgrep -f "mwan3track $iface_selected")"
pid="$(cat "${MWAN3_PID_FILE}-${iface}.pid")" if [ "${pid}" != "" ]; then
status="$(pgrep -f mwan3track | grep "${pid}")" running="1"
if [ "${status}" != "" ]; then
running="1"
fi
fi fi
json_add_object "${iface}" json_add_object "${iface}"

View file

@ -1,11 +1,5 @@
#!/bin/sh #!/bin/sh
[ -x /usr/bin/ip ] || exit 4
[ -x /usr/sbin/ipset ] || exit 5
[ -x /usr/sbin/iptables ] || exit 6
[ -x /usr/sbin/ip6tables ] || exit 7
[ -x /usr/bin/logger ] || exit 8
. /lib/functions.sh . /lib/functions.sh
. /lib/functions/network.sh . /lib/functions/network.sh
. /lib/mwan3/mwan3.sh . /lib/mwan3/mwan3.sh
@ -42,9 +36,7 @@ ifdown()
ACTION=ifdown INTERFACE=$1 /sbin/hotplug-call iface ACTION=ifdown INTERFACE=$1 /sbin/hotplug-call iface
if [ -e /var/run/mwan3track-$1.pid ] ; then kill $(pgrep -f "mwan3track $1") &> /dev/null
kill $(cat /var/run/mwan3track-$1.pid)
fi
} }
ifup() ifup()

View file

@ -2,7 +2,7 @@
. /lib/functions.sh . /lib/functions.sh
LOG="/usr/bin/logger -t $(basename "$0")[$$] -p" LOG="logger -t $(basename "$0")[$$] -p"
INTERFACE="" INTERFACE=""
DEVICE="" DEVICE=""
@ -10,8 +10,9 @@ IFDOWN_EVENT=0
clean_up() { clean_up() {
$LOG notice "Stopping mwan3track for interface \"${INTERFACE}\"" $LOG notice "Stopping mwan3track for interface \"${INTERFACE}\""
rm "/var/run/mwan3track-${INTERFACE}.pid" &> /dev/null if [ "$(pgrep -f "mwan3track ${INTERFACE}")" = "" ]; then
rm -rf "/var/run/mwan3track/${INTERFACE}" &> /dev/null rm -rf "/var/run/mwan3track/${INTERFACE}" &> /dev/null
fi
if [ -z "$(ls -A "/var/run/mwan3track")" ]; then if [ -z "$(ls -A "/var/run/mwan3track")" ]; then
rm -rf "/var/run/mwan3track" rm -rf "/var/run/mwan3track"
fi fi
@ -31,7 +32,6 @@ main() {
INTERFACE=$1 INTERFACE=$1
DEVICE=$2 DEVICE=$2
echo "$$" > /var/run/mwan3track-$1.pid
mkdir -p /var/run/mwan3track/$1 mkdir -p /var/run/mwan3track/$1
trap clean_up SIGINT SIGTERM trap clean_up SIGINT SIGTERM
trap if_down SIGUSR1 trap if_down SIGUSR1
@ -103,13 +103,13 @@ main() {
if [ $score -eq $up ]; then if [ $score -eq $up ]; then
$LOG notice "Interface $1 ($2) is online" $LOG notice "Interface $1 ($2) is online"
env -i ACTION=ifup INTERFACE=$1 DEVICE=$2 /sbin/hotplug-call iface env -i ACTION=ifup INTERFACE=$1 DEVICE=$2 /sbin/hotplug-call iface
rm /var/run/mwan3track-$1.pid
rm -rf "/var/run/mwan3track/${1}" &> /dev/null rm -rf "/var/run/mwan3track/${1}" &> /dev/null
exit 0 exit 0
fi fi
fi fi
let turn++ let turn++
mkdir -p "/var/run/mwan3track/${1}"
echo "${lost}" > /var/run/mwan3track/$1/LOST echo "${lost}" > /var/run/mwan3track/$1/LOST
echo "${score}" > /var/run/mwan3track/$1/SCORE echo "${score}" > /var/run/mwan3track/$1/SCORE
echo "${turn}" > /var/run/mwan3track/$1/TURN echo "${turn}" > /var/run/mwan3track/$1/TURN