mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-24 13:24:56 +08:00
In sb_tls_bio_read/write, check for EAGAIN in addition to EWOULDBLOCK.
According to read(2)/write(2) EAGAIN is the only one we're interested in. Fixes HP-UX 11. http://www.openldap.org/lists/openldap-software/200105/msg00564.html
This commit is contained in:
parent
93046479ae
commit
a9fed89e3f
@ -645,8 +645,11 @@ sb_tls_bio_read( BIO *b, char *buf, int len )
|
||||
ret = LBER_SBIOD_READ_NEXT( p->sbiod, buf, len );
|
||||
|
||||
BIO_clear_retry_flags( b );
|
||||
if ( ret < 0 && errno == EWOULDBLOCK ) {
|
||||
BIO_set_retry_read( b );
|
||||
if ( ret < 0 ) {
|
||||
int err = errno;
|
||||
if ( err == EAGAIN || err == EWOULDBLOCK ) {
|
||||
BIO_set_retry_read( b );
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -669,8 +672,11 @@ sb_tls_bio_write( BIO *b, const char *buf, int len )
|
||||
ret = LBER_SBIOD_WRITE_NEXT( p->sbiod, (char *)buf, len );
|
||||
|
||||
BIO_clear_retry_flags( b );
|
||||
if ( ret < 0 && errno == EWOULDBLOCK ) {
|
||||
BIO_set_retry_write( b );
|
||||
if ( ret < 0 ) {
|
||||
int err = errno;
|
||||
if ( err == EAGAIN || err == EWOULDBLOCK ) {
|
||||
BIO_set_retry_write( b );
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user