components/bind/patches/7072815.timers.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Wed, 29 Aug 2012 11:05:56 -0700
changeset 957 255465c5756f
parent 954 42138962369d
permissions -rw-r--r--
Close of build 04.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
954
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
     1
diff --git a/lib/isc/pthreads/condition.c b/lib/isc/pthreads/condition.c
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
     2
index 50281a2..ca33e66 100644
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
     3
--- a/lib/isc/pthreads/condition.c
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
     4
+++ b/lib/isc/pthreads/condition.c
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
     5
@@ -43,7 +43,14 @@ isc_condition_waituntil(isc_condition_t *c, isc_mutex_t *m, isc_time_t *t) {
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
     6
 	 * POSIX defines a timespec's tv_sec as time_t.
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
     7
 	 */
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
     8
 	result = isc_time_secondsastimet(t, &ts.tv_sec);
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
     9
-	if (result != ISC_R_SUCCESS)
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    10
+
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    11
+	/*
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    12
+	 * If we have a range error ts.tv_sec is most probably a signed
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    13
+	 * 32 bit value.  Set ts.tv_sec to INT_MAX.  This is a kludge.
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    14
+	 */
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    15
+	if (result == ISC_R_RANGE)
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    16
+		ts.tv_sec = INT_MAX;
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    17
+	else if (result != ISC_R_SUCCESS)
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    18
 		return (result);
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    19
 
42138962369d 7102711 BIND 9 may once more be able to use getifaddrs()
tomas.jedlicka <tomas.jedlicka@oracle.com>
parents:
diff changeset
    20
 	/*!