Mercurial > hg
changeset 2017:87049d55e34f
Fix /request time
/request time was still using Legacy Entity Time (XEP-90).
This patch makes mcabber use XEP-202 for queries; mcabber still
answers to both current and legacy queries.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sat, 28 Jul 2012 14:40:50 +0200 |
parents | e9b6e168a45e |
children | fe04f29f70e7 |
files | mcabber/mcabber/xmpp.c mcabber/mcabber/xmpp_iqrequest.c |
diffstat | 2 files changed, 11 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/mcabber/xmpp.c Wed Jul 18 00:24:13 2012 +0200 +++ b/mcabber/mcabber/xmpp.c Sat Jul 28 14:40:50 2012 +0200 @@ -242,7 +242,7 @@ xmlns = NS_VERSION; strreqtype = "version"; } else if (reqtype == iqreq_time) { - xmlns = NS_TIME; + xmlns = NS_XMPP_TIME; strreqtype = "time"; } else if (reqtype == iqreq_last) { xmlns = NS_LAST;
--- a/mcabber/mcabber/xmpp_iqrequest.c Wed Jul 18 00:24:13 2012 +0200 +++ b/mcabber/mcabber/xmpp_iqrequest.c Sat Jul 28 14:40:50 2012 +0200 @@ -54,12 +54,12 @@ const gchar *querytag; LmHandleMessageFunction handler; } iq_request_handlers[] = { - {NS_ROSTER, "query", &cb_roster}, - {NS_VERSION,"query", &cb_version}, - {NS_TIME, "query", &cb_time}, - {NS_LAST, "query", &cb_last}, - {NS_PING, "ping", &cb_ping}, - {NS_VCARD, "vCard", &cb_vcard}, + {NS_ROSTER, "query", &cb_roster}, + {NS_VERSION, "query", &cb_version}, + {NS_XMPP_TIME,"time", &cb_time}, + {NS_LAST, "query", &cb_last}, + {NS_PING, "ping", &cb_ping}, + {NS_VCARD, "vCard", &cb_vcard}, {NULL, NULL, NULL} }; @@ -146,7 +146,8 @@ iq = lm_message_new_with_sub_type(fulljid, LM_MESSAGE_TYPE_IQ, LM_MESSAGE_SUB_TYPE_GET); - for (i = 0; strcmp(iq_request_handlers[i].xmlns, xmlns) != 0 ; ++i) + for (i = 0; iq_request_handlers[i].xmlns && + strcmp(iq_request_handlers[i].xmlns, xmlns) != 0 ; ++i) ; query = lm_message_node_add_child(iq->node, iq_request_handlers[i].querytag, @@ -288,7 +289,7 @@ } // Check message contents - ansqry = lm_message_node_get_child(m->node, "query"); + ansqry = lm_message_node_get_child(m->node, "time"); if (!ansqry) { scr_LogPrint(LPRINT_LOGNORM, "Invalid IQ:time result from <%s>!", bjid); return LM_HANDLER_RESULT_REMOVE_MESSAGE; @@ -312,7 +313,7 @@ 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT, 0); g_free(buf); } - p = lm_message_node_get_child_value(ansqry, "tz"); + p = lm_message_node_get_child_value(ansqry, "tzo"); if (p && *p) { buf = g_strdup_printf("TZ: %s", p); scr_WriteIncomingMessage(bjid, buf,