summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2014-12-17 10:11:04 +0100
committerJose <jose@zeroc.com>2014-12-17 10:11:04 +0100
commitd63d6045ee2ea34dc26aabc0a4f9d9753b864fb5 (patch)
tree67039fd55d7db5a0ba09a8dabce5f6802e238018 /cpp/src
parentRestore some timeout erroneously changed (diff)
downloadice-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.cpp15
-rw-r--r--cpp/src/Ice/winrt/StreamEndpointI.h1
-rw-r--r--cpp/src/Ice/winrt/StreamTransceiver.cpp5
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();
}