From e418f8a9c642c2b0c1ab06160441de068350ac72 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Mon, 22 Jun 2009 02:58:05 +0100 Subject: modulemanager: Call 'load' method when loading a module --- core/modulemanager.lua | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'core') diff --git a/core/modulemanager.lua b/core/modulemanager.lua index d6220cec..c7aa5cce 100644 --- a/core/modulemanager.lua +++ b/core/modulemanager.lua @@ -134,6 +134,13 @@ function load(host, module_name, config) return nil, ret; end + if module_has_method(pluginenv, "load") then + local ok, err = call_module_method(pluginenv, "load"); + if (not ok) and err then + log("warn", "Error loading module '%s' on '%s': %s", module_name, host, err); + end + end + -- Use modified host, if the module set one modulemap[api_instance.host][module_name] = pluginenv; -- cgit v1.2.3 From 04d4fb4a735cf69c467e9f5782603e4c8364a099 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Mon, 22 Jun 2009 02:58:28 +0100 Subject: sessionmanager: Fire event on resource bind --- core/sessionmanager.lua | 2 ++ 1 file changed, 2 insertions(+) (limited to 'core') diff --git a/core/sessionmanager.lua b/core/sessionmanager.lua index 19943db0..103533de 100644 --- a/core/sessionmanager.lua +++ b/core/sessionmanager.lua @@ -149,6 +149,8 @@ function bind_resource(session, resource) session.roster = rm_load_roster(session.username, session.host); + hosts[session.host].events.fire_event("resource-bind", session); + return true; end -- cgit v1.2.3 From 5983be0564fe2ac2adb8f2a283b9a0241e00e04e Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Mon, 22 Jun 2009 14:14:28 +0100 Subject: rostermanager: Fire event on roster load --- core/rostermanager.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'core') diff --git a/core/rostermanager.lua b/core/rostermanager.lua index 867add2c..514d3d8e 100644 --- a/core/rostermanager.lua +++ b/core/rostermanager.lua @@ -82,19 +82,24 @@ end function load_roster(username, host) log("debug", "load_roster: asked for: "..username.."@"..host); + local roster; if hosts[host] and hosts[host].sessions[username] then - local roster = hosts[host].sessions[username].roster; + roster = hosts[host].sessions[username].roster; if not roster then log("debug", "load_roster: loading for new user: "..username.."@"..host); roster = datamanager.load(username, host, "roster") or {}; if not roster[false] then roster[false] = { }; end hosts[host].sessions[username].roster = roster; + hosts[host].events.fire_event("roster-load", username, host, roster); end return roster; end + -- Attempt to load roster for non-loaded user log("debug", "load_roster: loading for offline user: "..username.."@"..host); - return datamanager.load(username, host, "roster") or {}; + roster = datamanager.load(username, host, "roster") or {}; + hosts[host].events.fire_event("roster-load", username, host, roster); + return roster; end function save_roster(username, host) -- cgit v1.2.3 From 4e32c53614b8d7f44cf44e9e2ff8efc3a7baad26 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Mon, 22 Jun 2009 21:54:34 +0100 Subject: modulemanager: Fix copy/paste error, should be name instead of module_name --- core/modulemanager.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'core') diff --git a/core/modulemanager.lua b/core/modulemanager.lua index c7aa5cce..24a0da6c 100644 --- a/core/modulemanager.lua +++ b/core/modulemanager.lua @@ -197,7 +197,7 @@ function reload(host, name, ...) local _mod, err = pluginloader.load_code(name); -- checking for syntax errors if not _mod then - log("error", "Unable to load module '%s': %s", module_name or "nil", err or "nil"); + log("error", "Unable to load module '%s': %s", name or "nil", err or "nil"); return nil, err; end -- cgit v1.2.3 From a977acec89c829b23d790a02c0abf9bb5dfd5a54 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Tue, 23 Jun 2009 01:48:01 +0100 Subject: modulemanager: Expose api table to allow others to extend the module API --- core/modulemanager.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'core') diff --git a/core/modulemanager.lua b/core/modulemanager.lua index 24a0da6c..19e0a982 100644 --- a/core/modulemanager.lua +++ b/core/modulemanager.lua @@ -38,7 +38,8 @@ local _G = _G; module "modulemanager" -local api = {}; -- Module API container +api = {}; +local api = api; -- Module API container local modulemap = { ["*"] = {} }; -- cgit v1.2.3