home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / BBTO230.ZIP / BBTSTRUC.INC < prev    next >
Encoding:
Text File  |  1999-05-31  |  10.0 KB  |  235 lines

  1. { Struktur der BBToss Area- und Link-Daten v2.20}
  2.  
  3. { Die Dateien (*.BBT) sind prinzipiell wie folgt aufgebaut: }
  4.  
  5. {   +--------------------+
  6.     | DATEIHEADER-RECORD |  Header vom Typ signrec
  7.     +--------------------+
  8.     | Datensaetze ...    |
  9.     |             ...    |
  10.     +--------------------+
  11.     | DATEIHEADER-RECORD |  Wiederholung des Header-Records vom Anfang
  12.     +--------------------+
  13. }
  14.  
  15. Const
  16.   {Bei Aenderungen der Datenstrukturen aendert sich der DataRevisionLevel}
  17.   DataRevisionLevel = $000D;   { 000A ab v2.10 *.BBT Dateien Data-Revisionlevel}
  18.                                { 000B ab v2.10B04  Netmaildefaultzone}
  19.                                { 000C ab v2.10B08  Tosser: timed/Golded/Squish.cfg hinzu
  20.                                                    singnrectyp:record length added}
  21.                                { 000D ab v2.20     Tosser: NetmailSentArea}
  22. {Configfile-Namen}
  23.  
  24.   bbtlngbin      = 'bbtlng.bbt';   {compiliertes Sprachfile (bbtlng.cfg)}
  25.   bbtossini      = 'bbtoss.ini';   {Grundeinstellungen, Pfade und Flags}
  26.                                    {war bis v2.09 bbtoss.cfg}
  27.  
  28.   bbtlinkini     = 'bbtlink.ini';  {Linkdaten als Text/Inidatei}
  29.   bbtareaini     = 'bbtarea.ini';  {Areadaten als Text/Inidatei}
  30.   bbtlinkbin     = 'bbtlink.bbt';  {Configdatei der Linkdaten (binär)}
  31.   bbtareabin     = 'bbtarea.bbt';  {Configdatei der Areadaten (binär)}
  32.  
  33.   bbtgroupini    = 'bbtgroup.ini'; {Gruppendaten als Text/Inidatei}
  34.  
  35. {  bbtakacfg      = 'bbtaka.cfg';   {List eingener Akas, * obsolete *}
  36.   bbtzipini      = 'bbtzip.ini';   {Packereinstellungen}
  37.   bbtaliascfg    = 'bbtalias.cfg'; {Aliasnamen}
  38.  
  39. { bbtuplinkcfg   = 'bbtuplnk.cfg'; {Uplink-Einstellungen -> obsolete now bbuplnk.ini}
  40.   bbtuplinkini   = 'bbtuplnk.ini'; {Uplink-Einstellungen umgestellt v2.10B05}
  41.  
  42.   bbtroutecfg    = 'bbtroute.cfg'; {Netmail Routing-Einstellungen}
  43.  
  44.   bbtcrcfile     = 'bbtdupe.bbt';  {CRC Daten fuer Dupe-Check}
  45.   bbtsayerrfile  = 'bbsayerr.bbt'; {Textfile fuer Errormsgs BTSayerr}
  46.   bbtlockfile    = 'bbtoss.bsy';   {wird bei Programm Ende gelöscht}
  47.   bbtimportlog   = 'import.log';   {Echotoss.log der importierten Echomails,
  48.                                     wird bei jedem Tosslauf neu erstellt,
  49.                                     - Default, in bbtoss.ini ueberschreibbar}
  50.  
  51.  
  52. {----- Declarationen fuer Links und Link-Record---------------------}
  53. {LinkFlag Definitionen fuer Link-Record}
  54. Link_activ        = $00000001; {link ist aktiv}
  55. Link_checkpktpwd  = $00000002; {checkpktpwd}
  56. Link_sayerror     = $00000004; {automatische Nachricht bei Fehlern}
  57. Link_autocreate   = $00000008; {berechtigt zum anlegen neuer Areas}
  58. Link_forwardmgr   = $00000010; {Areamgr Requests forwarded zum uplink}
  59. Link_packnetmail  = $00000020; {netmail mit einpacken}
  60. Link_packholdnet  = $00000040; {netmail mit Hold-Status einpacken}
  61. Link_nodailyzip   = $00000080; {Arcmail auffüllen, nicht täglich neue Endung}
  62. Link_autoconnect  = $00000100; {link zu neuen Areas automatisch connecten}
  63. Link_notify       = $00000200; {send Statusmsgs}
  64. Link_fattachok    = $00000400; {link darf f'attach Msgs schicken}
  65. Link_mgrpwdchange = $00000800; {link darf per Areamgr Passwort aendern}
  66. Link_areainfo     = $00001000; {link bekommt info bei neuen Areas seiner Gruppe}
  67.                                {     wenn area per autocreate eingerichtet}
  68. Link_arcmail060   = $00002000; {Arc mail packets entsprechend arcmail 0.60 Standard}
  69. Link_readonly     = $00004000; {readonly link}
  70.  
  71. {----- Declarationen für Areas und Area-Record----------------------}
  72. {Arc-Mail Status und AntwortmsgStatus Verwendung in Link-Record}
  73. mailstatus_normal =  0;  {arcmail_status = linkrec.mailstatus and $0F}
  74. mailstatus_hold   =  1;
  75. mailstatus_direct =  2;
  76. mailstatus_crash  =  4;
  77.  
  78. {mgrmsg_normal  =  0;  {mgrmail_staus = linkrec.mailstatus and $F0}
  79.  
  80. {mgrmsg_hold    =$10;
  81.  mgrmsg_direct  =$20;
  82.  mgrmsg_crash   =$40;}
  83.  
  84. {AreaFlags Definitionen}
  85. Area_killseenby  = $00000001; {seen-by zeilen löschen  }
  86. Area_killpath    = $00000002; {path-zeile zurücksetzen }
  87. Area_resetscanaka= $00000004; {beim scan immer AreaAka verwenden + Msgid update}
  88. Area_chkaka      = $00000008; {prüfe Absender-Aka jeder Msg}
  89. Area_passive     = $00000010; {Area temporär passiv    }
  90. Area_importseenby= $00000020; {import seenby in msgbase}
  91. Area_importpath  = $00000040; {import path in MsgBase  }
  92. Area_excludebbs  = $00000080; {nicht in Box exportieren}
  93. Area_Pflichtarea = $00000100; {abmelden nicht möglich  }
  94. Area_Readonly    = $00000200; {ausser Uplink alle links nur lesender Zugriff}
  95.  
  96. type  SignStr = array[1..10] of char;  {Keyword in SignRec}
  97.  
  98. const AreaSign   : SignStr = 'BBTAREACFG';
  99.       LinkSign   : SignStr = 'BBTLINKCFG';
  100.       LngSign    : SignStr = 'BBTOSSLANG';
  101.       DupeSign   : SignStr = 'BBTDUPEREC';
  102.  
  103. type  SignRec = record    {Vorspann in Bit-Cfg Files}
  104.         Sign : SignStr;   {bbtarea.bbt & bbtlink.bbt usw.}
  105.         Rev  : SmallWord; {SmallWord = 2 Byte Word (16Bit), Datarevision}
  106.         Count: SmallWord; {Anzahl folgender Datensätze}
  107.         end;
  108.  
  109. {String sind im Turbo Pascal Format, also LängenByte+x_Zeichen}
  110. {SmallWord = 16 Bit Word ohne Vorzeichen}
  111. String60 = String[60];
  112. String79 = String[79];
  113.  
  114. {
  115. aktuelle Definitionen, in anderer Unit declariert ....
  116.  
  117. Addrtype = record
  118.    Zone,
  119.    Net,
  120.    Node,
  121.    Point : SmallWord;
  122.    end;
  123. }
  124.  
  125. {verwendete Zeichen für Packer -> LinkFileRec.Zipper}
  126. {      Z = ZIP     }
  127. {      A = ARC     }
  128. {      L = LHA/LZH }
  129. {      J = ARJ     }
  130. {      S = SQZ     }
  131. {      R = RAR     }
  132. {      H = HYP     }
  133. {      O = ZOO     }
  134. {      U = UC2     }
  135.  
  136. { Structur fuer BBTLINK.BBT}
  137. LinkFileRec = Record
  138.     SysOp      : String[40]; {Sysop-Name}
  139.     NodeNr     : Addrtype;   {Nodenummer des Links}
  140.     UseAka     : Addrtype;   {Absender Aka fuer PKT-Files}
  141.     PktPwd     : String[9];  {Packet Password}
  142.     MgrPwd     : String[15]; {Areamgr Password}
  143.     Level      : SmallWord;  {Level des Links}
  144.     Zipper     : Char;       {Packer fuer AcrMails Z=Zip J=ARJ A=ARC L=LHA...}
  145.     Group      : String[15]; {Buchstabe der angeschlossenen Gruppen A..Z,a..z,
  146.                              0..9, *=alle}
  147.     Mailstatus : Byte;       {normal hold direct crash..siehe arcmail_xxx}
  148.                              {Arcmail = Mailstatus and $F, Msg = mailstatus and $F0}
  149.     Capability : SmallWord;  {Packetformat, Type 2 type 2+ usw. (aktuell not used)}
  150.     LinkFlags  : Longint;    {Link-Flags, siehe Link_xxxx Konstanten}
  151.     Flow       : Longint;    {Anzahl gesendeter Echomails (aktuell not used)}
  152.     FlowKB     : Longint;    {Anzahl KB gesendeter Echomails (uncomprimiert)}
  153.     Comment    : String[40]; {Kommentar}
  154.     MaxPktSize : Longint;    {Maximale Groesse eines Packets *.PKT Files in Byte}
  155.     MaxZipSize : Longint;    {Maximale Grosse eines Arcmail Archives in Byte}
  156.     StatDate   : Longint;    {Date FlowCount started}
  157.     LastPktRcvd: Longint;    {Timestamp wann letztes Packet von Link verarbeitet}
  158.  
  159.     end;
  160.  
  161. {
  162. Aufbau Area-Datei BBTAREA.BBT
  163.    signrec
  164.       areafilerec
  165.         array [1..areafilerec.storedlinks] of addrtype; -> variable Länge
  166.       areafilerec
  167.         array [1..areafilerec.storedlinks] of addrtype;
  168.       ...
  169.         ...
  170.       ...
  171.         ...
  172.    signrec
  173.  
  174. {verwendete Zeichen für Messagebasetype -> AreaFileRec.Basetyp}
  175. {   E = EzyCom              }
  176. {   H = Hudson              }
  177. {   J = JAM                 }
  178. {   L = HTML                }
  179. {   N = Fido Netmail *.MSG  }
  180. {   S = Squish              }
  181. {   P = Passthrough         }
  182.  
  183. {verwendete Zeichen für Area-Typ -> AreaFileRec.Typ}
  184. {   B = Badmail Area                  }
  185. {   D = Dupemail Area                 }
  186. {   E = Echo Area                     }
  187. {   L = lokales Area (also ohne Links)}
  188. {   N = Netmail                       }
  189. {   * = neu bestellt per Uplinkmgr    }
  190.  
  191. { Structur BBTAREA.BBT}
  192. AreaFileRec = Record
  193.    TagName    : String60;  {Echo-Area Name}
  194.    Nr         : SmallWord; {Nr. des Messagearea (in der Mailbox)}
  195.    MPath      : String79;  {Msgbasename, bei Hudson '' (muß mit \ enden)}
  196.    BaseTyp    : char;      {Msg-Basetype  J=Jam H=Hudson S=Squish usw.}
  197.    Group      : char;      {Gruppe des Areas  'A'..'Z','a'..z','0'..'9','*'}
  198.    Typ        : char;      {E=Echo L=Lokal B=Bad D=Dupe N=Netmail}
  199.    MainAka    : addrtype;  {eigene Aka fuer das Area}
  200.    UpLink     : addrtype;  {Aka des Uplinks des Areas * not activ *}
  201.                            {neu in Datarevisionlevel 8}
  202.    AreaFlags  : LongInt;   {Area-Flags}
  203.    WriteLevel : SmallWord; {Schreiblevel }
  204.    ReadLevel  : SmallWord; {Lese/Bestell-Level}
  205.    MaxMsgs    : SmallWord; {max Anzahl Msgs fuer Clean}
  206.    MinMsgs    : SmallWord; {min Anzahl Msgs fuer Clean}
  207.    DaysOld    : SmallWord; {Anzahl Tage fuer Clean}
  208.    DaysRcvd   : SmallWord; {Anzahl Tage fuer Clean}
  209.    Flow       : LongInt;   {Anzahl verarbeiteter Msgs seit StatDate}
  210.    TodayFlow  : LongInt;   {Anzahl heute verarbeiteter Msgs}
  211.    Desc       : String60;  {Beschreibung fuer Area}
  212.    EOrigin    : String60;  {Origin Zeile}
  213.    StatDate   : LongInt;   {Date Statistik started (Julian)}
  214.    RuleFile   : String79;  {Name der Arearule Datei}
  215.    StoredLinks: SmallWord; {anzahl aktuell angeschlossener Links}
  216.    { gefolgt von   Storedlinks * Size(Addrtype)  Bytes, pro angeschlossenem
  217.      Link eine Aka (= 8 Byte)}
  218.    end;
  219.  
  220. { Structur BBTGROUP.BBT}
  221. PGroupRec = ^GroupRec;
  222. GroupRec = record
  223.    Tag         : char;      {Gruppen Kennbuchstabe (für externe Progs)}
  224.    Desc        : String;    {Beschreibung}
  225.    Uplink      : addrtype;  {Uplink-Aka}
  226.    AreaBaseTyp : char;      {Areabasetyp für autom. anlegen}
  227.    Areapath    : String;    {Verzeichnis für autom. erzeugte Areas}
  228.    Startarea   : SmallWord; {freie Areanummer suchen ab...}
  229.    RulePath    : String79;  {Verzeichnis der Rule-Text-Files}
  230.    StatArea    : String60;  {Area-Tag für Tagesstatistik}
  231.    RuleListFile: String;    {path+name rule list file}
  232.    RuleListFileDate : Longint; {File date of rulelistfile, last imported}
  233.    RuleListFormat   : Byte  {1= areatag rulefile 2=rulefile areatag}
  234.    end;
  235.