diff options
author | Salvatore Sanfilippo <antirez@gmail.com> | 2018-12-07 11:30:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-07 11:30:07 +0100 |
commit | 9f87ef93993b386c22ea673c8f2f1f298f0d8bc9 (patch) | |
tree | 089d574a0d9d48797b2b280137f1ac2c8a88edb4 | |
parent | 75c181ee2b91a456ec5a3ac46e1d9f2ad06fe706 (diff) | |
parent | f24ad5d83140eee04bd1cda8ee19bced0de26c11 (diff) | |
download | redis-9f87ef93993b386c22ea673c8f2f1f298f0d8bc9.tar.gz |
Merge pull request #5460 from krallin/env-password
cli: pass auth through REDISCLI_AUTH
-rw-r--r-- | src/redis-cli.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/redis-cli.c b/src/redis-cli.c index c85358144..0ae96f564 100644 --- a/src/redis-cli.c +++ b/src/redis-cli.c @@ -67,6 +67,7 @@ #define REDIS_CLI_HISTFILE_DEFAULT ".rediscli_history" #define REDIS_CLI_RCFILE_ENV "REDISCLI_RCFILE" #define REDIS_CLI_RCFILE_DEFAULT ".redisclirc" +#define REDIS_CLI_AUTH_ENV "REDISCLI_AUTH" #define CLUSTER_MANAGER_SLOTS 16384 #define CLUSTER_MANAGER_MIGRATE_TIMEOUT 60000 @@ -1419,6 +1420,14 @@ static int parseOptions(int argc, char **argv) { return i; } +static void parseEnv() { + /* Set auth from env, but do not overwrite CLI arguments if passed */ + char *auth = getenv(REDIS_CLI_AUTH_ENV); + if (auth != NULL && config.auth == NULL) { + config.auth = auth; + } +} + static sds readArgFromStdin(void) { char buf[1024]; sds arg = sdsempty(); @@ -1446,6 +1455,9 @@ static void usage(void) { " -p <port> Server port (default: 6379).\n" " -s <socket> Server socket (overrides hostname and port).\n" " -a <password> Password to use when connecting to the server.\n" +" You can also use the " REDIS_CLI_AUTH_ENV " environment\n" +" variable to pass this password more safely\n" +" (if both are used, this argument takes predecence).\n" " -u <uri> Server URI.\n" " -r <repeat> Execute specified command N times.\n" " -i <interval> When -r is used, waits <interval> seconds per command.\n" @@ -6781,6 +6793,8 @@ int main(int argc, char **argv) { argc -= firstarg; argv += firstarg; + parseEnv(); + /* Cluster Manager mode */ if (CLUSTER_MANAGER_MODE()) { clusterManagerCommandProc *proc = validateClusterManagerCommand(); |