# HG changeset patch
# User Matthew Wild <mwild1@gmail.com>
# Date 1223082774 -3600
# Node ID 80d2ade0fd69fbeb7f0978636876f7df7c65b878
# Parent  03dc9df59368ca5614d87a763e51a7596297fb21
Add "uuid" library and make sessionmanager use this.
...and yes, the uuid generation needs work :P

diff -r 03dc9df59368 -r 80d2ade0fd69 core/sessionmanager.lua
--- a/core/sessionmanager.lua	Sat Oct 04 02:10:14 2008 +0100
+++ b/core/sessionmanager.lua	Sat Oct 04 02:12:54 2008 +0100
@@ -12,7 +12,7 @@
 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 @@
 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 -r 03dc9df59368 -r 80d2ade0fd69 util/uuid.lua
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/util/uuid.lua	Sat Oct 04 02:12:54 2008 +0100
@@ -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