diff options
-rw-r--r-- | extra/yassl/src/ssl.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/extra/yassl/src/ssl.cpp b/extra/yassl/src/ssl.cpp index d37c44049b2..8cea205377e 100644 --- a/extra/yassl/src/ssl.cpp +++ b/extra/yassl/src/ssl.cpp @@ -171,13 +171,25 @@ int SSL_accept(SSL* ssl) sendServerHelloDone(*ssl); ssl->flushBuffer(); - processReply(*ssl); + // Java Client sends fragmented response + while (ssl->getStates().getServer() < + clientFinishedComplete) { + if (ssl->GetError()) break; + processReply(*ssl); + } } sendChangeCipher(*ssl); sendFinished(*ssl, server_end); ssl->flushBuffer(); - if (ssl->getSecurity().get_resuming()) - processReply(*ssl); + if (ssl->getSecurity().get_resuming()) { + + // Java Client sends fragmented response + while (ssl->getStates().getServer() < + clientFinishedComplete) { + if (ssl->GetError()) break; + processReply(*ssl); + } + } ssl->useLog().ShowTCP(ssl->getSocket().get_fd()); |