commit
c421c797bf
6 changed files with 26 additions and 52 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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}"
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue