![]() |
Boost : |
From: Scott (cheesy4poofs_at_[hidden])
Date: 2006-09-06 09:01:58
Hi Chris,
> The error is actually SSL_ERROR_SYSCALL (which is 5), and it's
> showing up as "access denied" because it's not getting mapped
> correctly. Can you try the changes to openssl_operation.hpp
> shown below and see what you get as the real error. Thanks.
>
> Cheers,
> Chris
>
[snip code]
I made the changes you requested and unfortunately things aren't any
clearer. What I'm seeing now is error_code == SSL_ERROR_SYSCALL. However,
the line I added above:
int sys_error_code = asio::detail::socket_ops::get_error();
sys_error_code == 0
Therefore, when the error happens, this return gets called
if (error_code == SSL_ERROR_SYSCALL)
return handler_(asio::error(sys_error_code), rc);
Which boils down to:
if (5 == SSL_ERROR_SYSCALL)
return handler_(asio::error(0), -1);
Since sys_error_code is zero, I no longer get an asio::error in my handler
and my code continues to try to read from the socket, which causes lockups
and assertion errors in my code.
I think I preferred the old way :). Are there any other changes you would
like me to try?
Thanks,
Scott
Boost list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk