util/jid.lua
changeset 6780 5de6b93d0190
parent 6340 7e820979fd9b
child 6892 7f7920f2aebf
--- a/util/jid.lua	Mon Aug 10 22:16:05 2015 +0200
+++ b/util/jid.lua	Sat Feb 21 10:36:37 2015 +0100
@@ -23,9 +23,9 @@
 local unescapes = {};
 for k,v in pairs(escapes) do unescapes[v] = k; end
 
-module "jid"
+local _ENV = nil;
 
-local function _split(jid)
+local function split(jid)
 	if not jid then return; end
 	local node, nodepos = match(jid, "^([^@/]+)@()");
 	local host, hostpos = match(jid, "^([^@/]+)()", nodepos)
@@ -34,14 +34,13 @@
 	if (not host) or ((not resource) and #jid >= hostpos) then return nil, nil, nil; end
 	return node, host, resource;
 end
-split = _split;
 
-function bare(jid)
+local function bare(jid)
 	return jid and match(jid, "^[^/]+");
 end
 
-local function _prepped_split(jid)
-	local node, host, resource = _split(jid);
+local function prepped_split(jid)
+	local node, host, resource = split(jid);
 	if host then
 		if sub(host, -1, -1) == "." then -- Strip empty root label
 			host = sub(host, 1, -2);
@@ -59,9 +58,8 @@
 		return node, host, resource;
 	end
 end
-prepped_split = _prepped_split;
 
-local function _join(node, host, resource)
+local function join(node, host, resource)
 	if not host then return end
 	if node and resource then
 		return node.."@"..host.."/"..resource;
@@ -72,18 +70,17 @@
 	end
 	return host;
 end
-join = _join;
 
-function prep(jid)
-	local node, host, resource = _prepped_split(jid);
-	return _join(node, host, resource);
+local function prep(jid)
+	local node, host, resource = prepped_split(jid);
+	return join(node, host, resource);
 end
 
-function compare(jid, acl)
+local 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);
+	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
@@ -92,7 +89,16 @@
 	return false
 end
 
-function escape(s) return s and (s:gsub(".", escapes)); end
-function unescape(s) return s and (s:gsub("\\%x%x", unescapes)); end
+local function escape(s) return s and (s:gsub(".", escapes)); end
+local function unescape(s) return s and (s:gsub("\\%x%x", unescapes)); end
 
-return _M;
+return {
+	split = split;
+	bare = bare;
+	prepped_split = prepped_split;
+	join = join;
+	prep = prep;
+	compare = compare;
+	escape = escape;
+	unescape = unescape;
+};