501 lines
17 KiB
C++
501 lines
17 KiB
C++
// This may look like C code, but it is really -*- C++ -*-
|
|
|
|
// ------------------------------------------------------------------
|
|
// The Goldware Library
|
|
// Copyright (C) 1992-1994 Peter Davies
|
|
// 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$
|
|
// ------------------------------------------------------------------
|
|
|
|
#ifndef __gs_ez102_h
|
|
#define __gs_ez102_h
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
#include <gftnall.h>
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
#if defined(GOLD_CANPACK)
|
|
#pragma pack(1)
|
|
#endif
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
// EzyCom structures converted to C format V1.02 9/9/92
|
|
// by Peter Davies and Ron Clark
|
|
// Based on original C Structures for Ezycom V1.00 by Colin Berg
|
|
//
|
|
// These structures may ONLY be used in accordance with those
|
|
// agreements laid out in the Official Ezycom Structures.
|
|
// Peter Davies or Ron Clark takes no responsibility whatsoever
|
|
// for the correctness of these structures.
|
|
|
|
#define EZYVER "1.02"
|
|
#define VERSIONHIGH 1
|
|
#define VERSIONLOW 2
|
|
#define MAXFREE 685
|
|
#define USERFREE 4
|
|
#define CONSTANTFREESPACE 89
|
|
#define CONSTANTFILEFREESPACE 816
|
|
#define MAXNODES 128
|
|
#define MAXAKA 16
|
|
#define MAXMESS 1024
|
|
#define MAXMESSALL 1024
|
|
#define MAXBAUDREC 11
|
|
|
|
typedef char AskType; // 0=yes, 1=no, 2=ask
|
|
typedef char MsgType; // 0=localmail, 1=netmail, 2=echomail, 3=passthru, 4=waitthru, 5=allmail
|
|
typedef char MsgKindsType; // 0=public, 1=private, 2=private or public
|
|
typedef char UserString[36];
|
|
typedef uint8_t EzFlagType[4];
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
// CONFIG.<EZY or NODE> structure
|
|
//
|
|
// unknownarea = 0 - kill messages
|
|
// 1 - make a new echomail area
|
|
// 2 - make a new passthru area
|
|
//
|
|
// tossattr2 = bit 0 - [ reserved ]
|
|
// 1 - [ reserved ]
|
|
// 2 - kill bad archives
|
|
// 3 - arcmail 0.6 compat
|
|
//
|
|
// autodetect = bit 0 - Auto Detect ANSI
|
|
// 1 - Ansi Detect for New User
|
|
// 2 - Auto Detect EMSI
|
|
// 3 - Auto Detect EMSI & for newuser
|
|
//
|
|
// tossattr = bit 0 : [reserved]
|
|
// 1 : [reserved]
|
|
// 2 : [reserved]
|
|
// 3 : dupe detection
|
|
// 4 : delete netmail on import
|
|
// 5 : keep echoarea node receipts
|
|
// 6 : allow message rescan
|
|
// 7 : [reserved]
|
|
//
|
|
// multitasker = 0 = do not detect or use any multitasker
|
|
// 1 = auto-detect
|
|
// 2 = desqview (or compatiable)
|
|
// 3 = double dos
|
|
// 4 = OS.2
|
|
// 5 = multidos plus
|
|
// 6 = Taskview
|
|
// 7 = Topview
|
|
// 8 = PC MOS
|
|
// 9..255 [reserved]
|
|
//
|
|
// printerport = 0 = LPT1
|
|
// 1 = LPT2
|
|
// 2 = LPT3
|
|
// 3 = COM1
|
|
// 4 = COM2
|
|
// 5 = COM3
|
|
// 6 = COM4
|
|
|
|
typedef struct CONFIGRECORD {
|
|
char version[9],
|
|
deflanguage[9],
|
|
freespace50[68],
|
|
logpath[61],
|
|
textpath[61],
|
|
menupath[61],
|
|
mnurampath[61],
|
|
netmailpath[61],
|
|
nodelistpath[61],
|
|
msgpath[61],
|
|
filepath[61],
|
|
freespace51[61],
|
|
bipath[61],
|
|
temppath[61],
|
|
userbasepath[61],
|
|
avatarpath[61],
|
|
ascpath[61],
|
|
asclowpath[61],
|
|
filemaint[61],
|
|
fileattachpath[61],
|
|
soundpath[61],
|
|
fastindexpath[61],
|
|
systempwd[16], // Password to Logon System
|
|
sysoppwd[16], // Password to Keyboard
|
|
newuserpwd[16], // Password for Newuser
|
|
newtopmenu[9], // NewUser TopMenu
|
|
freespace52[4],
|
|
inboundmail[61],
|
|
outboundmail[61],
|
|
uploadpath[61],
|
|
swapfile[61],
|
|
multipath[61],
|
|
brackets[3],
|
|
inactivitytime,
|
|
minmesscheck,
|
|
maxlogintime,
|
|
/* unused */ freespace53,
|
|
answerdelay;
|
|
char shellswap,
|
|
highbit,
|
|
disppass,
|
|
asklocalpass,
|
|
fastlogon,
|
|
sysopremote,
|
|
printerlog,
|
|
phone1ask,
|
|
colourask,
|
|
aliasask,
|
|
dobask,
|
|
phoneforce,
|
|
direct_video,
|
|
snow_check;
|
|
char freespace54;
|
|
char screen_blank;
|
|
char oneword;
|
|
AskType checkmail,
|
|
checkfile,
|
|
ansiask,
|
|
fullscreenask,
|
|
clearask,
|
|
moreask,
|
|
avatarask,
|
|
extendask,
|
|
usdateask;
|
|
char phone2ask,
|
|
phoneformat[15],
|
|
nameprompt[61],
|
|
pwdprompt[61],
|
|
shellprompt[61],
|
|
shell2prompt[61],
|
|
enterprompt[61],
|
|
chatprompt[61],
|
|
listprompt[61];
|
|
char f7keylinetop[80],
|
|
f7keylinebot[80],
|
|
freespace55[84],
|
|
chat2prompt[61],
|
|
screenlengthprompt[61],
|
|
screenclearprompt[61],
|
|
locationprompt[61],
|
|
freeprompt[61],
|
|
loadprompt[61],
|
|
avatarprompt[61],
|
|
aliasprompt[61];
|
|
word security,
|
|
logonsecurity;
|
|
EzFlagType flags;
|
|
char minpasslength,
|
|
/* constant */ dispfwind, // Status Bar Colour
|
|
/* constant */ dispbwind, // Status Bar Colour
|
|
/* constant */ disppopupf, // Popup Forground
|
|
/* constant */ disppopupborder, // Popup Border
|
|
/* constant */ disppopupb, // Popup Background
|
|
/* constant */ dispf; // Foreground Colour
|
|
char freespace56,
|
|
comport,
|
|
passlogons,
|
|
doblogon,
|
|
printerport,
|
|
passtries;
|
|
char topmenu[9];
|
|
char freespace100[4];
|
|
word watchmess,
|
|
/* constant */ netmailcredit,
|
|
ansiminbaud,
|
|
/* unused */ freespace57,
|
|
slowbaud,
|
|
minloginbaud,
|
|
lowsecuritystart,
|
|
lowsecurityend,
|
|
slowstart,
|
|
slowend;
|
|
char quotestring[6],
|
|
freespace58,
|
|
offhook;
|
|
word forcecrashmail,
|
|
optioncrashmail,
|
|
netmailfileattach;
|
|
char popuphighlight,
|
|
freespace59,
|
|
maxpages,
|
|
maxpagefiles,
|
|
pagelength;
|
|
word pagestart[7],
|
|
/* constant */ pagemessboard, // Message Board for Paging (0=Not In Use)
|
|
localfattachsec,
|
|
sectouploadmess,
|
|
sectoupdateusers,
|
|
readsecnewecho,
|
|
writesecnewecho,
|
|
sysopsecnewecho;
|
|
word secreplyvianetmail;
|
|
AskType netmailkillsent;
|
|
char swaponarchive;
|
|
|
|
char freespace60[9];
|
|
|
|
char popuptext;
|
|
word pageend[7];
|
|
char freespace61[22];
|
|
word incomingcallstart,
|
|
incomingcallend,
|
|
|
|
/* unused */ freespace62;
|
|
|
|
char altf[10][61],
|
|
ctrlf[10][41],
|
|
/* unused */ freespace63[4];
|
|
word fp_credit; // Newuser Filepoints
|
|
char ks_per_fp, // Number of Kilobytes per FP
|
|
fp_upload, // Filepoints Upload Credit
|
|
rego_warn_1,
|
|
rego_warn_2;
|
|
char freespace64[2];
|
|
word min_space_1;
|
|
char swapbimodem,
|
|
modembusy, // Toggle DTR or ATH1
|
|
scrheight, // 43/50 line mode
|
|
msgtmptype, // True = MSGTMP False = MSGTMP.<node>
|
|
swapupload;
|
|
char phonelogon,
|
|
carrierdetect; // Carrier Detect (Default=$80)
|
|
char newfileshighlight;
|
|
char max_descrip,
|
|
min_descrip;
|
|
word requestreceipt;
|
|
char ushowdate;
|
|
char ufilesizek;
|
|
char uuploader,
|
|
udownloadcount,
|
|
/* unused */ freespace4,
|
|
ushowsecurity,
|
|
sshowdate;
|
|
char sfilesizek;
|
|
char suploader,
|
|
sdownloadcount,
|
|
/* unused */ freespace5,
|
|
sshowsecurity,
|
|
ushowtime,
|
|
ushowfp,
|
|
sshowtime,
|
|
sshowfp;
|
|
word fp_percent; // Download Filepoints Credit
|
|
char autodetect;
|
|
char dispsecurityfile,
|
|
askforpagereason,
|
|
delincompletefiles;
|
|
char freespace65;
|
|
char swaponfeditview;
|
|
char freespace6,
|
|
secfileschar,
|
|
passchar;
|
|
char localinactivity;
|
|
char conversiononmaster;
|
|
char leftbracket[2],
|
|
rightbracket[2];
|
|
word ignorefp; // Min Security to Ignore FPs
|
|
char menuminage; // Minimum Age for Age Checks
|
|
char freespace66;
|
|
word modemeff[MAXBAUDREC],
|
|
modembaud[MAXBAUDREC];
|
|
char modemconnect[MAXBAUDREC][16];
|
|
char freespace67[10];
|
|
word configattr; // bit 0: Move Local Uploads, other reserved
|
|
char usercol1_2,
|
|
usercol3_4,
|
|
usercol5_6,
|
|
usercol7_8,
|
|
userbkcol,
|
|
newusercol2,
|
|
chstatcol,
|
|
getentercol;
|
|
char usdateforsysop,
|
|
ezyovrpath[61];
|
|
UserString sysfree3;
|
|
char ovrems;
|
|
char swapezy,
|
|
filesecpath[61];
|
|
char freespace28;
|
|
char multitasker;
|
|
word maxbaud; // longint in 1.02
|
|
char lockedport;
|
|
word filereqsec;
|
|
char autoanswer,
|
|
initresponse[11],
|
|
ringstring[11];
|
|
char inittries,
|
|
initstring1[61],
|
|
initstring2[61],
|
|
busystring[21],
|
|
answerstring[21],
|
|
mailerstring[61];
|
|
word modemstart,
|
|
modemend;
|
|
char modemdelay;
|
|
char sendbreak;
|
|
char externaleditor[61],
|
|
defaultorigin[51],
|
|
connectfax[16];
|
|
char freespace22[16];
|
|
word uploadcredit;
|
|
char sysfree4[36];
|
|
char shownewfileschar;
|
|
word
|
|
/* unused */ zonea[16],
|
|
neta[16],
|
|
nodea[16],
|
|
pointa[16],
|
|
/* unused */ freespace24[16];
|
|
char freespace9[16][21],
|
|
nocarrierstring[21];
|
|
UserString guestaccount;
|
|
char freespace[MAXFREE];
|
|
} CONFIGRECORD;
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
// CONSTANT.EZY record structure
|
|
//
|
|
// scantossattr = bit 0 : Dupe Detection
|
|
// 1 : Kill Null Netmail
|
|
// 2 : Keep EchoArea Node Receipts
|
|
// 3 : Import Messages To Sysop
|
|
// 4 : Route Mail (Off = Direct)
|
|
// 5 : Kill Bad Archives
|
|
// 6 : ARCMail 0.6 Compatability
|
|
// 7-15 : [Reserved]
|
|
//
|
|
// constantattr = bit 0 : Sysop Alias in Chat
|
|
// 1 : Auto Log Chat
|
|
// 2 : Display Full Message To User
|
|
// 3 : Do not delete outbound mail bundles with no .MSG
|
|
// 4-15 : [Reserved]
|
|
//
|
|
// unknownarea = 0 : Kill Messages
|
|
// 1 : Make a New EchoMail Area
|
|
// 2 : Make a New PassThru Area
|
|
|
|
typedef struct CONSTANTRECORD {
|
|
|
|
char version[9];
|
|
char system[41];
|
|
UserString sysopname,
|
|
sysopalias;
|
|
char systemlocation[36];
|
|
char multiline;
|
|
word maxmess, // maximum usable message areas
|
|
maxfile; // maximum usable file areas
|
|
word watchmess, // watchdog message board
|
|
pagemessboard, // paging message board
|
|
badpwdmsgboard; // bad pwd message board
|
|
char mintimeforcall; // minimum time to register call
|
|
char freespace2[11];
|
|
word scantossattr,
|
|
constantattr;
|
|
word maxmsgsrescan; // maximum msgs to rescan (0=disable)
|
|
char qwkfilename[9];
|
|
word qwkmaxmail,
|
|
qwkmsgboard;
|
|
ftn_addr netaddress[MAXAKA];
|
|
word netmailboard[MAXAKA];
|
|
char newareagroup[MAXAKA];
|
|
word newareastmess[MAXAKA];
|
|
char quotestring[6];
|
|
char swaponezymail;
|
|
char unknownarea;
|
|
char swaponfeditview,
|
|
swaponarchive;
|
|
word minspaceupload;
|
|
char textinputcolour;
|
|
word badmsgboard;
|
|
char freespace[CONSTANTFREESPACE];
|
|
} CONSTANTRECORD;
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
// MESSAGES.EZY record structure
|
|
//
|
|
// attribute = bit 0 : allow aliases
|
|
// 1 : use alias
|
|
// 2 : use alias, ask for aliases
|
|
// 3 : test age as defined in config.xx
|
|
// 4 : combined area access
|
|
// 5 : local file attaches
|
|
// 6 : strip private bit on incoming echomail
|
|
// 7 : security
|
|
//
|
|
// attribute2 = bit 0 : show seenby lines
|
|
// 1 : forced mail check
|
|
// 2 : strip forward seenbys
|
|
// 3..4 : [reserved]
|
|
// 5 : areafix info visible
|
|
// 6 : initial combined area access
|
|
// 7 : Do Not use in Template
|
|
//
|
|
// attribute3 = [Reserved]
|
|
//
|
|
// destnode = nodes 1 to 8 - destnode[1]
|
|
// nodes 9 to 16 - destnode[2]
|
|
// nodes 17 to 24 - destnode[3]
|
|
// etc, etc, etc.
|
|
|
|
typedef struct MESSAGERECORD {
|
|
char name[31];
|
|
char areatag[31];
|
|
char qwkname[13];
|
|
MsgType typ;
|
|
MsgKindsType msgkinds;
|
|
char attribute,
|
|
attribute2,
|
|
attribute3;
|
|
char dayskill,
|
|
recvkill;
|
|
word countkill,
|
|
kilobytekill,
|
|
readsecurity;
|
|
EzFlagType readflags;
|
|
word writesecurity;
|
|
EzFlagType writeflags;
|
|
word sysopsecurity;
|
|
EzFlagType sysopflags;
|
|
char originline[51];
|
|
char originaddress;
|
|
char seenby[MAXAKA/8];
|
|
char areagroup,
|
|
messgroup;
|
|
char destnodes[MAXNODES/8];
|
|
char echomailfeed; // 0=No Uplink
|
|
} MESSAGERECORD;
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
#if defined(GOLD_CANPACK)
|
|
#pragma pack()
|
|
#endif
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
#endif
|
|
|
|
// ------------------------------------------------------------------
|