You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2010/04/16 20:16:30 UTC

svn commit: r935017 - in /qpid/trunk/qpid/cpp/src/qpid/client: TCPConnector.cpp TCPConnector.h

Author: gsim
Date: Fri Apr 16 18:16:30 2010
New Revision: 935017

URL: http://svn.apache.org/viewvc?rev=935017&view=rev
Log:
Ensure that ConnectionImpl is notified of shutdown even in the case of disconnect (which needs different handling than eof)

Modified:
    qpid/trunk/qpid/cpp/src/qpid/client/TCPConnector.cpp
    qpid/trunk/qpid/cpp/src/qpid/client/TCPConnector.h

Modified: qpid/trunk/qpid/cpp/src/qpid/client/TCPConnector.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/TCPConnector.cpp?rev=935017&r1=935016&r2=935017&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/TCPConnector.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/TCPConnector.cpp Fri Apr 16 18:16:30 2010
@@ -104,7 +104,7 @@ void TCPConnector::connected(const Socke
     aio = AsynchIO::create(socket,
                        boost::bind(&TCPConnector::readbuff, this, _1, _2),
                        boost::bind(&TCPConnector::eof, this, _1),
-                       boost::bind(&TCPConnector::eof, this, _1),
+                       boost::bind(&TCPConnector::disconnected, this, _1),
                        boost::bind(&TCPConnector::socketClosed, this, _1, _2),
                        0, // nobuffs
                        boost::bind(&TCPConnector::writebuff, this, _1));
@@ -313,6 +313,11 @@ void TCPConnector::eof(AsynchIO&) {
     close();
 }
 
+void TCPConnector::disconnected(AsynchIO&) {
+    close();
+    socketClosed(*aio, socket);
+}
+
 void TCPConnector::activateSecurityLayer(std::auto_ptr<qpid::sys::SecurityLayer> sl)
 {
     securityLayer = sl;

Modified: qpid/trunk/qpid/cpp/src/qpid/client/TCPConnector.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/TCPConnector.h?rev=935017&r1=935016&r2=935017&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/TCPConnector.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/TCPConnector.h Fri Apr 16 18:16:30 2010
@@ -104,6 +104,7 @@ protected:
     bool readbuff(qpid::sys::AsynchIO&, qpid::sys::AsynchIOBufferBase*);
     void writebuff(qpid::sys::AsynchIO&);
     void eof(qpid::sys::AsynchIO&);
+    void disconnected(qpid::sys::AsynchIO&);
     void socketClosed(qpid::sys::AsynchIO&, const qpid::sys::Socket&);
 
 public:



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org