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