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