|
Boost : |
From: Scott (cheesy4poofs_at_[hidden])
Date: 2006-09-05 16:48:03
I recently grabbed the latest ASIO out of the boost CVS in hopes of fixing
some SSL problems we were having in an example program I posted a while
back. The changes did indeed fix the problem I outlined in the example
program (thanks Chris!).
However, I'm still getting random lockups when I enable SSL. The problems
may very well stem from our code, but I've spent so much wasted time trying
to track it down I'm hoping someone might be able to shed some light on why
this happens.
I'm running on Windows XP Professional and compiling with MSVS 2003.
In almost all cases, our client will eventually get an asio::error returned
from the following call:
// _inboundHeader is an unsigned char array declared as member data of
// the Connection class and does get destroyed before the read is
// completed
asio::async_read(*_sslSocket, asio::buffer(_inboundHeader, sizeof
_inboundHeader),
boost::bind(&Connection::handleReadResHeader, this, _1, _2,
handler));
The asio::error object says "Access is denied".
I've tracked the error to ssl/detail/openssl_operation.hpp, line 171.
Snippet follows:
if (!is_operation_done && !is_read_needed && !is_write_needed
&& !is_shut_down_sent)
// The operation has failed... It is not completed and does
// not want network communication nor does want to send shutdown
out...
return handler_(boost::asio::error(error_code), rc);
error_code = 5 and rc = -1
Can anyone shed some light on what causes such a failure? Like I said, this
has been driving me batty for some time now. Any help would be greatly,
greatly appreciated! :)
Scott
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk