From 60c3990c7c5a65851e35dda0a27d0f5022634a3b Mon Sep 17 00:00:00 2001 From: CosminPerRam Date: Mon, 19 Aug 2024 18:51:21 +0300 Subject: [PATCH] fix: registerRTT would break successful queries (#610) * revert commit * revert core registerRTT * revert "revert commit" * making this simpler * changelog --- CHANGELOG.md | 1 + protocols/core.js | 25 +++++++++++-------------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fed790cd..e7f54ae7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## To Be Released... ## 5.X.Y * Added Vintage Story support via the master server (#606) +* Fixed `registerRtt` breaking successful queries if it didn't respond in the query timeout (#610) * Added support for rFactor 2 (By @xCausxn #614) ## 4.3.2 diff --git a/protocols/core.js b/protocols/core.js index bbdfc462..c03d5d90 100644 --- a/protocols/core.js +++ b/protocols/core.js @@ -101,20 +101,17 @@ export default class Core extends EventEmitter { async run (/** Results */ state) {} /** Param can be a time in ms, or a promise (which will be timed) */ - async registerRtt (param) { - try { - if (param instanceof Promise) { - const start = Date.now() - await param - await this.registerRtt(Date.now() - start) - } else { - this.logger.debug(`Registered RTT: ${param}ms`) - if (this.shortestRTT === 0 || param < this.shortestRTT) { - this.shortestRTT = param - } + registerRtt (param) { + if (param instanceof Promise) { + const start = Date.now() + param.then(() => { + this.registerRtt(Date.now() - start) + }).catch((_) => {}) + } else { + this.logger.debug('Registered RTT: ' + param + 'ms') + if (this.shortestRTT === 0 || param < this.shortestRTT) { + this.shortestRTT = param } - } catch (error) { - this.logger.debug(`Error in promise: ${error}`) } } @@ -198,7 +195,7 @@ export default class Core extends EventEmitter { socket.on('ready', resolve) socket.on('close', () => reject(new Error('TCP Connection Refused'))) }) - await this.registerRtt(connectionPromise) + this.registerRtt(connectionPromise) connectionTimeout = Promises.createTimeout(this.options.socketTimeout, 'TCP Opening') await Promise.race([ connectionPromise,