1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-07 13:22:56 +03:00

fix emitting internal auth error on reconnect

This commit is contained in:
Ruben Bridgewater
2017-07-20 20:23:58 -03:00
parent 50774aed8a
commit 16632f43f1
3 changed files with 13 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ Features
Bugfixes
- Fixed not always copying subscribe unsubscribe arguments
- Fixed emitting internal errors while reconnecting with auth
## v.2.7.1 - 14 Mar, 2017

View File

@@ -228,6 +228,8 @@ function create_parser (self) {
RedisClient.prototype.create_stream = function () {
var self = this;
var first_attempt = !this.stream;
// Init parser
this.reply_parser = create_parser(this);
@@ -304,7 +306,13 @@ RedisClient.prototype.create_stream = function () {
// Fire the command before redis is connected to be sure it's the first fired command
if (this.auth_pass !== undefined) {
this.ready = true;
this.auth(this.auth_pass);
// Fail silently as we might not be able to connect
this.auth(this.auth_pass, function (err) {
if (err && first_attempt) {
self.command_queue.get(0).callback = noop;
self.emit('error', err);
}
});
this.ready = false;
}
};

View File

@@ -260,9 +260,10 @@ describe('client authentication', function () {
password: 'wrong_password',
parser: parser
});
client.once('error', function (err) {
client.on('error', function (err) {
assert.strictEqual(err.message, 'ERR invalid password');
done();
// Make sure no other errors are reported
setTimeout(done, 50);
});
});