Socket
Socket
Sign inDemoInstall

ws

Package Overview
Dependencies
Maintainers
4
Versions
169
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ws - npm Package Compare versions

Comparing version 8.3.0 to 8.4.0

8

lib/receiver.js

@@ -420,3 +420,9 @@ 'use strict';

data = this.consume(this._payloadLength);
if (this._masked) unmask(data, this._mask);
if (
this._masked &&
(this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0
) {
unmask(data, this._mask);
}
}

@@ -423,0 +429,0 @@

@@ -14,3 +14,3 @@ /* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^net|tls$" }] */

const mask = Buffer.alloc(4);
const maskBuffer = Buffer.alloc(4);

@@ -26,5 +26,13 @@ /**

* @param {Object} [extensions] An object containing the negotiated extensions
* @param {Function} [generateMask] The function used to generate the masking
* key
*/
constructor(socket, extensions) {
constructor(socket, extensions, generateMask) {
this._extensions = extensions || {};
if (generateMask) {
this._generateMask = generateMask;
this._maskBuffer = Buffer.alloc(4);
}
this._socket = socket;

@@ -47,4 +55,8 @@

* FIN bit
* @param {Function} [options.generateMask] The function used to generate the
* masking key
* @param {Boolean} [options.mask=false] Specifies whether or not to mask
* `data`
* @param {Buffer} [options.maskBuffer] The buffer used to store the masking
* key
* @param {Number} options.opcode The opcode

@@ -59,4 +71,22 @@ * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be

static frame(data, options) {
const merge = options.mask && options.readOnly;
let offset = options.mask ? 6 : 2;
let mask;
let merge = false;
let offset = 2;
let skipMasking = false;
if (options.mask) {
mask = options.maskBuffer || maskBuffer;
if (options.generateMask) {
options.generateMask(mask);
} else {
randomFillSync(mask, 0, 4);
}
skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0;
if (options.readOnly && !skipMasking) merge = true;
offset = 6;
}
let payloadLength = data.length;

@@ -88,4 +118,2 @@

randomFillSync(mask, 0, 4);
target[1] |= 0x80;

@@ -97,2 +125,4 @@ target[offset - 4] = mask[0];

if (skipMasking) return [target, data];
if (merge) {

@@ -165,2 +195,4 @@ applyMask(data, mask, target, offset, data.length);

mask,
maskBuffer: this._maskBuffer,
generateMask: this._generateMask,
readOnly: false

@@ -210,2 +242,4 @@ }),

mask,
maskBuffer: this._maskBuffer,
generateMask: this._generateMask,
readOnly

@@ -255,2 +289,4 @@ }),

mask,
maskBuffer: this._maskBuffer,
generateMask: this._generateMask,
readOnly

@@ -311,2 +347,4 @@ }),

mask: options.mask,
maskBuffer: this._maskBuffer,
generateMask: this._generateMask,
readOnly: toBuffer.readOnly

@@ -327,2 +365,4 @@ };

mask: options.mask,
maskBuffer: this._maskBuffer,
generateMask: this._generateMask,
readOnly: toBuffer.readOnly

@@ -345,4 +385,8 @@ }),

* FIN bit
* @param {Function} [options.generateMask] The function used to generate the
* masking key
* @param {Boolean} [options.mask=false] Specifies whether or not to mask
* `data`
* @param {Buffer} [options.maskBuffer] The buffer used to store the masking
* key
* @param {Boolean} [options.readOnly=false] Specifies whether `data` can be

@@ -349,0 +393,0 @@ * modified

@@ -195,2 +195,4 @@ /* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^Readable$" }] */

* @param {Object} options Options object
* @param {Function} [options.generateMask] The function used to generate the
* masking key
* @param {Number} [options.maxPayload=0] The maximum allowed message size

@@ -210,3 +212,3 @@ * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or

this._sender = new Sender(socket, this._extensions);
this._sender = new Sender(socket, this._extensions, options.generateMask);
this._receiver = receiver;

@@ -618,2 +620,4 @@ this._socket = socket;

* redirects
* @param {Function} [options.generateMask] The function used to generate the
* masking key
* @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the

@@ -905,2 +909,3 @@ * handshake request

websocket.setSocket(socket, head, {
generateMask: opts.generateMask,
maxPayload: opts.maxPayload,

@@ -907,0 +912,0 @@ skipUTF8Validation: opts.skipUTF8Validation

2

package.json
{
"name": "ws",
"version": "8.3.0",
"version": "8.4.0",
"description": "Simple to use, blazing fast and thoroughly tested websocket client and server for Node.js",

@@ -5,0 +5,0 @@ "keywords": [

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc