Hello, This applies to internet connections with speeds of less than 0.75 Mb/s (usually found on dial-up and slow performance DSL connections). Wtih faster connections, no problems.
Using version 0.9.8k on the client (my OpenSSL code), and after all client and server handshaking has completed successfully, when uploading large data streams from the client to the server using SSL_Write, it will usually error out with "Connection Reset" from the server or a "sslv3 alert bad record mac" after calling SSL_read on the client after a successful call to SSL_Write. HTTP protocol is used so its always a request/response pair (request from the client, response from the server) and OpenSSL used in blocking mode (synchronous). A large data stream is a subjective thing, but I have found that 20K and above to be "large". The larger the data stream the greater the chance of the upload failing somewhere during the transfer. A one meg file will always fail. If I upload without SSL (using plain sockets on the client and server), no problems, no matter how big the stream. I know there are different socket options that can be set. I'm using 8192 for SO_SNDBUF and I'm also using 8192 as the third parameter to SSL_Write even if I had more then 8192 bytes in the data stream (it should loop calling SSL_Write until all bytes processed or fails with "Connection Reset"). Thanks, Jonathan Ott [email protected]
