aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/sasl.lua14
1 files changed, 13 insertions, 1 deletions
diff --git a/util/sasl.lua b/util/sasl.lua
index 43455909..03115fb6 100644
--- a/util/sasl.lua
+++ b/util/sasl.lua
@@ -1,4 +1,4 @@
--- sasl.lua v0.2
+-- sasl.lua v0.3
-- Copyright (C) 2008-2009 Tobias Markmann
--
-- All rights reserved.
@@ -235,10 +235,22 @@ local function new_digest_md5(realm, password_handler)
return object
end
+local function new_anonymous(realm, password_handler)
+ local object = { mechanism = "ANONYMOUS", realm = realm, password_handler = password_handler}
+ function object.feed(self, message)
+ return "success"
+ end
+ --TODO: From XEP-0175 "It is RECOMMENDED for the node identifier to be a UUID as specified in RFC 4122 [5]." So util.uuid() should (or have an option to) behave as specified in RFC 4122.
+ object["username"] = generate_uuid()
+ return object
+end
+
+
function new(mechanism, realm, password_handler)
local object
if mechanism == "PLAIN" then object = new_plain(realm, password_handler)
elseif mechanism == "DIGEST-MD5" then object = new_digest_md5(realm, password_handler)
+ elseif mechanism == "ANONYMOUS" then object = new_anonymous(realm, password_handler)
else
log("debug", "Unsupported SASL mechanism: "..tostring(mechanism));
return nil