Skip to content

Commit d53bb6a

Browse files
committed
squash: implement feedback from @BridgeAR
1 parent b2bcfd9 commit d53bb6a

File tree

1 file changed

+36
-53
lines changed

1 file changed

+36
-53
lines changed

lib/_tls_wrap.js

Lines changed: 36 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ function onhandshakestart() {
7575
}
7676
}
7777

78-
function emitSessionAttackError(self) {
79-
self._emitTLSError(new errors.Error('ERR_TLS_SESSION_ATTACK'));
78+
function emitSessionAttackError(socket) {
79+
socket._emitTLSError(new errors.Error('ERR_TLS_SESSION_ATTACK'));
8080
}
8181

8282
function onhandshakedone() {
@@ -100,121 +100,105 @@ function loadSession(hello) {
100100
var once = false;
101101
function onSession(err, session) {
102102
if (once)
103-
return loadSessionDone(new errors.Error('ERR_MULTIPLE_CALLBACK'), owner);
103+
return owner.destroy(new errors.Error('ERR_MULTIPLE_CALLBACK'));
104104
once = true;
105105

106106
if (err)
107-
return loadSessionDone(err, owner);
107+
return owner.destroy(err);
108108

109109
if (owner._handle === null)
110-
return loadSessionDone(new errors.Error('ERR_SOCKET_CLOSED'), owner);
110+
return owner.destroy(new errors.Error('ERR_SOCKET_CLOSED'));
111111

112112
owner._handle.loadSession(session);
113-
loadSessionDone(null, owner);
113+
owner._handle.endParser();
114114
}
115115

116116
if (hello.sessionId.length <= 0 ||
117117
hello.tlsTicket ||
118118
owner.server &&
119119
!owner.server.emit('resumeSession', hello.sessionId, onSession)) {
120-
loadSessionDone(null, owner);
120+
owner._handle.endParser();
121121
}
122122
}
123123

124-
function loadSessionDone(err, self) {
125-
if (err !== null)
126-
return self.destroy(err);
127-
128-
self._handle.endParser();
129-
}
130-
131124

132125
function loadSNI(info) {
133126
const owner = this.owner;
134127
const servername = info.servername;
135128
if (!servername || !owner._SNICallback)
136-
return requestOCSP(null, owner, info);
129+
return requestOCSP(owner, info);
137130

138131
let once = false;
139132
owner._SNICallback(servername, (err, context) => {
140133
if (once)
141-
return requestOCSP(new errors.Error('ERR_MULTIPLE_CALLBACK'), owner);
134+
return owner.destroy(new errors.Error('ERR_MULTIPLE_CALLBACK'));
142135
once = true;
143136

144137
if (err)
145-
return requestOCSP(err, owner);
138+
return owner.destroy(err);
146139

147140
if (owner._handle === null)
148-
return requestOCSP(new errors.Error('ERR_SOCKET_CLOSED'), owner);
141+
return owner.destroy(new errors.Error('ERR_SOCKET_CLOSED'));
149142

150143
// TODO(indutny): eventually disallow raw `SecureContext`
151144
if (context)
152145
owner._handle.sni_context = context.context || context;
153146

154-
requestOCSP(null, owner, info);
147+
requestOCSP(owner, info);
155148
});
156149
}
157150

158151

159-
function requestOCSP(err, self, hello) {
160-
if (err !== null)
161-
return self.destroy(err);
152+
function requestOCSP(socket, info) {
153+
if (!info.OCSPRequest || !socket.server)
154+
return requestOCSPDone(socket);
162155

163-
if (!hello.OCSPRequest || !self.server)
164-
return requestOCSPDone(null, self);
165-
166-
let ctx = self._handle.sni_context;
156+
let ctx = socket._handle.sni_context;
167157

168158
if (!ctx)
169-
ctx = self.server._sharedCreds;
159+
ctx = socket.server._sharedCreds;
170160

171161
// TLS socket is using a `net.Server` instead of a tls.TLSServer.
172162
// Some TLS properties like `server._sharedCreds` will not be present
173163
if (!ctx)
174-
return requestOCSPDone(null, self);
164+
return requestOCSPDone(socket);
175165

176166
// TODO(indutny): eventually disallow raw `SecureContext`
177167
if (ctx.context)
178168
ctx = ctx.context;
179169

180-
if (self.server.listenerCount('OCSPRequest') === 0) {
181-
return requestOCSPDone(null, self);
170+
if (socket.server.listenerCount('OCSPRequest') === 0) {
171+
return requestOCSPDone(socket);
182172
}
183173

184174
let once = false;
185175
const onOCSP = (err, response) => {
186176
if (once)
187-
return requestOCSPDone(new errors.Error('ERR_MULTIPLE_CALLBACK'), self);
177+
return socket.destroy(new errors.Error('ERR_MULTIPLE_CALLBACK'));
188178
once = true;
189179

190180
if (err)
191-
return requestOCSPDone(err, self);
181+
return socket.destroy(err);
192182

193-
if (self._handle === null)
194-
return requestOCSPDone(new errors.Error('ERR_SOCKET_CLOSED'), self);
183+
if (socket._handle === null)
184+
return socket.destroy(new errors.Error('ERR_SOCKET_CLOSED'));
195185

196186
if (response)
197-
self._handle.setOCSPResponse(response);
198-
requestOCSPDone(null, self);
187+
socket._handle.setOCSPResponse(response);
188+
requestOCSPDone(socket);
199189
};
200190

201-
self.server.emit('OCSPRequest',
202-
ctx.getCertificate(),
203-
ctx.getIssuer(),
204-
onOCSP);
191+
socket.server.emit('OCSPRequest',
192+
ctx.getCertificate(),
193+
ctx.getIssuer(),
194+
onOCSP);
205195
}
206196

207-
function requestOCSPDone(err, self) {
208-
if (err !== null)
209-
return self.destroy(err);
210-
211-
if (self._handle === null)
212-
return self.destroy(new errors.Error('ERR_SOCKET_CLOSED'));
213-
197+
function requestOCSPDone(socket) {
214198
try {
215-
self._handle.certCbDone();
199+
socket._handle.certCbDone();
216200
} catch (e) {
217-
self.destroy(e);
201+
socket.destroy(e);
218202
}
219203
}
220204

@@ -980,17 +964,16 @@ Server.prototype.addContext = function(servername, context) {
980964

981965
function SNICallback(servername, callback) {
982966
const contexts = this.server._contexts;
983-
var ctx;
984967

985968
for (var i = 0; i < contexts.length; i++) {
986969
const elem = contexts[i];
987970
if (elem[0].test(servername)) {
988-
ctx = elem[1];
989-
break;
971+
callback(null, elem[1]);
972+
return;
990973
}
991974
}
992975

993-
callback(null, ctx);
976+
callback(null, undefined);
994977
}
995978

996979

0 commit comments

Comments
 (0)