libs/xstanza.lua

Sat, 19 Feb 2022 15:57:24 +0100

author
Kim Alvefur <zash@zash.se>
date
Sat, 19 Feb 2022 15:57:24 +0100
changeset 450
e72deac76e0e
parent 15
be4154ed4e3a
permissions
-rw-r--r--

plugins.smacks: Change to track enabled state per direction

Counting outgoing stanzas should start after <enable> is sent, while
counting incoming stanzas should star after receiving <enabled/>

This should also help with failed resumptions

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

mercurial