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) 6/6/85
7: */
8:
9: /*
10: * This file contains the definitions of data structures used in
11: * configuring the network behavior of Mail when replying.
12: */
13:
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:
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
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
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: */
63: struct ntypetab {
64: char nt_char; /* Actual character separator */
65: int nt_bcode; /* Type bit code */
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: */
83: struct nkindtab {
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];
103: extern struct ntypetab ntypetab[1];
104: extern struct nkindtab nkindtab[1];
105: extern struct netorder netorder[1];
106: extern char *metanet;
107: #endif
Defined struct's
Defined macros
AN
defined in line
56; used 7 times
BN
defined in line
57; used 4 times
EMPTY
defined in line
21; used 2 times
SN
defined in line
58; used 4 times
Usage of this include