// 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$ // ------------------------------------------------------------------ // RemoteAccess 2.xx configuration data structures. // ------------------------------------------------------------------ #ifndef __GS_RA2_H #define __GS_RA2_H // ------------------------------------------------------------------ #if defined(GOLD_CANPACK) #pragma pack(1) #endif // ------------------------------------------------------------------ // // C++ structures for RemoteAccess 2.00 GAMMA. // // Based on the document STRUCT.200 which is (C) Copyright Andrew // Milner & Continental Software, 1993. All rights reserved. // // ------------------------------------------------------------------ typedef char Char; typedef uint8_t Byte; typedef uint8_t Boolean; typedef int16_t Integer; typedef uint16_t Word; typedef int32_t LongInt; typedef Byte FlagType[4]; typedef Char ra_Time[6]; typedef Char Date[9]; typedef Char LongDate[10]; typedef Byte ByteArray32[32]; typedef Byte AskType; typedef Byte VideoType; typedef Byte MsgType; typedef Byte MsgKindsType; typedef Byte OrphanType; enum _AskType { Yes, No, Ask, Only }; enum _VideoType { Auto, Short, Long }; enum _MsgType { LocalMail, NetMail, EchoMail }; enum _MsgKindsType { Both, Private, Public, ROnly, NoReply }; enum _OrphanType { Ignore, Create, Kill }; struct NetAddress { Word Zone, Net, Node, Point; }; typedef Char MSGTOIDXrecord[36]; struct USERSIDXrecord { LongInt NameCRC32, HandleCRC32; }; typedef Word COMBINEDrecord[200]; struct USERSrecord { MSGTOIDXrecord Name; Char Location[26]; Char Organisation[51]; Char Address1[51]; Char Address2[51]; Char Address3[51]; Char Handle[36]; Char Comment[81]; LongInt PasswordCRC; Char DataPhone[16]; Char VoicePhone[16]; ra_Time LastTime; Date LastDate; Byte Attribute, /* Bit 0 : Deleted 1 : Clear screen 2 : More prompt 3 : ANSI 4 : No-kill 5 : Xfer priority 6 : Full screen msg editor 7 : Quiet mode */ Attribute2; /* Bit 0 : Hot-keys 1 : AVT/0 2 : Full screen message viewer 3 : Hidden from userlist 4 : Page priority 5 : No echomail in mailbox scan 6 : Guest account 7 : Post bill enabled */ FlagType Flagsx; LongInt Credit, Pending; Word MsgsPosted, Security; LongInt LastRead, NoCalls, Uploads, Downloads, UploadsK, DownloadsK, TodayK; Integer Elapsed; Word ScreenLength; Byte LastPwdChange; Word Group; COMBINEDrecord CombinedInfo; Date FirstDate, BirthDate, SubDate; Byte ScreenWidth, Language, DateFormat; Char ForwardTo[36]; Word MsgArea, FileArea; Char DefaultProtocol; Word FileGroup; Byte LastDOBCheck; Byte Sex; LongInt XIrecord; Word MsgGroup; Byte FreeSpace[48]; }; struct USERSXIrecord { Byte FreeSpace[200]; }; struct MESSAGErecord { Word AreaNum; // NEW in 2.50 Word Unused; Char Name[41]; MsgType Typ; MsgKindsType MsgKinds; Byte Attribute; /* Bit 0 : Enable EchoInfo 1 : Combined access 2 : File attaches 3 : Allow aliases 4 : Use SoftCRs as Characters 5 : Force handle 6 : Allow deletes 7 : Is a JAM area */ Byte DaysKill, /* Kill older than 'x' days */ RecvKill; /* Kill recv msgs, recv for more than 'x' days */ Word CountKill; Word ReadSecurity; FlagType ReadFlags, ReadNotFlags; Word WriteSecurity; FlagType WriteFlags, WriteNotFlags; Word SysopSecurity; FlagType SysopFlags, SysopNotFlags; Char OriginLine[61]; Byte AkaAddress; Byte Age; Char JAMbase[61]; Word Group; Word AltGroup[3]; Byte Attribute2; /* Bit 0 : Include in all groups */ Byte FreeSpace2[9]; }; struct GROUPrecord { Word AreaNum; Char Name[41]; Word Security; FlagType Flagsx, NotFlagsMask; Byte FreeSpace[100]; }; struct CONFrecord { Char Name[9]; Char Parent[9]; Char Desc[71]; Byte Attr; /* Bit 0 : Private 1 : Unlisted 2 : Global 3 : Permanent 4 : Use handles */ Char Moderator[36]; Char Language[21]; Char Password[16]; Word Security; FlagType Flagsx; Byte NumNodes; Byte Active[250]; Boolean Child[250]; FlagType NotFlagsMask; Byte FreeSpace[96]; }; struct ARCrecord { Char Extension[4]; Char UnpackCmd[61]; Char PackCmd[61]; }; struct CONFIGrecord { Word VersionID; Byte xCommPort; LongInt xBaud; Byte xInitTries; Char xInitStr[71]; Char xBusyStr[71]; Char xInitResp[41]; Char xBusyResp[41]; Char xConnect300[41]; Char xConnect1200[41]; Char xConnect2400[41]; Char xConnect4800[41]; Char xConnect9600[41]; Char xConnect19k[41]; Char xConnect38k[41]; Boolean xAnswerPhone; Char xRing[21]; Char xAnswerStr[21]; Boolean xFlushBuffer; Integer xModemDelay; Word MinimumBaud; Word GraphicsBaud, TransferBaud; ra_Time SlowBaudTimeStart, SlowBaudTimeEnd, DownloadTimeStart, DownloadTimeEnd; ra_Time PageStart[7]; ra_Time PageEnd[7]; Char SeriNum[23]; Char CustNum[23]; Byte FreeSpace1[24]; Word PwdExpiry; Char MenuPath[61]; Char TextPath[61]; Char AttachPath[61]; Char NodelistPath[61]; Char MsgBasePath[61]; Char SysPath[61]; Char ExternalEdCmd[61]; NetAddress Address[10]; Char SystemName[31]; Word NewSecurity; Word NewCredit; FlagType NewFlags; Char OriginLine[61]; Char QuoteString[16]; Char Sysop[36]; Char LogFileName[61]; Boolean FastLogon, AllowSysRem, MonoMode, StrictPwdChecking, DirectWrite, SnowCheck; Integer CreditFactor; Word UserTimeOut, LogonTime, PasswordTries, MaxPage, PageLength; Boolean CheckForMultiLogon, ExcludeSysopFromList, OneWordNames; AskType CheckMail; Boolean AskVoicePhone, AskDataPhone, DoFullMailCheck, AllowFileShells, FixUploadDates, FreezeChat; AskType ANSI, /* ANSI: Yes, no, or ask new users */ ClearScreen, /* Clear: " */ MorePrompt; /* More: " */ Boolean UploadMsgs; AskType KillSent; /* Kill/Sent " */ Word CrashAskSec; /* Min sec# to ask 'Crash Mail ?' */ FlagType CrashAskFlags; Word CrashSec; /* Min sec# to always send crash mail. */ FlagType CrashFlags; Word FAttachSec; /* " ask 'File Attach ?' */ FlagType FAttachFlags; Byte NormFore, NormBack, StatFore, StatBack, HiBack, HiFore, WindFore, WindBack, ExitLocal, Exit300, Exit1200, Exit2400, Exit4800, Exit9600, Exit19k, Exit38k; Boolean MultiLine; Byte MinPwdLen; Word MinUpSpace; AskType HotKeys; Byte BorderFore, BorderBack, BarFore, BarBack, LogStyle, MultiTasker, PwdBoard; Word xBufferSize; Char FKeys[10][61]; Boolean WhyPage; Byte LeaveMsg; Boolean ShowMissingFiles, xLockModem; Byte FreeSpace2[10]; Boolean AllowNetmailReplies; Char LogonPrompt[41]; AskType CheckNewFiles; Char ReplyHeader[61]; Byte BlankSecs; Byte ProtocolAttrib[6]; Char xErrorFreeString[16]; Byte xDefaultCombined[25]; Word RenumThreshold; Char LeftBracket, RightBracket; Boolean AskForHandle; Boolean AskForBirthDate; Word GroupMailSec; Boolean ConfirmMsgDeletes; Byte FreeSpace4[30]; Char TempScanDir[61]; AskType ScanNow; Byte xUnknownArcAction, xFailedUnpackAction, FailedScanAction; /* Bit 0:Mark deleted, 1:Mark unlisted, 2:Mark notavail */ Word xUnknownArcArea, xFailedUnpackArea, FailedScanArea; Char ScanCmd[61]; Boolean xDeductIfUnknown; Byte NewUserGroup; AskType AVATAR; Byte BadPwdArea; Char Location[41]; Byte DoAfterAction; /* 0 = wait for CR, > 0 = wait for x seconds */ Char OldFileLine[41]; Byte CRfore, CRback; Char LangHdr[41]; Boolean xSendBreak; Char ListPath[61]; AskType FullMsgView; AskType EMSI_Enable; Boolean EMSI_NewUser; Char EchoChar[2]; Char xConnect7200[41]; Char xConnect12000[41]; Char xConnect14400[41]; Byte Exit7200; Byte Exit12000; Byte Exit14400; Char ChatCommand[61]; AskType ExtEd; Byte NewuserLanguage; Char LanguagePrompt[41]; VideoType VideoMode; Boolean AutoDetectANSI; Boolean xOffHook; Byte NewUserDateFormat; Char KeyboardPwd[16]; Boolean CapLocation; Byte NewuserSub; Char PrinterName[5]; Byte HilitePromptFore, HiLitePromptBack; Char xInitStr2[71]; Boolean AltJSwap; Char SemPath[61]; Boolean AutoChatCapture; Char FileBasePath[61]; Boolean NewFileTag; Boolean IgnoreDupeExt; Char TempCDFilePath[61]; Byte TagFore, TagBack; Char xConnect16k[41]; Byte Exit16k, FilePayback; Char FileLine[201]; Char FileMissingLine[201]; Byte NewUserULCredit; Word NewUserULCreditK; ARCrecord ArcInfo[10]; Char RAMGRAltFKeys[5][61]; Char ArcViewCmd[61]; Char xConnectFax[41]; Byte ExitFax; Boolean UseXMS, UseEMS; Byte CheckDOB; AskType EchoCheck; Word ccSec, ReturnRecSec; Boolean HonourNetReq; COMBINEDrecord DefaultCombined; Boolean AskForSex, AskForAddress; AskType DLdesc; Boolean NewPhoneScan; Byte FutureExpansion[587]; }; // ------------------------------------------------------------------ #if defined(GOLD_CANPACK) #pragma pack() #endif // ------------------------------------------------------------------ #endif // ------------------------------------------------------------------