diff options
author | Charles E. Rolke <chug@apache.org> | 2010-12-15 20:43:42 +0000 |
---|---|---|
committer | Charles E. Rolke <chug@apache.org> | 2010-12-15 20:43:42 +0000 |
commit | bf41dcba4ea632536ed743f980b4306830d8b2cf (patch) | |
tree | cb2c50616944d76c76731bec2befded54de765b3 /cpp/src | |
parent | 1b5657bd203c5ce4f6b0819c2b18447f4d0e9222 (diff) | |
download | qpid-python-bf41dcba4ea632536ed743f980b4306830d8b2cf.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/qpid@1049702 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpid/sys/windows/AsynchIO.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/cpp/src/qpid/sys/windows/AsynchIO.cpp b/cpp/src/qpid/sys/windows/AsynchIO.cpp index c55d34e875..38d8842521 100644 --- a/cpp/src/qpid/sys/windows/AsynchIO.cpp +++ b/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(); + } } } |