X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=functions.sh;h=84af78032ba88e54cec649e2012d70a9cef1adea;hb=dd60228fb054bcc7ad1f222d1de6c7f351c00069;hp=8c2e0e864459f73659fa92e9093f4678b69ecfdb;hpb=9d14d6fd31235bc0c8a6733fcf37cec81879dfcd;p=carnet-tools-cn.git diff --git a/functions.sh b/functions.sh index 8c2e0e8..84af780 100644 --- a/functions.sh +++ b/functions.sh @@ -88,9 +88,19 @@ cp_get_ifdefault() { RET="" case $1 in - dev) RET=`route -n | awk '/^0.0.0.0/{print $8}'` ;; - addr) RET=`route -n | awk '/^0.0.0.0/{print $2}'` ;; - *) echo "cp_get_ifdefault: Argument required (dev or addr)" >&2 ;; + dev) + RET=`route -n | awk 'BEGIN {m = 2^32} + /^0\.0\.0\.0[ \t]/ {if ($5 < m) {r = $8; m = $5}} + END {print r}'` + ;; + addr) + RET=`route -n | awk 'BEGIN {m = 2^32} + /^0\.0\.0\.0[ \t]/ {if ($5 < m) {r = $2; m = $5}} + END {print r}'` + ;; + *) + echo "cp_get_ifdefault: Argument required (dev or addr)" >&2 + ;; esac [ -z "$RET" -a "$1" ] && echo "cp_get_ifdefault: No default route" >&2