summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Network.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2013-07-12 14:07:08 +0200
committerBenoit Foucher <benoit@zeroc.com>2013-07-12 14:07:08 +0200
commite0064a1ce41067e40eb1495745e3499e836f1a61 (patch)
treeca41e7d77ff2da9d02775a4209c2e0009868053d /cpp/src/Ice/Network.cpp
parentICE-5377 - clang optimized build failure (diff)
downloadice-e0064a1ce41067e40eb1495745e3499e836f1a61.tar.bz2
ice-e0064a1ce41067e40eb1495745e3499e836f1a61.tar.xz
ice-e0064a1ce41067e40eb1495745e3499e836f1a61.zip
Fix to allow transceivers to read more data than requested.
Diffstat (limited to 'cpp/src/Ice/Network.cpp')
-rw-r--r--cpp/src/Ice/Network.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp
index fb4189d7e6e..7e76a350862 100644
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -543,6 +543,24 @@ IceInternal::AsyncInfo::AsyncInfo(SocketOperation s)
ZeroMemory(this, sizeof(AsyncInfo));
status = s;
}
+
+void
+IceInternal::NativeInfo::initialize(HANDLE handle, ULONG_PTR key)
+{
+ _handle = handle;
+ _key = key;
+}
+
+void
+IceInternal::NativeInfo::completed(SocketOperation operation)
+{
+ if(!PostQueuedCompletionStatus(_handle, 0, _key, getAsyncInfo(operation)))
+ {
+ Ice::SocketException ex(__FILE__, __LINE__);
+ ex.error = GetLastError();
+ throw ex;
+ }
+}
#endif
IceUtil::Shared* IceInternal::upCast(NetworkProxy* p) { return p; }