Software / code / prosody
Comparison
util/jid.lua @ 1171:be11dc0610d5
util.jid: Eliminate global method use
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Sat, 16 May 2009 03:56:51 +0500 |
| parent | 896:2c0b9e3c11c3 |
| child | 1523:841d61be198f |
comparison
equal
deleted
inserted
replaced
| 1170:4845372a2c03 | 1171:be11dc0610d5 |
|---|---|
| 13 local nameprep = require "util.encodings".stringprep.nameprep; | 13 local nameprep = require "util.encodings".stringprep.nameprep; |
| 14 local resourceprep = require "util.encodings".stringprep.resourceprep; | 14 local resourceprep = require "util.encodings".stringprep.resourceprep; |
| 15 | 15 |
| 16 module "jid" | 16 module "jid" |
| 17 | 17 |
| 18 function split(jid) | 18 local function _split(jid) |
| 19 if not jid then return; end | 19 if not jid then return; end |
| 20 local node, nodepos = match(jid, "^([^@]+)@()"); | 20 local node, nodepos = match(jid, "^([^@]+)@()"); |
| 21 local host, hostpos = match(jid, "^([^@/]+)()", nodepos) | 21 local host, hostpos = match(jid, "^([^@/]+)()", nodepos) |
| 22 if node and not host then return nil, nil, nil; end | 22 if node and not host then return nil, nil, nil; end |
| 23 local resource = match(jid, "^/(.+)$", hostpos); | 23 local resource = match(jid, "^/(.+)$", hostpos); |
| 24 if (not host) or ((not resource) and #jid >= hostpos) then return nil, nil, nil; end | 24 if (not host) or ((not resource) and #jid >= hostpos) then return nil, nil, nil; end |
| 25 return node, host, resource; | 25 return node, host, resource; |
| 26 end | 26 end |
| 27 split = _split; | |
| 27 | 28 |
| 28 function bare(jid) | 29 function bare(jid) |
| 29 local node, host = split(jid); | 30 local node, host = _split(jid); |
| 30 if node and host then | 31 if node and host then |
| 31 return node.."@"..host; | 32 return node.."@"..host; |
| 32 end | 33 end |
| 33 return host; | 34 return host; |
| 34 end | 35 end |
| 35 | 36 |
| 36 function prepped_split(jid) | 37 local function _prepped_split(jid) |
| 37 local node, host, resource = split(jid); | 38 local node, host, resource = _split(jid); |
| 38 if host then | 39 if host then |
| 39 host = nameprep(host); | 40 host = nameprep(host); |
| 40 if not host then return; end | 41 if not host then return; end |
| 41 if node then | 42 if node then |
| 42 node = nodeprep(node); | 43 node = nodeprep(node); |
| 47 if not resource then return; end | 48 if not resource then return; end |
| 48 end | 49 end |
| 49 return node, host, resource; | 50 return node, host, resource; |
| 50 end | 51 end |
| 51 end | 52 end |
| 53 prepped_split = _prepped_split; | |
| 52 | 54 |
| 53 function prep(jid) | 55 function prep(jid) |
| 54 local node, host, resource = prepped_split(jid); | 56 local node, host, resource = _prepped_split(jid); |
| 55 if host then | 57 if host then |
| 56 if node then | 58 if node then |
| 57 host = node .. "@" .. host; | 59 host = node .. "@" .. host; |
| 58 end | 60 end |
| 59 if resource then | 61 if resource then |