You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
Fix auth emitting the error even though a callback is present
Fix auth manipulating the returned error And this is also removing some dead code
This commit is contained in:
12
index.js
12
index.js
@@ -206,20 +206,20 @@ RedisClient.prototype.do_auth = function () {
|
|||||||
debug("Warning: Redis server does not require a password, but a password was supplied.");
|
debug("Warning: Redis server does not require a password, but a password was supplied.");
|
||||||
err = null;
|
err = null;
|
||||||
res = "OK";
|
res = "OK";
|
||||||
|
} else if (self.auth_callback) {
|
||||||
|
self.auth_callback(err);
|
||||||
|
self.auth_callback = null;
|
||||||
} else {
|
} else {
|
||||||
return self.emit("error", new Error("Auth error: " + err.message));
|
self.emit("error", err);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res = res.toString();
|
res = res.toString();
|
||||||
if (res !== "OK") {
|
|
||||||
return self.emit("error", new Error("Auth failed: " + res));
|
|
||||||
}
|
|
||||||
|
|
||||||
debug("Auth succeeded " + self.address + " id " + self.connection_id);
|
debug("Auth succeeded " + self.address + " id " + self.connection_id);
|
||||||
|
|
||||||
if (self.auth_callback) {
|
if (self.auth_callback) {
|
||||||
self.auth_callback(err, res);
|
self.auth_callback(null, res);
|
||||||
self.auth_callback = null;
|
self.auth_callback = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -34,7 +34,7 @@ describe("client authentication", function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("raises error when auth is bad", function (done) {
|
it("emits error when auth is bad without callback", function (done) {
|
||||||
if (helper.redisProcess().spawnFailed()) this.skip();
|
if (helper.redisProcess().spawnFailed()) this.skip();
|
||||||
|
|
||||||
client = redis.createClient.apply(redis.createClient, args);
|
client = redis.createClient.apply(redis.createClient, args);
|
||||||
@@ -48,6 +48,18 @@ describe("client authentication", function () {
|
|||||||
client.auth(auth + 'bad');
|
client.auth(auth + 'bad');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("returns an error when auth is bad with a callback", function (done) {
|
||||||
|
if (helper.redisProcess().spawnFailed()) this.skip();
|
||||||
|
|
||||||
|
client = redis.createClient.apply(redis.createClient, args);
|
||||||
|
|
||||||
|
client.auth(auth + 'bad', function (err, res) {
|
||||||
|
assert.strictEqual(err.command_used, 'AUTH');
|
||||||
|
assert.ok(/ERR invalid password/.test(err.message));
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
if (ip === 'IPv4') {
|
if (ip === 'IPv4') {
|
||||||
it('allows auth to be provided as part of redis url', function (done) {
|
it('allows auth to be provided as part of redis url', function (done) {
|
||||||
if (helper.redisProcess().spawnFailed()) this.skip();
|
if (helper.redisProcess().spawnFailed()) this.skip();
|
||||||
@@ -71,6 +83,19 @@ describe("client authentication", function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('allows auth and no_ready_check to be provided as config option for client', function (done) {
|
||||||
|
if (helper.redisProcess().spawnFailed()) this.skip();
|
||||||
|
|
||||||
|
var args = config.configureClient(parser, ip, {
|
||||||
|
auth_pass: auth,
|
||||||
|
no_ready_check: true
|
||||||
|
});
|
||||||
|
client = redis.createClient.apply(redis.createClient, args);
|
||||||
|
client.on("ready", function () {
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('allows auth to be provided post-hoc with auth method', function (done) {
|
it('allows auth to be provided post-hoc with auth method', function (done) {
|
||||||
if (helper.redisProcess().spawnFailed()) this.skip();
|
if (helper.redisProcess().spawnFailed()) this.skip();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user