From b9e53db51fa286baf45b13446a44b71aeae3eea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Wed, 26 Jun 2024 14:18:11 +0200 Subject: [PATCH] Protocols.HTTP.Query: Enable timeouts for blocking SSL too. Non-responsive blocking https requests will now terminate after the set timeout (default 2 minutes). --- lib/modules/Protocols.pmod/HTTP.pmod/Query.pike | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike index 0f6794b2aa..a4ec213b95 100644 --- a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike +++ b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike @@ -248,6 +248,11 @@ protected int ponder_answer( int|void start_position ) ok=1; remove_async_timeout(); TOUCH_TIMEOUT_WATCHDOG(); + if (con && con->set_timeout) { + // SSL connection. + con->set_timeout((data_timeout || timeout) && + (float)(data_timeout || timeout)); + } if (request_ok) request_ok(this,@extra_args); return 1; @@ -302,6 +307,8 @@ void start_tls(int|void blocking, int|void async) ssl->set_blocking(); } + ssl->set_timeout(timeout && (float)timeout); + if (!(ssl_session = ssl->connect(real_host, ssl_session))) { error("HTTPS connection failed.\n"); } -- GitLab