util.xstanza: New library to extend util.stanza with XMPP-specific helpers

Sat, 28 Nov 2009 22:25:04 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Sat, 28 Nov 2009 22:25:04 +0000
changeset 6
f8e0ab90d84e
parent 5
93970910d064
child 7
3d69d012f41c

util.xstanza: New library to extend util.stanza with XMPP-specific helpers

libs/xstanza.lua file | annotate | diff | comparison | revisions
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libs/xstanza.lua	Sat Nov 28 22:25:04 2009 +0000
@@ -0,0 +1,25 @@
+local stanza_mt = getmetatable(require "util.stanza".stanza());
+
+function stanza_mt:error_from_stanza()
+	local type, condition, text;
+	
+	local error_tag = self:get_child("error", "urn:ietf:params:xml:ns:xmpp-stanzas");
+	if not error_tag then
+		return nil, nil;
+	end
+	type = error.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