Software /
code /
verse
File
libs/xstanza.lua @ 485:c9a144591649
component: Avoid adding to the global stream metatable
This allows component and client connections to be made side-by-side.
Previous to this change, loading this connection module would break the
ability to make client connections, due to overriding stream methods such as
:reopen() and :reset().
A next step would be to share the methods that the two connection modules have
in common.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 23 Mar 2023 18:56:32 +0000 |
parent | 15:be4154ed4e3a |
line wrap: on
line source
local stanza_mt = getmetatable(require "util.stanza".stanza()); local xmlns_stanzas = "urn:ietf:params:xml:ns:xmpp-stanzas"; function stanza_mt:get_error() local type, condition, text; local error_tag = self:get_child("error"); if not error_tag then return nil, nil; end type = error_tag.attr.type; for child in error_tag:children() do if child.attr.xmlns == xmlns_stanzas then if child.name == "text" then text = child:get_text(); else condition = child.name; end if condition and text then break; end end end return type, condition, text; end