fix: coerce telnet config values to numbers
String telnet config (e.g. quoted '1500' in /etc/prosody-muc-rest.js or string env-var overrides) reached net.Socket.setTimeout via telnet-client and crashed the pool on connect with ERR_INVALID_ARG_TYPE. Coerce port, timeout, and poolSize to numbers with fallbacks before use. Part-of: <http://gitlab.vnc.biz/uxf/prosody-muc-rest/-/merge_requests/3>
This commit is contained in:
+8
-3
@@ -7,15 +7,20 @@ var config = require('../../config/prosody-muc-rest.js')[env];
|
||||
var Pool = require('pg-pool');
|
||||
var createTelnetPool = require('../telnet-pool');
|
||||
|
||||
function asNumber(value, fallback) {
|
||||
var n = typeof value === 'number' ? value : parseInt(value, 10);
|
||||
return Number.isFinite(n) ? n : fallback;
|
||||
}
|
||||
|
||||
var telnetParams = {
|
||||
host: config.telnet.host,
|
||||
port: config.telnet.port,
|
||||
port: asNumber(config.telnet.port, 5582),
|
||||
negotiationMandatory: config.telnet.negotiationMandatory,
|
||||
timeout: config.telnet.timeout,
|
||||
timeout: asNumber(config.telnet.timeout, 5000),
|
||||
debug: false
|
||||
}
|
||||
|
||||
var telnetPool = createTelnetPool(telnetParams, config.telnet.poolSize);
|
||||
var telnetPool = createTelnetPool(telnetParams, asNumber(config.telnet.poolSize, 4));
|
||||
|
||||
async function doesMucExist(jid) {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
Reference in New Issue
Block a user