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_inter.h
2005-10-23 04:39:25 +00:00

478 lines
15 KiB
C++

// This may look like C code, but it is really -*- C++ -*-
// ------------------------------------------------------------------
// The Goldware Library
// Copyright (C) 1989-1994 Peter Stewart & InterZone Software, inc.
// 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$
// ------------------------------------------------------------------
// FD.SYS definitions for InterMail 2.2x
// ------------------------------------------------------------------
#ifndef __gs_inter_h
#define __gs_inter_h
// ------------------------------------------------------------------
#include <gftnall.h>
// ------------------------------------------------------------------
#if defined(GOLD_CANPACK)
#pragma pack(1)
#endif
// ------------------------------------------------------------------
typedef struct {
/* The logfile */
char log[71];
word loglevel; /* See --- Loglevels */
/* Number manipulation */
char prefix[31]; /* Always added */
char hidden[10][31]; /* Strip these if they are in # */
char postfix[31]; /* Always appended */
/* Miscellaneous flags */
long flags; /* See --- Miscellaneous flags */
long flags_reserved; /* Reserved flags */
word audio; /* See --- Audio flags */
byte synchtimer; /* Number of seconds for sync */
/* Errorlevels */
byte crashexit; /* Mail exit */
byte bbs300;
byte bbs1200;
byte bbs1275;
byte bbs2400;
byte bbs4800;
byte bbs9600;
byte bbs19200;
byte bbs38400;
/* Modem */
word modembaud; /* 30=300, 24=2400, etc. */
byte modemport; /* 1-255 (COM1=1, COM2=2, etc.) */
byte modemdelay; /* 1/10 seconds delay / line sent */
/* --- Messages */
char b300msg[16];
char b1200msg[16];
char b1275msg[16];
char b2400msg[16];
char b4800msg[16];
char b9600msg[16];
char b19200msg[16];
char b38400msg[16];
char errormsg[16];
char busymsg[16];
char carriermsg[16];
char okmsg[16];
char ringmsg[16];
char nodialmsg[16];
char noanswmsg[16];
char voicemsg[16];
/* --- Commands */
char escapestr[11];
char offhookstr[11];
char reconnectstr[11];
char init1[50];
char init2[50];
char init3[50];
char resetstr[50];
char downstr[50];
char hangupstr[11];
char dialstr[11];
/* --- Manual answer stuff */
char modemanswer[11];
byte answerdelay;
/* ------ Limited answer start and end times */
byte begin_hour;
byte begin_minute;
byte end_hour;
byte end_minute;
/* Calling control */
byte retrybusy;
byte retryresend;
byte retrydelay;
/* File request control */
char reqlist[71]; /* List to scan for reqable dirs */
char reqalias[71]; /* Magic filenames */
char reqmessage[71]; /* Appended to FAILED REQUEST message */
byte reqtype; /* Bit field */
byte reqmaxfiles; /* Max number of files to send on 1 req*/
word reqmaxtime; /* Maximum number of minutes for req*/
word reqmaxsize; /* Maximum size (in KB) for req */
word reqminbaud; /* Minimum baudrate for req */
byte reqstarthr; /* Start time for file requests, can be*/
byte reqstartmin; /* combined with the reqdays field. */
byte reqendhr;
byte reqendmin;
byte reqdays;
/* File to send when human callers are let thru */
char bbsname[11];
char beforebbsbanner[71];
/* Function keys from mailer menu */
struct {
char cmd[61];
char title[26];
byte behavior; /* 1-Pause, 2-Process msg base */
} key[24];
/* Mailer colors */
byte color[11];
/* Number of days to keep entries in history files */
byte keep_history;
/* FDServer password, if none given, server is INactive */
char slavepwd[21];
/* File displayed to users when system is in event for no callers */
char ineventfile[71];
/* File displayed when human callers are seen on mail-only system */
char mailonlyfile[71];
/* External programs to run on certain "wake-up" strings */
struct {
char wakeupstr[40];
byte errorlevel;
} externmail[10];
/* RESERVED FIELD */
/* --- Limited audio start and end times. If the below four bytes
are all zero (0), audio is enabled all the time */
byte audio_begin_hour;
byte audio_begin_minute;
byte audio_end_hour;
byte audio_end_minute;
/* --- Minimum cost to process undialable */
word min_undial_cost;
char RESERVERAT[886];
char extrnreq [71];
char modem_name[61]; /* modem name, for 'modem selection' */
} _mailer;
/* Netmail folder behavior */
#define RESTRICTED 0x00000001L
#define EXPORTOK 0x00000004L
#define USEXLATTABLES 0x00000008L
#define EDREADONLY 0x00000020L
/* Echomail flags */
#define SAVEBAD 0x00000001L
typedef struct {
char path[65]; /* Path if "board==0", otherwise empty (65) */
byte ftype; /* Folder type */
char areatag[39]; /* Echomail area tag */
byte origin; /* Default origin line, 0-19 */
char title[41]; /* Title to appear on screen */
byte useaka; /* AKA to use, 0==primary */
word board; /* QuickBBS/RemoteAccess/WC board number */
word upzone; /* Uplink zone */
word upnet; /* Uplink net */
word upnode; /* Uplink node */
word uppoint; /* Uplink point */
long behave; /* Behavior, see above */
long hiwater; /* Highwater mark for echomail */
long pwdcrc; /* CRC32 of password or -1L if unprotected */
long userok; /* Users with initial access */
long accflags; /* access flags, for network environment */
char reserved[8]; /* for future expansion */
} _eFOLDER;
#define MSGPRIVATE 0x0001
#define MSGCRASH 0x0002
#define MSGREAD 0x0004
#define MSGSENT 0x0008
#define MSGFILE 0x0010
#define MSGTRANSIT 0x0020
#define MSGORPHAN 0x0040
#define MSGKILL 0x0080
#define MSGLOCAL 0x0100
#define MSGHOLD 0x0200
#define MSGUNUSED 0x0400
#define MSGFREQ 0x0800
#define MSGRRREQ 0x1000
#define MSGISRR 0x2000
#define MSGAREQ 0x4000
#define MSGFUPDREQ 0x8000
typedef struct {
/* Macro keys */
char macrokey[24][61]; /* F1-F12, Shift F1-F12 */
/* Margin, default==60 */
byte margin;
/* Default message status */
word msgbits;
/* Miscellaneous settings */
long flags;
/* Origin lines */
char origin[20][61];
/* Editor colors */
byte color[15];
/* Netmail folder flags */
long netfolderflags;
/* Translation tables IN/OUT */
byte translate_in[256];
byte translate_out[256];
/* Where RemoteAccess/QuickBBS message base files are */
char qbase[71];
char WCmain[71];
/* RESERVED */
char RESERVERAT[255];
long echoflags;
_eFOLDER BBSnet;
_eFOLDER dupes;
_eFOLDER badecho;
char echolog[65];
char IMEWork[71];
} _editor;
typedef struct {
char systempath[71];
char mailpath[71];
char swap_path[71];
char semaphore[71];
char secfilespath[71];
char infilepath[71];
char packetpath[71];
char nodelistpath[71];
word countrycode;
ftn_addr aka[11];
/* Timeout value for screen blanker in SECONDS (0-255) */
long flags;
byte blackout_time;
/* User record */
struct {
char name[37];
long pwdcrc; /* Crc-32 of user password, -1L No pwd */
dword flags;
} user[10];
/* Protection of exits */
dword exitpwdcrc; /* Password for DOS shell, exits, etc. */
dword exitflags; /* Which flags should be protected */
char filler[760]; /* contains domain stuff */
char systemname[50]; /* site_info - system name */
char systemloc[40]; /* site_info - location */
char systemphone[24]; /* site_info - phone */
char fill[6]; /* 6 loose bytes :) */
char systemflags[20]; /* site_info - nodelist flags */
char systemcountry[26]; /* site_info - country */
char serial[14]; /* serial number */
char outecho[66]; /* outbound echomail packets */
char reserved[10]; /* reserved space */
} _shared;
typedef struct {
char initstring[41]; /* Init string */
word scrollsize; /* Max memory to use for buffer (in K) */
byte emulation; /* 0=TTY, 1=ANSI, 2=VT52, 3=VT100 */
byte protocol; /* Index in protocol list */
char shiftkey[12][31]; /* Shift F1-F12 macro settings */
char ctrlkey[12][31]; /* Ctrl F1-F12 macro settings */
char downloadpath[60]; /* Default download path */
char uploadpath[60]; /* Default upload path */
byte translate_in[256]; /* Translation table - modem->screen */
byte translate_out[256]; /* Translation table - screen->modem */
byte retrywait; /* Seconds to wait before next dial.. */
dword flags; /* Behavior, sounds, flashes.. etc. */
dword directorypwd; /* CRC-32 of password to enter phoneDir*/
char editor[60]; /* Invoked with Alt-I */
char RESERVERAT[796]; /* Reserved space */
ftn_addr newaka[21];
} _terminal;
typedef struct {
char port; /* 0 LPT1, 1 LPT2, 2 LPT3, 3 COM1, 4 COM2 */
char baud; /* 0 9600, 1 4800, 2 2400, 3 1200 */
byte stopbits; /* 0x00 - 1, 0x01 - 2 */
byte wordlength; /* 0x00 - 7, 0x01 - 8 */
byte parity; /* 0x00 - Even, 0x01 - Odd, 0x02 - None */
byte pagelen;
long behavior;
char init[71];
char reset[71];
char bold_on[31];
char bold_off[31];
char pr1RESERVED[62];
char italic_on[31];
char italic_off[31];
byte pagewidth; /* Width in columns of a page */
byte leftmargin; /* Left margin, ie. start printing at column*/
byte footer; /* Footer margin, ie. leave nn lines */
byte header; /* Header margin, ie. skip nn lines */
byte translate_out[256]; /* Translation table - disk->printer */
char pr2RESERVED[100];
} _printer;
#define IM_THISREV 0x0100
struct _ctl {
char fingerprint[5]; /* Must contain "JoHo" */
word sysrev; /* Must contain THISREV above */
dword ctlcrc; /* CRC-32 of struct excluding the 1st 11 bytes */
_mailer m;
_editor e;
_shared s;
_terminal t;
_printer p;
dword ctlcrc2; /* CRC-32 of all the above */
};
// Constant long bit values
#define RESTRICT 0x00000001L
#define ECHO_INFO 0x00000002L
#define EXPORT_OK 0x00000004L
#define USE_XLAT 0x00000008L
#define PRIVATE 0x00000010L
#define READONLY 0x00000020L
#define F_NETMAIL 0x08000000L
#define BOARDTYPE 0x10000000L
#define DELETED 0x20000000L /* Never written to disk */
#define LOCAL 0x40000000L
#define ECHOMAIL 0x80000000L
#define F_MSG 0
#define F_HUDSON 1
#define F_WC35 2
#define F_PCB15 3
#define F_JAM 4
// Folder structure
typedef struct {
char path[65]; /* Path if "board==0", otherwise empty (65) */
byte ftype; /* Folder type */
char areatag[39]; /* Echomail area tag */
byte origin; /* Default origin line, 0-19 */
char title[41]; /* Title to appear on screen */
byte useaka; /* AKA to use, 0==primary */
word board; /* QuickBBS/RemoteAccess/WC conf number */
word upzone; /* Uplink zone */
word upnet; /* Uplink net */
word upnode; /* Uplink node */
word uppoint; /* Uplink point */
long behave; /* Behavior, see above */
long hiwater; /* Highwater mark for echomail */
long pwdcrc; /* CRC32 of password or -1L if unprotected */
long userok; /* Users with initial access */
long accflags; /* access flags, for network environment */
long timestamp; /* Time stamp for detecting msg base updates*/
char reserved[4]; /* for future expansion */
} FOLDER;
// The following struct was used in IM 2.00-2.25, file name FOLDER.CFG.
typedef struct {
char path[65]; /* Path if "board==0", otherwise empty (65) */
char title[41]; /* Title to appear on screen */
byte origin; /* Default origin line, 0-19 */
long behave; /* Behavior, see above */
long pwdcrc; /* CRC32 of password or -1L if unprotected */
long userok; /* Users with initial access */
byte useaka; /* AKA to use, 0==primary */
word board; /* QuickBBS/RemoteAccess/WC board number */
} OLDFOLDER;
// ------------------------------------------------------------------
#if defined(GOLD_CANPACK)
#pragma pack()
#endif
// ------------------------------------------------------------------
#endif
// ------------------------------------------------------------------