> Thanks Darryl for your help.
>
> I wrote that "when I send a new packet from the client I can read
> the missing
> packets, but not the new one" But in fact I can read the missing
> packets and a part of the second packets.
>
> Here is the trace. I send a trame of 10 bytes from the client, and the
> server read 5 bytes.

        Your problem is basically that you are waiting for network I/O when the
network I/O you are waiting for has already occured. Do not assume that
there will be no *decrypted* data unless you *know* there is no decrypted
data. That 'select' tells you there is no *encrypted* data (for SSL to
receive from the socket and decrypted) does not mean there is no *decrypted*
data (that has already been received and decrypted).

        You should, ideally, rely on no assumptions about how moving encrypted 
data
will affect the motion of decrypted data. In other words, you should *never*
assume that OpenSSL will not be able to give you more decrypted data from
the other side until it reads more encrypted data from the other side unless
OpenSSL specifically tells you that this is the case (through a WANT_READ
indication).

        This is what you are doing by waiting for 'select' to tell you there is
more *encrypted* data for SSL to read. It is wrong unless the last thing
OpenSSL told you was that SSL_read returned WANT_READ.

        DS


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

Reply via email to