mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 00:29:35 -05: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
1 changed files with 10 additions and 4 deletions
|
|
@ -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 a new issue