| 1 | # |
| 2 | |
| 3 | /* |
| 4 | * This file contains the definitions of data structures used in |
| 5 | * configuring the network behavior of Mail when replying. |
| 6 | */ |
| 7 | |
| 8 | /* |
| 9 | * Sccs ID @(#)configdefs.h 1.3 %G% |
| 10 | */ |
| 11 | |
| 12 | /* |
| 13 | * The following constants are used when you are running 4.1a bsd or |
| 14 | * later on a local network. Under control of the #define flag |
| 15 | * GETHOST, the host name is determined dynamically using the |
| 16 | * gethostname() system call. The name thus found is inserted |
| 17 | * into the host table slot whose name was originally EMPTY. |
| 18 | */ |
| 19 | #define EMPTY "** empty **" |
| 20 | #define EMPTYID 'E' |
| 21 | |
| 22 | /* |
| 23 | * The following data structure is the host table. You must have |
| 24 | * an entry here for your own machine, plus any special stuff you |
| 25 | * expect the mailer to know about. If you have #define'd GETHOST |
| 26 | * in v7.local.h, you needn't add your machine to the host table. |
| 27 | * Not all hosts need be here, however: |
| 28 | * Mail can dope out stuff about hosts on the fly by looking |
| 29 | * at addresses. The machines needed here are: |
| 30 | * 1) The local machine |
| 31 | * 2) Any machines on the path to a network gateway |
| 32 | * 3) Any machines with nicknames that you want to have considered |
| 33 | * the same. |
| 34 | * The machine id letters can be anything you like and are not seen |
| 35 | * externally. Be sure not to use characters with the 0200 bit set -- |
| 36 | * these have special meanings. |
| 37 | */ |
| 38 | struct netmach { |
| 39 | char *nt_machine; |
| 40 | char nt_mid; |
| 41 | short nt_type; |
| 42 | }; |
| 43 | |
| 44 | /* |
| 45 | * Network type codes. Basically, there is one for each different |
| 46 | * network, if the network can be discerned by the separator character, |
| 47 | * such as @ for the arpa net. The purpose of these codes is to |
| 48 | * coalesce cases where more than one character means the same thing, |
| 49 | * such as % and @ for the arpanet. Also, the host table uses a |
| 50 | * bit map of these codes to show what it is connected to. |
| 51 | * BN -- connected to Bell Net. |
| 52 | * AN -- connected to ARPA net, SN -- connected to Schmidt net. |
| 53 | */ |
| 54 | #define AN 1 /* Connected to ARPA net */ |
| 55 | #define BN 2 /* Connected to BTL net */ |
| 56 | #define SN 4 /* Connected to Schmidt net */ |
| 57 | |
| 58 | /* |
| 59 | * Data structure for table mapping network characters to network types. |
| 60 | */ |
| 61 | struct ntypetab { |
| 62 | char nt_char; /* Actual character separator */ |
| 63 | int nt_bcode; /* Type bit code */ |
| 64 | }; |
| 65 | |
| 66 | /* |
| 67 | * Codes for the "kind" of a network. IMPLICIT means that if there are |
| 68 | * physically several machines on the path, one does not list them in the |
| 69 | * address. The arpa net is like this. EXPLICIT means you list them, |
| 70 | * as in UUCP. |
| 71 | * By the way, this distinction means we lose if anyone actually uses the |
| 72 | * arpa net subhost convention: name@subhost@arpahost |
| 73 | */ |
| 74 | #define IMPLICIT 1 |
| 75 | #define EXPLICIT 2 |
| 76 | |
| 77 | /* |
| 78 | * Table for mapping a network code to its type -- IMPLICIT routing or |
| 79 | * IMPLICIT routing. |
| 80 | */ |
| 81 | struct nkindtab { |
| 82 | int nk_type; /* Its bit code */ |
| 83 | int nk_kind; /* Whether explicit or implicit */ |
| 84 | }; |
| 85 | |
| 86 | /* |
| 87 | * The following table gives the order of preference of the various |
| 88 | * networks. Thus, if we have a choice of how to get somewhere, we |
| 89 | * take the preferred route. |
| 90 | */ |
| 91 | struct netorder { |
| 92 | short no_stat; |
| 93 | char no_char; |
| 94 | }; |
| 95 | |
| 96 | /* |
| 97 | * External declarations for above defined tables. |
| 98 | */ |
| 99 | #ifndef CONFIGFILE |
| 100 | extern struct netmach netmach[1]; |
| 101 | extern struct ntypetab ntypetab[1]; |
| 102 | extern struct nkindtab nkindtab[1]; |
| 103 | extern struct netorder netorder[1]; |
| 104 | extern char *metanet; |
| 105 | #endif |