Github user jeking3 commented on a diff in the pull request:
https://github.com/apache/thrift/pull/1476#discussion_r163663584
--- 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 --
Should SSL_pending be checked first for efficiency? First check the SSL
buffers, then if those are clear then check the socket.
---