From 9d8e1e88ec61403659a8cc410d5c4414e3bd3a96 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Tue, 26 Sep 2017 17:01:06 +0200 Subject: http-files: max-file-size handling --- xmpp-vala/src/core/xmpp_stream.vala | 2 +- xmpp-vala/src/module/iq/module.vala | 5 +++++ xmpp-vala/src/module/xep/0030_service_discovery/module.vala | 6 ++++-- 3 files changed, 10 insertions(+), 3 deletions(-) (limited to 'xmpp-vala') diff --git a/xmpp-vala/src/core/xmpp_stream.vala b/xmpp-vala/src/core/xmpp_stream.vala index 6bb66445..9d700b4d 100644 --- a/xmpp-vala/src/core/xmpp_stream.vala +++ b/xmpp-vala/src/core/xmpp_stream.vala @@ -149,7 +149,7 @@ public class XmppStream { return this; } - public void remove_modules() { + public void detach_modules() { foreach (XmppStreamModule module in modules) module.detach(this); } diff --git a/xmpp-vala/src/module/iq/module.vala b/xmpp-vala/src/module/iq/module.vala index 088519ff..c19cc2e5 100644 --- a/xmpp-vala/src/module/iq/module.vala +++ b/xmpp-vala/src/module/iq/module.vala @@ -30,6 +30,11 @@ namespace Xmpp.Iq { namespaceRegistrants[namespace].add(module); } + public void unregister_from_namespace(string namespace, Handler module) { + ArrayList? handlers = namespaceRegistrants[namespace]; + if (handlers != null) handlers.remove(module); + } + public override void attach(XmppStream stream) { stream.received_iq_stanza.connect(on_received_iq_stanza); } diff --git a/xmpp-vala/src/module/xep/0030_service_discovery/module.vala b/xmpp-vala/src/module/xep/0030_service_discovery/module.vala index 4d7a3245..011a1f36 100644 --- a/xmpp-vala/src/module/xep/0030_service_discovery/module.vala +++ b/xmpp-vala/src/module/xep/0030_service_discovery/module.vala @@ -71,12 +71,14 @@ public class Module : XmppStreamModule, Iq.Handler { public void on_iq_set(XmppStream stream, Iq.Stanza iq) { } public override void attach(XmppStream stream) { - stream.get_module(Iq.Module.IDENTITY).register_for_namespace(NS_URI_INFO, this); stream.add_flag(new Flag()); + stream.get_module(Iq.Module.IDENTITY).register_for_namespace(NS_URI_INFO, this); add_feature(stream, NS_URI_INFO); } - public override void detach(XmppStream stream) { } + public override void detach(XmppStream stream) { + stream.get_module(Iq.Module.IDENTITY).unregister_from_namespace(NS_URI_INFO, this); + } public static void require(XmppStream stream) { if (stream.get_module(IDENTITY) == null) stream.add_module(new ServiceDiscovery.Module()); -- cgit v1.2.3-54-g00ecf