On Sat, Oct 09, 1999 at 09:52:09PM -0500, Richard Wagner wrote:
> I compiled and ran demos/bio/sconnect.c. In this I found a problem
> with BIO_should_retry() [on Windows]
> for (;;)
> {
> i=BIO_write(out,&(p[off]),len);
> if (i <= 0)
> {
> if (BIO_should_retry(out))
> {
> fprintf(stderr,"write DELAY\n");
> sleep(1);
> continue;
> }
> else
> {
> goto err;
> }
> }
> off+=i;
> len-=i;
> if (len <= 0) break;
> }
> Under Win32 when BIO_write() is first called it returns -1 and the
> BIO_should_rety() returns 8. The next time it is called (after the 1
> second sleep) BIO_write() again returns -1 but this time
> BIO_should_retry() returns 0! It does this for a few seconds before
> starting to return 8 again. [...]
Can you look what's going on inside crypto/bio/bss_sock.c, function
BIO_sock_should_retry (which is queried by the function that BIO_write
ends up calling when that function decides whether to set the retry
flag)? There's some disabled code there; maybe switching it on again
helps here (which would mean that WSAGetLastError(), aka
get_last_socket_error(), returned 0 for that retry)?
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]