diff options
author | Jose <jose@zeroc.com> | 2014-12-17 10:11:04 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2014-12-17 10:11:04 +0100 |
commit | d63d6045ee2ea34dc26aabc0a4f9d9753b864fb5 (patch) | |
tree | 67039fd55d7db5a0ba09a8dabce5f6802e238018 /cpp/src | |
parent | Restore some timeout erroneously changed (diff) | |
download | ice-d63d6045ee2ea34dc26aabc0a4f9d9753b864fb5.tar.bz2 ice-d63d6045ee2ea34dc26aabc0a4f9d9753b864fb5.tar.xz ice-d63d6045ee2ea34dc26aabc0a4f9d9753b864fb5.zip |
Fixed (ICE-6193) - wss failures with WinRT
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/winrt/StreamEndpointI.cpp | 15 | ||||
-rw-r--r-- | cpp/src/Ice/winrt/StreamEndpointI.h | 1 | ||||
-rw-r--r-- | cpp/src/Ice/winrt/StreamTransceiver.cpp | 5 |
3 files changed, 17 insertions, 4 deletions
diff --git a/cpp/src/Ice/winrt/StreamEndpointI.cpp b/cpp/src/Ice/winrt/StreamEndpointI.cpp index 0dfd7f1bba5..0ecb76ba4e1 100644 --- a/cpp/src/Ice/winrt/StreamEndpointI.cpp +++ b/cpp/src/Ice/winrt/StreamEndpointI.cpp @@ -52,7 +52,7 @@ public: virtual bool secure() const { - return _type == IceSSL::EndpointType; + return _type == IceSSL::EndpointType || _type == WSSEndpointType; } private: @@ -94,8 +94,10 @@ IceInternal::StreamEndpointI::getInfo() const switch(_instance->type()) { case TCPEndpointType: + case WSEndpointType return new InfoI<Ice::TCPEndpointInfo>(_instance->type(), _timeout, _compress, _host, _port); case IceSSL::EndpointType: + case WSSEndpointType: return new InfoI<IceSSL::EndpointInfo>(_instance->type(), _timeout, _compress, _host, _port); default: assert(false); @@ -163,7 +165,8 @@ IceInternal::StreamEndpointI::datagram() const bool IceInternal::StreamEndpointI::secure() const { - return _instance->type() == IceSSL::EndpointType; + return _instance->type() == IceSSL::EndpointType || + _instance->type() == WSSEndpointType; } TransceiverPtr @@ -304,6 +307,14 @@ IceInternal::StreamEndpointI::hashInit(Ice::Int& h) const } void +IceInternal::StreamEndpointI::fillEndpointInfo(IPEndpointInfo* info) const +{ + IPEndpointI::fillEndpointInfo(info); + info->timeout = _timeout; + info->compress = _compress; +} + +void IceInternal::StreamEndpointI::initWithOptions(vector<string>& args, bool oaEndpoint) { IPEndpointI::initWithOptions(args, oaEndpoint); diff --git a/cpp/src/Ice/winrt/StreamEndpointI.h b/cpp/src/Ice/winrt/StreamEndpointI.h index d3c4ce8480e..1f43b63f880 100644 --- a/cpp/src/Ice/winrt/StreamEndpointI.h +++ b/cpp/src/Ice/winrt/StreamEndpointI.h @@ -53,6 +53,7 @@ protected: virtual void streamWriteImpl(BasicStream*) const; virtual void hashInit(Ice::Int&) const; virtual void initWithOptions(std::vector<std::string>&, bool); + virtual void fillEndpointInfo(Ice::IPEndpointInfo*) const; virtual bool checkOption(const std::string&, const std::string&, const std::string&); virtual ConnectorPtr createConnector(const Address&, const NetworkProxyPtr&) const; diff --git a/cpp/src/Ice/winrt/StreamTransceiver.cpp b/cpp/src/Ice/winrt/StreamTransceiver.cpp index 013245b0094..fc44ce18488 100644 --- a/cpp/src/Ice/winrt/StreamTransceiver.cpp +++ b/cpp/src/Ice/winrt/StreamTransceiver.cpp @@ -135,7 +135,8 @@ IceInternal::StreamTransceiver::startWrite(Buffer& buf) IAsyncAction^ action = safe_cast<StreamSocket^>(_fd)->ConnectAsync( _connectAddr.host, _connectAddr.port, - _instance->type() == IceSSL::EndpointType ? + (_instance->type() == IceSSL::EndpointType || + _instance->type() == Ice::WSSEndpointType) ? // // SocketProtectionLevel::Tls12 is new in Windows 8.1 SDK // @@ -294,7 +295,7 @@ Ice::ConnectionInfoPtr IceInternal::StreamTransceiver::getInfo() const { Ice::IPConnectionInfoPtr info; - if(_instance->type() == IceSSL::EndpointType) + if(_instance->type() == IceSSL::EndpointType || _instance->type() == Ice::WSSEndpointType) { info = new IceSSL::ConnectionInfo(); } |