#!/bin/sh
# shellcheck disable=SC2086

ipAddrFmt()
{
    if expr "$1" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null ; then
        return 0
    else
        return 1
    fi
}

check()
{
    INTERFACE=$1

    if [ "$INTERFACE" = "$PRINCIPAL" ] ; then
        SUCCESSCOUNT_INT=$SUCCESSCOUNT
        ROUTES_INT=$ROUTES
        TMTPINGRESP_INT=$TMTPINGRESP
    else
        SUCCESSCOUNT_INT=$RESCUESUCCESSCOUNT
        ROUTES_INT=$LSTROUTES
        TMTPINGRESP_INT=$RESCUETMTPINGRESP
    fi

    cnt=0
    for i in ${ROUTES_INT} ; do
        # If routing table available ping from ip, otherwise ping from interface
        if ip rule > /dev/null 2>&1; then
            LOCAL_IP_ADDRESS=$(ifconfig $INTERFACE | grep inet | xargs | sed 's/addr://' | cut -f2 -d" ")
            ping -w ${TMTPINGRESP_INT} -q -c1 -I ${LOCAL_IP_ADDRESS} ${i} >/dev/null
        else
            ping -w ${TMTPINGRESP_INT} -q -c1 -I ${INTERFACE} ${i} >/dev/null
        fi
        # shellcheck disable=SC2181
        if [ "$?" = "0" ]; then
            cnt=$((cnt + 1))
            Log "${INTERFACE} ok with ${i}"
        else
            Log "${INTERFACE} failed with ${i}"
        fi
        if [ $cnt -ge ${SUCCESSCOUNT_INT} ]; then
            return $cnt
        fi
        sleep ${INTERVPING}
    done
    return $cnt
}

