home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / MISC / FMLW_142.ZIP / FMSTRUCT.ZIP / FMSTRUCT.H < prev   
C/C++ Source or Header  |  1998-01-31  |  20KB  |  642 lines

  1.  
  2. /*
  3.    FMSTRUCT.H
  4.  
  5.         File structures for FMail 1.42g
  6.         Copyright (C) 1998 Folkert J. Wijnstra. All rights reserved.
  7.  
  8.     All information in this document is subject to change at any time
  9.     without prior notice!
  10.  
  11.     Strings are NUL terminated arrays of char type.
  12.     Path names always end on a \ character (followed by NUL).
  13. */
  14.  
  15.  
  16. /**** Modify the type definitions below if necessary for your compiler ****/
  17.  
  18. #define fhandle signed int
  19. #define u8    unsigned char
  20. #define uchar unsigned char
  21. #define schar char
  22. #ifndef __32BIT__
  23. #define u16 unsigned int
  24. #define s16 signed int
  25. #else
  26. #define u16 short unsigned int
  27. #define s16 short signed int
  28. #endif
  29. #define u32 long unsigned int
  30. #define s32 long signed int
  31. #define udef unsigned int
  32. #define sdef signed int
  33.  
  34. #define MAX_U32    0xFFFFFFFFL
  35.  
  36.  
  37. /* ********** General structures ********** */
  38.  
  39. typedef struct
  40. {  uchar programName[46];
  41.    u16   memRequired;      } archiverInfo;
  42.  
  43. typedef uchar pathType[48];
  44.  
  45. typedef struct
  46. {  u16   zone;
  47.    u16   net;
  48.    u16   node;
  49.    u16   point; } nodeNumType;
  50.  
  51. typedef struct
  52. {  unsigned readOnly   : 1;  /* Bit  0    */
  53.    unsigned writeOnly  : 1;  /* Bit  1    */
  54.    unsigned locked     : 1;  /* Bit  2    */
  55.    unsigned reserved   : 13; /* Bits 3-15 */   } nodeFlagsType;
  56.  
  57. typedef struct
  58. {  nodeNumType   nodeNum;
  59.    nodeFlagsType flags;     } nodeNumXType;
  60.  
  61. typedef struct
  62. {  nodeNumType nodeNum;
  63.    u16         fakeNet; } nodeFakeType;
  64.  
  65.  
  66. /* ********** File header structure ********** */
  67.  
  68. #define DATATYPE_CF    0x0102 /* not used yet              */
  69. #define DATATYPE_NO    0x0202 /* node file                        */
  70. #define DATATYPE_AD    0x0401 /* area file for echo mail defaults */
  71. #define DATATYPE_AE    0x0402 /* area file for echo mail          */
  72.  
  73. typedef struct
  74. {  uchar versionString[32]; /* Always starts with 'FMail' */
  75.    u16   revNumber;         /* Is now 0x0100 */
  76.    u16   dataType;          /* See #defines above */
  77.    u16   headerSize;
  78.    s32   creationDate;
  79.    s32   lastModified;
  80.    u16   totalRecords;
  81.    u16   recordSize;
  82. } headerType;
  83.  
  84.  
  85. /* The structure below is used by the Areas File and (only partly)
  86.    by the Config File */
  87.  
  88. typedef struct
  89. {  unsigned active      : 1; /* Bit  0 */
  90.    unsigned tinySeenBy  : 1; /* Bit  1 */
  91.    unsigned security    : 1; /* Bit  2 */
  92.    unsigned             : 1; /* Bit  3 */
  93.    unsigned allowPrivate: 1; /* Bit  4 */
  94.    unsigned impSeenBy   : 1; /* Bit  5 */
  95.    unsigned checkSeenBy : 1; /* Bit  6 */
  96.    unsigned             : 1; /* Bit  7 */
  97.    unsigned local       : 1; /* Bit  8 */
  98.    unsigned disconnected: 1; /* Bit  9 */
  99.    unsigned _reserved   : 1; /* Bit 10 */
  100.    unsigned allowAreafix: 1; /* Bit 11 */
  101.    unsigned export2BBS  : 1; /* Bit 12 */
  102.    unsigned             : 1; /* Bit 13 */
  103.    unsigned arrivalDate : 1; /* Bit 14 */
  104.    unsigned sysopRead   : 1; /* Bit 15 */   } areaOptionsType;
  105.  
  106.  
  107. /* ********** FMAIL.CFG ********** */
  108.  
  109. #define MAX_AKAS      32
  110. #define MAX_AKAS_F    64
  111. #define MAX_AKAS_OLD  16
  112. #define MAX_NA_OLD    11
  113. #define MAX_NETAKAS   32
  114. #define MAX_NETAKAS_F 64
  115. #define MAX_USERS     16
  116. #define MAX_UPLREQ    32
  117. #define MAX_MATCH     16           // not used yet
  118.  
  119. #define LOG_NEVER     0x0000
  120. #define LOG_INBOUND   0x0001
  121. #define LOG_OUTBOUND  0x0002
  122. #define LOG_PKTINFO   0x0004
  123. #define LOG_XPKTINFO  0x0008
  124. #define LOG_UNEXPPWD  0x0010
  125. #define LOG_SENTRCVD  0x0020
  126. #define LOG_STATS     0x0040
  127. #define LOG_PACK      0x0080
  128. #define LOG_MSGBASE   0x0100
  129. #define LOG_ECHOEXP   0x0200
  130. #define LOG_NETIMP    0x0400
  131. #define LOG_NETEXP    0x0800
  132. #define LOG_OPENERR   0x1000
  133. #define LOG_EXEC      0x2000
  134. #define LOG_NOSCRN    0x4000
  135. #define LOG_ALWAYS    0x8000
  136. #define LOG_DEBUG     0x8000
  137.  
  138. typedef nodeFakeType _akaListType[MAX_AKAS_OLD];
  139. typedef nodeFakeType akaListType[MAX_AKAS_F];
  140.  
  141. typedef struct
  142. {
  143.    unsigned useEMS       : 1; /* BIT 0 */
  144.    unsigned checkBreak   : 1; /* BIT 1 */
  145.    unsigned swap         : 1; /* BIT 2 */
  146.    unsigned swapEMS      : 1; /* BIT 3 */
  147.    unsigned swapXMS      : 1; /* BIT 4 */
  148.    unsigned lfn          : 1; /* BIT 5 */
  149.    unsigned monochrome   : 1; /* BIT 6 */
  150.    unsigned commentFFD   : 1; /* BIT 7 */
  151.    unsigned PTAreasBBS   : 1; /* BIT 8 */
  152.    unsigned commentFRA   : 1; /* BIT 9 */
  153.    unsigned              : 1; /* BIT 10 */
  154.    unsigned incBDRRA     : 1; /* BIT 11 */
  155.    unsigned              : 1; /* BIT 12 */
  156.    unsigned timeSliceFM  : 1; /* BIT 13 */
  157.    unsigned timeSliceFT  : 1; /* BIT 14 */
  158.    unsigned _RA2         : 1; /* BIT 15 */  } genOptionsType;
  159.  
  160. typedef struct
  161. {
  162.    unsigned removeNetKludges : 1; /* Bit 0 */
  163.    unsigned addPointToPath   : 1; /* Bit 1 */
  164.    unsigned checkPktDest     : 1; /* Bit 2 */
  165.    unsigned neverARC060      : 1; /* Bit 3 */
  166.    unsigned createSema       : 1; /* Bit 4 */
  167.    unsigned dailyMail         : 1; /* Bit 5 */
  168.    unsigned warnNewMail      : 1; /* bit 6 */
  169.    unsigned killBadFAtt      : 1; /* Bit 7 */
  170.    unsigned dupDetection     : 1; /* Bit 8 */
  171.    unsigned ignoreMSGID      : 1; /* Bit 9 */
  172.    unsigned ARCmail060       : 1; /* Bit 10 */
  173.    unsigned extNames         : 1; /* Bit 11 */
  174.    unsigned persNetmail      : 1; /* Bit 12 */
  175.    unsigned privateImport    : 1; /* Bit 13 */
  176.    unsigned keepExpNetmail   : 1; /* Bit 14 */
  177.    unsigned killEmptyNetmail : 1; /* Bit 15 */  } mailOptionsType;
  178.  
  179. typedef struct
  180. {
  181.    unsigned sortNew      : 1; /* bit  0   */
  182.    unsigned sortSubject  : 1; /* bit  1   */
  183.    unsigned updateChains : 1; /* bit  2   */
  184.    unsigned reTear       : 1; /* bit  3   */
  185.    unsigned              : 1; /* bit  4   */
  186.    unsigned              : 1; /* bit  5   */
  187.    unsigned removeRe     : 1; /* bit  6   */
  188.    unsigned removeLfSr   : 1; /* bit  7   */
  189.    unsigned scanAlways   : 1; /* bit  8   */
  190.    unsigned scanUpdate   : 1; /* bit  9   */
  191.    unsigned multiLine    : 1; /* bit 10   */
  192.    unsigned              : 1; /* bit 11   */
  193.    unsigned quickToss    : 1; /* bit 12   */
  194.    unsigned checkNetBoard: 1; /* bit 13   */
  195.    unsigned              : 1; /* bit 14   */
  196.    unsigned sysopImport  : 1; /* bit 15   */ } mbOptionsType;
  197.  
  198. typedef struct
  199. {
  200.    unsigned keepRequest  : 1; /* Bit  0 */
  201.    unsigned keepReceipt  : 1; /* Bit  1 */
  202.    unsigned sendUplArList: 1; /* Bit  2 */
  203.    unsigned              : 1; /* Bit  3 */
  204.    unsigned autoDiscArea : 1; /* Bit  4 */
  205.    unsigned autoDiscDel  : 1; /* Bit  5 has temp. no effect, rec is always deleted */
  206.    unsigned              : 3; /* Bit 6-8 */
  207.    unsigned allowAddAll  : 1; /* Bit  9 */
  208.    unsigned allowActive  : 1; /* Bit 10 */
  209.    unsigned allowBCL     : 1; /* Bit 11 */
  210.    unsigned allowPassword: 1; /* Bit 12 */
  211.    unsigned allowPktPwd  : 1; /* Bit 13 */
  212.    unsigned allowNotify  : 1; /* Bit 14 */
  213.    unsigned allowCompr   : 1; /* Bit 15 */  } mgrOptionsType;
  214. #if 0
  215. typedef struct
  216. {
  217.    unsigned active      : 1; /* Bit  0 */
  218.    unsigned tinySeenBy  : 1; /* Bit  1 */
  219.    unsigned security    : 1; /* Bit  2 */
  220.    unsigned             : 1; /* Bit  3 */
  221.    unsigned allowPrivate: 1; /* Bit  4 */
  222.    unsigned impSeenBy   : 1; /* Bit  5 */
  223.    unsigned checkSeenBy : 1; /* Bit  6 */
  224.    unsigned             : 1; /* Bit  7 */
  225.    unsigned local       : 1; /* Bit  8 */
  226.    unsigned             : 1; /* Bit  9 */
  227.    unsigned passThrough : 1; /* Bit 10 */
  228.    unsigned             : 3; /* Bit 11-13 */
  229.    unsigned arrivalDate : 1; /* Bit 14 */
  230.    unsigned sysopRead   : 1; /* Bit 15 */     } defaultOptionsType;
  231. #endif
  232. typedef struct
  233. {
  234.    unsigned addPlusPrefix :  1; /* BIT 0 */
  235.    unsigned               :  3;
  236.    unsigned unconditional :  1; /* BIT 4 */
  237.    unsigned               : 11;    } uplOptType;
  238.  
  239. typedef struct
  240. {
  241.    uchar userName[36];
  242.    uchar reserved[28];
  243. } userType;
  244.  
  245. typedef struct
  246. {
  247.    nodeNumType node;
  248.    uchar       program[9];
  249.    uchar       password[17];
  250.    uchar       fileName[13];
  251.    uchar       fileType;
  252.    u32         groups;
  253.    uchar       originAka;
  254.    uplOptType  options;
  255.    uchar       reserved[9];  } uplinkReqType;
  256.  
  257. typedef struct
  258. {  u16   valid;
  259.    u16   zone;
  260.    u16   net;
  261.    u16   node;    } akaMatchNodeType;
  262.  
  263. typedef struct
  264. {
  265.    akaMatchNodeType amNode;
  266.    u16              aka;    } akaMatchType;
  267.  
  268. /* ATTENTION: FMAIL.CFG does NOT use the new config file type yet (no header) !!! */
  269.  
  270. typedef struct
  271. {
  272.    uchar           versionMajor;
  273.    uchar           versionMinor;
  274.    s32             creationDate;
  275.    u32             key;
  276.    u32             reservedKey;
  277.    u32             relKey1;
  278.    u32             relKey2;
  279.    uchar           reserved1[20];
  280.    u16             maxForward;
  281.    mgrOptionsType  mgrOptions;
  282.    _akaListType    _akaList;
  283.    u16             _netmailBoard[MAX_NA_OLD];
  284.    u16             _reservedNet[16-MAX_NA_OLD];
  285.    genOptionsType  genOptions;
  286.    mbOptionsType   mbOptions;
  287.    mailOptionsType mailOptions;
  288.    u16             maxPktSize;
  289.    u16             kDupRecs;
  290.    u16             mailer;
  291.    u16             bbsProgram;
  292.    u16             maxBundleSize;
  293.    u16             extraHandles; /* 0-235 */
  294.    u16             autoRenumber;
  295.    u16             bufSize;
  296.    u16             ftBufSize;
  297.    u16             allowedNumNetmail;
  298.    u16             logInfo;
  299.    u16             logStyle;
  300.    u16             activTimeOut;
  301.    u16             maxMsgSize;
  302.    uchar           reserved2[64];
  303.    u16             colorSet;
  304.    uchar           sysopName[36];
  305.    u16             defaultArc;
  306.    u16             _adiscDaysNode;
  307.    u16             _adiscDaysPoint;
  308.    u16             _adiscSizeNode;
  309.    u16             _adiscSizePoint;
  310.    uchar           reserved3[16];
  311.    uchar           tearType;
  312.    uchar           tearLine[25];
  313.    pathType        summaryLogName;
  314.    u16             recBoard;
  315.    u16             badBoard;
  316.    u16             dupBoard;
  317.    uchar           topic1[16];
  318.    uchar           topic2[16];
  319.    pathType        bbsPath;
  320.    pathType        netPath;
  321.    pathType        sentPath;
  322.    pathType        rcvdPath;
  323.    pathType        inPath;
  324.    pathType        outPath;
  325.    pathType        securePath;
  326.    pathType        logName;
  327.    pathType        swapPath;
  328.    pathType        semaphorePath;
  329.    pathType        pmailPath;
  330.    pathType        areaMgrLogName;
  331.    pathType        autoRAPath;
  332.    pathType        autoFolderFdPath;
  333.    pathType        autoAreasBBSPath;
  334.    pathType        autoGoldEdAreasPath;
  335.    archiverInfo    unArc;
  336.    archiverInfo    unZip;
  337.    archiverInfo    unLzh;
  338.    archiverInfo    unPak;
  339.    archiverInfo    unZoo;
  340.    archiverInfo    unArj;
  341.    archiverInfo    unSqz;
  342.    archiverInfo    GUS;
  343.    archiverInfo    arc;
  344.    archiverInfo    zip;
  345.    archiverInfo    lzh;
  346.    archiverInfo    pak;
  347.    archiverInfo    zoo;
  348.    archiverInfo    arj;
  349.    archiverInfo    sqz;
  350.    archiverInfo    customArc;
  351.    pathType        autoFMail102Path;
  352.    uchar           reserved4[35];
  353.    areaOptionsType _optionsAKA[MAX_NA_OLD];
  354.    uchar           _groupsQBBS[MAX_NA_OLD];
  355.    u16             _templateSecQBBS[MAX_NA_OLD];
  356.    uchar           _templateFlagsQBBS[MAX_NA_OLD][4];
  357.    uchar           _attr2RA[MAX_NA_OLD];
  358.    uchar           _aliasesQBBS[MAX_NA_OLD];
  359.    u16             _groupRA[MAX_NA_OLD];
  360.    u16             _altGroupRA[MAX_NA_OLD][3];
  361.    uchar           _qwkName[MAX_NA_OLD][13];
  362.    u16             _minAgeSBBS[MAX_NA_OLD];
  363.    u16             _daysRcvdAKA[MAX_NA_OLD];
  364.    uchar           _replyStatSBBS[MAX_NA_OLD];
  365.    u16             _attrSBBS[MAX_NA_OLD];
  366.    uchar           groupDescr[26][27];
  367.    uchar           reserved5[9];
  368.    uchar           _msgKindsRA[MAX_NA_OLD];
  369.    uchar           _attrRA[MAX_NA_OLD];
  370.    u16             _readSecRA[MAX_NA_OLD];
  371.    uchar           _readFlagsRA[MAX_NA_OLD][4];
  372.    u16             _writeSecRA[MAX_NA_OLD];
  373.    uchar           _writeFlagsRA[MAX_NA_OLD][4];
  374.    u16             _sysopSecRA[MAX_NA_OLD];
  375.    uchar           _sysopFlagsRA[MAX_NA_OLD][4];
  376.    u16             _daysAKA[MAX_NA_OLD];
  377.    u16             _msgsAKA[MAX_NA_OLD];
  378.    uchar           _descrAKA[MAX_NA_OLD][51];
  379.    userType        users[MAX_USERS];
  380.    akaMatchType    akaMatch[MAX_MATCH];     // not used yet
  381.    uchar           reserved6[992-10*MAX_MATCH];
  382.    pathType        tossedAreasList;
  383.    pathType        sentEchoPath;
  384.    archiverInfo    preUnarc;
  385.    archiverInfo    postUnarc;
  386.    archiverInfo    preArc;
  387.    archiverInfo    postArc;
  388.    archiverInfo    unUc2;
  389.    archiverInfo    unRar;
  390.    archiverInfo    unJar;
  391.    archiverInfo    resUnpack[5];
  392.    archiverInfo    uc2;
  393.    archiverInfo    rar;
  394.    archiverInfo    jar;
  395.    archiverInfo    resPack[5];
  396.    uplinkReqType   uplinkReq[MAX_UPLREQ+32];
  397.    archiverInfo    unArc32;
  398.    archiverInfo    unZip32;
  399.    archiverInfo    unLzh32;
  400.    archiverInfo    unPak32;
  401.    archiverInfo    unZoo32;
  402.    archiverInfo    unArj32;
  403.    archiverInfo    unSqz32;
  404.    archiverInfo    unUc232;
  405.    archiverInfo    unRar32;
  406.    archiverInfo    GUS32;
  407.    archiverInfo    unJar32;
  408.    archiverInfo    resUnpack32[5];
  409.    archiverInfo    preUnarc32;
  410.    archiverInfo    postUnarc32;
  411.    archiverInfo    arc32;
  412.    archiverInfo    zip32;
  413.    archiverInfo    lzh32;
  414.    archiverInfo    pak32;
  415.    archiverInfo    zoo32;
  416.    archiverInfo    arj32;
  417.    archiverInfo    sqz32;
  418.    archiverInfo    uc232;
  419.    archiverInfo    rar32;
  420.    archiverInfo    customArc32;
  421.    archiverInfo    jar32;
  422.    archiverInfo    resPack32[5];
  423.    archiverInfo    preArc32;
  424.    archiverInfo    postArc32;
  425.    uchar           descrAKA[MAX_NETAKAS][51];
  426.    uchar           qwkName[MAX_NETAKAS][13];
  427.    areaOptionsType optionsAKA[MAX_NETAKAS];
  428.    uchar           msgKindsRA[MAX_NETAKAS];
  429.    u16             daysAKA[MAX_NETAKAS];
  430.    u16             msgsAKA[MAX_NETAKAS];
  431.    uchar           groupsQBBS[MAX_NETAKAS];
  432.    uchar           attrRA[MAX_NETAKAS];
  433.    uchar           attr2RA[MAX_NETAKAS];
  434.    u16             attrSBBS[MAX_NETAKAS];
  435.    uchar           aliasesQBBS[MAX_NETAKAS];
  436.    u16             groupRA[MAX_NETAKAS];
  437.    u16             altGroupRA[MAX_NETAKAS][3];
  438.    u16             minAgeSBBS[MAX_NETAKAS];
  439.    u16             daysRcvdAKA[MAX_NETAKAS];
  440.    uchar           replyStatSBBS[MAX_NETAKAS];
  441.    u16             readSecRA[MAX_NETAKAS];
  442.    uchar           readFlagsRA[MAX_NETAKAS][8];
  443.    u16             writeSecRA[MAX_NETAKAS];
  444.    uchar           writeFlagsRA[MAX_NETAKAS][8];
  445.    u16             sysopSecRA[MAX_NETAKAS];
  446.    uchar           sysopFlagsRA[MAX_NETAKAS][8];
  447.    u16             templateSecQBBS[MAX_NETAKAS];
  448.    uchar           templateFlagsQBBS[MAX_NETAKAS][8];
  449.    uchar           reserved7[512];
  450.    u16             netmailBoard[MAX_NETAKAS_F];
  451.    akaListType     akaList;
  452.    } configType;
  453.  
  454.  
  455.  
  456. /* ********** FMAIL.AR ********** */
  457.  
  458. #if defined(__FMAILX__) || defined(__32BIT__)
  459. #define MAX_AREAS   4096
  460. #else
  461. #define MAX_AREAS    512
  462. #endif
  463.  
  464. //#define MAX_FORWARD   64
  465. #define MAX_FORWARDOLD  64
  466. #define MAX_FORWARDDEF 256    // NOTE: this is a dummy. 'config.maxForward'
  467.                               // contains the real size. 256 is the maximum.
  468. #define MAX_FORWARD    config.maxForward
  469. #define RAWECHO_SIZE   sizeof(rawEchoType)
  470.  
  471. #define MB_PATH_LEN_OLD   19
  472. #define MB_PATH_LEN       61
  473. #define ECHONAME_LEN_090  25
  474. #define ECHONAME_LEN      51
  475. #define COMMENT_LEN       51
  476. #define ORGLINE_LEN       59
  477.  
  478. typedef uchar areaNameType[ECHONAME_LEN];
  479.  
  480. /* NOTE: See above for the file header structure !!! */
  481.  
  482. typedef struct
  483. {
  484.    unsigned tossedTo     : 1;  /* BIT 0 */
  485.    unsigned              : 15; /* BIT 1-15 */  } areaStatType;
  486.  
  487. typedef struct
  488. {
  489.    u16             signature; /* contains "AE" for echo areas in FMAIL.AR and */
  490.                   /* "AD" for default settings in FMAIL.ARD       */
  491.    u16             writeLevel;
  492.    areaNameType    areaName;
  493.    uchar           comment[COMMENT_LEN];
  494.    areaOptionsType options;
  495.    u16             boardNumRA;
  496.    uchar           msgBaseType;
  497.    uchar           msgBasePath[MB_PATH_LEN];
  498.    u16             board;
  499.    uchar           originLine[ORGLINE_LEN];
  500.    u16             address;
  501.    u32             group;
  502.    u16             _alsoSeenBy; /* obsolete: see the 32-bit alsoSeenBy below */
  503.    u16             msgs;
  504.    u16             days;
  505.    u16             daysRcvd;
  506. /* old startposition of export[MAX_FORWARD] */
  507.    u16             readSecRA;
  508.    uchar           flagsRdRA[4];
  509.    uchar           flagsRdNotRA[4];
  510.    u16             writeSecRA;
  511.    uchar           flagsWrRA[4];
  512.    uchar           flagsWrNotRA[4];
  513.    u16             sysopSecRA;
  514.    uchar           flagsSysRA[4];
  515.    uchar           flagsSysNotRA[4];
  516.    u16             templateSecQBBS;
  517.    uchar           flagsTemplateQBBS[4];
  518.    uchar           _internalUse;
  519.    u16             netReplyBoardRA;
  520.    uchar           boardTypeRA;
  521.    uchar           attrRA;
  522.    uchar           attr2RA;
  523.    u16             groupRA;
  524.    u16             altGroupRA[3];
  525.    uchar           msgKindsRA;
  526.    uchar           qwkName[13];
  527.    u16             minAgeSBBS;
  528.    u16             attrSBBS;
  529.    uchar           replyStatSBBS;
  530.    uchar           groupsQBBS;
  531.    uchar           aliasesQBBS;
  532.    u32             lastMsgTossDat;
  533.    u32             lastMsgScanDat;
  534.    u32             alsoSeenBy;
  535.    areaStatType    stat;
  536.    uchar           reserved[180];
  537.  
  538.    nodeNumXType    export[MAX_FORWARDDEF];
  539.  
  540. } rawEchoType;
  541.  
  542.  
  543.  
  544. /* ********** FMAIL.NOD ********** */
  545.  
  546. #if defined __32BIT__ || defined __FMAILX__
  547. #define MAX_NODEMGR      1024
  548. #else
  549. #define MAX_NODEMGR      256
  550. #endif
  551.  
  552. #define PKTOUT_PATH_LEN  53
  553.  
  554. #define PKT_TYPE_2PLUS   1
  555. #define CAPABILITY       PKT_TYPE_2PLUS
  556.  
  557. typedef struct
  558. {
  559.    unsigned fixDate     : 1; /* Bit 0 */
  560.    unsigned tinySeenBy  : 1; /* Bit 1 */
  561.    unsigned             : 1; /* Bit 2 */
  562.    unsigned ignorePwd   : 1; /* Bit 3 */
  563.    unsigned active      : 1; /* Bit 4 */
  564.    unsigned             : 1;
  565.    unsigned routeToPoint: 1; /* Bit 6 */
  566.    unsigned packNetmail : 1; /* Bit 7 */
  567.    unsigned             : 1; /* Bit 8 */
  568.    unsigned             : 3;
  569.    unsigned forwardReq  : 1; /* Bit 12 */
  570.    unsigned remMaint    : 1; /* Bit 13 */
  571.    unsigned allowRescan : 1; /* Bit 14 */
  572.    unsigned notify      : 1;   } nodeOptionsType;
  573.  
  574. typedef struct /* OLD !!! */
  575. {
  576.    nodeNumType     node;
  577.    uchar           reserved1[2];
  578.    u16             capability;
  579.    u16             archiver;
  580.    nodeOptionsType options;
  581.    u32             groups;
  582.    u16             outStatus;
  583.    uchar           reserved2[32];
  584.    uchar           password[18];
  585.    uchar           packetPwd[10];
  586.    uchar           reserved[2];
  587.    nodeNumType     viaNode;
  588.    uchar           sysopName[36];   } nodeInfoTypeOld;
  589.  
  590. /* NOTE: see above for the file header structure !!! */
  591.  
  592. typedef struct
  593. {
  594.    u16             signature; /* contains "ND" */
  595.    u16             writeLevel;
  596.    nodeNumType     node;
  597.    nodeNumType     viaNode;
  598.    u16             capability;
  599.    nodeOptionsType options;
  600.    u8              archiver;
  601.    u8              reserved1;
  602.    u32             groups;
  603.    u16             outStatus;
  604.    uchar           sysopName[36];
  605.    uchar           password[18];
  606.    uchar           packetPwd[9];
  607.    uchar           useAka;
  608.    u32             lastMsgRcvdDat;
  609.    u32             lastMsgSentDat;
  610.    u32             lastNewBundleDat;
  611.    uchar           pktOutPath[PKTOUT_PATH_LEN];
  612.    u16             passiveDays;
  613.    u16             passiveSize;
  614.    u32             lastSentBCL;
  615.    u16             autoBCL;
  616.    u32             _lastNewBundleDat;
  617.    uchar           reserved2[17];        } nodeInfoType;
  618.  
  619.  
  620.  
  621. /* ********** FMAIL.PCK ********** */
  622.  
  623. #define PACK_STR_SIZE 64
  624. #define MAX_PACK      128
  625.  
  626. typedef uchar packEntryType[PACK_STR_SIZE];
  627. typedef packEntryType packType[MAX_PACK];
  628.  
  629.  
  630.  
  631. /* ********** FMAIL.BDE ********** */
  632.  
  633. #define MAX_BAD_ECHOS 50
  634.  
  635. typedef struct
  636. {
  637.    areaNameType badEchoName;
  638.    nodeNumType  srcNode;
  639.    s16          destAka;      } badEchoType;
  640.  
  641.  
  642.