else {
purge = 0;
}
+
+ /*
lprintf(9, "U/R REL: <%s> <%ld> <%ld> <%d> %s\n",
visits[a].v_roomname,
visits[a].v_generation,
visits[a].v_lastseen,
visits[a].v_flags,
(purge ? "**purging**" : "") );
+ */
if (purge) {
memcpy(&visits[a], &visits[a+1],
/*
* Delete a user record *and* all of its related resources.
*/
-int purge_user(char *pname) {
+int purge_user(char pname[]) {
char filename[64];
char mailboxname[ROOMNAMELEN];
struct usersupp usbuf;
struct quickroom qrbuf;
+ char lowercase_name[32];
+ int a;
+
+ for (a=0; a<=strlen(pname); ++a) {
+ lowercase_name[a] = tolower(pname[a]);
+ }
if (getuser(&usbuf, pname) != 0) {
lprintf(5, "Cannot purge user <%s> - not found\n", pname);
return(ERROR+NO_SUCH_USER);
}
+ lprintf(5, "Deleting user <%s>\n", pname);
+
/* FIX Don't delete a user who is currently logged in. */
/* Perform any purge functions registered by server extensions */
}
/* delete the userlog entry */
- cdb_delete(CDB_USERSUPP, pname, strlen(pname));
+ cdb_delete(CDB_USERSUPP, lowercase_name, strlen(lowercase_name));
/* remove the user's bio file */
sprintf(filename, "./bio/%ld", usbuf.usernum);
return;
}
- cprintf("%d %s|%s|%u|%d|%d|%d|%ld\n",
+ cprintf("%d %s|%s|%u|%d|%d|%d|%ld|%d\n",
OK,
usbuf.fullname,
usbuf.password,
usbuf.timescalled,
usbuf.posted,
(int)usbuf.axlevel,
- usbuf.usernum);
-
+ usbuf.usernum,
+ usbuf.USuserpurge);
}
usbuf.axlevel = extract_int(cmdbuf, 5);
}
}
+ if (np > 7) {
+ usbuf.USuserpurge = extract_int(cmdbuf, 7);
+ }
lputuser(&usbuf, requested_user);
if (usbuf.axlevel == 0) {