diff --git a/src/sbbs3/umonitor/umonitor.c b/src/sbbs3/umonitor/umonitor.c index 9d9370640f9b1134db460783c6b5bb258e1a7aa3..754d8e194c018d19085ecad4f951e98f47fcda60 100644 --- a/src/sbbs3/umonitor/umonitor.c +++ b/src/sbbs3/umonitor/umonitor.c @@ -955,53 +955,125 @@ int main(int argc, char** argv) { continue; } + if(j==0) { + /* System Options */ + i=0; + strcpy(opt[i++],"Run SCFG"); + strcpy(opt[i++],"View logs"); + strcpy(opt[i++],"Force QWK Net callout"); + strcpy(opt[i++],"Run event"); + strcpy(opt[i++],"Recycle servers"); + strcpy(opt[i++],"Edit CFG files"); + strcpy(opt[i++],"Edit trashcan files"); + opt[i][0]=0; + uifc.helpbuf= "`System Options:`\n" + "\nToDo: Add help"; + + done=0; + i=0; + while(!done) { + switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&i,0,"System Options",opt)) { + case -1: + done=1; + break; + case 0: + sprintf(str,"%sscfg ",cfg.exec_dir); + for(j=1; j<argc; j++) { + strcat(str,"'"); + strcat(str,argv[j]); + strcat(str,"' "); + } + do_cmd(str); + break; + case 1: + view_logs(&cfg); + break; + case 2: + qwk_callouts(&cfg); + break; + case 3: + run_events(&cfg); + break; + case 4: + recycle_servers(&cfg); + break; + case 5: + edit_cfg(&cfg); + break; + case 6: + edit_can(&cfg); + break; + } + } + continue; + } + + if(j==-1) { + i=0; + strcpy(opt[0],YesStr); + strcpy(opt[1],NoStr); + opt[2][0]=0; + uifc.helpbuf= "`Exit Synchronet UNIX Monitor:`\n" + "\n" + "\nIf you want to exit the Synchronet UNIX monitor utility," + "\nselect `Yes`. Otherwise, select `No` or hit ~ ESC ~."; + i=uifc.list(WIN_MID,0,0,0,&i,0,"Exit Synchronet Monitor",opt); + if(!i) + bail(0); + continue; + } + + /* Everything after this point is invalid for the System Options */ + if(main_dflt==0) + continue; + if(j==-2-KEY_DC) { /* Clear errors */ - clearerrors(&cfg, main_dflt+1,&node); + clearerrors(&cfg, main_dflt,&node); continue; } if(j==-2-KEY_F(10)) { /* Chat */ - if(getnodedat(&cfg,main_dflt+1,&node,NULL)) { + if(getnodedat(&cfg,main_dflt,&node,NULL)) { uifc.msg("Error reading node data!"); continue; } if((node.status==NODE_INUSE) && node.useron) - chat(&cfg,main_dflt+1,&node,&boxch,uifc.timedisplay); + chat(&cfg,main_dflt,&node,&boxch,uifc.timedisplay); continue; } if(j==-2-KEY_F(11)) { /* Send message */ - sendmessage(&cfg, main_dflt+1,&node); + sendmessage(&cfg, main_dflt,&node); continue; } if(j==-2-KEY_F(12)) { /* Spy */ - dospy(main_dflt+1,&bbs_startup); + dospy(main_dflt,&bbs_startup); continue; } if(j==-2-CTRL('l')) { /* Lock node */ - if(getnodedat(&cfg,main_dflt+1,&node,&nodefile)) { + if(getnodedat(&cfg,main_dflt,&node,&nodefile)) { uifc.msg("Error reading node data!"); continue; } node.misc^=NODE_LOCK; - putnodedat(&cfg,main_dflt+1,&node,nodefile); + putnodedat(&cfg,main_dflt,&node,nodefile); continue; } if(j==-2-CTRL('r')) { /* Rerun node */ - if(getnodedat(&cfg,main_dflt+1,&node,&nodefile)) { + if(getnodedat(&cfg,main_dflt,&node,&nodefile)) { uifc.msg("Error reading node data!"); continue; } node.misc^=NODE_RRUN; - putnodedat(&cfg,main_dflt+1,&node,nodefile); + putnodedat(&cfg,main_dflt,&node,nodefile); continue; } if(j==-2-CTRL('d')) { /* Down node */ - if(getnodedat(&cfg,main_dflt+1,&node,&nodefile)) { + if(getnodedat(&cfg,main_dflt,&node,&nodefile)) { uifc.msg("Error reading node data!"); continue; } @@ -1013,92 +1085,24 @@ int main(int argc, char** argv) { else node.status=NODE_WFC; } - putnodedat(&cfg,main_dflt+1,&node,nodefile); + putnodedat(&cfg,main_dflt,&node,nodefile); continue; } if(j==-2-CTRL('i')) { /* Interrupt node */ - if(getnodedat(&cfg,main_dflt+1,&node,&nodefile)) { + if(getnodedat(&cfg,main_dflt,&node,&nodefile)) { uifc.msg("Error reading node data!"); continue; } node.misc^=NODE_INTR; - putnodedat(&cfg,main_dflt+1,&node,nodefile); + putnodedat(&cfg,main_dflt,&node,nodefile); continue; } if(j <= -2) continue; - if(j==-1) { - i=0; - strcpy(opt[0],YesStr); - strcpy(opt[1],NoStr); - opt[2][0]=0; - uifc.helpbuf= "`Exit Synchronet UNIX Monitor:`\n" - "\n" - "\nIf you want to exit the Synchronet UNIX monitor utility," - "\nselect `Yes`. Otherwise, select `No` or hit ~ ESC ~."; - i=uifc.list(WIN_MID,0,0,0,&i,0,"Exit Synchronet Monitor",opt); - if(!i) - bail(0); - continue; - } - - if(j==0) { - /* System Options */ - i=0; - strcpy(opt[i++],"Run SCFG"); - strcpy(opt[i++],"View logs"); - strcpy(opt[i++],"Force QWK Net callout"); - strcpy(opt[i++],"Run event"); - strcpy(opt[i++],"Recycle servers"); - strcpy(opt[i++],"Edit CFG files"); - strcpy(opt[i++],"Edit trashcan files"); - opt[i][0]=0; - uifc.helpbuf= "`System Options:`\n" - "\nToDo: Add help"; - - done=0; - i=0; - while(!done) { - switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&i,0,"System Options",opt)) { - case -1: - done=1; - break; - case 0: - sprintf(str,"%sscfg ",cfg.exec_dir); - for(j=1; j<argc; j++) { - strcat(str,"'"); - strcat(str,argv[j]); - strcat(str,"' "); - } - do_cmd(str); - break; - case 1: - view_logs(&cfg); - break; - case 2: - qwk_callouts(&cfg); - break; - case 3: - run_events(&cfg); - break; - case 4: - recycle_servers(&cfg); - break; - case 5: - edit_cfg(&cfg); - break; - case 6: - edit_can(&cfg); - break; - } - } - continue; - } - - if(j<cfg.sys_nodes && j>0) { + if(j<=cfg.sys_nodes && j>0) { i=0; strcpy(opt[i++],"Spy on node"); strcpy(opt[i++],"Node toggles"); @@ -1145,7 +1149,7 @@ int main(int argc, char** argv) { break; case 6: - chat(&cfg,main_dflt+1,&node,&boxch,uifc.timedisplay); + chat(&cfg,main_dflt,&node,&boxch,uifc.timedisplay); break; case -1: