aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/module/xep/0313_message_archive_management.vala
diff options
context:
space:
mode:
Diffstat (limited to 'xmpp-vala/src/module/xep/0313_message_archive_management.vala')
-rw-r--r--xmpp-vala/src/module/xep/0313_message_archive_management.vala8
1 files changed, 6 insertions, 2 deletions
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; }