Author: nkinder
Update of /cvs/dirsec/ldapserver/ldap/servers/plugins/replication In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14585
Modified Files: windows_connection.c Log Message: 169954 - Winsync initialization would hang with certain entries. Fixed improper use of ldap_get_next.
Index: windows_connection.c =================================================================== RCS file: /cvs/dirsec/ldapserver/ldap/servers/plugins/replication/windows_connection.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- windows_connection.c 9 May 2005 20:34:31 -0000 1.8 +++ windows_connection.c 6 Oct 2005 17:41:44 -0000 1.9 @@ -553,6 +553,9 @@ int ldap_rc = 0; LDAPMessage *res = NULL; int not_unique = 0; + int nummessages = 0; + int numentries = 0; + int numreferences = 0;
LDAPDebug( LDAP_DEBUG_TRACE, "=> windows_search_entry\n", 0, 0, 0 );
@@ -566,8 +569,14 @@ &conn->timeout, 0 /* sizelimit */, &res); if (LDAP_SUCCESS == ldap_rc) { + if (slapi_is_loglevel_set(SLAPI_LOG_REPL)) { + nummessages = ldap_count_messages(conn->ld, res); + numentries = ldap_count_entries(conn->ld, res); + numreferences = ldap_count_references(conn->ld, res); + LDAPDebug( LDAP_DEBUG_REPL, "windows_search_entry: recieved %d messages, %d entries, %d references\n", + nummessages, numentries, numreferences ); + } LDAPMessage *message = ldap_first_entry(conn->ld, res); - LDAPMessage *next_entry = NULL; if (NULL != entry) { *entry = windows_LDAPMessage2Entry(conn->ld,message,0); @@ -575,7 +584,7 @@ /* See if there are any more entries : if so then that's an error * but we still need to get them to avoid gumming up the connection */ - while (NULL != ( next_entry = ldap_next_entry(conn->ld,res))) + while (NULL != ( message = ldap_next_entry(conn->ld,message))) { not_unique = 1; }