X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=src%2Fclient%2Fgetpass.c;h=b04ec7e504cf66b6e3b81de123e162347bc8d46f;hp=6e151f41e023551d748cbeb7ccb13df7862f41d5;hb=54b1e7e167fd594d39ff91fd78e34cb8b411162b;hpb=691d0a27c19b32e2b0fe610776d0c124471a5245 diff --git a/src/client/getpass.c b/src/client/getpass.c index 6e151f41e..b04ec7e50 100644 --- a/src/client/getpass.c +++ b/src/client/getpass.c @@ -38,6 +38,8 @@ #include #ifdef _WIN32 #include +#else +#include #endif #endif #include "misc.h" @@ -62,7 +64,19 @@ set_echo_if_tty(int on) return -1; return 1; #else - return 0; + struct termios tcattr; + + if (tcgetattr(0, &tcattr) < 0) + return 0; + + if (on) + tcattr.c_lflag |= ECHO; + else + tcattr.c_lflag &= ~ECHO; + + if (tcsetattr(0, TCSAFLUSH, &tcattr) < 0) + return -1; + return 1; #endif } #endif /* !HAVE_GETPASS */