@@ -278,6 +278,7 @@ class FakeSocket extends EventEmitter {
278
278
super ( ) ;
279
279
this . remoteAddress = opts . hostname ;
280
280
this . remotePort = opts . port ;
281
+ this . encrypted = opts . encrypted ;
281
282
}
282
283
283
284
setKeepAlive ( ) { }
@@ -561,7 +562,7 @@ class ClientRequest extends OutgoingMessage {
561
562
this.onSocket(createConnection(optsWithoutSignal));
562
563
}
563
564
}*/
564
- this . onSocket ( new FakeSocket ( ) ) ;
565
+ this . onSocket ( new FakeSocket ( { encrypted : this . _encrypted } ) ) ;
565
566
566
567
const url = this . _createUrlStrFromOptions ( ) ;
567
568
@@ -1306,7 +1307,10 @@ export class ServerResponse extends NodeWritable {
1306
1307
return status === 101 || status === 204 || status === 205 || status === 304 ;
1307
1308
}
1308
1309
1309
- constructor ( resolve : ( value : Response | PromiseLike < Response > ) => void ) {
1310
+ constructor (
1311
+ resolve : ( value : Response | PromiseLike < Response > ) => void ,
1312
+ socket : FakeSocket ,
1313
+ ) {
1310
1314
let controller : ReadableByteStreamController ;
1311
1315
const readable = new ReadableStream ( {
1312
1316
start ( c ) {
@@ -1349,7 +1353,7 @@ export class ServerResponse extends NodeWritable {
1349
1353
} ) ;
1350
1354
this . #readable = readable ;
1351
1355
this . #resolve = resolve ;
1352
- this . socket = new FakeSocket ( ) ;
1356
+ this . socket = socket ;
1353
1357
}
1354
1358
1355
1359
setHeader ( name : string , value : string ) {
@@ -1438,7 +1442,7 @@ export class IncomingMessageForServer extends NodeReadable {
1438
1442
// These properties are used by `npm:forwarded` for example.
1439
1443
socket : { remoteAddress : string ; remotePort : number } ;
1440
1444
1441
- constructor ( req : Request , remoteAddr : { hostname : string ; port : number } ) {
1445
+ constructor ( req : Request , socket : FakeSocket ) {
1442
1446
// Check if no body (GET/HEAD/OPTIONS/...)
1443
1447
const reader = req . body ?. getReader ( ) ;
1444
1448
super ( {
@@ -1465,10 +1469,7 @@ export class IncomingMessageForServer extends NodeReadable {
1465
1469
// url: (new URL(request.url).pathname),
1466
1470
this . url = req . url ?. slice ( req . url . indexOf ( "/" , 8 ) ) ;
1467
1471
this . method = req . method ;
1468
- this . socket = new FakeSocket ( {
1469
- remoteAddress : remoteAddr . hostname ,
1470
- remotePort : remoteAddr . port ,
1471
- } ) ;
1472
+ this . socket = socket ;
1472
1473
this . #req = req ;
1473
1474
}
1474
1475
@@ -1572,7 +1573,12 @@ export class ServerImpl extends EventEmitter {
1572
1573
_serve ( ) {
1573
1574
const ac = new AbortController ( ) ;
1574
1575
const handler = ( request : Request , info : Deno . ServeHandlerInfo ) => {
1575
- const req = new IncomingMessageForServer ( request , info . remoteAddr ) ;
1576
+ const socket = new FakeSocket ( {
1577
+ remoteAddress : info . remoteAddr . hostname ,
1578
+ remotePort : info . remoteAddr . port ,
1579
+ encrypted : this . _encrypted ,
1580
+ } ) ;
1581
+ const req = new IncomingMessageForServer ( request , socket ) ;
1576
1582
if ( req . upgrade && this . listenerCount ( "upgrade" ) > 0 ) {
1577
1583
const { conn, response } = upgradeHttpRaw ( request ) ;
1578
1584
const socket = new Socket ( {
@@ -1582,7 +1588,7 @@ export class ServerImpl extends EventEmitter {
1582
1588
return response ;
1583
1589
} else {
1584
1590
return new Promise < Response > ( ( resolve ) : void => {
1585
- const res = new ServerResponse ( resolve ) ;
1591
+ const res = new ServerResponse ( resolve , socket ) ;
1586
1592
this . emit ( "request" , req , res ) ;
1587
1593
} ) ;
1588
1594
}
0 commit comments