Skip to content

Commit

Permalink
Merge pull request #788 from lpinca/remove/dead-code
Browse files Browse the repository at this point in the history
Remove some dead code
  • Loading branch information
3rd-Eden committed Jul 19, 2016
2 parents 3291c47 + 3cbdeff commit 419411f
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 57 deletions.
9 changes: 5 additions & 4 deletions lib/PerMessageDeflate.js
Expand Up @@ -247,12 +247,13 @@ class PerMessageDeflate {
}

function onData(data) {
if (self._maxPayload !== undefined && self._maxPayload !== null && self._maxPayload > 0){
if (self._maxPayload > 0) {
cumulativeBufferLength += data.length;
if (cumulativeBufferLength > self._maxPayload){
buffers = [];
if (cumulativeBufferLength > self._maxPayload) {
const err = new Error(`payload cannot exceed ${self._maxPayload} bytes`);
err.closeCode = 1009;
buffers.length = 0;
cleanup();
var err = {type:1009};
callback(err);
return;
}
Expand Down
81 changes: 28 additions & 53 deletions lib/Receiver.js
Expand Up @@ -357,7 +357,7 @@ class Receiver {
extension.decompress(messageBuffer, fin, (err, buffer) => {
if (this.dead) return;
if (err) {
callback(new Error('invalid compressed data'));
callback(err.closeCode === 1009 ? err : new Error('invalid compressed data'));
return;
}
callback(null, buffer);
Expand Down Expand Up @@ -448,19 +448,13 @@ var opcodes = {
// decode length
var firstLength = data[1] & 0x7f;
if (firstLength < 126) {
if (this.maxPayloadExceeded(firstLength)){
this.error('Maximumpayload exceeded in compressed text message. Aborting...', 1009);
return;
}
if (this.maxPayloadExceeded(firstLength)) return;
opcodes['1'].getData.call(this, firstLength);
}
else if (firstLength == 126) {
this.expectHeader(2, (data) => {
var length = readUInt16BE.call(data, 0);
if (this.maxPayloadExceeded(length)){
this.error('Maximumpayload exceeded in compressed text message. Aborting...', 1009);
return;
}
if (this.maxPayloadExceeded(length)) return;
opcodes['1'].getData.call(this, length);
});
}
Expand All @@ -471,11 +465,8 @@ var opcodes = {
return;
}
var length = readUInt32BE.call(data, 4);
if (this.maxPayloadExceeded(length)){
this.error('Maximumpayload exceeded in compressed text message. Aborting...', 1009);
return;
}
opcodes['1'].getData.call(this, readUInt32BE.call(data, 4));
if (this.maxPayloadExceeded(length)) return;
opcodes['1'].getData.call(this, length);
});
}
},
Expand All @@ -500,22 +491,19 @@ var opcodes = {
this.messageHandlers.push((callback) => {
this.applyExtensions(packet, state.lastFragment, state.compressed, (err, buffer) => {
if (err) {
if (err.type === 1009){
return this.error('Maximumpayload exceeded in compressed text message. Aborting...', 1009);
}
return this.error(err.message, 1007);
this.error(err.message, err.closeCode === 1009 ? 1009 : 1007);
return;
}

if (buffer != null) {
if (this.maxPayload == 0 || (this.maxPayload > 0 &&
(this.currentMessageLength + buffer.length) < this.maxPayload) ){
(this.currentMessageLength + buffer.length) < this.maxPayload)) {
this.currentMessage.push(buffer);
}
else {
this.currentMessage = null;
this.currentMessage = [];
this.currentMessageLength = 0;
this.error(new Error('Maximum payload exceeded. maxPayload: ' + this.maxPayload), 1009);
this.error('payload cannot exceed ' + this.maxPayload + ' bytes', 1009);
return;
}
this.currentMessageLength += buffer.length;
Expand Down Expand Up @@ -543,19 +531,13 @@ var opcodes = {
// decode length
var firstLength = data[1] & 0x7f;
if (firstLength < 126) {
if (this.maxPayloadExceeded(firstLength)){
this.error('Max payload exceeded in compressed text message. Aborting...', 1009);
return;
}
if (this.maxPayloadExceeded(firstLength)) return;
opcodes['2'].getData.call(this, firstLength);
}
else if (firstLength == 126) {
this.expectHeader(2, (data) => {
var length = readUInt16BE.call(data, 0);
if (this.maxPayloadExceeded(length)){
this.error('Max payload exceeded in compressed text message. Aborting...', 1009);
return;
}
if (this.maxPayloadExceeded(length)) return;
opcodes['2'].getData.call(this, length);
});
}
Expand All @@ -566,10 +548,7 @@ var opcodes = {
return;
}
var length = readUInt32BE.call(data, 4, true);
if (this.maxPayloadExceeded(length)){
this.error('Max payload exceeded in compressed text message. Aborting...', 1009);
return;
}
if (this.maxPayloadExceeded(length)) return;
opcodes['2'].getData.call(this, length);
});
}
Expand All @@ -590,37 +569,33 @@ var opcodes = {
}
},
finish: function(mask, data) {
var self = this;
var packet = this.unmask(mask, data, true) || new Buffer(0);
var state = clone(this.state);
this.messageHandlers.push(function(callback) {
self.applyExtensions(packet, state.lastFragment, state.compressed, function(err, buffer) {
this.messageHandlers.push((callback) => {
this.applyExtensions(packet, state.lastFragment, state.compressed, (err, buffer) => {
if (err) {
if (err.type === 1009){
return self.error('Max payload exceeded in compressed binary message. Aborting...', 1009);
}
return self.error(err.message, 1007);
this.error(err.message, err.closeCode === 1009 ? 1009 : 1007);
return;
}

if (buffer != null) {
var length = (self.currentMessageLength + buffer.length);
if (self.maxPayload == 0 || (self.maxPayload > 0 && length < self.maxPayload)) {
self.currentMessage.push(buffer);
self.currentMessageLength += length;
if (this.maxPayload == 0 || (this.maxPayload > 0 &&
(this.currentMessageLength + buffer.length) < this.maxPayload)) {
this.currentMessage.push(buffer);
}
else {
self.currentMessage = null;
self.currentMessage = [];
self.currentMessageLength = 0;
self.error(new Error('Maximum payload exceeded'), 1009);
this.currentMessage = [];
this.currentMessageLength = 0;
this.error('payload cannot exceed ' + this.maxPayload + ' bytes', 1009);
return;
}
this.currentMessageLength += buffer.length;
}

if (state.lastFragment) {
var messageBuffer = Buffer.concat(self.currentMessage);
self.currentMessage = [];
self.currentMessageLength = 0;
self.onbinary(messageBuffer, {masked: state.masked, buffer: messageBuffer});
var messageBuffer = Buffer.concat(this.currentMessage);
this.currentMessage = [];
this.currentMessageLength = 0;
this.onbinary(messageBuffer, {masked: state.masked, buffer: messageBuffer});
}
callback();
});
Expand Down

0 comments on commit 419411f

Please sign in to comment.