Snapshots

This commit is contained in:
Luis Fernando Molina committed 2020-05-10 14:17:33 +02:00
1 parent e91125801d
commit 6368221937
75 files changed
+8943 -4332

No files matched your search

+10 -12
View File
@@ -7,10 +7,9 @@ const { createServer, STATUS_CODES } = require('http');
const PerMessageDeflate = require('./permessage-deflate');
const WebSocket = require('./websocket');
const { format, parse } = require('./extension');
const { GUID } = require('./constants');
const { GUID, kWebSocket } = require('./constants');
const keyRegex = /^[+/0-9A-Za-z]{22}==$/;
const kUsedByWebSocketServer = Symbol('kUsedByWebSocketServer');
/**
* Class representing a WebSocket server.
@@ -79,13 +78,6 @@ class WebSocketServer extends EventEmitter {
callback
);
} else if (options.server) {
if (options.server[kUsedByWebSocketServer]) {
throw new Error(
'The HTTP/S server is already being used by another WebSocket server'
);
}
options.server[kUsedByWebSocketServer] = true;
this._server = options.server;
}
@@ -153,8 +145,6 @@ class WebSocketServer extends EventEmitter {
server.close(() => this.emit('close'));
return;
}
delete server[kUsedByWebSocketServer];
}
process.nextTick(emitClose, this);
@@ -264,6 +254,7 @@ class WebSocketServer extends EventEmitter {
* @param {net.Socket} socket The network socket between the server and client
* @param {Buffer} head The first packet of the upgraded stream
* @param {Function} cb Callback
* @throws {Error} If called more than once with the same socket
* @private
*/
completeUpgrade(key, extensions, req, socket, head, cb) {
@@ -272,6 +263,13 @@ class WebSocketServer extends EventEmitter {
//
if (!socket.readable || !socket.writable) return socket.destroy();
if (socket[kWebSocket]) {
throw new Error(
'server.handleUpgrade() was called more than once with the same ' +
'socket, possibly due to a misconfiguration'
);
}
const digest = createHash('sha1')
.update(key + GUID)
.digest('base64');
@@ -386,7 +384,7 @@ function abortHandshake(socket, code, message, headers) {
message = message || STATUS_CODES[code];
headers = {
Connection: 'close',
'Content-type': 'text/html',
'Content-Type': 'text/html',
'Content-Length': Buffer.byteLength(message),
...headers
};