home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / GE120DEV.ZIP / GESTRUCT.INC < prev   
Encoding:
Text File  |  1995-08-09  |  25.7 KB  |  658 lines

  1. (*
  2. **  gestruct.inc
  3. **
  4. **  System data file definitions for GEcho 1.20.b9+
  5. **
  6. **  Copyright (C) 1991-1995 Gerard J. van der Land. All rights reserved.
  7. **
  8. **  All information in this document is subject to change at any time
  9. **  without prior notice.
  10. **
  11. **  Last revision: 09-Aug-95
  12. **
  13. **  Strings are NUL padded and NUL terminated arrays of char type.
  14. **  Path names are back slash ('\') terminated.
  15. *)
  16.  
  17. const
  18.    GE_THISREV = $0002;  (* System file revision level *)
  19.    GE_MAJOR   = 1;      (* GEcho major revision version *)
  20.    GE_MINOR   = 20;     (* GEcho minor revision version *)
  21.  
  22.    AKAS           = 32;     (* Main + AKAs *)
  23.    OLDAKAS        = 11;     (* Not used *)
  24.    OLDUPLINKS     = 10;     (* Not used *)
  25.    OLDGROUPS      = 26;     (* Not used *)
  26.    USERS          = 10;     (* User names *)
  27.    MAXAREAS       = 10000;  (* Area records *)
  28.    MAXCONNECTIONS = 500;    (* Connections per area *)
  29.    MAXGROUPS      = 256;    (* Group records *)
  30.    MAXNODES       = 5000;   (* Node records *)
  31.    MAXVIAS        = 60;     (* Pack "Via" records *)
  32.    MAXROUTES      = 640;    (* Pack "Routed node" records *)
  33.  
  34.    GROUPBYTES = ((MAXGROUPS + 7) div 8);
  35.  
  36.  
  37. (* --- Datatypes *)
  38.  
  39. type
  40.    dword = longint;  (* Borland Pascal does not support longword *)
  41.    str9  = array[0.. 8] of char;
  42.    str13 = array[0..12] of char;
  43.    str17 = array[0..16] of char;
  44.    str20 = array[0..19] of char;
  45.    str21 = array[0..20] of char;
  46.    str30 = array[0..29] of char;
  47.    str31 = array[0..30] of char;
  48.    str36 = array[0..35] of char;
  49.    str51 = array[0..50] of char;
  50.    str53 = array[0..52] of char;
  51.    str61 = array[0..60] of char;
  52.    str65 = array[0..64] of char;
  53.  
  54.    ADDRESS = record
  55.       zone  : word;
  56.       net   : word;
  57.       node  : word;
  58.       point : word;
  59.    end;
  60.  
  61.    GROUPS = array[0..GROUPBYTES-1] of byte;
  62.  
  63.  
  64. (* --- Log levels *)
  65.  
  66. const
  67.    LOG_INBOUND    = $0001;  (* Inbound activities *)
  68.    LOG_OUTBOUND   = $0002;  (* Outbound activities *)
  69.    LOG_PACKETS    = $0004;  (* Inbound packet info *)
  70.    LOG_UNEXPECT   = $0008;  (* Extended packet info *)
  71.    LOG_AREAMGR    = $0010;  (* Unexpected passwords *)
  72.    LOG_EXTPKTINFO = $0040;  (* AreaMgr messages *)
  73.    LOG_NETEXPORT  = $0100;  (* Exporting of netmail *)
  74.    LOG_NETIMPORT  = $0200;  (* Importing of netmail *)
  75.    LOG_NETPACK    = $0400;  (* Packing of netmail *)
  76.    LOG_NETMOVED   = $0800;  (* Moving Sent/Rcvd mail *)
  77.    LOG_STATISTICS = $2000;  (* GEcho's statistics *)
  78.    LOG_MBUTIL     = $4000;  (* MBUTIL's activities *)
  79.    LOG_DEBUG      = $8000;  (* DEBUG: All of the above *)
  80.  
  81.  
  82. (* --- Log styles *)
  83.  
  84.    LOG_FD      = 0;  (* FrontDoor *)
  85.    LOG_BINK    = 1;  (* BinkleyTerm *)
  86.    LOG_QUICK   = 2;  (* QuickBBS *)
  87.    LOG_DBRIDGE = 3;  (* D'Bridge *)
  88.  
  89.  
  90. (* --- Setup option bits *)
  91.  
  92.    NOKILLNULL = $0001;  (* Don't kill null netmail messages while tossing *)
  93.    RESCANOK   = $0002;  (* Allow %RESCAN *)
  94.    KEEPREQS   = $0004;  (* Keep AreaMgr requests *)
  95.    NONODEADD  = $0008;  (* Don't automatically add NodeMgr records *)
  96.    USEHMBBUF  = $0020;  (* Use Hudson buffers *)
  97.    KEEPNET    = $0040;  (* Don't use Kill/Sent on exported netmail *)
  98.    KEEPMGR    = $0080;  (* Don't use Kill/Sent on MGR receipts *)
  99.    NORRQS     = $0100;  (* Ignore Return receipt Requests *)
  100.    KILLDUPES  = $0200;  (* Kill duplicate messages *)
  101.    DOS32BIT   = $0400;  (* Run 32-bit DOS version on 386+ machines *)
  102.    NOCRSTRIP  = $0800;  (* Don't strip Soft-CRs *)
  103.    REMOVEJUNK = $1000;  (* Remove "Re:" junk from JAM subjects *)
  104.    NOAUTODISC = $2000;  (* Don't automatically disconnect empty PT areas *)
  105.    NOCHECKEND = $4000;  (* Don't check for valid end of archives *)
  106.    SETPVT     = $8000;  (* Set Pvt on imported netmail messages *)
  107.  
  108.  
  109. (* --- Extra option bits *)
  110.  
  111.    NOCHKDEST  = $0001;  (* Don't check packet destination *)
  112.    AUTOCREAT  = $0002;  (* Automatically create message bases *)
  113.    PAUSEEOK   = $0004;  (* Allow %PAUSE *)
  114.    NOTIFYOK   = $0008;  (* Allow %NOTIFY OFF *)
  115.    ADDALLOK   = $0010;  (* Allow %+* *)
  116.    PWDOK      = $0020;  (* Allow %PWD *)
  117.    PKTPWDOK   = $0040;  (* Allow %PKTPWD *)
  118.    NOBADPKTS  = $0080;  (* Don't notify sysop about BAD/DST/LOC packets *)
  119.    PKTPRGONCE = $0100;  (* Run PKT program only before the first PKT *)
  120.    CREATEBUSY = $0200;  (* Create busy flags *)
  121.    COMPRESSOK = $0400;  (* Allow %COMPRESS *)
  122.    FROMOK     = $0800;  (* Allow %FROM *)
  123.    REDIR2NUL  = $1000;  (* Redirect output of external utilities to NUL *)
  124.    NOEXPAND   = $2000;  (* Don't expand filenames of file attaches *)
  125.    LOCALEXPT  = $4000;  (* Export netmail to our own AKA *)
  126.    OPUSDATES  = $8000;  (* Use Opus style binary date/time stamps *)
  127.  
  128.  
  129. (* --- Compression types *)
  130.  
  131.    PR_ARC =  0;  (* Compressed mail files created by ARC or PKPAK *)
  132.    PR_ARJ =  1;  (* Compressed mail files created by ARJ *)
  133.    PR_LZH =  2;  (* Compressed mail files created by LHA *)
  134.    PR_PAK =  3;  (* Compressed mail files created by PAK *)
  135.    PR_ZIP =  4;  (* Compressed mail files created by PKZIP *)
  136.    PR_ZOO =  5;  (* Compressed mail files created by ZOO *)
  137.    PR_SQZ =  6;  (* Compressed mail files created by SQZ *)
  138.    PR_UC2 =  7;  (* Compressed mail files created by UC II *)
  139.    PR_RAR =  8;  (* Compressed mail files created by RAR *)
  140.    PR_PKT = 10;  (* Uncompressed PKT files *)
  141.  
  142.  
  143. (* --- Locking method *)
  144.  
  145.    LOCK_OFF   = 0;  (* Deny Write (Exclusive) *)
  146.    LOCK_RA101 = 1;  (* RemoteAccess 1.01 (SHARE) *)
  147.    LOCK_RA111 = 2;  (* RemoteAccess 1.11 (SHARE) *)
  148.  
  149.  
  150. (* --- Semaphore mode *)
  151.  
  152.    SEMAPHORE_OFF = 0;  (* Don't use semaphores *)
  153.    SEMAPHORE_FD  = 1;  (* FrontDoor 2.1x *)
  154.    SEMAPHORE_IM  = 2;  (* InterMail 2.2x *)
  155.    SEMAPHORE_DB  = 3;  (* D'Bridge 1.5x *)
  156.    SEMAPHORE_BT  = 4;  (* BinkleyTerm 2.5x *)
  157.    SEMAPHORE_MD  = 5;  (* MainDoor *)
  158.  
  159.  
  160. (* --- Check user name *)
  161.  
  162.    CHECK_NOT       = 0;  (* Don't check if user name exists *)
  163.    CHECK_USERFILE  = 1;  (* User file (USERS.BBS) *)
  164.    CHECK_USERINDEX = 2;  (* User index (USERSIDX.BBS / NAMEIDX.BBS) *)
  165.  
  166.  
  167. (* --- Mailer type *)
  168.  
  169.    MAILER_FD = 0;  (* FrontDoor *)
  170.    MAILER_DB = 1;  (* D'Bridge *)
  171.    MAILER_BT = 2;  (* BinkleyTerm *)
  172.  
  173.  
  174. (* --- BBS type *)
  175.  
  176.    BBS_RA111    = 0;  (* RemoteAccess 1.1x *)
  177.    BBS_RA200    = 1;  (* RemoteAccess 2.xx *)
  178.    BBS_QUICK275 = 2;  (* QuickBBS 2.7x *)
  179.    BBS_SBBS116  = 3;  (* SuperBBS 1.16 *)
  180.    BBS_WC400    = 4;  (* Wildcat! 4.x *)
  181.  
  182.  
  183. (* --- Change tear line *)
  184.  
  185.    TEAR_NO      = 0;  (* No *)
  186.    TEAR_DEFAULT = 1;  (* Replace default *)
  187.    TEAR_CUSTOM  = 2;  (* Replace custom *)
  188.    TEAR_EMPTY   = 3;  (* Replace empty *)
  189.    TEAR_REMOVE  = 4;  (* Remove *)
  190.  
  191.  
  192. type
  193.    OLDUPLINK = record
  194.       address  : ADDRESS;  (* Uplink address *)
  195.       areafix  : str9;     (* AreaFix program *)
  196.       password : str17;    (* AreaFix password *)
  197.       filename : str13;    (* "Forward List" filename *)
  198.       unused   : array[1..6] of byte;
  199.       options  : byte;     (* See --- Uplink options bits *)
  200.       filetype : byte;     (* 0 = Random, 1 = "<areaname> <description>" *)
  201.       groups   : dword;    (* Nodes must have one of these groups *)
  202.       origin   : byte;     (* Origin AKA *)
  203.    end;
  204.  
  205.    AKAMATCH = record
  206.       zone : word;
  207.       net  : word;
  208.       aka  : byte;
  209.    end;
  210.  
  211.    COLORSET = record
  212.       bg_char     : byte;
  213.       headerframe : byte;
  214.       headertext  : byte;
  215.       background  : byte;
  216.       bottomline  : byte;
  217.       bottomtext  : byte;
  218.       bottomkey   : byte;
  219.       errorframe  : byte;
  220.       errortext   : byte;
  221.       helpframe   : byte;
  222.       helptitle   : byte;
  223.       helptext    : byte;
  224.       helpfound   : byte;
  225.       winframe    : byte;
  226.       wintitle    : byte;
  227.       winline     : byte;
  228.       wintext     : byte;
  229.       winkey      : byte;
  230.       windata     : byte;
  231.       winselect   : byte;
  232.       inputdata   : byte;
  233.       exportonly  : byte;
  234.       importonly  : byte;
  235.       lockedout   : byte;
  236.    end;
  237.  
  238.  
  239. (* --- SETUP.GE structure *)
  240.  
  241.    SETUP_GE = record
  242.       sysrev          : word;   (* Must contain GE_THISREV *)
  243.       options         : word;   (* Options bits, see --- Setup option bits *)
  244.       autorenum       : word;   (* Auto renumber value *)
  245.       maxpktsize      : word;   (* Maximum packet size, 0 = unlimited *)
  246.       logstyle        : byte;   (* See --- Log styles *)
  247.       oldnetmailboard : byte;   (* Netmail board, must be zero now *)
  248.       oldbadboard     : byte;   (* Where bad echomail is stored (0 = path) *)
  249.       olddupboard     : byte;   (* Where duplicates are stored (0 = path) *)
  250.       recoveryboard   : byte;   (* Recovery board (1-200, 0 = delete) *)
  251.       filebuffer      : byte;   (* Size (in KB) of MBU file I/O buffer *)
  252.       days            : byte;   (* Days to keep old mail around *)
  253.       swapping        : byte;   (* Swapping method *)
  254.       compr_default   : byte;   (* Default compresion type *)
  255.       pmcolor : array[1..15] of byte;  (* Not used *)
  256.       oldaka : array[0..OLDAKAS-1] of ADDRESS;  (* Main address and AKAs *)
  257.       oldpointnet : array[0..OLDAKAS-1] of word;  (* Pointnets for all addresses *)
  258.       gekey    : dword;         (* GEcho registration key *)
  259.       mbukey   : dword;         (* MBUTIL registration key *)
  260.       geregto  : str51;         (* Text used to generate the GEcho key *)
  261.       mburegto : str51;         (* Text used to generate the MBUTIL key *)
  262.       username : array[0..USERS-1] of str36;  (* User names *)
  263.       hmbpath         : str53;  (* Hudson message base path *)
  264.       mailpath        : str53;  (* Netmail path *)
  265.       inbound_path    : str53;  (* Where incoming compressed mail is stored *)
  266.       outbound_path   : str53;  (* Where outgoing compressed mail is stored *)
  267.       echotoss_file   : str65;  (* The ECHOTOSS.LOG used for Squish areas *)
  268.       nodepath        : str53;  (* Not used *)
  269.       areasfile       : str65;  (* AREAS.BBS style file *)
  270.       logfile         : str65;  (* GEcho/MBUTIL log file *)
  271.       mgrlogfile      : str65;  (* AreaMgr log file *)
  272.       swap_path       : str53;  (* Swap path *)
  273.       tear_line       : str31;  (* Tearline to be placed by MBUTIL Export *)
  274.       originline : array[0..19] of str61;  (* Origin lines *)
  275.       compr_prog       : array[0..9] of str13;  (* Compression program filenames *)
  276.       compr_switches   : array[0..9] of str20;  (* Compression program switches *)
  277.       decompr_prog     : array[0..9] of str13;  (* Decompression program filenames *)
  278.       decompr_switches : array[0..9] of str20;  (* Decompression program switches *)
  279.       oldgroups : array[0..25] of str21;  (* Descriptions of area groups *)
  280.       lockmode       : byte;    (* See --- Locking method *)
  281.       secure_path    : str53;   (* From which secure PKTs are tossed *)
  282.       rcvdmailpath   : str53;   (* Directory to which Rcvd netmail is moved *)
  283.       sentmailpath   : str53;   (* Directory to which Sent netmail is moved *)
  284.       semaphorepath  : str53;   (* Where FD rescan files are stored *)
  285.       version_major  : byte;    (* Major GEcho version *)
  286.       version_minor  : byte;    (* Minor GEcho version *)
  287.       semaphore_mode : byte;    (* See --- Semaphore mode *)
  288.       badecho_path   : str53;   (* Where sec. violating and unknown mail is stored *)
  289.       mailer_type    : byte;    (* See --- Mailer type *)
  290.       loglevel       : word;    (* See --- Log level *)
  291.       akamatch : array[0..19] of AKAMATCH;  (* AKA matching table *)
  292.       mbulogfile     : str65;   (* MBUTIL log file *)
  293.       maxqqqs        : word;    (* Max. number of QQQ info stored in memory *)
  294.       maxqqqopen     : byte;    (* Not used *)
  295.       maxhandles     : byte;    (* Max. number of files used by GEcho *)
  296.       maxarcsize     : word;    (* Max. archive size, 0 = unlimited *)
  297.       delfuture      : word;    (* Days to delete messages in the future, 0 = disable *)
  298.       extraoptions   : word;    (* See --- Extra option bits *)
  299.       firstboard     : byte;    (* Not used *)
  300.       reserved1      : word;    (* Reserved *)
  301.       copy_persmail  : word;    (* Not used *)
  302.       oldpersmailboard  : array[0..USERS-1] of byte;  (* Personal mail board (0 = path) *)
  303.       old_public_groups : dword;   (* Public groups (bits 0-25) *)
  304.       dupentries     : word;    (* Number of duplicate entries in ECHODUPE.GE *)
  305.       oldrcvdboard   : byte;    (* Where Rcvd netmail is moved to (0 = path) *)
  306.       oldsentboard   : byte;    (* Where Sent netmail is moved to (0 = path) *)
  307.       oldakaboard    : array[0..OLDAKAS-1] of byte;  (* Netmail boards for AKAs *)
  308.       olduserboard   : array[0..USERS-1] of byte;    (* Netmail boards for system users, 255 = use AKA board *)
  309.       reserved2      : byte;    (* Reserved *)
  310.       uplink : array[0..OLDUPLINKS-1] of OLDUPLINK;  (* Not used *)
  311.       persmail_path  : str53;   (* Not used *)
  312.       outpkts_path   : str53;   (* Where outbound packets are temp. stored *)
  313.       compr_mem : array[0..9] of word;    (* Memory needed for compression programs *)
  314.       decompr_mem : array[0..9] of word;  (* Memory needed for decompression programs *)
  315.       pwdcrc          : dword;   (* CRC-32 of access password, -1L = no password *)
  316.       default_maxmsgs : word;    (* Maximum number of messages       (Purge) *)
  317.       default_maxdays : word;    (* Maximum age of non-Rcvd messages (Purge) *)
  318.       gus_prog        : str13;   (* General Unpack Shell program filename *)
  319.       gus_switches    : str20;   (* GUS switches *)
  320.       gus_mem         : word;    (* Memory needed for GUS *)
  321.       default_maxrcvddays : word;    (* Maximum age of Rcvd messages (Purge) *)
  322.       checkname        : byte;   (* See --- Check user name *)
  323.       maxareacachesize : byte;   (* Area cache size, 0 .. 64 KB *)
  324.       inpkts_path      : str53;  (* Where inbound mail packets should be stored *)
  325.       pkt_prog         : str13;  (* Called before each tossed mail packet *)
  326.       pkt_switches     : str20;  (* Command line switches *)
  327.       pkt_mem          : word;   (* Memory needed *)
  328.       maxareas         : word;   (* Maximum number of areas *)
  329.       maxconnections   : word;   (* Maximum number of connections per area *)
  330.       maxnodes         : word;   (* Maximum number of nodes *)
  331.       default_minmsgs  : word;   (* Minimum number of messages       (Purge) *)
  332.       bbs_type         : byte;   (* See --- BBS type *)
  333.       decompress_ext   : byte;   (* 0 = 0-9, 1 = 0-F, 2 = 0-Z *)
  334.       reserved3        : byte;   (* Reserved *)
  335.       change_tearline  : byte;   (* See --- Change tear line *)
  336.       prog_notavail : word;      (* Bit 0-9, 1 = program not available *)
  337.       gscolor : COLORSET;        (* GSETUP color set, See COLORSET structure *)
  338.       reserved4 : array[1..9] of byte;  (* Reserved *)
  339.  
  340.       aka : array[0..AKAS-1] of ADDRESS;         (* Main address and AKAs *)
  341.       pointnet : array[0..AKAS-1] of word;       (* Pointnets for all addresses *)
  342.       akaarea  : array[0..AKAS-1] of word;       (* AKA netmail areas *)
  343.       userarea : array[0..USERS-1] of word;      (* Netmail areas for system users, 0=don't import, 65535 = use AKA board *)
  344.       persmailarea : array[0..USERS-1] of word;  (* Personal mail area (0 = don't copy) *)
  345.       rcvdarea     : word;   (* Rcvd netmail area (0 = don't move) *)
  346.       sentarea     : word;   (* Sent netmail area (0 = don't move) *)
  347.       badarea      : word;   (* Where bad echomail is stored (0 = path) *)
  348.       reserved5    : word;   (* Not used *)
  349.       jampath      : str53;  (* JAM message base path *)
  350.       userbase     : str53;  (* User base path *)
  351.       dos4gw_exe : str65;    (* DOS4GW.EXE protected mode run time file *)
  352.       public_groups : GROUPS;  (* Public groups (bits 0-255) *)
  353.       maxgroupconnections : word;  (* Maximum number of connections per group *)
  354.       maxmsgsize : word;           (* Maximum message size (64-1024 kB) *)
  355.       diskspace_threshold : word;  (* Amount of free disk space that causes packing *)
  356.       pktsort : byte;              (* 0 = No, 1 = Area, 2 = Area + Date/Time *)
  357.       wildcatpath : Str53;         (* Wildcat! home path *)
  358.    end;
  359.  
  360. (***************************************************************************)
  361.  
  362. (* --- Area option bits *)
  363.  
  364. const
  365.    IMPORTSB  = $0001;  (* Import SEEN-BY lines to message base *)
  366.    SECURITY  = $0002;  (* Only accept mail from nodes in connections list *)
  367.    PASSTHRU  = $0004;  (* Mail is not imported, only forwarded *)
  368.    VISIBLE   = $0008;  (* Area is visible for anyone in AreaMgr's %LIST *)
  369.    REMOVED   = $0010;  (* Area should be removed by GSETUP Pack *)
  370.    NOUNLINK  = $0020;  (* Do not allow users to unlink this area *)
  371.    TINYSB    = $0040;  (* Tiny SEEN-BYs with only nodes in connections list *)
  372.    PVT       = $0080;  (* Private bits are preserved and are not stripped *)
  373.    CHECKSB   = $0100;  (* Use SEEN-BYs for duplicate prevention *)
  374.    NOSLEEP   = $0200;  (* Do not allow users to pause this area *)
  375.    SDM       = $0400;  (* Area is stored in *.MSG format *)
  376.    HIDESB    = $0800;  (* Hide imported SEEN-BY lines *)
  377.    NOIMPORT  = $1000;  (* AreaMgr will set new nodes to Export-Only *)
  378.    DELFUTURE = $2000;  (* Del messages dated in the future *)
  379.    NOTIFIED  = $4000;  (* Sysop notified that area was disconnected *)
  380.    UPLDISC   = $8000;  (* Disconnected from uplink (only for PT areas) *)
  381.  
  382.  
  383. (* --- Extra area option bits *)
  384.  
  385.    NODUPECHK = $01;  (* Don't do duplicate checking for this area *)
  386.    NOLINKING = $02;  (* Don't do reply chain linking for this area *)
  387.    HIDDEN    = $04;  (* Area is hidden for everyone *)
  388.  
  389.  
  390. (* --- Area type *)
  391.  
  392.    ECHOMAIL  = 0;
  393.    NETMAIL   = 1;
  394.    LOCAL     = 2;
  395.    BADECHO   = 3;
  396.    PERSONAL  = 4;
  397.    NUM_TYPES = 5;
  398.  
  399.  
  400. (* --- Area format *)
  401.  
  402.    FORMAT_PT     = 0;  (* Passthru *)
  403.    FORMAT_HMB    = 1;  (* Hudson Message Base *)
  404.    FORMAT_SDM    = 2;  (* *.MSG base *)
  405.    FORMAT_JAM    = 3;  (* Joaquim-Andrew-Mats message base proposal *)
  406.    FORMAT_PCB    = 4;  (* PCBoard 15.0 *)
  407.    FORMAT_SQUISH = 5;  (* Squish 2.0 *)
  408.    FORMAT_WC     = 6;  (* Wildcat! 4.0 *)
  409.    NUM_FORMATS   = 7;
  410.  
  411.  
  412. (* --- AREAFILE.GE header *)
  413.  
  414. type
  415.    AREAFILE_HDR = record
  416.       hdrsize        : word;  (* sizeof(AREAFILE_HDR) *)
  417.       recsize        : word;  (* sizeof(AREAFILE_GE) *)
  418.       maxconnections : word;  (* Maximum number of entries in connections list *)
  419.    end;
  420.  
  421.  
  422. (* --- AREAFILE.GE record *)
  423.  
  424.    AREAFILE_GE = record
  425.       name         : str51;  (* Area name, must be uppercase, no spaces *)
  426.       comment      : str61;  (* Description of the topics discussed in area *)
  427.       path         : str51;  (* Location where *.MSG files are stored *)
  428.       originline   : str61;  (* Custom origin line, used if origlinenr = 0 *)
  429.       areanumber   : word;   (* Area number (1-200 = Hudson) *)
  430.       group        : char;   (* Group (0-255) *)
  431.       options      : word;   (* See --- Area options bits *)
  432.       originlinenr : byte;   (* Origin line (1-20, 0 = custom) *)
  433.       pkt_origin   : byte;   (* Address for the packet/Origin line (0-31) *)
  434.       seenbys      : dword;  (* Addresses (bits 0-31) to add to the SEEN-BY *)
  435.       maxmsgs      : word;   (* Maximum number of messages       (MBUTIL Purge) *)
  436.       maxdays      : word;   (* Maximum age of non-Rcvd messages (MBUTIL Purge) *)
  437.       maxrcvddays  : word;   (* Maximum age of Rcvd messages     (MBUTIL Purge) *)
  438.       areatype     : byte;   (* See --- Area type *)
  439.       areaformat   : byte;   (* See --- Area format *)
  440.       extraoptions : byte;   (* See --- Extra area option bits *)
  441.    end;
  442.  
  443.  
  444. (* --- Connection entry status bits *)
  445.  
  446. const
  447.    CONN_NOIMPORT = $01;  (* Don't accept mail from this node *)
  448.    CONN_NOEXPORT = $02;  (* Don't forward mail to this node *)
  449.    CONN_PAUSE    = $04;  (* Temporary don't send this area to this node *)
  450.    CONN_NOUNLINK = $08;  (* Don't allow this node to disconnect *)
  451.    CONN_ISUPLINK = $10;  (* Node is uplink for this area *)
  452.  
  453.  
  454. (* --- Connections list entry *)
  455.  
  456. type
  457.    CONNECTION = record
  458.       address : ADDRESS;
  459.       status  : byte;
  460.    end;
  461.  
  462.  
  463. (* --- AREAFILE.GEX record *)
  464.  
  465.    AREAFILE_GEX = record
  466.       crc32      : longint;  (* CRC-32 on areaname *)
  467.       areanumber : word;     (* Area number (1-200 = Hudson) *)
  468.       offset     : longint;  (* File offset of record in AREAFILE.GE *)
  469.    end;
  470.  
  471. (***************************************************************************)
  472.  
  473. (* --- Group option bits *)
  474.  
  475. const
  476.    GROUP_REMOVED = $01;  (* Group record has been deleted *)
  477.    GROUP_ALWAYS  = $02;  (* Unconditionally forward requests *)
  478.  
  479.  
  480. (* --- GRPFILE.GE header *)
  481.  
  482. type
  483.    GRPFILE_HDR = record
  484.       hdrsize        : word;  (* sizeof(GRPFILE_HDR) *)
  485.       recsize        : word;  (* sizeof(GRPFILE_GE) *)
  486.       arearecsize    : word;  (* sizeof(AREAFILE_GE) *)
  487.       maxconnections : word;  (* Maximum number of entries in connections list *)
  488.    end;
  489.  
  490.  
  491. (* --- GRPFILE.GE record *)
  492.  
  493. type
  494.    GRPFILE_GE = record
  495.       options  : byte;   (* See --- Group option bits *)
  496.       filename : str65;  (* "Forward List" filename *)
  497.       filetype : byte;   (* 0 = Random, 1 = "<areaname> <description>" *)
  498.    end;
  499.  
  500.  
  501. (* --- GRPFILE.GEX record *)
  502.  
  503.    GRPFILE_GEX = record
  504.       address : ADDRESS;  (* Address of the uplink *)
  505.       offset  : longint;  (* File offset of record in GRPFILE.GE *)
  506.       group   : byte;     (* Group (0-255) *)
  507.    end;
  508.  
  509. (***************************************************************************)
  510.  
  511. (* --- Status:
  512.    $0000 = None
  513.    $0002 = Crash
  514.    $0200 = Hold
  515.    $FFFF = Removed entry
  516. *)
  517.  
  518.  
  519. (* --- Node option bits *)
  520.  
  521. const
  522.    REMOTEMAINT = $0001;  (* Allow node to use %FROM *)
  523.    ALLOWRESCAN = $0002;  (* Allow node to use %RESCAN *)
  524.    FORWARDREQ  = $0004;  (* Allow node to forward AreaMgr requests *)
  525.    MAIL_DIRECT = $0008;  (* Use Direct status for mail archives *)
  526.    NONOTIFY    = $0010;  (* Don't send Notify list *)
  527.    PACKNETMAIL = $0020;  (* Pack netmail for this node *)
  528.    CHKPKTPWD   = $0040;  (* Check packet password (auto-enabled) *)
  529.    MGR_DIRECT  = $0080;  (* Use Direct status for AreaMgr messages *)
  530.    ARCMAIL     = $0100;  (* Use ARCmail 0.60 naming for out-of-zone mail *)
  531.    FORWARDPKTS = $0200;  (* Forward packets to this node *)
  532.    DAILY_MAIL  = $0400;  (* Create a new mail archive every day *)
  533.    NOPKTPWDCHK = $0800;  (* Disable check packet password *)
  534.  
  535.  
  536. (* --- Uplink option bits *)
  537.  
  538.    UPLINK_ADDPLUS = $04;  (* Add '+' prefix *)
  539.  
  540.  
  541. (* --- Unknown areas *)
  542.  
  543.    UNKNOWN_BADECHO    = 0;
  544.    UNKNONW_ADDAREA    = 1;
  545.    UNKNOWN_DISCONNECT = 2;
  546.    UNKNOWN_KILLMSGS   = 3;
  547.  
  548.  
  549. (* --- NODEFILE.GE header *)
  550.  
  551. type
  552.    NODEFILE_HDR = record
  553.       hdrsize : word;  (* sizeof(NODEFILE_HDR) *)
  554.       recsize : word;  (* sizeof(NODEFILE_GE) *)
  555.    end;
  556.  
  557.  
  558. (* --- NODEFILE.GE record *)
  559.  
  560.    NODEFILE_GE = record
  561.       address       : ADDRESS;  (* Address of the node *)
  562.       sysop         : str36;    (* Name of the sysop or point *)
  563.       pktpwd        : str9;     (* Packet (session) password *)
  564.       mgrpwd        : str17;    (* AreaMgr password *)
  565.       oldgroups     : dword;    (* AreaMgr groups (bits 0-25) *)
  566.       options       : word;     (* See --- Node option bits *)
  567.       comprtype     : byte;     (* Compression type (0-9, 10 = PKT) *)
  568.       mailstatus    : word;     (* Mail archive status. See above *)
  569.       route_to      : ADDRESS;  (* Address to route mail files to *)
  570.       oldreadgroups : dword;    (* Read/write groups (bits 0-25) *)
  571.       mgrstatus     : word;     (* AreaMgr message status *)
  572.       compress_ext  : byte;     (* 0 = 0-9, 1 = 0-F, 2 = 0-Z *)
  573.       maxdays       : word;     (* Maximum age of mail archive, 0 = Unlimited *)
  574.       groups        : GROUPS;   (* Read/write groups (bits 0-255) *)
  575.       readgroups    : GROUPS;   (* Read groups (bits 0-255) *)
  576.       areafix       : str9;     (* AreaFix program *)
  577.       outmgrpwd     : str17;    (* AreaFix password (outbound) *)
  578.       uplinkoptions : byte;     (* See --- Uplink option bits *)
  579.       unknownareas  : byte;     (* See --- Unknown areas *)
  580.       default_group : byte;     (* Default group for added areas *)
  581.    end;
  582.  
  583.  
  584. (* --- NODEFILE.GEX index entry *)
  585.  
  586.    NODEFILE_GEX = record
  587.       address : ADDRESS;  (* Address of the node *)
  588.       offset  : longint;  (* File offset of record in NODEFILE.GE *)
  589.    end;
  590.  
  591. (***************************************************************************)
  592.  
  593. (* --- Routed node status *)
  594.  
  595. const
  596.    ZONE_ALL = $01;
  597.    NET_ALL  = $02;
  598.    NODE_ALL = $04;
  599.  
  600.  
  601. (* --- Routed node entry *)
  602.  
  603. type
  604.    ROUTE = record
  605.       node   : ADDRESS;  (* Routed node address *)
  606.       status : byte;     (* See --- Routed node status *)
  607.       via    : byte;     (* Via entry for this routed node (0-59) *)
  608.    end;
  609.  
  610.  
  611. (* --- PACKFILE.GE structure *)
  612.  
  613.    PACKFILE_GE = record
  614.       via   : array[0..MAXVIAS-1] of ADDRESS;
  615.       route : array[0..MAXROUTES-1] of ROUTE;
  616.    end;
  617.  
  618. (***************************************************************************)
  619.  
  620. (* --- ECHODUPE.GE structure *)
  621.  
  622.    ECHODUPE_GE = record
  623.       pointer : word;  (* Next offset *)
  624.       entries : word;  (* Number of entries in the database *)
  625. (*    crc32_high : array[0..entries-1];  CRC-32's on headers, high portions *)
  626. (*    crc32_low  : array[0..entries-1];  CRC-32's on headers, low portions  *)
  627.    end;
  628.  
  629. (***************************************************************************)
  630.  
  631. (* --- FTSCPROD.GE record *)
  632.  
  633.    FTSCPROD_GE = record
  634.       cap  : byte;   (* Capability: 0 = Type 2.0, 1 = Type 2.1, 2 = Type 2+ *)
  635.       name : str30;  (* Name of product *)
  636.    end;
  637.  
  638. (***************************************************************************)
  639.  
  640. (* --- JAM_CONV.GE record *)
  641.  
  642.    JAMCONV_GE = record
  643.       areanumber : word;
  644.       name       : str51;
  645.       jambase    : str51;
  646.    end;
  647.  
  648. (***************************************************************************)
  649.  
  650. (* --- MBUTIL.RNX record *)
  651.  
  652.    MBUTIL_RNX = record
  653.       old_msgnum : word;
  654.       new_msgnum : word;
  655.    end;
  656.  
  657. (* end of file "gestruct.inc" *)
  658.