Fix spurious SSL errors

fixes #6981
This commit is contained in:
Gunnar Beutner 2014-09-05 08:19:47 +02:00
parent 473717d5d9
commit 9133c01f00
2 changed files with 11 additions and 0 deletions

View File

@ -98,6 +98,8 @@ void TlsStream::Handshake(void)
std::ostringstream msgbuf;
char errbuf[120];
boost::mutex::scoped_lock alock(m_IOActionLock);
for (;;) {
int rc, err;
@ -145,6 +147,10 @@ size_t TlsStream::Read(void *buffer, size_t count)
std::ostringstream msgbuf;
char errbuf[120];
m_Socket->Poll(true, false);
boost::mutex::scoped_lock alock(m_IOActionLock);
while (left > 0) {
int rc, err;
@ -193,6 +199,10 @@ void TlsStream::Write(const void *buffer, size_t count)
std::ostringstream msgbuf;
char errbuf[120];
m_Socket->Poll(false, true);
boost::mutex::scoped_lock alock(m_IOActionLock);
while (left > 0) {
int rc, err;

View File

@ -55,6 +55,7 @@ public:
private:
shared_ptr<SSL> m_SSL;
mutable boost::mutex m_SSLLock;
mutable boost::mutex m_IOActionLock;
BIO *m_BIO;
Socket::Ptr m_Socket;