Only set Redis client password if password is specified

This attempts to fix a Redis connection issue when the Redis password
is an empty string.

See https://github.com/timvisee/send-docker-compose/issues/3#issuecomment-822885578
This commit is contained in:
timvisee 2021-04-20 18:37:19 +02:00
parent 27e6606516
commit 1b6c5b8f97
No known key found for this signature in database
GPG Key ID: B8DB720BC383E172
1 changed files with 6 additions and 3 deletions

View File

@ -8,10 +8,10 @@ module.exports = function(config) {
//eslint-disable-next-line security/detect-non-literal-require //eslint-disable-next-line security/detect-non-literal-require
const redis = require(redis_lib); const redis = require(redis_lib);
const client = redis.createClient({
var client_config = {
host: config.redis_host, host: config.redis_host,
port: config.redis_port, port: config.redis_port,
password: config.redis_password,
retry_strategy: options => { retry_strategy: options => {
if (options.total_retry_time > config.redis_retry_time) { if (options.total_retry_time > config.redis_retry_time) {
client.emit('error', 'Retry time exhausted'); client.emit('error', 'Retry time exhausted');
@ -20,7 +20,10 @@ module.exports = function(config) {
return config.redis_retry_delay; return config.redis_retry_delay;
} }
}); };
if (config.redis_password != null && config.redis_password.length > 0)
client_config.password = config.redis_password;
const client = redis.createClient(client_config);
client.ttlAsync = promisify(client.ttl); client.ttlAsync = promisify(client.ttl);
client.hgetallAsync = promisify(client.hgetall); client.hgetallAsync = promisify(client.hgetall);