status = GDSS_Verify(buf, strlen(buf), info[U_SIGNATURE], &si);
#ifdef DEBUG
hex_dump(info[U_SIGNATURE]);
+ sprintf(buf, "GDSS_Verify => %d", status);
+ Put_message(buf);
#endif /* DEBUG */
#else /* GDSS */
status = 0;
/* Sign record */
#ifdef GDSS
if (strcmp(info[U_NAME], UNIQUE_LOGIN)) {
- sprintf(temp_buf, "%s:%s", info[U_NAME], info[U_MITID]);
+ if (name)
+ sprintf(temp_buf, "%s:%s", newname, info[U_MITID]);
+ else
+ sprintf(temp_buf, "%s:%s", info[U_NAME], info[U_MITID]);
si.rawsig = NULL;
i = GDSS_Verify(temp_buf, strlen(temp_buf), info[U_SIGNATURE], &si);
/* If it's already signed OK, don't resign it. */
{
register int status;
char txt_buf[BUFSIZ];
- char * qargs[2];
+ char * qargs[2], **args;
+ struct qelem *elem = NULL;
if (one_item) {
sprintf(txt_buf, "Deactivate user %s (y/n)", info[NAME]);
com_err(program_name, status, " in update_user_status");
sprintf(txt_buf, "User %s not deactivated due to errors.", info[NAME]);
Put_message(txt_buf);
+ } else if (YesNoQuestion("Also deactivate matching list and filesystem (y/n)",
+ FALSE) == TRUE) {
+ if (status = do_mr_query("get_list_info", 1, &(info[NAME]),
+ StoreInfo, (char *) &elem)) {
+ com_err(program_name, status, " getting list info, not deactivating list or filesystem");
+ return;
+ }
+ args =(char **) (QueueTop(elem)->q_data);
+ free(args[L_ACTIVE]);
+ args[L_ACTIVE] = strsave("0");
+ FreeAndClear(&args[L_MODTIME], TRUE);
+ FreeAndClear(&args[L_MODBY], TRUE);
+ FreeAndClear(&args[L_MODWITH], TRUE);
+ SlipInNewName(args, args[L_NAME]);
+ if (status = do_mr_query("update_list", CountArgs(args), args,
+ Scream, (char *) NULL)) {
+ com_err(program_name, status, " updating list, not deactivating list or filesystem");
+ FreeInfo(args);
+ FreeQueue(elem);
+ return;
+ }
+ FreeInfo(args);
+ FreeQueue(elem);
+ elem = (struct qelem *) NULL;
+ if (status = do_mr_query("get_filesys_by_label", 1, &(info[NAME]),
+ StoreInfo, (char *) &elem)) {
+ com_err(program_name, status, " getting filsys info, not deactivating filesystem");
+ FreeInfo(args);
+ FreeQueue(elem);
+ return;
+ }
+ args = (char **) (QueueTop(elem)->q_data);
+ free(args[FS_TYPE]);
+ args[FS_TYPE] = strsave("ERR");
+ free(args[FS_COMMENTS]);
+ args[FS_COMMENTS] = strsave("Locker disabled; call 3-1325 for help");
+ FreeAndClear(&args[FS_MODTIME], TRUE);
+ FreeAndClear(&args[FS_MODBY], TRUE);
+ FreeAndClear(&args[FS_MODWITH], TRUE);
+ SlipInNewName(args, args[FS_NAME]);
+ if (status = do_mr_query("update_filesys", CountArgs(args), args,
+ Scream, (char *) NULL)) {
+ com_err(program_name, status, " updating filesystem, not deactivating filesystem");
+ FreeInfo(args);
+ FreeQueue(elem);
+ return;
+ }
+ FreeInfo(args);
+ FreeQueue(elem);
}
}