diff options
Diffstat (limited to 'cpp')
| -rw-r--r-- | cpp/src/qpid/broker/Connection.cpp | 3 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/Connection.h | 6 | ||||
| -rw-r--r-- | cpp/src/qpid/cluster/Connection.cpp | 1 |
3 files changed, 9 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/Connection.cpp b/cpp/src/qpid/broker/Connection.cpp index c21fd49171..8575381453 100644 --- a/cpp/src/qpid/broker/Connection.cpp +++ b/cpp/src/qpid/broker/Connection.cpp @@ -58,7 +58,8 @@ Connection::Connection(ConnectionOutputHandler* out_, Broker& broker_, const std links(broker_.getLinks()), agent(0), timer(broker_.getTimer()), - errorListener(0) + errorListener(0), + shadow(false) { Manageable* parent = broker.GetVhostObject(); diff --git a/cpp/src/qpid/broker/Connection.h b/cpp/src/qpid/broker/Connection.h index df2c36c92e..8040d74a75 100644 --- a/cpp/src/qpid/broker/Connection.h +++ b/cpp/src/qpid/broker/Connection.h @@ -129,6 +129,11 @@ class Connection : public sys::ConnectionInputHandler, void sendClose(); void setSecureConnection(SecureConnection* secured); + /** True if this is a shadow connection in a cluster. */ + bool isShadow() { return shadow; } + /** Called by cluster to mark shadow connections */ + void setShadow() { shadow = true; } + private: typedef boost::ptr_map<framing::ChannelId, SessionHandler> ChannelMap; typedef std::vector<Queue::shared_ptr>::iterator queue_iterator; @@ -147,6 +152,7 @@ class Connection : public sys::ConnectionInputHandler, boost::intrusive_ptr<TimerTask> heartbeatTimer; boost::intrusive_ptr<TimerTask> timeoutTimer; ErrorListener* errorListener; + bool shadow; public: qmf::org::apache::qpid::broker::Connection* getMgmtObject() { return mgmtObject; } diff --git a/cpp/src/qpid/cluster/Connection.cpp b/cpp/src/qpid/cluster/Connection.cpp index be6281b4e3..afecbd50e5 100644 --- a/cpp/src/qpid/cluster/Connection.cpp +++ b/cpp/src/qpid/cluster/Connection.cpp @@ -94,6 +94,7 @@ void Connection::init() { else { // Shadow or catch-up connection connection.setClusterOrderOutput(nullFrameHandler); // Passive, discard cluster-order frames connection.setClientThrottling(false); // Disable client throttling, done by active node. + connection.setShadow(); // Mark the broker connection as a shadow. } if (!isCatchUp()) connection.setErrorListener(this); |
