# HG changeset patch # User misc@mandriva.org # Date 1170523915 -3600 # Node ID 995dde656033fe931b9529530aedc9b884d28f7b # Parent 9dd28a56128f82b2717f183e7ec88e65d9b9c5ff Response to XMPP Ping (XEP-0199) diff -r 9dd28a56128f -r 995dde656033 mcabber/libjabber/jabber.h --- a/mcabber/libjabber/jabber.h Sat Feb 03 18:06:34 2007 +0100 +++ b/mcabber/libjabber/jabber.h Sat Feb 03 18:31:55 2007 +0100 @@ -291,6 +291,8 @@ #define NS_XMPP_TLS "urn:ietf:params:xml:ns:xmpp-tls" #define NS_XMPP_STREAMS "urn:ietf:params:xml:ns:xmpp-streams" +#define NS_PING "urn:xmpp:ping" + #define NS_JABBERD_STOREDPRESENCE "http://jabberd.org/ns/storedpresence" #define NS_JABBERD_HISTORY "http://jabberd.org/ns/history" diff -r 9dd28a56128f -r 995dde656033 mcabber/src/jab_iq.c --- a/mcabber/src/jab_iq.c Sat Feb 03 18:06:34 2007 +0100 +++ b/mcabber/src/jab_iq.c Sat Feb 03 18:31:55 2007 +0100 @@ -820,7 +820,17 @@ "var", NS_TIME); xmlnode_put_attrib(xmlnode_insert_tag(myquery, "feature"), "var", NS_VERSION); + xmlnode_put_attrib(xmlnode_insert_tag(myquery, "feature"), + "var", NS_PING); + jab_send(jc, x); + xmlnode_free(x); +} +static void handle_iq_ping(jconn conn, char *from, const char *id, + xmlnode xmldata) +{ + xmlnode x; + x = jutil_iqresult(xmldata); jab_send(jc, x); xmlnode_free(x); } @@ -918,6 +928,13 @@ return; } + x = xmlnode_get_tag(xmldata, "ping"); + ns = xmlnode_get_attrib(x, "xmlns"); + if (ns && !strcmp(ns, NS_PING)) { + handle_iq_ping(conn, from, id, xmldata); + return; + } + x = xmlnode_get_tag(xmldata, "query"); ns = xmlnode_get_attrib(x, "xmlns"); if (ns && !strcmp(ns, NS_DISCO_INFO)) {