Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 37134 Details for
Bug 59922
Setting default inet6 route for 'eth' interfaces
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Modified old net.eth0 script
net.ethX (text/plain), 5.15 KB, created by
Florian Neukamm
on 2004-08-09 19:54:19 UTC
(
hide
)
Description:
Modified old net.eth0 script
Filename:
MIME Type:
Creator:
Florian Neukamm
Created:
2004-08-09 19:54:19 UTC
Size:
5.15 KB
patch
obsolete
>#!/sbin/runscript ># Copyright 1999-2003 Gentoo Technologies, Inc. ># Distributed under the terms of the GNU General Public License v2 ># $Header: /home/cvsroot/gentoo-src/rc-scripts/init.d/net.eth0,v 1.34 2003/11/26 19:23:15 azarah Exp $ > >#NB: Config is in /etc/conf.d/net > > ># For pcmcia users. note that pcmcia must be added to the same ># runlevel as the net.* script that needs it. >depend() { > use hotplug pcmcia >} > >checkconfig() { > if [ -z "${iface_IFACE}" ] > then > eerror "Please make sure that /etc/conf.d/net has \$iface_$IFACE set" > return 1 > fi > if [ -n "${vlans}" -a \! -x /sbin/vconfig ] > then > eerror "For VLAN (802.1q) support, emerge net-misc/vconfig" > return 1 > fi >} > >setup_env() { > # No reason to check these multiple times in the file > iface="${1/\./_}" > iface_IFACE="$(eval echo \$\{iface_${iface}\})" > dhcpcd_IFACE="$(eval echo \$\{dhcpcd_${iface}\})" > inet6_IFACE="$(eval echo \$\{inet6_${iface}\})" > alias_IFACE="$(eval echo \$\{alias_${iface}\})" > status_IFACE="$(ifconfig | gawk -v IFACE="${iface}" '$0 ~ /Link/ { if ($1 == IFACE) print "up" }')" > vlans="$(eval echo \$\{iface_${IFACE}_vlans\})" >} > >iface_start() { > local retval=0 > > setup_env ${1} > checkconfig || return 1 > > local IFACE="${1}" > ebegin "Bringing ${IFACE} up" > if [ "${iface_IFACE}" != "dhcp" ] > then > /sbin/ifconfig ${IFACE} ${iface_IFACE} >/dev/null || { > retval=$? > eend ${retval} "Failed to bring ${IFACE} up" > return ${retval} > } > # ifconfig do not always return failure .. > /sbin/ifconfig ${IFACE} &> /dev/null || { > retval=$? > eend ${retval} "Failed to bring ${IFACE} up" > return ${retval} > } > else > # Check that eth0 was not brough up by the kernel ... > if [ "${status_IFACE}" != "up" ] > then > /sbin/dhcpcd ${dhcpcd_IFACE} ${IFACE} >/dev/null || { > retval=$? > eend ${retval} "Failed to bring ${IFACE} up" > return ${retval} > } > fi > fi > eend 0 > > if [ -n "${alias_IFACE}" ] > then > local x="" > local num=0 > local aliasbcast="" > local aliasnmask="" > > ebegin " Adding aliases" > for x in ${alias_IFACE} > do > aliasbcast="$(eval echo \$\{broadcast_${iface}\} \| awk \'\{ print \$$((num + 1)) \}\')" > if [ -n "${aliasbcast}" ] > then > aliasbcast="broadcast ${aliasbcast}" > fi > > aliasnmask="$(eval echo \$\{netmask_${iface}\} \| awk \'\{ print \$$((num + 1)) \}\')" > if [ -n "${aliasnmask}" ] > then > aliasnmask="netmask ${aliasnmask}" > fi > > ebegin " ${IFACE}:${num}" > /sbin/ifconfig ${IFACE}:${num} ${x} \ > ${aliasbcast} ${aliasnmask} >/dev/null > num=$((num + 1)) > eend 0 > done > save_options "alias" "${alias_IFACE}" > fi > > if [ -n "${inet6_IFACE}" ] > then > local x="" > ebegin " Adding inet6 addresses" > for x in ${inet6_IFACE} > do > ebegin " ${IFACE} inet6 add ${x}" > /sbin/ifconfig ${IFACE} inet6 add ${x} >/dev/null > eend 0 > done > save_options "inet6" "${inet6_IFACE}" > fi > > if [ -n "${gateway}" ] && [ "${gateway%/*}" = "${IFACE}" ] > then > ebegin " Setting default gateway" > # First delete any existing routes if it was setup by kernel .. > /sbin/route del default dev ${gateway%/*} &>/dev/null > /sbin/route add default gw ${gateway#*/} dev ${gateway%/*} \ > netmask 0.0.0.0 metric 1 >/dev/null || { > > local error=$? > ifconfig ${IFACE} down &>/dev/null > eend ${error} "Failed to bring ${IFACE} up" > stop > return ${error} > } > eend 0 > fi > > if [ -n "$(eval echo \$\{gateway6_${IFACE}\})" ] > then > local x="" > for x in $(eval echo \$\{gateway6_${IFACE}\}) > do > ebegin " ${IFACE} inet6 gw ${x}" > /sbin/route -A inet6 add default gw ${x} dev ${IFACE} > /dev/null > done > save_options "gateway6" "$(eval echo \$\{gateway6_${IFACE}\})" > fi > > # Enabling rp_filter causes wacky packets to be auto-dropped by > # the kernel. Note that we only do this if it is not set via > # /etc/sysctl.conf ... > if [ -e /proc/sys/net/ipv4/conf/${IFACE}/rp_filter ] && \ > [ -z "$(egrep '^[^#]*rp_filter' /etc/sysctl.conf 2>/dev/null)" ] > then > echo 1 > /proc/sys/net/ipv4/conf/${IFACE}/rp_filter > fi >} > >iface_stop() { > local myalias="$(get_options alias)" > local myinet6="$(get_options inet6)" > > setup_env ${1} > local IFACE="${1}" > > ebegin "Bringing ${IFACE} down" > > # Also down the inet6 interfaces > if [ -n "${myinet6}" ] > then > local x="" > for x in ${myinet6} > do > /sbin/ifconfig ${IFACE} inet6 del ${x} >/dev/null > done > fi > > # Do some cleanup in case the amount of aliases change > if [ -n "${myalias}" ] > then > local x="" > local num=0 > for x in ${myalias} > do > /sbin/ifconfig ${IFACE}:${num} down >/dev/null > num=$((num + 1)) > done > fi > > if [ "${iface_IFACE}" = "dhcp" ] > then > local count=0 > while /sbin/dhcpcd -z ${IFACE} &>/dev/null && [ "${count}" -lt 9 ] > do > # Give dhcpcd time to properly shutdown > sleep 1 > count=$((count + 1)) > done > if [ "${count}" -ge 9 ] > then > eerror "Timed out trying to stop dhcpcd" > fi > else > /sbin/ifconfig ${IFACE} down >/dev/null > fi > eend 0 >} > >start() { > iface_start ${IFACE} || return 1 > for vlan in ${vlans} > do > /sbin/vconfig add ${IFACE} ${vlan} >/dev/null > iface_start ${IFACE}.${vlan} > done >} > >stop () { > setup_env ${IFACE} > checkconfig || return 1 > for vlan in ${vlans} > do > iface_stop ${IFACE}.${vlan} > /sbin/vconfig rem ${IFACE}.${vlan} >/dev/null > done > iface_stop ${IFACE} >} > ># vim:ts=4
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 Raw
Actions:
View
Attachments on
bug 59922
: 37134