diff --git a/packages/rocketchat-mongo-config/package.js b/packages/rocketchat-mongo-config/package.js index bfb81a6d3d02a2e64e70713ae3aa24cfda87f7e0..2ff3667b23d921daf4cd499d3ac84187f88b1f0a 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 ad711c61238aff36cbdd547d111ca32369380b15..5c39b353a5b7aff912a54498c91c1c0cd30e25a9 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