David Schwartz wrote:
David Schwartz wrote:
I hate to be rude, but do you understand *anything* about programming to
standards? The 'select' and 'read' functions are standardized, as is
blocking and non-blocking I/O. You have the guarantees specifically
enumerated in the standard and cannot assume things not assured because
future implementations might violate those assumptions.
I've explained why the standards you quite are written in the way they
are in another thread.
The standards have to speak in terms of the entire scope of the subject.
The subject is the select() system all. So the select() standards have
to take into account other file descriptor contexts that are not socket
related and still be factually correct. This is why terms readable and
writable are used. You then have to relate that to a socket file
descriptor.
Find me some coded proof or write a program to demonstrate the behavior
you believe in.
For the love of god, this whole thread started because of a program that
demonstrated the behavior I "believe in". Actual programs have broken
because of corner cases.
Again this is an incorrect belief of yours. But I can understand your
point of view building another incorrect belief on top of another one is
just human nature so we'll let you off.
Your miss-understand there is that you think that SSL layer API blocking
concept is interchangable with socket layer blocking concept. They are not.
But virute of that the SSL layer is.
Your incorrect belief are:
* How application/kernel interacts with socket file descirptors when
using select/poll/read/write.
* That OpenSSL already implements a compatible/interchangable event
model in relation to the above.
A SSL_read() may infact issue a write() system call. Trying to tar the
whole situation with the same brush is an incorrect belief. The SSL is
another layer with its own wants and wishes, it does not conform to a
simple data transform that can be driven by IO in one direction.
Blocking mode of the higher level API calls is not interchangable with
the blocking mode of the lower level system calls. But if you execute
one system call per SSL level call they _DO_ become interchargable and
transparent.
At the moment they are not transparent.
Darryl
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager [EMAIL PROTECTED]