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:
2026-07-13 15:44:47 +02:00
parent 683e224d67
commit d956658862
+8 -3
View File
@@ -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) => {