diff --git a/openmptcprouter/files/bin/omr-iperf b/openmptcprouter/files/bin/omr-iperf index 5ee506a69..818b0385d 100755 --- a/openmptcprouter/files/bin/omr-iperf +++ b/openmptcprouter/files/bin/omr-iperf @@ -1,17 +1,45 @@ #!/bin/sh -SERVER=$1 -shift -[ -z "$SERVER" ] && SERVER="vps" -KEY=$(uci -q get iperf.$SERVER.key) -USER=$(uci -q get iperf.$SERVER.user) -PASSWORD=$(uci -q get iperf.$SERVER.password) -HOST=$(uci -q get iperf.$SERVER.host) -PORTS=$(uci -q get iperf.$SERVER.ports | sed 's/,/ /g') -PORT="${PORTS%% *}" -echo $KEY | base64 -d > /tmp/iperf.pem +# +# Copyright (C) 2018-2025 Ycarus (Yannick Chabanois) for OpenMPTCProuter +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +. /lib/functions.sh + +get_auth_data() { + SERVER="$1" + config_get current $SERVER current + if [ "$current" = "1" ]; then + KEY=$(uci -q get iperf.$SERVER.key) + USER=$(uci -q get iperf.$SERVER.user) + PASSWORD=$(uci -q get iperf.$SERVER.password) + HOST=$(uci -q get iperf.$SERVER.host) + PORTS=$(uci -q get iperf.$SERVER.ports | sed 's/,/ /g') + PORT="${PORTS%% *}" + fi +} + +config_load openmptcprouter +config_foreach get_auth_data server + if [ -n "$PASSWORD" ] && [ -n "$USER" ] && [ -n "$KEY" ]; then + echo $KEY | base64 -d > /tmp/iperf.pem #IPERF3_PASSWORD=$PASSWORD iperf3 --username $USER --rsa-public-key-path /tmp/iperf.pem --use-pkcs1-padding -c $HOST -p $PORT ${@} - IPERF3_PASSWORD=$PASSWORD iperf3 --username $USER --rsa-public-key-path /tmp/iperf.pem -c $HOST -p $PORT ${@} + echo "machin: $0" + case "$0" in + *proxy) + IPERF3_PASSWORD=$PASSWORD iperf3 --username $USER --rsa-public-key-path /tmp/iperf.pem -c $HOST -p $PORT --socks5 127.0.0.1:1111 ${@} + ;; + *vpn) + VPNIP=$(ip r show default metric 0 | awk '{ print $3 }' | tr -d '\n') + IPERF3_PASSWORD=$PASSWORD iperf3 --username $USER --rsa-public-key-path /tmp/iperf.pem -c $VPNIP -p $PORT + ;; + *) + IPERF3_PASSWORD=$PASSWORD iperf3 --username $USER --rsa-public-key-path /tmp/iperf.pem -c $HOST -p $PORT ${@} + ;; + esac else iperf3 -c $HOST -p $PORT ${@} fi diff --git a/openmptcprouter/files/bin/omr-iperf-proxy b/openmptcprouter/files/bin/omr-iperf-proxy new file mode 120000 index 000000000..9d54bfbd5 --- /dev/null +++ b/openmptcprouter/files/bin/omr-iperf-proxy @@ -0,0 +1 @@ +omr-iperf \ No newline at end of file diff --git a/openmptcprouter/files/bin/omr-iperf-vpn b/openmptcprouter/files/bin/omr-iperf-vpn new file mode 120000 index 000000000..9d54bfbd5 --- /dev/null +++ b/openmptcprouter/files/bin/omr-iperf-vpn @@ -0,0 +1 @@ +omr-iperf \ No newline at end of file