| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -75,8 +75,8 @@ function onhandshakestart() { | |||
| 75 | 75 | } | |
| 76 | 76 | } | |
| 77 | 77 | ||
| 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')); | ||
| 80 | 80 | } | |
| 81 | 81 | ||
| 82 | 82 | function onhandshakedone() { | |
@@ -100,121 +100,105 @@ function loadSession(hello) { | |||
| 100 | 100 | var once = false; | |
| 101 | 101 | function onSession(err, session) { | |
| 102 | 102 | if (once) | |
| 103 | - return loadSessionDone(new errors.Error('ERR_MULTIPLE_CALLBACK'), owner); | ||
| 103 | + return owner.destroy(new errors.Error('ERR_MULTIPLE_CALLBACK')); | ||
| 104 | 104 | once = true; | |
| 105 | 105 | ||
| 106 | 106 | if (err) | |
| 107 | - return loadSessionDone(err, owner); | ||
| 107 | + return owner.destroy(err); | ||
| 108 | 108 | ||
| 109 | 109 | if (owner._handle === null) | |
| 110 | - return loadSessionDone(new errors.Error('ERR_SOCKET_CLOSED'), owner); | ||
| 110 | + return owner.destroy(new errors.Error('ERR_SOCKET_CLOSED')); | ||
| 111 | 111 | ||
| 112 | 112 | owner._handle.loadSession(session); | |
| 113 | - loadSessionDone(null, owner); | ||
| 113 | + owner._handle.endParser(); | ||
| 114 | 114 | } | |
| 115 | 115 | ||
| 116 | 116 | if (hello.sessionId.length <= 0 || | |
| 117 | 117 | hello.tlsTicket || | |
| 118 | 118 | owner.server && | |
| 119 | 119 | !owner.server.emit('resumeSession', hello.sessionId, onSession)) { | |
| 120 | - loadSessionDone(null, owner); | ||
| 120 | + owner._handle.endParser(); | ||
| 121 | 121 | } | |
| 122 | 122 | } | |
| 123 | 123 | ||
| 124 | - function loadSessionDone(err, self) { | ||
| 125 | - if (err !== null) | ||
| 126 | - return self.destroy(err); | ||
| 127 | - | ||
| 128 | - self._handle.endParser(); | ||
| 129 | - } | ||
| 130 | - | ||
| 131 | 124 | ||
| 132 | 125 | function loadSNI(info) { | |
| 133 | 126 | const owner = this.owner; | |
| 134 | 127 | const servername = info.servername; | |
| 135 | 128 | if (!servername || !owner._SNICallback) | |
| 136 | - return requestOCSP(null, owner, info); | ||
| 129 | + return requestOCSP(owner, info); | ||
| 137 | 130 | ||
| 138 | 131 | let once = false; | |
| 139 | 132 | owner._SNICallback(servername, (err, context) => { | |
| 140 | 133 | if (once) | |
| 141 | - return requestOCSP(new errors.Error('ERR_MULTIPLE_CALLBACK'), owner); | ||
| 134 | + return owner.destroy(new errors.Error('ERR_MULTIPLE_CALLBACK')); | ||
| 142 | 135 | once = true; | |
| 143 | 136 | ||
| 144 | 137 | if (err) | |
| 145 | - return requestOCSP(err, owner); | ||
| 138 | + return owner.destroy(err); | ||
| 146 | 139 | ||
| 147 | 140 | if (owner._handle === null) | |
| 148 | - return requestOCSP(new errors.Error('ERR_SOCKET_CLOSED'), owner); | ||
| 141 | + return owner.destroy(new errors.Error('ERR_SOCKET_CLOSED')); | ||
| 149 | 142 | ||
| 150 | 143 | // TODO(indutny): eventually disallow raw `SecureContext` | |
| 151 | 144 | if (context) | |
| 152 | 145 | owner._handle.sni_context = context.context || context; | |
| 153 | 146 | ||
| 154 | - requestOCSP(null, owner, info); | ||
| 147 | + requestOCSP(owner, info); | ||
| 155 | 148 | }); | |
| 156 | 149 | } | |
| 157 | 150 | ||
| 158 | 151 | ||
| 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); | ||
| 162 | 155 | ||
| 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; | ||
| 167 | 157 | ||
| 168 | 158 | if (!ctx) | |
| 169 | - ctx = self.server._sharedCreds; | ||
| 159 | + ctx = socket.server._sharedCreds; | ||
| 170 | 160 | ||
| 171 | 161 | // TLS socket is using a `net.Server` instead of a tls.TLSServer. | |
| 172 | 162 | // Some TLS properties like `server._sharedCreds` will not be present | |
| 173 | 163 | if (!ctx) | |
| 174 | - return requestOCSPDone(null, self); | ||
| 164 | + return requestOCSPDone(socket); | ||
| 175 | 165 | ||
| 176 | 166 | // TODO(indutny): eventually disallow raw `SecureContext` | |
| 177 | 167 | if (ctx.context) | |
| 178 | 168 | ctx = ctx.context; | |
| 179 | 169 | ||
| 180 | - if (self.server.listenerCount('OCSPRequest') === 0) { | ||
| 181 | - return requestOCSPDone(null, self); | ||
| 170 | + if (socket.server.listenerCount('OCSPRequest') === 0) { | ||
| 171 | + return requestOCSPDone(socket); | ||
| 182 | 172 | } | |
| 183 | 173 | ||
| 184 | 174 | let once = false; | |
| 185 | 175 | const onOCSP = (err, response) => { | |
| 186 | 176 | if (once) | |
| 187 | - return requestOCSPDone(new errors.Error('ERR_MULTIPLE_CALLBACK'), self); | ||
| 177 | + return socket.destroy(new errors.Error('ERR_MULTIPLE_CALLBACK')); | ||
| 188 | 178 | once = true; | |
| 189 | 179 | ||
| 190 | 180 | if (err) | |
| 191 | - return requestOCSPDone(err, self); | ||
| 181 | + return socket.destroy(err); | ||
| 192 | 182 | ||
| 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')); | ||
| 195 | 185 | ||
| 196 | 186 | if (response) | |
| 197 | - self._handle.setOCSPResponse(response); | ||
| 198 | - requestOCSPDone(null, self); | ||
| 187 | + socket._handle.setOCSPResponse(response); | ||
| 188 | + requestOCSPDone(socket); | ||
| 199 | 189 | }; | |
| 200 | 190 | ||
| 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); | ||
| 205 | 195 | } | |
| 206 | 196 | ||
| 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) { | ||
| 214 | 198 | try { | |
| 215 | - self._handle.certCbDone(); | ||
| 199 | + socket._handle.certCbDone(); | ||
| 216 | 200 | } catch (e) { | |
| 217 | - self.destroy(e); | ||
| 201 | + socket.destroy(e); | ||
| 218 | 202 | } | |
| 219 | 203 | } | |
| 220 | 204 | ||
@@ -980,17 +964,16 @@ Server.prototype.addContext = function(servername, context) { | |||
| 980 | 964 | ||
| 981 | 965 | function SNICallback(servername, callback) { | |
| 982 | 966 | const contexts = this.server._contexts; | |
| 983 | - var ctx; | ||
| 984 | 967 | ||
| 985 | 968 | for (var i = 0; i < contexts.length; i++) { | |
| 986 | 969 | const elem = contexts[i]; | |
| 987 | 970 | if (elem[0].test(servername)) { | |
| 988 | - ctx = elem[1]; | ||
| 989 | - break; | ||
| 971 | + callback(null, elem[1]); | ||
| 972 | + return; | ||
| 990 | 973 | } | |
| 991 | 974 | } | |
| 992 | 975 | ||
| 993 | - callback(null, ctx); | ||
| 976 | + callback(null, undefined); | ||
| 994 | 977 | } | |
| 995 | 978 | ||
| 996 | 979 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments