changeset 5332:e0b5468aae49

mod_rest: Allow passing configuring a timeout for <iq> responses The default 2 minutes is not how long you want to wait, sometimes.
author Kim Alvefur <zash@zash.se>
date Fri, 07 Apr 2023 20:26:33 +0200 (20 months ago)
parents e00e3e2c72a3
children 10fcfa7e62a1
files mod_rest/mod_rest.lua
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mod_rest/mod_rest.lua	Fri Apr 07 15:21:54 2023 +0100
+++ b/mod_rest/mod_rest.lua	Fri Apr 07 20:26:33 2023 +0200
@@ -390,7 +390,10 @@
 			module:hook(archive_event_name, archive_handler, 1);
 		end
 
-		local p = module:send_iq(payload, origin):next(
+		local iq_timeout = tonumber(request.headers.prosody_rest_timeout) or module:get_option_number("rest_iq_timeout", 60*2);
+		iq_timeout = math.min(iq_timeout, module:get_option_boolean("rest_iq_max_timeout", 300));
+
+		local p = module:send_iq(payload, origin, iq_timeout):next(
 			function (result)
 				module:log("debug", "Sending[rest]: %s", result.stanza:top_tag());
 				response.headers.content_type = send_type;