// This may look like C code, but it is really -*- C++ -*- // ------------------------------------------------------------------ // The Goldware Library // Copyright (C) 1990-1999 Odinn Sorensen // ------------------------------------------------------------------ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Library General Public // License as published by the Free Software Foundation; either // version 2 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Library General Public License for more details. // // You should have received a copy of the GNU Library General Public // License along with this program; if not, write to the Free // Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, // MA 02111-1307, USA // ------------------------------------------------------------------ // $Id$ // ------------------------------------------------------------------ // Portal of Power configuration structures. // ------------------------------------------------------------------ #ifndef __GS_POP_H #define __GS_POP_H // ------------------------------------------------------------------ #if defined(GOLD_CANPACK) #pragma pack(1) #endif // ------------------------------------------------------------------ // Pascal types typedef unsigned char Boolean; typedef char Char; typedef unsigned char Byte; typedef short Integer; typedef unsigned short Word; typedef long LongInt; // ------------------------------------------------------------------ // Misc. types typedef LongInt PopDate; typedef LongInt PopTime; typedef Byte ColorSet[62]; typedef Char PathStr[80]; // All string types, very handy! typedef char S1[2], S2[3], S3[4], S4[5], S5[6], S6[7], S7[8], S8[9], S9[10], S10[11], S11[12], S12[13], S13[14], S14[15], S15[16], S16[17], S17[18], S18[19], S19[20], S20[21], S21[22], S22[23], S23[24], S24[25], S25[26], S26[27], S27[28], S28[29], S29[30], S30[31], S31[32], S32[33], S33[34], S34[35], S35[36], S36[37], S37[38], S38[39], S39[40], S40[41], S41[42], S42[43], S43[44], S44[45], S45[46], S46[47], S47[48], S48[49], S49[50], S50[51], S51[52], S52[53], S53[54], S54[55], S55[56], S56[57], S57[58], S58[59], S59[60], S60[61], S61[62], S62[63], S63[64], S64[65], S65[66], S66[67], S67[68], S68[69], S69[70], S70[71], S71[72], S72[73], S73[74], S74[75], S75[76], S76[77], S77[78], S78[79], S79[80], S80[81], S81[82], S82[83], S83[84], S84[85], S85[86], S86[87], S87[88], S88[89], S89[90], S90[91], S91[92], S92[93], S93[94], S94[95], S95[96], S96[97], S97[98], S98[99], S99[100], S100[101], S101[102], S102[103], S103[104], S104[105], S105[106], S106[107], S107[108], S108[109], S109[110], S110[111], S111[112], S112[113], S113[114], S114[115], S115[116], S116[117], S117[118], S118[119], S119[120], S120[121], S121[122], S122[123], S123[124], S124[125], S125[126], S126[127], S127[128], S128[129], S129[130], S130[131], S131[132], S132[133], S133[134], S134[135], S135[136], S136[137], S137[138], S138[139], S139[140], S140[141], S141[142], S142[143], S143[144], S144[145], S145[146], S146[147], S147[148], S148[149], S149[150], S150[151], S151[152], S152[153], S153[154], S154[155], S155[156], S156[157], S157[158], S158[159], S159[160], S160[161], S161[162], S162[163], S163[164], S164[165], S165[166], S166[167], S167[168], S168[169], S169[170], S170[171], S171[172], S172[173], S173[174], S174[175], S175[176], S176[177], S177[178], S178[179], S179[180], S180[181], S181[182], S182[183], S183[184], S184[185], S185[186], S186[187], S187[188], S188[189], S189[190], S190[191], S191[192], S192[193], S193[194], S194[195], S195[196], S196[197], S197[198], S198[199], S199[200], S200[201], S201[202], S202[203], S203[204], S204[205], S205[206], S206[207], S207[208], S208[209], S209[210], S210[211], S211[212], S212[213], S213[214], S214[215], S215[216], S216[217], S217[218], S218[219], S219[220], S220[221], S221[222], S222[223], S223[224], S224[225], S225[226], S226[227], S227[228], S228[229], S229[230], S230[231], S231[232], S232[233], S233[234], S234[235], S235[236], S236[237], S237[238], S238[239], S239[240], S240[241], S241[242], S242[243], S243[244], S244[245], S245[246], S246[247], S247[248], S248[249], S249[250], S250[251], S251[252], S252[253], S253[254], S254[255], S255[256]; // Nodelist Types supported typedef Byte NodeListType; enum NodeListTypes { NewNodelistType, QBBSNodelistType, RANodelistType, Version7, SBBSNodeListType }; // A 4D FidoNet address struct AddressType { Integer Zone, Net, Node, Point; }; typedef S50 SendToType[2]; struct FunctionKeyType { Byte ErrorLevel; S70 Description; }; #define MaxAddresses 16 // ------------------------------------------------------------------ // Contents : Configuration information. // FileName : PORTAL.CFG // Size : 10240 bytes // Comments : enum NodeStatsT { nsUnknown, nsKnown, nsPassword }; enum ReqLimitsT { rlPrCall, rlPrDay }; #define NodeStatT 3 #define ReqLimitT 2 typedef struct ConfigT *ConfigP; struct ConfigT { Byte Version; Byte TaskNumber; PathStr SwapDir, Inbound, Outbound, Banner, DefaultMacro, Editor, LogfileName; Byte LogLevel; Boolean UseYearInLog; PathStr NodeList; NodeListType NodelistTyp; Byte MainAdrNum; AddressType Adresses[MaxAddresses]; Integer PointNet; Boolean UseFakeAddress; S20 Sysop; S60 System; Boolean SwapOnExec; PathStr EnterBBSText, DoingMailText, PressESCText; Byte MaxRinging; PopTime ZMHStart, ZMHEnd, CallTime, CallWidth; Boolean ConnectFastest; PopTime OutReReadDelay; S20 FuncReqPwd; Boolean UseJanus; Boolean UseEMSI; Boolean FastCalls; Boolean KeepEmptyDirs; Byte Filler[272]; FunctionKeyType FKey[2][10]; ColorSet Color[4]; struct { Byte BBSType; PathStr BBSPath; PathStr UserFile; Word MinBaud; PathStr MinBaudFile; Byte UserErrorLevel; struct { Char Key; S8 BatName; } Multi[5]; Byte Filler[64]; } BBS; struct { Byte CommPort; Word BaudRate; S40 PreInit, Init, NoAnswer, Dial, Busy, HangUp, Answer; PopTime ReInit; S10 LockedBaud; struct { S10 ConStr; Byte ErrLvl; } ExitStr[5]; struct { Byte Bit; S40 Dial; Boolean DialOut; Word Baud; } ModemType[8]; Byte Filler[64]; } Modem; struct { PopTime BlankTime; Boolean ChkSnow, KeepOffScrMode, ScrMode, HardwareBlank, ExplodingWin; Byte Filler[32]; } Screen; struct { PathStr FileList, NewsList, Header, Footer, TopFile, StatFile; Boolean Adopt; S40 AdoptComment; Boolean DupeCheck; Boolean Stat; Boolean IncludeTop; Byte Top; Boolean DkDate; Byte NewsDays; Byte Threshold; Boolean RemMissing, OkPortal, ZapZero, Touch; S12 CrapFiles[10], ExcludeFiles[10], NoDupeCheck[10]; S12 NonAdoptFiles[10]; S3 NonAdoptAreas[10]; S3 PrivateAreas[11]; PathStr DoBefore; PathStr DoAfter; PathStr DoPack; PathStr DupeReport; S55 TXTFreq[4]; PathStr OkBimodempath; Byte Filler[32]; } ListFiles; struct { struct { Word MaxFiles; PopTime MaxTime; LongInt MaxBytes; } Limit[NodeStatT][ReqLimitT]; Boolean RspAsPkt; Boolean SkipAfterFirst; Byte Filler[63]; } Request; struct { S50 AddToSeenBy; Boolean CheckZones; PathStr NetMailDir; PathStr Filler3; Boolean Secure; PathStr BadMsgs; PathStr SaveDupesDir; Word MaxDupes; PathStr EchoTossLog; Boolean StripCrash; Boolean SetAKASent; Boolean PvtEchoMail; Boolean SaveFwdMail; PathStr RouteFile; Boolean ForwardMail; Boolean KillFwdFiles; PathStr Filler2; Boolean OldExt; Byte DefaultPacker; Byte NetMailBoard; Byte Filler[128]; } MailScanner; struct { PathStr PreCmd; PathStr SecureDir; Word MsgAttribute; Boolean KillSent; Boolean MsgPrivate; S72 Subject; Byte Filler[64]; } FwdFile; struct { PathStr DupeDir; PathStr HoldDir; PathStr BeforeMoving; Boolean RequestMissing; Byte Filler[64]; } Tick; struct { S10 BiOverride[5]; Boolean NoSendOverride; Word MaxBaud; PathStr BiModemPath; Byte Filler[16]; } BiMail; struct { PathStr CostFileName; S10 IntPrefix; S10 OurPrefix; Boolean UseFidoUserLst; S5 MTypeStr[8]; Byte Filler[64]; } NLCompiler; struct { Boolean CRSendsLF, DestructiveBS; S40 ModemInit; Byte Filler[128]; } DumbTerm; struct { Char Key; S8 Name; Boolean AskDLName; S10 AutoStart; PathStr SendCmd; PathStr RecvCmd; } ExtProt[5]; struct { Char DLCntStart, DLCntStop; Boolean AdoptDefault, InsDLCnt, AddInbound; Byte FirstArea, LastArea; Byte DlCDigits; Boolean DlCZeroFill; S50 ViewCMD; Byte Filler[11]; } AreaMan; struct { S40 AddCmd, UnPackCmd, EraseCmd, TestCmd; } Packer[7]; }; // ------------------------------------------------------------------ // Contents : Message Areas // FileName : PORTAL.ARE // Size : 1024 // Comments : **NOT USED YET** typedef struct AreasTypeT *AreasTypeP; struct AreasTypeT { PathStr Directory; S32 EchoNames[3]; S50 Origin; SendToType SendTo; SendToType SendOnly; S20 ScramblePwd; Boolean StripSeenBy; Boolean Pvt2EMail; Byte Level, Keys; Word MaxScan; PopDate ScanDate; Word Scanned; S40 Description; Byte AreaType; Boolean ImportSB; Byte UsedAka; // 0 = Address[Config.MainAdrNum], otherwise Address[UsedAka] Byte Filler[513]; }; // ------------------------------------------------------------------ // Contents : Nodelist Segments - for Nodelist Compiler // FileName : PORTAL.NLS // Size : 512 bytes // Comments : One record per used nodelist. Shared among all tasks typedef struct NodelistSegT *NodelistSegP; struct NodelistSegT { S8 NodeListName; S8 DiffFileName; Boolean CheckCRC; PathStr NewNLPath; SendToType Include; SendToType Exclude; Byte Filler[209]; }; // ------------------------------------------------------------------ #if defined(GOLD_CANPACK) #pragma pack() #endif // ------------------------------------------------------------------ #endif // ------------------------------------------------------------------