mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
get data if ready
This commit is contained in:
parent
99133f7944
commit
0fffad53c3
@ -1164,14 +1164,13 @@ int connection_read(ber_socket_t s)
|
|||||||
* to propagate to client. */
|
* to propagate to client. */
|
||||||
FD_ZERO(&rfd);
|
FD_ZERO(&rfd);
|
||||||
FD_SET(s, &rfd);
|
FD_SET(s, &rfd);
|
||||||
for (rc=1; rc>0;)
|
for (rc=1; rc>0;) {
|
||||||
{
|
|
||||||
tv.tv_sec = 1;
|
tv.tv_sec = 1;
|
||||||
tv.tv_usec = 0;
|
tv.tv_usec = 0;
|
||||||
rc = select(s+1, &rfd, NULL, NULL, &tv);
|
rc = select(s+1, &rfd, NULL, NULL, &tv);
|
||||||
if (rc == 1)
|
if (rc == 1) {
|
||||||
ber_sockbuf_ctrl( c->c_sb, LBER_SB_OPT_DRAIN,
|
ber_sockbuf_ctrl( c->c_sb, LBER_SB_OPT_DRAIN, NULL);
|
||||||
NULL);
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
connection_close( c );
|
connection_close( c );
|
||||||
@ -1206,9 +1205,15 @@ int connection_read(ber_socket_t s)
|
|||||||
slap_sasl_external( c, c->c_tls_ssf, authid.bv_val );
|
slap_sasl_external( c, c->c_tls_ssf, authid.bv_val );
|
||||||
if ( authid.bv_val ) free( authid.bv_val );
|
if ( authid.bv_val ) free( authid.bv_val );
|
||||||
}
|
}
|
||||||
connection_return( c );
|
|
||||||
ldap_pvt_thread_mutex_unlock( &connections_mutex );
|
/* if success and data is ready, fall thru to data input loop */
|
||||||
return 0;
|
if( rc != 0 ||
|
||||||
|
!ber_sockbuf_ctrl( c->c_sb, LBER_SB_OPT_DATA_READY, NULL ) )
|
||||||
|
{
|
||||||
|
connection_return( c );
|
||||||
|
ldap_pvt_thread_mutex_unlock( &connections_mutex );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user