view loader.lua @ 14149:9c98cc9d9588 13.0

mod_proxy65: Don't link connections until after activation Although the module pauses the connections, in some cases server.link() (at least with the epoll backend) will have the effect of unpausing the connection (because it sets new read handlers). Many thanks to Max Hearnden for discovering and reporting this issue.
author Matthew Wild <mwild1@gmail.com>
date Wed, 29 Apr 2026 11:37:21 +0100
parents ef586363d90f
children 76ece4dd9782
line wrap: on
line source

-- Allow for both require"util.foo" and require"prosody.util.foo" for a
-- transition period while we update all require calls.

if (...) == "prosody.loader" then
	-- For require"util.foo" also look in paths equivalent to "prosody.util.foo"
	package.path = package.path:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2");
	package.cpath = package.cpath:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2");
else
	-- When requiring "prosody.x", also look for "x"
	for i = #package.searchers, 1, -1 do
		local search = package.searchers[i];
		table.insert(package.searchers, i, function(module_name)
			local lib = module_name:match("^prosody%.(.*)$");
			if lib then
				return search(lib);
			end
		end)
	end
end

-- Look for already loaded module with or without prefix
setmetatable(package.loaded, {
	__index = function(loaded, module_name)
		local suffix = module_name:match("^prosody%.(.*)$");
		if suffix then
			return rawget(loaded, suffix);
		end
		local prefixed = rawget(loaded, "prosody." .. module_name);
		if prefixed ~= nil then
			return prefixed;
		end
	end;
})