From f6924a64c06b36b6d90b03137da8c1a682889285 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Sat, 4 Oct 2008 02:12:54 +0100 Subject: Add "uuid" library and make sessionmanager use this. ...and yes, the uuid generation needs work :P --- core/sessionmanager.lua | 4 ++-- util/uuid.lua | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 util/uuid.lua diff --git a/core/sessionmanager.lua b/core/sessionmanager.lua index f19721ed..f2542ed2 100644 --- a/core/sessionmanager.lua +++ b/core/sessionmanager.lua @@ -12,7 +12,7 @@ local hosts = hosts; local modulemanager = require "core.modulemanager"; local log = require "util.logger".init("sessionmanager"); local error = error; - +local uuid_generate = require "util.uuid".uuid_generate; module "sessionmanager" function new_session(conn) @@ -41,7 +41,7 @@ end function bind_resource(session, resource) if not session.username then return false, "auth"; end if session.resource then return false, "constraint"; end -- We don't support binding multiple resources - resource = resource or math.random(100000, 99999999); -- FIXME: Clearly we have issues :) + resource = resource or uuid_generate(); --FIXME: Randomly-generated resources must be unique per-user, and never conflict with existing if not hosts[session.host].sessions[session.username] then diff --git a/util/uuid.lua b/util/uuid.lua new file mode 100644 index 00000000..489522aa --- /dev/null +++ b/util/uuid.lua @@ -0,0 +1,9 @@ + +local m_random = math.random; +module "uuid" + +function uuid_generate() + return m_random(0, 99999999); +end + +return _M; \ No newline at end of file -- cgit v1.2.3