From c4ebf454ad61c71154d5e7a2adda7d609e54e4c1 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 18 Jan 2024 14:35:38 +0100 Subject: [PATCH] Call less often ip command in multipath --- mptcp/files/usr/bin/multipath | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/mptcp/files/usr/bin/multipath b/mptcp/files/usr/bin/multipath index 014c3a8af..1b872182c 100755 --- a/mptcp/files/usr/bin/multipath +++ b/mptcp/files/usr/bin/multipath @@ -132,20 +132,23 @@ if [ -f /proc/sys/net/mptcp/mptcp_enabled ]; then printf "0x%02x" $(($(($IFF^$(($IFF&$IFF_MASK))))|$FLAG)) > $FLAG_PATH else # Remove not needed if* interfaces in MPTCP - oldintfs=$(ip mptcp endpoint show | grep "dev if" | awk '{ print $3 }') + endpoint="$(ip mptcp endpoint show)" + [ -z "$endpoint" ] && exit 0 + oldintfs=$(echo "${endpoint}" | grep "dev if" | awk '{ print $3 }') [ -n "$oldintfs" ] && { for oldintf in $oldintfs; do ip mptcp endpoint delete id $oldintf 2>&1 >/dev/null done } - - ID=$(ip mptcp endpoint show | sort | grep "dev $DEVICE " | awk '{print $3}') - IFF=$(ip mptcp endpoint show | sort | grep -m 1 -E "dev $DEVICE " | awk '{print $4}') + endpoint="$(ip mptcp endpoint show)" + [ -z "$endpoint" ] && exit 0 + ID=$(echo "${endpoint}" | sort | grep "dev $DEVICE " | awk '{print $3}') + IFF=$(echo "${endpoint}" | sort | grep -m 1 -E "dev $DEVICE " | awk '{print $4}') #IP=$(ip a show $DEVICE | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p') [ -f /usr/bin/jsonfilter ] && IP=$(ip -j a show $DEVICE | jsonfilter -e '@[0].addr_info[*].local') [ -f /usr/bin/jq ] && IP=$(ip -j a show $DEVICE | jq -r '.[0].addr_info[].local') - [ -z "$ID" ] && [ -n "$IP" ] && ID=$(ip mptcp endpoint show | grep "$IP " | awk '{print $3}') - RMID=$(ip mptcp endpoint show | grep '::ffff' | awk '{ print $3 }') + [ -z "$ID" ] && [ -n "$IP" ] && ID=$(echo "${endpoint}" show | grep "$IP " | awk '{print $3}') + RMID=$(echo "${endpoint}" | grep '::ffff' | awk '{ print $3 }') [ -n "$RMID" ] && ip mptcp endpoint delete id $RMID 2>&1 >/dev/null case $TYPE in "off")