summaryrefslogtreecommitdiff
path: root/cpp/src/IceSSL/SecureTransportTransceiverI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2019-01-28 17:32:46 +0100
committerBenoit Foucher <benoit@zeroc.com>2019-01-28 17:43:31 +0100
commitdbd205f95d185c3f5c8096bc0ae4f4b93c30dfc9 (patch)
treedc54ea7e9e2fd221e60061e4d2fcde183b8b4b35 /cpp/src/IceSSL/SecureTransportTransceiverI.cpp
parentSupport icessl openssl with Visual Studio 2017 (diff)
downloadice-dbd205f95d185c3f5c8096bc0ae4f4b93c30dfc9.tar.bz2
ice-dbd205f95d185c3f5c8096bc0ae4f4b93c30dfc9.tar.xz
ice-dbd205f95d185c3f5c8096bc0ae4f4b93c30dfc9.zip
Better SSL support for underlying transports that don't provide a socket file descriptor
Diffstat (limited to 'cpp/src/IceSSL/SecureTransportTransceiverI.cpp')
-rw-r--r--cpp/src/IceSSL/SecureTransportTransceiverI.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/cpp/src/IceSSL/SecureTransportTransceiverI.cpp b/cpp/src/IceSSL/SecureTransportTransceiverI.cpp
index cc168b0ab94..739e218a91a 100644
--- a/cpp/src/IceSSL/SecureTransportTransceiverI.cpp
+++ b/cpp/src/IceSSL/SecureTransportTransceiverI.cpp
@@ -210,8 +210,17 @@ IceSSL::SecureTransport::TransceiverI::initialize(IceInternal::Buffer& readBuffe
// Limit the size of packets passed to SSLWrite/SSLRead to avoid
// blocking and holding too much memory.
//
- _maxSendPacketSize = std::max(512, IceInternal::getSendBufferSize(_delegate->getNativeInfo()->fd()));
- _maxRecvPacketSize = std::max(512, IceInternal::getRecvBufferSize(_delegate->getNativeInfo()->fd()));
+ if(_delegate->getNativeInfo()->fd() != INVALID_SOCKET)
+ {
+ _maxSendPacketSize = std::max(512, IceInternal::getSendBufferSize(_delegate->getNativeInfo()->fd()));
+ _maxRecvPacketSize = std::max(512, IceInternal::getRecvBufferSize(_delegate->getNativeInfo()->fd()));
+ }
+ else
+ {
+ _maxSendPacketSize = 128 * 1024; // 128KB
+ _maxRecvPacketSize = 128 * 1024; // 128KB
+ }
+
OSStatus err = 0;
if(!_ssl)