337 lines
12 KiB
C++
337 lines
12 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$
|
|
// ------------------------------------------------------------------
|
|
// PCBoard Structures.
|
|
// ------------------------------------------------------------------
|
|
|
|
#ifndef __GS_PCB_H
|
|
#define __GS_PCB_H
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
#if defined(GOLD_CANPACK)
|
|
#pragma pack(1)
|
|
#endif
|
|
|
|
// ------------------------------------------------------------------
|
|
// PCBoard Conference Information (CNAMES.@@@ file)
|
|
|
|
struct PcbConf {
|
|
|
|
char name[14]; // Conference name
|
|
byte publicconf; // New user default registration
|
|
byte autorejoin; // Auto-rejoin for this conference
|
|
byte viewmembers; // Allow viewing conference members
|
|
byte privuplds; // Make uploads private
|
|
byte privmsgs; // Make all messages private
|
|
byte echomail; // Is this an Echo-Mail conference
|
|
short reqseclevel; // Security required to join non-public conf.
|
|
short addsec; // Additional security level added after join
|
|
short addtime; // Additional time added after join
|
|
char msgblocks; // Number of message base index blocks
|
|
char msgfile[32]; // Name and location of messages file
|
|
char usermenu[32]; // Name and location of Users Menu
|
|
char sysopmenu[32]; // Name and location of Sysops Menu
|
|
char newsfile[32]; // Name and location of Conference News
|
|
char pubupldsort; // Sort type for public upload DIR file
|
|
char uplddir[29]; // Name and location of public upload DIR file
|
|
char pubupldloc[26]; // Public upload location
|
|
char prvupldsort; // Sort type for public upload DIR file
|
|
char privdir[29]; // Name and location of private upload DIR file
|
|
char prvupldloc[26]; // Private upload location
|
|
char drsmenu[29]; // Name and location of conference doors menu
|
|
char drsfile[33]; // Name and location of DOORS.LST file
|
|
char bltmenu[29]; // Name and location of conference blt menu
|
|
char bltnameloc[33]; // Name and location of BLT.LST file
|
|
char scrmenu[29]; // Name and location of conference scripts menu
|
|
char scrnameloc[33]; // Name and location of SCRIPT.LST
|
|
char dirmenu[29]; // Name and location of directories menu
|
|
char dirnameloc[33]; // Name and location of DIR.LST file
|
|
char pthnameloc[33]; // Name and location of DLPATH.LST file
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
// PCBoard Additional Conference Information (CNAMES.ADD file)
|
|
|
|
struct PcbAddConf {
|
|
|
|
byte forceecho; // Turn off echo question, force all msgs to echo
|
|
byte readonly; // Do not allow ANY msgs to be entered in conf
|
|
byte noprivatemsgs; // Do not allow PRIVATE msgs to be entered
|
|
char retreceiptlevel; // Level required to request return receipts
|
|
byte recordorigin; // Record ORIGIN in messages
|
|
byte promptforrouting; // Prompt user for ROUTING information
|
|
byte allowaliases; // Allow aliases to be used
|
|
byte showintroonra; // Show the Conf INTRO in the middle of R A scan
|
|
char reqleveltoenter; // Security Level required to enter messages
|
|
char password[13]; // Password reqd to join if private
|
|
char intro[32]; // Name/location of conference INTRO file
|
|
char attachloc[32]; // Location for file attachment storage
|
|
char regflags[4]; // RXS flags for automatic conf registration
|
|
char attachlevel; // Level required to attach a message
|
|
char carbonlimit; // Max number of names in carbon list
|
|
char cmdlst[32]; // Name/location of CMD.LST use instead of default
|
|
byte oldindex; // Maintain old MSGS indexes?
|
|
byte longtonames; // Allow long TO: names to be entered
|
|
char carbonlevel; // Level required to enter @LIST@ messages
|
|
char conftype; // One byte code for conference type
|
|
long exportptr; // A pointer to the last message number exported
|
|
long chargetime; // Amount to charge for time spent in conference
|
|
long chargemsgread; // Amount to charge for each message read
|
|
long chargemsgwrite; // Amount to charge for each message written
|
|
char reserved[64]; // Reserved for future growth
|
|
char name2[48]; // Conf name #2
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
// Conference types in CNAMES.ADD
|
|
|
|
const char PCBCONFTYPE_NORMAL = 0; // Normal PCBoard Conference
|
|
const char PCBCONFTYPE_EMAIL = 1; // Internet Email (Import & Export)
|
|
const char PCBCONFTYPE_USENETJUNK = 2; // Internet/Usenet Junk (Import Only)
|
|
const char PCBCONFTYPE_USENETMOD = 3; // Usenet Moderated Newsgroup (Export Public as Email to Moderator / Private as Email to TO:)
|
|
const char PCBCONFTYPE_USENETPUB = 4; // Usenet Public Newsgroup (Export Public as Articles / Private as Email to TO:)
|
|
const char PCBCONFTYPE_FIDOCONF = 5; // Fido Conference
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoArea {
|
|
|
|
word pcbconference; // PCBoard conference number
|
|
char areaname[60]; // FIDO area tag
|
|
char messages[66]; // Path to conference message file
|
|
char defaultaka[25]; // Aka for conference
|
|
char origin[70]; // Origin for conference
|
|
char highascii; // S R C N
|
|
char reserved[19]; // Reserved space
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoArchivers {
|
|
|
|
char archivers[4][66]; // Stores the name of the archiver executable
|
|
char archiver_switches[4][80]; // Stores the name of the archiver switches
|
|
char unarchivers[4][66]; // Stores the name of the unarchiver executable
|
|
char unarchiver_switches[4][80]; // Stores the name of the unarchiver switches
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoDirectories {
|
|
|
|
char incoming_packets[66]; // Incoming directory
|
|
char outgoing_packets[66]; // outbound directory
|
|
char outgoing_msg[66]; // *.MSG directory
|
|
char bad_packets[66]; // BAD directory
|
|
char nodelist_path[66]; // nodelist directory
|
|
char work_directory[66]; // work directory
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoEmsiData {
|
|
|
|
char BBS_Name[60]; // BBS name
|
|
char City[30]; // City
|
|
char Sysop[30]; // Sysop's name
|
|
char Phone[50]; // BBS phone number
|
|
char Baud[10]; // MAX baud
|
|
char Flags[50]; // Fido FLAGS
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoAddress {
|
|
|
|
char nodestr[25]; // Full fido address in the form Z:N/N.P
|
|
word this_zone; // FIDO zone
|
|
word this_net; // FIDO net
|
|
word this_node; // FIDO node
|
|
word this_point; // FIDO point
|
|
char reserved[10]; // Reserved space
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoNode {
|
|
|
|
char nodestr[25]; // Full fido address in the form Z:N/N.P
|
|
word zone; // FIDO zone
|
|
word net; // FIDO net
|
|
word node; // FIDO node
|
|
word point; // FIDO point
|
|
word pkt_type; // FIDO packet type 1=stoneage 2=2+
|
|
short archiver_index; // index to archiver 0=ZIP,1=ARJ,2=ARC,3=LZH
|
|
char reserved[10]; // Reserved space
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoTranslate {
|
|
|
|
char in[30]; // What to traslate
|
|
char out[30]; // What to translate to
|
|
char reserved[10]; // reserved space
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoNodelist {
|
|
|
|
char basename[80]; // Nodelist name (no extension)
|
|
char diffname[9]; // Diff file name (no extension)
|
|
short last_compile; // Last compiled version number
|
|
char reserved[10]; // reserved space
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoFreqPath {
|
|
|
|
char str[60]; // fully qualified path to FREQ files
|
|
char reserved[20]; // reserved space.
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoFreqInfo {
|
|
|
|
word stime; // Session max time
|
|
word dtime; // Daily max time
|
|
long sbytes; // Session bytes
|
|
long dbytes; // Daily Bytes
|
|
char listed; // Allowed Nodes
|
|
word baud; // Minimum allowed baud
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbFidoFreqMagic {
|
|
|
|
char magic_name[20]; // Magic name
|
|
char real_name[50]; // Associated file name
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbDirectories {
|
|
char incoming_packets[66]; // Incoming directory
|
|
char outgoing_packets[66]; // Outbound directory
|
|
char outgoing_msg[66]; // *.MSG directory
|
|
char bad_packets[66]; // BAD directory
|
|
char nodelist_path[66]; // Nodelist directory
|
|
char work_directory[66]; // Work directory
|
|
char passthrough[66]; // Passthru files
|
|
char securemail[66]; // Secure netmail
|
|
char messages[66]; // response Messages
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbArchivers {
|
|
char archivers[4][66]; // Stores the name of the archiver executable
|
|
char archiver_switches[4][80]; // Stores the name of the archiver switches
|
|
char unarchivers[4][66]; // Stores the name of the unarchiver executable
|
|
char unarchiver_switches[4][80]; // Stores the name of the unarchiver switches
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbEmsiData {
|
|
char bbs_name[60]; // BBS name
|
|
char city[30]; // City
|
|
char sysop[30]; // Sysop's name
|
|
char phone[50]; // BBS phone number
|
|
char baud[10]; // MAX baud
|
|
char flags[50]; // Fido FLAGS
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbAreasDat {
|
|
word confno;
|
|
char areatag[60];
|
|
word aka;
|
|
word origin;
|
|
char high_ascii;
|
|
word last_activity;
|
|
char allow_private;
|
|
char allow_attach;
|
|
byte reserved[10];
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbAkasDat {
|
|
ftn_addr addr;
|
|
char primary_address;
|
|
char in_seenby;
|
|
char present_in_handshake;
|
|
char up_downlink;
|
|
char conf_range[70];
|
|
char reserved[10];
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
struct PcbOriginsDat {
|
|
char origin[70];
|
|
char conf_range[70];
|
|
char reserved[10];
|
|
};
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
#if defined(GOLD_CANPACK)
|
|
#pragma pack()
|
|
#endif
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
#endif
|
|
|
|
// ------------------------------------------------------------------
|
|
|