sources-request@mirror.UUCP (02/18/87)
Submitted by: Larry Auton <lda@clyde.att.com> Mod.sources: Volume 8, Issue 67 Archive-name: smail2/Part01 #! /bin/sh # This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # If all goes well, you will see the message "End of shell archive." # Contents: doc src doc/Contacts doc/Domains doc/Flow.Diagram # doc/Install doc/Read.Me doc/Registry doc/Trouble doc/aliases.8 # doc/lcasep.8 doc/pathproc.8 src/Makefile # Wrapped by rs@mirror on Mon Feb 9 17:09:55 1987 PATH=/bin:/usr/bin:/usr/ucb; export PATH if test ! -d 'doc' ; then echo shar: creating directory "'doc'" mkdir 'doc' fi if test ! -d 'src' ; then echo shar: creating directory "'src'" mkdir 'src' fi echo shar: extracting "'doc/Contacts'" '(713 characters)' if test -f 'doc/Contacts' ; then echo shar: will not over-write existing file "'doc/Contacts'" else sed 's/^X//' >doc/Contacts <<'@//E*O*F doc/Contacts//' X Contact Information X XWe strongly encourage electronic mail for queries, updates, and Xapplications. This cuts down on our costs, and we can pass those Xsavings along to you. We currently do not have a telephone number Xfor queries, although we hope to have one in the near future. If Xyou are unable to send and receive electronic mail, you will have Xto wait until we are prepared for telephone calls or postal mail. X XFor queries: uucp-query@Stargate.COM cbosgd!stargate!uucp-query X XFor updates: uucpmap@Stargate.COM cbosgd!stargate!uucpmap X XFor problems: uucp-problem@Stargate.COM cbosgd!stargate!uucp-problem X XTo register: registry@Stargate.COM cbosgd!stargate!registry X# X#@(#)Contacts 2.1 smail 12/14/86 X# @//E*O*F doc/Contacts// if test 713 -ne "`wc -c <'doc/Contacts'`"; then echo shar: error transmitting "'doc/Contacts'" '(should have been 713 characters)' fi fi # end of overwriting check echo shar: extracting "'doc/Domains'" '(8824 characters)' if test -f 'doc/Domains' ; then echo shar: will not over-write existing file "'doc/Domains'" else sed 's/^X//' >doc/Domains <<'@//E*O*F doc/Domains//' X WHAT YOU NEED TO KNOW ABOUT PATHALIAS X AND WHAT PATHALIAS NEEDS TO KNOW ABOUT YOU X or X HOW PATHALIAS MAKES DOMAINS X X Christopher Seiwald X XThis note describes the host connectivity data and domain data Xneeded to effect UUCP domain-style address routing. This Xdescribes mostly the domain data, but also discusses how to Xdistribute connectivity data. Look elsewhere for a discussion of Xdomains. X XBriefly, the connectivity data (what's in mod.map) connects Xall hosts in the UUCP network into one big directed graph, and Xthe domain data superimposes a domain tree onto that graph. XPathalias converts these two sets of data into a routing database Xwhich smail/rmail, a UUCP mail routing program, uses. X X1. Domains and Gateways for UUCP X XFor domains in the UUCP zone, the top of a subdomain is all Xgateway hosts for that domain; the top of the UUCP zone will Xprobably be nearly a hundred hosts. As a transition aid, we Xalso consider an individual host at the bottom of the domain tree a Xsubdomain "host.UUCP", with one gateway and no further subdomains. X(We expect to phase this out eventually.) X XA gateway host for a domain must do four things: X I) Pass mail bound for that domain to the X appropriate host. X II) Pass mail bound for outside that domain to a X gateway in the parent domain. X III) Pass mail bound for a subdomain to a gateway of X that subdomain. X IV) Recognise the domain!user address syntax. X Xsmail/rmail already provides (IV). With the data described here, Xpushed through pathalias, smail/rmail can then provide (I)-(III). X X2. The Zone Registry X XFor any sizeable zone, one gateway host supports the zone registry. XFor other zones, such as BITNET, CSNET, DDN, etc., registries are Xsupported, using conventions appropriate to those zones. Contact Xelectronic mail addresses are supported for queries, and updates to Xconfiguration information may also be handled via mail. In the UUCP Xzone, the id's "uucpmap@cbosgd.ATT.COM" and "domains@cbosgd.ATT.COM" Xserve to collect the connectivity and domain data, respectively, for Xthat zone. X XThe registry for a zone speaks for that zone, communicating Xchiefly with its peers, the registry of the parent domain, and Xthe registries of the subdomains. X X3. Functions of Domain Data X XEach gateway for a domain must map the domain-style names into Xthe UUCP host names for all hosts of the domain. This host name Xmapping provides (I) above. X XEach gateway for a domain knows a) at least one gateway for each Ximmediate subdomain, and b) at least one gateway host of the Xparent domain. This provides (II) and (III) above. X XFor consistency across the gateways of a domain, each gateway for Xthe domain should know a) ALL gateways for each immediate Xsubdomain; and b) ALL gateways for the parent domain. Pathalias Xwill pick the closest. In this way, one single database can Xdescribe the domain structure for all gateways on a domain, Xwithout variations for each gateway. X XIn order to aid routing and avoid overloading the parent gateway, Xgateways should also know most gateways for peer level domains. XThis information is also provided by the map and used by pathalias. XWhen a new peer domain is created, traffic can be routed through the Xparent (which must be updated immediately) until information about Xthe peer can be propagated. X XAdditionally, a gateway could know about domains more than one Xlevel above or below it so that mail doesn't stop for address Xresolution at every gateway along its path. X X4. Format of Domain Data X X4.1 Host Name List X XThe host name list aliases the domain style address of a host to Xthe UUCP host name. The pathalias input format is: X X uucp-name .domain-name[, ...] X XThe .UUCP suffix is implicit in the uucp-name (smail/rmail does Xthis), and is not needed. XUpper/lower case doesn't matter in a dotted domain name. XExamples: X X ihnp4 = .ATT.COM X ucbvax = .Berkeley.EDU X cbosgd = .osgd.cb.att.com, .cbosgd.att.com X XMight produce from pathalias: X X ihnp4 mtxinu!ihnp4!%s X .ihnp4.ATT.COM mtxinu!ihnp4!%s X ucbvax ucbvax!%s X .Berkeley.EDU ucbvax!%s X cbosgd cbosgd!%s X .osgd.cb.att.com cbosgd!%s X .cbosgd.att.com cbosgd!%s X XA single host may have more than one domain style address; in Xfact, a host may be in several domains at once. However, each Xhost must have a single primary location in the domain tree, Xand other addresses should be viewed as transition aids. For Xexample, cbosgd might be known as cbosgd, cbosgd.UUCP, Xcbosgd.ATT.UUCP, cbosgd.btl.csnet, and cbosgd.ATT.COM, but Xthe primary name is the one in the organizational domain (COM) Xwhich applies to all networks, and the others are temporary Xnames for upward compatibility only. X X4.2 Domain Gateway List X XThe domain gateway list aliases the domain style address of a Xdomain to the UUCP host name of the closest gateway of that Xdomain. This involves a trick in pathalias, and employs a Xextra network name domain-gw. The pathalias input format is: X X domain-gw .domain-name X XAgain, the .UUCP suffix is implicit in the uucp-name, and is Xnot needed. XExamples: X X decwrl .DEC.COM X decuac .DEC.COM X X cbosgd .ATT.COM X clyde .ATT.COM X XMight generate from pathalias: X X .DEC.COM seismo!decuac!%s X .ATT.COM cbosgd!%s X XNote that pathalias chooses the closest host from inside the {}'s. XThe (DEAD)'s prevent pathalias from following along the mock network Xcalled "domain-gw". X X5. Distribution of Domain Data X XA zone registry maintains a Host Name List (in the format of 4.1 Xabove) of all hosts within its domain and a Domain Gateway List X(in the format of 4.2 above) of all gateways of the domain. X XUp: A registry collects the Domain Gateway List from the registry Xof each of its subdomains, and transmits to the registry of its Xparent domain its own Domain Gateway List and, if it chooses, the XDomain Gateway Lists of some or all of its subdomains. Whether Xit includes lists from its subdomains depends on how important it Xconsiders them to the parent domain. X XDown: Similarly, a registry collects the Domain Gateway List from Xthe registry of its parent domain, and transmits to the registry Xof each of its subdomains its Domain Gateway List and the Domain XGateway List of its parent domain. Note that the Domain Gateway XList of the parent domain may include lists from the parent's Xother subdomains. X XA registry may decide not to use the parent domain's Domain XGateway List or not to transmit it to its subdomains' registries. X(This should be done only with the consent of the subdomains.) In Xthis case, the registry must introduce a domain gateway alias for Xall top level domains, to ensure that all the mail gets delivered. X XAcross: a registry transmits to each of the gateways of its Xdomain its Host Name List, its Domain Gateway List, and collected XDomain Gateway Lists. The registry also transmits to each normal Xhost (one gateway, no subdomains) of its domain its Domain XGateway List. X XTogether, "up," "down," and "across" insure that each gateway has Xthe Host Name List for its domain, and the Domain Gateway List of Xits own domain and at least its parent domain and subdomains. X"Up" and "across" will probably take place on demand by mail. X"Down" will probably be broadcast via netnews on a regular Xschedule. In particular, the second level information for the UUCP Xzone (one entry per organization) and the complete top level domain Xinformation make up the postings to mod.map. X X6. Distribution of Connectivity Data X XThe distribution of connectivity data will probably follow the Xpath of domain data: registries passing connectivity data up, Xdown, and across the domain tree, with the exception that the Xconnectivity within a third (or lower) level domain will be Xdiscouraged from leaving the domain, so the data the UUCP zone Xregistry distributes will include only the first and second Xlevel gateways. Local information about internal subdomains and Xmachines of organizations should not be included in globally Xpublished information, but rather distributed locally as needed. X X7. Various Notes X XThe following are examples of data that should be joined together Xas input to pathalias. X X Parent Domain Gateway List X Parent Connectivity Data X This Level Domain Gateway List X This Level Host Name List X This Level Connectivity Data X Collected Subdomains' Domain Gateway Lists X Collected Subdomains' Connectivity Data X Private Additions X Alias for "this host" X XThis note does not describe the inclusion of private additions to Xthe domain or connectivity data. X XBecause domain names intermix with host names (and the .UUCP Xsuffix is implicit), you can address hosts known at your gateway Xas "uucp-host.UUCP". We discourage this, because the address is Xthen particular to the sender's location. X X X /+\ X5/1/85 +\ chris@cbosgd.att.com X \+/ X X[Updated 5/9/86 by Mark Horton.] X# X#@(#)Domains 2.1 smail 12/14/86 X# @//E*O*F doc/Domains// if test 8824 -ne "`wc -c <'doc/Domains'`"; then echo shar: error transmitting "'doc/Domains'" '(should have been 8824 characters)' fi fi # end of overwriting check echo shar: extracting "'doc/Flow.Diagram'" '(2664 characters)' if test -f 'doc/Flow.Diagram' ; then echo shar: will not over-write existing file "'doc/Flow.Diagram'" else sed 's/^X//' >doc/Flow.Diagram <<'@//E*O*F doc/Flow.Diagram//' Xvanilla 4.2BSD mail flow X XLOCAL /bin/mail ---- -- /bin/mail -- LOCAL X \ / X ----------- sendmail -- X / / \ XLOCAL Mail --------- / -- uux -------- REMOTE X / XREMOTE /bin/rmail ------------ X X========================== X Xsmail 4.2BSD mail flow X XLOCAL /bin/mail -- /bin/mail -- LOCAL X \ / X ------------ sendmail -- X / / \ XLOCAL Mail --- / -- /bin/smail - X / (non-bang) \ XREMOTE /bin/rmail ------ \ X \ (bang) \ X ------------------------------------- uux REMOTE X X========================== X Xvanilla SVR2 mail flow X X mail is "/usr/src/cmd/mail.c" X rmail is linked to mail X XLOCAL mail ------------\ /--------------------- LOCAL X \ / XLOCAL mailx ----> mail ---+----------+ X / \ XREMOTE rmail ------------/ \-- uux -------------- REMOTE X X========================== X XModified SVR2 mail flow using SENDMAIL X XDefinitions of changed/renamed programs X X mail is "svbinmail.c" X lmail is "/usr/src/cmd/mail.c" X rmail is linked to smail X XLOCAL mail ------------\ /-- lmail ---------- LOCAL X \ / X +--sendmail--+ X / \ XLOCAL mailx --- mail ---/ \-- smail -- uux --- REMOTE X X X /-- lmail ------ LOCAL X / X /--sendmail--+ X / \ X / \- smail - uux - REMOTE X / (domain | LOCAL) XREMOTE rmail --------------+ X \ (bang) X \ X \------------------ uux -------- REMOTE X X========================== X XModified SVR2 mail flow without SENDMAIL X XLOCAL mail ------------\ /-- lmail ---------- LOCAL X \ / X +-- rmail ---+ X / / \ XLOCAL mailx --- mail ---/ / \-- uux ----------- REMOTE X / X / XREMOTE --------------------+ X X# X# @(#)Flow.Diagram 2.1 smail 12/14/86 X# @//E*O*F doc/Flow.Diagram// if test 2664 -ne "`wc -c <'doc/Flow.Diagram'`"; then echo shar: error transmitting "'doc/Flow.Diagram'" '(should have been 2664 characters)' fi fi # end of overwriting check echo shar: extracting "'doc/Install'" '(2180 characters)' if test -f 'doc/Install' ; then echo shar: will not over-write existing file "'doc/Install'" else sed 's/^X//' >doc/Install <<'@//E*O*F doc/Install//' XThere are three system types on which smail can be installed. X X (1) Berkeley with sendmail X (2) System V with sendmail X (3) System V without sendmail X X Note: if you have a System III or V7 derived system, you X can probably treat it like (3). We have not tested smail X on such a system. X XThe installation will vary slightly for each system type. X XFor all systems you first have to create a 'paths' database. XSee paths(8) for details on the file's format. Then Xcopy it to /usr/lib/uucp/paths. X XNext, edit "defs.h" to configure smail to suit your situation. X XHere are step by step installation instructions for each system type. X X(1) For a berkeley system with sendmail, the steps are: X X $ make X X $ cp smail /bin/smail X X $ sh make.cf.sh X <answer the questions it asks> X X $ mv /usr/lib/sendmail.cf /usr/lib/OLDsendmail.cf X X $ cp sendmail.cf /usr/lib/sendmail.cf X X $ /usr/lib/sendmail -bz X X $ mv /bin/rmail /bin/OLDrmail X X $ ln /bin/smail /bin/rmail X X(2) For a System V system with sendmail, the steps are: X X $ make X X $ cp smail /bin/smail X X $ ln /bin/mail /bin/lmail X X $ sh make.cf.sh X <answer the questions it asks> X X $ mv /usr/lib/sendmail.cf /usr/lib/OLDsendmail.cf X X $ cp sendmail.cf /usr/lib/sendmail.cf X X $ /usr/lib/sendmail -bz X X $ rm /bin/mail # (Remember, you still have it in /bin/lmail.) X X $ mv svbinmail /bin/mail X X $ mv /bin/rmail /bin/OLDrmail X X $ ln /bin/smail /bin/rmail X X Note: some implementations of sendmail don't work when the 'U' X flag is set in the definition of the local mailer (a line that X begins with "Mlocal" in the generated sendmail.cf). If you try X to send mail from a local user to a local user, a message comes X out that says "No '!' in UUCP! (user)" - and the mail fails. X If this happens take the 'U' flag out of the sendmail.cf. X X [ the >'s are secondary prompts from the shell, X and ^M is 'carat' 'M', not 'control-M' ] X X $ ed sendmail.cf <<! X > /^Mlocal/s/SU/S/ X > w X > q X > ! X X(3) For a System V system without sendmail, the steps are: X X $ make X X $ cp smail /bin/smail X X $ mv /bin/mail /bin/lmail X X $ mv svbinmail /bin/mail X X $ mv /bin/rmail /bin/OLDrmail X X $ ln /bin/smail /bin/rmail X XYou're done. X X# X# @(#)Install 2.1 smail 12/14/86 X# @//E*O*F doc/Install// if test 2180 -ne "`wc -c <'doc/Install'`"; then echo shar: error transmitting "'doc/Install'" '(should have been 2180 characters)' fi fi # end of overwriting check echo shar: extracting "'doc/Read.Me'" '(7522 characters)' if test -f 'doc/Read.Me' ; then echo shar: will not over-write existing file "'doc/Read.Me'" else sed 's/^X//' >doc/Read.Me <<'@//E*O*F doc/Read.Me//' X READ ME - Updated 2/6/87 X XWhat smail does: X X smail is capable of handling UUCP syntax (bang paths, bang X domains, and at domains are supported) mail transportation X over UUCP/uux/rmail channels. It will support machines that X only have UUCP connections, and machines with UUCP links to X the outside world plus a small number of local machines that X are reached via SMTP. The domain intelligence is embedded X in the smail database (e.g. the pathalias output), not the X sendmail.cf file, so if you have a fancier domain structure X that involves SMTP or anything other than uux in the domain X structure, you'll want to modify the sendmail.cf file here or X merge pieces of the enclosed sendmail.cf into your own. X X smail runs under 4.2BSD and System V, as a back end to sendmail; X and under System V without sendmail. It also replaces rmail, which X becomes a link to smail. In a sendmail environment, smail depends on X sendmail to crack the headers, as smail just deals with the envelope. X smail makes your host capable of using the INTERNET definition in the X Usenet software. X X Features of smail include: X X (1) Using pathalias data to choose the best route to your destination. X (2) Handling of user@domain, domain!user, and host!user syntax. X (3) Generation of domain!user syntax to be forwarded by other systems. X (4) Logging of traffic through your machine, by sender, recipient, and X size of message, so you can, track use and detect abuse of your X machine. X (5) Mail being forwarded through your machine to another uux link is X passed from rmail directly to uux, so there's less overhead on X your machine (sendmail stays out of the loop.) X (6) Sendmail-like alias capability for hosts without sendmail. X (7) Generation of RFC822 required headers for locally generated mail. X (8) Robust delivery scheme that reroutes only if stated path is inaccessible. X (8) Mail that is undeliverable is returned to sender. X (9) Simplicity. X XPrerequisites: X X A copy of a recent posting of pathalias. (The one posted X by Peter Honeyman in January 1986 is recommended.) X X A current copy of the UUCP map, or at least a copy of the X appropriate part of it that you're interested in. X X A properly registered domain name for your organization, such X as ATT.COM. (It is possible to run smail using a domain name X under .UUCP, but since this can't be officially registered, X it is appropriate only for testing.) X X You can get pathalias from the mod.sources Usenet archive (contact X sources-request@mirror.TMC.COM or mirror!sources-request) X X You can get a UUCP map each month from Usenet newsgroup mod.map. X The UUCP map is quite large (currently about 2MB) so please don't ask X to have a copy mailed to you - get a copy from a nearby Usenet site. X X You can get a domain name by joining the UUCP Zone. There are X low membership dues for this, and a registration process that X will take 2-8 weeks. This Read.Me file may be out of date by X the time you read it, so we ask you to contact us for current X dues rates and procedures. Contact uucp-query@Stargate.COM or X cbosgd!stargate!uucp-query and ask for the UUCP Zone information X packet. (If you already belong to a network such as CSNET, DDN, X or BITNET, your organization may already have a domain name. If X you are also on UUCP, it is recommended that you also join the X UUCP Zone at the lower rate for organizations whose primary X affiliation is with another network. See the file "Registry" X for more information. X XOverall structure: X X smail is installed in /bin/smail with a link in /bin/rmail. Uuxqt X calls rmail, which either forwards the message on to the next hop X directly or, on a sysetm with sendmail, calls sendmail. sendmail X may decide the message should be delivered by UUCP, and invoke smail, X which will look up a route and invoke uux. (Note that the choice X about when to invoke sendmail and when to process a message directly X can be configured in smail.) X X smail uses a database which is generated from pathalias. You take the X current UUCP map, add some local information and topology data (to tell X it about the domain tree) and run pathalias. The result is sorted and X installed in /usr/lib/uucp/paths. There is no hashing done on this X file - when smail looks up a name it uses a binary search. X XInstallation Instructions: X X Save your /bin/rmail and /usr/lib/sendmail.cf somewhere safe, in case X of disaster. If you already have a /bin/smail or /usr/lib/uucp/paths, X you might want to save them too. X X If you have the logging turned on, you should arrange that something X out of crontab erases the logs regularly, or your disk may fill up. X One line per message is created in /usr/lib/uucp/mail.log. If you X log full messages, they get put in /tmp/mail.log. (Note that full X message logging is considered anti-social if you use it to snoop; X it is recommended that this feature only be used if you are running X software that you don't completely trust, so you can reproduce any X problem that might turn up.) X X Now see the file Install for step by step instructions. X XConfiguration considerations: X X You'll note two configuration options in defs.h: HANDLE and ROUTING. X These control which sorts of addresses smail/rmail will handle, and X which type of routing they will do. The HANDLE define only affects X rmail, since smail sets it implicitly. In any case, we recommend X that you leave HANDLE alone, unless you are making major changes. X X ROUTING has three choices: JUSTDOMAIN, ALWAYS, and REROUTE. rmail X will run as JUSTDOMAIN, the defs.h default. This means rmail will X only apply routing if it sees "rmail user@domain", and will just call X uux if it sees "rmail host!user". (If the uux fails, it will call X smail -r, which will apply ALWAYS routing to try to get the mail X there anyway. If the ALWAYS routing fails, then REROUTE routing is X applied. This has the advantage of being low overhead on your X system, not second guessing a route someone else asked for, and still X recovering nicely from the mistakes of another system. Your host X becomes a "smart host" that can get mail anywhere.) X X Many people will note huge paths going through their machine. These X paths are generated by replies to netnews messages, and tend to be 10 X or 20 hops long - far longer than necessary. If you are a bit aggressive, X you can change -r to -R, which will cause such failed mail to be rerouted, X thus, mail to a!b!c!d!e!f!g!user will look up a route to g, and send the X mail to route!g!user. (If it can't find g, it will try f, then e, and X so on until it finds someone it recognizes.) If you are REALLY aggressive, X you can change ROUTING to REROUTE in defs.h, to get the same effect for X ALL rmail being passed through your machine. This may help cut phone X bills, but it has some disadvantages. It can lengthen a path sometimes, X e.g. mail to tektronix!user might turn into ihnp4!tektronix!user if your X routing database says mail to tektronix goes through ihnp4. It makes it X hard to route around a dead host, or to redirect traffic from a mailing X list to several different directions. It may also make mail go a different X path than what your user thought it was, and it affects other hosts that X route mail through you if you set ROUTING to REROUTE in defs.h. So only X do this if you know what you are doing, and are willing to live with the X disadvantages. X X# X#@(#)Read.Me 2.1 smail 12/14/86 X# @//E*O*F doc/Read.Me// if test 7522 -ne "`wc -c <'doc/Read.Me'`"; then echo shar: error transmitting "'doc/Read.Me'" '(should have been 7522 characters)' fi fi # end of overwriting check echo shar: extracting "'doc/Registry'" '(11417 characters)' if test -f 'doc/Registry' ; then echo shar: will not over-write existing file "'doc/Registry'" else sed 's/^X//' >doc/Registry <<'@//E*O*F doc/Registry//' X UUCP Zone Registry X 2/6/87 X XTo use smail, or other software supporting domain addresses, you need Xto have a domain name registered in the domain tree. This name must be Xunique in the world, and must be registered with the appropriate Xregistry. Your domain must also have a forwarder from DDN (also Xcalled ARPANET and MILNET). X XIf your primary network affiliation is with CSNET, BITNET, or DDN, Xyour organization may already have a domain name. If you are not Xon one of these networks, you can join the UUCP Zone to get your Xorganization name registered. X X History and Structure X XThe exact structure of the domain tree is evolving. In 1984, the top Xlevels were network names (ARPA, CSNET, BITNET, UUCP, and so on) and Xthe second levels were hosts. The problem with this structure is that Xmachines connected to several networks have several names, and it's Xdifficult for users to predict the address of someone without knowing Xtheir network connections. X XIn 1986, the domain tree in the USA has three major top level domains: XCOM for companies, EDU for educational institutions, and GOV for Xgovernment entities. Three other top level names exist: MIL, NET, ORG, Xbut are somewhat specialized. For the most part, countries other than Xthe USA are using the ISO 3166 2 letter abbreviation for their country Xas a top level. X XExamples include US for USA, AU for Australia, JP for Japan, NL for XNetherlands. Abbreviations that are not ISO 3166 include CAN for XCanada and and UK for the United Kingdom. X XOne way of looking at the domain tree is that the top level is always Xthe country, where COM, EDU, and GOV are three pretend "countries" all Xlocated in the USA. (This isn't quite strictly true, since some Canadian Xorganizations are registering under EDU or COM, intending to also register Xunder CAN later.) X XThe second level is generally the name of the organization, using the Xshortest possible abbreviation that is clear and unique, thus ATT, DEC, XIBM, HP, etc. The choice of exact name is up to the organization, and Xlonger names, such as Berkeley.EDU or Tektronix.COM are perfectly Xacceptable. Just remember that people must type the name, as well as Xsee it displayed. X XNot all countries use the second level for the organization. In Xparticular, Australia and Britain have set up second level domains XAC.UK and OZ.AU for their academic communities, and put the Xorganization at the third level. X XThe third and subsequent levels, if used, should be organizational Xunits within the organization. Try to keep the number of levels to a Xminimum, since people have to type the names. More than four total Xlevels (country, org, ou1, and ou2) should rarely be needed. The Xactual organizational units to be used are up to you, for example, they Xmight be departments, or they might be machine names. For example, XStargate has names like Base.Stargate.COM, where COM means a company, XStargate is the organization (company) name, and Base is the name of Xthe machine within Stargate. A larger example: AT&T is using names Xlike cbpavo.MIS.OH.ATT.COM, where COM means AT&T is a company, ATT is Xthe organization, OH means Ohio, MIS stands for Medical Information XSystems, and cbpavo is a computer in the MIS project. X XA "zone" is a registry of domains kept by a particular organization. A Xzone registry is "authoritative", that is, the master copy of the Xregistry is kept by the zone organization, and this copy is, by Xdefinition, always up-to-date. Copies of this registry may be Xdistributed to other places and kept in caches, but these caches are Xnot authoritative because they may be out of date. An authoritative Xanswer is required for certain decisions, such as "this mail cannot be Xdelivered because there is no such domain", or "the name you have Xchosen is available and is now assigned uniquely to you." X XIn the USA, there are currently four zones: DDN (formerly called the XARPANET), CSNET, BITNET, and UUCP. These zones all share the top level Xdomains COM, EDU, GOV, etc. The top level domains are administered by Xthe DDN (Defense Data Network) NIC (Network Information Center) at SRI X(SRI, Inc, formerly Stanford Research Institute, in Menlo Park, CA.) XThe CSNET, BITNET, and UUCP registries serve as a go-between to avoid Xswamping the NIC with individual registrations. It is possible for an Xorganization to be members of more than one of these networks, in which Xcase they register with each network, using the same name on all Xnetworks. X XThe UUCP Project keeps a registry of members of the UUCP Zone. This Xregistry is different than the UUCP map, although the registry is posted Xwith the UUCP map. The UUCP Zone registry consists only of organizations Xwhich are members of the UUCP Zone. To become a member, it is Xnecessary to explicitly join, just as one joins CSNET or BITNET. Just Xbeing reachable via a bang path does not imply membership, nor does Xappearance in the UUCP map. X XTo join the UUCP Zone, it is necessary to apply for membership. This Xinvolves paying low annual membership dues to the project, deciding how to Xstructure your domain and where to put it into the global domain tree, Xinstalling software such as smail, finding a forwarder, and doing some Xelectronic paperwork. Please contact us at one of these addresses and Xask for the membership kit; it will contain up-to-date information on Xjoining, including the fee structure, information about forwarders, Xinformation about 3rd level domain "parks", and forms to fill out. X XSee the "Contact Information" below for instructions to contact us; Xplease use the "query" address for the initial query. X X Organizational Registry X XIf you are registering your organization in the UUCP zone, you are in Xeffect creating another zone registry for your organization. Any Xsubdomains of your organizational domain must be registered with you. X(You need not keep us informed of all your subdomains, just the gateways.) X XFor the time being, unless you are ready to start organizing the machines Xin your organization, don't worry about this. You can just set things up Xto handle your one machine (or more if you like). Just keep in mind that Xyour machine is but one machine in your organization, so you should be Xplanning to have an address like fred@compsci.BigCorp.COM (where "fred" is Xa login name on machine "compsci" owned by organization "BigCorp") rather Xthan fred@BigCorp.COM. X XFor example, if you are the first host in the University of North Dakota to Xjoin, you are creating a subdomain UND.EDU (for example.) Your host might Xhave a name like undvax.UND.EDU. When other machines are joined in later, Xthey will also register under UND.EDU, for example, cs3b20.UND.EDU. XAll subdomains of UND (this may mean all hosts in the UND domain) are Xregistered with the UND.EDU registry. Unless you create a campus organization Xspecifically to run this registry, this means you are the UND.EDU registry. XIt is your job to keep track of everybody in the registry, hand out names Xfor subdomains, make sure there are no duplicates (you have to make sure there Xaren't two machines called cs3b2.UND.EDU, for example) and know who to Xcontact if a problem arises. You have created the UND Zone, which is Xsimilar to the UUCP Zone, but one level further down in the heirarchy. X XAt some point, you may decide that you want more layers of subdomains in Xyour zone. For example, if the CS, Math, and Stat departments at UND all Xwant to manage their own zones, you might use names like vax.CS.UND.EDU, X3b20.Math.UND.EDU, and so on. The UND Zone has delegated its naming Xauthority to the CS Zone, the Math Zone, and so on. The root delegates Xto COM, COM delegates to UUCP, UUCP delegates to UND, UND delegates to CS. X XNote that the names are given in upper or mixed case, but the exact Xcase doesn't matter, since the software ignores it. We recommend that Xyou choose your capitalization to look nice when printed. X XNote also that "vax", "3b20", and the like are terrible host names, Xbecause sooner or later you'll have more than one vax, or more than Xone 3b20, and the names will be confusing. We recommend organizational Xnames, based on the department or project the machine is used for. XOf course, in order to keep the names reasonably short and to avoid Xduplicating names in the heirarchy, some compromise will be needed. XFor example, csvax.CS.UND.EDU is redundant, but RISC.CS.UND.EDU might Xbe a good name for the computer used by the RISC project in the CS Xdepartment. X X Notes: X XOrganizations are encouraged to eventually support two kinds of electronic Xmail addresses: X X(1) Login name on machine: a string which is understood on a particular X machine, combined with a fully qualified domain name of a machine. X The string is often, although not always, a login name. X Example: X mrh@cbosgd.ATT.COM X X(2) Personal name in organization: a string which is the name of a person, X understood by all gateway machines. X Example: X Mark.R.Horton@ATT.COM X This allows mail to be sent without knowing the full address X of the recipient, only their name and company. Implementations X should be as forgiving as possible of errors in the personal name. X For example, if possible, as many of the following as possible X should be accepted: X mark.r.horton@att.com (ignore case) X m.r.horton@ATT.COM (accept initials) X mark.horton@ATT.COM (don't require initials) X mark.randolph.horton@ATT.COM X m.horton@ATT.COM (if not ambiguous) X horton@ATT.COM (if not ambiguous) X mark.horton.sr@ATT.COM (allow generational qualifier) X XHowever, it's perfectly fine to just support just one style. XSince the login name style (1) is easy to support, you may prefer to Xjust handle that one, especially at first. Style (1) is by far the Xmost commonly used method as this is written. X XPlease note that you should support both RFC 976 and the documents Xit refers to, in particular RFC 822 and RFC 920. This means, for Xexample: X X(a) The name "postmaster" on all machines visible to the outside X should be forwarded to the technical contact. This can be X easily done with an alias in /usr/lib/aliases, if your site X runs sendmail or smail 2.0. Please be sure to also support X Postmaster, PostMaster, and POSTMASTER, if you use sendmail. X X(b) Your machine should not alter valid RFC 822 headers, such as X From:, of mail it generates or forwards. Many machines running X sendmail have a bug which adds uucpname! to the front of such X addresses. Installing smail will fix the bug, because mail X passed through the machine is not passed through sendmail. X We hope to make a fix to sendmail available, also, at a X later date. X X Contact Information X XWe strongly encourage electronic mail for queries, updates, and Xapplications. This cuts down on our costs, and we can pass those Xsavings along to you. We currently do not have a telephone number Xfor queries, although we hope to have one in the near future. If Xyou are unable to send and receive electronic mail, you will have Xto wait until we are prepared for telephone calls or postal mail. X XFor queries: uucp-query@Stargate.COM cbosgd!stargate!uucp-query X XFor updates: uucpmap@Stargate.COM cbosgd!stargate!uucpmap X XFor problems: uucp-problem@Stargate.COM cbosgd!stargate!uucp-problem X XTo register: registry@Stargate.COM cbosgd!stargate!registry X XUUCP host "stargate" can also be reached via uiucdcs or cbatt. X# X#@(#)Registry 2.1 smail 12/14/86 X# @//E*O*F doc/Registry// if test 11417 -ne "`wc -c <'doc/Registry'`"; then echo shar: error transmitting "'doc/Registry'" '(should have been 11417 characters)' fi fi # end of overwriting check echo shar: extracting "'doc/Trouble'" '(10836 characters)' if test -f 'doc/Trouble' ; then echo shar: will not over-write existing file "'doc/Trouble'" else sed 's/^X//' >doc/Trouble <<'@//E*O*F doc/Trouble//' X Common Problems and Recommended Solutions X X Updated 12/14/86 X X(1) The configuration shell script smail.cf.sh insists that XI give it another domain that I'm authoritative for, but we Xdon't have anything to give it. X X This is a common problem for small companies that only X have one machine, or for organizations that are originally X registering in COM/EDU/GOV and were never known in UUCP. X X The shell script is somewhat simple - it really should let X you just hit RETURN here. But you can go ahead and follow X the examples anyway, and it shouldn't hurt anything. X X For example, if you're FOOBAR.COM: X Enter This Host's Name: X foobar X Enter This Host's Official Domain: X COM X Enter Any Equivalent Domain Classes: X foobar X Enter Any Domains For Which This Host Is An Authority: X foobar.UUCP X The first two lines mean that you are user@foobar.COM (the two X entries strung together.) The second one means you also X understand what to do with user@foobar, which isn't really X legal but may tend to crop up from time to time. The last X means you also understand user@foobar.UUCP, which is important X for upward compatibility since that's commonly generated by X other systems, by netnews software, and the like. X X(2) I can send mail to others OK, but sometimes when they send mail Xto me or I send mail to others on my machine, it doesn't work. XIt says "couldn't resolve myhost.mydom!user". X X This is probably a configuration problem. Look in defs.h to see X how you have MYDOM set. It comes distributed as ".UUCP", but X you probably want to change this to the answer to the "Enter This X Host's Official Domain" question above. If you don't run sendmail, X this is the only way smail has of knowing your host name. X (We really should have smail read this in from a file, for future X 3rd party binary distributions, but so far we haven't.) X X(3) Mail isn't getting through sometimes, and since I just installed Xthis new software, I suspect it. Or, I see munged header lines, and XI don't know who is doing it. X X If you aren't sure where the mail is getting dropped (remember, UUCP X is an unreliable transport mechanism, so lots of things could be going X wrong) here's a trick we sometimes use to find out what's going on. X mv /bin/rmail /bin/realrmail X X cat > /bin/rmail X #! /bin/sh X umask 0 X LF=/usr/spool/uucp/rmail.log X cat > /tmp/rm$$ X echo " " >> $LF X date >> $LF X echo rmail $* >> $LF X cat /tmp/rm$$ >> $LF X realrmail $* < /tmp/rm$$ X st=$? X rm /tmp/rm$$ X exit $st X ^D X chmod 755 /bin/rmail X X This will keep a very verbose log of all incoming traffic into your X machine in LF, including the text as it arrived on your machine, and X the arguments to rmail. You can tell whether it was broken when it X arrived or if you broke it, and you can reproduce the mail by editing X out the message (into, say, /tmp/msg) and running X realrmail args < /tmp/msg X using the args as they appear in the file. X X Some words of warning. (a) These files can get big very fast if you X process much traffic through your machine, so be sure to clean them X out often. (b) This saves everything, including the message body. X It is unethical to browse such logs unless a specific problem has X arisen which requires you to check the log. This is one reason why X it's kept in /usr/spool/uucp, if you have a hidden directory on your X system that's even better. (c) This extra set of file copies adds X overhead to your machine, so don't run this unless you suspect you X have a problem, and then take it out when you trust things again. X X There is a RECORD option in the code which is similar, but this X option saves the mail at a later stage, so you lose some information X about how it arrived on your machine. X X(4) I don't understand how to set up subdomain of my domain. X X There are two ways to do this. The easiest is just by recognizing X the subdomain host by their UUCP name. If you are the gateway for X domain FOO.COM, then any mail through your sendmail to bar.FOO.COM X or to bar.myname.FOO.COM (where "myname" is your hosts's name) will X be treated as if it were bar.UUCP, so if the name "bar" is in your X path file, you're all set. The disadvantage to this is that if you X want to create a subdomain whose name conflicts with a public name, X it won't work. If you want to disable this code, look for "mydom" X in the sendmail.cf. X X A perhaps cleaner way is to explicitly put the subdomains into the X pathalias database. Thus, if you have a.FOO.COM, b.FOO.COM, p.b.FOO.COM, X x.myname.FOO.COM, and y.myname.FOO.COM, you could include this in X your local pathalias input: X aname .a.FOO.COM X bname .b.FOO.COM X pname .p.b.FOO.COM X xname .x.myname.FOO.COM X yname .y.myname.FOO.COM X In each case, "aname" is the UUCP name for host "a", etc. This X sort of says "aname and a.FOO.COM are the same host." This X description says that you have subdomains x and y under your host, X that there are peer subdomains a and b, and that you know about X a subdomain of b called p. Other subdomains of a and b that X are not mentioned here will be routed through aname or bname as X gateways. The only reason to mention p here would be if we have X a direct link and want to avoid routing through bname. If you X do this, you have less strict requirements about name uniqueness: X aname, bname, pname, xname, and yname must still be unique, and X a.FOO.COM, b.FOO.COM, p.b.FOO.COM, x.myname.FOO.COM, and X y.myname.FOO.COM must also be unique (ignoring case, so that X two different hosts a.foo.com and A.FOO.COM conflict.) In X particular, this means that if you have a local host with a name X that isn't unique, say "bilbo", you can safely create a subdomain X "bilbo.myname.FOO.COM", but you'll still have a problem if the X UUCP name of the host is "bilbo". You may be able to make this X partly work using the pathalias "private" notation, but we advise X you to change the UUCP name to something unique. X X(5) When another host in my domain sends mail to a third host in my X domain, it seems to get routed through the gateway even though X my host knows how to route directly. X X For example, suppose you have gateway cbosgd.att.com, and other X machines foo.att.com and bar.att.com. Smail is installed on all X three machines. But when a user on foo sends to user@bar.att.com, X the mail is routed via cbosgd. Sometimes, you may even see this X happen for mail on foo to foo. X X There are two solutions. The first is to make sure that foo knows X that bar.att.com is the same as bar (where "bar" is the uucp name.) X Include lines in the local pathalias input files like X foo .foo.att.com X bar .bar.att.com X cbosgd .cbosgd.att.com X X The second solution is to declare foo to be a gateway for your X subdomain, e.g. X foo .att.com X This will handle all mail to att.com locally on foo instead of X routing it through cbosgd. (It also means you'd better be sure X to keep the routing tables on foo as up to date as on cbosgd.) X X The first method is strongly recommended for everyone. The second X is appropriate only for well maintained and supported hosts. X Either should handle the problem. X X(6) Mail to some domains isn't working. For example, if I type X X smail -d USER@LLL-MFE.ARPA X X It says: X X resolve: parse address 'USER@LLL-MFE.ARPA' = 'USER' @ 'LLL-MFE.ARPA' (DOMAIN) X getpath: looking for '.LLL-MFE.ARPA' X getpath: looking for 'LLL-MFE.ARPA' X getpath: looking for '.ARPA' X getpath: looking for 'ARPA' X route 'LLL-MFE.ARPA' failed X resolve failed 'USER@LLL-MFE.ARPA' = 'USER' @ 'LLL-MFE.ARPA' (DOMAIN) X X There is a .arpa line in the pathalias database that looks like: X X .arpa ihnp4!akgua!gatech!seismo!%s X X Chances are the pathalias database is out of order. Remember X to run it through "sort -f" before storing it. X X(7) People on the ARPANET are complaining about us sending them mail X from FOO.COM when we aren't on the ARPANET. X X Politely ask them to upgrade their mail system to support MX X records, as required by RFC's 973 and 974. X X If you have a COM, EDU, or GOV name confirmed by the UUCP Zone, and X you have a working forwarder, you have an officially allocated name X which you are entitled to use. X X However, do understand that the old way of handling things on the X ARPANET was to open a connection directly to the destination host X and send the mail via SMTP. Many hosts assume that a name ending X in ARPA, COM, etc implies being on the ARPANET, and handle mail X this way. (4.3BSD still does this.) The above RFC's, approved in X January 1986, say that mailers are supposed to check for an MX X record, which says that mail for one domain should be delivered to X a different host to be forwarded. As of December, 1986, many X ARPANET hosts still have mailers that understand MX, and the X standard UNIX and TOPS 20 mailers don't support it. So politely X urge them to find whoever supports their mailer and get it upgraded X to support MX. (Berkeley has a version of sendmail that supports X it, but it isn't in 4.3BSD. An MX supporting sendmail can be found X on ucbarpa.Berkeley.EDU by logging in as anonymous and retrieving X pub/4.3/sendmail.MX.tar. The file is 1.26MB. The latest MMDF also X supports it.) In the meantime, tell whoever is trying to send you X mail that mail to user@foo.COM (for example) can be sent to X foo.COM!user@seismo.CSS.GOV. X X(8) My System V machine with sendmail produces the error message X "No ! in UUCP!" when I send local mail. X X This is a bug in older versions of sendmail. If you have the X source to sendmail, make the following change to deliver.c to X fix the problem: X X X *** deliver.c.stock X --- deliver.c X *************** X *** 1016,1022 X expand("$g", buf, &buf[sizeof buf - 1], CurEnv); X bang = index(buf, '!'); X if (bang == NULL) X ! syserr("No ! in UUCP! (%s)", buf); X else X { X *bang++ = '\0'; X X --- 1016,1022 ----- X expand("$g", buf, &buf[sizeof buf - 1], CurEnv); X bang = index(buf, '!'); X if (bang == NULL) X ! return; X else X { X *bang++ = '\0'; X X If you do not have source to sendmail, a workaround is to edit X /usr/lib/sendmail.cf (or template.cf before you run make.cf.sh.) X Find the line beginning "Mlocal", and remove the "U" on that line. X This has an undesirable side effect, in that the From_ line will X be in a format not understood by mailx, but since most mailx replies X use the From: line, this should be a minor problem. X X# X# @(#)Trouble 2.1 smail 12/16/86 X# [Edited by MRH 12/14/86] X# @//E*O*F doc/Trouble// if test 10836 -ne "`wc -c <'doc/Trouble'`"; then echo shar: error transmitting "'doc/Trouble'" '(should have been 10836 characters)' fi fi # end of overwriting check echo shar: extracting "'doc/aliases.8'" '(4445 characters)' if test -f 'doc/aliases.8' ; then echo shar: will not over-write existing file "'doc/aliases.8'" else sed 's/^X//' >doc/aliases.8 <<'@//E*O*F doc/aliases.8//' X.TH ALIASES 8 X.tr ~ X.SH NAME Xaliases \- alias file for smail X.SH DESCRIPTION XThis file is used by X.I smail Xonly if X.I SENDMAIL Xis X.I not defined. XIf X.I SENDMAIL Xis defined, then X.I sendmail Xdoes all of the aliasing for the host. X.PP XThis file contains a list of aliases for Xlocal users or mailing lists. XThe format of each alias is X.sp X.ce Xalias_name~recip_name1~recip_name2~... X.sp XAn attempt has been made to remain compatible with X.I sendmail Xalias file format, though the syntax is much more format free than X.I sendmail. XAs distributed, X.I case differences are ignored Xwhen comparing names to aliases. XOnly alias names which resolve to the local host are recognized, and are Xstored in their local form. XLines which start with a white~space are continuation lines. XParenthesised strings are taken as comments (no nesting), Xas is anything after a '#' (as in X.IR /bin/sh ). XHere are some examples: X.sp X.nf X# this whole line is a comment X# X# These are equivalent definitions X Xalias_name recip1 recip2 recip3 X Xalias_name: recip1, recip2 , recip3 X Xalias_name recip1 recip2 X recip3 X Xalias_name recip1 # Recip1's name X recip2 # Recip2's name X recip3 # Recip3's name X Xalias_name recip1 (Recp1's name) recip2 (Recp2's name) X recip3 (Recp3's name) X Xalias_name@thishost recip1 recip2 recip3 X Xalias_name@thisdomain recip1 recip2 recip3 X Xthishost!alias_name recip1 recip2 recip3 X Xthisdomain!alias_name recip1 recip2 recip3 X.fi X.PP XMailing lists are easily handled by two forms of file inclusion. XThe first form is the same as is supported by X.I sendmail X.sp X.ce Xmylist :include:/usr/lib/ml/mylist X.sp XIn this example, each entry in X.I /usr/lib/ml/mylist Xwould be added to the alias for X.I mylist. XThe second form is unique to X.I smail. XIt allows the X.I aliases Xfile to include other X.I aliases Xfiles. X.sp X.ce X:include:/usr/lib/ml/more-aliases X.sp XThis would include the file X.I /usr/lib/ml/more-aliases Xas a regular alias file. XThis makes it easier to maintain groups of aliases that Xchange frequently, such as the list of netnews moderators. X.PP XAll aliases are recursive, so care Xmust be taken in their definition. X.I smail Xaliasing attempts to prevent infinite loops, and to Xdo what was intended by the user. For example, the alias: X.sp X.ce Xmylogin~mypc!mylogin~mylogin X.sp XExpands to X.sp X.ce Xmypc!mylogin mylogin X.sp Xeven though the second occurrence of X.I mylogin Xmatches the alias name. X.sp XBoth forms of file inclusion are recursive, too, Xso watch out for nesting include files. They Xmay lead to infinite loops. X.PP XWhile the cost of parsing an alias file is usually negligible, Xit's wise to take savings anywhere savings Xcan be found. Therefore, it's worth mentioning X.IR smail 's Xparsing strategy. X.I smail Xwill try to get by with doing as little work Xas possible when aliasing. If on a particular Xinvocation of X.I smail, Xnone of the recipent addresses are local, X(i.e., not potential aliases) Xthen the X.I aliases Xfile won't even be read. Similarly, Xwhen an X.I aliases Xfile is read, it does not expand any of the :include: files Xuntil they are referenced. Thus, in the alias (above) for X.I mylist, Xthe file X.I :include:/usr/lib/ml/mylist Xwould not be opened and read (parsed) unless Xmail was sent to X.I mylist. XWise use of :include: files can greatly Xincrease the efficiency of the alias utility. XIt's not clear exactly where the X.I break-even Xpoint is when deciding to use an :include: file in an alias, Xversus having all of the recipents listed on the line; Xbut if a mailing list is large (whatever that means) Xit is wise to use the :include: feature to save on Xparsing costs. Note that this discussion only applies to the Xfirst form of file inclusion, since reading an X.I aliases Xfile constitutes a reference to :include: files of the second form. X.PP XThere is another form of aliasing which works with the alias capability. XThis is called X.I per user forwarding. XFor a given user name, if there is no alias for the user Xthen, if the file X.I ~user/.forward Xexists, then its contents will be treated as an alias for Xthe user. The syntax is the same as that of the Xrecipient lists in the alias file described above. X.PP XOne difference between X.I smail Xand X.I sendmail Xis that X.I smail Xdoesn't handle stuff like mail to files Xor command execution. X.SH SEE ALSO Xsmail(8), paths(8), pathproc(8) X.SH VERSION X@(#)aliases.8 2.2 smail 1/28/87 @//E*O*F doc/aliases.8// if test 4445 -ne "`wc -c <'doc/aliases.8'`"; then echo shar: error transmitting "'doc/aliases.8'" '(should have been 4445 characters)' fi fi # end of overwriting check echo shar: extracting "'doc/lcasep.8'" '(741 characters)' if test -f 'doc/lcasep.8' ; then echo shar: will not over-write existing file "'doc/lcasep.8'" else sed 's/^X//' >doc/lcasep.8 <<'@//E*O*F doc/lcasep.8//' X.TH LCASEP 8 X.tr ~ X.SH NAME Xlcasep \- convert first field to lower case X.SH SYNOPSIS X.B lcasep X[ -f infile ] [ -o outfile ] X.SH DESCRIPTION X.I Lcasep Xconverts all upper case characters Xin the first field of each input line to lower case Xand writes the line to its output. By default, X.I lcasep Xreads from the standard input and writes to the standard output. XFields are delimited by a tab (ascii~0x9) character. XIt is used in preparation for sorting X.IR smail "'s" X.I paths Xdatabase. There is a bug in X.I sort -f Xthat causes non-alphanumeric keys to be sorted incorrectly. XConversion before sorting avoids this bug. X.SH SEE ALSO Xpathalias - by Peter Honeyman X.br Xsmail(8), paths(8), pathproc(8) X.SH VERSION X@(#)lcasep.8 2.1 smail 12/14/86 @//E*O*F doc/lcasep.8// if test 741 -ne "`wc -c <'doc/lcasep.8'`"; then echo shar: error transmitting "'doc/lcasep.8'" '(should have been 741 characters)' fi fi # end of overwriting check echo shar: extracting "'doc/pathproc.8'" '(891 characters)' if test -f 'doc/pathproc.8' ; then echo shar: will not over-write existing file "'doc/pathproc.8'" else sed 's/^X//' >doc/pathproc.8 <<'@//E*O*F doc/pathproc.8//' X.TH PATHPROC 8 X.SH NAME Xpathproc \- pathalias post\-processor for smail routing database X.SH DESCRIPTION X.I Pathproc Xtakes lines of the form X.sp X.ce X\fIroute_cost key route\fP X.sp Xas produced by X.I pathalias -c Xand converts it to the form X.sp X.ce X\fI key route cost\fP X.sp Xas described in X.IR paths (8). XOn the input, the X.I route_cost Xis X.IR pathalias "'s" Xtotal cost for the route. XOn the output, the X.I cost Xis the cost for the X.I first segment Xof the route. XThis represents the cost, to the local host, Xof passing the mail to its neighbor. X.PP XThe output is sorted by X.I key Xin ascending order. X.SH EXAMPLE XHere's an example of how you might use X.I pathproc: X.sp X.in+3 Xpathalias -c \fImap_files\fP | pathproc > newpaths X.br Xmv newpaths /usr/lib/uucp/paths X.in X.sp X.SH SEE ALSO Xpathalias - by Peter Honeyman X.br Xsmail(8), lcasep(8), paths(8) X.SH VERSION X@(#)pathproc.8 2.1 smail 12/14/86 @//E*O*F doc/pathproc.8// if test 891 -ne "`wc -c <'doc/pathproc.8'`"; then echo shar: error transmitting "'doc/pathproc.8'" '(should have been 891 characters)' fi fi # end of overwriting check echo shar: extracting "'src/Makefile'" '(743 characters)' if test -f 'src/Makefile' ; then echo shar: will not over-write existing file "'src/Makefile'" else sed 's/^X//' >src/Makefile <<'@//E*O*F src/Makefile//' X# Makefile for smail (not a installation makefile) X X# @(#)Makefile 2.2 (smail) 1/16/87 X XCFLAGS = -O X# X# System V Release 2.0 sites can use -lmalloc for a faster malloc X# X#LIBS = -lmalloc X XOBJECTS = main.o map.o resolve.o deliver.o misc.o alias.o headers.o getpath.o getopt.o X Xall: smail svbinmail lcasep pathproc X Xsmail: $(OBJECTS) X cc $(CFLAGS) $(OBJECTS) -o smail $(LIBS) X X$(OBJECTS): defs.h X cc $(CFLAGS) -c $< X Xsvbinmail: svbinmail.c defs.h X cc $(CFLAGS) svbinmail.c -o svbinmail X Xlcasep: lcasep.c X cc $(CFLAGS) lcasep.c -o lcasep X Xpathproc: pathproc.sh X cp pathproc.sh pathproc X chmod 755 pathproc X Xinstall: all X @echo read doc/Install X Xclean: X rm -f *.o *.ln a.out core X Xclobber: clean X rm -f smail rmail lcasep pathproc svbinmail @//E*O*F src/Makefile// if test 743 -ne "`wc -c <'src/Makefile'`"; then echo shar: error transmitting "'src/Makefile'" '(should have been 743 characters)' fi fi # end of overwriting check echo shar: "End of shell archive." exit 0