John Gardiner Myers via RT wrote:

>> However my point of view is:
>>
>> Actually there is.  It is important for OpenSSL to convey back to the
>> application when it has successfully carried out all the following tasks:
>>     * to encode SSL control packet (with the way OpenSSL is imlemented
>> this actually means to have flushed all outstanding application payload
>> data down)
>>     * to enqueue SSL control packet
>>     * to push SSL control packet into BIO / kernel layers
>> In reference to the data that makes up the SSL control packet indicating
>> end-of-encrypted-stream.  Any one of these operations might fail due to
>> network conditions.
>>
>> Knowing this state has occurred is important if you want to call TCP
>> shutdown(fd, SHUT_WR) on the underlying socket.  Which is a TCP level
>> end-of-write-stream indicator.
>
> The current documentation does not permit the caller to infer that it is
> safe to do a TCP shutdown(SHUT_WR) from a 0 return value. Neither does
> the implementation--it will return a 0 before the output BIO has been
> completely flushed.

You are correct on the documentation, the only issue there is that it 
has not been updated since it took some years to get the patch to 
support -1/WANT_WRITE and -1/WANT_READ into the main tree.  But non the 
less the documentation can be updated to explain this subtle point.


With regards to the "Neither does the implementation" - Show me your 
test case proving this claim as I have a testcase that proves it has 
worked in at least the usage case tested in the matter I described.  If 
you search this mailing list you should find a version of it posted in 
the past.

If you are found to be correct then this would be a bug from my 
point-of-view in that it should be maintaining a -1/WANT_WRITE 
soft-error state everytime SSL_shutdown() is called while the BIO can 
not be successfully flushed (due to IO blockage on the write side).


As for your other comments I have not responded as the most important 
thing you can do now is prove your claim so the bug can be understood 
and fixed.


Thanks

Darryl


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to