diff --git a/net/mwan3/Makefile b/net/mwan3/Makefile index e29296653..614c68b0c 100644 --- a/net/mwan3/Makefile +++ b/net/mwan3/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mwan3 -PKG_VERSION:=2.10.10 +PKG_VERSION:=2.10.11 PKG_RELEASE:=1 PKG_MAINTAINER:=Florian Eckert , \ Aaron Goodman diff --git a/net/mwan3/files/usr/sbin/mwan3 b/net/mwan3/files/usr/sbin/mwan3 index 51f468676..1ba6004bb 100755 --- a/net/mwan3/files/usr/sbin/mwan3 +++ b/net/mwan3/files/usr/sbin/mwan3 @@ -6,27 +6,34 @@ . /lib/mwan3/mwan3.sh . /lib/mwan3/common.sh +command_help() { + local cmd="$1" + local help="$2" + + echo "$(printf "%-25s%s" "${cmd}" "${help}")" +} + help() { cat < Load rules and routes for specific interface - ifdown Unload rules and routes for specific interface - interfaces Show interfaces status - policies Show currently active policy - connected Show directly connected networks - rules Show active rules - status Show all status - use Run a command bound to and avoid mwan3 rules EOF + command_help "start" "Load iptables rules, ip rules and ip routes" + command_help "stop" "Unload iptables rules, ip rules and ip routes" + command_help "restart" "Reload iptables rules, ip rules and ip routes" + command_help "ifup " "Load rules and routes for specific interface" + command_help "ifdown " "Unload rules and routes for specific interface" + command_help "interfaces" "Show interfaces status" + command_help "policies" "Show currently active policy" + command_help "connected" "Show directly connected networks" + command_help "rules" "Show active rules" + command_help "status" "Show all status" + command_help "internal " "Show internal configuration " + command_help "use " "Run a command bound to and avoid mwan3 rules" } - ifdown() { if [ -z "$1" ]; then echo "Error: Expecting interface. Usage: mwan3 ifdown " @@ -107,6 +114,92 @@ status() rules } +internal() +{ + local family="$1" + local dash="-------------------------------------------------" + + if [ -f "/etc/openwrt_release" ]; then + . /etc/openwrt_release + fi + + local ipt ip output + + if [ "$family" = "ipv6" ]; then + ipt="$IPT6" + ip="$IP6" + else + ipt="$IPT4" + ip="$IP4" + fi + + echo "Software-Version" + echo "$dash" + + if [ "$DISTRIB_RELEASE" != "" ]; then + echo "OpenWrt - $DISTRIB_RELEASE" + else + echo "OpenWrt - unknown" + fi + + echo "" + echo "Output of \"$ip a show\"" + echo "$dash" + output="$($ip a show)" + if [ "$output" != "" ]; then + echo "$output" + else + echo "No data found" + fi + + echo "" + echo "Output of \"$ip route show\"" + echo "$dash" + output="$($ip route show)" + if [ "$output" != "" ]; then + echo "$output" + else + echo "No data found" + fi + + echo "" + echo "Output of \"$ip rule show\"" + echo "$dash" + output="$($ip rule show)" + if [ "$output" != "" ]; then + echo "$output" + else + echo "No data found" + fi + + echo "" + echo "Output of \"$ip route list table 1-250\"" + echo "$dash" + local dump=0 + for i in $(seq 1 250); do + output=$($ip route list table $i 2>/dev/null) + if [ "$output" != "" ];then + dump=1 + echo "Routing table $i:" + echo "$output" + echo "" + fi + done + if [ "$dump" = "0" ]; then + echo "No data found" + echo "" + fi + + echo "Output of \"$ipt -L -v -n\"" + echo "$dash" + output="$($ipt -L -v -n)" + if [ "$output" != "" ]; then + echo "$output" + else + echo "No data found" + fi +} + start() { /etc/init.d/mwan3 enable /etc/init.d/mwan3 start @@ -148,7 +241,7 @@ use() { } case "$1" in - ifup|ifdown|interfaces|policies|connected|rules|status|start|stop|restart|use) + ifup|ifdown|interfaces|policies|connected|rules|status|start|stop|restart|use|internal) mwan3_init # shellcheck disable=SC2048 $*