/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2009 The OpenLDAP Foundation.
+ * Copyright 1998-2012 The OpenLDAP Foundation.
* Portions Copyright 1998 A. Hartgers.
* All rights reserved.
*
/* USE_GMTIME_R and USE_LOCALTIME_R defined in ldap_pvt.h */
+#ifdef LDAP_DEVEL
+ /* to be released with 2.5 */
#if !defined( USE_GMTIME_R ) || !defined( USE_LOCALTIME_R )
/* we use the same mutex for gmtime(3) and localtime(3)
* because implementations may use the same buffer
* for both functions */
static ldap_pvt_thread_mutex_t ldap_int_gmtime_mutex;
#endif
+#else /* ! LDAP_DEVEL */
+ ldap_pvt_thread_mutex_t ldap_int_gmtime_mutex;
+#endif /* ! LDAP_DEVEL */
# if defined(HAVE_GETHOSTBYNAME_R) && \
(GETHOSTBYNAME_R_NARGS < 5) || (6 < GETHOSTBYNAME_R_NARGS)
#else
-# ifdef LDAP_R_COMPILE
- ldap_pvt_thread_mutex_lock( &ldap_int_ctime_mutex );
-# endif
-
+ LDAP_MUTEX_LOCK( &ldap_int_ctime_mutex );
AC_MEMCPY( buf, ctime(tp), 26 );
-
-# ifdef LDAP_R_COMPILE
- ldap_pvt_thread_mutex_unlock( &ldap_int_ctime_mutex );
-# endif
+ LDAP_MUTEX_UNLOCK( &ldap_int_ctime_mutex );
return buf;
#endif
{
struct tm *tm_ptr;
-# ifdef LDAP_R_COMPILE
- ldap_pvt_thread_mutex_lock( &ldap_int_gmtime_mutex );
-# endif /* LDAP_R_COMPILE */
-
+ LDAP_MUTEX_LOCK( &ldap_int_gmtime_mutex );
tm_ptr = gmtime( timep );
if ( tm_ptr == NULL ) {
result = NULL;
} else {
*result = *tm_ptr;
}
-
-# ifdef LDAP_R_COMPILE
- ldap_pvt_thread_mutex_unlock( &ldap_int_gmtime_mutex );
-# endif /* LDAP_R_COMPILE */
+ LDAP_MUTEX_UNLOCK( &ldap_int_gmtime_mutex );
return result;
}
{
struct tm *tm_ptr;
-# ifdef LDAP_R_COMPILE
- ldap_pvt_thread_mutex_lock( &ldap_int_gmtime_mutex );
-# endif /* LDAP_R_COMPILE */
-
+ LDAP_MUTEX_LOCK( &ldap_int_gmtime_mutex );
tm_ptr = localtime( timep );
if ( tm_ptr == NULL ) {
result = NULL;
} else {
*result = *tm_ptr;
}
-
-# ifdef LDAP_R_COMPILE
- ldap_pvt_thread_mutex_unlock( &ldap_int_gmtime_mutex );
-# endif /* LDAP_R_COMPILE */
+ LDAP_MUTEX_UNLOCK( &ldap_int_gmtime_mutex );
return result;
}
t = tv.tv_sec;
if ( tv.tv_sec < prevTv.tv_sec
- || ( tv.tv_sec == prevTv.tv_sec && tv.tv_usec == prevTv.tv_usec )) {
+ || ( tv.tv_sec == prevTv.tv_sec && tv.tv_usec <= prevTv.tv_usec )) {
subs++;
} else {
subs = 0;
int retval;
*buf = NULL;
- ldap_pvt_thread_mutex_lock( &ldap_int_resolv_mutex );
+ LDAP_MUTEX_LOCK( &ldap_int_resolv_mutex );
he = gethostbyname( name );
retval = 0;
}
- ldap_pvt_thread_mutex_unlock( &ldap_int_resolv_mutex );
+ LDAP_MUTEX_UNLOCK( &ldap_int_resolv_mutex );
return retval;
#else
int rc;
#if defined( HAVE_GETNAMEINFO )
-#if defined( LDAP_R_COMPILE )
- ldap_pvt_thread_mutex_lock( &ldap_int_resolv_mutex );
-#endif
+ LDAP_MUTEX_LOCK( &ldap_int_resolv_mutex );
rc = getnameinfo( sa, len, name, namelen, NULL, 0, 0 );
-#if defined( LDAP_R_COMPILE )
- ldap_pvt_thread_mutex_unlock( &ldap_int_resolv_mutex );
-#endif
+ LDAP_MUTEX_UNLOCK( &ldap_int_resolv_mutex );
if ( rc ) *err = (char *)AC_GAI_STRERROR( rc );
return rc;
LDAP_FREE(buf);
#else /* HAVE_GETHOSTBYADDR_R */
-#if defined( LDAP_R_COMPILE )
- ldap_pvt_thread_mutex_lock( &ldap_int_resolv_mutex );
-#endif
+ LDAP_MUTEX_LOCK( &ldap_int_resolv_mutex );
hp = gethostbyaddr( addr, alen, sa->sa_family );
if (hp) {
strncpy( name, hp->h_name, namelen );
rc = h_errno;
*err = (char *)HSTRERROR( h_errno );
}
-#if defined( LDAP_R_COMPILE )
- ldap_pvt_thread_mutex_unlock( &ldap_int_resolv_mutex );
-#endif
+ LDAP_MUTEX_UNLOCK( &ldap_int_resolv_mutex );
#endif /* !HAVE_GETHOSTBYADDR_R */
return rc;
int retval;
*buf = NULL;
- ldap_pvt_thread_mutex_lock( &ldap_int_resolv_mutex );
-
+ LDAP_MUTEX_LOCK( &ldap_int_resolv_mutex );
he = gethostbyaddr( addr, len, type );
if (he==NULL) {
*result = resbuf;
retval = 0;
}
-
- ldap_pvt_thread_mutex_unlock( &ldap_int_resolv_mutex );
+ LDAP_MUTEX_UNLOCK( &ldap_int_resolv_mutex );
return retval;