diff options
| author | Dusan Klinec <dusan.klinec@gmail.com> | 2018-08-30 13:35:05 +0200 |
|---|---|---|
| committer | Dusan Klinec <dusan.klinec@gmail.com> | 2018-08-31 15:51:59 +0200 |
| commit | 76f95f052e4ab7f6074464f11b436a7374017b52 (patch) | |
| tree | 20412b6189a48708e1116906f15a5c56ae1c8cbd /src/daemon/main.cpp | |
| parent | 91c7d68b2d476c86e8ba710ccac6f3c64b91f1a5 (diff) | |
| download | monzero-core-76f95f052e4ab7f6074464f11b436a7374017b52.tar.gz monzero-core-76f95f052e4ab7f6074464f11b436a7374017b52.tar.xz monzero-core-76f95f052e4ab7f6074464f11b436a7374017b52.zip | |
rpc: allow to pass RPC login via RPC_LOGIN env var
- passing by parameter is insecure as it is shown in the process list
Diffstat (limited to 'src/daemon/main.cpp')
| -rw-r--r-- | src/daemon/main.cpp | 7 |
1 files changed, 5 insertions, 2 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 |
