[dhcp/f14/master] Another fix for handling time values on 64-bit platforms (#628258)
Jiří Popelka
jpopelka at fedoraproject.org
Thu Sep 2 16:48:36 UTC 2010
commit f3540e43bcc95df9d6022f3770d35bbc5ffafb38
Author: Jiri Popelka <jpopelka at redhat.com>
Date: Thu Sep 2 18:43:01 2010 +0200
Another fix for handling time values on 64-bit platforms (#628258)
dhcp-4.2.0-64_bit_lease_parse.patch | 52 ++++++++++++++++++++++++++++++++++-
dhcp.spec | 7 +++-
2 files changed, 56 insertions(+), 3 deletions(-)
---
diff --git a/dhcp-4.2.0-64_bit_lease_parse.patch b/dhcp-4.2.0-64_bit_lease_parse.patch
index 0d3ff65..0f37a37 100644
--- a/dhcp-4.2.0-64_bit_lease_parse.patch
+++ b/dhcp-4.2.0-64_bit_lease_parse.patch
@@ -1,6 +1,56 @@
+diff -up dhcp-4.2.0/common/dispatch.c.64-bit_lease_parse dhcp-4.2.0/common/dispatch.c
+--- dhcp-4.2.0/common/dispatch.c.64-bit_lease_parse 2010-09-02 18:21:00.000000000 +0200
++++ dhcp-4.2.0/common/dispatch.c 2010-09-02 18:29:50.000000000 +0200
+@@ -185,7 +185,7 @@ void add_timeout (when, where, what, ref
+ struct timeout *t, *q;
+ int usereset = 0;
+ isc_result_t status;
+- int sec, usec;
++ struct timeval relative_time;
+ isc_interval_t interval;
+ isc_time_t expires;
+
+@@ -297,24 +297,24 @@ void add_timeout (when, where, what, ref
+ * about the usec value, if it's zero we assume the caller didn't care.
+ */
+
+- sec = when->tv_sec - cur_tv.tv_sec;
+- usec = when->tv_usec - cur_tv.tv_usec;
++ relative_time.tv_sec = when->tv_sec - cur_tv.tv_sec;
++ relative_time.tv_usec = when->tv_usec - cur_tv.tv_usec;
+
+- if ((when->tv_usec != 0) && (usec < 0)) {
+- sec--;
+- usec += USEC_MAX;
++ if ((when->tv_usec != 0) && (relative_time.tv_usec < 0)) {
++ relative_time.tv_sec--;
++ relative_time.tv_usec += USEC_MAX;
+ }
+
+- if (sec < 0) {
+- sec = 0;
+- usec = 0;
+- } else if (usec < 0) {
+- usec = 0;
+- } else if (usec >= USEC_MAX) {
+- usec = USEC_MAX - 1;
++ if (relative_time.tv_sec < 0) {
++ relative_time.tv_sec = 0;
++ relative_time.tv_usec = 0;
++ } else if (relative_time.tv_usec < 0) {
++ relative_time.tv_usec = 0;
++ } else if (relative_time.tv_usec >= USEC_MAX) {
++ relative_time.tv_usec = USEC_MAX - 1;
+ }
+
+- isc_interval_set(&interval, sec, usec * 1000);
++ isc_interval_set(&interval, relative_time.tv_sec, relative_time.tv_usec * 1000);
+ status = isc_time_nowplusinterval(&expires, &interval);
+ if (status != ISC_R_SUCCESS) {
+ /*
diff -up dhcp-4.2.0/common/parse.c.64-bit_lease_parse dhcp-4.2.0/common/parse.c
--- dhcp-4.2.0/common/parse.c.64-bit_lease_parse 2009-10-28 05:12:29.000000000 +0100
-+++ dhcp-4.2.0/common/parse.c 2010-09-01 13:06:31.000000000 +0200
++++ dhcp-4.2.0/common/parse.c 2010-09-02 18:21:00.000000000 +0200
@@ -905,8 +905,8 @@ TIME
parse_date_core(cfile)
struct parse *cfile;
diff --git a/dhcp.spec b/dhcp.spec
index a4d2323..6374e9c 100644
--- a/dhcp.spec
+++ b/dhcp.spec
@@ -7,7 +7,7 @@
Summary: Dynamic host configuration protocol software
Name: dhcp
Version: 4.2.0
-Release: 5%{?dist}
+Release: 6%{?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.
@@ -510,7 +510,10 @@ fi
%attr(0644,root,root) %{_mandir}/man3/omapi.3.gz
%changelog
-* Tue Sep 1 2010 Jiri Popelka <jpopelka at redhat.com> - 12:4.2.0-5
+* Thu Sep 2 2010 Jiri Popelka <jpopelka at redhat.com> - 12:4.2.0-6
+- Another fix for handling time values on 64-bit platforms (#628258)
+
+* Wed Sep 1 2010 Jiri Popelka <jpopelka at redhat.com> - 12:4.2.0-5
- Fix parsing of lease file dates & times on 64-bit platforms (#628258)
* Tue Aug 31 2010 Jiri Popelka <jpopelka at redhat.com> - 12:4.2.0-4
More information about the scm-commits
mailing list