/* Copyright (C) 1991, Marcus J. Ranum. All rights reserved. */ #ifndef lint static char RCSid[] = "$Header: /home/mjr/hacks/umud/CMD/RCS/passwd.c,v 1.3 91/10/28 21:34:56 mjr Exp $"; #endif /* configure all options BEFORE including system stuff. */ #include "config.h" #include "mud.h" #include "match.h" #include "vars.h" /* set passwords */ /* ARGSUSED */ cmd_password(argc,argv,who,aswho) int argc; char *argv[]; char *who; char *aswho; { char pbuf[MAXOID]; int wiz; char *opw; if((wiz = ut_flagged(aswho,var_wiz)) == 0 && !ut_isobjown(aswho,who)) { say(who,"not owner.\n",(char *)0); return(1); } if((opw = ut_getatt(who,0,typ_str,var_pass,(char *)0)) == (char *)0) return(0); /* if there is already no password, farg it */ if(*opw != '\0' && !wiz) { rot_init(who); rot_decode(opw,pbuf); if(strcmp(argv[1],pbuf)) { say(who,"bad password.\n",(char *)0); return(1); } } if(strlen(argv[2]) < 6) { say(who,"passwords must be longer than 6 characters.\n",(char *)0); return(1); } if(ut_setpass(who,argv[2])) { say(who,"cannot set password.\n",(char *)0); return(1); } say(who,"set password.\n",(char *)0); return(0); } /* ARGSUSED */ cmd__password(argc,argv,who,aswho) int argc; char *argv[]; char *who; char *aswho; { char ob[MAXOID]; if(matchlocal(who,argv[1],ut_loc(who),MTCH_UNIQ|MTCH_MEOK|MTCH_NONLOC,ob)) return(1); if(ut_setpass(ob,argv[2])) { say(who,"cannot set password.\n",(char *)0); return(1); } return(0); }