Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site peora.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!houxm!hjuxa!petsd!peora!jer From: jer@peora.UUCP (J. Eric Roskos) Newsgroups: net.mail Subject: Re: Pathalias/uumail: some algorithms and questions Message-ID: <1958@peora.UUCP> Date: Thu, 6-Feb-86 09:00:10 EST Article-I.D.: peora.1958 Posted: Thu Feb 6 09:00:10 1986 Date-Received: Fri, 7-Feb-86 21:40:11 EST References: <122@delftcc.UUCP> <1954@peora.UUCP> Organization: Concurrent Computer Corporation, Orlando, Fl Lines: 83 This is a continuation of my posting explaining the rationale behind "opath"'s route-generating scheme, <1954@peora>. Underlying the approach used are a number of principles which are not documented in the program or manual pages. I have explained them in the past here, usually as they evolved, but not in summary. The first is the design decision that there should be a distinct "routing language" separate from the RFC822 language. The term "language" here should be interpreted as the definition accepted in formal language theory, not as some loose, generic term. The language for RFC822-compliant addresses is well-defined in RFC822. That is a superset the language recognized by the routine opath(), since opath only recognizes the from RFC822. The language for the "UUCP routing language" is recognized by the routine oupath(), and has the syntax ::= ! | consists of all strings of at most some finite length l from the 96-character printable ASCII set, except strings that contain "!" anywhere in the string. consists of all strings from the 96-character printable ASCII set. The value of "l" is defined in opath.c, but I increased the value subsequent to posting the source because someone (I think Chris Torek) pointed out that some site names in the UK were longer than the value of "l" I had specified. That is a sort of practical problem, the kind of thing standards are good for; the only thing limiting l is the fact that it takes a lot of space to store long strings. The interpretation of is a semantic issue that is particular to the site interpreting it. In other words, a given mail site may be of one of the three semantic classes Mark Horton has previously specified, reflecting the "smartness" of the mailer. It would be somewhat desirable if all sites interpreted the same way, but they don't have to-- all that is required is that not contain a "!". Now, actually there is a "loophole" involved in the language that eliminates even this requirement. In our use of the routing language, tells where to send the message to, giving that site the part of the routing string (having removed the and the "!"); and it's not necessary that that site accept the same language we have used. This is why, for example, peora can take an address like ...!pesnta!peora!csnet-gw!y!z@slowvax.csnet and correctly transmit it to csnet-gw (where csnet-gw is a neighbor of ours who happens to run Sendmail and be a CSnet site), and have that site give @-precedence to the part, with the result that the message is delivered via the path we would express as csnet-gw!slowvax.csnet!y!z It could, for example, be the case that csnet-gw is really a different mail system at peora, instead of a neighbor of ours. So this simple language also lets you express some constructs that are a little more complex than it seems, at first, you are allowed to express -- because the language does not provide a way for you to interpret at all, and so you can't get confused by it yourself, but can pass it to some other mailer that recognizes as a whole different language, and does something different with it. This does, however, have its limitations, and that is why it would be best if all sites recognized the same language. That is also why the "imbedded domain" constructs like ...!peora!slowvax.csnet!samsvax.arpa!sam are needed. However, a fundamental principle in the design of this simple language *is* its simplicity -- it involves the idea of not adding any feature that you haven't found you actually need (which, if I were expounding upon Unix, I would say is the fundamental difference between the BSD Unix and System V) -- and thus the language at first may seem "too simple". [Now it's time for another meeting, so I'll have to explain some more of the rationale some other time.] -- UUCP: Ofc: jer@peora.UUCP Home: jer@jerpc.CCUR.UUCP CCUR DNS: peora, pesnta US Mail: MS 795; CONCURRENT Computer Corp. SDC; (A Perkin-Elmer Company) 2486 Sand Lake Road, Orlando, FL 32809-7642 xxxxx4xxx "There are other places that are also the world's end ... But this is the nearest ... here and in England." -TSE