/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2006 The OpenLDAP Foundation.
+ * Copyright 1998-2007 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
Sockaddr from;
ber_socket_t s;
- socklen_t len = sizeof(from);
+ ber_socklen_t len = sizeof(from);
long id;
slap_ssf_t ssf = 0;
struct berval authid = BER_BVNULL;
#endif /* LDAP_PF_LOCAL */
Debug( LDAP_DEBUG_TRACE,
- ">>> slap_listener(%s)",
+ ">>> slap_listener(%s)\n",
sl->sl_url.bv_val, 0, 0 );
peername[0] = '\0';
ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );
if ( rtask && cat.tv_sec ) {
- time_t diff = difftime( cat.tv_sec, now );
- if ( diff == 0 ) diff = tdelta;
+ /* NOTE: diff __should__ always be >= 0,
+ * AFAI understand; however (ITS#4872),
+ * time_t might be unsigned in some systems,
+ * while difftime() returns a double */
+ double diff = difftime( cat.tv_sec, now );
+ if ( diff <= 0 ) {
+ diff = tdelta;
+ }
if ( tvp == NULL || diff < tv.tv_sec ) {
tv.tv_sec = diff;
tv.tv_usec = 0;