makedb [ -a ] [ -o dbmfile ] [ files ... ]
makedb takes pathalias output and creates or appends to a dbm(3) database.
Here are the pathalias options:
Here are the makedb options:
A list of host-to-host connections consists of a ``from'' host in column 1, followed by white space, followed by a comma-separated list of ``to' hosts, called links. A link may be preceded or followed by a network character to use in the route. Valid network characters are `!' (default), `@', `:', and `%'. A link (and network character, if present) may be followed by a ``cost'' enclosed in parentheses. Costs may be arbitrary arithmetic expressions involving numbers, parentheses, `+', `-', `*', and `/'. The following symbolic costs are recognized:
LOCAL 25 (local-area network connection) DEDICATED 95 (high speed dedicated link) DIRECT 200 (toll-free call) DEMAND 300 (long-distance call) HOURLY 500 (hourly poll) EVENING 1800 (time restricted call) DAILY 5000 (daily poll, also called POLLED) WEEKLY 30000(irregular poll)
In addition, DEAD is a very large number (effectively infinite), and HIGH and LOW are -5 and +5 respectively, for baud-rate or quality bonuses/penalties. These symbolic costs represent an imperfect measure of bandwidth, monetary cost, and frequency of connections. For most mail traffic, it is important to minimize the number of intermediaries in a route, thus, e.g., HOURLY is far greater than DAILY / 24. If no cost is given, a default of 4000 is used.
For the most part, arithmetic expressions that mix symbolic constants other than HIGH and LOW make no sense. E.g., if a host calls a local neighbor whenever there is work, and additionally polls every evening, the cost is DIRECT, not DIRECT+EVENING.
Some examples:
down princeton!(DEDICATED), tilt, %thrash(LOCAL) princeton topaz!(DEMAND+LOW) topaz @rutgers(LOCAL)
If a link is encountered more than once, the least-cost occurrence dictates the cost and network character. Links are treated as bidirectional, to the extent that a DEAD reverse link is assumed unless better information is available.
The set of names by which a host is known by its neighbors is called its aliases. Aliases are declared as follows:
name = alias, alias ...
The name used in the route to or through aliased hosts is the name by which the host is known to its predecessor in the route.
Fully connected networks, such as the ARPANET or a local-area network, are declared as follows:
net = {host, host, ...}
The host-list may be preceded or followed by a routing character, and may be followed by a cost:
princeton-ethernet = {down, up, princeton}!(LOCAL) ARPA = @{sri-unix, mit-ai, su-score}(DEDICATED)
See also the sections on gateways and domains below.
Connection data may be given while hiding host names by declaring
private {host, host, ...}
pathalias will not generate routes for private hosts or for any host with the same name as a private host, but may produce routes through them. The scope of a private declaration extends from the declaration to the end of the input file in which it appears. It is best to put private declarations at the beginning of the appropriate input file.
rutgers princeton!topaz!%s@rutgers
The ``%s'' in the route string should be replaced by the user name at the destination host. (This task is normally performed by a mailer.)
Except for domains (see below), the name of a network is never used in expansions. Thus, in the earlier example, the path from down to up would be ``up!%s,'' not ``princeton-ethernet!up!%s.''
If the input also shows a link from a host to the network, then that host will be preferred as a gateway. Gateways need not be network members.
E.g., suppose CSNET is declared dead on the command line and the input contains
CSNET = {...} csnet-relay csnet
Then routes to CSNET hosts will use csnet-relay as a gateway.
pathalias discourages forwarding beyond dead networks.
harvard .EDU .EDU = {.BERKELEY} .BERKELEY ernie
ernie ...!harvard!ernie.BERKELEY.EDU!%s
If a domain member is declared private, its fully qualified domain name is shown instead. E.g., if ernie is declared a private member of .BERKELEY, then the output is
ernie.BERKELEY.EDU ...!harvard!ernie.BERKELEY.EDU!%s
Output is also given for the nearest gateway to a domain or subdomain. E.g., in the example above
.EDU ...!harvard!%s .BERKELEY.EDU ...!harvard!%s
pathalias can generate hybrid (i.e. ambiguous) routes, which are abhorrent and most certainly should not be given as examples in the manual entry.
Multiple `@'s in routes are prohibited by many mailers, so pathalias resorts to the ``magic %'' rule when appropriate. (This convention is not documented anywhere, including here.)
Domains constitute a futile attempt to defeat anarchy and otherwise retard progress.