diff --git a/SOURCES/dhclient-script b/SOURCES/dhclient-script
index ac2b7ac..30a4d48 100644
--- a/SOURCES/dhclient-script
+++ b/SOURCES/dhclient-script
@@ -3,7 +3,7 @@
# dhclient-script: Network interface configuration script run by
# dhclient based on DHCP client communication
#
-# Copyright (C) 2008, 2009, 2010 Red Hat, Inc.
+# Copyright (C) 2008-2014 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,7 @@
# along with this program. If not, see .
#
# Author(s): David Cantrell
+# Jiri Popelka
#
# ----------
# This script is a rewrite/reworking on dhclient-script originally
@@ -109,6 +110,7 @@ make_resolv_conf() {
[ -n "${new_domain_name_servers}" ] ||
[ -n "${new_domain_search}" ]; then
rscf="$(mktemp ${TMPDIR:-/tmp}/XXXXXX)"
+ [[ -z "${rscf}" ]] && return
echo "; generated by /usr/sbin/dhclient-script" > ${rscf}
if [ -n "${SEARCH}" ]; then
@@ -148,6 +150,7 @@ make_resolv_conf() {
elif [ -n "${new_dhcp6_name_servers}" ] ||
[ -n "${new_dhcp6_domain_search}" ]; then
rscf="$(mktemp ${TMPDIR:-/tmp}/XXXXXX)"
+ [[ -z "${rscf}" ]] && return
echo "; generated by /usr/sbin/dhclient-script" > ${rscf}
if [ -n "${SEARCH}" ]; then
@@ -351,7 +354,8 @@ dhconfig() {
[ ! "${old_broadcast_address}" = "${new_broadcast_address}" ] ||
[ ! "${old_routers}" = "${new_routers}" ] ||
[ ! "${old_interface_mtu}" = "${new_interface_mtu}" ]; then
- ip -4 addr add ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface} >/dev/null 2>&1
+ ip -4 addr add ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface} \
+ valid_lft ${new_dhcp_lease_time} preferred_lft ${new_dhcp_lease_time} >/dev/null 2>&1
ip link set dev ${interface} up
# The 576 MTU is only used for X.25 and dialup connections
@@ -479,6 +483,9 @@ dhconfig() {
fi
fi
+ else # RENEW||REBIND - only update address lifetimes
+ ip -4 addr change ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface} \
+ valid_lft ${new_dhcp_lease_time} preferred_lft ${new_dhcp_lease_time} >/dev/null 2>&1
fi
if [ ! "${new_ip_address}" = "${alias_ip_address}" ] &&
@@ -543,7 +550,8 @@ dhconfig() {
# using that address for traffic.
add_ipv6_addr_with_DAD() {
ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
- dev ${interface} scope global
+ dev ${interface} scope global valid_lft ${new_max_life} \
+ preferred_lft ${new_preferred_life}
# repeatedly test whether newly added address passed
# duplicate address detection (DAD)
@@ -595,6 +603,10 @@ dh6config() {
if [ ! "${new_ip6_address}" = "${old_ip6_address}" ]; then
add_ipv6_addr_with_DAD
+ else # only update address lifetimes
+ ip -6 addr change ${new_ip6_address}/${new_ip6_prefixlen} \
+ dev ${interface} scope global valid_lft ${new_max_life} \
+ preferred_lft ${new_preferred_life}
fi
if [ ! "${new_dhcp6_name_servers}" = "${old_dhcp6_name_servers}" ] ||
@@ -766,7 +778,9 @@ case "${reason}" in
ip -4 addr flush dev ${interface} label ${interface}:0 >/dev/null 2>&1
fi
- ip -4 addr add ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface}
+ ip -4 addr add ${new_ip_address}/${new_prefix} \
+ broadcast ${new_broadcast_address} dev ${interface} \
+ valid_lft ${new_dhcp_lease_time} preferred_lft ${new_dhcp_lease_time}
set ${new_routers}
if ping -q -c 1 -w 10 -I ${interface} ${1}; then
diff --git a/SPECS/dhcp.spec b/SPECS/dhcp.spec
index f7ff8d2..b858e34 100644
--- a/SPECS/dhcp.spec
+++ b/SPECS/dhcp.spec
@@ -18,7 +18,7 @@
Summary: Dynamic host configuration protocol software
Name: dhcp
Version: 4.2.5
-Release: 23%{?dist}
+Release: 27%{?dist}
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
# dcantrell maintaining the package) made incorrect use of the epoch and
# that's why it is at 12 now. It should have never been used, but it was.
@@ -619,6 +619,18 @@ done
%changelog
+* Fri Jan 24 2014 Daniel Mach - 12:4.2.5-27
+- Mass rebuild 2014-01-24
+
+* Mon Jan 13 2014 Jiri Popelka - 12:4.2.5-26
+- update address lifetimes on RENEW/RENEW6 (#1032809)
+
+* Fri Dec 27 2013 Daniel Mach - 12:4.2.5-25
+- Mass rebuild 2013-12-27
+
+* Fri Nov 22 2013 Jiri Popelka - 12:4.2.5-24
+- dhclient-script: set address lifetimes (#1032809)
+
* Tue Nov 05 2013 Jiri Popelka - 12:4.2.5-23
- dhcpd rejects the udp packet with checksum=0xffff (#1016143)