375 lines
9.6 KiB
C
375 lines
9.6 KiB
C
|
// This may look like C code, but it is really -*- C++ -*-
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// The Goldware Library
|
||
|
// Copyright (C) 1989-1990 Joaquim H. Homrighausen
|
||
|
// 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$
|
||
|
// ------------------------------------------------------------------
|
||
|
// Definitions for FrontDoor 1.99c and above
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#ifndef __gs_fd_h
|
||
|
#define __gs_fd_h
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#include <gdefs.h>
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#if defined(GOLD_CANPACK)
|
||
|
#pragma pack(1)
|
||
|
#endif
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// Actually only size of the following structure used
|
||
|
|
||
|
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;
|
||
|
} 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 for system to possibly end up in undialable list
|
||
|
|
||
|
word min_undial_cost;
|
||
|
|
||
|
char RESERVERAT[1018];
|
||
|
|
||
|
} FD_Mailer;
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
// Netmail folder behavior
|
||
|
|
||
|
#define RESTRICTED 0x00000001L
|
||
|
#define EXPORTOK 0x00000004L
|
||
|
#define USEXLATTABLES 0x00000008L
|
||
|
#define EDREADONLY 0x00000020L
|
||
|
|
||
|
#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];
|
||
|
|
||
|
// 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];
|
||
|
|
||
|
// RESERVED
|
||
|
|
||
|
char RESERVERAT[1024];
|
||
|
|
||
|
} FD_Editor;
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
typedef struct {
|
||
|
|
||
|
char systempath[71];
|
||
|
char mailpath[71];
|
||
|
char swap_path[71];
|
||
|
char RESERVED_path_1[71];
|
||
|
char RESERVED_path_2[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];
|
||
|
|
||
|
char RESERVED[1024];
|
||
|
|
||
|
} FD_Shared;
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
// Constant long bit values
|
||
|
|
||
|
#define FOLDER_RESTRICT 0x00000001L // Restricted folder
|
||
|
#define FOLDER_ECHOINFO 0x00000002L // Add Origin: information
|
||
|
#define FOLDER_EXPORTOK 0x00000004L // OK for user to export from folder
|
||
|
#define FOLDER_USEXLAT 0x00000008L // Use translation tables
|
||
|
#define FOLDER_PRIVATE 0x00000010L // Add Private message status
|
||
|
#define FOLDER_READONLY 0x00000020L // Folder is read-only
|
||
|
#define FOLDER_FORCEHARDCR 0x00000040L // Force hard CRs at linebreak (C)
|
||
|
#define FOLDER_JAM 0x01000000L // JAM Message Base folder
|
||
|
#define FOLDER_NOCHECK 0x02000000L // Exclude from new mail check (C)
|
||
|
#define FOLDER_NETMAIL 0x08000000L // Netmail-type folder (C)
|
||
|
#define FOLDER_HMB 0x10000000L // Hudson Message Base folder
|
||
|
#define FOLDER_DELETED 0x20000000L // Never written to disk
|
||
|
#define FOLDER_LOCAL 0x40000000L // Local-type folder
|
||
|
#define FOLDER_ECHOMAIL 0x80000000L // Conference-type folder
|
||
|
|
||
|
// User access mask
|
||
|
|
||
|
#define FOLDER_USER_1 0x00000001L
|
||
|
#define FOLDER_USER_2 0x00000002L
|
||
|
#define FOLDER_USER_3 0x00000004L
|
||
|
#define FOLDER_USER_4 0x00000008L
|
||
|
#define FOLDER_USER_5 0x00000010L
|
||
|
#define FOLDER_USER_6 0x00000020L
|
||
|
#define FOLDER_USER_7 0x00000040L
|
||
|
#define FOLDER_USER_8 0x00000080L
|
||
|
#define FOLDER_USER_9 0x00000100L
|
||
|
#define FOLDER_USER_10 0x00000200L
|
||
|
|
||
|
typedef struct {
|
||
|
|
||
|
char path[65], // Path if "board==0", otherwise emtpy
|
||
|
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 board number
|
||
|
|
||
|
} FD_Folder, *FOLDERPTR;
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#if defined(GOLD_CANPACK)
|
||
|
#pragma pack()
|
||
|
#endif
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#endif
|
||
|
|
||
|
// ------------------------------------------------------------------
|