view plugins/mod_storage_none.lua @ 14157:f881ed0ee8bd 0.12

moduleapi: Use multitable add/remove instead of set multitable:set() does not clear intermediate keys when setting the last one to nil. This meant that the event_handlers multitable for every module was not properly cleaning up the object and event name from the table when calling :unhook_object_event(). This combined badly with e.g. mod_bookmarks, which uses this extensively to add/remove hooks dynamically for mod_pep services. The multitable kept a reference to every mod_pep service object ever created, causing a memory leak. The multitable:remove() function clears intermediate keys when they are empty, so we've switched to using that now.
author Matthew Wild <mwild1@gmail.com>
date Fri, 17 Apr 2026 17:39:06 +0100
parents ef671d337577
children
line wrap: on
line source

-- luacheck: ignore 212

local driver = {};
local driver_mt = { __index = driver };

function driver:open(store, typ)
	if typ and typ ~= "keyval" and typ ~= "archive" then
		return nil, "unsupported-store";
	end
	return setmetatable({ store = store, type = typ }, driver_mt);
end
function driver:get(user)
	return {};
end

function driver:set(user, data)
	return nil, "Storage disabled";
end

function driver:stores(username)
	return { "roster" };
end

function driver:purge(user)
	return true;
end

function driver:append()
	return nil, "Storage disabled";
end

function driver:find()
	return function () end, 0;
end

function driver:delete()
	return true;
end

module:provides("storage", driver);