Socket
Socket
Sign inDemoInstall

engine.io

Package Overview
Dependencies
17
Maintainers
2
Versions
147
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 5.1.0 to 5.1.1

8

CHANGELOG.md

@@ -0,1 +1,9 @@

## [5.1.1](https://github.com/socketio/engine.io/compare/5.1.0...5.1.1) (2021-05-16)
### Bug Fixes
* properly close the websocket connection upon handshake error ([4360686](https://github.com/socketio/engine.io/commit/43606865e5299747cbb31f3ed9baf4567502a879))
# [5.1.0](https://github.com/socketio/engine.io/compare/5.0.0...5.1.0) (2021-05-04)

@@ -2,0 +10,0 @@

59

lib/server.js

@@ -239,3 +239,3 @@ const qs = require("querystring");

});
sendErrorMessage(req, res, errorCode, errorContext);
abortRequest(res, errorCode, errorContext);
return;

@@ -248,3 +248,5 @@ }

} else {
this.handshake(req._query.transport, req);
const closeConnection = (errorCode, errorContext) =>
abortRequest(res, errorCode, errorContext);
this.handshake(req._query.transport, req, closeConnection);
}

@@ -278,5 +280,7 @@ };

* @param {Object} request object
* @param {Function} closeConnection
*
* @api private
*/
async handshake(transportName, req) {
async handshake(transportName, req, closeConnection) {
const protocol = req._query.EIO === "4" ? 4 : 3; // 3rd revision by default

@@ -294,7 +298,3 @@ if (protocol === 3 && !this.opts.allowEIO3) {

});
sendErrorMessage(
req,
req.res,
Server.errors.UNSUPPORTED_PROTOCOL_VERSION
);
closeConnection(Server.errors.UNSUPPORTED_PROTOCOL_VERSION);
return;

@@ -317,3 +317,3 @@ }

});
sendErrorMessage(req, req.res, Server.errors.BAD_REQUEST);
closeConnection(Server.errors.BAD_REQUEST);
return;

@@ -349,3 +349,3 @@ }

});
sendErrorMessage(req, req.res, Server.errors.BAD_REQUEST);
closeConnection(Server.errors.BAD_REQUEST);
return;

@@ -398,3 +398,3 @@ }

});
abortConnection(socket, errorCode, errorContext);
abortUpgrade(socket, errorCode, errorContext);
return;

@@ -407,4 +407,4 @@ }

// delegate to ws
this.ws.handleUpgrade(req, socket, head, conn => {
this.onWebSocket(req, conn);
this.ws.handleUpgrade(req, socket, head, websocket => {
this.onWebSocket(req, socket, websocket);
});

@@ -420,4 +420,4 @@ });

*/
onWebSocket(req, socket) {
socket.on("error", onUpgradeError);
onWebSocket(req, socket, websocket) {
websocket.on("error", onUpgradeError);

@@ -429,3 +429,3 @@ if (

debug("transport doesnt handle upgraded requests");
socket.close();
websocket.close();
return;

@@ -438,3 +438,3 @@ }

// keep a reference to the ws.Socket
req.websocket = socket;
req.websocket = websocket;

@@ -445,9 +445,9 @@ if (id) {

debug("upgrade attempt for closed client");
socket.close();
websocket.close();
} else if (client.upgrading) {
debug("transport has already been trying to upgrade");
socket.close();
websocket.close();
} else if (client.upgraded) {
debug("transport had already been upgraded");
socket.close();
websocket.close();
} else {

@@ -457,3 +457,3 @@ debug("upgrading existing transport");

// transport error handling takes over
socket.removeListener("error", onUpgradeError);
websocket.removeListener("error", onUpgradeError);

@@ -471,5 +471,7 @@ const transport = new transports[req._query.transport](req);

// transport error handling takes over
socket.removeListener("error", onUpgradeError);
websocket.removeListener("error", onUpgradeError);
this.handshake(req._query.transport, req);
const closeConnection = (errorCode, errorContext) =>
abortUpgrade(socket, errorCode, errorContext);
this.handshake(req._query.transport, req, closeConnection);
}

@@ -479,3 +481,3 @@

debug("websocket error before upgrade");
// socket.close() not needed
// websocket.close() not needed
}

@@ -566,5 +568,4 @@ }

/**
* Sends an Engine.IO Error Message
* Close the HTTP long-polling request
*
* @param req - the request object
* @param res - the response object

@@ -577,3 +578,3 @@ * @param errorCode - the error code

function sendErrorMessage(req, res, errorCode, errorContext) {
function abortRequest(res, errorCode, errorContext) {
const statusCode = errorCode === Server.errors.FORBIDDEN ? 403 : 400;

@@ -595,3 +596,3 @@ const message =

/**
* Closes the connection
* Close the WebSocket connection
*

@@ -605,3 +606,3 @@ * @param {net.Socket} socket

function abortConnection(socket, errorCode, errorContext) {
function abortUpgrade(socket, errorCode, errorContext = {}) {
socket.on("error", () => {

@@ -608,0 +609,0 @@ debug("ignoring error from closed connection");

{
"name": "engine.io",
"version": "5.1.0",
"version": "5.1.1",
"description": "The realtime engine behind Socket.IO. Provides the foundation of a bidirectional connection between client and server",

@@ -39,3 +39,3 @@ "main": "lib/engine.io.js",

"eiows": "^3.3.0",
"engine.io-client": "5.1.0",
"engine.io-client": "5.1.1",
"engine.io-client-v3": "npm:engine.io-client@3.5.0",

@@ -42,0 +42,0 @@ "eslint": "^4.19.1",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc