On Thu, Dec 06, 2007 at 02:36:04PM +0000, 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 ? And looking at the glibc source, this is basically what gepass() does. It opens /dev/tty, uses tcgetattr/tcsetattr to turn off echo, reads a single line and then cleans up restoring echo and closing /dev/tty. Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list