Author: astitcher
Date: Mon Jun  8 16:43:28 2009
New Revision: 782696

URL: http://svn.apache.org/viewvc?rev=782696&view=rev
Log:
Fix of the previous client heartbeat changes:
- Changes to the cluster code were previously missed
- It's neater and more correct to reset the traffic
  timeout for all connection traffic, not just traffic
  in a session

Modified:
    qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp
    qpid/trunk/qpid/cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h
    qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp
    qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp?rev=782696&r1=782695&r2=782696&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp Mon Jun  8 16:43:28 2009
@@ -103,6 +103,9 @@
 }
 
 void Connection::received(framing::AMQFrame& frame) {
+    // Received frame on connection so delay timeout
+    restartTimeout();
+
     if (frame.getChannel() == 0 && frame.getMethod()) {
         adapter.handle(frame);
     } else {

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp?rev=782696&r1=782695&r2=782696&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp Mon Jun  8 
16:43:28 2009
@@ -63,9 +63,6 @@
 
 void ConnectionHandler::handle(framing::AMQFrame& frame)
 {
-    // Received frame on connection so delay timeout
-    handler->connection.restartTimeout();
-
     AMQMethodBody* method=frame.getBody()->getMethod();
     Connection::ErrorListener* errorListener = 
handler->connection.getErrorListener();
     try{

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h?rev=782696&r1=782695&r2=782696&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h 
(original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h Mon Jun  
8 16:43:28 2009
@@ -37,6 +37,7 @@
   public:
     virtual void send(framing::AMQFrame&) {}
     virtual void close() {}
+    virtual void abort() {}
     virtual void activateOutput() {}
     virtual void giveReadCredit(int32_t) {}
 };

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp?rev=782696&r1=782695&r2=782696&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp Mon Jun  8 
16:43:28 2009
@@ -64,6 +64,11 @@
         sendDoOutput(sendMax);
 }
 
+void OutputInterceptor::abort() {
+    sys::Mutex::ScopedLock l(lock);
+    next->abort();
+}
+
 void OutputInterceptor::giveReadCredit(int32_t credit) {
     sys::Mutex::ScopedLock l(lock);
     next->giveReadCredit(credit);

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h?rev=782696&r1=782695&r2=782696&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h Mon Jun  8 
16:43:28 2009
@@ -43,6 +43,7 @@
 
     // sys::ConnectionOutputHandler functions
     void send(framing::AMQFrame& f);
+    void abort();
     void activateOutput();
     void giveReadCredit(int32_t);
     void close();



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to