xref: /original-bsd/usr.bin/mail/configdefs.h (revision fbed46ce)
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.1 09/09/81
10  */
11 
12 /*
13  * The following data structure is the host table.  You must have
14  * an entry here for your own machine, plus any special stuff you
15  * expect the mailer to know about.  Not all hosts need be here,
16  * however:  Mail can dope out stuff about hosts on the fly by looking
17  * at addresses.  The machines needed here are:
18  *	1) The local machine
19  *	2) Any machines on the path to a network gateway
20  *	3) Any machines with nicknames that you want to have considered
21  *	   the same.
22  * The machine id letters can be anything you like and are not seen
23  * externally.  Be sure not to use characters with the 0200 bit set --
24  * these have special meanings.
25  */
26 struct netmach {
27 	char	*nt_machine;
28 	char	nt_mid;
29 	short	nt_type;
30 };
31 
32 /*
33  * Network type codes.  Basically, there is one for each different
34  * network, if the network can be discerned by the separator character,
35  * such as @ for the arpa net.  The purpose of these codes is to
36  * coalesce cases where more than one character means the same thing,
37  * such as % and @ for the arpanet.  Also, the host table uses a
38  * bit map of these codes to show what it is connected to.
39  * BN -- connected to Bell Net.
40  * AN -- connected to ARPA net, SN -- connected to Schmidt net.
41  */
42 #define	AN	1			/* Connected to ARPA net */
43 #define	BN	2			/* Connected to BTL net */
44 #define	SN	4			/* Connected to Schmidt net */
45 
46 /*
47  * Data structure for table mapping network characters to network types.
48  */
49 struct nettypetab {
50 	char	nt_char;		/* Actual character separator */
51 	int	nt_type;		/* Type bit code */
52 };
53 
54 /*
55  * Codes for the "kind" of a network.  IMPLICIT means that if there are
56  * physically several machines on the path, one does not list them in the
57  * address.  The arpa net is like this.  EXPLICIT means you list them,
58  * as in UUCP.
59  * By the way, this distinction means we lose if anyone actually uses the
60  * arpa net subhost convention: name@subhost@arpahost
61  */
62 #define	IMPLICIT	1
63 #define	EXPLICIT	2
64 
65 /*
66  * Table for mapping a network code to its type -- IMPLICIT routing or
67  * IMPLICIT routing.
68  */
69 struct netkindtab {
70 	int	nk_type;		/* Its bit code */
71 	int	nk_kind;		/* Whether explicit or implicit */
72 };
73 
74 /*
75  * The following table gives the order of preference of the various
76  * networks.  Thus, if we have a choice of how to get somewhere, we
77  * take the preferred route.
78  */
79 struct netorder {
80 	short	no_stat;
81 	char	no_char;
82 };
83 
84 /*
85  * External declarations for above defined tables.
86  */
87 #ifndef CONFIGFILE
88 extern struct netmach netmach[1];
89 extern struct nettypetab nettypetab[1];
90 extern struct netkindtab netkindtab[1];
91 extern struct netorder netorder[1];
92 extern char *metanet;
93 #endif
94