|
|
1.1 root 1: /*
2: * Copyright (c) 1980 Regents of the University of California.
3: * All rights reserved.
4: *
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) 2/18/88
13: */
14:
15: /*
16: * This file contains the definitions of data structures used in
17: * configuring the network behavior of Mail when replying.
18: */
19:
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:
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
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
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: */
69: struct ntypetab {
70: char nt_char; /* Actual character separator */
71: int nt_bcode; /* Type bit code */
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: */
89: struct nkindtab {
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];
109: extern struct ntypetab ntypetab[1];
110: extern struct nkindtab nkindtab[1];
111: extern struct netorder netorder[1];
112: extern char *metanet;
113: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.