diff options
Diffstat (limited to 'src/Client/UserCommands.cpp')
-rw-r--r-- | src/Client/UserCommands.cpp | 30 |
1 files changed, 3 insertions, 27 deletions
diff --git a/src/Client/UserCommands.cpp b/src/Client/UserCommands.cpp index 21259d0..166a54d 100644 --- a/src/Client/UserCommands.cpp +++ b/src/Client/UserCommands.cpp @@ -20,12 +20,12 @@ #include "UserCommands.h" #include "Application.h" #include "CommandParser.h" +#include "PasswordReader.h" #include <Common/RequestManager.h> #include <Common/UserManager.h> #include <iostream> -#include <termios.h> namespace Mad { @@ -511,32 +511,8 @@ void UserCommands::setPasswordCommand(CommandParser *commandParser, const std::v return; } - // TODO Extract this as a method - struct termios termold, termnew; - - if(tcgetattr(STDIN_FILENO, &termold) != 0) { - std::cerr << "Unable to set up terminal for password entry." << std::endl; - return; - } - - termnew = termold; - termnew.c_lflag &= ~ECHO; - if(tcsetattr(STDIN_FILENO, TCSAFLUSH, &termnew) != 0) { - std::cerr << "Unable to set up terminal for password entry." << std::endl; - return; - } - - std::string password, password2; - - std::cout << "Password: " << std::flush; - std::getline(std::cin, password); - std::cout << std::endl; - - std::cout << "Verify password: " << std::flush; - std::getline(std::cin, password2); - std::cout << std::endl; - - tcsetattr(STDIN_FILENO, TCSAFLUSH, &termold); + std::string password = PasswordReader::readPassword("Password: "); + std::string password2 = PasswordReader::readPassword("Verify password: "); if(password != password2) { std::cerr << "Passwords do not match." << std::endl; |