/* -------------------------------------------------------------------- */ xhallfunc(int roomslot, int xyn, int fl) { int yn; if (hallBuf->hall[thisHall].hroomflags[roomslot].inhall) { yn=getYesNo("Exclude from hall", (char)xyn); if (yn == 2) return FALSE; if (yn) { hallBuf->hall[thisHall].hroomflags[roomslot].inhall = FALSE; sprintf(msgBuf->mbtext, "Room %s excluded from hall %s by %s", roomTab[roomslot].rtname, hallBuf->hall[thisHall].hallname, logBuf.lbname ); trap(msgBuf->mbtext, T_AIDE); if (!fl) { aideMessage(); }else{ amPrintf(" Excluded %s\n", roomTab[roomslot].rtname, hallBuf->hall[thisHall].hallname); changed_room = TRUE; } } }else{ yn=getYesNo("Add to hall", (char)xyn); if (yn == 2) return FALSE; if (yn) { hallBuf->hall[thisHall].hroomflags[roomslot].inhall = TRUE; sprintf(msgBuf->mbtext, "Room %s added to hall %s by %s", roomTab[roomslot].rtname, hallBuf->hall[thisHall].hallname, logBuf.lbname ); trap(msgBuf->mbtext, T_AIDE); if (!fl) { aideMessage(); }else{ amPrintf(" Added %s\n", roomTab[roomslot].rtname); changed_room = TRUE; } } } return TRUE; }
/* -------------------------------------------------------------------- */ int changedir(char *path) { flipFileLan(path,1); /* change disk */ changedisk(path[0]); /* change path */ if (chdir(path) == -1) { mPrintf("\n Directory path invalid."); cPrintf("\n Invalid directory '%s' on drive '%c:'.\n", path, path[0]); amPrintf("\n Invalid directory '%s' on drive '%c:'.\n", path, path[0]); SaveAideMess(); flipFileLan(path,0); return -1; } flipFileLan(path,0); return TRUE; }
void globalhall(void) { int roomslot; changed_room = FALSE; for (roomslot = 0; roomslot < MAXROOMS; roomslot++) if (roomTab[roomslot].rtflags.INUSE) { mPrintf(" %s", roomTab[roomslot].rtname); if (xhallfunc(roomslot, 3, TRUE)==FALSE) break; } if (changed_room) { amPrintf("\n By %s, in hall %s\n", logBuf.lbname, hallBuf->hall[thisHall].hallname); SaveAideMess(); } putHall(); }
/* -------------------------------------------------------------------- */ void globaluser(void) { label who; int groupslot, yn, logNo; getNormStr("who", who, NAMESIZE, ECHO); logNo = findPerson(who, &lBuf); if (logNo == ERROR || !strlen(who) ) { mPrintf("No \'%s\' known. \n ", who); return; } for(groupslot=0; groupslot < MAXGROUPS; groupslot++) { if (grpBuf.group[groupslot].g_inuse && ( !grpBuf.group[groupslot].lockout || sysop ) && ( !grpBuf.group[groupslot].hidden || ingroup(groupslot) ) ) { mPrintf(" %s", grpBuf.group[groupslot].groupname); if (lBuf.groups[groupslot] == grpBuf.group[groupslot].groupgen) { if ((yn = getYesNo("Remove from group", 3)) != 0 /*NULL*/) { if (yn == 2) { SaveAideMess(); return; } lBuf.groups[groupslot] = (uchar)((grpBuf.group[groupslot].groupgen + (MAXGROUPGEN - 1)) % MAXGROUPGEN); sprintf(msgBuf->mbtext, "%s kicked out of group %s by %s", lBuf.lbname, grpBuf.group[groupslot].groupname, logBuf.lbname ); trap(msgBuf->mbtext, T_AIDE); amPrintf(" %s\n", msgBuf->mbtext); } } else { if ((yn = getYesNo("Add to group", 3)) != /* NULL */ 0) { if (yn == 2) { SaveAideMess(); return; } lBuf.groups[groupslot] = grpBuf.group[groupslot].groupgen; sprintf(msgBuf->mbtext, "%s added to group %s by %s", lBuf.lbname, grpBuf.group[groupslot].groupname, logBuf.lbname ); trap(msgBuf->mbtext, T_SYSOP); amPrintf(" %s\n",msgBuf->mbtext); } } putLog(&lBuf, logNo); /* see if it is us: */ if (loggedIn && strcmpi(logBuf.lbname, who) == SAMESTRING) { logBuf.groups[groupslot] = lBuf.groups[groupslot]; } } } SaveAideMess(); }
/* -------------------------------------------------------------------- */ void globalgroup(void) { label groupname; int groupslot, i, yn, add, logNo; mPrintf("(A/R/[B]): "); switch (toupper( iCharNE() )) { case 'A': mPrintf("Add\n "); add = 1; break; case 'R': mPrintf("Remove\n "); add = 2; break; case '?': tutorial("grpglob.mnu"); return; case 'B': case 10: case 13: default: mPrintf("Both\n "); add = 0; break; } getString("group", groupname, NAMESIZE, FALSE, ECHO, ""); groupslot = partialgroup(groupname); if ( grpBuf.group[groupslot].hidden && !ingroup(groupslot) ) groupslot = ERROR; if ( groupslot == ERROR || !strlen(groupname) ) { mPrintf("\n No such group."); return; } if ( grpBuf.group[groupslot].lockout && !sysop ) { mPrintf("\n Group is locked."); return; } for (i = 0; i < cfg.MAXLOGTAB; i++) { if (logTab[i].ltpwhash != 0 && logTab[i].ltnmhash !=0) { logNo=logTab[i].ltlogSlot; getLog(&lBuf, logNo); /* Get out.. */ outFlag = OUTOK; if (mAbort(FALSE)) break; outFlag = IMPERVIOUS; if (lBuf.groups[groupslot] == grpBuf.group[groupslot].groupgen) { if(add == 2 || add == 0) { mPrintf(" 3%s0", lBuf.lbname); yn=getYesNo("Remove from group", 0+3); if (yn == 2) { SaveAideMess(); return; } if (yn) { lBuf.groups[groupslot] = (uchar)((grpBuf.group[groupslot].groupgen + (MAXGROUPGEN - 1)) % MAXGROUPGEN); sprintf(msgBuf->mbtext, "%s kicked out of group %s by %s", lBuf.lbname, grpBuf.group[groupslot].groupname, logBuf.lbname ); trap(msgBuf->mbtext, T_SYSOP); amPrintf(" %s\n", msgBuf->mbtext); } } } else { if (add == 0 || add == 1) { mPrintf(" 3%s0", lBuf.lbname); yn=getYesNo("Add to group", 0+3); if (yn == 2) { SaveAideMess(); return; } if (yn) { lBuf.groups[groupslot] = grpBuf.group[groupslot].groupgen; sprintf(msgBuf->mbtext, "%s added to group %s by %s", lBuf.lbname, grpBuf.group[groupslot].groupname, logBuf.lbname ); trap(msgBuf->mbtext, T_AIDE); amPrintf(" %s\n",msgBuf->mbtext); } } } putLog(&lBuf, logNo); /* see if it is us: */ if (loggedIn && strcmpi(logBuf.lbname, lBuf.lbname) == SAMESTRING) { logBuf.groups[groupslot] = lBuf.groups[groupslot]; } } } SaveAideMess(); }
/* -------------------------------------------------------------------- */ static void makeSendFile(void) { char line[100], line2[100]; label troo; label fn; FILE *file; int i = 0, rm; if ((file = fopen(roomreqin, "rb")) == NULL) { perror("Error opening roomreq.in"); } doccr(); cPrintf(" Fetching:"); doccr(); GetStr(file, troo, LABELSIZE); while(strlen(troo) && !feof(file)) { if ((rm = roomExists(troo)) != ERROR) { if (nodecanseeroom(node.ndname, rm)) { sprintf(fn, "room.%d", i); cPrintf(" %-20s ", troo); if( !((i+1) % 3) ) doccr(); NewRoom(rm, fn); } else { doccr(); cPrintf(" No access to %s room.", troo); doccr(); amPrintf(" '%s' room not available to remote.\n", troo); netError = TRUE; } } else { doccr(); cPrintf(" No %s room on system.", troo); doccr(); amPrintf(" '%s' room not found for remote.\n", troo); netError = TRUE; } i++; GetStr(file, troo, LABELSIZE); } doccr(); fclose(file); unlink(roomreqin); cPrintf(" Copying mail file."); doccr(); sprintf(line, "%s\\%s", cfg.transpath, node.ndmailtmp); sprintf(line2, "%s\\mesg.tmp", cfg.temppath); if ((file = fopen(line2, "wb")) != NULL) { fclose(file); } copyfile(line, line2); cPrintf(" Compressing message files."); doccr(); /* * Zip them up */ sformat(line, node.zip, "df", roomdataout, "mesg.tmp room.*"); apsystem(line); /* * Remove them. */ ambigUnlink("room.*", FALSE); unlink("mesg.tmp"); }
void TERMWINDOWMEMBER makeSendFile(void) { char line[100], line2[100]; label troo; label fn; FILE *file; int i = 0; int crcounter = 0; if ((file = fopen(roomreqIn, FO_RB)) == NULL) { perror(getnetmsg(90)); return; // ok } doccr(); cPrintf(getnetmsg(2)); doccr(); GetStr(file, troo, LABELSIZE); while (*troo && !feof(file)) { r_slot rm = RoomExists(troo); if (rm == CERROR) { rm = IdExists(troo, TRUE); } if (rm != CERROR) { if (CurrentUser->CanAccessRoom(rm)) { sprintf(fn, getnetmsg(126), i); cPrintf(getnetmsg(128), deansi(troo)); if (!((crcounter+1) % 3)) { doccr(); } crcounter++; NewRoom(rm, fn, NULL); } else { doccr(); cPrintf(getnetmsg(111), deansi(troo)); doccr(); amPrintf(getnetmsg(4), troo, bn); netError = TRUE; } } else { doccr(); cPrintf(getnetmsg(97), deansi(troo)); doccr(); amPrintf(getnetmsg(6), troo, bn); netError = TRUE; } i++; GetStr(file, troo, LABELSIZE); } doccr(); fclose(file); unlink(roomreqIn); cPrintf(getnetmsg(98)); doccr(); sprintf(line, sbs, cfg.transpath, node->GetMailFileName()); sprintf(line2, sbs, LocalTempPath, mesgTmp); if ((file = fopen(line2, FO_WB)) != NULL) { fclose(file); } copyfile(line, line2); cPrintf(getnetmsg(99), cfg.Lmsg_nym); doccr(); // Zip them up sprintf(line2, getnetmsg(113), mesgTmp, roomStar); sformat(line, node->GetCreatePacket(), getmsg(49), roomdataOut, line2, 0); apsystem(line, TRUE); // Remove them. changedir(LocalTempPath); ambigUnlink(roomStar); unlink(mesgTmp); }
Bool TERMWINDOWMEMBER Net1Slave(void) { char line[100]; label troo; label fn; FILE *file; int i = 0; const protocols *theProt = GetProtocolByKey(node->GetProtocol(), TRUE); if (!theProt) { doccr(); cPrintf(getnetmsg(177)); doCR(); return (FALSE); } cPrintf(getnetmsg(178)); doccr(); sprintf(line, sbs, cfg.transpath, node->GetMailFileName()); // create empty mail file if there is none if ((file = fopen(line, FO_AB)) != NULL) { fclose(file); } wxsnd(LocalTempPath, line, theProt, 0); if (!CommPort->HaveConnection()) { return (FALSE); } cPrintf(getnetmsg(179)); doccr(); sprintf(line, sbs, LocalTempPath, roomreqTmp); unlink(line); wxrcv(LocalTempPath, roomreqTmp, theProt); changedir(LocalTempPath); if (!CommPort->HaveConnection()) { return (FALSE); } sprintf(line, sbs, LocalTempPath, roomreqTmp); if ((file = fopen(line, FO_RB)) == NULL) { perror(getnetmsg(1)); return (FALSE); } doccr(); cPrintf(getnetmsg(2)); doccr(); GetStr(file, troo, LABELSIZE); while (*troo && !feof(file)) { KBReady(); r_slot rm; if ((rm = RoomExists(troo)) != CERROR) { if (CurrentUser->CanAccessRoom(rm)) { sprintf(fn, getnetmsg(126), i); cPrintf(getnetmsg(166), deansi(troo)); if (!((i+1) % 3)) { doccr(); } NewRoom(rm, fn, NULL); } else { doccr(); cPrintf(getnetmsg(111), deansi(troo)); doccr(); amPrintf(getnetmsg(4), troo, bn); netError = TRUE; } } else { doccr(); cPrintf(getnetmsg(5), deansi(troo)); doccr(); amPrintf(getnetmsg(167), troo, bn); netError = TRUE; } i++; GetStr(file, troo, LABELSIZE); } doccr(); fclose(file); unlink(line); cPrintf(getnetmsg(7), cfg.Lmsg_nym); doccr(); if (!CommPort->HaveConnection()) { return (FALSE); } wxsnd(LocalTempPath, getnetmsg(162), theProt, 0); ambigUnlink(getnetmsg(162)); return (TRUE); }
void TERMWINDOWMEMBER Net1Cleanup(void) { int t, i; label fn, here, there; char line[100]; CITWINDOW *w = ScreenSaver.IsOn() ? NULL : CitWindowsMsg(NULL, getmsg(82)); Hangup(); if (w) { destroyCitWindow(w, FALSE); } if (cfg.offhook == 1) { offhook(); } sprintf(line, sbs, cfg.transpath, node->GetMailFileName()); unlink(line); OC.SetOutFlag(IMPERVIOUS); doccr(); cPrintf(getnetmsg(22)); doccr(); cPrintf(getnetmsg(23)); doccr(); cPrintf(getnetmsg(24)); doccr(); int Rooms = 0, TotalNew = 0, TotalExpired = 0, TotalDuplicate = 0; int ThisNew, ThisExpired, ThisDuplicate, ThisError; for (t = get_first_room(here, there), i = 0; t; t = get_next_room(here, there), i++) { sprintf(fn, getnetmsg(127), i); KBReady(); const r_slot rm = RoomExists(here); if (rm != CERROR && CurrentUser->CanAccessRoom(rm)) { cPrintf(getnetmsg(166), deansi(here)); if (ReadMsgFl(rm, fn, NULL, &ThisNew, &ThisExpired, &ThisDuplicate, &ThisError, CurrentUser)) { if (ThisNew) { OC.ansiattr = cfg.cattr; } cPrintf(getnetmsg(133), ThisNew); OC.ansiattr = cfg.attr; cPrintf(getnetmsg(134)); if (ThisExpired) { OC.ansiattr = cfg.cattr; } cPrintf(getnetmsg(133), ThisExpired); OC.ansiattr = cfg.attr; cPrintf(getnetmsg(134)); if (ThisDuplicate) { OC.ansiattr = cfg.cattr; } cPrintf(getnetmsg(133), ThisDuplicate); OC.ansiattr = cfg.attr; TotalNew += ThisNew; TotalExpired += ThisExpired; TotalDuplicate += ThisDuplicate; Rooms++; } else { amPrintf(getnetmsg(28), there, bn); netError = TRUE; cPrintf(getnetmsg(29)); } doccr(); } else { cPrintf(getnetmsg(30), deansi(here)); amPrintf(getnetmsg(31), here, bn); netError = TRUE; doccr(); } unlink(fn); } cPrintf(getnetmsg(24)); doccr(); cPrintf(getnetmsg(32)); if (Rooms) { OC.ansiattr = cfg.cattr; } cPrintf(getnetmsg(133), Rooms); OC.ansiattr = cfg.attr; cPrintf(getnetmsg(134)); if (TotalNew) { OC.ansiattr = cfg.cattr; } cPrintf(getnetmsg(133), TotalNew); OC.ansiattr = cfg.attr; cPrintf(getnetmsg(134)); if (TotalExpired) { OC.ansiattr = cfg.cattr; } cPrintf(getnetmsg(133), TotalExpired); OC.ansiattr = cfg.attr; cPrintf(getnetmsg(134)); if (TotalDuplicate) { OC.ansiattr = cfg.cattr; } cPrintf(getnetmsg(133), dup); OC.ansiattr = cfg.attr; doccr(); cPrintf(getnetmsg(33)); doccr(); doccr(); cPrintf(getnetmsg(34)); doccr(); ReadMsgFl(MAILROOM, getnetmsg(164), NULL, &ThisNew, &ThisExpired, &ThisDuplicate, &ThisError, NULL); label New, Routed, Rejected; CopyStringToBuffer(New, ltoac(i == CERROR ? 0 : i)); CopyStringToBuffer(Routed, ltoac(ThisExpired)); CopyStringToBuffer(Rejected, ltoac(ThisDuplicate)); cPrintf(getnetmsg(35), New, ThisNew == 1 ? cfg.Lmsg_nym : cfg.Lmsgs_nym, Routed, Rejected, ltoac(ThisNew + ThisExpired + ThisDuplicate)); doccr(); changedir(LocalTempPath); ambigUnlink(getnetmsg(162)); ambigUnlink(getnetmsg(163)); unlink(getnetmsg(164)); changedir(cfg.homepath); MS.Expired = TotalExpired; MS.Duplicate = TotalDuplicate; MS.Entered = TotalNew + ThisNew; if (netError) { label Buffer; amPrintf(getnetmsg(36), bn, CurrentUser->GetName(Buffer, sizeof(Buffer)), bn); SaveAideMess(NULL); } readNetCmdTmp(CONSOLE); // we are no longer calling out... callout = FALSE; }
void TERMWINDOWMEMBER globalverify(void) { l_slot i; SetDoWhat(SYSNUSER); OC.SetOutFlag(OUTOK); label CUName; CurrentUser->GetName(CUName, sizeof(CUName)); for (i = 0; (i < cfg.MAXLOGTAB) && (OC.User.GetOutFlag() != OUTSKIP) && #ifdef MULTI !OC.CheckInput(FALSE, this); i++) #else !OC.CheckInput(FALSE); i++) #endif { if (LTab(i).IsInuse()) { l_index logNo = LTab(i).GetLogIndex(); LogEntry1 Log1; if (Log1.Load(logNo)) { label Name; Log1.GetName(Name, sizeof(Name)); Bool Changed = FALSE; if (!Log1.IsVerified()) { int yn; char Prompt[128]; sprintf(Prompt, getsysmsg(59), Name); yn = getYesNo(Prompt, 3); if (yn == 2) { SaveAideMess(NULL); return; } if (yn) { char trapstr[128]; Changed = TRUE; Log1.SetVerified(TRUE); if (loggedIn && SameString(CUName, Name)) { CurrentUser->SetVerified(TRUE); } sprintf(trapstr, getsysmsg(60), Name, CUName); trap(T_SYSOP, pcts, trapstr); amPrintf(getmsg(429), trapstr, bn); } else if (!SameString(CUName, Name)) { if (getYesNo(getsysmsg(61), 0)) { char trapstr[128]; Changed = TRUE; CRmPrintfCR(getsysmsg(85), Name); // trap it sprintf(trapstr, getsysmsg(62), Name); trap(T_SYSOP, pcts, trapstr); amPrintf(getmsg(429), trapstr, bn); Log1.Clear(); } } } else if (Log1.IsProblem()) { int yn; char Prompt[128]; sprintf(Prompt, getsysmsg(41), Name); yn = getYesNo(Prompt, 3); if (yn == 2) { SaveAideMess(NULL); return; } if (yn) { char trapstr[128]; Changed = TRUE; Log1.SetProblem(FALSE); if (loggedIn && SameString(CUName, Name)) { CurrentUser->SetProblem(FALSE); } sprintf(trapstr, getsysmsg(42), Name, CUName); trap(T_SYSOP, pcts, trapstr); amPrintf(getmsg(429), trapstr, bn); } else if (!SameString(CUName, Name)) { if (getYesNo(getsysmsg(61), 0)) { char trapstr[128]; Changed = TRUE; CRmPrintfCR(getsysmsg(85), Name); // trap it sprintf(trapstr, getsysmsg(51), Name); trap(T_SYSOP, pcts, trapstr); amPrintf(getmsg(429), trapstr, bn); Log1.Clear(); } } } if (Changed) { Log1.Save(logNo); } } } } SaveAideMess(NULL); }