From eb97d576eb4499a18e9dd8fb9b23b77a9d0bc2df Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Tue, 25 Dec 2001 21:12:07 +0000 Subject: Version 0.1.10 from FTP git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- io.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'io.c') diff --git a/io.c b/io.c index aef361c64..91aec690b 100755 --- a/io.c +++ b/io.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -257,3 +258,42 @@ void ast_io_dump(struct io_context *ioc) } ast_log(LOG_DEBUG, "================================================\n"); } + +/* Unrelated I/O functions */ + +int ast_hide_password(int fd) +{ + struct termios tios; + int res; + int old; + if (!isatty(fd)) + return -1; + res = tcgetattr(fd, &tios); + if (res < 0) + return -1; + old = tios.c_lflag & (ECHO | ECHONL); + tios.c_lflag &= ~ECHO; + tios.c_lflag |= ECHONL; + res = tcsetattr(fd, TCSAFLUSH, &tios); + if (res < 0) + return -1; + return old; +} + +int ast_restore_tty(int fd, int oldstate) +{ + int res; + struct termios tios; + if (oldstate < 0) + return 0; + res = tcgetattr(fd, &tios); + if (res < 0) + return -1; + tios.c_lflag &= ~(ECHO | ECHONL); + tios.c_lflag |= oldstate; + res = tcsetattr(fd, TCSAFLUSH, &tios); + if (res < 0) + return -1; + return 0; +} + -- cgit v1.2.3