Ticket #152: iproute2.sh.diff
File iproute2.sh.diff, 1.4 KB (added by NightNord@gmail.com, 18 months ago) |
---|
-
iproute2.sh
old new 139 139 set -- "${one}" "${two}" via "$@" 140 140 fi 141 141 142 local cmd= have_metric=false 142 local family_list= gateway_specified=false 143 local cmd= have_metric=false is_default_route=false 143 144 while [ -n "$1" ]; do 144 145 case "$1" in 146 default) cmd="${cmd} $1"; is_default_route=true;; 147 via) cmd="${cmd} $1"; gateway_specified=true;; 145 148 metric) cmd="${cmd} $1"; have_metric=true;; 146 149 netmask) cmd="${cmd}/$(_netmask2cidr "$2")"; shift;; 150 -A|-f|-family) family_list="${family_list} $2"; shift;; 147 151 -host|-net);; 148 -A) [ "$2" = "inet6" ] && shift;;149 152 *) cmd="${cmd} $1";; 150 153 esac 151 154 shift … … 155 158 cmd="${cmd} metric ${metric}" 156 159 fi 157 160 158 ip route append ${cmd} dev "${IFACE}" 159 eend $? 161 # We have really default route - no gateway, no family - iproute2 can't 162 # determine which family we use by gateway address, so it will default to ipv4. 163 if ${is_default_route} && ! ${gateway_specified} && [ -z "${family_list}" ] && \ 164 ip -family inet6 addr show dev "${IFACE}" &>/dev/null; then 165 ewarn "Adding default route for both ipv4 and ipv6" 166 family_list="inet inet6"; 167 fi 168 169 if [ -n "${family_list}" ]; then 170 for family in ${family_list}; do 171 ip -family ${family} route append ${cmd} dev "${IFACE}" || eend 1 172 done 173 174 eend 0 175 else 176 ip route append ${cmd} dev "${IFACE}" 177 eend $? 178 fi 160 179 } 161 180 162 181 _delete_addresses()