aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2018-09-18 17:36:43 +0200
committerRiccardo Spagni <ric@spagni.net>2018-09-18 17:36:43 +0200
commit3cfa45cc7dc0f2f42293334f0125f5cc8a404452 (patch)
tree27501405ab644970772a82009e827bbfe2d2c2bd /src
parentMerge pull request #4311 (diff)
parentrpc: allow to pass RPC login via RPC_LOGIN env var (diff)
downloadmonero-3cfa45cc7dc0f2f42293334f0125f5cc8a404452.tar.xz
Merge pull request #4317
76f95f05 rpc: allow to pass RPC login via RPC_LOGIN env var (Dusan Klinec)
Diffstat (limited to 'src')
-rw-r--r--src/daemon/main.cpp7
-rw-r--r--src/rpc/rpc_args.cpp14
2 files changed, 15 insertions, 6 deletions
diff --git a/src/daemon/main.cpp b/src/daemon/main.cpp
index 82ece62a9..f483ba6c9 100644
--- a/src/daemon/main.cpp
+++ b/src/daemon/main.cpp
@@ -239,11 +239,14 @@ int main(int argc, char const * argv[])
return 1;
}
+ const char *env_rpc_login = nullptr;
+ const bool has_rpc_arg = command_line::has_arg(vm, arg.rpc_login);
+ const bool use_rpc_env = !has_rpc_arg && (env_rpc_login = getenv("RPC_LOGIN")) != nullptr && strlen(env_rpc_login) > 0;
boost::optional<tools::login> login{};
- if (command_line::has_arg(vm, arg.rpc_login))
+ if (has_rpc_arg || use_rpc_env)
{
login = tools::login::parse(
- command_line::get_arg(vm, arg.rpc_login), false, [](bool verify) {
+ has_rpc_arg ? command_line::get_arg(vm, arg.rpc_login) : std::string(env_rpc_login), false, [](bool verify) {
#ifdef HAVE_READLINE
rdln::suspend_readline pause_readline;
#endif
diff --git a/src/rpc/rpc_args.cpp b/src/rpc/rpc_args.cpp
index d4044d11b..60c78480a 100644
--- a/src/rpc/rpc_args.cpp
+++ b/src/rpc/rpc_args.cpp
@@ -82,11 +82,17 @@ namespace cryptonote
}
}
- if (command_line::has_arg(vm, arg.rpc_login))
+ const char *env_rpc_login = nullptr;
+ const bool has_rpc_arg = command_line::has_arg(vm, arg.rpc_login);
+ const bool use_rpc_env = !has_rpc_arg && (env_rpc_login = getenv("RPC_LOGIN")) != nullptr && strlen(env_rpc_login) > 0;
+ boost::optional<tools::login> login{};
+ if (has_rpc_arg || use_rpc_env)
{
- config.login = tools::login::parse(command_line::get_arg(vm, arg.rpc_login), true, [](bool verify) {
- return tools::password_container::prompt(verify, "RPC server password");
- });
+ config.login = tools::login::parse(
+ has_rpc_arg ? command_line::get_arg(vm, arg.rpc_login) : std::string(env_rpc_login), true, [](bool verify) {
+ return tools::password_container::prompt(verify, "RPC server password");
+ });
+
if (!config.login)
return boost::none;