mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-18 18:18:06 -05:00
Updates from HEAD
This commit is contained in:
parent
61cdb5ac10
commit
8138094165
7 changed files with 29 additions and 32 deletions
6
CHANGES
6
CHANGES
|
|
@ -1,6 +1,12 @@
|
|||
OpenLDAP 2.3 Change Log
|
||||
|
||||
OpenLDAP 2.3.18 Engineering
|
||||
Fixed slapd wake_listener
|
||||
Removed slapd-bdb/hdb extraneous yields (ITS#3950)
|
||||
Build Environment
|
||||
Removed problematic Linux sched_yield(2) workarounds (ITS#3950)
|
||||
Documentation
|
||||
Updated release documents
|
||||
|
||||
OpenLDAP 2.3.17 Release
|
||||
Fixed slapd anonymous proxy authorization issue (ITS#4320)
|
||||
|
|
|
|||
2
INSTALL
2
INSTALL
|
|
@ -74,7 +74,7 @@ Making and Installing the OpenLDAP Distribution
|
|||
6. Test the standalone system:
|
||||
|
||||
This step requires the standalone LDAP server, slapd(8), with
|
||||
BDB, HDB, and/or LDBM support.
|
||||
BDB or HDB support.
|
||||
|
||||
% make test
|
||||
|
||||
|
|
|
|||
12
configure.in
12
configure.in
|
|
@ -1587,12 +1587,12 @@ dnl [ol_cv_pthread_lpthread_lexc])
|
|||
fi
|
||||
|
||||
ol_replace_broken_yield=no
|
||||
case "$target" in
|
||||
*-*-linux*)
|
||||
AC_CHECK_FUNCS(nanosleep)
|
||||
ol_replace_broken_yield=yes
|
||||
;;
|
||||
esac
|
||||
dnl case "$target" in
|
||||
dnl *-*-linux*)
|
||||
dnl AC_CHECK_FUNCS(nanosleep)
|
||||
dnl ol_replace_broken_yield=yes
|
||||
dnl ;;
|
||||
dnl esac
|
||||
|
||||
if test $ol_replace_broken_yield = yes ; then
|
||||
AC_DEFINE([REPLACE_BROKEN_YIELD],1,
|
||||
|
|
|
|||
|
|
@ -56,7 +56,6 @@ Implement SASLprep (RFC 4013) for LDAP (draft-ietf-ldapbis-*)
|
|||
Implement additional matching rules (RFC 3698)
|
||||
Add dumpasn1 logging support
|
||||
Add tests to test suite
|
||||
Add jail(2) support
|
||||
Recode linked-list structs to use <ldap_queue.h> macros
|
||||
Convert utfconv.txt into man page(s).
|
||||
Update manual pages as needed.
|
||||
|
|
|
|||
|
|
@ -708,7 +708,7 @@ ldap_bv2dn_x( struct berval *bvin, LDAPDN *dn, unsigned flags, void *ctx )
|
|||
str = bv->bv_val;
|
||||
end = str + bv->bv_len;
|
||||
|
||||
Debug( LDAP_DEBUG_TRACE, "=> ldap_bv2dn(%s,%u)\n", str, flags, 0 );
|
||||
Debug( LDAP_DEBUG_ARGS, "=> ldap_bv2dn(%s,%u)\n", str, flags, 0 );
|
||||
|
||||
*dn = NULL;
|
||||
|
||||
|
|
@ -890,8 +890,8 @@ return_result:;
|
|||
LDAP_FREEX( tmpDN, ctx );
|
||||
}
|
||||
|
||||
Debug( LDAP_DEBUG_TRACE, "<= ldap_bv2dn(%s)=%d %s\n", str, rc,
|
||||
ldap_err2string( rc ) );
|
||||
Debug( LDAP_DEBUG_ARGS, "<= ldap_bv2dn(%s)=%d %s\n", str, rc,
|
||||
rc ? ldap_err2string( rc ) : "" );
|
||||
*dn = newDN;
|
||||
|
||||
return( rc );
|
||||
|
|
@ -3001,7 +3001,7 @@ int ldap_dn2bv_x( LDAPDN dn, struct berval *bv, unsigned flags, void *ctx )
|
|||
bv->bv_len = 0;
|
||||
bv->bv_val = NULL;
|
||||
|
||||
Debug( LDAP_DEBUG_TRACE, "=> ldap_dn2bv(%u)\n", flags, 0, 0 );
|
||||
Debug( LDAP_DEBUG_ARGS, "=> ldap_dn2bv(%u)\n", flags, 0, 0 );
|
||||
|
||||
/*
|
||||
* a null dn means an empty dn string
|
||||
|
|
@ -3310,8 +3310,8 @@ int ldap_dn2bv_x( LDAPDN dn, struct berval *bv, unsigned flags, void *ctx )
|
|||
return LDAP_PARAM_ERROR;
|
||||
}
|
||||
|
||||
Debug( LDAP_DEBUG_TRACE, "<= ldap_dn2bv(%s)=%d %s\n",
|
||||
bv->bv_val, rc, ldap_err2string( rc ) );
|
||||
Debug( LDAP_DEBUG_ARGS, "<= ldap_dn2bv(%s)=%d %s\n",
|
||||
bv->bv_val, rc, rc ? ldap_err2string( rc ) : "" );
|
||||
|
||||
return_results:;
|
||||
return( rc );
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ get_modlist(
|
|||
{
|
||||
static char buf[256];
|
||||
int num;
|
||||
LDAPMod tmp;
|
||||
LDAPMod tmp = { 0 };
|
||||
LDAPMod **result;
|
||||
struct berval **bvals;
|
||||
|
||||
|
|
|
|||
|
|
@ -379,14 +379,7 @@ ldap_pvt_thread_pool_destroy ( ldap_pvt_thread_pool_t *tpool, int run_pending )
|
|||
: LDAP_INT_THREAD_POOL_STOPPING;
|
||||
|
||||
ldap_pvt_thread_cond_broadcast(&pool->ltp_cond);
|
||||
ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex);
|
||||
|
||||
do {
|
||||
ldap_pvt_thread_yield();
|
||||
ldap_pvt_thread_mutex_lock(&pool->ltp_mutex);
|
||||
waiting = pool->ltp_open_count;
|
||||
ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex);
|
||||
} while (waiting > 0);
|
||||
ldap_pvt_thread_cond_wait(&pool->ltp_cond, &pool->ltp_mutex);
|
||||
|
||||
while ((ctx = LDAP_STAILQ_FIRST(&pool->ltp_pending_list)) != NULL)
|
||||
{
|
||||
|
|
@ -461,6 +454,9 @@ ldap_int_thread_pool_wrapper (
|
|||
* should be like this:
|
||||
* if (pool->ltp_open_count > 1 && pool->ltp_starting == 0)
|
||||
* check timer, leave thread (break;)
|
||||
*
|
||||
* Just use pthread_cond_timedwait if we want to
|
||||
* check idle time.
|
||||
*/
|
||||
|
||||
if (pool->ltp_state == LDAP_INT_THREAD_POOL_RUNNING
|
||||
|
|
@ -492,15 +488,6 @@ ldap_int_thread_pool_wrapper (
|
|||
}
|
||||
ldap_pvt_thread_cond_wait(&pool->ltp_cond, &pool->ltp_mutex);
|
||||
}
|
||||
ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex);
|
||||
|
||||
ldap_pvt_thread_yield();
|
||||
|
||||
/* if we use an idle timer, here's
|
||||
* a good place to update it
|
||||
*/
|
||||
|
||||
ldap_pvt_thread_mutex_lock(&pool->ltp_mutex);
|
||||
}
|
||||
|
||||
for ( i=0; i<MAXKEYS && ltc_key[i].ltk_key; i++ ) {
|
||||
|
|
@ -514,6 +501,11 @@ ldap_int_thread_pool_wrapper (
|
|||
thread_keys[keyslot].id = tid_zero;
|
||||
|
||||
pool->ltp_open_count--;
|
||||
|
||||
/* let pool_destroy know we're all done */
|
||||
if (pool->ltp_open_count < 1)
|
||||
ldap_pvt_thread_cond_signal(&pool->ltp_cond);
|
||||
|
||||
ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex);
|
||||
|
||||
ldap_pvt_thread_exit(NULL);
|
||||
|
|
|
|||
Loading…
Reference in a new issue