Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 637394 | Differences between
and this patch

Collapse All | Expand All

(-)a/net/iproute2.sh (-12 / +12 lines)
Lines 227-239 _add_route() Link Here
227
		set -- "${one}" "${two}" via "$@"
227
		set -- "${one}" "${two}" via "$@"
228
	fi
228
	fi
229
229
230
	local cmd= cmd_nometric= have_metric=false
230
	local cmd_add= cmd_show= have_metric=false
231
	while [ -n "$1" ]; do
231
	while [ -n "$1" ]; do
232
		case "$1" in
232
		case "$1" in
233
			metric) metric=$2 ; cmd="${cmd} metric $2" ; shift ; have_metric=true ;;
233
			metric) metric=$2 ; cmd_add="${cmd_add} metric $2" ; shift ; have_metric=true ;;
234
			netmask) x="/$(_netmask2cidr "$2")" ; cmd="${cmd}${x}" ; cmd_nometric="${cmd}${x}" ; shift;;
234
			netmask) x="/$(_netmask2cidr "$2")" ; cmd_add="${cmd_add}${x}" ; cmd_show="${cmd_show}${x}" ; shift;;
235
			-host|-net);;
235
			-host|-net);;
236
			*) cmd="${cmd} ${1}" ; cmd_nometric="${cmd_nometric} ${1}" ;;
236
			*) cmd_add="${cmd_add} ${1}" ; cmd_show="${cmd_show} ${1}" ;;
237
		esac
237
		esac
238
		shift
238
		shift
239
	done
239
	done
Lines 241-258 _add_route() Link Here
241
	# We cannot use a metric if we're using a nexthop
241
	# We cannot use a metric if we're using a nexthop
242
	if ! ${have_metric} && \
242
	if ! ${have_metric} && \
243
		[ -n "${metric}" -a \
243
		[ -n "${metric}" -a \
244
			"${cmd##* nexthop }" = "$cmd" ]
244
			"${cmd_add##* nexthop }" = "${cmd_add}" ]
245
	then
245
	then
246
		cmd="${cmd} metric ${metric}"
246
		cmd_add="${cmd_add} metric ${metric}"
247
	fi
247
	fi
248
248
249
	# Check for route already existing:
249
	# Check for route already existing:
250
	ip ${family} route show ${cmd_nometric} dev "${IFACE}" 2>/dev/null | \
250
	ip ${family} route show ${cmd_show} dev "${IFACE}" 2>/dev/null | \
251
		fgrep -sq "${cmd%% *}"
251
		fgrep -sq "${cmd_add%% *}"
252
	route_already_exists=$?
252
	route_already_exists=$?
253
253
254
	veinfo ip ${family} route append ${cmd} dev "${IFACE}"
254
	veinfo ip ${family} route append ${cmd_add} dev "${IFACE}"
255
	ip ${family} route append ${cmd} dev "${IFACE}"
255
	ip ${family} route append ${cmd_add} dev "${IFACE}"
256
	rc=$?
256
	rc=$?
257
	# Check return code in some cases
257
	# Check return code in some cases
258
	if [ $rc -ne 0 ]; then
258
	if [ $rc -ne 0 ]; then
Lines 267-274 _add_route() Link Here
267
				error|fatal) msgfunc=eerror rc=1;;
267
				error|fatal) msgfunc=eerror rc=1;;
268
				*) msgfunc=eerror rc=1 ; eerror "Unknown error behavior: $eh_behavior" ;;
268
				*) msgfunc=eerror rc=1 ; eerror "Unknown error behavior: $eh_behavior" ;;
269
			esac
269
			esac
270
			eval $msgfunc "Route '$cmd_nometric' already existed:"
270
			eval $msgfunc "Route '$cmd_show' already existed:"
271
			eval $msgfunc \"$(ip $family route show ${cmd_nometric} dev "${IFACE}" 2>&1)\"
271
			eval $msgfunc \"$(ip $family route show ${cmd_show} dev "${IFACE}" 2>&1)\"
272
		else
272
		else
273
			: # TODO: Handle other errors
273
			: # TODO: Handle other errors
274
		fi
274
		fi

Return to bug 637394