Changeset

6572:c60c199cc7f0

Merge 0.10->trunk
author Matthew Wild <mwild1@gmail.com>
date Sat, 31 Jan 2015 12:25:24 +0000
parents 6560:6f39c58bdcc4 (current diff) 6563:f0a2bdfd0cea (diff)
children 6573:afd638e9c6d0
files
diffstat 2 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/core/sessionmanager.lua	Mon Jan 26 15:27:19 2015 +0100
+++ b/core/sessionmanager.lua	Sat Jan 31 12:25:24 2015 +0000
@@ -117,6 +117,16 @@
 	if session.resource then return nil, "cancel", "already-bound", "Cannot bind multiple resources on a single connection"; end
 	-- We don't support binding multiple resources
 
+	local event_payload = { session = session, resource = resource };
+	if hosts[session.host].events.fire_event("pre-resource-bind", event_payload) == false then
+		local err = event_payload.error;
+		if err then return nil, err.type, err.condition, err.text; end
+		return nil, "cancel", "not-allowed";
+	else
+		-- In case a plugin wants to poke at it
+		resource = event_payload.resource;
+	end
+
 	resource = resourceprep(resource);
 	resource = resource ~= "" and resource or uuid_generate();
 	--FIXME: Randomly-generated resources must be unique per-user, and never conflict with existing
--- a/util/statistics.lua	Mon Jan 26 15:27:19 2015 +0100
+++ b/util/statistics.lua	Sat Jan 31 12:25:24 2015 +0000
@@ -8,7 +8,7 @@
 	local n = pc/100 * (length + 1);
 	local k, d = m_floor(n), n%1;
 	if k == 0 then
-		return arr[1];
+		return arr[1] or 0;
 	elseif k >= length then
 		return arr[length];
 	end