From ceff9f54a488e9350c3a42d299921351fe7a7c94 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Wed, 5 Jun 2019 17:12:02 -0700 Subject: [PATCH] modules/s_fetch: Add requests limit w/ conf item. --- modules/s_fetch.cc | 10 ++++++++++ modules/s_fetch.h | 1 + 2 files changed, 11 insertions(+) diff --git a/modules/s_fetch.cc b/modules/s_fetch.cc index f1b083868..f7fe9dbb4 100644 --- a/modules/s_fetch.cc +++ b/modules/s_fetch.cc @@ -37,6 +37,13 @@ ircd::m::fetch::auth_timeout { "default", 15L }, }; +decltype(ircd::m::fetch::requests_max) +ircd::m::fetch::requests_max +{ + { "name", "ircd.m.fetch.requests.max" }, + { "default", 256L }, +}; + decltype(ircd::m::fetch::hook) ircd::m::fetch::hook { @@ -587,6 +594,9 @@ ircd::m::fetch::start(const m::room::id &room_id, reflect(run::level) }; + if(count() > size_t(requests_max)) + return false; + return submit(event_id, room_id); } diff --git a/modules/s_fetch.h b/modules/s_fetch.h index 806017e86..3d0c37a4b 100644 --- a/modules/s_fetch.h +++ b/modules/s_fetch.h @@ -25,6 +25,7 @@ namespace ircd::m::fetch extern ctx::context eval_context; extern ctx::context request_context; extern hookfn hook; + extern conf::item requests_max; extern conf::item auth_timeout; extern conf::item timeout; extern conf::item enable;