• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.0.25b/source/utils/
1/*
2   Unix SMB/CIFS implementation.
3   passdb editing frontend
4
5   Copyright (C) Jeremy Allison  1998
6   Copyright (C) Andrew Tridgell 1998
7   Copyright (C) Tim Potter      2000
8   Copyright (C) Simo Sorce      2000
9   Copyright (C) Martin Pool     2001
10   Copyright (C) Gerald Carter   2002
11   Copyright (C) Andrew Bartlett 2003
12
13   This program is free software; you can redistribute it and/or modify
14   it under the terms of the GNU General Public License as published by
15   the Free Software Foundation; either version 2 of the License, or
16   (at your option) any later version.
17
18   This program is distributed in the hope that it will be useful,
19   but WITHOUT ANY WARRANTY; without even the implied warranty of
20   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21   GNU General Public License for more details.
22
23   You should have received a copy of the GNU General Public License
24   along with this program; if not, write to the Free Software
25   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26*/
27
28#include "includes.h"
29
30/*************************************************************
31 Utility function to prompt for passwords from stdin. Each
32 password entered must end with a newline.
33*************************************************************/
34char *stdin_new_passwd( void)
35{
36	static fstring new_pw;
37	size_t len;
38
39	ZERO_ARRAY(new_pw);
40
41	/*
42	 * if no error is reported from fgets() and string at least contains
43	 * the newline that ends the password, then replace the newline with
44	 * a null terminator.
45	 */
46	if ( fgets(new_pw, sizeof(new_pw), stdin) != NULL) {
47		if ((len = strlen(new_pw)) > 0) {
48			if(new_pw[len-1] == '\n')
49				new_pw[len - 1] = 0;
50		}
51	}
52	return(new_pw);
53}
54
55/*************************************************************
56 Utility function to get passwords via tty or stdin
57 Used if the '-s' (smbpasswd) or '-t' (pdbedit) option is set
58 to silently get passwords to enable scripting.
59*************************************************************/
60char *get_pass( const char *prompt, BOOL stdin_get)
61{
62	char *p;
63	if (stdin_get) {
64		p = stdin_new_passwd();
65	} else {
66		p = getpass( prompt);
67	}
68	return smb_xstrdup( p);
69}
70