// 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 // ------------------------------------------------------------------