Mercurial > hg
changeset 1134:995dde656033
Response to XMPP Ping (XEP-0199)
author | misc@mandriva.org |
---|---|
date | Sat, 03 Feb 2007 18:31:55 +0100 |
parents | 9dd28a56128f |
children | 5d7c05932b13 |
files | mcabber/libjabber/jabber.h mcabber/src/jab_iq.c |
diffstat | 2 files changed, 19 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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"
--- 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)) {