From 07b336d69f111d7c48a200d7643c769d10f34381 Mon Sep 17 00:00:00 2001 From: CGQAQ Date: Fri, 21 Jul 2023 09:46:16 +0000 Subject: [PATCH 1/3] net: fix readable event not emitted fix readable event not emitted after reconnect Fixes: https://github.com/nodejs/node/issues/25969 --- lib/net.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/net.js b/lib/net.js index 7f9b1e5c084d8c..d4212557b2cf33 100644 --- a/lib/net.js +++ b/lib/net.js @@ -1582,8 +1582,10 @@ function afterConnect(status, handle, req, readable, writable) { // Start the first read, or get an immediate EOF. // this doesn't actually consume any bytes, because len=0. - if (readable && !self.isPaused()) + if (readable) { self.read(0); + } + if (self[kPerfHooksNetConnectContext] && hasObserver('net')) { stopPerf(self, kPerfHooksNetConnectContext); } From 7da469e01bc3b20fb06bc2a4cdc4d436c7563c5e Mon Sep 17 00:00:00 2001 From: CGQAQ Date: Sat, 22 Jul 2023 05:45:12 +0000 Subject: [PATCH 2/3] net: call resume in internalConnnect --- lib/net.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/net.js b/lib/net.js index d4212557b2cf33..384498c967dadd 100644 --- a/lib/net.js +++ b/lib/net.js @@ -1033,6 +1033,8 @@ function internalConnect( self, address, port, addressType, localAddress, localPort, flags) { // TODO return promise from Socket.prototype.connect which // wraps _connectReq. + debug('resume') + self.resume(); assert(self.connecting); @@ -1582,10 +1584,8 @@ function afterConnect(status, handle, req, readable, writable) { // Start the first read, or get an immediate EOF. // this doesn't actually consume any bytes, because len=0. - if (readable) { + if (readable && !self.isPaused()) self.read(0); - } - if (self[kPerfHooksNetConnectContext] && hasObserver('net')) { stopPerf(self, kPerfHooksNetConnectContext); } From 744d97138d303d5457e72228f8e39270d94d4cbf Mon Sep 17 00:00:00 2001 From: CGQAQ Date: Sat, 22 Jul 2023 07:45:29 +0000 Subject: [PATCH 3/3] net: add semi; --- lib/net.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/net.js b/lib/net.js index 384498c967dadd..3f552ab16d488d 100644 --- a/lib/net.js +++ b/lib/net.js @@ -1033,7 +1033,7 @@ function internalConnect( self, address, port, addressType, localAddress, localPort, flags) { // TODO return promise from Socket.prototype.connect which // wraps _connectReq. - debug('resume') + debug('resume'); self.resume(); assert(self.connecting);