Software /
code /
verse
Changeset
217:60db4e738910
plugins.roster: Check stream features for roster versioning support.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 08 Sep 2011 18:04:49 +0200 |
parents | 216:3aac084855e6 |
children | 218:39af184385cd |
files | plugins/roster.lua |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/roster.lua Thu Sep 08 18:03:07 2011 +0200 +++ b/plugins/roster.lua Thu Sep 08 18:04:49 2011 +0200 @@ -1,8 +1,10 @@ local xmlns_roster = "jabber:iq:roster"; +local xmlns_rosterver = "urn:xmpp:features:rosterver"; local bare_jid = require "util.jid".bare; local t_insert = table.insert; function verse.plugins.roster(stream) + local ver_supported = false; local roster = { items = {}; ver = ""; @@ -11,6 +13,12 @@ }; stream.roster = roster; + stream:hook("stream-features", function(features_stanza) + if features_stanza:get_child("ver", xmlns_rosterver) then + ver_supported = true; + end + end); + local function item_lua2xml(item_table) local xml_item = verse.stanza("item", { xmlns = xmlns_roster }); for k, v in pairs(item_table) do @@ -103,7 +111,7 @@ end function roster:fetch(callback) - stream:send_iq(verse.iq({type="get"}):tag("query", { xmlns = xmlns_roster, ver = roster.ver }), + stream:send_iq(verse.iq({type="get"}):tag("query", { xmlns = xmlns_roster, ver = ver_supported and roster.ver or nil }), function (result) if result.attr.type == "result" then local query = result:get_child("query", xmlns_roster);