home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / FMAIL094.ZIP / FMSTRUCT.H < prev    next >
Text File  |  1993-03-23  |  11KB  |  363 lines

  1.  
  2. /*
  3.    FMSTRUCT.H
  4.  
  5.    File structures for FMail 0.94
  6.    Copyright (C) 1993 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 are \ terminated.
  13. */
  14.  
  15.  
  16. /* ********** General structures ********** */
  17.  
  18. typedef char archiverInfo[48];
  19. typedef char pathType[48];
  20.  
  21. typedef struct
  22. {
  23.    unsigned zone;
  24.    unsigned net;
  25.    unsigned node;
  26.    unsigned point; } nodeNumType;
  27.  
  28. typedef struct
  29. {
  30.    nodeNumType nodeNum;
  31.    unsigned    fakeNet; } nodeFakeType;
  32.  
  33.  
  34.  
  35. /* ********** FMAIL.CFG ********** */
  36.  
  37. #define MAX_AKAS   11
  38. #define MAX_UPLREQ 16
  39.  
  40. typedef nodeFakeType akaListType[MAX_AKAS];
  41.  
  42. typedef struct
  43. {
  44.    unsigned useEMS       :  1; /* BIT 0 */
  45.    unsigned checkBreak   :  1; /* BIT 1 */
  46.    unsigned swap         :  1; /* BIT 2 */
  47.    unsigned swapEMS      :  1; /* BIT 3 */
  48.    unsigned swapXMS      :  1; /* BIT 4 */
  49.    unsigned              :  1;
  50.    unsigned monochrome   :  1; /* BIT 6 */
  51.    unsigned commentFFD   :  1; /* BIT 7 */
  52.    unsigned PTAreasBBS   :  1; /* BIT 8 */
  53.    unsigned commentFRA   :  1; /* BIT 9 */
  54.    unsigned keepReceipt  :  1; /* BIT 10 */
  55.    unsigned incBDRRA     :  1; /* BIT 11 */
  56.    unsigned keepRequest  :  1; /* BIT 12 */
  57.    unsigned              :  2;
  58.    unsigned RA2          :  1; /* BIT 15 */  } genOptionsType;
  59.  
  60. typedef struct
  61. {
  62.    unsigned removeNetKludges : 1; /* Bit 0 */
  63.    unsigned                  : 1;
  64.    unsigned checkPktDest     : 1; /* Bit 2 */
  65.    unsigned areaMgrPwdChange : 1; /* Bit 3 */
  66.    unsigned packetPwdChange  : 1; /* Bit 4 */
  67.    unsigned                  : 3;
  68.    unsigned dupDetection     : 1; /* Bit 8 */
  69.    unsigned ignoreMSGID      : 1; /* Bit 9 */
  70.    unsigned                  : 1; /* Bit 10 */
  71.    unsigned                  : 1; /* Bit 11 */
  72.    unsigned persNetmail      : 1; /* Bit 12 */
  73.    unsigned privateImport    : 1; /* Bit 13 */
  74.    unsigned keepExpNetmail   : 1; /* Bit 14 */
  75.    unsigned killEmptyNetmail : 1; /* Bit 15 */  } mailOptionsType;
  76.  
  77. typedef struct
  78. {
  79.    unsigned sortNew      : 1; /* bit  0   */
  80.    unsigned sortSubject  : 1; /* bit  1   */
  81.    unsigned updateChains : 1; /* bit  2   */
  82.    unsigned reTear       : 1; /* bit  3   */
  83.    unsigned              : 1; /* bit  4   */
  84.    unsigned              : 1; /* bit  5   */
  85.    unsigned removeRe     : 1; /* bit  6   */
  86.    unsigned removeLfSr   : 1; /* bit  7   */
  87.    unsigned scanAlways   : 1; /* bit  8   */
  88.    unsigned scanUpdate   : 1; /* bit  9   */
  89.    unsigned multiLine    : 1; /* bit 10   */
  90.    unsigned              : 1; /* bit 11   */
  91.    unsigned quickToss    : 1; /* bit 12   */
  92.    unsigned              : 2; /* bit 13-14 */
  93.    unsigned sysopImport  : 1; /* bit 15   */ } mbOptionsType;
  94.  
  95. typedef struct
  96. {
  97.    unsigned active      : 1; /* Bit  0 */
  98.    unsigned tinySeenBy  : 1; /* Bit  1 */
  99.    unsigned security    : 1; /* Bit  2 */
  100.    unsigned             : 1; /* Bit  3 */
  101.    unsigned private     : 1; /* Bit  4 */
  102.    unsigned impSeenBy   : 1; /* Bit  5 */
  103.    unsigned checkSeenBy : 1; /* Bit  6 */
  104.    unsigned             : 1; /* Bit  7 */
  105.    unsigned local       : 1; /* Bit  8 */
  106.    unsigned             : 1; /* Bit  9 */
  107.    unsigned passThrough : 1; /* Bit 10 */
  108.    unsigned             : 3; /* Bit 11-13 */
  109.    unsigned arrivalDate : 1; /* Bit 14 */
  110.    unsigned sysopRead   : 1; /* Bit 15 */     } defaultOptionsType;
  111.  
  112. typedef struct
  113. {
  114.    unsigned addPlusPrefix :  1; /* BIT 0 */
  115.    unsigned               :  3;
  116.    unsigned unconditional :  1; /* BIT 4 */
  117.    unsigned               : 11;    } uplOptType;
  118.  
  119. typedef struct /* NOT USED YET */
  120. {
  121.    nodeNumType node;
  122.    char        program[9];
  123.    char        password[17];
  124.    char        fileName[13];
  125.    char        fileType;
  126.    long        groups;
  127.    char        originAka;
  128.    uplOptType  options;
  129.    char        reserved[9];  } uplinkReqType;
  130.  
  131. typedef struct
  132. {
  133.    char            versionMajor;
  134.    char            versionMinor;
  135.    long            creationDate;
  136.    unsigned long   key;
  137.    unsigned long   reservedKey;
  138.    unsigned long   relKey1;
  139.    unsigned long   relKey2;
  140.    char            reserved0[24];
  141.    akaListType     akaList;
  142.    nodeFakeType    reservedAka[16-MAX_AKAS];
  143.    unsigned        netmailBoard[MAX_AKAS];
  144.    unsigned        reservedNet[16-MAX_AKAS];
  145.    genOptionsType  genOptions;
  146.    mbOptionsType   mbOptions;
  147.    mailOptionsType mailOptions;
  148.    unsigned        maxPktSize;
  149.    unsigned        logLevel;
  150.    unsigned        mailer;
  151.    unsigned        bbsProgram;
  152.    unsigned        maxBundleSize;
  153.    unsigned        extraHandles; /* 0-235 */
  154.    unsigned        autoRenumber;
  155.    unsigned        bufSize;
  156.    unsigned        ftBufSize;
  157.    unsigned        allowedNumNetmail;
  158.    char            reserved1[72];
  159.    unsigned        colorSet;
  160.    char            sysopName[36];
  161.    unsigned        defaultArc;
  162.    char            reserved2[24];
  163.    char            tearType;
  164.    char            tearLine[25];
  165.    pathType        summaryLogName;
  166.    unsigned        recBoard;
  167.    unsigned        badBoard;
  168.    unsigned        dupBoard;
  169.    char            topic1[16];
  170.    char            topic2[16];
  171.    pathType        bbsPath;
  172.    pathType        netPath;
  173.    pathType        sentPath;
  174.    pathType        rcvdPath;
  175.    pathType        inPath;
  176.    pathType        outPath;
  177.    pathType        securePath;
  178.    pathType        logName;
  179.    pathType        swapPath;
  180.    pathType        semaphorePath;
  181.    pathType        pmailPath;
  182.    pathType        areaMgrLogName;
  183.    pathType        autoRAPath;
  184.    pathType        autoFolderFdPath;
  185.    pathType        autoAreasBBSPath;
  186.    pathType        autoGoldEdAreasPath;
  187.    archiverInfo    unArc;
  188.    archiverInfo    unZip;
  189.    archiverInfo    unLzh;
  190.    archiverInfo    unPak;
  191.    archiverInfo    unZoo;
  192.    archiverInfo    unArj;
  193.    archiverInfo    unSqz;
  194.    archiverInfo    reservedUnArc;
  195.    archiverInfo    arc;
  196.    archiverInfo    zip;
  197.    archiverInfo    lzh;
  198.    archiverInfo    pak;
  199.    archiverInfo    zoo;
  200.    archiverInfo    arj;
  201.    archiverInfo    sqz;
  202.    archiverInfo    reservedArc;
  203.    char            defaultOriginLine[59];
  204.    defaultOptionsType
  205.                    defaultOptions;
  206.    unsigned        defaultDays;
  207.    unsigned        defaultMsgs;
  208.    unsigned        defaultReadSecRA;
  209.    char            defaultReadFlagsRA[4];
  210.    unsigned        defaultWriteSecRA;
  211.    char            defaultWriteFlagsRA[4];
  212.    unsigned        defaultSysopSecRA;
  213.    char            defaultSysopFlagsRA[4];
  214.    char            defaultAttrRA;
  215.    char            defaultMsgKindsRA;
  216.    unsigned        defaultAttrSBBS;
  217.    char            defaultReplyStatSBBS;
  218.    unsigned        defaultDaysRcvd;
  219.    unsigned        defaultMinAgeSBBS;
  220.    char            reserved3[200];
  221.    char            qwkNameSBBS[11][13];
  222.    unsigned        minAgeSBBS[11];
  223.    unsigned        daysRcvdAKA[11];
  224.    char            replyStatSBBS[11];
  225.    unsigned        attrSBBS[11];
  226.    char            groupDescr[26][27];
  227.    char            reserved4[9];
  228.    char            msgKindsRA[11];
  229.    char            attrRA[11];
  230.    unsigned        readSecRA[11];
  231.    char            readFlagsRA[11][4];
  232.    unsigned        writeSecRA[11];
  233.    char            writeFlagsRA[11][4];
  234.    unsigned        sysopSecRA[11];
  235.    char            sysopFlagsRA[11][4];
  236.    unsigned        daysAKA[11];
  237.    unsigned        msgsAKA[11];
  238.    char            descrAKA[11][51];
  239.    char            reserved[3072];
  240.    uplinkReqType   uplinkReq[MAX_UPLREQ];   } configType;
  241.  
  242.  
  243.  
  244. /* ********** FMAIL.AR ********** */
  245.  
  246. #define MAX_AREAS    512
  247. #define MAX_FORWARD   64
  248.  
  249. #define ECHONAME_LEN_OLD  25
  250. #define ECHONAME_LEN      51
  251. #define COMMENT_LEN       51
  252. #define ORGLINE_LEN       59
  253.  
  254. typedef char echoNameType[ECHONAME_LEN];
  255.  
  256. typedef struct
  257. {
  258.    unsigned active      : 1; /* Bit  0 */
  259.    unsigned tinySeenBy  : 1; /* Bit  1 */
  260.    unsigned security    : 1; /* Bit  2 */
  261.    unsigned             : 1; /* Bit  3 */
  262.    unsigned private     : 1; /* Bit  4 */
  263.    unsigned impSeenBy   : 1; /* Bit  5 */
  264.    unsigned checkSeenBy : 1; /* Bit  6 */
  265.    unsigned             : 1; /* Bit  7 */
  266.    unsigned local       : 1; /* Bit  8 */
  267.    unsigned             : 1; /* Bit  9 */
  268.    unsigned reserved    : 1; /* Bit 10 */
  269.    unsigned             : 3; /* Bit 11-13 */
  270.    unsigned arrivalDate : 1; /* Bit 14 */
  271.    unsigned sysopRead   : 1; /* Bit 15 */   } areaOptionsType;
  272.  
  273. typedef struct
  274. {
  275.    char            areaNameOld[ECHONAME_LEN_OLD];
  276.    char            comment[COMMENT_LEN];
  277.    long            group;
  278.    unsigned        board;
  279.    unsigned        address;
  280.    unsigned        alsoSeenBy;
  281.    char            reserved1[8];
  282.    areaOptionsType options;
  283.    unsigned        outStatus;
  284.    unsigned        days;
  285.    unsigned        msgs;
  286.    unsigned       daysRcvd;
  287.    char            reserved2[2];
  288.    unsigned        readSecRA;
  289.    char            flagsRdRA[4];
  290.    unsigned        writeSecRA;
  291.    char            flagsWrRA[4];
  292.    unsigned        sysopSecRA;
  293.    char            flagsSysRA[4];
  294.    char            attrRA;
  295.    char            msgKindsRA;
  296.    unsigned        attrSBBS;
  297.    char            replyStatSBBS;
  298.    echoNameType    areaName;
  299.    char            qwkName[13];
  300.    unsigned        minAgeSBBS;
  301.    char            reserved3[2];
  302.    char            originLine[ORGLINE_LEN];
  303.    nodeNumType     export[MAX_FORWARD];  } rawEchoType;
  304.  
  305.  
  306.  
  307. /* ********** FMAIL.BDE ********** */
  308.  
  309. #define MAX_BAD_ECHOS 50
  310.  
  311. typedef struct
  312. {
  313.    echoNameType badEchoName;
  314.    nodeNumType  srcNode;
  315.    int          destAka;      } badEchoType;
  316.  
  317.  
  318.  
  319. /* ********** FMAIL.NOD ********** */
  320.  
  321. #define MAX_NODEMGR 256
  322.  
  323. typedef struct
  324. {
  325.    unsigned fixDate     : 1; /* Bit 0 */
  326.    unsigned tinySeenBy  : 1; /* Bit 1 */
  327.    unsigned             : 1; /* Bit 2 */
  328.    unsigned ignorePwd   : 1; /* Bit 3 */
  329.    unsigned active      : 1; /* Bit 4 */
  330.    unsigned             : 3;
  331.    unsigned             : 1; /* Bit 8 */
  332.    unsigned             : 3;
  333.    unsigned forwardReq  : 1; /* Bit 12 */
  334.    unsigned remMaint    : 1; /* Bit 13 */
  335.    unsigned allowRescan : 1; /* Bit 14 */
  336.    unsigned notify      : 1;   } nodeOptionsType;
  337.  
  338. typedef struct
  339. {
  340.    nodeNumType     node;
  341.    char            reserved1[2];
  342.    unsigned        capability;
  343.    unsigned        archiver;
  344.    nodeOptionsType options;
  345.    unsigned long   groups;
  346.    unsigned        outStatus;
  347.    char            reserved2[32];
  348.    char            password[18];
  349.    char            packetPwd[10];
  350.    char            reserved[10];
  351.    char            sysopName[36];   } nodeInfoType;
  352.  
  353.  
  354.  
  355. /* ********** FMAIL.PCK ********** */
  356.  
  357. #define PACK_STR_SIZE 64
  358. #define MAX_PACK      64
  359.  
  360. typedef char packEntryType[PACK_STR_SIZE];
  361. typedef packEntryType packType[MAX_PACK];
  362.  
  363.