File

mod_measure_conn_buffers/mod_measure_conn_buffers.lua @ 6193:e977174082ee

mod_invites_register_api: Use set_password() for password resets Previously the code relied on the (weird) behaviour of create_user(), which would update the password for a user account if it already existed. This has several issues, and we plan to deprecate this behaviour of create_user(). The larger issue is that this route does not trigger the user-password-changed event, which can be a security problem. For example, it did not disconnect existing user sessions (this occurs in mod_c2s in response to the event). Switching to set_password() is the right thing to do
author Matthew Wild <mwild1@gmail.com>
date Thu, 06 Feb 2025 10:24:30 +0000
parent 6050:81805f11263c
line wrap: on
line source

module:set_global();

local measure_total_pending_tx = module:measure("total_pending_tx", "amount");

local server = require "net.server";

if server.get_backend() ~= "epoll" or not server.loop.fds then
	module:log_status("error", "This module is not compatible with your network_backend, only epoll is supported");
	return;
end

local fds = server.loop.fds;

module:hook("stats-update", function ()
	local pending_tx = 0;
	for _, conn in pairs(fds) do
		local buffer = conn.writebuffer;
		if buffer then
			if type(buffer) == "string" then
				pending_tx = pending_tx + #buffer;
			elseif buffer._length then -- dbuffer
				pending_tx = pending_tx + buffer._length;
			else -- simple table
				for i = 1, #buffer do
					pending_tx = pending_tx + #buffer[i];
				end
			end
		end
	end
	measure_total_pending_tx(pending_tx);
end);