mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
This is done by defining ifup/down both to 'false' when they're missing; then instead of attempting to parse the IP params from the kernel command line, we get them from 'ip' instead. So this works even with (for example) ip=dhcp on the kernel command line. Also made a few minor syntax changes (in particular, replaced "==" with "=", and ">&foo" with ">foo 2>foo") so this works with more limited shells. Signed-off-by: Ben Thomas <bjthomas3@gmail.com>
107 lines
2.1 KiB
Bash
107 lines
2.1 KiB
Bash
#
|
|
# Copyright (c) 2005 XenSource Ltd.
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of version 2.1 of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this library; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
|
|
|
|
# On SuSE it is necessary to run a command before transfering addresses and
|
|
# routes from the physical interface to the virtual. This command creates a
|
|
# variable $HWD_CONFIG_0 that specifies the appropriate configuration for
|
|
# ifup.
|
|
|
|
# Gentoo doesn't have ifup/ifdown, so we define appropriate alternatives.
|
|
|
|
# Other platforms just use ifup / ifdown directly.
|
|
|
|
##
|
|
# preiftransfer
|
|
#
|
|
# @param $1 The current name for the physical device, which is also the name
|
|
# that the virtual device will take once the physical device has
|
|
# been renamed.
|
|
|
|
if [ -e /etc/SuSE-release ]
|
|
then
|
|
preiftransfer()
|
|
{
|
|
eval `/sbin/getcfg -d /etc/sysconfig/network/ -f ifcfg- -- $1`
|
|
}
|
|
ifup()
|
|
{
|
|
/sbin/ifup ${HWD_CONFIG_0} $1
|
|
}
|
|
elif ! which ifup >/dev/null 2>/dev/null
|
|
then
|
|
if [ -e /etc/conf.d/net ]
|
|
then
|
|
preiftransfer()
|
|
{
|
|
true
|
|
}
|
|
ifup()
|
|
{
|
|
/etc/init.d/net.$1 start
|
|
}
|
|
ifdown()
|
|
{
|
|
/etc/init.d/net.$1 stop
|
|
}
|
|
else
|
|
preiftransfer()
|
|
{
|
|
true
|
|
}
|
|
ifup()
|
|
{
|
|
false
|
|
}
|
|
ifdown()
|
|
{
|
|
false
|
|
}
|
|
fi
|
|
else
|
|
preiftransfer()
|
|
{
|
|
true
|
|
}
|
|
fi
|
|
|
|
|
|
first_file()
|
|
{
|
|
t="$1"
|
|
shift
|
|
for file in $@
|
|
do
|
|
if [ "$t" "$file" ]
|
|
then
|
|
echo "$file"
|
|
return
|
|
fi
|
|
done
|
|
}
|
|
|
|
find_dhcpd_conf_file()
|
|
{
|
|
first_file -f /etc/dhcp3/dhcpd.conf /etc/dhcpd.conf
|
|
}
|
|
|
|
|
|
find_dhcpd_init_file()
|
|
{
|
|
first_file -x /etc/init.d/{dhcp3-server,dhcp,dhcpd}
|
|
}
|