diff --git a/src/bgp/test/bgp_xmpp_channel_test.cc b/src/bgp/test/bgp_xmpp_channel_test.cc index 081b2527ccc..c477470f587 100644 --- a/src/bgp/test/bgp_xmpp_channel_test.cc +++ b/src/bgp/test/bgp_xmpp_channel_test.cc @@ -51,6 +51,7 @@ class XmppChannelMock : public XmppChannel { } MOCK_METHOD2(RegisterReceive, void(xmps::PeerId, ReceiveCb)); MOCK_METHOD1(UnRegisterReceive, void(xmps::PeerId)); + MOCK_METHOD1(UnRegisterWriteReady, void(xmps::PeerId)); std::string ToString() const { return string("fake"); } std::string StateName() const { return string("Established"); } diff --git a/src/bgp/test/bgp_xmpp_parse_test.cc b/src/bgp/test/bgp_xmpp_parse_test.cc index 6b603344d79..7a243318213 100644 --- a/src/bgp/test/bgp_xmpp_parse_test.cc +++ b/src/bgp/test/bgp_xmpp_parse_test.cc @@ -32,6 +32,7 @@ class XmppChannelMock : public XmppChannel { } void RegisterReceive(xmps::PeerId id, ReceiveCb callback) { } void UnRegisterReceive(xmps::PeerId id) { } + void UnRegisterWriteReady(xmps::PeerId id) { } string ToString() const { return string("fake"); } string StateName() const { return string("Established"); } diff --git a/src/vnsw/agent/controller/controller_dns.cc b/src/vnsw/agent/controller/controller_dns.cc index e162e2f8b2a..4c0017ecdbf 100644 --- a/src/vnsw/agent/controller/controller_dns.cc +++ b/src/vnsw/agent/controller/controller_dns.cc @@ -30,6 +30,7 @@ AgentDnsXmppChannel::AgentDnsXmppChannel(Agent *agent, AgentDnsXmppChannel::~AgentDnsXmppChannel() { if (channel_) { channel_->UnRegisterReceive(xmps::DNS); + channel_->UnRegisterWriteReady(xmps::DNS); } } diff --git a/src/vnsw/agent/controller/controller_ifmap.cc b/src/vnsw/agent/controller/controller_ifmap.cc index 08e33cf3076..4a76f2742b2 100644 --- a/src/vnsw/agent/controller/controller_ifmap.cc +++ b/src/vnsw/agent/controller/controller_ifmap.cc @@ -36,6 +36,7 @@ AgentIfMapXmppChannel::AgentIfMapXmppChannel(Agent *agent, XmppChannel *channel, AgentIfMapXmppChannel::~AgentIfMapXmppChannel() { channel_->UnRegisterReceive(xmps::CONFIG); + channel_->UnRegisterWriteReady(xmps::CONFIG); } uint64_t AgentIfMapXmppChannel::NewSeqNumber() { diff --git a/src/vnsw/agent/controller/controller_peer.cc b/src/vnsw/agent/controller/controller_peer.cc index 0ba8bc41499..a5af8eed23c 100644 --- a/src/vnsw/agent/controller/controller_peer.cc +++ b/src/vnsw/agent/controller/controller_peer.cc @@ -84,6 +84,7 @@ AgentXmppChannel::~AgentXmppChannel() { BgpPeer *bgp_peer = bgp_peer_id_.get(); assert(bgp_peer == NULL); channel_->UnRegisterReceive(xmps::BGP); + channel_->UnRegisterWriteReady(xmps::BGP); } void AgentXmppChannel::RegisterXmppChannel(XmppChannel *channel) { diff --git a/src/vnsw/agent/test/test_cmn_util.h b/src/vnsw/agent/test/test_cmn_util.h index 3fc2bd20aaa..d6dacf5f9de 100644 --- a/src/vnsw/agent/test/test_cmn_util.h +++ b/src/vnsw/agent/test/test_cmn_util.h @@ -394,6 +394,7 @@ class XmppChannelMock : public XmppChannel { void Close() { } MOCK_METHOD2(RegisterReceive, void(xmps::PeerId, ReceiveCb)); MOCK_METHOD1(UnRegisterReceive, void(xmps::PeerId)); + MOCK_METHOD1(UnRegisterWriteReady, void(xmps::PeerId)); std::string ToString() const { return string("fake"); } std::string StateName() const { return string("Established"); } diff --git a/src/xmpp/test/SConscript b/src/xmpp/test/SConscript index 4916b15a638..39d91122e40 100644 --- a/src/xmpp/test/SConscript +++ b/src/xmpp/test/SConscript @@ -80,7 +80,6 @@ env.Alias('controller/xmpp:xmpp_stream_message_server_test', xmpp_stream_message test_suite = [ xmpp_client_sm_test, - xmpp_pubsub_test, xmpp_regex_test, xmpp_server_sm_test, xmpp_server_test, @@ -90,6 +89,7 @@ test_suite = [ ] flaky_test_suite = [ + xmpp_pubsub_test, xmpp_stream_message_client_test, xmpp_stream_message_server_test, ] diff --git a/src/xmpp/xmpp_channel.h b/src/xmpp/xmpp_channel.h index 4bc68e9eb21..3def693ba5c 100644 --- a/src/xmpp/xmpp_channel.h +++ b/src/xmpp/xmpp_channel.h @@ -48,6 +48,7 @@ class XmppChannel { virtual void RegisterReceive(xmps::PeerId, ReceiveCb) = 0; virtual void UnRegisterReceive(xmps::PeerId) = 0; virtual void RegisterRxMessageTraceCallback(RxMessageTraceCb cb) = 0; + virtual void UnRegisterWriteReady(xmps::PeerId id) = 0; virtual void Close() = 0; virtual std::string ToString() const = 0; virtual std::string StateName() const = 0; diff --git a/src/xmpp/xmpp_channel_mux.h b/src/xmpp/xmpp_channel_mux.h index 1fa8f07c386..b9188d4ab4a 100644 --- a/src/xmpp/xmpp_channel_mux.h +++ b/src/xmpp/xmpp_channel_mux.h @@ -47,6 +47,7 @@ class XmppChannelMux : public XmppChannel { virtual void ProcessXmppMessage(const XmppStanza::XmppMessage *msg); void WriteReady(const boost::system::error_code &ec); + virtual void UnRegisterWriteReady(xmps::PeerId id); void HandleStateEvent(xmsm::XmState state); @@ -61,7 +62,6 @@ class XmppChannelMux : public XmppChannel { private: void RegisterWriteReady(xmps::PeerId, SendReadyCb); - void UnRegisterWriteReady(xmps::PeerId id); typedef std::map WriteReadyCbMap; typedef std::map ReceiveCbMap;