# HG changeset patch # User Kim Alvefur # Date 1404507154 -7200 # Node ID 76699a0ae4c402ce24beee16221425f347a13eee # Parent 2fdd71b08126e1a3688b8a326c6da25f55316cb0 mod_lastactivity, mod_legacyauth, mod_presence, mod_saslauth, mod_tls: Use the newer stanza:get_child APIs and optimize away some table lookups diff -r 2fdd71b08126 -r 76699a0ae4c4 plugins/adhoc/adhoc.lib.lua --- 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; diff -r 2fdd71b08126 -r 76699a0ae4c4 plugins/mod_lastactivity.lua --- 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); diff -r 2fdd71b08126 -r 76699a0ae4c4 plugins/mod_legacyauth.lua --- 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") diff -r 2fdd71b08126 -r 76699a0ae4c4 plugins/mod_presence.lua --- 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 diff -r 2fdd71b08126 -r 76699a0ae4c4 plugins/mod_saslauth.lua --- 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); diff -r 2fdd71b08126 -r 76699a0ae4c4 plugins/mod_tls.lua --- 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(""); return true;