diff options
Diffstat (limited to 'ext/node/polyfills/net.ts')
-rw-r--r-- | ext/node/polyfills/net.ts | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/ext/node/polyfills/net.ts b/ext/node/polyfills/net.ts index 2c2f5f944..79845adb2 100644 --- a/ext/node/polyfills/net.ts +++ b/ext/node/polyfills/net.ts @@ -1834,21 +1834,8 @@ function _onconnection(this: any, err: number, clientHandle?: Handle) { return; } - const socket = new Socket({ - handle: clientHandle, - allowHalfOpen: self.allowHalfOpen, - pauseOnCreate: self.pauseOnConnect, - readable: true, - writable: true, - }); - - // TODO(@bartlomieju): implement noDelay and setKeepAlive - - self._connections++; - socket.server = self; - socket._server = self; - - DTRACE_NET_SERVER_CONNECTION(socket); + const socket = self._createSocket(clientHandle); + this._connections++; self.emit("connection", socket); if (netServerSocketChannel.hasSubscribers) { @@ -2369,6 +2356,23 @@ export class Server extends EventEmitter { return !!this._handle; } + _createSocket(clientHandle) { + const socket = new Socket({ + handle: clientHandle, + allowHalfOpen: this.allowHalfOpen, + pauseOnCreate: this.pauseOnConnect, + readable: true, + writable: true, + }); + + // TODO(@bartlomieju): implement noDelay and setKeepAlive + + socket.server = this; + socket._server = this; + + DTRACE_NET_SERVER_CONNECTION(socket); + } + _listen2 = _setupListenHandle; _emitCloseIfDrained() { |