This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
deb-goldedplus/goldlib/gcfg/gs_pop.h
2000-02-25 10:15:17 +00:00

479 lines
13 KiB
C++

// 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
// ------------------------------------------------------------------