count = L_MODTIME;
break;
case MM_MOD_FILSYS:
- fn = "mod_filsys";
- count = FS_MODTIME;
+ f = GetAndClearForm("mod_filsys");
+ if (f == NULL) {
+ display_error("Unknown form in ModifyCallback!\n");
+ return;
+ }
+ f->extrastuff = form->extrastuff;
+ f->menu = form->menu;
+ StoreField(f, FS_NAME, argv[FS_NAME + offset]);
+ StoreField(f, FS_TYPE, argv[FS_TYPE + offset]);
+ for (i = FS_TYPE+1; i < FS_MODTIME-1; i++)
+ if (f->inputlines[i+1]->type == FT_BOOLEAN)
+ f->inputlines[i+1]->returnvalue.booleanvalue =
+ strcmp(argv[i + offset], "0") ? 1 : 0;
+ else
+ StoreField(f, i+1, argv[i + offset]);
+ StoreField(f, FS_TYPE+1, argv[FS_L_TYPE + offset]);
+ return;
break;
case MM_MOD_NFS:
f = GetAndClearForm("mod_nfs");
*/
count = 0;
for (p = form->inputlines; *p; p++)
- count++;
+ if (!((*p)->insensitive))
+ count++;
while (count-- > 1)
_XmMgrTraversal(form->formpointer, XmTRAVERSE_PREV_TAB_GROUP);
+ MoiraFocusOut(form->inputlines[0]->mywidget,
+ (XEvent *)NULL, (String *)NULL, 0);
process_form(form, FALSE);
}
argv[0] = "*";
if (!*stringval(form, 1))
argv[1] = "*";
+ AppendToLog("Kerberos mappings:\n");
break;
case MM_SET_POBOX:
if (!strcmp(argv[1], "POP"))
case MM_SHOW_ACE_USE:
if (boolval(form, 2)) {
sprintf(buf, "R%s", stringval(form, 0));
- argv[0] = buf;
+ argv[0] = strsave(buf);
}
+ sprintf(buf, "Objects %s %s can administer\n",
+ stringval(form, 0), stringval(form, 1));
+ AppendToLog(buf);
break;
case MM_MOD_LIST:
if (!strcmp(form->formname, "mod_list")) {
form->extrastuff = (caddr_t) sq_create();
break;
case MM_ADD_FILSYS:
- StoreHost(form, FS_MACHINE, &argv[FS_MACHINE]);
- if (!strcmp(stringval(form, FS_TYPE), "AFS") ||
- !strcmp(stringval(form, FS_TYPE), "FSGROUP") ||
+ for (i = FS_TYPE+1; i < FS_MODTIME-1; i++)
+ argv[i] = StringValue(form, i+1);
+ argv[FS_L_TYPE] = StringValue(form, FS_TYPE+1);
+ StoreHost(form, FS_MACHINE+1, &argv[FS_MACHINE]);
+ if (!strcmp(stringval(form, FS_TYPE), "FSGROUP") ||
!strcmp(stringval(form, FS_TYPE), "MUL"))
- argv[FS_MACHINE] = "\\[NONE\\]";
+ argv[FS_MACHINE+1] = "\\[NONE\\]";
break;
case MM_MOD_FILSYS:
if (!strcmp(form->formname, "mod_filsys")) {
qy = "update_filesys";
- for (i = 0; i < FS_MODTIME; i++)
- argv[i + 1] = StringValue(form, i);
- StoreHost(form, FS_MACHINE, &argv[FS_MACHINE + 1]);
argv[0] = form->extrastuff;
+ argv[1] = StringValue(form, 0);
+ argv[2] = StringValue(form, 1);
+ argv[FS_L_TYPE+1] = StringValue(form, 2);
+ StoreHost(form, FS_MACHINE+1, &argv[FS_MACHINE + 1]);
+ for (i = FS_MACHINE+1; i < FS_L_TYPE; i++)
+ argv[i] = StringValue(form, i);
argc = FS_MODTIME + 1;
break;
}
* in the radiobox to find the one selected and the one after
* it. The name of the widget is also the member name.
*/
- {
+ if (!tty) {
Widget w, kid;
argv[3] = "";
break;
}
}
+ } else {
+ printf("Don't know how to do this\007\007!\n");
}
if (*argv[3] == 0) argv[3] = "Z";
#ifdef DEBUG
case MM_SHOW_CLDATA:
if (!*stringval(form, 1))
argv[1] = "*";
+ AppendToLog("Cluster data:\n");
break;
case MM_ADD_PCAP:
StoreHost(form, PCAP_SPOOL_HOST, &argv[PCAP_SPOOL_HOST]);
form->extrastuff = (caddr_t) "mod_service";
retfunc = ModifyCallback;
break;
+ case MM_RESET_SERVICE:
+ argv[1] = argv[2] = argv[3] = argv[4] = "0";
+ argv[5] = "";
+ break;
+ case MM_RESET_HOST:
+ StoreHost(form, 1, &argv[1]);
+ argv[2] = argv[3] = argv[4] = argv[5] = argv[7] = argv[8] = "0";
+ argv[6] = "";
+ break;
+ case MM_CLEAR_HOST:
+ StoreHost(form, 1, &argv[1]);
+ break;
case MM_SHOW_HOST:
if (!*stringval(form, 0))
argv[0] = "*";
retfunc = ModifyCallback;
break;
case MM_SAVE_LOG:
- if (!write_log_to_file(stringval(form, 0)) && remove)
+ if (!write_log_to_file(stringval(form, 0)) && !tty && remove)
XtUnmanageChild(form->formpointer);
return;
case MM_NEW_VALUE:
for (s = argv[2]; *s; s++)
if (islower(*s)) *s = toupper(*s);
break;
+ case MM_TRIGGER_DCM:
+ if (form->inputlines[0]->returnvalue.booleanvalue) {
+ i = mr_do_update();
+ if (i)
+ com_err(program_name, i, " starting DCM");
+ else
+ AppendToLog("DCM started.\n");
+ }
+ if (!tty && remove)
+ XtUnmanageChild(form->formpointer);
+ return;
}
if (argc == -1) {
if (f) {
GetKeywords(f, FS_TYPE, "filesys");
sprintf(buf, "fs_access_%s", stringval(f, FS_TYPE));
- GetKeywords(f, FS_ACCESS, buf);
- GetKeywords(f, FS_L_TYPE, "lockertype");
- if (!strcmp(stringval(f, FS_MACHINE), "[NONE]"))
- StoreField(f, FS_MACHINE, "\\[NONE\\]");
+ GetKeywords(f, FS_ACCESS+1, buf);
+ GetKeywords(f, FS_TYPE+1, "lockertype");
+ if (!strcmp(stringval(f, FS_MACHINE+1), "[NONE]"))
+ StoreField(f, FS_MACHINE+1, "\\[NONE\\]");
f->inputlines[FS_TYPE]->valuechanged = MoiraValueChanged;
} else
AppendToLog("Done.\n");
case MM_CLEAR_SERVICE:
case MM_RESET_SERVICE:
case MM_ENABLE_DCM:
- case MM_TRIGGER_DCM:
case MM_ADD_ZEPHYR:
case MM_DEL_ZEPHYR:
case MM_ADD_PCAP:
case MM_RESET_POBOX:
AppendToLog("Done.\n");
break;
+ case MM_SHOW_KRBMAP:
+ case MM_SHOW_CLDATA:
+ case MM_SHOW_MCMAP:
+ case MM_SHOW_MEMBERS:
+ case MM_STATS:
+ case MM_CLIENTS:
+ case MM_SHOW_ACE_USE:
+ AppendToLog("\n");
+ break;
case MM_NEW_VALUE:
CacheNewValue(GetForm(form->menu->form), (int) form->menu->accel,
form->extrastuff, StringValue(form, 0));
if (remove && form->formpointer)
XtUnmanageChild(form->formpointer);
- if (f)
- DisplayForm(f);
+ if (f) {
+ if (tty)
+ TtyForm(f);
+ else
+ DisplayForm(f);
+ }
}
AppendToLog("Services and Hosts with failed updates:\n");
argv[0] = argv[2] = "DONTCARE";
argv[1] = "TRUE";
- i = MoiraQuery("qualified_get_server", 3, argv, retfunc, NULL);
+ i = MoiraQuery("qualified_get_server", 3, argv, retfunc,
+ (char *)&dummy);
if (i && i != MR_NO_MATCH)
com_err(program_name, i, " executing database query");
argv[0] = "*";
argv[1] = argv[2] = argv[3] = argv[5] = "DONTCARE";
argv[4] = "TRUE";
- i = MoiraQuery("qualified_get_server_host", 6, argv, retfunc, NULL);
+ i = MoiraQuery("qualified_get_server_host", 6, argv, retfunc,
+ (char *)&dummy);
if (i && i != MR_NO_MATCH)
com_err(program_name, i, " executing database query");
AppendToLog("\n");