Import a copy of Markus Schnalke's master's thesis: The Modern Mail Handler.
[mmh] / docs / historical / mh-6.8.5 / zotnet / bboards / bboards.h
1 /* bboards.h - definition of a BBoard structure */
2 /* @(#)$Id: bboards.h,v 1.3 1992/12/15 00:20:22 jromine Exp $ */
3
4 #define BBOARDS "bboards"       /* name in /etc/passwd */
5 #define BBDB    "BBoards"       /* file in BBOARDS' home directory */
6 #define BBMODE  0644            /* default BBoards mode */
7 #define DISTADR "dist-"         /* prefix for distribution addresses */
8
9 #ifdef  POP
10 #define POPUID  "pop"           /* name in /etc/passwd */
11 #define POPDB   "POP"           /* file in POPUID's home directory */
12 #define POMODE  0600            /* default POP subscriber maildrop mode */
13 #endif  /* POP */
14
15 struct bboard {
16     char   *bb_name;            /* name of the bboard */
17     char  **bb_aka;             /* aliases for the bboards */
18
19     char   *bb_file;            /* file it resides in */
20     char   *bb_archive;         /* file where archives reside */
21     char   *bb_info;            /* file where maxima resides */
22     char   *bb_map;             /* file where binary map resides */
23
24     char   *bb_passwd;          /* password for it */
25
26     char  **bb_leader;          /* list of local leaders */
27
28     char   *bb_addr;            /* network address */
29     char   *bb_request;         /* network address for requests */
30     char   *bb_relay;           /* host acting as relay in local domain */
31     char  **bb_dist;            /* distribution list */
32
33     unsigned int    bb_flags;   /* various flags */
34 #define BB_NULL 0x0000
35 #define BB_ARCH 0x0007          /* archive policy */
36 #define   BB_ASAV       0x0001  /*   save in archives/ directory */
37 #define   BB_AREM       0x0002  /*   remove without saving */
38 #define BB_INVIS        0x0010  /* invisible to bbc */
39 #define BB_REMOTE       0x0020  /* remote to bbc */
40 #define BB_SEEN         0x0040  /* seen by bbc */
41 #define BBITS   "\020\01ARCHIVE\02REMOVE\05INVIS\06REMOTE\07SEEN"
42
43     union {                     /* unassigned */
44         unsigned int    un_count;
45         long            un_mtime;
46     } bb_un;
47 #define bb_count        bb_un.un_count
48 #define bb_mtime        bb_un.un_mtime
49     
50     unsigned int    bb_maxima;  /* highest BBoard-Id in it */
51     char   *bb_date;            /* date that maxima was written */
52
53     struct bboard *bb_next;     /* unassigned */
54     struct bboard *bb_link;     /* unassigned */
55     struct bboard *bb_chain;    /* unassigned */
56 };
57
58                                 /* flags for setbbent () */
59 #define SB_NULL 0x0000
60 #define SB_STAY 0x0001          /*   stay open between calls */
61 #define SB_FAST 0x0002          /*   fast parse of file */
62
63 void    make_lower ();
64 int     setbbent (), endbbent (), setbbfile (), setbbinfo (), setpwinfo (),
65         ldrbb (), ldrchk (), getbbdist ();
66 long    getbbtime ();
67 char   *getbberr ();
68 struct bboard  *getbbent (), *getbbnam (), *getbbaka (), *getbbcpy();