home *** CD-ROM | disk | FTP | other *** search
- Subject: v16i078: IDA Sendmail kit, Part06/08
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Lennart Lovstrand <lovstran@arisia.xerox.com>
- Posting-number: Volume 16, Issue 78
- Archive-name: ida2/part06
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 6 (of 8)."
- # Contents: ida/doc/part1.ms
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f ida/doc/part1.ms -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"ida/doc/part1.ms\"
- else
- echo shar: Extracting \"ida/doc/part1.ms\" \(40946 characters\)
- sed "s/^X//" >ida/doc/part1.ms <<'END_OF_ida/doc/part1.ms'
- X.\" refer -e -l,2 -s paper.ms | tbl | pstroff -ms -*- nroff -*-
- X.AM
- X.RP
- X.ds < \v'0.2m'\s-3
- X.ds > \s0\v'-0.2m'
- X.de DQ \" Double quoted string
- X\\&\\$3\\*Q\\$1\\*U\\$2
- X..
- X.de SQ \" Single quoted string
- X\\&\\$3`\\$1'\\$2
- X..
- X.de UC \" Uppercase string (in a smaller font)
- X\\&\\$3\\s-1\\$1\\s+1\&\\$2
- X..
- X.de UQ \" Uppercase quoted string (in a smaller font)
- X\\&\\$3\\*Q\\s-1\\$1\\s+1\\*U\\$2
- X..
- X.de QQ \" Quoted paragraph (possibly in a sized font)
- X.QP
- X.if !'\\$1'' .ps \\$1
- X..
- X.de II \" Indented, auto numbered paragraph
- X.if !'\\$1'' .nr II \\$1-1 1
- X.IP [\\n+(II]
- X..
- X.de JB \" Indented paragraph, bold label, extended width
- X.IP "\fB\\$1\fR" 15
- X..
- X.de JS \" Indented paragraph, small label
- X.IP "\s-1\\$1\s+1"
- X..
- X.de AP \" Appendix
- X.if \\n(1T .bp
- X.RT
- X.if \\n(1T .sp
- X.if !\\n(1T .BG
- X.RT
- X.ft 3
- X.if n .ul 100
- XAPPENDIX \\$1:
- X..
- X.de DO \" Domain table entry, see Appendix D
- X.br
- X.UC \\$1
- X\t\\$2
- X..
- X.de X1 \" Generate 1st level index entry
- X.br
- X.ie '\\$3'' .ta \\n(LLu-\\w"\\$1"u \\n(LLuR
- X.el .ta \\n(LLu-\\w'\\$3'u-1u \\n(LLu-\\w'\\$3'u
- X\\$2\a\t\\$1
- X..
- X.de X2 \" Generate 2nd level index entry
- X.in 3n
- X.nr LL \\n(LL-3n
- X.X1 "\\$1" "\\$2"
- X.nr LL \\n(LL+3n
- X.in 0
- X..
- X.\" ***** HERE BEGINS THE ACTUAL CODE (ie TEXT)
- X.ND May 27, 1987
- X.ie n .ds LH Electronic Mail Addressing
- X.el .ds LH Electronic Mail Addressing with The IDA Sendmail Enhancement Kit
- X.ds CH
- X.ds RH Lennart Lo\\*:vstrand \\(co 1987
- X.ds LF
- X.ds CF \*- % \*-
- X.ds RF
- X.TL
- XElectronic Mail Addressing in Theory and Practice
- X.SM
- X.br
- Xwith The IDA Sendmail Enhancement Kit
- X.if t \{\
- X.SM
- X.br
- X(or The Postmaster's Last Will and Testament)
- X.\}
- X.AU
- XLennart Lo\*:vstrand*
- X.FS
- X* New address from July 1987: Xerox EuroPARC, 61 Regent Street,
- XCambridge CB2 1AB, U.K.
- X.FE
- X<lel@ida.liu.se>
- X.AI
- XDepartment of Computer and Information Science
- XUniversity of Linko\*:ping
- XS-581 83 Linko\*:ping
- XSWEDEN
- X.AB
- XThis paper discusses theoretical and practical aspects of handling
- Xelectronic mail addresses in a heterogeneous environment. It argues for
- Xmore intelligent Mail Transport Agents that are able to fully format
- Xaddresses according to different formats and that does not unnecessarily
- Xcomplicate header addresses. Also described is a set of enhancements to
- Xthe
- X.UX
- X.I sendmail
- Xprogram and accompanying rewriting rules used to fulfill our two main
- Xgoals: (1) To provide a canonical format for handling all electronic
- Xmail addresses in which
- X.DQ replying
- Xregularly will work and where local users do not have to depend on the
- Xrecipient's explicit route or addressing syntax when submitting a
- Xmessage. (2) To design and implement a method for managing mail to and
- Xfrom local users in a machine independent way, allowing them to change
- Xtheir preferred actual mailboxes while maintaining the same visible
- Xsurface addresses at all times.
- X.FS
- X.ps +1
- X.sp
- XReport no. LiTH-IDA-Ex-8715
- X.FE
- X.AE
- X.NH
- XINTRODUCTION
- X.QQ
- X.I
- XWhile some computer-based mail addressing systems are actually easier to
- Xdeal with than the paper-based model, they are the exception\*-and not
- Xthe rule.
- X.br
- X.ti +\n(QIu
- XWhy, you might ask, has electronic mail service become so very complex?
- XMost of the problems are simply inherent in reaching beyond a local
- Xsystem to connect with another.
- X.br
- X.R
- X.ad r
- X\&
- X.[[
- X%A David Crocker
- X%T Networking Considered Harmful
- X%J Unix Review
- X%V 5
- X%N 3
- X%D 1987
- X.]]
- X.br
- X.ad b
- X.LP
- XSending electronic mail is not always as easy as it ought to be. Too
- Xmany incompatible mail addressing formats exist, forcing the presumptive
- Xuser sending a message to know a great deal more than can be thought
- Xreasonable about the recipient mail system's idiosyncrasies. This is a
- Xwidely recognized problem, which can be seen as a consequence of the
- Xever increasing interconnectivity between different computer systems,
- Xeach subscribing to a different addressing standard. There are gateways
- Xthat do address transformation on messages passing from one network to
- Xanother, but it is normally done in a too insufficient manner to get rid
- Xof the unintelligible hybrid addresses that often infest us. Even worse
- Xare the many systems that assault these mixed format addresses by
- Xrewriting them to malformed or incomplete ones. A hybrid address
- Xpassing several network boundaries is often transformed in such a way
- Xthat it no longer is possible to use it as a
- X.DQ reply
- Xor error return address; not even for a human being, much less for a
- Xmachine.
- X.PP
- XThese problems are especially frequent in the
- X.UX
- Xworld. Networks like the
- X.UC ARPANET
- Xand
- X.UC CSNET
- Xhave the advantage of being more internally coherent; both
- Xfollow the Internet mail syntax specifications, described in
- X.UC RFC 822
- X\&
- X.[[
- X%A David Crocker
- X%T Standard for the Format of \s-1ARPA\s+1 Internet Text Messages
- X%S \s-1RFC\s+1\&822
- X%D 1982
- X.]].
- XThe
- X.UX
- Xworld used to practice the
- X.SQ ! -path
- Xaddressing syntax in which all addresses are relative routes, but has
- Xrecently been moving over to the domain address standard of the
- XInternet. The present problems concern nodes that has not yet done the
- Xtransition and those that
- X.I cannot
- Xchange, because their standard mailer software is unable to handle these
- Xnew format addresses. A typical example of the latter are the System V
- Xsystems. Berkeley systems have the freedom of
- X.I sendmail (8),
- Xwhich unfortunately not always turns out as a blessing. In a way, it is
- Xtoo easy to rewrite addresses using
- X.I sendmail ,
- Xbut too hard to control the transformations. This often leads to strange and
- Xincompatible formats that don't belong in either standard.
- X.PP
- XThis paper discusses the most common formats and functions electronic
- Xmail addresses have. It argues for more intelligent Mail Transport
- XAgents that are able to fully format addresses according to different
- Xformats and that does not unnecessarily complicate header addresses. In
- Xthe end, it moves over to describe the
- X.I
- XIDA Sendmail Enhancement Kit
- X.R
- Xand the work and rationale that lies behind it. The Kit is made up of
- Xtwo parts: First, the configuration file setup and the rewriting rules
- Xcontained in it. These implement a rewriting strategy based on always
- X.I completely
- Xresolving addresses instead of being content by looking at the immediate
- Xhost. The addresses are then fully transformed again according to the
- Xrespective mailer's and expected ultimate recipient's format. Second,
- Xwe describe a set of modifications to the
- X.I sendmail
- Xsource, giving it an extended functionality that in the opinion of this
- Xauthor should have been implemented long ago. Typical additions are:
- XDirect Access to Dbm(3) Files, Separate Envelope/Header Rewritings, and
- XMulti-Token Class Matches. The configuration file is heavily dependent
- Xof these modifications and will not function without them.
- X.PP
- XWe have also developed a way of handling mail to or from local users in
- Xa machine independent way by hiding their actual sender and recipient
- Xaddresses behind generic organization oriented addresses. This way, one
- Xmay have a fixed visible address which is dynamically associated with
- Xone or more physical mailboxes. Mails sent from any of a person's
- X.DQ "well known"
- Xaccounts will appear to come from his generic address. Similarly, mail
- Xto any of his generic address will be forwarded to his preferred
- Xmailbox(es). Note that the generic addresses as a group have no
- Xconnection to any particular machine. Instead, they are merely database
- Xentries on one or more nodes.
- X.NH
- XNAMES, ADDRESSES, AND ROUTES
- X.LP
- XLarry Kluger and John Shoch has in an excellent article
- X.[ [
- X%A Larry Kluger
- X%A John Shoch
- X%T Names, Addresses, and Routes
- X%J Unix Review
- X%V 4
- X%N 1
- X%D 1986
- X.]]
- Xdescribed the distinction between
- X.I names ,
- X.I addresses ,
- Xand
- X.I routes ,
- Xin short:
- X.QQ
- X.I
- XThe name of a resource refers to what we seek, an address indicates
- Xwhere the resource is, and a route tells us how to get there.
- X.LP
- XWhen dealing with electronic mail,
- X.I names
- Xare typically used in identifying three kinds of entities: (1) The
- Xmailbox associated with the sender (originator) and recipient of a
- Xmessage, (2) The name space (domain) in which the sender/recipient is
- Xknown, and (3) The computer system that houses a Mail Transfer Agent
- X(MTA) able of delivering or forwarding messages. Often, the two latter
- Xcoincide by associating the domain of a set of mailboxes with the actual
- Xmachine that implements them. Furthermore, an
- X.I address
- Xwould be the data structure used in directly connecting to another MTA
- Xover a computer network, such as a four-byte Internet number + TCP port
- Xnumber, or an ordinary telephone number. It may well happen that many
- Xnames map to the same address, or that the same name have more than one
- Xaddress. Lastly, a
- X.I route
- Xconsists of an ordered sequence of two or more MTA names or addresses,
- Xforming an explicit path that the message should take to reach its
- Xrecipient. Routes can be further divided into
- X.I "system routes,"
- Xwhere the MTA itself is the responsible of constructing a useful path
- Xand
- X.I "source routes,"
- Xwhere that responsibility lies on the person sending the message.
- X.PP
- XThe mapping from
- X.I names
- Xto
- X.I addresses
- Xis essentially beyond the scope of this paper, and will only briefly be
- Xmentioned in the following sections.
- XThus, we have taken the liberty of using the general meaning of the word
- X.I address
- Xto it denote both mailbox/domain name pairs as well as complete routes.
- XAlso, we are using the words
- X.I system ,
- X.I host ,
- Xand
- X.I node
- Xto all denote MTAs somewhere in a network. It is our hope that the
- Xreader should not be confused because of this.
- X.NH
- XMAIL ADDRESS FORMATS
- X.LP
- XThe absolute majority of today's mailing systems use addresses,\**
- X.FS
- XThat is, routes or mailbox/domain name pairs.
- X.FE
- Xrepresented by a simple string of characters. Some of these characters
- Ximplement operators that are used to divide the address into
- Xmailbox/domain/route parts when parsed by an MTA. Different
- Xoperators have different directions of associativity, making it
- Xincreasingly difficult to unambiguously parse addresses produced by
- Xcombining incompatible operators of different mail address syntaxes. It
- Xis hoped that at least some of these problems will be solved with the
- Xemergence of the structured attribute list addresses of
- X.UC X .400.
- XIn the mean time, we have a variety of different formats in use, each
- Xsubscribing to a different set of delimiting operators. It is not uncommon to
- Xsee addresses like:
- X.QQ
- Xmcvax!enea!liuida!obelix!p_e%seismo.css.gov@relay.cs.net
- X.LP
- Xor even
- X.QQ
- Xenea!seismo.\s-1CSS.GOV\s+1!!\s-1OZ.AI.MIT.EDU\s+1,!\s-1MC.LCS.MIT.EDU\s+1:ebg!\s-1REAGAN.AI.MIT.EDU\s+1
- X.LP
- Xturn up in message envelopes and headers. The last example comes from
- Xthe envelope sender address found on a message in which the
- X.UC RFC 822
- Xroute was incompletely translated into
- X.UUCP
- X.SQ ! -path
- Xsyntax. Now, before delving into a discussion about how these may be
- Xresolved or preferably avoided, let's take a look at what kind of
- Xaddressing formats currently exist.
- X.NH 2
- XRelative Addresses
- X.LP
- XThese types of addresses are by necessity all implemented as
- X.I routes .
- XIn purely relative addresses, all node names are relative to each other,
- Xmaking path optimization or system routing difficult, if not impossible.
- XFor the sender of a message, this means that addresses will look
- Xdifferent depending on his location in the network, forcing him to
- Xrecompute all addresses each time he changes his location. Even worse,
- Xin a rapidly growing network, it might even happen that an address
- Xbecomes invalid overnight because some link far away has been
- Xdisconnected or replaced by another. All this makes it difficult for a
- Xpresumptive user to continuously keep his addresses correct and up to
- Xdate.
- X.PP
- XRelative addresses have since long been in use within the
- X.UX
- Xcommunity, but a great deal of work has been done by an organization
- Xcalled
- X.I "The \s-1UUCP\s+1 Mapping Project"
- Xin eliminating duplicate host names, thus making it possible to use
- Xabsolute addresses\**
- X.FS
- XSee the following section.
- X.FE
- Xin a flat name space. It is presently moving towards utilizing full
- Xdomain names but is delayed by the fact that some systems, notably
- X.I "System V"
- Xsystems, cannot handle anything but
- X.UC UUCP
- Xsource routes with standard mailer software. The addressing syntax for
- X.UX
- X.UC UUCP
- X.SQ ! -paths
- Xis as follows:
- X.QQ
- Xnode!\|.\|.\|.\|!node!user
- X.LP
- XThe route sequence is read from the left to the right, with the ultimate
- Xrecipient on the rightmost end. Other systems that have similar
- Xaddressing formats are the Berknet and
- X.UC VAX/VMS
- Xmail systems, which use:
- X.QQ
- Xnode:\|.\|.\|.\|:node:user
- X.LP
- Xand
- X.QQ
- Xnode::\|.\|.\|.\|::node::user
- X.LP
- Xrespectively.
- X.UC RFC 822
- Xalso specifies a way of constructing explicit paths using the somewhat
- Xcomplicated syntax:
- X.QQ
- X<@node,@node,\|.\|.\|.\|:user@node>
- X.LP
- XHere, the message should be passed through each successive node from
- Xleft to right, ending up in the last user@node's mailbox. Note that the
- Xless than and greater than brackets are included in the syntax. Another
- Xwidely used but undocumented format is
- X.I
- XYe Olde
- X.UC ARPANET
- X.SQ % -Kludge:
- X.R
- X.QQ
- Xuser%node%\|.\|.\|.\|%node@node
- X.LP
- Xwhich is interpreted from the right to the left by delivering the
- Xmessage to the node after the atsign and then instantiating the
- Xrightmost percent sign into a new atsign, etc.
- X.NH 2
- XAbsolute Addresses
- X.QQ
- X.nf
- X.I
- XThe Tao that can be told of is not the Absolute Tao;
- XThe Names that can be given are not Absolute Names.\k:
- X
- XThe Nameless is the origin of Heaven and Earth;
- XThe Named is it the Mother of all Things.
- X.br
- X.R
- X\h'|\n:u-\w'[LaotseBC]'u'
- X.[[
- X%A Laotse
- X%T Tao Te Ching
- X%S Book 1, Verse 1
- X%D ca 500 BC
- X.]]
- X.br
- X.ad b
- X.LP
- XAbsolute addresses have the advantage of being universally unique and
- Xthus applicable by any MTA\**
- X.FS
- XAt least in theory\*-not all MTAs necessarily know about how to deliver
- Xto all addresses.
- X.FE
- Xindependently of where it is located. Since the names should be
- Xuniquely identified, some way of distributing them within their name
- Xspace needs to be accomplished. The simplest way of doing this is by
- Xregistering plain node names with some central name directory on a
- Xfirst-come-you-get-it service. The
- X.I "\s-1UUCP\s+1 Project"
- Xtried this to avoid duplicate
- X.UC UUCP
- Xnode names. However, maintaining such a directory and propagating its
- Xchanges easily becomes too heavy a burden to handle. Another strategy
- Xwas first adopted by the
- X.UC ARPA
- XInternet community, the hierarchical domain naming system described by
- X.UC RFC 882
- X\&
- X.[[
- X%A Paul Mockapetris
- X%T Domain Names\*-Concepts and Facilities
- X%S \s-1RFC\s+1\&882
- X%D 1983
- X.]],
- X.UC RFC 920
- X\&
- X.[[
- X%A Jon Postel
- X%A Joyce Reynolds
- X%T Domain Requirements
- X%S \s-1RFC\s+1\&920
- X%D 1984
- X.]]
- Xand others.
- X.PP
- XIn this system, a labelled tree is built with each node in the tree
- Xdenoting a specific domain. Some nodes correspond to actual hosts,
- Xtypically the leaves in the tree, while others simply map to some
- Xorganizational entity, like a group, department, or institution. The
- Xpurpose of the domain naming system is to distribute the naming
- Xauthority throughout the tree. Letting each domain have the
- Xresponsibility of naming the domains immediately beneath it guarantees
- Xthe uniqueness of all simple domain names relative to their parents.
- XThe full, qualified domain names are constructed by concatenating each
- Xlevel's simple domain name with a dot in between. For example, there
- Xmight exist a certain mail computer named
- X.UQ MC
- Xwithin the Laboratory of Computer Science of the Massachusetts Institute
- Xof Technology, an Educational organization. A possible domain name for
- Xthis computer would be:
- X.QQ -1
- XMC.LCS.MIT.EDU
- X.LP
- XThere might be many hosts named
- X.UQ MC,
- Xbut only one within the
- X.UQ LCS.MIT.EDU
- Xdomain. The same goes for the
- X.UQ LCS
- Xdomain within the
- X.UQ MIT.EDU
- Xdomain. The global uniqueness of each fully qualified domain is thus
- Xguaranteed by its parentage.
- X.PP
- XThe domain system is currently in use within the
- X.UC ARPA
- XInternet,
- X.UC CSNET,
- Xand is in progress within the
- X.UC UUCP
- Xworld. Under its anonymous root domain, it presently has six
- Xthree-letter organizational domains registered and a continuously
- Xincreasing number of national two-letter domains. The organizational
- Xdomains are mainly used within the U.S., and the national domains in
- XEurope and Asia. There are also a set of
- X.I "de facto"
- Xnetwork based domains in use, although not officially registered. These
- Xare really mock domains used to incorporate hosts on physical networks
- Xthat cannot or do not want to handle domain addresses. Examples of
- Xthese are
- X.UC BITNET
- Xand still most of the
- X.UC UUCP
- Xworld. Appendix D lists all domains currently registered with the SRI
- XNetwork Information Center together with a set of otherwise frequently
- Xrecognized network based domains.
- X.NH 2
- XAttribute Addresses
- X.LP
- XWith the
- X.UC CCITT \**
- X.FS
- X.I
- XComite\*' Consultatif International Te\*'le\*'phonique et
- XTe\*'le\*'graphique,
- X.R
- Xi.e. the International Telegraph and Telephone Consultive Committee
- X.FE
- X.UC X .400
- X\&
- X.[[
- X%A Malaga-Torremolinos
- X%T Message Handling Systems: System Model\\*-Service Elements
- X%S \s-1X\s+1.400
- X%D 1984
- X.]]
- Xseries standard for electronic mail in emergence, a new kind of
- Xaddressing system is being proposed. In this format, recipients are
- Xuniquely identified using a list of attribute-value pairs. Some of
- Xthese, like the Organization and Country attributes, are obligatory
- Xwhile others may be supplied only if known by the sender. The idea is
- Xthat the base attributes should be able to guide the message to a
- Xrelevant directory server, while the others then are used to select the
- Xactual recipient. Attribute sets that select no or more than one
- Xrecipient will probably be considered erroneous, but could be used in
- Xselecting multiple recipients.
- X.PP
- XIt will yet take several years before the attribute addressing scheme
- Xhas come to widespread use. It will, however, surely come\*-if nothing
- Xelse, then because it has the force of the united PTTs behind it.
- XAlready, there exists guidelines for mapping between
- X.UC RFC 822
- Xbased addresses and
- X.UC X .400,
- Xsuch as
- X.UC RFC 987
- X\&
- X.[[
- X%A Steven Kille
- X%S \s-1RFC\s+1\&987
- X%T Mapping Between \s-1X\s+1.400 and \s-1RFC\s+1\&822
- X%D 1986
- X.]].
- X.NH 2
- XHybrid Addresses
- X.LP
- XWith all this in mind, let's take a look at how different formats
- Xsometimes are combined and how we can resolve them. The three major
- Xaddressing formats for routing messages are:
- X.TS
- Xl lw(2i) l.
- X[1] T{
- XThe
- X.UC UUCP
- X.SQ ! -path
- XT} <\fInode\*<1\*>\fP!\fInode\*<2\*>\fP!\fInode\*<3\*>\fP!\fIuser\fP>
- X[2] T{
- XYe Olde
- X.UC ARPANET
- X.SQ % -Kludge
- XT} <\fIuser\fP%\fInode\*<3\*>\fP%\fInode\*<2\*>\fP@\fInode\*<1\*>\fP>
- X[3] T{
- XThe
- X.UC RFC 822
- Xroute syntax
- XT} <@\fInode\*<1\*>\fP,@\fInode\*<2\*>\fP:\fIuser\fP@\fInode\*<3\*>\fP>
- X.TE
- X.LP
- Xwhere the latter mostly is used for envelope senders.
- X.PP
- XCombinations of the above usually appear in messages crossing one or
- Xmore network boundaries with different addressing formats. Since each
- Xof these formats were independently developed, it may not be obvious how
- Xthey should be interpreted when combined. Still, by reasoning a little,
- Xmuch can be inferred from how they incrementally are constructed.
- X.PP
- XStarting with the Domainist's approach to the matter, we have to give
- X.SQ @
- Xprecedence over
- X.SQ !
- Xsince this is implied by
- X.UC RFC 822.
- XThis means that addresses like:
- X.QQ
- Xnode\*<2\*>!node\*<1\*>!user@domain
- X.LP
- Xwill be interpreted as:
- X.QQ
- Xdomain \(-> node\*<2\*> \(-> node\*<1\*> \(-> user
- X.LP
- XNow, since
- X.SQ %
- Xis often the
- X.I "de facto"
- Xstandard routing operator on top of
- X.SQ @ ,
- Xan address like:
- X.QQ
- Xhost!user@domain
- X.LP
- Xthat is autorouted through
- X.I relay
- Xwill probably end up looking as:
- X.QQ
- Xhost!user%domain@relay
- X.LP
- Xmeaning:
- X.QQ
- Xrelay \(-> domain \(-> host \(-> user
- X.LP
- XThis forces us to give
- X.SQ %
- Xpriority over
- X.SQ ! .
- XHowever, a
- X.SQ ! -path
- Xaddress ending with a
- X.DQ user%node,
- Xcannot be a domain address (no
- X.SQ @ )
- Xand should therefore be interpreted using
- X.UC UUCP
- Xsemantics by prioritizing
- X.SQ !
- Xover
- X.SQ % .
- XThus,
- X.QQ
- Xnode\*<1\*>!node\*<2\*>!user%domain
- X.LP
- Xshould be read as:
- X.QQ
- Xnode\*<1\*> \(-> node\*<2\*> \(-> domain \(-> user
- X.LP
- XMixtures with
- X.UC RFC 822
- Xroutes may look hard to read, but are actually easy to parse. A fairly complicated address like:
- X.QQ
- Xnode\*<1\*>!node\*<2\*>!@domain\*<1\*>,@domain\*<2\*>:host!user%relay@domain\*<3\*>
- X.LP
- Xhas to be interpreted as:
- X.QQ
- Xnode\*<1\*> \(-> node\*<2\*> \(-> domain\*<1\*> \(-> domain\*<2\*> \(-> domain\*<3\*> \(-> relay \(-> host \(-> user
- X.LP
- Xsince
- X.UC RFC 822
- Xlike
- X.SQ ! -paths
- Xassociate left-to-right, and since the last
- X.DQ localpart@domain
- Xcan be unambiguously found after the colon.
- X.PP
- XNow, not all of us are Domainists. Many nodes can and will only be able
- Xto interpret
- X.UC UUCP
- X.SQ ! -paths,
- Xwhich leads to complications with mixed
- X.SQ ! -
- Xand
- X.SQ @ -style
- Xaddresses. The only workable solution to this is to try and avoid such
- Xmixtures altogether. The easiest way of doing this is to write them as
- X.SQ ! -
- Xand
- X.SQ % -style
- Xcombinations, but even better would be to wrap them wholly around to the
- X.SQ ! -path
- Xformat. They should then turned back into
- X.SQ %
- Xand
- X.SQ @
- Xcombinations when breaking the Domain Land boundary.
- X.NH
- XA SHORT ANATOMY OF THE ELECTRONIC MESSAGE
- X.LP
- XIn analogy to the written letter, there are two major parts of a
- Xmessage: The envelope and the contents. The envelope is there
- Xspecifically for the MTAs to handle and contains the sender address
- Xtogether with the message's actual recipients. The contents are usually
- Xfurther subdivided into the header lines and the actual body, where only
- Xthe latter is under the sender's full control. The headers are used by
- Xthe MTAs and MUAs\**
- X.FS
- XMail User Agent, the program that the user directly interacts with when
- Xreading or composing messages.
- X.FE
- Xto store various information of interest to the recipient, such as
- Xsender, all official recipients, posting date, etc. Although the body
- Xusually is left uninterpreted, some mail systems put constraints by
- Xlimiting the length of each line or the whole message, or by only
- Xallowing printable
- X.UC ASCII
- Xcharacters.
- X.NH 2
- XThe Envelope
- X.LP
- XThe envelope contains the physical message's actual recipients, which
- Xvery well may be different from those in the headers. Typically, a
- Xmessage sent to more than one recipient will be split into
- X.I n
- Xcopies, one for each network. These messages will have the original's
- Xall recipients listed in their header lines, but each copy's envelope
- Xshould only have those being delivered over the network in question.
- XThere is usually also the option of
- X.I "Blank Carbon Copy"
- Xrecipients, which per definition never shall show up in the headers.
- X.PP
- XThe envelope will also contain the explicit path back to the sender for
- Xerror messages and tracing purposes. This path should formed by having
- Xeach node that forwards the message incrementally add its name to the
- Xroute, thus avoiding routing problems that otherwise may appear. The
- Xresult of each rewriting should be a full route in a suitable format
- Xleading from the current node back to the originator.
- X.PP
- XIf the envelope recipient(s) are routes, they are handled in an
- Xanalogous manner to the senders by removing the local node's name from
- Xeach address before propagating it further. Optionally, the address can
- Xbe made fully relative to the immediate receiving node by removing its
- Xname from the route as well. This should be determined on a mailer
- Xdependent basis. The MTA has the full freedom of at any point turning a
- Xsimple envelope recipient address into a route if it sees reason to do
- Xso. This could be done on the grounds that the immediate recipient node
- Xcannot perform automatic routing. It should, however, be avoided if
- Xpossible since it is hard to keep routing tables fully updated with
- Xtopological changes in distant parts of the network. Turning envelope
- Xroutes into simple addresses should also be avoided since there usually
- Xexists a good reason for a route to be there.
- X.NH 2
- XThe Headers
- X.LP
- XHeader addresses are not normally used by the MTA. Exceptions may be
- Xwhen headers such as
- X.DQ "Return-Receipt-To:"
- Xexists and the MTA is doing the final delivery or when the delivery of a
- Xmessage fails and there exists a
- X.DQ Errors-To:
- Xheader.\**
- X.FS
- XThese are
- X.I sendmail
- Xspecific; other MTAs may have other exceptions.
- X.FE
- XThe MTA is also allowed to rewrite, or
- X.DQ munge,
- Xheader addresses when a message is forwarded from one network to
- Xanother. This is done by first removing the addressing idiosyncrasies
- Xof the transmitting network to obtain some internal canonical format and
- Xthen applying the receiving network's idiosyncrasies to produce a
- Xconforming address
- X.[ [
- X%A Marshall Rose
- X%T Proposed Standard for Message Header Munging
- X%S \s-1RFC\s+1\&886
- X%D 1983
- X.]].
- XOf course, this should be done to both envelope and header addresses.
- X.PP
- XEven within one world, like the
- X.UC UUCP
- Xpseudo-network, it may be necessary to
- X.DQ munge
- Xaddresses for them to be understandable by the recipient system. For
- Xinstance, many mail systems does not recognize all domains or perhaps
- Xcannot even handle anything but pure and fully routed
- X.UC UUCP
- X.SQ ! -paths.
- XIf the transmitting MTA does not take this into consideration, the user
- Xsending the message has to submit full source routes with each receiving
- Xnetwork's addressing syntax embedded. Except in the most simple cases,
- Xthis task requires great knowledge\**
- X.FS
- XThat is, a case for a
- X.I guru !
- X.FE
- Xabout how networks are interconnected, much more than can be considered
- Xreasonable by any casual or even experienced user.
- X.PP
- X.I
- XIn our opinion, this is currently the greatest obstacle in making
- Xelectronic mail usable.
- X.R
- XOn from bad to worse, these user supplied source routes that are fully
- Xcontained in the headers often get rewritten into further complicated
- Xroutes. When such a message is received by its recipient, its header
- Xaddresses may very well be too unintelligible to be understandable by a
- Xhuman being, much less by a machine. In the best case, they will just
- Xhave routes with incorrect points of reference, forcing
- X.DQ reply
- Xmessages to the other recipients to first be (automatically) routed to
- Xthe first node of the path before it can start on the actual route.
- XThen often in the opposite direction, leading half way back again.
- X.NH
- XADDRESS REWRITING STRATEGIES
- X.LP
- XNow, given the freedom and flexibility of
- X.I sendmail ,
- Xour project's task has been to construct a configuration file that, with
- Xthe necessary enhancements to the
- X.I sendmail
- Xsource, will completely resolve and canonicalize all envelope and header
- Xaddresses to an internal format. All unqualified addresses are then
- Xofficialized using the
- X.UC TCP/IP
- Xname server function and a local
- X.I dbm (3)
- Xbased domain name table, and a route is found using a direct interface
- Xto a
- X.I pathalias (1)
- Xrouting file.
- XFinally, using a static
- X.I dbm (3)
- Xmailer table together again with the
- X.UC TCP/IP
- Xname server function, the message is dispatched to the appripriate
- Xmailer which fully rewrites the addresses according to its own
- Xidiosyncrasies.
- X.NH 2
- XSneak-In Preview
- X.LP
- XTo give a taste of how the complete system performs with a realistic
- Xcase, consider at the following only partly imaginary example:
- X.QQ
- X.nf
- X.ne 2.1
- X.B Envelope:
- X Sender: enea!seismo!relay.cs.net!cate%busch%pany.com
- X Recipient: obelix!p_e
- X.ne 2.1
- X.B Headers:
- X From: enea!relay.cs.net!cate%busch%pany.com
- X To: mcvax!enea!liuida!obelix!p_e%seismo.css.gov@relay.cs.net
- X cc: ree.pete%fidelio.uu.se%seismo.css.gov@relay.cs.net
- X.fi
- X.LP
- XA user
- X.I cate
- Xon the Company Inc's local host
- X.I busch
- Xhas sent a message to two Swedish recipients:
- X.I p_e
- Xon the
- X.UC UUCP
- Xhost
- X.I obelix
- Xin Linko\*:ping and to
- X.I ree.pete
- Xon the Uppsala node
- X.I fidelio.uu.se.
- XIf the headers would be left untouched, a reply from
- X.I p_e
- Xto both
- X.I cate
- Xand
- X.I ree.pete
- Xwould force
- X.I ree.pete 's
- Xcopy to go all the way back to
- X.I relay.cs.net
- Xbefore it could return to Sweden and Uppsala. Clearly, this is a waste of
- Xboth resources and time when there might (and does) exist a much shorter
- Xpath within the country. With The Kit's rewriting heuristics, the same
- Xheader lines will look like the following when leaving the local node:
- X.QQ
- X.nf
- X.ne 2.1
- X.B Envelope:
- X Sender: @majestix.liu.se,@enea.se,@seismo:cate%busch%pany.com@relay.cs.net
- X Recipient: p_e%obelix.liu.se@asterix.liu.se
- X.ne 2.1
- X.B Headers:
- X From: cate%busch@pany.com
- X To: p_e@obelix.\s-1UUCP\s+1
- X cc: ree.pete@fidelio.uu.se
- X.fi
- X.LP
- XHere, our local node's name has been added to the envelope sender path,
- Xwhich also has been transformed into a
- X.UC RFC 822
- Xroute\**.
- X.FS
- XSave for the
- X.SQ <
- Xand
- X.SQ >
- Xbrackets.
- X.FE
- XOther options would be to have it as a
- X.SQ ! -path
- Xor
- X.SQ % -path.
- XThe envelope recipient has been routed via
- X.I asterix.liu.se,
- Xand changed into a
- X.SQ % -path,
- Xon the basis that the message is forwarded over a
- X.UC TCP/IP
- Xconnection and this is the preferred route format for most such systems.
- X.PP
- XAlso, the route has been removed from the header
- X.DQ From:
- Xline, leaving the first universally qualified node there together with a
- X.SQ % -path
- Xfrom that point to the recipient. The
- X.DQ To:
- Xline has undergone even more drastic changes. First, the route to
- X.I seismo.css.gov
- Xwas removed since this is the first universally qualified node. Then
- Xa table of well-known
- X.UC UUCP
- Xrelays was consulted to further compress the path.
- X.I Mcvax ,
- X.I enea ,
- Xand
- X.I liuida
- Xwere all members of that list. This gave
- X.DQ obelix!p_e
- Xas a result, which then was turned into the domain form
- X.DQ p_e@obelix.\s-1UUCP\s+1.
- XIn the last line,
- X.DQ ree.pete@fidelio.uu.se
- Xsimply had its path removed since
- X.UC \fISE\fP
- Xis a registered top domain.
- X.NH 2
- XThe Configuration File
- X.LP
- XThe IDA Sendmail Master Configuration File should be sent through the
- X.I m4 (1)
- Xmacro processor to produce an actual configuration file.
- XSeveral
- X.I m4
- Xidentifiers are used to customize the file; each of them is described in
- X.I "Appendix C: Customization Parameters" .
- XUnlike the Berkeley version, it was not designed as a set of
- X.I m4
- Xfragments that
- X.DQ sources
- Xeach other to form a full configuration, but rather as a single master
- Xconfiguration file which holds a
- X.I bank
- Xof all possible mailers and corresponding rewriting rulesets. The
- Xinstance's actually available mailers are enabled by giving values to
- Xtheir corresponding
- X.I m4
- Xidentifiers. The current version include mailer definitions for a
- X.UC TCP/IP
- Xmailer, three kinds of
- X.UC UUCP
- Xmailers depending on the remote node's address handling capabilities, a
- Xmock
- X.UC DEC net
- Xmailer, as well as the
- X.UC LOCAL
- Xand
- X.UC PROG
- Xmailers. Their design has been kept as clean as possible to make the
- Xconstruction of e.g.
- X.UC BITNET
- Xor
- X.UC CSNET
- Xmailers using these as templates straight-forward.
- X.PP
- XThe rewriting rules of the Kit's configuration file are
- Xexplicitly oriented towards the domain naming syntax. They will resolve
- Xall input addresses to an internal domain based format and then rewrite
- Xthem according to the selected mailer's preferences. Internally,
- Xall addresses have the same
- X.QQ
- Xuser@.domain
- X.LP
- Xformat. Note the dot after the atsign; it is there to make it easier
- Xto rewrite the address. Also note
- Xthat this differs substantially from the Berkeley
- X.DQ "whatever<@host>whatever"
- Xformat. For historical reasons, both the
- X.UC RFC 822
- Xroute syntax and
- X.I
- XYe Olde
- X.UC ARPANET
- X.SQ % -Kludge
- X.R
- Xare used internally to represent routes when only one of them should be
- Xsufficient.
- X.NH 2
- XCanonicalizing the Address
- X.LP
- XRuleset 3 canonicalizes all addresses, making them conform to our
- Xinternal format. After the canonicalization, the
- X.DQ user
- Xpart may end up containing a route in either standard
- X.UC RFC 822
- Xformat or using the
- X.SQ % -path
- Xformat.
- X.SQ ! -,
- X.SQ : -,
- Xand
- X.SQ :: -style
- Xpaths are rewritten into
- X.UC RFC 822
- Xroutes. Reasonable mixtures of route formats are resolved
- Xusing the strategies described in the section about
- X.I "Hybrid Addresses" .
- XAs an option, the (untested)
- X.UC UUCPPRECEDENCE
- Xswitch may be turned on in the configuration master file. This will
- Xenable some simple heuristics that will decide between domain style and
- X.UC UUCP
- X.SQ ! -path
- Xprioritized unpacking depending on whether the
- X.I domain
- Xis qualified or not. In any case, ruleset 3 will make sure that the
- X.I domain
- Xpart of all
- X.DQ user@.domain
- Xaddresses are mapped to their full, official domain names whenever
- Xpossible using both the
- X.UC TCP/IP
- Xname server and a dbm domaintable. It also goes through some effort to
- Xrepair malformed addresses, but much of this is probably too site
- Xspecific to be generally useful.
- X.PP
- XSince
- X.SQ ! -paths
- Xare internally represented as
- X.UC RFC 822
- Xroutes, you should not be surprised when you see an address like:
- X.QQ
- Xfoo!bar!baz!user
- X.LP
- Xfirst be transformed into:
- X.QQ
- X@foo.\s-1UUCP\s+1,@bar:user@baz
- X.LP
- Xand then to:
- X.QQ
- Xbar:user@baz@.foo.\s-1UUCP\s+1
- X.LP
- XThe
- X.UC UUCP
- Xdomain of
- X.I foo
- Xhas been inferred from the
- X.SQ ! -style
- Xsyntax. If
- X.I foo
- Xhad been known by the domaintable to have specific domain name, that had
- Xbeen used instead. Nothing can be inferred about the nodes
- X.I bar
- Xand
- X.I baz ,
- Xsince we they may be local to
- X.I foo .
- XNow, since the pure
- X.UC RFC 822
- Xroute doesn't conform to our internal format, i.e. it does not have a
- X.DQ user
- Xpart followed by an atsign-dot and a
- X.DQ domain,
- Xwe had to rearrange it a little. The closest node of the route was thus
- Xextracted and added the right side of the rest of the route together
- Xwith the atsign-dot. It may not be very pretty to look at, but it is
- Xeasier to handle this way.
- X.PP
- XNote that there is a risk of confusing
- X.UC UUCP
- Xnode names with local hosts using the domaintable lookup. For example,
- Xif you had a local node
- X.I linus
- Xwith a full domain name of
- X.I linus.liu.se
- Xand received an address like
- X.DQ linus!user,
- Xthis would be interpreted as the local
- X.I linus
- Xand rewritten into
- X.DQ user@linus.liu.se.
- XThis is probably right for envelope recipients, but not so surely in
- Xheader lines. You can define
- X.UC BANGIMPLIESUUCP
- Xif you want to disable the domaintable qualification.
- X.NH 2
- XFinding Route and Mailer
- X.QQ
- X.I
- X.in +\n(QIu
- X.ti -\n(QIu
- X\*QWould you tell me, please, which way I ought to go from here?\*U
- X.br
- X.ti -\n(QIu
- X\*QThat depends a good deal on where you want to get to,\*U said the Cat.
- X.br
- X.in -\n(QIu
- X.R
- X.ad r
- X\&
- X.[[
- X%A Lewis Carrol
- X%T Alice in Wonderland
- X%D 1896
- X.]]
- X.br
- X.ad b
- X.LP
- XBefore ruleset 0 tries to find an applicable mailer, it digests all
- Xroutes through the local host by stripping off its own name and sending
- Xthe address through ruleset 3 again. It then has four strategies of
- Xfinding a suitable mailer for the address:
- X.II 1
- XTry to find a mailer that will connect to the immediate host in the
- Xaddress.
- X.II
- XTry to find a route to the address' domain using a
- X.I dbm (3)
- Xrouting table and a mailer that will connect to the route's closest
- Xnode.
- X.II
- XUse the firm-wired
- X.UC RELAY_MAILER
- Xand
- X.UC RELAY_HOST
- Xpairs to automatically forward the message.
- X.II
- XGive up; send the address to the
- X.UC ERROR
- Xmailer.
- X.LP
- XThe code that determines if a mailer directly can deliver to a certain
- Xdomain is found in ruleset 26.\**
- X.FS
- XYes, I too wish that named rulesets would be available in
- X.I sendmail .
- XPerhaps somebody should convert this configuration file into
- X.I ease .
- X.FE
- XIt does this on a per mailer bases with the following order of priority:
- X.IP \s-1LOCAL\s+1 10
- XIf the supplied domain is any of local host's names (member of the
- X.B $w
- Xclass), or if the complete address is found in the
- X.I aliases (5)
- Xfile, the message is delivered locally. The latter type of local
- Xdelivery will cause the address to be expanded to the RHS of the alias
- Xentry and the complete process to recurse.
- X.IP \\\\k:\\fISpecial\\fP\\\\h'|\\\\n:u'\\\\v'+1'\\fIMailers\\fP\\\\v'-1'
- XIn order to override the standard mailer selection, a
- Xspecial dbm
- X.I mailertable
- Xmay be used to force addresses to be delivered using specific mailers.
- XIf the address' domain is found in the
- X.I mailertable ,
- Xthe associated mailer will be used. The mailer table should map
- Xofficial domain names to
- X.DQ mailer:host
- Xpairs, with a colon between the mailer and the host.
- X.IP \s-1TCP/IP\s+1
- XWith the new
- X.I default
- Xargument of the
- X.UC TCP/IP
- Xnameserver lookup function, it is possible to determine if an address
- Xcan be delivered using this protocol family without relying on static
- Xhost tables. If the address' domain is known to the
- X.UC TCP/IP
- Xnameserver, it is returned together with its canonicalized host name.
- X.IP \s-1DEC\s+1net
- XThe
- X.UC DEC net
- Xmailer does not share the network based nameserver facilities of the
- X.UC TCP/IP
- Xmailer, and thus has to rely on a host table. This is done with a
- Xtwo-phase operation\*-first the domain is mapped to a
- X.UC DEC net
- Xname, if known, then
- Xthe the
- X.UC DEC net
- Xhost name is checked in the list of connectable
- X.UC DEC net
- Xhosts before it is returned. This is because some
- X.UC DEC net
- Xnodes cannot talk across area boundaries, forcing recipient addresses to
- Xbe explicitly routed over an intermediary host.
- X.I Note:
- XThe supplied
- X.UC DEC net
- Xmailer uses a
- X.UC TCP/IP
- Xconnection to a
- X.UC DEC system-20
- Xacting as gateway. A real implementation should remove the immediate
- Xnode from routes before returning them, but we cannot do this.
- X.IP \s-1UUCP\s+1
- XThe
- X.UC UUCP
- Xmailer is also determined with a two-phase operation\*-first the domains
- Xis mapped through the
- X.UC UUCP
- Xtranslation table, returning the
- X.UC UUCP
- Xnode name, if known. The
- X.UC UUCP
- Xmailer will then be selected only if the
- X.UC UUCP
- Xname is known to be directly connectable by us (normally determined
- Xusing the /usr/lib/uucp/L.sys file). All nodes found this way will be
- Xsent to through the
- X.DQ dumb
- X.UC UUCP
- Xmailer. Delivery using either the
- X.UC UUCP-A
- Xor the
- X.UC UUCP-B
- Xmailer has to be determined using the special mailertable previously
- Xmentioned.
- X.LP
- XIf an address needs to be routed, i.e. if the first pass through ruleset
- X26 fails, it is given to ruleset 22 where its domain is looked up in a
- X.I pathalias (1)
- Xtype routing table. Routes to explicit domain/host names are preferred
- Xover general (parent) domain routes. Before the new address is
- Xreturned, it is sent through the canonicalization routines of ruleset 3.
- XThis makes specific
- X.I pathalias
- Xroute syntax effectively ineffective. The normal way would be not to
- Xspecify any special routing syntax at all to
- X.I pathalias ,
- Xbut to invariably let it produce
- X.SQ ! -paths.
- X.NH 2
- XExternalizing the Address
- X.LP
- XAfter a mailer has been chosen, addresses are rewritten using rulesets 1
- Xand 2 for envelope senders/recipients and rulesets 5 and 6 for header
- Xsenders/recipients. Envelope senders are left untouched by this
- Xprocess, but envelope recipients will have
- X.UC RFC 822
- Xroutes turned into
- X.SQ % -paths.
- XHeader
- X.UC RFC 822
- Xroutes will also be turned into
- X.SQ % -paths
- Xand then gently compressed by having paths to fully qualified domains
- Xand
- X.UC UUCP
- Xrelay-to-relay paths removed.
- XHeader senders will furthermore have their host names hidden by
- X.UC HIDDENNAME,
- Xif defined, and their addresses filtered through the
- X.UC GENERICFROM
- Xtable, if available.
- X.PP
- XWhen this is done, the mailer specific rewriting phase starts. The
- X.UC LOCAL
- Xand
- X.UC PROG
- Xmailers does not do any further rewriting as supplied, but could be
- Xconvinced to produce
- X.SQ ! -paths
- Xfor
- X.UC UUCP
- Xroutes if preferred [using ruleset 15 or a variant thereof].
- X.PP
- XThe
- X.UC TCP/IP
- Xand
- X.UC DEC net
- Xmailers will add a call to ruleset 24 for all envelope recipients. This
- Xwill turn domains corresponding to
- X.UC DEC net
- Xnodes into flatspaced
- X.UC DEC net
- Xhost names, since domains are not supported there. This should really
- Xnot be done in the
- X.UC TCP/IP
- Xmailer, but all our
- X.UC DEC net
- Xtraffic is presently routed over a
- X.UC TCP/IP
- Xlink. Since no special rewriting is done for envelope senders, this
- Xmeans that they normally will appear in
- X.UC RFC 822
- Xroute format using these as well as any of the previous mailers.
- X.PP
- XThere are three variants of the
- X.UC UUCP
- Xmailer depending on the remote node's address handling capabilities.
- XThe
- X.DQ dumb
- Xversion, simply called
- X.UC UUCP ,
- Xcorresponds closely to the class 1 mailer of
- X.UC RFC 976
- X\&
- X.[[
- X%A Mark Horton
- X%T \s-1UUCP\s+1 Mail Interchange Format Standard
- X%S \s-1RFC\s+1\&976
- X%D 1986
- X.]].
- XIt will rewrite all addresses into
- X.SQ ! -format,
- Xand makes all header addresses
- X.SQ ! -relative
- Xthe recipient node, routed through the transmitting node if
- Xnecessary.\**
- X.FS
- XSee the new
- X.UC M_RELATIVIZE
- Xmailer flag in the following section.
- X.FE
- XThe
- X.UC UUCP-A
- Xis closer to the
- X.UC RFC 976
- Xclasses 2 and 3 mailers in that it will let all header addresses stay in
- X.SQ @ -format,
- Xbut change envelope addresses to
- X.SQ ! -paths
- Xwhenever applicable. The
- X.UC UUCP-B
- Xmailer, finally, functions as the
- X.UC UUCP-A
- Xmailer but will in addition supply envelope senders in
- X.UC RFC 822
- Xroute format and transmit the message to a
- X.I bsmtp
- Xprogram on the remote node.
- X.PP
- XRuleset 4 will as usual make the address truly external. In our case,
- Xthis means by removing the dot after the atsign and by moving the
- Ximmediate domain to the head of
- X.UC RFC 822
- Xroutes.
- END_OF_ida/doc/part1.ms
- if test 40946 -ne `wc -c <ida/doc/part1.ms`; then
- echo shar: \"ida/doc/part1.ms\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- echo shar: End of archive 6 \(of 8\).
- cp /dev/null ark6isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 8 archives.
- echo "See ida/README and ida/INSTALL for further directions."
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
-