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:
Howard Chu 2002-10-11 06:22:24 +00:00
parent 93046479ae
commit a9fed89e3f

View File

@ -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;