From 0a2d8ca16e6b28d9c54f46250182348d5312e0c7 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento <rodrigoknascimento@gmail.com> Date: Wed, 19 Aug 2020 18:20:16 -0300 Subject: [PATCH] Set default timeout of 20s for HTTP calls (#18549) --- packages/rocketchat-mongo-config/package.js | 1 + packages/rocketchat-mongo-config/server/index.js | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/packages/rocketchat-mongo-config/package.js b/packages/rocketchat-mongo-config/package.js index bfb81a6d3d0..2ff3667b23d 100644 --- a/packages/rocketchat-mongo-config/package.js +++ b/packages/rocketchat-mongo-config/package.js @@ -10,6 +10,7 @@ Package.onUse(function(api) { 'ecmascript', 'mongo', 'email', + 'http', ]); api.mainModule('server/index.js', 'server'); diff --git a/packages/rocketchat-mongo-config/server/index.js b/packages/rocketchat-mongo-config/server/index.js index ad711c61238..5c39b353a5b 100644 --- a/packages/rocketchat-mongo-config/server/index.js +++ b/packages/rocketchat-mongo-config/server/index.js @@ -3,6 +3,18 @@ import { PassThrough } from 'stream'; import { EmailTest } from 'meteor/email'; import { Mongo } from 'meteor/mongo'; +import { HTTP } from 'meteor/http'; + +// Set default HTTP call timeout to 20s +const envTimeout = parseInt(process.env.HTTP_DEFAULT_TIMEOUT, 10); +const timeout = !isNaN(envTimeout) ? envTimeout : 20000; + +const { call } = HTTP; +HTTP.call = function _call(method, url, options = {}, callback) { + const defaultTimeout = 'timeout' in options ? options : { ...options, timeout }; + + return call.call(HTTP, method, url, defaultTimeout, callback); +}; // FIX For TLS error see more here https://github.com/RocketChat/Rocket.Chat/issues/9316 // TODO: Remove after NodeJS fix it, more information -- GitLab