Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 504470 Details for
Bug 637394
net-misc/netifrc - add support for route types without dev option (iproute2)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
netifrc-2.patch
netifrc-2.patch (text/plain), 2.51 KB, created by
Alexander Zubkov
on 2017-11-16 00:34:28 UTC
(
hide
)
Description:
netifrc-2.patch
Filename:
MIME Type:
Creator:
Alexander Zubkov
Created:
2017-11-16 00:34:28 UTC
Size:
2.51 KB
patch
obsolete
>diff --git a/net/iproute2.sh b/net/iproute2.sh >index b7152d9..bb1534b 100644 >--- a/net/iproute2.sh >+++ b/net/iproute2.sh >@@ -204,6 +204,23 @@ _add_address() > return $rc > } > >+_filter_metric() >+{ >+ # ip route show does not allow to filter by metric >+ # so we need to filter metric manually >+ >+ local metric_value="$1" >+ shift >+ >+ if [ "${metric_value}" -eq 0 ]; then >+ # metric 0 is not displayed >+ ip -o "$@" | fgrep -vsq " metric " >+ else >+ # add trailing space for matching >+ echo "$(ip -o "$@") " | fgrep -sq " metric ${metric_value} " >+ fi >+} >+ > _add_route() > { > local family= >@@ -222,33 +239,31 @@ _add_route() > if [ $# -eq 3 ]; then > set -- "$1" "$2" via "$3" > elif [ "$3" = "gw" ]; then >- local one=$1 two=$2 >+ local one="$1" two="$2" > shift; shift; shift > set -- "${one}" "${two}" via "$@" > fi > >- local cmd_add= cmd_show= have_metric=false >+ local cmd_add= cmd_show= metric_value= have_metric=false > while [ -n "$1" ]; do > case "$1" in >- metric) metric=$2 ; cmd_add="${cmd_add} metric $2" ; shift ; have_metric=true ;; >+ metric|preference) metric="$2" ; cmd_add="${cmd_add} metric ${2}" ; metric_value="$2" ; shift ; have_metric=true ;; > netmask) x="/$(_netmask2cidr "$2")" ; cmd_add="${cmd_add}${x}" ; cmd_show="${cmd_show}${x}" ; shift;; >+ table|tos) cmd_add="${cmd_add} ${1} ${2}" ; cmd_show="${cmd_show} ${1} ${2}" ; shift;; > -host|-net);; >- *) cmd_add="${cmd_add} ${1}" ; cmd_show="${cmd_show} ${1}" ;; >+ *) cmd_add="${cmd_add} ${1}" ;; > esac > shift > done > >- # We cannot use a metric if we're using a nexthop >- if ! ${have_metric} && \ >- [ -n "${metric}" -a \ >- "${cmd_add##* nexthop }" = "${cmd_add}" ] >- then >+ # Add interface's metric by default >+ if ! ${have_metric} && [ -n "${metric}" ]; then > cmd_add="${cmd_add} metric ${metric}" >+ metric_value="${metric}" > fi > > # Check for route already existing: >- ip ${family} route show ${cmd_show} dev "${IFACE}" 2>/dev/null | \ >- fgrep -sq "${cmd_add%% *}" >+ _filter_metric "${metric_value}" ${family} route show ${cmd_show} dev "${IFACE}" 2>/dev/null > route_already_exists=$? > > veinfo ip ${family} route append ${cmd_add} dev "${IFACE}" >@@ -268,7 +283,7 @@ _add_route() > *) msgfunc=eerror rc=1 ; eerror "Unknown error behavior: $eh_behavior" ;; > esac > eval $msgfunc "Route '$cmd_show' already existed:" >- eval $msgfunc \"$(ip $family route show ${cmd_show} dev "${IFACE}" 2>&1)\" >+ eval $msgfunc "\"$(_filter_metric "${metric_value}" $family route show ${cmd_show} dev "${IFACE}" 2>&1)\"" > else > : # TODO: Handle other errors > fi
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 637394
:
504106
|
504454
|
504470
|
504532
|
505050