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]

Reply via email to