summaryrefslogtreecommitdiffstats
path: root/src/Client/UserCommands.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Client/UserCommands.cpp')
-rw-r--r--src/Client/UserCommands.cpp30
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;