mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-26 09:39:45 -05:00
Fix large SASL reads. Use EAGAIN instead of EWOULDBLOCK (was right the
first time after all. see read(2) and write(2)...)
This commit is contained in:
parent
0cd3720e0d
commit
d11b134709
2 changed files with 4 additions and 4 deletions
|
|
@ -257,7 +257,7 @@ sb_sasl_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
|
|||
continue;
|
||||
#endif
|
||||
if ( ret <= 0 )
|
||||
return ret;
|
||||
return bufptr ? bufptr : ret;
|
||||
|
||||
p->sec_buf_in.buf_ptr += ret;
|
||||
}
|
||||
|
|
@ -287,7 +287,7 @@ sb_sasl_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
|
|||
continue;
|
||||
#endif
|
||||
if ( ret <= 0 )
|
||||
return ret;
|
||||
return bufptr ? bufptr : ret;
|
||||
|
||||
p->sec_buf_in.buf_ptr += ret;
|
||||
}
|
||||
|
|
@ -335,7 +335,7 @@ sb_sasl_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
|
|||
return ret;
|
||||
/* Still have something left?? */
|
||||
if ( p->buf_out.buf_ptr != p->buf_out.buf_end ) {
|
||||
errno = EWOULDBLOCK;
|
||||
errno = EAGAIN;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ ldap_int_flush_request(
|
|||
LDAPConn *lc = lr->lr_conn;
|
||||
|
||||
if ( ber_flush( lc->lconn_sb, lr->lr_ber, 0 ) != 0 ) {
|
||||
if ( errno == EWOULDBLOCK ) {
|
||||
if ( errno == EAGAIN ) {
|
||||
/* need to continue write later */
|
||||
lr->lr_status = LDAP_REQST_WRITING;
|
||||
ldap_mark_select_write( ld, lc->lconn_sb );
|
||||
|
|
|
|||
Loading…
Reference in a new issue