2000-02-25 10:15:17 +00:00
|
|
|
// 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
|
|
|
|
|
2005-10-21 00:19:15 +00:00
|
|
|
typedef char Char;
|
|
|
|
typedef uint8_t Byte;
|
|
|
|
typedef uint8_t Boolean;
|
|
|
|
typedef int16_t Integer;
|
|
|
|
typedef uint16_t Word;
|
|
|
|
typedef int32_t LongInt;
|
2000-02-25 10:15:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
// 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
|
|
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
|