X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=core%2Fstoragemanager.lua;h=0857baf4b27c9a6f5d99737fdcb1b7f555205b8a;hb=1a4662559024e6c550fc112109066d73d080b343;hp=a5476e0a12b5f9c25ae483e42bd15469c1c8c183;hpb=531d9932a46e20fd46a895c004bc949c6eb55185;p=prosody.git diff --git a/core/storagemanager.lua b/core/storagemanager.lua index a5476e0a..0857baf4 100644 --- a/core/storagemanager.lua +++ b/core/storagemanager.lua @@ -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