r12840: Add -W to smbpasswd. Thanks to William Jojo <jojowil@hvcc.edu>.
authorVolker Lendecke <vlendec@samba.org>
Wed, 11 Jan 2006 12:09:30 +0000 (12:09 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:06:04 +0000 (11:06 -0500)
Volker
(This used to be commit 2942f3594ba39748dca0238f1e1a5c744a7afffb)

source3/utils/smbpasswd.c

index 5aba1623890d09e336f5657f269dc9c46b495cc0..7659bb2997a2ae8396a5d4fa0afa23f0948e8bb6 100644 (file)
@@ -92,7 +92,7 @@ static int process_options(int argc, char **argv, int local_flags)
 
        user_name[0] = '\0';
 
-       while ((ch = getopt(argc, argv, "c:axdehminjr:sw:R:D:U:L")) != EOF) {
+       while ((ch = getopt(argc, argv, "c:axdehminjr:sw:R:D:U:LW")) != EOF) {
                switch(ch) {
                case 'L':
                        local_flags |= LOCAL_AM_ROOT;
@@ -153,6 +153,10 @@ static int process_options(int argc, char **argv, int local_flags)
                        got_username = True;
                        fstrcpy(user_name, optarg);
                        break;
+               case 'W':
+                       local_flags |= LOCAL_SET_LDAP_ADMIN_PW;
+                       *ldap_secret = '\0';
+                       break;
                }
                case 'h':
                default:
@@ -325,6 +329,10 @@ static int process_root(int local_flags)
        if (local_flags & LOCAL_SET_LDAP_ADMIN_PW) {
                printf("Setting stored password for \"%s\" in secrets.tdb\n", 
                        lp_ldap_admin_dn());
+               if ( ! *ldap_secret ) {
+                       new_passwd = prompt_for_new_password(stdin_passwd_get);
+                       fstrcpy(ldap_secret, new_passwd);
+               }
                if (!store_ldap_admin_pw(ldap_secret))
                        DEBUG(0,("ERROR: Failed to store the ldap admin password!\n"));
                goto done;