1 // This may look like C code, but it is really -*- C++ -*- 2 3 // ------------------------------------------------------------------ 4 // The Goldware Library 5 // Copyright (c) 1994 Tobias Burchhardt 6 // Copyright (C) 1990-1999 Odinn Sorensen 7 // ------------------------------------------------------------------ 8 // This library is free software; you can redistribute it and/or 9 // modify it under the terms of the GNU Library General Public 10 // License as published by the Free Software Foundation; either 11 // version 2 of the License, or (at your option) any later version. 12 // 13 // This library is distributed in the hope that it will be useful, 14 // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 // Library General Public License for more details. 17 // 18 // You should have received a copy of the GNU Library General Public 19 // License along with this program; if not, write to the Free 20 // Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21 // MA 02111-1307, USA 22 // ------------------------------------------------------------------ 23 // $Id: gs_fech6.h,v 1.1.1.1 2000/02/25 10:12:12 asa Exp $ 24 // ------------------------------------------------------------------ 25 // FastEcho 1.42 beta structures 26 // ------------------------------------------------------------------ 27 28 #ifndef __gs_fech6_h 29 #define __gs_fech6_h 30 31 32 // ------------------------------------------------------------------ 33 34 #include <gdefs.h> 35 36 37 // ------------------------------------------------------------------ 38 39 #if defined(GOLD_CANPACK) 40 #pragma pack(1) 41 #endif 42 43 44 // ------------------------------------------------------------------ 45 // FASTECHO.CFG = <CONFIG> 46 // + <optional extensions> 47 // + <CONFIG.NodeCnt * Node> 48 // + <CONFIG.AreaCnt * Area> 49 50 #define REVISION 6 // current revision 51 #define MAX_ROUTE 15 // max # of 'vias' 52 53 // ------------------------------------------------------------------ 54 // Area.board (1-200 = Hudson) 55 56 #define NO_BOARD 0x4000u // JAM/Sq/Passthru etc. 57 #define AREA_DELETED 0x8000u // usually never written 58 59 60 // ------------------------------------------------------------------ 61 // Area.flags.storage 62 63 #define QBBS 0 64 #define FIDO 1 65 #define SQUISH 2 66 #define JAM 3 67 #define PASSTHRU 7 68 69 70 // ------------------------------------------------------------------ 71 // Area.flags.atype 72 73 #define AREA_ECHOMAIL 0 74 #define AREA_NETMAIL 1 75 #define AREA_LOCAL 2 76 #define AREA_BADMAILBOARD 3 77 #define AREA_DUPEBOARD 4 78 79 80 // ------------------------------------------------------------------ 81 // Types and other definitions 82 83 #define _MAXPATH 56 84 85 typedef struct CONFIGURATION6 86 { 87 word revision; 88 dword flags; 89 word NodeCnt, AreaCnt, unused1; 90 char NetMPath[_MAXPATH], 91 MsgBase[_MAXPATH], 92 InBound[_MAXPATH], 93 OutBound[_MAXPATH], 94 Unpacker[_MAXPATH], 95 LogFile[_MAXPATH], 96 unused2[448], 97 StatFile[_MAXPATH], 98 SwapPath[_MAXPATH], 99 SemaphorePath[_MAXPATH], 100 BBSConfigPath[_MAXPATH], 101 DBQueuePath[_MAXPATH], 102 unused3[32], 103 RetearTo[40], 104 SecurePath[_MAXPATH], 105 ExtAfter[_MAXPATH-4], 106 ExtBefore[_MAXPATH-4]; 107 byte unused4[480]; 108 struct { 109 byte what; 110 char object[31]; 111 word conference; 112 } CC[10]; 113 byte security, 114 loglevel; 115 word def_days, 116 def_messages; 117 byte unused5[462]; 118 word autorenum; 119 word def_recvdays; 120 word openQQQs; 121 word compressafter; 122 word afixmaxmsglen; 123 word compressfree; 124 char TempPath[_MAXPATH]; 125 byte graphics, 126 BBSSoftware; 127 char AreaFixHelp[_MAXPATH]; 128 byte unused6[504]; 129 word AreaFixFlags; 130 byte QuietLevel, 131 Buffers; 132 byte FWACnt, // # of ForwardAreaFix records, 133 GDCnt; // # of Group Default records 134 struct { 135 word flags; 136 word days[2]; 137 word msgs[2]; 138 } rescan_def; 139 dword duperecords; 140 struct { 141 byte inb; 142 byte outb; 143 } arcext; 144 word AFixRcptLen; 145 word AkaCnt; // # of Aka records stored */ 146 word maxPKT; 147 byte sharing, 148 sorting; 149 struct { 150 char name[36]; 151 dword resv; 152 } sysops[11]; 153 char AreaFixLog[_MAXPATH]; 154 char TempInBound[_MAXPATH]; 155 word maxPKTmsgs; 156 word RouteCnt; // # of PackRoute records 157 word maxPACKratio; 158 byte PackerCnt, UnpackerCnt; // # of Packers and Unpackers records 159 byte GroupCnt, OriginCnt; // # of GroupNames and Origin records 160 word mailer; 161 char resv[810]; 162 word AreaRecSize, GrpDefRecSize; // Size of Area and GroupDefaults 163 // records stored in this file 164 word MaxAreas, MaxNodes; // Current max values for this config 165 word NodeRecSize; // Size of each stored Node record 166 dword offset; // This is the offset from the current 167 // file-pointer to the 1st Node 168 } CONFIG6; 169 170 171 // ------------------------------------------------------------------ 172 173 typedef struct 174 { 175 char name[52]; 176 word board; // 1-200 Hudson, others reserved/special 177 word conference; // 0 ... CONFIG.MaxAreas-1 178 word read_sec, write_sec; 179 struct { 180 word aka : 8; // 0 ... CONFIG.AkaCnt 181 word group : 8; // 0 ... CONFIG.GroupCnt 182 } info; 183 struct { 184 word storage: 4; 185 word atype : 4; 186 word origin : 5; // # of origin line 187 word resv : 3; 188 } flags; 189 struct { 190 word autoadded : 1; 191 word tinyseen : 1; 192 word cpd : 1; 193 word passive : 1; 194 word keepseen : 1; 195 word mandatory : 1; 196 word keepsysop : 1; 197 word killread : 1; 198 word disablepsv : 1; 199 word keepmails : 1; 200 word hide : 1; 201 word nomanual : 1; 202 word umlaut : 1; 203 word resv : 3; 204 } advflags; 205 word resv1; 206 dword seenbys; // LSB = Aka0, MSB = Aka31 207 dword resv2; 208 short days; 209 short messages; 210 short recvdays; 211 char path[_MAXPATH]; 212 char desc[52]; 213 } FeArea6; 214 215 216 // ------------------------------------------------------------------ 217 // Optional Extensions 218 219 typedef struct { 220 word type; // EH_... 221 dword offset; // length of field excluding header 222 } ExtensionHeader; 223 224 #define EH_AKAS 0x0007 // CONFIG.AkaCnt * <SysAddress> 225 226 typedef struct { 227 ftn_addr main; 228 char domain[28]; 229 word pointnet; 230 dword flags; // unused 231 } SysAddress; 232 233 #define EH_ORIGINS 0x0008 // CONFIG.OriginCnt * <OriginLines> 234 235 typedef struct { 236 char line[62]; 237 } OriginLines; 238 239 240 // ------------------------------------------------------------------ 241 242 #if defined(GOLD_CANPACK) 243 #pragma pack() 244 #endif 245 246 247 // ------------------------------------------------------------------ 248 249 #endif 250 251 // ------------------------------------------------------------------ 252