]> git.sur5r.net Git - openldap/commitdiff
For prev commit, check for EINTR/EAGAIN/EWOULDBLOCK
authorHoward Chu <hyc@openldap.org>
Mon, 26 Oct 2009 23:52:55 +0000 (23:52 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 26 Oct 2009 23:52:55 +0000 (23:52 +0000)
libraries/libldap/sasl.c

index 268a94e3f6616ffab31dc0be18daec3cb8c8c355..43c7b5c7e43a8f4e2900489e21b90a6d91bd821d 100644 (file)
@@ -728,7 +728,7 @@ sb_sasl_generic_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
                /* error? */
                int err = sock_errno();
                /* caller can retry this */
-               if ( err == EAGAIN )
+               if ( err == EAGAIN || errno == EWOULDBLOCK || errno == EINTR )
                        p->flags |= LDAP_PVT_SASL_PARTIAL_WRITE;
                return ret;
        } else if ( p->buf_out.buf_ptr != p->buf_out.buf_end ) {