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]

Reply via email to