Boost logo

Boost :

From: Christopher Kohlhoff (chris_at_[hidden])
Date: 2006-09-18 10:25:36


Hi Scott,

Scott <cheesy4poofs_at_[hidden]> wrote:
> When the error occurs, here's the values I'm seeing going from
> top to bottom:
>
> int rc = primitive_( session_ ); // -1
> int sys_error_code = (int)ERR_get_error(); // 0
> bool is_operation_done = (rc > 0); // false
> int error_code = !is_operation_done ? // 5
> bool is_read_needed = (error_code == SSL_ERROR_WANT_READ);
> // false
> bool is_write_needed = (error_code == SSL_ERROR_WANT_WRITE
> || // false
> bool is_shut_down_received = // false
> bool is_shut_down_sent = // false

OK, this is not quite what I expected :( I had a skim through
the openssl source but couldn't find why using the openssl API
in non-blocking mode should return SSL_ERROR_SYSCALL.

It's a bit hard to know where to go next without access to a
reproducible test case. You might try adding some debug tracing
that prints the amount of data that passed in and out of the
BIO_write and BIO_read calls to see if anything looks wrong.

Cheers,
Chris


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk