mod_bosh: Use util.timer for timers instead of server.addtimer.
[prosody.git] / core / storagemanager.lua
index a5476e0a12b5f9c25ae483e42bd15469c1c8c183..0857baf4b27c9a6f5d99737fdcb1b7f555205b8a 100644 (file)
@@ -1,10 +1,11 @@
 
-local error = error;
+local error, type = error, type;
 local setmetatable = setmetatable;
 
 local config = require "core.configmanager";
 local datamanager = require "util.datamanager";
 local modulemanager = require "core.modulemanager";
+local multitable = require "util.multitable";
 local hosts = hosts;
 local log = require "util.logger".init("storagemanager");
 
@@ -43,6 +44,7 @@ local function load_driver(host, driver_name)
        if not driver then
                if driver_name ~= "internal" then
                        modulemanager.load(host, "storage_"..driver_name);
+                       return stores_available:get(host, driver_name);
                else
                        return setmetatable({host = host}, default_driver_mt);
                end
@@ -64,8 +66,10 @@ function open(host, store, typ)
                driver_name = config.get(host, "core", "default_storage");
                driver = load_driver(host, driver_name);
                if not driver then
+                       if storage or driver_name then
+                               log("warn", "Falling back to default driver for %s storage on %s", store, host);
+                       end
                        driver_name = "internal";
-                       log("warn", "Falling back to default driver for %s storage on %s", store, host);
                        driver = load_driver(host, driver_name);
                end
        end