File tree Expand file tree Collapse file tree 4 files changed +26
-5
lines changed
Expand file tree Collapse file tree 4 files changed +26
-5
lines changed Original file line number Diff line number Diff line change @@ -76,7 +76,11 @@ import {
7676 ReadableStreamPrototype ,
7777 resourceForReadableStream ,
7878} from "ext:deno_web/06_streams.js" ;
79- import { listen , listenOptionApiName , TcpConn } from "ext:deno_net/01_net.js" ;
79+ import {
80+ listen ,
81+ listenOptionApiName ,
82+ UpgradedConn ,
83+ } from "ext:deno_net/01_net.js" ;
8084import { hasTlsKeyPairOptions , listenTls } from "ext:deno_net/02_tls.js" ;
8185import { SymbolAsyncDispose } from "ext:deno_web/00_infra.js" ;
8286
@@ -189,7 +193,7 @@ class InnerRequest {
189193
190194 const upgradeRid = op_http_upgrade_raw ( external ) ;
191195
192- const conn = new TcpConn (
196+ const conn = new UpgradedConn (
193197 upgradeRid ,
194198 underlyingConn ?. remoteAddr ,
195199 underlyingConn ?. localAddr ,
Original file line number Diff line number Diff line change @@ -194,6 +194,20 @@ class Conn {
194194 }
195195}
196196
197+ class UpgradedConn extends Conn {
198+ #rid = 0 ;
199+
200+ constructor ( rid , remoteAddr , localAddr ) {
201+ super ( rid , remoteAddr , localAddr ) ;
202+ ObjectDefineProperty ( this , internalRidSymbol , {
203+ __proto__ : null ,
204+ enumerable : false ,
205+ value : rid ,
206+ } ) ;
207+ this . #rid = rid ;
208+ }
209+ }
210+
197211class TcpConn extends Conn {
198212 #rid = 0 ;
199213
@@ -601,5 +615,6 @@ export {
601615 resolveDns ,
602616 TcpConn ,
603617 UnixConn ,
618+ UpgradedConn ,
604619 validatePort ,
605620} ;
Original file line number Diff line number Diff line change @@ -67,7 +67,7 @@ import { headersEntries } from "ext:deno_fetch/20_headers.js";
6767import { timerId } from "ext:deno_web/03_abort_signal.js" ;
6868import { clearTimeout as webClearTimeout } from "ext:deno_web/02_timers.js" ;
6969import { resourceForReadableStream } from "ext:deno_web/06_streams.js" ;
70- import { TcpConn } from "ext:deno_net/01_net.js" ;
70+ import { UpgradedConn } from "ext:deno_net/01_net.js" ;
7171import { STATUS_CODES } from "node:_http_server" ;
7272import { methods as METHODS } from "node:_http_common" ;
7373
@@ -517,7 +517,7 @@ class ClientRequest extends OutgoingMessage {
517517 ) ;
518518 assert ( typeof res . remoteAddrIp !== "undefined" ) ;
519519 assert ( typeof res . remoteAddrIp !== "undefined" ) ;
520- const conn = new TcpConn (
520+ const conn = new UpgradedConn (
521521 upgradeRid ,
522522 {
523523 transport : "tcp" ,
Original file line number Diff line number Diff line change @@ -300,7 +300,9 @@ export class TCP extends ConnectionWrap {
300300 * @return An error status code.
301301 */
302302 setNoDelay ( noDelay : boolean ) : number {
303- this [ kStreamBaseField ] . setNoDelay ( noDelay ) ;
303+ if ( "setNoDelay" in this [ kStreamBaseField ] ) {
304+ this [ kStreamBaseField ] . setNoDelay ( noDelay ) ;
305+ }
304306 return 0 ;
305307 }
306308
You can’t perform that action at this time.
0 commit comments