From de133218dab0ac1729dbfc32177979133c15f53b Mon Sep 17 00:00:00 2001 From: fiaxh Date: Tue, 21 Nov 2017 23:27:27 +0100 Subject: Disconnect stanza listeners from pipeline --- xmpp-vala/src/module/xep/0313_message_archive_management.vala | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'xmpp-vala/src/module/xep/0313_message_archive_management.vala') diff --git a/xmpp-vala/src/module/xep/0313_message_archive_management.vala b/xmpp-vala/src/module/xep/0313_message_archive_management.vala index ac68e190..0e3ac0c7 100644 --- a/xmpp-vala/src/module/xep/0313_message_archive_management.vala +++ b/xmpp-vala/src/module/xep/0313_message_archive_management.vala @@ -14,6 +14,8 @@ public class Module : XmppStreamModule { public signal void feature_available(XmppStream stream); + private ReceivedPipelineListener received_pipeline_listener = new ReceivedPipelineListener(); + public void query_archive(XmppStream stream, string? jid, DateTime? start, DateTime? end) { if (stream.get_flag(Flag.IDENTITY) == null) return; @@ -42,11 +44,13 @@ public class Module : XmppStreamModule { } public override void attach(XmppStream stream) { - stream.get_module(Message.Module.IDENTITY).received_pipeline.connect(new ReceivedPipelineListener()); + stream.get_module(Message.Module.IDENTITY).received_pipeline.connect(received_pipeline_listener); stream.stream_negotiated.connect(query_availability); } - public override void detach(XmppStream stream) { } + public override void detach(XmppStream stream) { + stream.get_module(Message.Module.IDENTITY).received_pipeline.disconnect(received_pipeline_listener); + } public override string get_ns() { return NS_URI; } public override string get_id() { return IDENTITY.id; } -- cgit v1.2.3-54-g00ecf