diff options
Diffstat (limited to 'xmpp-vala/src')
-rw-r--r-- | xmpp-vala/src/module/iq/stanza.vala | 1 | ||||
-rw-r--r-- | xmpp-vala/src/module/xep/0030_service_discovery/info_result.vala | 1 | ||||
-rw-r--r-- | xmpp-vala/src/module/xep/0199_ping.vala | 21 |
3 files changed, 12 insertions, 11 deletions
diff --git a/xmpp-vala/src/module/iq/stanza.vala b/xmpp-vala/src/module/iq/stanza.vala index 561c5866..8f114c9f 100644 --- a/xmpp-vala/src/module/iq/stanza.vala +++ b/xmpp-vala/src/module/iq/stanza.vala @@ -23,6 +23,7 @@ public class Stanza : Xmpp.Stanza { public Stanza.result(Stanza request, StanzaNode? stanza_node = null) { this(request.id); + this.to = request.from; this.type_ = TYPE_RESULT; if (stanza_node != null) { stanza.put_node(stanza_node); diff --git a/xmpp-vala/src/module/xep/0030_service_discovery/info_result.vala b/xmpp-vala/src/module/xep/0030_service_discovery/info_result.vala index 4ae917dc..ca0fba5b 100644 --- a/xmpp-vala/src/module/xep/0030_service_discovery/info_result.vala +++ b/xmpp-vala/src/module/xep/0030_service_discovery/info_result.vala @@ -41,7 +41,6 @@ public class InfoResult { public InfoResult(Iq.Stanza iq_request) { iq = new Iq.Stanza.result(iq_request); - iq.to = iq_request.from; iq.stanza.put_node(new StanzaNode.build("query", NS_URI_INFO).add_self_xmlns()); } diff --git a/xmpp-vala/src/module/xep/0199_ping.vala b/xmpp-vala/src/module/xep/0199_ping.vala index 4902b0c7..ac467b35 100644 --- a/xmpp-vala/src/module/xep/0199_ping.vala +++ b/xmpp-vala/src/module/xep/0199_ping.vala @@ -5,7 +5,7 @@ using Xmpp.Core; namespace Xmpp.Xep.Ping { private const string NS_URI = "urn:xmpp:ping"; - public class Module : XmppStreamModule { + public class Module : XmppStreamModule, Iq.Handler { public static ModuleIdentity<Module> IDENTITY = new ModuleIdentity<Module>(NS_URI, "0199_ping"); public delegate void OnResult(XmppStream stream); @@ -18,19 +18,20 @@ namespace Xmpp.Xep.Ping { } public override void attach(XmppStream stream) { - stream.get_module(Iq.Module.IDENTITY).register_for_namespace(NS_URI, new IqHandlerImpl()); + stream.get_module(Iq.Module.IDENTITY).register_for_namespace(NS_URI, this); + stream.get_module(ServiceDiscovery.Module.IDENTITY).add_feature(stream, NS_URI); } - public override void detach(XmppStream stream) { } + public override void detach(XmppStream stream) { + stream.get_module(Iq.Module.IDENTITY).unregister_from_namespace(NS_URI, this); + } + + public void on_iq_get(XmppStream stream, Iq.Stanza iq) { + stream.get_module(Iq.Module.IDENTITY).send_iq(stream, new Iq.Stanza.result(iq)); + } + public void on_iq_set(XmppStream stream, Iq.Stanza iq) { } public override string get_ns() { return NS_URI; } public override string get_id() { return IDENTITY.id; } - - private class IqHandlerImpl : Iq.Handler, Object { - public void on_iq_get(XmppStream stream, Iq.Stanza iq) { - stream.get_module(Iq.Module.IDENTITY).send_iq(stream, new Iq.Stanza.result(iq)); - } - public void on_iq_set(XmppStream stream, Iq.Stanza iq) { } - } } } |