diff options
author | Benoit Foucher <benoit@zeroc.com> | 2013-07-12 14:07:08 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2013-07-12 14:07:08 +0200 |
commit | e0064a1ce41067e40eb1495745e3499e836f1a61 (patch) | |
tree | ca41e7d77ff2da9d02775a4209c2e0009868053d /cpp/src/Ice/Network.cpp | |
parent | ICE-5377 - clang optimized build failure (diff) | |
download | ice-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.cpp | 18 |
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; } |