diff options
-rw-r--r-- | net.Linux/ifconfig.sh | 4 | ||||
-rw-r--r-- | net.Linux/iproute2.sh | 4 | ||||
-rw-r--r-- | net.Linux/pppd.sh | 6 |
3 files changed, 13 insertions, 1 deletions
diff --git a/net.Linux/ifconfig.sh b/net.Linux/ifconfig.sh index 7192ca8a..afa2edea 100644 --- a/net.Linux/ifconfig.sh +++ b/net.Linux/ifconfig.sh @@ -27,6 +27,10 @@ _ifindex() { "${IFACE}:"*) echo "${i}"; return 0;; esac done < /proc/net/dev + + # Return the next available index + i=$((${i} + 1)) + echo "${i}" return 1 } diff --git a/net.Linux/iproute2.sh b/net.Linux/iproute2.sh index fa1171d4..1621c7e1 100644 --- a/net.Linux/iproute2.sh +++ b/net.Linux/iproute2.sh @@ -28,6 +28,10 @@ _ifindex() { "${IFACE}:"*) echo "${i}"; return 0;; esac done < /proc/net/dev + + # Return the next available index + i=$((${i} + 1)) + echo "${i}" return 1 } diff --git a/net.Linux/pppd.sh b/net.Linux/pppd.sh index 311bb8de..d8448f81 100644 --- a/net.Linux/pppd.sh +++ b/net.Linux/pppd.sh @@ -20,6 +20,9 @@ pppd_pre_start() { # Interface has to be called ppp [ "${IFACE%%[0-9]*}" = "ppp" ] || return 0 + # Set our base metric + metric=4000 + if ${IN_BACKGROUND} ; then local config= eval config=\$config_${IFVAR} @@ -87,7 +90,8 @@ pppd_pre_start() { if ! ${hasdefaultmetric} ; then local m=\$metric_${IFVAR} - [ -n "${m}" ] && opts="${opts} defaultmetric ${m}" + [ -z "${m}" ] && m=$((${metric} + _ifindex)) + opts="${opts} defaultmetric ${m}" fi if [ -n "${mtu}" ] ; then ${hasmtu} || opts="${opts} mtu ${mtu}" |