On Sun, Apr 30, 2000 at 01:13:39PM -0700, Jeff Magnusson wrote:

[...]
> I made similar changes to my read function, but it's only getting a portion
> of the message still, after a successsful connect:
> 
> E_SSL_WRITEABLE and E_SSL_READABLE relate to WANTREAD and WANTWRITE,
> E_SSL_NOERROR is the NOERROR state, and
> E_SSL_ERROR is any other error condition.
> --- FUNC ---
>    while (((Error == E_SSL_READABLE) || (Error == E_SSL_WRITEABLE))
>            && (NumRead < MAX_LINE)) {
[...]
>       err = SSL_read(ssl, buffer, sizeof(buffer) - 1);
[...]
>       Error = CheckSSLError(err);
>    }
[...]
>    LogLine("Done read");

> And this spins a few times, then gets 3 (always) of the 11 chars sent and
> gets to "Done read":
> It should get "HELLO WORLD".

Do you send the data in multiple SSL_write calls?  It seems you do,
with only 3 bytes being written in the first call.  Then the first
record will contain only these 3 bytes, and SSL_read will result
in SSL_ERROR_NONE after the call that reads these three bytes.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to