Hello,

> > It is very simple - if SSL_read() has to do other work than reading
> > application data records (encrypted user data) like renegotiation
> > it should return WANT_READ.
> 
>       An SSL_read on a blocking socket should block until data can be read, 
> just
> as a regular 'read' on a TCP connection does.

> > Than upper layer may retry SSL_read() after select().
> > For me this is SSL_read() problem and may be simply corrected.
> 
>       That makes no sense. Why should the upper layer retry when it already 
> asked
> for a blocking read?
This make sense and is used in SSL_read() know.
When you have blocking socket SSL_read() may return with indication
than is should be called again. This is clearly documented on
www.openssl.org and in source code. 
So this mechanism is used now end this in not true
that if you call SSL_read() on blocking socket it must return data
or critical error.

> > > >That 'read' blocks forever because there was
> > > > never any application-level data to read. Sorry, you're screwed.
> 
> > I do not agree. SSL_read() should be corrected.
> 
>       If you call SSL_read, an application-level read function, with a 
> blocking
> socket, you are asking it to block until it can read application-level data.
You are asking it - but (even now) you may get something else 
end this is no error.

Best regards,
-- 
Marek Marcola <[EMAIL PROTECTED]>

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to