HEX
Server: Apache
System: Linux sg241.singhost.net 2.6.32-896.16.1.lve1.4.51.el6.x86_64 #1 SMP Wed Jan 17 13:19:23 EST 2018 x86_64
User: honghock (909)
PHP: 8.0.30
Disabled: passthru,system,shell_exec,show_source,exec,popen,proc_open
Upload Files
File: //usr/lib/vz-tools/tools/scripts/debian-set_dhcp.sh
#!/bin/bash
# Copyright (c) 2015-2017, Parallels International GmbH
# Copyright (c) 2017-2020 Virtuozzo International GmbH. All rights reserved.
#
# This script configure adapter to use DHCP inside Debian like VM.
#
# Parameters: <dev> <MAC_addr>
#   <dev>         - name of device. (example: eth2)
#   <MAC_addr>    - MAC address of device
#

prog="$0"
path="${prog%/*}"
funcs="$path/functions"

if [ -f "$funcs" ] ; then
	. $funcs
else
	echo "Program $0"
	echo "File $funcs not found"
	exit 1
fi

ETH_DEV=$1
ETH_MAC=$2
PROTO=$3
ETH_MAC_NW=`echo $ETH_MAC | sed "s,00,0,g"`

PROTO4="no"
PROTO6="no"

for proto in ${PROTO}; do
	if [ "x$proto" == "x4" ] ; then
		PROTO4="yes"
	elif [ "x$proto" == "x6" ] ; then
		PROTO6="yes"
	fi
done

if is_netplan_controlled; then
	$path/$NETPLAN_CFG -a "set_dhcp" -d "$ETH_DEV" -p "$PROTO"
	exit $?
elif [ -f $NWSYSTEMCONF -o -f $NMCONFFILE ]; then
	call_nm_script $0 "$@"
	exit $?
else
	remove_debian_interfaces "${ETH_DEV}:[0-9]+"
	remove_debian_interfaces ${ETH_DEV}

	echo "allow-hotplug ${ETH_DEV}" >> $DEBIAN_CONFIGFILE
	echo "auto ${ETH_DEV}" >> $DEBIAN_CONFIGFILE

	if [ "x$PROTO4" == "xyes" ] ; then
		echo >> $DEBIAN_CONFIGFILE
		echo "iface ${ETH_DEV} inet dhcp" >> $DEBIAN_CONFIGFILE
		# 2.6.35 kernel doesn't flush IPv6 addresses
		echo "	pre-down ip -6 addr flush dev ${ETH_DEV} scope global || :" >> $DEBIAN_CONFIGFILE
		echo >> $DEBIAN_CONFIGFILE
	fi

	if [ "x$PROTO6" == "xyes" ] ; then
		#don't support dhcpv6 by config
		set_wide_dhcpv6 ${ETH_DEV}
	fi

fi

if [ "x$PROTO4" == "xyes" ] ; then
	#clean old IPv4
	ip -4 addr flush dev ${ETH_DEV}
fi

$path/debian-restart.sh ${ETH_DEV}

exit 0
# end of script