From nbm@rucus.ru.ac.za Tue Aug 24 01:47:24 1999
Return-Path: <nbm@rucus.ru.ac.za>
Received: from rucus.ru.ac.za (rucus.ru.ac.za [146.231.29.2])
	by hub.freebsd.org (Postfix) with SMTP id B0FF315089
	for <FreeBSD-gnats-submit@freebsd.org>; Tue, 24 Aug 1999 01:47:17 -0700 (PDT)
	(envelope-from nbm@rucus.ru.ac.za)
Received: (qmail 82715 invoked by uid 1003); 24 Aug 1999 08:48:10 -0000
Message-Id: <19990824084810.82714.qmail@rucus.ru.ac.za>
Date: 24 Aug 1999 08:48:10 -0000
From: nbm@rucus.ru.ac.za
Reply-To: nbm@rucus.ru.ac.za
To: FreeBSD-gnats-submit@freebsd.org
Subject: Allow pw to use pwd_mkdb's -u option
X-Send-Pr-Version: 3.2

>Number:         13346
>Category:       bin
>Synopsis:       Allow pw to use pwd_mkdb's -u option
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    sheldonh
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 24 01:50:01 PDT 1999
>Closed-Date:    Wed Dec 15 06:03:00 PST 1999
>Last-Modified:  Wed Dec 15 06:04:34 PST 1999
>Originator:     Neil Blakey-Milner
>Release:        FreeBSD 3.0-STABLE i386
>Organization:
Rhodes University Computer Users' Society
>Environment:

FreeBSD rucus.ru.ac.za 3.0-STABLE FreeBSD 3.0-STABLE #0: Tue Feb  9 22:52:23 GMT 1999     grahams@rucus.ru.ac.za:/usr/src/sys/compile/RUCUS-SMP  i386

>Description:

pw issues a full pwd_mkdb for each pw useradd or usermod operation,
which was complained about on the ISP mailing list.  This patch teaches
pw to use -u user if the operation is not deletion.

>How-To-Repeat:

Have a few thousand pwd entries
Do a hundred pw usermods to achieve something
Realize you're late for supper.

>Fix:

cvs diff: Diffing .
Index: pwupd.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/pw/pwupd.c,v
retrieving revision 1.8
diff -u -r1.8 pwupd.c
--- pwupd.c	1999/02/23 07:15:11	1.8
+++ pwupd.c	1999/08/20 07:08:02
@@ -168,8 +168,12 @@
 			 */
 			if (pwd != NULL)
 				fmtpwentry(pwbuf, pwd, PWF_MASTER);
-			if ((rc = fileupdate(getpwpath(_MASTERPASSWD), 0644, pwbuf, pfx, l, mode)) != 0)
-				rc = pwdb(NULL) == 0;
+			if ((rc = fileupdate(getpwpath(_MASTERPASSWD), 0644, pwbuf, pfx, l, mode)) != 0) {
+				if (mode == UPD_DELETE)
+					rc = pwdb(NULL) == 0;
+				else
+					rc = pwdb("-u", user, NULL) == 0;
+			}
 		}
 	}
 	return rc;

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->analyzed 
State-Changed-By: sheldonh 
State-Changed-When: Mon Aug 30 04:29:40 PDT 1999 
State-Changed-Why:  
Committed, left in this state for an MFC. 


Responsible-Changed-From-To: freebsd-bugs->sheldonh 
Responsible-Changed-By: sheldonh 
Responsible-Changed-When: Mon Aug 30 04:29:40 PDT 1999 
Responsible-Changed-Why:  
Mine. :) 
State-Changed-From-To: analyzed->suspended 
State-Changed-By: sheldonh 
State-Changed-When: Fri Oct 1 05:26:05 PDT 1999 
State-Changed-Why:  
Use the correct GNATS state for an issue awaiting MFC. Should happen 
RSN. 
State-Changed-From-To: suspended->closed 
State-Changed-By: sheldonh 
State-Changed-When: Wed Dec 15 06:03:00 PST 1999 
State-Changed-Why:  
This was merged into STABLE by davidn with an inadequate commit 
message in rev 1.7.2.2 of pwupd.c . 
>Unformatted:
