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