Author: vlendec
Date: 2006-01-11 12:09:30 +0000 (Wed, 11 Jan 2006)
New Revision: 12840

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12840

Log:
Add -W to smbpasswd. Thanks to William Jojo <[EMAIL PROTECTED]>.

Volker

Modified:
   branches/SAMBA_3_0/source/utils/smbpasswd.c
   trunk/source/utils/smbpasswd.c


Changeset:
Modified: branches/SAMBA_3_0/source/utils/smbpasswd.c
===================================================================
--- branches/SAMBA_3_0/source/utils/smbpasswd.c 2006-01-11 12:00:59 UTC (rev 
12839)
+++ branches/SAMBA_3_0/source/utils/smbpasswd.c 2006-01-11 12:09:30 UTC (rev 
12840)
@@ -92,7 +92,7 @@
 
        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 @@
                        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 @@
        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;

Modified: trunk/source/utils/smbpasswd.c
===================================================================
--- trunk/source/utils/smbpasswd.c      2006-01-11 12:00:59 UTC (rev 12839)
+++ trunk/source/utils/smbpasswd.c      2006-01-11 12:09:30 UTC (rev 12840)
@@ -92,7 +92,7 @@
 
        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 @@
                        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 @@
        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;

Reply via email to