summaryrefslogtreecommitdiff
path: root/qpid/cpp
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2007-10-16 11:58:00 +0000
committerAndrew Stitcher <astitcher@apache.org>2007-10-16 11:58:00 +0000
commit5ae07a02807d97b259321e002060caa3cbe80054 (patch)
tree9ce2ef067dcd067471a47751b047c14677443a21 /qpid/cpp
parent967d5d0cd49313cc0476be0b15077736bc357811 (diff)
downloadqpid-python-5ae07a02807d97b259321e002060caa3cbe80054.tar.gz
Log a warning if we close a connection with unsent data
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@585127 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/src/qpid/sys/AsynchIO.h3
-rw-r--r--qpid/cpp/src/qpid/sys/AsynchIOAcceptor.cpp4
2 files changed, 6 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/sys/AsynchIO.h b/qpid/cpp/src/qpid/sys/AsynchIO.h
index ea2badf456..7cb56b30aa 100644
--- a/qpid/cpp/src/qpid/sys/AsynchIO.h
+++ b/qpid/cpp/src/qpid/sys/AsynchIO.h
@@ -106,9 +106,10 @@ public:
void start(Poller::shared_ptr poller);
void queueReadBuffer(BufferBase* buff);
- void queueWrite(BufferBase* buff = 0);
void unread(BufferBase* buff);
+ void queueWrite(BufferBase* buff = 0);
void queueWriteClose();
+ bool writeQueueEmpty() { return writeQueue.empty(); }
BufferBase* getQueuedBuffer();
const Socket& getSocket() const { return DispatchHandle::getSocket(); }
diff --git a/qpid/cpp/src/qpid/sys/AsynchIOAcceptor.cpp b/qpid/cpp/src/qpid/sys/AsynchIOAcceptor.cpp
index 78b156877a..6f5c85cfc2 100644
--- a/qpid/cpp/src/qpid/sys/AsynchIOAcceptor.cpp
+++ b/qpid/cpp/src/qpid/sys/AsynchIOAcceptor.cpp
@@ -246,6 +246,10 @@ void AsynchIOHandler::eof(AsynchIO&) {
}
void AsynchIOHandler::closedSocket(AsynchIO&, const Socket& s) {
+ // If we closed with data still to send log a warning
+ if (!aio->writeQueueEmpty()) {
+ QPID_LOG(warning, "CLOSING [" << aio->getSocket().getPeerAddress() << "] unsent data (probably due to client disconnect)");
+ }
delete &s;
aio->queueForDeletion();
delete this;