aboutsummaryrefslogtreecommitdiffstats
path: root/util/jid.lua
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2013-12-16 02:03:35 +0000
committerMatthew Wild <mwild1@gmail.com>2013-12-16 02:03:35 +0000
commit619f61c2860780d8588ad589d988535b3e2af13a (patch)
treebe0cb3a00e84f22791275e00ad125bb149213fd4 /util/jid.lua
parent5309dbf4a16ced97fda805103c74b208c540f2b4 (diff)
downloadprosody-619f61c2860780d8588ad589d988535b3e2af13a.tar.gz
prosody-619f61c2860780d8588ad589d988535b3e2af13a.zip
util.jid: Strip trailing '.' when normalizing hostnames
Diffstat (limited to 'util/jid.lua')
-rw-r--r--util/jid.lua5
1 files changed, 4 insertions, 1 deletions
diff --git a/util/jid.lua b/util/jid.lua
index 4c4371d8..8e0a784c 100644
--- a/util/jid.lua
+++ b/util/jid.lua
@@ -8,7 +8,7 @@
-local match = string.match;
+local match, sub = string.match, string.sub;
local nodeprep = require "util.encodings".stringprep.nodeprep;
local nameprep = require "util.encodings".stringprep.nameprep;
local resourceprep = require "util.encodings".stringprep.resourceprep;
@@ -47,6 +47,9 @@ end
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);
+ end
host = nameprep(host);
if not host then return; end
if node then