install correct aliases file
[unix-history] / usr / src / usr.bin / mail / configdefs.h
CommitLineData
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 */
46struct 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 69struct 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 89struct 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 */
99struct netorder {
100 short no_stat;
101 char no_char;
102};
103
104/*
105 * External declarations for above defined tables.
106 */
107#ifndef CONFIGFILE
108extern struct netmach netmach[1];
9f62cf05
KS
109extern struct ntypetab ntypetab[1];
110extern struct nkindtab nkindtab[1];
4a03b5a8
KS
111extern struct netorder netorder[1];
112extern char *metanet;
113#endif