summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorCharles E. Rolke <chug@apache.org>2010-12-15 20:43:42 +0000
committerCharles E. Rolke <chug@apache.org>2010-12-15 20:43:42 +0000
commit88ee3a130c349d429b117beb6154e3ed81d06514 (patch)
tree49ac64c70ad9076b59051454d969e0cc739daa0d /qpid/cpp/src
parent8dedd7ad0825a716064767a5b19ad62fd780d0e2 (diff)
downloadqpid-python-88ee3a130c349d429b117beb6154e3ed81d06514.tar.gz
QPID-2967 Windows broker fails to destroy connections if client exits abruptly
In win::AsynchIOReadComplete(): If there is no data, always call notifyEof(). If status is nonZero then also call notifyDisconnect(). Reviewed by astitcher. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1049702 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/sys/windows/AsynchIO.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/qpid/cpp/src/qpid/sys/windows/AsynchIO.cpp b/qpid/cpp/src/qpid/sys/windows/AsynchIO.cpp
index c55d34e875..38d8842521 100644
--- a/qpid/cpp/src/qpid/sys/windows/AsynchIO.cpp
+++ b/qpid/cpp/src/qpid/sys/windows/AsynchIO.cpp
@@ -630,10 +630,11 @@ void AsynchIO::readComplete(AsynchReadResult *result) {
// No data read, so put the buffer back. It may be partially filled,
// so "unread" it back to the front of the queue.
unread(result->getBuff());
- if (status == 0)
- notifyEof();
- else
+ notifyEof();
+ if (status != 0)
+ {
notifyDisconnect();
+ }
}
}