Skip to content

Commit c14aa07

Browse files
addaleaxBridgeAR
authored andcommitted
net: use kHandle symbol for accessing native handle
Use a common `kHandle` for all `StreamBase`-based streams. PR-URL: #26491 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
1 parent 3e54f90 commit c14aa07

3 files changed

Lines changed: 23 additions & 14 deletions

File tree

‎lib/internal/http2/core.js‎

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,13 @@ const {
106106
updateSettingsBuffer
107107
}=require('internal/http2/util');
108108
const{
109-
createWriteWrap,
110109
writeGeneric,
111110
writevGeneric,
112111
onStreamRead,
113112
kAfterAsyncWrite,
114113
kMaybeDestroy,
115-
kUpdateTimer
114+
kUpdateTimer,
115+
kHandle
116116
}=require('internal/stream_base_commons');
117117
const{
118118
kTimeout,
@@ -151,7 +151,6 @@ const TLSServer = tls.Server;
151151
constkAlpnProtocol=Symbol('alpnProtocol');
152152
constkAuthority=Symbol('authority');
153153
constkEncrypted=Symbol('encrypted');
154-
constkHandle=Symbol('handle');
155154
constkID=Symbol('id');
156155
constkInit=Symbol('init');
157156
constkInfoHeaders=Symbol('sent-info-headers');
@@ -1798,13 +1797,12 @@ class Http2Stream extends Duplex {
17981797
if(!this.headersSent)
17991798
this[kProceed]();
18001799

1801-
constreq=createWriteWrap(this[kHandle]);
1802-
req.stream=this[kID];
1800+
letreq;
18031801

18041802
if(writev)
1805-
writevGeneric(this,req,data,cb);
1803+
req=writevGeneric(this,data,cb);
18061804
else
1807-
writeGeneric(this,req,data,encoding,cb);
1805+
req=writeGeneric(this,data,encoding,cb);
18081806

18091807
trackWriteState(this,req.bytes);
18101808
}

‎lib/internal/stream_base_commons.js‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const { owner_symbol } = require('internal/async_hooks').symbols;
1717
constkMaybeDestroy=Symbol('kMaybeDestroy');
1818
constkUpdateTimer=Symbol('kUpdateTimer');
1919
constkAfterAsyncWrite=Symbol('kAfterAsyncWrite');
20+
constkHandle=Symbol('kHandle');
2021

2122
functionhandleWriteReq(req,data,encoding){
2223
const{ handle }=req;
@@ -87,7 +88,8 @@ function createWriteWrap(handle) {
8788
returnreq;
8889
}
8990

90-
functionwritevGeneric(self,req,data,cb){
91+
functionwritevGeneric(self,data,cb){
92+
constreq=createWriteWrap(self[kHandle]);
9193
varallBuffers=data.allBuffers;
9294
varchunks;
9395
vari;
@@ -109,12 +111,15 @@ function writevGeneric(self, req, data, cb) {
109111
if(err===0)req._chunks=chunks;
110112

111113
afterWriteDispatched(self,req,err,cb);
114+
returnreq;
112115
}
113116

114-
functionwriteGeneric(self,req,data,encoding,cb){
117+
functionwriteGeneric(self,data,encoding,cb){
118+
constreq=createWriteWrap(self[kHandle]);
115119
varerr=handleWriteReq(req,data,encoding);
116120

117121
afterWriteDispatched(self,req,err,cb);
122+
returnreq;
118123
}
119124

120125
functionafterWriteDispatched(self,req,err,cb){
@@ -186,4 +191,5 @@ module.exports = {
186191
kAfterAsyncWrite,
187192
kMaybeDestroy,
188193
kUpdateTimer,
194+
kHandle
189195
};

‎lib/net.js‎

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,11 @@ const {
5858
symbols: { async_id_symbol, owner_symbol }
5959
}=require('internal/async_hooks');
6060
const{
61-
createWriteWrap,
6261
writevGeneric,
6362
writeGeneric,
6463
onStreamRead,
6564
kAfterAsyncWrite,
65+
kHandle,
6666
kUpdateTimer
6767
}=require('internal/stream_base_commons');
6868
const{
@@ -236,7 +236,7 @@ function Socket(options) {
236236
// probably be supplied by async_hooks.
237237
this[async_id_symbol]=-1;
238238
this._hadError=false;
239-
this._handle=null;
239+
this[kHandle]=null;
240240
this._parent=null;
241241
this._host=null;
242242
this[kLastWriteQueueSize]=0;
@@ -714,11 +714,11 @@ Socket.prototype._writeGeneric = function(writev, data, encoding, cb) {
714714

715715
this._unrefTimer();
716716

717-
varreq=createWriteWrap(this._handle);
717+
letreq;
718718
if(writev)
719-
writevGeneric(this,req,data,cb);
719+
req=writevGeneric(this,data,cb);
720720
else
721-
writeGeneric(this,req,data,encoding,cb);
721+
req=writeGeneric(this,data,encoding,cb);
722722
if(req.async)
723723
this[kLastWriteQueueSize]=req.bytes;
724724
};
@@ -1608,6 +1608,11 @@ Object.defineProperty(TCP.prototype, 'owner', {
16081608
set(v){returnthis[owner_symbol]=v;}
16091609
});
16101610

1611+
Object.defineProperty(Socket.prototype,'_handle',{
1612+
get(){returnthis[kHandle];},
1613+
set(v){returnthis[kHandle]=v;}
1614+
});
1615+
16111616

16121617
Server.prototype.listenFD=internalUtil.deprecate(function(fd,type){
16131618
returnthis.listen({fd: fd});

0 commit comments

Comments
 (0)