Comparing version 2.4.1 to 2.4.2
@@ -7,2 +7,8 @@ # Changes | ||
## v2.4.2 (2014-08-03) | ||
* Fix incorrect sequence packet errors to be catchable #867 | ||
* Fix stray protocol packet errors to be catchable #867 | ||
* Fix timing of fatal protocol errors bubbling to user #879 | ||
## v2.4.1 (2014-07-17) | ||
@@ -9,0 +15,0 @@ |
@@ -224,7 +224,16 @@ var Parser = require('./Parser'); | ||
var sequence = this._queue[0]; | ||
var Packet = this._determinePacket(sequence); | ||
var packet = new Packet({ | ||
protocol41: this._config.protocol41 | ||
}); | ||
if (!sequence) { | ||
var err = new Error('Received packet with no active sequence.'); | ||
err.code = 'PROTOCOL_STRAY_PACKET'; | ||
err.fatal = true; | ||
this._delegateError(err); | ||
return; | ||
} | ||
var Packet = this._determinePacket(sequence); | ||
var packet = new Packet({protocol41: this._config.protocol41}); | ||
var packetName = Packet.name; | ||
// Special case: Faster dispatch, and parsing done inside sequence | ||
@@ -252,3 +261,13 @@ if (Packet === Packets.RowDataPacket) { | ||
Timers.active(sequence); | ||
sequence[Packet.name](packet); | ||
if (!sequence[packetName]) { | ||
var err = new Error('Received packet in the wrong sequence.'); | ||
err.code = 'PROTOCOL_INCORRECT_PACKET_SEQUENCE'; | ||
err.fatal = true; | ||
this._delegateError(err); | ||
return; | ||
} | ||
sequence[packetName](packet); | ||
}; | ||
@@ -368,4 +387,9 @@ | ||
} else if (err.fatal) { | ||
this._queue.forEach(function(sequence) { | ||
sequence.end(err); | ||
// Send fatal error to all sequences in the queue | ||
var queue = this._queue; | ||
process.nextTick(function () { | ||
queue.forEach(function (sequence) { | ||
sequence.end(err); | ||
}); | ||
queue.length = 0; | ||
}); | ||
@@ -372,0 +396,0 @@ } |
{ | ||
"name": "mysql", | ||
"description": "A node.js driver for mysql. It is written in JavaScript, does not require compiling, and is 100% MIT licensed.", | ||
"version": "2.4.1", | ||
"version": "2.4.2", | ||
"license": "MIT", | ||
@@ -6,0 +6,0 @@ "author": "Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
300063
5392