Skip to content

Commit 5a97c2e

Browse files
committed
tests: improve SSL request detection in unit tests
1 parent 10651a1 commit 5a97c2e

File tree

2 files changed

+23
-26
lines changed

2 files changed

+23
-26
lines changed

lib/protocol/Parser.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,8 @@ Parser.prototype.resume = function() {
167167
process.nextTick(this.write.bind(this));
168168
};
169169

170-
Parser.prototype.peak = function() {
171-
return this._buffer[this._offset];
170+
Parser.prototype.peak = function peak(offset) {
171+
return this._buffer[this._offset + (offset >>> 0)];
172172
};
173173

174174
Parser.prototype.parseUnsignedNumber = function parseUnsignedNumber(bytes) {

test/FakeServer.js

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
// An experimental fake MySQL server for tricky integration tests. Expanded
22
// as needed.
33

4-
var Buffer = require('safe-buffer').Buffer;
5-
var common = require('./common');
6-
var Charsets = common.Charsets;
7-
var Crypto = require('crypto');
8-
var Net = require('net');
9-
var tls = require('tls');
10-
var Packets = common.Packets;
11-
var PacketWriter = common.PacketWriter;
12-
var Parser = common.Parser;
13-
var Types = common.Types;
14-
var Auth = require(common.lib + '/protocol/Auth');
15-
var Errors = common.Errors;
16-
var EventEmitter = require('events').EventEmitter;
17-
var Util = require('util');
4+
var Buffer = require('safe-buffer').Buffer;
5+
var common = require('./common');
6+
var Charsets = common.Charsets;
7+
var ClientConstants = common.ClientConstants;
8+
var Crypto = require('crypto');
9+
var Net = require('net');
10+
var tls = require('tls');
11+
var Packets = common.Packets;
12+
var PacketWriter = common.PacketWriter;
13+
var Parser = common.Parser;
14+
var Types = common.Types;
15+
var Auth = require(common.lib + '/protocol/Auth');
16+
var Errors = common.Errors;
17+
var EventEmitter = require('events').EventEmitter;
18+
var Util = require('util');
1819

1920
module.exports = FakeServer;
2021
Util.inherits(FakeServer, EventEmitter);
@@ -257,8 +258,8 @@ FakeConnection.prototype._handleQueryPacket = function _handleQueryPacket(packet
257258
this._parser.resetPacketNumber();
258259
};
259260

260-
FakeConnection.prototype._parsePacket = function(header) {
261-
var Packet = this._determinePacket(header);
261+
FakeConnection.prototype._parsePacket = function() {
262+
var Packet = this._determinePacket();
262263
var packet = new Packet({protocol41: true});
263264

264265
packet.parse(this._parser);
@@ -350,15 +351,11 @@ FakeConnection.prototype._parsePacket = function(header) {
350351
}
351352
};
352353

353-
FakeConnection.prototype._determinePacket = function(header) {
354+
FakeConnection.prototype._determinePacket = function _determinePacket() {
354355
if (!this._clientAuthenticationPacket) {
355-
// first packet phase
356-
357-
if (header.length === 32) {
358-
return Packets.SSLRequestPacket;
359-
}
360-
361-
return Packets.ClientAuthenticationPacket;
356+
return !this._ssl && (this._parser.peak(1) << 8) & ClientConstants.CLIENT_SSL
357+
? Packets.SSLRequestPacket
358+
: Packets.ClientAuthenticationPacket;
362359
}
363360

364361
if (this._handshakeOptions.oldPassword && !this._oldPasswordPacket) {

0 commit comments

Comments
 (0)