mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-24 13:24:56 +08:00
cleanup; fix loop
This commit is contained in:
parent
56303ce55a
commit
02c5b51717
@ -311,6 +311,7 @@ send_ldap_response(
|
|||||||
long bytes;
|
long bytes;
|
||||||
|
|
||||||
if ( op->o_callback ) {
|
if ( op->o_callback ) {
|
||||||
|
int first;
|
||||||
slap_callback *sc = op->o_callback,
|
slap_callback *sc = op->o_callback,
|
||||||
*sc_next = op->o_callback;
|
*sc_next = op->o_callback;
|
||||||
|
|
||||||
@ -319,8 +320,12 @@ send_ldap_response(
|
|||||||
sc_next = op->o_callback->sc_next;
|
sc_next = op->o_callback->sc_next;
|
||||||
if ( op->o_callback->sc_response ) {
|
if ( op->o_callback->sc_response ) {
|
||||||
rc = op->o_callback->sc_response( op, rs );
|
rc = op->o_callback->sc_response( op, rs );
|
||||||
|
if ( first && op->o_callback == NULL ) {
|
||||||
|
sc = NULL;
|
||||||
|
}
|
||||||
if ( rc != SLAP_CB_CONTINUE ) break;
|
if ( rc != SLAP_CB_CONTINUE ) break;
|
||||||
}
|
}
|
||||||
|
first = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
op->o_callback = sc;
|
op->o_callback = sc;
|
||||||
@ -492,6 +497,7 @@ cleanup:;
|
|||||||
|
|
||||||
clean2:;
|
clean2:;
|
||||||
if ( op->o_callback ) {
|
if ( op->o_callback ) {
|
||||||
|
int first;
|
||||||
slap_callback *sc = op->o_callback,
|
slap_callback *sc = op->o_callback,
|
||||||
*sc_next = op->o_callback;
|
*sc_next = op->o_callback;
|
||||||
|
|
||||||
@ -499,8 +505,12 @@ clean2:;
|
|||||||
sc_next = op->o_callback->sc_next;
|
sc_next = op->o_callback->sc_next;
|
||||||
if ( op->o_callback->sc_cleanup ) {
|
if ( op->o_callback->sc_cleanup ) {
|
||||||
(void)op->o_callback->sc_cleanup( op, rs );
|
(void)op->o_callback->sc_cleanup( op, rs );
|
||||||
|
if ( first && op->o_callback == NULL ) {
|
||||||
|
sc = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
first = 0;
|
||||||
|
}
|
||||||
|
|
||||||
op->o_callback = sc;
|
op->o_callback = sc;
|
||||||
}
|
}
|
||||||
@ -777,6 +787,7 @@ slap_send_search_entry( Operation *op, SlapReply *rs )
|
|||||||
|
|
||||||
rs->sr_type = REP_SEARCH;
|
rs->sr_type = REP_SEARCH;
|
||||||
if ( op->o_callback ) {
|
if ( op->o_callback ) {
|
||||||
|
int first;
|
||||||
slap_callback *sc = op->o_callback,
|
slap_callback *sc = op->o_callback,
|
||||||
*sc_next = op->o_callback;
|
*sc_next = op->o_callback;
|
||||||
|
|
||||||
@ -785,8 +796,12 @@ slap_send_search_entry( Operation *op, SlapReply *rs )
|
|||||||
sc_next = op->o_callback->sc_next;
|
sc_next = op->o_callback->sc_next;
|
||||||
if ( op->o_callback->sc_response ) {
|
if ( op->o_callback->sc_response ) {
|
||||||
rc = op->o_callback->sc_response( op, rs );
|
rc = op->o_callback->sc_response( op, rs );
|
||||||
|
if ( first && op->o_callback == NULL ) {
|
||||||
|
sc = NULL;
|
||||||
|
}
|
||||||
if ( rc != SLAP_CB_CONTINUE ) break;
|
if ( rc != SLAP_CB_CONTINUE ) break;
|
||||||
}
|
}
|
||||||
|
first = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
op->o_callback = sc;
|
op->o_callback = sc;
|
||||||
@ -1389,6 +1404,7 @@ error_return:;
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( op->o_callback ) {
|
if ( op->o_callback ) {
|
||||||
|
int first;
|
||||||
slap_callback *sc = op->o_callback,
|
slap_callback *sc = op->o_callback,
|
||||||
*sc_next = op->o_callback;
|
*sc_next = op->o_callback;
|
||||||
|
|
||||||
@ -1396,8 +1412,12 @@ error_return:;
|
|||||||
sc_next = op->o_callback->sc_next;
|
sc_next = op->o_callback->sc_next;
|
||||||
if ( op->o_callback->sc_cleanup ) {
|
if ( op->o_callback->sc_cleanup ) {
|
||||||
(void)op->o_callback->sc_cleanup( op, rs );
|
(void)op->o_callback->sc_cleanup( op, rs );
|
||||||
|
if ( first && op->o_callback == NULL ) {
|
||||||
|
sc = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
first = 0;
|
||||||
|
}
|
||||||
|
|
||||||
op->o_callback = sc;
|
op->o_callback = sc;
|
||||||
}
|
}
|
||||||
@ -1433,6 +1453,7 @@ slap_send_search_reference( Operation *op, SlapReply *rs )
|
|||||||
|
|
||||||
rs->sr_type = REP_SEARCHREF;
|
rs->sr_type = REP_SEARCHREF;
|
||||||
if ( op->o_callback ) {
|
if ( op->o_callback ) {
|
||||||
|
int first;
|
||||||
slap_callback *sc = op->o_callback,
|
slap_callback *sc = op->o_callback,
|
||||||
*sc_next = op->o_callback;
|
*sc_next = op->o_callback;
|
||||||
|
|
||||||
@ -1441,8 +1462,12 @@ slap_send_search_reference( Operation *op, SlapReply *rs )
|
|||||||
sc_next = op->o_callback->sc_next;
|
sc_next = op->o_callback->sc_next;
|
||||||
if ( op->o_callback->sc_response ) {
|
if ( op->o_callback->sc_response ) {
|
||||||
rc = op->o_callback->sc_response( op, rs );
|
rc = op->o_callback->sc_response( op, rs );
|
||||||
|
if ( first && op->o_callback == NULL ) {
|
||||||
|
sc = NULL;
|
||||||
|
}
|
||||||
if ( rc != SLAP_CB_CONTINUE ) break;
|
if ( rc != SLAP_CB_CONTINUE ) break;
|
||||||
}
|
}
|
||||||
|
first = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
op->o_callback = sc;
|
op->o_callback = sc;
|
||||||
@ -1600,6 +1625,7 @@ slap_send_search_reference( Operation *op, SlapReply *rs )
|
|||||||
|
|
||||||
rel:
|
rel:
|
||||||
if ( op->o_callback ) {
|
if ( op->o_callback ) {
|
||||||
|
int first;
|
||||||
slap_callback *sc = op->o_callback,
|
slap_callback *sc = op->o_callback,
|
||||||
*sc_next = op->o_callback;
|
*sc_next = op->o_callback;
|
||||||
|
|
||||||
@ -1607,8 +1633,12 @@ rel:
|
|||||||
sc_next = op->o_callback->sc_next;
|
sc_next = op->o_callback->sc_next;
|
||||||
if ( op->o_callback->sc_cleanup ) {
|
if ( op->o_callback->sc_cleanup ) {
|
||||||
(void)op->o_callback->sc_cleanup( op, rs );
|
(void)op->o_callback->sc_cleanup( op, rs );
|
||||||
|
if ( first && op->o_callback == NULL ) {
|
||||||
|
sc = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
first = 0;
|
||||||
|
}
|
||||||
|
|
||||||
op->o_callback = sc;
|
op->o_callback = sc;
|
||||||
}
|
}
|
||||||
@ -1631,7 +1661,7 @@ str2result(
|
|||||||
*matched = NULL;
|
*matched = NULL;
|
||||||
*info = NULL;
|
*info = NULL;
|
||||||
|
|
||||||
if ( strncasecmp( s, "RESULT", 6 ) != 0 ) {
|
if ( strncasecmp( s, "RESULT", STRLENOF( "RESULT" ) ) != 0 ) {
|
||||||
#ifdef NEW_LOGGING
|
#ifdef NEW_LOGGING
|
||||||
LDAP_LOG( OPERATION, INFO,
|
LDAP_LOG( OPERATION, INFO,
|
||||||
"str2result: (%s), expecting \"RESULT\"\n", s, 0, 0 );
|
"str2result: (%s), expecting \"RESULT\"\n", s, 0, 0 );
|
||||||
@ -1653,15 +1683,15 @@ str2result(
|
|||||||
c++;
|
c++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( strncasecmp( s, "code", 4 ) == 0 ) {
|
if ( strncasecmp( s, "code", STRLENOF( "code" ) ) == 0 ) {
|
||||||
if ( c != NULL ) {
|
if ( c != NULL ) {
|
||||||
*code = atoi( c );
|
*code = atoi( c );
|
||||||
}
|
}
|
||||||
} else if ( strncasecmp( s, "matched", 7 ) == 0 ) {
|
} else if ( strncasecmp( s, "matched", STRLENOF( "matched" ) ) == 0 ) {
|
||||||
if ( c != NULL ) {
|
if ( c != NULL ) {
|
||||||
*matched = c;
|
*matched = c;
|
||||||
}
|
}
|
||||||
} else if ( strncasecmp( s, "info", 4 ) == 0 ) {
|
} else if ( strncasecmp( s, "info", STRLENOF( "info" ) ) == 0 ) {
|
||||||
if ( c != NULL ) {
|
if ( c != NULL ) {
|
||||||
*info = c;
|
*info = c;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user