~vcs-imports/samba/main

« back to all changes in this revision

Viewing changes to source/utils/passwd_util.c

  • Committer: jerry
  • Date: 2006-07-14 21:48:39 UTC
  • Revision ID: vcs-imports@canonical.com-20060714214839-586d8c489a8fcead
gutting trunk to move to svn:externals

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
*************************************************************/
34
 
char *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
 
*************************************************************/
60
 
char *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
 
}