summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/qpid/broker/Connection.cpp3
-rw-r--r--cpp/src/qpid/broker/Connection.h6
-rw-r--r--cpp/src/qpid/cluster/Connection.cpp1
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);