Skip to content
Snippets Groups Projects
Commit 14363543 authored by Howard Chu's avatar Howard Chu
Browse files

ITS#3549 don't queue Unbind requests

parent d77bf49c
No related branches found
No related tags found
No related merge requests found
......@@ -1474,16 +1474,32 @@ connection_input(
* already pending ops, let them go first. Abandon operations
* get exceptions to some, but not all, cases.
*/
if (tag != LDAP_REQ_ABANDON && conn->c_conn_state == SLAP_C_CLOSING) {
defer = "closing";
} else if (tag != LDAP_REQ_ABANDON && conn->c_writewaiter) {
defer = "awaiting write";
} else if (conn->c_n_ops_executing >= connection_pool_max/2) {
defer = "too many executing";
} else if (conn->c_conn_state == SLAP_C_BINDING) {
defer = "binding";
} else if (tag != LDAP_REQ_ABANDON && conn->c_n_ops_pending) {
defer = "pending operations";
switch( tag ){
default:
/* Abandon and Unbind are exempt from these checks */
if (conn->c_conn_state == SLAP_C_CLOSING) {
defer = "closing";
break;
} else if (conn->c_writewaiter) {
defer = "awaiting write";
break;
} else if (conn->c_n_ops_pending) {
defer = "pending operations";
break;
}
/* FALLTHRU */
case LDAP_REQ_ABANDON:
/* Unbind is exempt from these checks */
if (conn->c_n_ops_executing >= connection_pool_max/2) {
defer = "too many executing";
break;
} else if (conn->c_conn_state == SLAP_C_BINDING) {
defer = "binding";
break;
}
/* FALLTHRU */
case LDAP_REQ_UNBIND:
break;
}
if( defer ) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment