Github user bgedik commented on a diff in the pull request:
https://github.com/apache/thrift/pull/1476#discussion_r163679874
--- Diff: lib/cpp/src/thrift/transport/TSSLSocket.cpp ---
@@ -249,6 +249,17 @@ TSSLSocket::~TSSLSocket() {
close();
}
+bool TSSLSocket::hasPendingDataToRead() {
+ if (!isOpen()) {
+ return false;
+ }
+ initializeHandshake();
+ if (!checkHandshake())
+ throw TSSLException("SSL_peek: Handshake is not completed");
+ // data may be available in SSL buffers (note: SSL_pending does not have
a failure mode)
+ return TSocket::hasPendingDataToRead() || SSL_pending(ssl_) > 0;
--- End diff --
Right. Nice catch.
---