> -----Original Message----- > From: Derek Robert Price [mailto:[EMAIL PROTECTED]] > Sent: Tuesday, August 13, 2002 11:37 PM > To: Andrey Aristarkhov > Cc: [EMAIL PROTECTED] > Subject: Re: user.c, user.h > > Texinfo, the TeX wrapper the CVS documentation uses is prety > straightforward. If you ignore some of the setup stuff at the > beginning, then it's mostly simple text tags. You might need to know > how to declare a new `node' (chapter/section) or add index entries, but > you should be able to get that by scanning what's already in > cvs.texinfo. Other useful tags are @code{}, @file{}, and @strong{} for > block quote type effects, @sc{cvs} as the name of the application under > discussion, and @pxref{} and @xref{} for cross references to other > nodes, but like I said, you should be able to get most of it by scanning > the file. You don't have to get everything right the first time either. > If I check it in I'll review it and tidy up as long as most of the > important data is there. Thanks, it will help.
> >>Oops, I almost missed getpwpath(). I deleted your code already, but > >>there is already a construct_cvspass_filename() function in `login.c' > >> > >> > >as > > > > > >>well. > >> > >> > >construct_cvspass_filename() constructs path to user's password file. My > >{set,get}pwpath functions is used to store path to CVSROOT/passwd file. > > > > > > Yep, you're right. Sorry about that. I like your abstraction and I'm > tempted to say it should be in root.c or the like and extended for all > admin files (e.g. get_repository_admin_file(root, CVSROOTADM_PASSWD)) > simply because all those sprintf("%s/%s/%s",...)'s that litter the code > look messy and don't necessarily remain portable across OSs, but I'm > hardly going to require that for acceptance of this patch. I agree with you. I can write the function in root.c. > >>Again, much of this happens in `server.c'. Please reuse code. And > >>unless I'm mistaken, this asks for the admin password - that shouldn't > >>be happening. If the user is an administrator they should already have > >> > >> > >>authenticated. > >> > >> > >I've investigated server.c and login.c before writing this code. There > >is no reusable code over there. > > > > Sorry. It's your get_password() function that duplicates code, but I > already mentioned that. My suggestion is place get_password(char * username, char * passpwd_file) as a common function and reuse it in user.c, login.c and server.c, since it has the same logic for .cvspass and CVSROOT/passwd. Function get_alias also could be placed in server.c and reused. > > >The only thing I've taken from login.c > >is GETPASS macro definition. Suppose it should be placed in cvs.h header > >file. > > > > > > I missed that GETPASS was from login.c. `cvs.h' might be an appropriate > place. Maybe a new `user.h' or `subr.h' would be more appropriate. I think user.h is more suitable place. [skipped] > > Sorry yet again. I think I misread: > > >3. User's password can be changed either by CVS Administrator or by a > >person who knows current user's CVS password. > > > > > > to mean that a non-admin user specifying another username could change > the password if they knew the user's password, which isn't like any UNIX > I've used. But it sounds like you did it Right (tm). I try to explain why I have done it in this way. User can work with repository in local and server mode. In a server mode there is no problem to detect current user name, but it's not possible in local mode - only the caller principal can be detected. Regards, Andrey _______________________________________________ Bug-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-cvs