Mercurial > prosody-hg
comparison util/jid.lua @ 717:ab428c579cbc
util/jid: string prepping functions added: prepped_split and prep
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Thu, 15 Jan 2009 04:34:55 +0500 |
| parents | 4ae3e81513f3 |
| children | b1885732e979 |
comparison
equal
deleted
inserted
replaced
| 716:d61eabc678a6 | 717:ab428c579cbc |
|---|---|
| 18 -- | 18 -- |
| 19 | 19 |
| 20 | 20 |
| 21 | 21 |
| 22 local match = string.match; | 22 local match = string.match; |
| 23 local nodeprep = require "util.encodings".stringprep.nodeprep; | |
| 24 local nameprep = require "util.encodings".stringprep.nameprep; | |
| 25 local resourceprep = require "util.encodings".stringprep.resourceprep; | |
| 23 | 26 |
| 24 module "jid" | 27 module "jid" |
| 25 | 28 |
| 26 function split(jid) | 29 function split(jid) |
| 27 if not jid then return; end | 30 if not jid then return; end |
| 39 return node.."@"..host; | 42 return node.."@"..host; |
| 40 end | 43 end |
| 41 return host; | 44 return host; |
| 42 end | 45 end |
| 43 | 46 |
| 47 function prepped_split(jid) | |
| 48 local node, host, resource = split(jid); | |
| 49 if host then | |
| 50 host = nameprep(host); | |
| 51 if not host then return; end | |
| 52 if node then | |
| 53 node = nodeprep(node); | |
| 54 if not node then return; end | |
| 55 end | |
| 56 if resource then | |
| 57 resource = resourceprep(resource); | |
| 58 if not resource then return; end | |
| 59 end | |
| 60 return node, host, resource; | |
| 61 end | |
| 62 end | |
| 63 | |
| 64 function prep(jid) | |
| 65 local node, host, resource = prepped_split(jid); | |
| 66 if host then | |
| 67 if node then | |
| 68 host = node .. "@" .. host; | |
| 69 end | |
| 70 if resource then | |
| 71 host = host .. "/" .. resource; | |
| 72 end | |
| 73 end | |
| 74 return host; | |
| 75 end | |
| 76 | |
| 44 return _M; | 77 return _M; |
