aboutsummaryrefslogtreecommitdiffstats
path: root/sysconfig
diff options
context:
space:
mode:
authorDavid Kaspar [Dee'Kej] <dkaspar@redhat.com>2016-11-10 12:14:30 +0100
committerDee'Kej <deekej@linuxmail.org>2016-11-15 14:27:07 +0100
commitca3cea691b6be245e43740a8358ecc47add5684f (patch)
treed1fdfe778a0bafb24302cfa047452e030ffeb608 /sysconfig
parentc748b699095d68a2fb12fb26639e3b77a46a44eb (diff)
downloadinitscripts-ca3cea691b6be245e43740a8358ecc47add5684f.tar
initscripts-ca3cea691b6be245e43740a8358ecc47add5684f.tar.gz
initscripts-ca3cea691b6be245e43740a8358ecc47add5684f.tar.bz2
initscripts-ca3cea691b6be245e43740a8358ecc47add5684f.tar.xz
initscripts-ca3cea691b6be245e43740a8358ecc47add5684f.zip
network-functions: do not send hostname via dhclient everytime
Resolves: RHBZ #1350602
Diffstat (limited to 'sysconfig')
-rwxr-xr-xsysconfig/network-scripts/ifup-eth17
-rw-r--r--sysconfig/network-scripts/network-functions17
2 files changed, 25 insertions, 9 deletions
diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth
index 7f753a90..dd25d95d 100755
--- a/sysconfig/network-scripts/ifup-eth
+++ b/sysconfig/network-scripts/ifup-eth
@@ -177,7 +177,13 @@ if [ -n "${DYNCONFIG}" -a -x /sbin/dhclient ]; then
[ -x /sbin/restorecon ] && restorecon /var/lib/dhclient/dhclient-${DEVICE}.leases > /dev/null 2>&1
fi
done
- DHCLIENTARGS="${DHCLIENTARGS} -H ${DHCP_HOSTNAME:-${HOSTNAME%%.*}} ${ONESHOT} -q ${DHCLIENTCONF} -lf /var/lib/dhclient/dhclient-${DEVICE}.leases -pf /var/run/dhclient-${DEVICE}.pid"
+
+ if need_hostname; then
+ DHCLIENTARGS="${DHCLIENTARGS} ${DHCP_HOSTNAME:+-H $DHCP_HOSTNAME} ${ONESHOT} -q ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient-${DEVICE}.pid"
+ else
+ DHCLIENTARGS="${DHCLIENTARGS} -H ${DHCP_HOSTNAME:-${HOSTNAME%%.*}} ${ONESHOT} -q ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient-${DEVICE}.pid"
+ fi
+
echo
echo -n $"Determining IP information for ${DEVICE}..."
if [[ "${PERSISTENT_DHCLIENT}" != [yY1]* ]] && check_link_down ${DEVICE}; then
@@ -307,7 +313,14 @@ if [[ "${DHCPV6C}" = [Yy1]* ]] && [ -x /sbin/dhclient ]; then
generate_config_file_name 6
echo
echo -n $"Determining IPv6 information for ${DEVICE}..."
- if /sbin/dhclient -6 -1 ${DHCPV6C_OPTIONS} ${DHCLIENTCONF} -lf /var/lib/dhclient/dhclient6-${DEVICE}.leases -pf /var/run/dhclient6-${DEVICE}.pid -H ${DHCP_HOSTNAME:-${HOSTNAME%%.*}} ${DEVICE} ; then
+
+ if need_hostname; then
+ DHCLIENTARGS="-6 -1 ${DHCPV6C_OPTIONS} ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient6-${DEVICE}.pid ${DHCP_HOSTNAME:+-H $DHCP_HOSTNAME} ${DEVICE}"
+ else
+ DHCLIENTARGS="-6 -1 ${DHCPV6C_OPTIONS} ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient6-${DEVICE}.pid -H ${DHCP_HOSTNAME:-${HOSTNAME%%.*}} ${DEVICE}"
+ fi
+
+ if /sbin/dhclient "$DHCLIENTARGS"; then
echo $" done."
else
echo $" failed."
diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions
index 2133b288..3c85cd1a 100644
--- a/sysconfig/network-scripts/network-functions
+++ b/sysconfig/network-scripts/network-functions
@@ -309,13 +309,16 @@ END {
need_hostname ()
{
- CHECK_HOSTNAME=$(hostname)
- if [ "$CHECK_HOSTNAME" = "(none)" -o "$CHECK_HOSTNAME" = "localhost" -o \
- "$CHECK_HOSTNAME" = "localhost.localdomain" ]; then
- return 0
- else
- return 1
- fi
+ CHECK_HOSTNAME="$(hostname)"
+
+ case "$CHECK_HOSTNAME" in
+ '(none)' | 'localhost' | 'localhost.localdomain')
+ return 0
+ ;;
+ *)
+ return 1
+ ;;
+ esac
}
set_hostname ()