From 1ca0896b53284787277c53592aa33fb37e98a280 Mon Sep 17 00:00:00 2001 From: Martin Rubli Date: Sat, 1 Jun 2024 16:17:04 +0200 Subject: [PATCH] tls: server: Document readData() socket/callback handling --- server/monitor-types/tls.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/monitor-types/tls.js b/server/monitor-types/tls.js index 6159c95fe..2fef6dc46 100644 --- a/server/monitor-types/tls.js +++ b/server/monitor-types/tls.js @@ -141,9 +141,12 @@ class TlsMonitorType extends MonitorType { readData(aborter, socket) { return new Promise((resolve, reject) => { const cleanup = function () { + // Pause reading of data (i.e. emission of 'data' events), so that we don't lose + // any data between now and the next call to readData() while there are no event + // listeners installed. + socket.pause(); socket.removeListener("error", onError); socket.removeListener("data", onData); - socket.pause(); aborter.removeEventListener("abort", onAbort); }; @@ -168,6 +171,7 @@ class TlsMonitorType extends MonitorType { aborter.addEventListener("abort", onAbort, { once: true }); + // Register event callbacks and resume the socket. We are ready to receive data. socket.on("error", onError); socket.on("data", onData); socket.resume();