Diff

util/jid.lua @ 3375:29e51e1c7c3d

util.jid: compare() added, with some tests.
author Kim Alvefur <zash@zash.se>
date Fri, 16 Jul 2010 00:36:02 +0200
parent 2923:b7049746bd29
child 3480:97831dfe7f72
line wrap: on
line diff
--- a/util/jid.lua	Thu Jul 15 22:07:45 2010 +0500
+++ b/util/jid.lua	Fri Jul 16 00:36:02 2010 +0200
@@ -78,4 +78,17 @@
 	return nil; -- Invalid JID
 end
 
+function compare(jid, acl)
+	-- compare jid to single acl rule
+	-- TODO compare to table of rules?
+	local jid_node, jid_host, jid_resource = _split(jid);
+	local acl_node, acl_host, acl_resource = _split(acl);
+	if ((acl_node ~= nil and acl_node == jid_node) or acl_node == nil) and
+		((acl_host ~= nil and acl_host == jid_host) or acl_host == nil) and
+		((acl_resource ~= nil and acl_resource == jid_resource) or acl_resource == nil) then
+		return true
+	end
+	return false
+end
+
 return _M;