mod_lastactivity, mod_legacyauth, mod_presence, mod_saslauth, mod_tls: Use the newer stanza:get_child APIs and optimize away some table lookups
--- a/plugins/adhoc/adhoc.lib.lua Fri Jul 04 21:48:25 2014 +0200
+++ b/plugins/adhoc/adhoc.lib.lua Fri Jul 04 22:52:34 2014 +0200
@@ -25,12 +25,13 @@
end
function _M.handle_cmd(command, origin, stanza)
- local sessionid = stanza.tags[1].attr.sessionid or uuid.generate();
+ local cmdtag = stanza.tags[1]
+ local sessionid = cmdtag.attr.sessionid or uuid.generate();
local dataIn = {};
dataIn.to = stanza.attr.to;
dataIn.from = stanza.attr.from;
- dataIn.action = stanza.tags[1].attr.action or "execute";
- dataIn.form = stanza.tags[1]:child_with_ns("jabber:x:data");
+ dataIn.action = cmdtag.attr.action or "execute";
+ dataIn.form = cmdtag:get_child("x", "jabber:x:data");
local data, state = command:handler(dataIn, states[sessionid]);
states[sessionid] = state;
--- a/plugins/mod_lastactivity.lua Fri Jul 04 21:48:25 2014 +0200
+++ b/plugins/mod_lastactivity.lua Fri Jul 04 22:52:34 2014 +0200
@@ -19,8 +19,7 @@
local stanza = event.stanza;
if not(stanza.attr.to) and stanza.attr.type == "unavailable" then
local t = os.time();
- local s = stanza:child_with_name("status");
- s = s and #s.tags == 0 and s[1] or "";
+ local s = stanza:get_child_text("status");
map[event.origin.username] = {s = s, t = t};
end
end, 10);
--- a/plugins/mod_legacyauth.lua Fri Jul 04 21:48:25 2014 +0200
+++ b/plugins/mod_legacyauth.lua Fri Jul 04 22:52:34 2014 +0200
@@ -44,9 +44,10 @@
return true;
end
- local username = stanza.tags[1]:child_with_name("username");
- local password = stanza.tags[1]:child_with_name("password");
- local resource = stanza.tags[1]:child_with_name("resource");
+ local query = stanza.tags[1];
+ local username = query:get_child("username");
+ local password = query:get_child("password");
+ local resource = query:get_child("resource");
if not (username and password and resource) then
local reply = st.reply(stanza);
session.send(reply:query("jabber:iq:auth")
--- a/plugins/mod_presence.lua Fri Jul 04 21:48:25 2014 +0200
+++ b/plugins/mod_presence.lua Fri Jul 04 22:52:34 2014 +0200
@@ -55,14 +55,14 @@
function handle_normal_presence(origin, stanza)
if ignore_presence_priority then
- local priority = stanza:child_with_name("priority");
+ local priority = stanza:get_child("priority");
if priority and priority[1] ~= "0" then
for i=#priority.tags,1,-1 do priority.tags[i] = nil; end
for i=#priority,1,-1 do priority[i] = nil; end
priority[1] = "0";
end
end
- local priority = stanza:child_with_name("priority");
+ local priority = stanza:get_child("priority");
if priority and #priority > 0 then
priority = t_concat(priority);
if s_find(priority, "^[+-]?[0-9]+$") then
--- a/plugins/mod_saslauth.lua Fri Jul 04 21:48:25 2014 +0200
+++ b/plugins/mod_saslauth.lua Fri Jul 04 22:52:34 2014 +0200
@@ -284,7 +284,7 @@
local resource;
if stanza.attr.type == "set" then
local bind = stanza.tags[1];
- resource = bind:child_with_name("resource");
+ resource = bind:get_child("resource");
resource = resource and #resource.tags == 0 and resource[1] or nil;
end
local success, err_type, err, err_msg = sm_bind_resource(origin, resource);
--- a/plugins/mod_tls.lua Fri Jul 04 21:48:25 2014 +0200
+++ b/plugins/mod_tls.lua Fri Jul 04 22:52:34 2014 +0200
@@ -108,7 +108,7 @@
-- For s2sout connections, start TLS if we can
module:hook_stanza("http://etherx.jabber.org/streams", "features", function (session, stanza)
module:log("debug", "Received features element");
- if can_do_tls(session) and stanza:child_with_ns(xmlns_starttls) then
+ if can_do_tls(session) and stanza:get_child("starttls", xmlns_starttls) then
module:log("debug", "%s is offering TLS, taking up the offer...", session.to_host);
session.sends2s("<starttls xmlns='"..xmlns_starttls.."'/>");
return true;