mirror of
https://github.com/monero-project/monero.git
synced 2025-06-21 03:34:10 -04:00
wallet: rejig to avoid prompting in wallet2
wallet2 is a library, and should not prompt for stdin. Instead, pass a function so simplewallet can prompt on stdin, and a GUI might display a window, etc.
This commit is contained in:
parent
ec5135e5b7
commit
e89994e98f
8 changed files with 97 additions and 78 deletions
|
@ -238,9 +238,6 @@ namespace tools
|
|||
|
||||
boost::optional<password_container> password_container::prompt(const bool verify, const char *message)
|
||||
{
|
||||
#ifdef HAVE_READLINE
|
||||
rdln::suspend_readline pause_readline;
|
||||
#endif
|
||||
password_container pass1{};
|
||||
password_container pass2{};
|
||||
if (is_cin_tty() ? read_from_tty(verify, message, pass1.m_password, pass2.m_password) : read_from_file(pass1.m_password))
|
||||
|
@ -249,7 +246,7 @@ namespace tools
|
|||
return boost::none;
|
||||
}
|
||||
|
||||
boost::optional<login> login::parse(std::string&& userpass, bool verify, const char* message)
|
||||
boost::optional<login> login::parse(std::string&& userpass, bool verify, const std::function<boost::optional<password_container>(bool)> &prompt)
|
||||
{
|
||||
login out{};
|
||||
password_container wipe{std::move(userpass)};
|
||||
|
@ -257,7 +254,7 @@ namespace tools
|
|||
const auto loc = wipe.password().find(':');
|
||||
if (loc == std::string::npos)
|
||||
{
|
||||
auto result = tools::password_container::prompt(verify, message);
|
||||
auto result = prompt(verify);
|
||||
if (!result)
|
||||
return boost::none;
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ namespace tools
|
|||
\return The username and password, or boost::none if
|
||||
`password_container::prompt` fails.
|
||||
*/
|
||||
static boost::optional<login> parse(std::string&& userpass, bool verify, const char* message = "Password");
|
||||
static boost::optional<login> parse(std::string&& userpass, bool verify, const std::function<boost::optional<password_container>(bool)> &prompt);
|
||||
|
||||
login(const login&) = delete;
|
||||
login(login&&) = default;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue