aboutsummaryrefslogtreecommitdiffstats
path: root/tools/ejabberd2prosody.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2015-08-26 13:17:10 +0200
committerKim Alvefur <zash@zash.se>2015-08-26 13:17:10 +0200
commit345a2e09f6a7fedd1037d7183548e60c6302719a (patch)
tree43e0dccc1f6c698ab696b20b09b4e7a606ca9527 /tools/ejabberd2prosody.lua
parent88f902f1e981d9230d9bb9597fb3ef58c488f1fc (diff)
parent6ec3c0bee0f0e657b54551b2f66c7de2a5bda468 (diff)
downloadprosody-345a2e09f6a7fedd1037d7183548e60c6302719a.tar.gz
prosody-345a2e09f6a7fedd1037d7183548e60c6302719a.zip
Merge 0.9->0.10
Diffstat (limited to 'tools/ejabberd2prosody.lua')
-rwxr-xr-xtools/ejabberd2prosody.lua17
1 files changed, 16 insertions, 1 deletions
diff --git a/tools/ejabberd2prosody.lua b/tools/ejabberd2prosody.lua
index 590145cd..46a48f57 100755
--- a/tools/ejabberd2prosody.lua
+++ b/tools/ejabberd2prosody.lua
@@ -72,7 +72,22 @@ function vcard(node, host, stanza)
print("["..(err or "success").."] vCard: "..node.."@"..host);
end
function password(node, host, password)
- local ret, err = dm.store(node, host, "accounts", {password = password});
+ local data = {};
+ if type(password) == "string" then
+ data.password = password;
+ elseif type(password) == "table" and password[1] == "scram" then
+ local unb64 = require"mime".unb64;
+ local function hex(s)
+ return s:gsub(".", function (c)
+ return ("%02x"):format(c:byte());
+ end);
+ end
+ data.stored_key = hex(unb64(password[2]));
+ data.server_key = hex(unb64(password[3]));
+ data.salt = unb64(password[4]);
+ data.iteration_count = password[5];
+ end
+ local ret, err = dm.store(node, host, "accounts", data);
print("["..(err or "success").."] accounts: "..node.."@"..host);
end
function roster(node, host, jid, item)