aboutsummaryrefslogtreecommitdiff
path: root/src/linux/getpass.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/linux/getpass.c')
-rw-r--r--src/linux/getpass.c39
1 files changed, 0 insertions, 39 deletions
diff --git a/src/linux/getpass.c b/src/linux/getpass.c
deleted file mode 100644
index d439a2a..0000000
--- a/src/linux/getpass.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <termios.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-char *getpass(const char *prompt)
-{
- int fd;
- struct termios s, t;
- ssize_t l;
- static char password[128];
-
- if ((fd = open("/dev/tty", O_RDONLY|O_NOCTTY)) < 0) fd = 0;
-
- tcgetattr(fd, &t);
- s = t;
- t.c_lflag &= ~(ECHO|ISIG);
- t.c_lflag |= ICANON;
- t.c_iflag &= ~(INLCR|IGNCR);
- t.c_iflag |= ICRNL;
- tcsetattr(fd, TCSAFLUSH, &t);
- tcdrain(fd);
-
- fputs(prompt, stderr);
- fflush(stderr);
-
- l = read(fd, password, sizeof password);
- if (l >= 0) {
- if (l > 0 && password[l-1] == '\n') l--;
- password[l] = 0;
- }
-
- tcsetattr(fd, TCSAFLUSH, &s);
-
- if (fd > 2) close(fd);
-
- return password;
-}