
Daniel P. Berrange wrote:
On Thu, Dec 06, 2007 at 02:28:58PM +0000, Richard W.M. Jones wrote:
We recently added a call to getpass(3) function. Needless to say this doesn't exist on Windows. More seriously the man-page for getpass on Linux has strong exhortations not to use the function.
NAME getpass - get a password
SYNOPSIS #include <unistd.h>
char *getpass( const char * prompt );
DESCRIPTION This function is obsolete. Do not use it.
The getpass() function opens /dev/tty (the controlling terminal of the process), outputs the string prompt, turns off echoing, reads one line (the "password"), restores the terminal state and closes /dev/tty again. [...] CONFORMING TO Present in SUSv2, but marked LEGACY. Removed in POSIX.1-2001.
Should we remove it? Replace it?
I'm open to suggestions? I'm not aware of any 'easy' functions to do the same thing. Could write a whole tonne of sick code which uses the tcgetattr/tcsetattr() apis to turn off echoing on stdin, but getpass was simpler. Maybe gnulib has something we can use ?
Sorry should have checked that. Yes, gnulib does have getpass, LGPLv2+, written by Jim Meyering. Rich. -- Emerging Technologies, Red Hat - http://et.redhat.com/~rjones/ Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 03798903