dosgate (9) DOSGATE dosgate (9) SYNOPSIS Introduction to DOSGATE Release 0.05 16-October-1992 A UNIX uucp/mail emulation package for IBM Personal Computers and compatible systems running MS-DOS. COPYRIGHT AND LEGAL INFORMATION DOSGATE Release 0.05 and the accompanying documentation and materials are Copyright 1988, 1991-1992 by Ammon R. Campbell. All rights are reserved, except as stated in the following paragraph. You may use, copy, or distribute the DOSGATE software files and the accompanying materials and documentation, hereinafter referred to as the 'SOFTWARE', provided that: (a) You include the entire unmodified software package including this document and all other accompanying documentation and materials in any copy or distribution, (b) You clearly mark any additions or alterations to the SOFTWARE as such and include prominently displayed information about how to contact the party or parties responsible for such additions or alterations in any copy or distribution, (c) You do not sell, rent, lease, trade, or otherwise exchange money, goods, or services for copies of or distributions of the SOFTWARE or otherwise use the SOFTWARE commercially with the sole exception that you may request that recipients of such copies or distributions reimburse you for media and shipping costs associated with the distribution providing these costs do not exceed ten US dollars per copy, (d) You do not take, send, or by your actions cause shipment of the SOFTWARE or any portion thereof to any country that does not recognize international copyright law, (e) You understand that the SOFTWARE is provided free of charge, "AS IS", without warranty of any kind. The author disclaims all warranties including but not limited to implied warranties of merchantability or fitness for a particular purpose. The entire risk arising out of or resulting from the use of the software and any accompanying materials rests entirely with the user. DESCRIPTION DOSGATE is a software package designed to emulate a subset of the functions of a typical UNIX uucp mail system installation. The software allows a suitably equipped IBM PC or compatible computer to exchange electronic mail with other uucp-capable computers, potentially all over the dosgate -1- dosgate dosgate (9) DOSGATE dosgate (9) world. This release of DOSGATE also includes a limited facility for receiving a usenet news feed. Users who are familiar with uucp mail systems may find DOSGATE somewhat familiar in that it emulates some of the arcane but 'standard' setup of UNIX-like uucp mail systems. DOSGATE can be configured as a multi-user or single-user mail system. See the INSTALLATION section for more details. WARNING: Users who are not familiar with uucp mail systems may find DOSGATE to be an extremely obtuse and unfriendly software package. That is a fair complaint. I wrote DOSGATE for my own use, so I could send and receive uucp mail on my own personal computer. Since DOSGATE works for my purposes, you may find that it works for your purposes. However, be warned that DOSGATE is NOT user-friendly, it is NOT a commercial software product, and there is NOT a technical support hotline for it. DISTRIBUTED FILES The DOSGATE distribution includes the following files. If any of these files are missing, please contact the source of your distribution and obtain replacements. readme This file contains last minute information about the DOSGATE release which was not available in time for placement into the DOSGATE documentation. dosgate.txt This file contains the DOSGATE documentation, formatted for output to the system console. dosgate.prn This file contains the DOSGATE documentation, formatted for output to a line printer or teletype. dosgate.cfg This file is a sample master configuration file for DOSGATE. It must be modified before DOSGATE will operate on your system. See the INSTALLATION section for more details. L.sys This file is a sample remote system configuration file for DOSGATE. It must be modified before DOSGATE will operate on your system. See the INSTALLATION section for more details. dosgate -2- dosgate dosgate (9) DOSGATE dosgate (9) passwd This file is a sample login configuration file for DOSGATE. It must be modified before DOSGATE will operate on your system. See the INSTALLATION section for more details. active This file is a sample active news groups file for DOSGATE. If you plan to receive usenet news, this file may need to be modified before DOSGATE will operate on your system. See the INSTALLATION section for more details. expire.exe This is a utility for deleting out of date news articles. If you do not plan to receive a usenet news feed, you will not need this program. mail.exe This is the mail program used for sending and reading electronic mail messages. passwd.exe This is a utility that is used for changing the password for a user on your system. Since any remote system that contacts your system to deliver electronic mail is considered a 'user', it is to your benefit to protect your system by having passwords for each user to protect your system from unwanted contact from other systems. The use of passwords is not required, however. pathalia.exe This is a utility that constructs a path aliases database from uucp map files. The use of this program is optional, and assumes the uucp map files are available from Usenet or another source. pathto.exe This is a utility for retrieving uucp mail paths from the path aliases database constructed by the pathalias utility. The use of this program is optional. postnews.exe This is the program used for posting new usenet news articles. If you do not plan to receive a usenet news feed, you will not need this program. readnews.exe This is the program used for reading usenet news articles. If you do not plan to receive a usenet news feed, you will not need this program. rmail.exe This is a utility for queueing electronic mail for remote transfer and queueing remotely transferred mail into mailbox files on the local system. dosgate -3- dosgate dosgate (9) DOSGATE dosgate (9) rnews.exe This is a utility for delivering received news articles to news spool directories on the local system. If you do not plan to receive a usenet news feed, you will not need this program. uncomp.exe This is a utility for decompressing compressed news batches. If you do not plan to receive a usenet news feed, you will not need this program. uucico.exe This is the remote communications and file transfer utility. It sends and receives files from remote systems based on the queued requests from rmail and uucp. uucp.exe This is a utility for queueing files for remote transfer. If you plan to transfer only electronic mail with DOSGATE, you will not need to use this program. uudecode.exe This is a utility for decoding messages that have been encoded by the uuencode utility. If you only plan to transfer electronic mail messages in text format, you will not need to use this program. uuencode.exe This is a utility for encoding binary files into a format that can be sent as an electronic mail message. If you only plan to transfer electronic mail messages in text format, you will not need to use this program. uustat.exe This is a utility that scans for and displays any requests that are currently queued for uucico. uux.exe This is a utility used by the rmail program to queue messages for delivery to remote systems. uuxqt.exe This is a utility used by the uucico program to process commands from remote systems, such as commands that tell DOSGATE how to deliver electronic mail. HISTORY DOSGATE began out of the author's frustration with other uucp software packages (circa 1987) for the IBM PC. Some could transfer files from other computers, but didn't have mail software included. Some could transfer mail, but couldn't transfer regular files. Some were highly unreliable. Some only worked in 'slave' mode. Some only worked in 'master' mode. Some didn't do much of anything except lock up computers or refuse to compile. dosgate -4- dosgate dosgate (9) DOSGATE dosgate (9) Rather than delve into the source code of one of the freely available packages and modify it to do what I wanted, I decided that writing a new software package from scratch would (A) be very educational [and it has been], and (B) the software would work exactly the way I wanted it to [which, alas, still isn't quite true]. In 1988, DOSGATE successfully transferred its first mail message to another system, and was soon after given to several other people interested in MS-DOS-based mail. This version was labelled "DOSGATE Release 0.00 Experimental". Shortly thereafter, a number of compatibility problems with certain remote hosts were corrected, and the resulting "Release 0.01" was distributed to interested parties and uploaded to several bulletin boards. After a two year hiatus, releases 0.02, 0.03, and 0.04 (1991-1992) became available to correct some obscure modem compatibility problems, to generally polish the package, and to correct a few errors in the documentation. Just after DOSGATE Release 0.04 went out, I became interested in learning the details of how a news feed works by developing the necessary software from scratch, much like the interest in uucp and mail that started the DOSGATE project in the first place. And the requests from the field asking for news support were certainly no hindrance. As of this writing (Release 0.05), the news spooling software is being included for the first time. Release 0.05 also includes the addition of path aliasing features which, when properly maintained with up to date uucp maps by the user, allow the mailer to understand domain addresses and route mail more effectively without the assistance of a remote smart host. The current plan is for DOSGATE Release 0.06 to be ready during the spring of 1993, including significant improvements to the news software. OTHER UUCP MAIL PACKAGES FOR IBM PERSONAL COMPUTERS For your information, here is a list of some of the IBM PC compatible uucp packages that I am aware of. The descriptions given below are my personal opinions about having briefly used (or attempted to use) some of them and are therefore not necessarily accurate assesments of the software. This information is presented to motivate you to investigate alternatives to DOSGATE. Just because I think DOSGATE is neat is no reason to believe that it's the best uucp software for you. DCP is a uucp package by Richard H. Lamb, and can be found posted on various computer bulletin boards and usenet archives under the name "DCP" or "UUCLONE". The most recent version I have seen is dated some time in 1987. According to the sparse documentation, it appears to dosgate -5- dosgate dosgate (9) DOSGATE dosgate (9) work on PCs, UNIX systems, VMS systems, and Data General systems. If you decide to check out DCP, be prepared to spend a moderate amount of time figuring out how to build it and what it does, as there is almost no documentation and I have not seen it distributed in executable form. Also note that DCP includes only the uucp transport (uucico equivalent), so additional software is needed for mail and/or news. PC-Mail is a uucp package by Wietse Venema, and can be found posted on various computer bulletin boards, and was at one time posted to the usenet news group 'comp.sources.misc', so it may also be available from a news archive somewhere. PC-Mail appears the most user-friendly of the uucp packages I have seen (if you can call any of them user-friendly), because it has a real screen editor for reading/sending mail. PC-Mail is the least 'UNIX-like' of the uucp packages I have seen. PC-Mail is a mail-only package; it does not support news. UUPC is a uucp package that is currently maintained by Andrew H. Derbyshire, although numerous persons have contributed to its development. It can be found posted on various computer bulletin boards. This package is also available cheaply from the Austin Codeworks. UUPC is a derivative of Lamb's DCP software (mentioned above). The most recent version I have seen is dated some time in 1990, though new versions seem to be available frequently. UUPC is the most polished uucp package I have seen, and includes actual useful documentation and example configuration files, though it's still a far cry from a shrink-wrapped commercial package. GNUUCP is a uucp package by the Free Software Foundation's Gnu project, and can be found posted on various computer bulletin boards and usenet archives, or can be obtained directly from the Gnu folks. I haven't actually used GNUUCP, so I don't have any particular comments about it. Note that to the best of my knowledge, GNUUCP is a uucp transport only, and requires additional software for mail and/or news. UFGATE is a uucp-to-Fidonet gateway package for Fidonet bulletin board systems. Since I don't have a Fidonet bulletin board system, I didn't look into this package. If you DO have a Fidonet system, this may be the ticket for you. dosgate -6- dosgate dosgate (9) DOSGATE dosgate (9) WAFFLE is a combination of a computer bulletin board system (BBS) and uucp package for PCs that I have heard about but never actually seen. It may be worth your while to check it out. FSUUCP is a uucp package for PCs that I have heard about but never actually seen. It may be worth your while to check it out. Something that struck me as interesting about my investigations of uucp software for PCs is that I couldn't find any pre-packaged commercial products in this genre. Maybe some are available, but, if so, they aren't advertised in obvious places. All of the software packages mentioned above are 'shareware', 'freeware', or other forms of 'user supported' software. This means there isn't a place you can go to get a shrink-wrapped, pre-configured uucp package with a totally automatic installation program and 24 hour free technical support, which is what many people seem to want after they experience typical uucp installation headaches. SYSTEM REQUIREMENTS DOSGATE will run on virtually any IBM-PC or PC/AT compatible computer, if it has a hard disk, at least 384K of free memory (540K for a news feed), a modem or serial connection to another uucp-capable computer, and MS-DOS or IBM Personal Computer DOS version 3.0 or newer. While DOSGATE will run on an IBM-PC/XT compatible computer, a 286 or better CPU is strongly recommended. A high speed modem is also strongly recommended for installations that receive usenet news or transport high volumes of electronic mail. The software uses approximately one megabyte of disk space, plus whatever additional space is needed to accomodate any electronic mail that will be sent or received and/or news articles that will be stored. For a single-user setup with a moderate volume of electronic mail and no news articles, two or three megabytes is often sufficient. For a multi-user setup or a large news feed, many megabytes may be needed depending on the level of activity. INSTALLATION Installation is straightforward, but must be done manually. Copy the contents of the distribution diskette or archive into a directory named by the MS-DOS PATH environment variable. See your "MS-DOS User's Guide" for more information on the PATH environment variable. The examples in the documentation assume the software has been installed in a directory named "c:\dosgate", but another directory may be used if desired. dosgate -7- dosgate dosgate (9) DOSGATE dosgate (9) Once the software has been placed in a suitable directory, several files must be modified before the software can be used. The dosgate.cfg, L.sys, and passwd files must be modified. If you plan to receive usenet news, the active file should also be modified. Refer to the documentation on these files (later in the manual) for details. Once the configuration files have been modified, several empty directories must be created. Specifically, the directories that were selected as the 'tmpdir', 'pubdir', 'spooldir', 'maildir', and 'newsdir' directories in the dosgate.cfg file must be created. The directory for the log files selected in the dosgate.cfg file must also be created if different from those named above. USAGE Once the software has been installed, and the connection details between you and the administrator(s) of the system(s) with which your system will be communicating are taken care of, basic usage typically involves running the mail program to read mail sent from other users and to send new mail, running the readnews program to read new usenet news articles (if your installation includes a usenet news feed), running the postnews program to post new usenet news articles, and running the uucico program to connect to remote systems to transfer incoming and outgoing mail message files and incoming usenet news articles. For details on these and the other programs in DOSGATE, refer to the rest of the documentation. The uucico, uucp, and uuxqt programs append log messages to log files, thereby keeping a historical record of the operations performed. These log files grow in size over time. In order to prevent the log files from occupying undue amounts of disk space, they should be deleted periodically. In installations that receive usenet news, the expire program should be run periodically to delete out of date news articles. News articles can use considerable amounts of disk space, and if the articles are not deleted periodically, the disk may rapidly become full. The author knows of at least one site that receives 250 megabytes of usenet news articles per month, a situation that requires careful administration of news expirations to keep the most useful news articles on the disk without filling it up. NOTE: I am probably assuming alot in expecting that you will be able to figure out how uucico, mail, and the other programs work by reading my documentation (see the reference sections below). If you get stuck, try perusing a UNIX administrator's guide, enlisting the aid of someone already familiar with uucp mail systems, or reading one of the excellent but difficult to find books on the topic. Also refer to the "SOURCES OF FURTHER INFORMATION" dosgate -8- dosgate dosgate (9) DOSGATE dosgate (9) section of the manual. FILENAMES DOSGATE commands will accept standard MS-DOS filenames. The backslashes that are used to separate directory names may optionally be replaced by slashes per the UNIX convention. For example, the filename c:\usr\local\bin\myfile.txt is equivalent to c:/usr/local/bin/myfile.txt and either form may be used. Since uucp implementations must be able to handle filenames from systems that are usually not MS-DOS compatible, DOSGATE converts filenames from remote systems into filenames that are acceptable to MS-DOS. DOSGATE attempts to preserve these filenames as closely as possible, but certain filenames will be truncated. Generally, DOSGATE will handle non-standard filenames from remote systems by stripping all periods out of the filename and inserting a period after eight characters. If a filename contains more than eleven non-period characters, it will be truncated. HOW TO CONTACT THE AUTHOR The author may be contacted via CompuServe mail at: 71441,2447 or UUCP mail at: 71441.2447@compuserve.com or ...uunet!compuserve!71441.2447 or ...uunet!sequent!jli!ionz!root or ...uunet!sequent!jli!ionz!ammon SOURCES OF FURTHER INFORMATION Books: Title: "Managing UUCP and Usenet" Written by: Tim O'Rielly and Grace Todino Published by: O'Reilly and Associates, Inc. Title: "Using UUCP and Usenet" Written by: Grace Todino and Dale Dougherty Published by: O'Reilly and Associates, Inc. Title: "!%@:: A Directory of Electronic Mail, Addressing & Networks" Written by: Donnalyn Frey and Rick Adams Published by: O'Reilly and Associates, Inc. dosgate -9- dosgate dosgate (9) DOSGATE dosgate (9) Title: "UNIX Programmer's Manual Volume 1" Written by: Bell Telephone Laboratories, Incorporated Published by: Holt, Reinhart and Winston Internet RFC Documents: Title: "Standard for the Format of ARPA Internet Text Messages" Document number: RFC 822 Title: "UUCP Mail Interchange Format Standard" Document number: RFC 976 Title: "The Hitchhikers Guide to the Internet" Document number: RFC 1118 RFC documents may be requested by return email from a server at the Internet Network Information Center by sending an email message to "service@NIC.DDN.MIL" with the document number in the subject line of the message (i.e. "Subject: RFC 822"). To request an index of the RFC documents available, send a message with "RFC INDEX" in the subject line (i.e. "Subject: RFC INDEX"). Placing "HELP" in the subject line will request additional information about the services available from the NIC server. A NOTE ON DIALING AND HANGUP PROBLEMS WITH CERTAIN MODEMS Some modems require extra delays before and/or after certain commands to operate correctly with DOSGATE. If difficulties are encountered, extra '\d' sequences at the beginning and end of each modem command string in the dosgate.cfg file may solve the problem. It is also recommended that MNP, V.42, and other forms of data correction and compression be disabled on modems that support these capabilities. This can usually be accomplished by referring to the modem owner's manual and interting the appropriate modem command in the 'modeminit' or 'modemdial' string(s) in the dosgate.cfg file. A NOTE ON HIGH SPEED COMMUNICATION PROBLEMS Some slower computers cannot keep up with high data transfer rates. For example, an IBM PC/XT compatible computer often will not function at a baud rate higher than 9600. Some IBM PC/AT compatibles and 386SX based systems begin to have problems as the transfer rate approaches 14400 or 19200 baud. If you experience problems when communicating at high data transfer rates, try lowering the data transfer rate to 9600 baud or lower. A NOTE ON UART COMPATIBILITY The DOSGATE UART driver has problems with the 8250 UART chips on some older serial adapters typically found in very old IBM PCs, PC/XTs, and clones. If uucico refuses to communicate with a modem at all, examine the 8250 UART chip(s) in your system. If it is an older UART manufactured by National Semiconductor Corporation, you may have trouble. These chips typically have two markings, one of which is "INS8250", and another which is a four digit number dosgate -10- dosgate dosgate (9) DOSGATE dosgate (9) that indicates the date of manufacture, of which the first two digits indicate the year. If the chip is marked "INS8250A", it is one of the newer chips and should be okay. If the UART has a completely different marking, it should be okay. ACKNOWLEDGEMENTS IBM Personal Computer, IBM PC, PC/XT, and PC/AT are registered trademarks of IBM Corp. MS-DOS is a registered trademark of Microsoft Corp. UNIX is a registered trademark of AT&T Bell Laboratories. All other trademarks are of their respective owners. dosgate -11- dosgate intro (9) DOSGATE intro (9) INTRODUCTION TO THE UUCP NETWORK A Brief History of UUCP In the late 1970s, AT&T Bell Laboratories put a utility program into the UNIX operating system which was used for copying files between UNIX systems. This program was named "uucp", which is an acronym for "UNIX-to-UNIX copy". This uucp program used a set of related programs to communicate with other computers over serial data lines, often using modems and dialup telephone lines as a medium. The uucp program and its related programs became the basis for transferring electronic mail and other data between UNIX systems. Thus, the term "uucp" came to refer not only to the UNIX-to-UNIX copy program itself, but also to the method (or protocols) by which the UNIX systems exchanged information and delivered electronic mail messages. Over time, many UNIX systems established regular uucp connections with each other to exchange electronic mail and other information, and the uucp network was born. It was only a matter of time before people with non-UNIX systems wanted to be able to communicate with this group of UNIX systems in order to take advantage of the growing network of locations with which it would be possible to exchange electronic mail. Software developers began developing communication programs for other computers to support uucp protocols. Today the uucp network is vast, and, although the majority of its component systems are still UNIX systems, there are an astounding variety of other types of systems in the uucp network. There are uucp implementations running on everything from IBM mainframes and Digital Equipment Corporation VAXes to IBM Personal Computers, Apple Macintoshes, and Commodore Amigas. Today's uucp network also includes communication gateways to other networks, so it is possible to send electronic mail from a uucp site not only to other sites within the uucp network, but also to sites in most of the other major computer networks in the world. How the UUCP Network Works The only requirements for being a member of the uucp network are (1) having a computer and software that can communicate using uucp protocols, and (2) having a connection to another computer in the uucp network that is willing to exchange electronic mail or other information with your computer. Thus, the uucp network has no central controlling authority. Its existance depends on the gratuity of the individual system owners within the network who allow their computers to be used to carry messages and information between other systems in the network. intro -1- intro intro (9) DOSGATE intro (9) The uucp network is a "store and forward" network, meaning that messages are forwarded from one machine to be stored on another, and then forwarded from that machine to be stored on another, and so on, until the messages arrive at their destination. As an example of how electronic mail navigates around the uucp network, assume that we have several computer owners: Bob, Tina, Rick, Jane, Pat, and Bill. Now, observe the following hypothetical but realistic situation: 1. Bob and Tina have agreed that Bob's computer will call Tina's computer every evening. If Tina's computer has any mail that needs to go to Bob's computer, it will be transferred to Bob's computer when Bob's computer connects to Tina's computer. Likewise, If Bob's computer has mail that needs to go to Tina's computer or to another computer connected to Tina's computer, it will be transferred to Tina's computer when they connect. 2. Tina and Rick have agreed that whenever Tina's computer has mail that needs to go to Rick's computer or to another computer connected to Rick's computer, that Tina's computer will call Rick's computer and transfer the mail. Likewise, if Rick's computer has mail that needs to go to Tina's computer or to another computer that is connected to Tina's computer, Rick's computer will call Tina's computer and transfer the mail. 3. Tina and Bill have agreed that whenever Tina's computer has mail that needs to go to Bill's computer or to another computer connected to Bill's computer, that Tina's computer will call Bill's computer and transfer the mail. Likewise, if Bill's computer has mail that needs to go to Tina's computer or to another computer that is connected to Tina's computer, Bill's computer will call Tina's computer and transfer the mail. 4. Jane and Rick have agreed that whenever Jane's computer has mail that needs to go to Rick's computer or to another computer connected to Rick's computer, that Jane's computer will call Rick's computer and transfer the mail. Likewise, if Rick's computer has mail that needs to go to Jane's computer or to another computer that is connected to Jane's computer, Rick's computer will call Jane's computer and transfer the mail. 5. Rick and Pat have agreed that Rick's computer will call Pat's computer every evening. If Pat's computer has any mail that needs to go to Rick's computer, it will be transferred to Rick's computer when Rick's computer connects to Pat's computer. Likewise, if Rick's computer has mail that needs to go to Pat's computer or to another computer connected to Pat's computer, it will be transferred to Pat's computer when they connect. intro -2- intro intro (9) DOSGATE intro (9) Thus, we have a hypothetical uucp network consisting of six computers connected like this: +------+ | Bill | +------+ || +-----+ +------+ +------+ +------+ | Bob |====| Tina |====| Rick |====| Jane | +-----+ +------+ +------+ +------+ || +------+ | Pat | +------+ Using this example, if Bob sends mail to Tina, the mail is stored on Bob's computer until Bob's computer calls Tina's computer, at which time the mail message is transferred to Tina's computer where Tina can read it. If Bob sends mail to Bill, the mail is stored on Bob's computer until Bob's computer calls Tina's computer, and then the mail message is transferred to Tina's computer. The mail message is then stored on Tina's computer until Tina's computer calls Bill's computer, at which time the mail message is transferred from Tina's computer to Bill's computer where Bill can read it. Likewise, if Pat sends mail to Bill, the message must go from Pat's computer to Rick's computer to Tina's computer to Bill's computer. And if Bob wants to send mail to Jane, the message must go from Bob's computer to Tina's computer to Rick's computer to Jane's computer. The amount of time required for a message to be delivered depends on how frequently the computers contact each other to transfer mail messages. For example, if Tina's computer only contacted Bill's computer once per week, it could take up to a week for mail from from Bob to reach Bill. Bob's computer might call Tina's computer on any day of the week to transfer Bob's message, but Bob's message would then be stored on Tina's computer until the day of the week that Tina's computer called Bill's computer. This would not be an unrealistic situation if the connection between Tina's computer and Bill's computer was an expensive long distance telephone call. These examples depict the "store and forward" nature of the uucp network. A message travelling on the network depends on each computer connected between the sender's computer and the intended recipient's computer in order for the message to reach the recipient. In order to understand how fragile the uucp network can be, let's assume that Rick's computer broke down, or that Rick's company that happened to own the intro -3- intro intro (9) DOSGATE intro (9) computer went out of business. This would not only take Rick out of the network, but also Jane and Pat, since their computers depend on Rick's computer as their connection to the rest of the network. If this happened, Jane and Pat might be able to make a deal with, say, Bill to have their computers call Bill's computer, which would put them back on the network. But even if Bill agreed to permit their calls to his computer, the cost of long distance phone calls might be too much for Jane and Pat, in which case they would still be out of luck. While this discussion has not covered any of the technical details of the uucp network, it has hopefully provided the reader with a general idea of how the network operates. ACKNOWLEDGEMENTS UNIX is a registered trademark of AT&T Bell Laboratories. IBM and IBM Personal Computer are registered trademarks of IBM Corp. All other trademarks are of their respective owners. intro -4- intro chkmail (9) DOSGATE chkmail (9) NAME chkmail - check mailbox for mail messages SYNOPSIS chkmail [options] [username] DESCRIPTION Chkmail determines if there are mail messages waiting in a particular user's mail spool file. If chkmail finds no mail messages in the specified user's mailbox file, no message will be output. If, however, chkmail finds mail messages in the specified user's mailbox file, the message "You have mail" will be output. If a username argument is given, chkmail will check that user's mail spool file. If no username argument is given, chkmail will examine the "USER" environment variable to determine which user's mailbox file should be checked. If no username argument is given and the "USER" environment variable is not set, chkmail will output an error message. Options: -m"message" instructs chkmail to output "message" instead of "You have mail" if the user's mailbox contains mail messages. The message may contain control characters, which are written as a letter preceeded by a caret (^). For example, the option '-m"Hey you^G"' would output the message "hey you" followed by the Control-G character, which sounds a bell at the console. -? instructs chkmail to output a summary of the program and perform no other actions. FILES dosgate.cfg, passwd SEE ALSO dosgate(9), dosgate.cfg(10), mail(9), passwd(10) BUGS None known. chkmail -1- chkmail expire (9) DOSGATE expire (9) NAME expire - expire news articles SYNOPSIS expire [options] DESCRIPTION Expire deletes out of date news articles. By default, all articles older than fourteen days are deleted. Expire should be run periodically to prevent news articles from occupying undue amounts of disk space. Options: Several options modify the way expire works. -eN instructs expire to delete articles which are more than 'N' days old; otherwise articles older than fourteen days are deleted. -nGROUP instructs expire to only check the age of articles which are under the news group hierarchy specified by 'GROUP'; otherwise expire checks every article in the news hierarchy. For example, 'expire -ncomp' would expire articles in any group whose name begins with 'comp', while 'expire -ncomp.sources.unix' would expire only articles in the group 'comp.sources.unix'. -x enables debugging output. -? outputs the program name, version, copyright, and a summary of the command line usage. If this option is used, expire will perform no other actions. TECHNICAL Expire examines the active news groups file and, for each news group specified therein, does the following: 1. Checks to see if the group is within the news hierarchy specified by the '-n' option (if used), and skips on to the next group if it is not. 2. Scans through each article in the group's news spool directory. 3. Examines the timestamp of each article to determine how old it is. 4. If the article's timestamp is older than the expiration age (set with the '-e' option, or default of 14 days) the article file is deleted. expire -1- expire expire (9) DOSGATE expire (9) 5. Updates the group's 'oldest' field in the active news groups file to reflect the oldest remaining article in the group's news spool directory. FILES active, dosgate.cfg SEE ALSO active(10), dosgate(9), dosgate.cfg(10), rnews(9) BUGS None known. expire -2- expire mail (9) DOSGATE mail (9) NAME mail - read and send electronic mail SYNOPSIS mail [options] [recipient ...] DESCRIPTION The mail command is used for both reading and sending electronic mail. The command line arguments determine what mail will do. If no recipient arguments are given, mail checks the user's mail spool file for messages. If no messages are present, the message "No mail" is output; otherwise a menu showing the sender and subject line of each of the first eight messages is output, followed by a prompt from which the user may enter one of the following commands: 'N' displays a menu of the next page of eight messages (if any). 'P' displays a menu of the previous page of eight messages (if any). 'Q' quits the mail program, removing any deleted messages from the mail spool file. Or the user may enter the message number of a message shown on the menu, which will cause the selected message to be output to the console, after which the user will be prompted for the disposition of the message. At this prompt, the user may enter one of the following commands: 'D' marks the selected message for deletion. Deleted messages are removed from the mail spool file when the mail program terminates. 'S' saves the selected message to a file. The user is prompted for the filename. If no filename is entered, the default file of 'mbox' will be written. If the specified file already exists, the message will be appended to it. 'U' unmarks the selected message if it was previously marked for deletion. 'F' forwards the selected message to another user. Mail will prompt for the name of the user to forward the message to, and then attempt to queue the message for re-delivery to the specified user. mail -1- mail mail (9) DOSGATE mail (9) 'L' leaves the selected message alone. 'R' prepares to send a reply to the selected message, in which case the user will be prompted to enter a new message at the console which will then be queued for transmission to the originator of the selected message. If recipient arguments are given, mail will read a message from standard input and send it to each named recipient. The message may be terminated by a control-Z character, or by entering a line containing a single period "." with no other text. For example, assume that "joe" and "karen" are mail users on the same system. The command mail joe karen would read a message from standard input and send the message to "joe" and "karen". The recipients specified may be on a remote system, in which case a path to the remote system must be specified as part of the recipient name. For example, assume "jim" is a user on a machine "lana" which has a UUCP connection to the sender's machine. The command mail lana!jim would send the message to "jim". To send mail to users on systems that are not at directly adjacent UUCP addresses, the recipient name must include a mail path, which includes the names of each system between the sender's system and the recipient's system. For example, the command mail lana!arts!toadlips!lisa would send mail to a user named "lisa" at the site "toadlips". This assumes that "lana" is a system connected to both the sender's system and the site "arts", and that "arts" is also connected to "toadlips". mail -2- mail mail (9) DOSGATE mail (9) If the smart host forwarding feature is enabled (see the "smarthost" setting in the dosgate.cfg file), or a path aliases database exists (refer to the pathalias program and the "pathaliasfile" setting in the dosgate.cfg file), then mail addresses of the form: user@domain or domain!user may also be used. For example, the command: mail lana!arts!toadlips!lisa could be simplified to: mail lisa@toadlips assuming that the smart host feature is enabled and/or the path aliases database contains a valid entry for "toadlips." Options: Several options modify the way mail works. -xN enables debug output. The amount of detail is determined by the debug level 'N', which must be a digit from 1 to 9. -iFILE reads the mail message from the named 'FILE' instead of standard input. This option is ignored if there are no recipient arguments. -k instructs mail to keep a copy of the new message in the sender's mailbox in addition to sending it to the named recipient(s). This option is ignored if there are no recipient arguments. -s"SUBJECT" sets the subject line of the new mail message to "SUBJECT", instead of prompting for the subject when the message is entered. Note that if '-i' is used without '-s', the subject of the message will read "(none)". This option is ignored if there are no recipient arguments. -uNAME temporarily sets the username to 'NAME' instead of the username specified by the USER environment variable. mail -3- mail mail (9) DOSGATE mail (9) -? outputs the program name, version, copyright, and a summary of the command line usage. If this option is used, mail will perform no other actions. Mail uses the 'USER' environment variable to determine the name of the current user. If no 'USER' environment variable is present, and no '-u' option is used, mail will prompt the user to enter a username at the console before continuing. TECHNICAL Mail does not do the work of sending messages by itself. Mail actually does the following: - Reads a message from standard input or other file specified. - Formats the message and adds a mail header to it. - Invokes the rmail utility to send the message. When reading mail, the mail program looks in the current user's mail spool file, which contains all the incoming messages appended together. The mail spool file is located by reading the name of the mail spool directory from the DOSGATE configuration file and appending the user's name to the directory name. For example, if the configuration file says that the mail spool directory is called "C:\USR\SPOOL\MAIL", then the mail spool file for a user named "joe" would be "C:\USR\SPOOL\MAIL\JOE". Alternatively, The 'separatemail' setting in the configuration file can be used to force each user's mail spool file to reside in a separate directory under the mail spool directory. FILES passwd, paths, dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), passwd(10), pathalias(9), paths(10), rmail(9), uucp(9) BUGS None known. mail -4- mail passwd (9) DOSGATE passwd (9) NAME passwd - change a user's password SYNOPSIS passwd [username] DESCRIPTION Passwd allows a user's password to be changed. If a password already exists, the old password must be provided before a new password can be given. Passwd gets the username from the 'USER' environment variable, unless a different username argument is specified. If no username argument is given and the 'USER' environment variable is not set, passwd outputs an error and stops. If an old password exists for the specified user, passwd prompts "Old password" and waits for a password to be entered. The password is not displayed on the console as it is typed. If the password entered is not correct, passwd stops immediately. If no old password exists or the correct password is entered, passwd then prompts "New password" and waits for a password to be entered. The password is not displayed on the console as it is typed. The new password is then recorded. Note that since MS-DOS does not have built in filesystem security, the password mechanism provides true protection only from remote systems, not local users. TECHNICAL Passwd examines and modifies the 'passwd' file specified in the DOSGATE configuration file. FILES passwd, dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), passwd(10) BUGS None known. passwd -1- passwd pathalias (9) DOSGATE pathalias (9) NAME pathalia (pathalias) - construct path aliases database SYNOPSIS pathalias [options] mapfile ... DESCRIPTION Pathalias constructs the path aliases database file (or paths file) from information contained in uucp map files. Uucp map files are distributed periodically via Usenet, and are often available from other sources such as system administrators at large sites. The database created by pathalias is used by rmail to perform automatic routing (Class 2 routing in the parlance of RFC-976), providing that complete, accurate, and up to date uucp map files are used to produce the database. Pathalias parses each mapfile argument, and constructs a database of the best uucp mail paths between the local system and each system listed in the mapfile(s). The presence of a path aliases database allows the pathto program to operate. Several options modify the way pathalias works. -hN specifies that paths longer than N hops will not be generated. The number of 'hops' is the number of uucp contacts that must be made to reach one site from another. By default, pathalias checks each possible path up to six hops in length. This option can be used to set the maximum number of hops from two to twenty. Note that increasing the maximum number of hops will significantly increase the amount of time required for pathalias to generate the paths file. -pFILE instructs pathalias to write the path aliases database to FILE instead of the file specified by the 'pathaliasfile' setting in the dosgate.cfg file. -v enables verbose output. Normally pathalias runs silently unless errors occur. -x enables debugging output. -? outputs the program name, version, copyright, and a summary of the command line usage. If this option is used, pathalias will perform no other actions. pathalias -1- pathalias pathalias (9) DOSGATE pathalias (9) If the path aliases file is disabled (see the 'pathaliasesfile' setting in the dosgate.cfg file), pathalias will not construct the file. Pathalias may take a considerable length of time to generate the path aliases database file, depending on the size and number of uucp map file arguments. It is not uncommon to leave pathalias running overnight or over a weekend to generate a medium sized path aliases database. TECHNICAL This implementation of pathalias parses most traditional uucp map files. The lines in a uucp map file describe the sites to which each site is linked via uucp (or other transports in some cases), and any alternate names (i.e. domain names) for a site. A uucp link description line begins with the name of the site being described. Following the site name are records describing one or more sites to which the site being described is linked via uucp (or via other transport mechanisms in some cases; the transport mechanism is unimportant). Multiple links are separated by commas, and the link description may consist of multiple lines of text providing there is a comma at the end of each line except the last. As an alternative to a multi-line link description, a particular site may also have more than one line of links in the map file. Each record describing one uucp link consists of a site name, a left parenthesis '(', an expression describing the type (sometimes referred to as 'cost' or 'quality') of the connection, and a right parenthesis ')'. The expression consists of one or more integer operands and or keywords combined with the arithmetic operators '-' for subtration, '+' for addition, '*' for multiplication, or '/' for division. This expression evaluates to an integer value, which pathalias uses when determining which of several paths to a particular system is the best path. Smaller values indicate more desireable connections, while larger values indicate less desireable connections. The most commonly encountered expressions contain a single keyword to indicate the type of connection. The keywords include the following: pathalias -2- pathalias pathalias (9) DOSGATE pathalias (9) Keyword Value Meaning ------- ----- ------- DEDICATED 1 Permanent connection LOCAL 1 Local connection DIRECT 5 Direct contact DEMAND 10 Contact on demand HOURLY 20 Hourly contact DAILY 50 Daily contact EVENING 50 Evening contact POLLED 100 Polled contact WEEKLY 200 Weekly contact DEAD 1000 Rare contact FAST 0 Fast modem LOW 100 Low speed/rate For example: somebox hoser3(DAILY), archrade(HOURLY*2) indicates that the site 'somebox' has a uucp link to the site 'hoser3' with daily uucp contact, and also has a uucp link to the site 'archrade' with uucp contact every two hours. Note that the numeric values associated with each of the keywords is similar to but not identical to those used by other implementations of pathalias. Note that in order to specify that a particular site is a gateway for a particular domain or subdomain, the domains/subdomains are listed just like uucp links. For example: somebox .retch.com indicates that the site 'somebox' is a gateway for the domain '.retch.com' (which is a subdomain of the top level domain '.com'). For each remote site listed in the uucp map(s), pathalias sums the connection type values for each site in each of the possible paths from the local site to the remote site and selects the path with the lowest total 'cost' or connection type value. For example, assume the uucp map contains the following: mybox somebox(POLLED) somebox hoser3(DAILY), archrade(HOURLY*2) hoser3 tempest(DEMAND), somebox(DAILY), crock(POLLED) archrade tempest(DEMAND), somebox(HOURLY*2) tempest hoser3(DEMAND), archrade(DEMAND), uunet(POLLED) Now assume that the local site is called 'mybox', and pathalias is determining which is the best path to the site 'tempest' from the local site. In the example above, there are two possible paths from 'mybox' to 'tempest': pathalias -3- pathalias pathalias (9) DOSGATE pathalias (9) mybox!somebox!hoser3!tempest and mybox!somebox!archrade!tempest The cost of the first path is POLLED + DAILY + DEMAND (or 100 + 50 + 10) which comes out to 160. The cost of the second path is POLLED + HOURLY * 2 + DEMAND (or 100 + 20 * 2 + 10) which comes out to 150. Thus, the second path has the the lower value, so pathalias would write the second of these two paths (minus the local site name) to the paths file. The uucp map file may also describe alternate names for a site with a line containing a sitename, an equal sign '=', and a comma separated list of alternate names for the site. For example: mybox = mybox.uucp, mybox.com, mybox.mynet.com If alternate names are encountered, pathalias will write a uucp mail path for each of the alternate names to the paths file in addition to the uucp mail path for the site's default name. For more details on the format of uucp map files, obtain a copy of the sample uucp map file that is available periodically from Usenet or from another source of uucp map files. FILES dosgate.cfg, paths SEE ALSO dosgate(9), dosgate.cfg(10), mail(9), paths(10), pathto(9), rmail(9) BUGS This implementation of pathalias does not correctly parse lists of names enclosed in braces "{ }" which may sometimes appear in a uucp map file. This implementation of pathalias does not sort the entries in the paths file, as the associated mailer does not require a sorted database. This may be a problem, however, if the database is given to another site, or if third party mailing software is used with DOSGATE. pathalias -4- pathalias pathto (9) DOSGATE pathto (9) NAME pathto - retrieve uucp mail path to site or domain SYNOPSIS pathto [options] name... DESCRIPTION For each name argument, pathto retrieves the uucp mail path from the local site to the specified site/domain from the path aliases database file. If no path aliases database file exists (see the 'pathaliasfile' setting in the dosgate.cfg file) or the database contains no entry for the specified site(s), an error will be output. Several options modify the way pathto works. -pFILE instructs pathto to retrieve path aliases from FILE instead of the file specified by the 'pathaliasfile' setting in the dosgate.cfg file. -v enables verbose output. -? outputs the program name, version, copyright, and a summary of the command line usage. If this option is used, pathto performs no other actions. FILES dosgate.cfg, paths SEE ALSO dosgate(9), dosgate.cfg(10), mail(9), pathalias(9), paths(10), rmail(9) BUGS None known. pathto -1- pathto postnews (9) DOSGATE postnews (9) NAME postnews - post usenet news article SYNOPSIS postnews [options] DESCRIPTION The postnews command posts a new usenet news article, where it may be examined by other users with the readnews command. The text of the new article is read from standard input (unless the '-i' option, described below, is used), as are the names of the destination news groups (unless the '-n' option, described below, is used). If the 'newspostsites' setting in the dosgate.cfg file is not disabled, postnews will queue the new article for transmission to the specified remote sites. The articles are actually transferred by uucico the next time contact is established with the remote system. Options: Several options modify the way postnews works. -iFILE instructs postnews to read the text of the news article from FILE instead of standard input. -l instructs postnews to refrain from posting the article to remote systems. Normally postnews posts new articles to the local system and to each remote system specified by the 'newspostsites' setting in the dosgate.cfg file. -nGROUP instructs postnews to post the article to the news group GROUP, which may be a single news group name or a comma delimited list of news group names. -s"SUBJECT" sets the subject line of the new article to "SUBJECT". If '-s' is not used and '-i' is not used, postnews will prompt for a subject. If '-s' is not used and '-i' is used, the subject line will read "(none)". -uNAME temporarily sets the username to 'NAME' instead of the username specified by the USER environment variable. -x enables debug output. -? outputs the program name, version, copyright, and a summary of the command line usage. If this option is used, postnews will perform no other actions. postnews -1- postnews postnews (9) DOSGATE postnews (9) Postnews uses the 'USER' environment variable to determine the name of the current user. If no 'USER' environment variable is present, and no '-u' option is used, postnews will prompt the user to enter a username at the console before continuing. If no '-n' option is used, postnews will prompt the user to enter the names of the news groups to post the article to. TECHNICAL Postnews invokes the rnews program to deliver the article to the news spool directories on the local system. Postnews invokes the uux program to queue the article for delivery via remotely executed rnews commands. FILES active, dosgate.cfg, passwd SEE ALSO active(10), dosgate(9), dosgate.cfg(10), passwd(10), readnews(9), rnews(9), uux(9) BUGS None known. postnews -2- postnews readnews (9) DOSGATE readnews (9) NAME readnews - read usenet news articles SYNOPSIS readnews [options] DESCRIPTION The readnews command is used for reading usenet news articles. The articles must first be delivered to the local system by a remote system before readnews can access them. Readnews examines the active news groups file and the user's newsrc file to determine which news groups the user is subscribed to, and which articles the user has not yet read. If there are no unread news articles in any of the user's subscribed groups, the message "No news" will be displayed, and readnews will terminate; otherwise, readnews will proceed to prompt the user about which articles should be displayed. For each subscribed group with unread articles, readnews will ask whether the unread articles for the group should be displayed. If the user gives a negative response, readnews will skip to the next group and prompt again. If the user gives a positive response, readnews will ask one-by-one for each unread article about whether the article should be displayed or not, displays the article if the response is affirmative, and then prompts for the next article, until the user gives a negative response or until all unread articles in the group have been displayed. For each article that is displayed, the user is prompted for the disposition of the article, which may be any one of the following commands: D displays the article again. R sends a reply to the article via mail. The user is prompted to enter a mail message at the console, and the message is then sent via mail to the author of the selected news article. S saves the article to a file. The user is prompted for a filename, and the article is then saved to the specified file. N steps to the next article in the group (if any). Each time readnews terminates, it updates the contents of the user's newsrc file. readnews -1- readnews readnews (9) DOSGATE readnews (9) Options: Several options modify the way readnews works. -c Instructs readnews to create a new newsrc file in the user's home directory, ignoring any newsrc file that may already be there. -uNAME Temporarily sets the username to 'NAME' instead of the username specified by the USER environment variable. -x Enables debug output. -? Outputs the program name, version, copyright, and a summary of the command line usage, and performs no other actions. Readnews uses the 'USER' environment variable to determine the name of the current user. If no 'USER' environment variable is present, and no '-u' option is used, readnews will prompt the user to enter a username at the console before continuing. FILES active, passwd, newsrc, dosgate.cfg SEE ALSO active(10), dosgate(9), dosgate.cfg(10), newsrc(10), passwd(10), postnews(9), rnews(9) BUGS None known. readnews -2- readnews rmail (9) DOSGATE rmail (9) NAME rmail - route electronic mail SYNOPSIS rmail [options] recipient ... DESCRIPTION Rmail routes pre-formatted electronic mail messages to their intended recipients. Rmail is not generally invoked directly by users. It is instead invoked by the mail program for sending messages, and by uuxqt for delivering messages from remote systems. Rmail reads a mail message from standard input and attempts to send it to each recipient named on the command line. For detailed information on the format of recipient mail addresses, refer to the section on the mail program. Mail messages given to rmail must already be formatted and include a mail header. This header is normally created by the mail program or by a remote mail system. Rmail will add a line to the mail header which contains the time the message was 'received' by the local mail system, and will modify mail addresses in certain header lines to include the name of the local system if it is determined that non-domain addresses were used in the header lines. Options: Several options modify the way rmail works. -d Instructs rmail not to delete the file after it is sent. Normally rmail deletes the input file after it has been sent. -iFILE Instructs rmail to send the message contained in 'FILE' instead of reading the message from standard input. -s Instructs rmail to invoke uucico after queueing mail. This sends any messages queued to go to remote systems. -xN Enables debug output. The amount of detail is determined by the debug level 'N', which must be a digit from 1 to 9. -? Outputs the program name, version, copyright, and a summary of the command line usage, and performs no other actions. rmail -1- rmail rmail (9) DOSGATE rmail (9) A NOTE ON MAIL ADDRESSES Rmail's handling of addresses is a compromise that attempts to handle both uucp-style addresses (of the form site!...!user) and domain-style addresses (user@domain or domain!user). In order to be compatible with the largest number of systems, rmail makes the assumption that any site to which it is routing mail will only understand uucp-style addresses. Consequently, rmail will adjust or expand the recipient address(es) on the command line of each rmail command that is queued for remote execution so that the recipient addresses are always in the uucp-style format. However, the "To:" address in the header of each mail message is left intact so that each interposed site may have the opportunity to reevaluate the routing of the message if it so chooses. Rmail does not attempt to simplify (i.e. reroute) explicity specified uucp paths. TECHNICAL Rmail first determines whether the recipient of a message is on the local system or a remote system. If the recipient's address includes bangs (exclamation marks '!'), or an at symbol (@), the recipient is assumed to be on a remote system. If the recipient of a message is on the local system, rmail simply appends the message to the recipient's mail spool file where the recipient can read it with the mail command. If the recipient of a message is on a remote system, rmail invokes uux to queue the message for transmission to the remote system via uucico. Rmail gets invoked by uuxqt to deliver mail received from remote systems, and by the regular mail program to deliver mail from local users to other local users or to remote users. If the path aliases database is enabled (refer to the pathalias program), rmail will scan the paths file for a matching alias if a recipient's remote site/domain name is at first unrecognized. For any mail message with an unknown recipient address, rmail will attempt to forward the message to the smarthost if the smarthost feature is enabled in the dosgate.cfg file, or mails the message to the local postmaster (specified in the dosgate.cfg file) if the smarthost feature is not enabled or if the message is otherwise determined to be undeliverable. In RFC-976 parlance, rmail acts as a "Class 1" host if the path aliases database feature is not enabled. It will perform most of the responsibilities of a "Class 2" host given a reasonably sized path aliases database, but is only rmail -2- rmail rmail (9) DOSGATE rmail (9) a true "Class 2" host if the path aliases database contains paths for every subdomain in the local system's domain, and paths for at least one gateway of every top level domain. FILES L.sys, dosgate.cfg, paths SEE ALSO dosgate(9), dosgate.cfg(10), L.sys(10), mail(9), pathalias(9), paths(10), pathto(9), uucico(9), uux(9), uuxqt(9) BUGS None known. rmail -3- rmail rnews (9) DOSGATE rnews (9) NAME rnews - receive usenet news articles SYNOPSIS rnews [options] [newsfile...] DESCRIPTION Rnews delivers usenet news articles to the news spool directories on the local system where they can be examined by users. Typically, news articles are transmitted to the local system in 'news batches' from a remote system by uucico. Rnews reads each specified newsfile (or standard input if no newsfile arguments are given), and attempts to deliver the news articles contained therein to the appropriate news spool directories on the local system. Rnews is not generally invoked directly by users. It is instead invoked by the uuxqt program for delivering articles after they have been received by uucico. Options: Several options modify the way rnews works. -x Enables debugging output. -? Instructs rnews to output its name, version number, copyright notice, and command line summary, and perform no other actions. If a particular news group is disabled in the active news groups file, rnews will discard any incoming news articles bound for that group. Rnews updates the article numbers in the active news groups file each time it is invoked. TECHNICAL Rnews first determines the type of news file being fed to it. If the news file is a compressed batch, it will invoke the uncomp utility to decompress it, and then continue processing of the decompressed news file. If the news file contains batched articles, they are split into individual articles and delivered one by one. If the news file contains a single (non-batched) article, it is simply delivered. The delivery of an article involves the following steps: The header of the article is modified so that the name of the local system is included in the return path, and a "From" line is added listing the poster's address and the time the article was received by the local system. The "Newsgroups" line is then examined to determine which news groups the rnews -1- rnews rnews (9) DOSGATE rnews (9) article is to be delivered to. For each destination news group, rnews interrogates the active new groups file to determine the new article number, and then writes the article to the appropriate news spool directory for the specified group. If articles are recieved for groups that are not listed in the active file, the articles are appended to a file called articles.txt in the news spool directory for the group. Articles for each group are delivered to directories under the primary news spool directory (as defined in the dosgate.cfg file) according to the names of the news groups. For example, assume that the directory c:\dosgate\spool\news is the news spool directory. In this case, articles for a news group called comp.sources.unix would be delivered to the directory c:\dosgate\spool\news\comp\sources\unix, while articles for a news group called misc.invest would be delivered to the directory c:\dosgate\spool\news\misc\invest, and so on. FILES active, dosgate.cfg SEE ALSO active(10), dosgate(9), dosgate.cfg(10), expire(9), postnews(9), readnews(9), uucico(9), uncomp(9), uuxqt(9) BUGS None known. rnews -2- rnews uncomp (9) DOSGATE uncomp (9) NAME uncomp - uncompress a compressed file SYNOPSIS uncomp [-?] infile outfile DESCRIPTION Uncomp uncompresses files created by the compress utilities commonly used on some UNIX systems for creating compressed news batches. It is typically invoked by rnews to uncompress incoming news batches from remote systems. Uncomp reads infile, decompresses the data contained therein, and writes the decompressed data to outfile. The optional '-?' argument causes uncomp to instead output the name, version, copyright, and summary of the program, and perform no other actions. TECHNICAL Uncomp decompresses data that has been compressed using the "LZW" method. Code sizes from twelve to sixteen bits are supported. Up to 540K of memory may be required to uncompress files that have been compressed using sixteen bit codes. For details on LZW data compression, refer to Terry Welch's article in the June 1984 issue of Computer magazine. FILES None. SEE ALSO dosgate(9), rnews(9) BUGS None known. uncomp -1- uncomp uucico (9) DOSGATE uucico (9) NAME uucico - remote file transfer engine SYNOPSIS uucico [options] DESCRIPTION Uucico communicates with remote systems for the purpose of transferring files and initiating commands to/from remote systems over a serial line (usually through a modem). Uucico is the basis for UUCP file transfers and remote mail delivery. Uucico may operate in either of two modes. In "slave" mode, uucico waits for calls from other systems. In "master" mode, uucico makes a call to a remote system. The command line arguments determine which mode uucico operates in. If no command line arguments are given, uucico will operate in slave mode. This means uucico will run quietly until another site calls in on the modem. Once started in slave mode, uucico will never terminate unless interrupted. Uucico should only be interrupted while it is not busy (i.e. not talking to another site over the modem), or data loss may result. If the optional '-s' argument is given (see "Options" below), with a remote site's name, uucico will run in master mode and attempt to contact the specified site. For example, the command "uucico -slana" would tell uucico to call the site "lana". If no remote site's name is given with '-s', uucico will attempt to call each remote system listed in the L.sys file for which the times field is not "Never". Once uucico has been started, it operates automatically, based on the various requests queued by uucp and rmail, and requests from the remote system. There is usually no need for an operator. Since uucico normally doesn't output anything to the console while it is running, the operator may become impatient; it is important to resist the temptation to interrupt uucico in master mode unless it is apparent that something has gone wrong. Options: Several options modify the way uucico works. -sSITE Instructs uucico to contact system specified by 'SITE' in master mode. If no remote site's name is given with '-s', uucico will attempt to contact each system listed in the L.sys file for which the times field is not "Never". uucico -1- uucico uucico (9) DOSGATE uucico (9) If no '-s' option is given, uucico will operate in slave mode and wait for contacts from other systems. -w Instructs uucico not to contact the specified site(s) unless there is worked queued for them. This option may only be used with the '-s' option. -xN Enables debug output. The amount of detail is determined by the debug level 'N', which must be a digit from 1 to 9. -z Instructs uucico not to run uuxqt when finished communicating with another system. Normally uucico runs uuxqt each time it finishes communicating with another system. -? Outputs the program name, version, copyright, and a summary of the command line usage. If this option is given, no other arguments may be given. Uucico writes a log of the actions it performs to the uucico log file specified in the dosgate.cfg file. Since this log file is appended each time uucico is invoked, it should be deleted periodically to prevent it from occupying too much disk space. TECHNICAL - GENERAL The basic functioning of uucico involves communicating with the remote system, and invoking uuxqt when the communication is finished. The DOSGATE implementation of uucico communicates with remote systems using what is called the "g" packet protocol. This protocol is described below. The files transferred by uucico are dictated by the queued requests in special files created by the rmail and uucp commands, and by requests from the remote system with which uucico is communicating. TECHNICAL - THE UUCICO 'g' PACKET PROTOCOL This section describes the "g" packet protocol used by DOSGATE and most other uucp/mail implementations for UNIX and MS-DOS. Caveat: The author has figured this information out by trial and error and by looking at the serial data and log files that come out of various UUCP implementations, so this information may not be complete or entirely accurate. Once the login and session initialization with the remote system takes place, a transmission protocol is used for all remaining communications until the shutdown phase. Note uucico -2- uucico uucico (9) DOSGATE uucico (9) that this software supports only the "g" packet protocol (and only a subset at that). There are two categories of packets in the "g" protocol: control packets and data packets. These will be described below. Note that the term 'message' and 'packet' are used interchangably. All "g" protocol packets contain framing bytes, which the systems can (but rarely do) use for error checking. The first six bytes of the packet constitute the framing information, as well as the control information for control packets. The first byte of a packet is alway the ASCII "DLE" character, or Control-P. The second byte of a packet is always 9 for a control packet. For data packets, the second byte is calculated by the formula "log2(packet_size)-4", and is always between 1 and 8, inclusive. For control packets, the third byte is always zero and the fourth byte is always the same as the control byte (which is the fifth byte). For data packets, the third and fourth bytes are the low and high bytes of a 16-bit checksum of the data portion of the packet (the data portion includes the bytes AFTER the first six bytes). The checksum calculation is somewhat convoluted, and will not be described here. The fifth byte of a packet is the control byte, which is constructed of three bit fields, which, for historical reasons apparently, are called 'tt', 'xxx', and 'yyy'. These bit fields are arranged in the control byte thus: Bits: 76543210 Fields: ttxxxyyy The value of 'tt' determines the packet type, which must be one of: tt Description -- ------------------------------------ 00 Control packet 01 (never used, as far as I can tell) 10 Full data packet 11 Partial data packet For data packets, the 'xxx' and 'yyy' fields represent sequence numbers. Each packet sent is tagged with a sequence number which counts from zero to seven (and then rolls back to zero again), which is updated for each successive packet. Each system keeps its own independent sequence counter for the packets it sends. For all data packets, the 'xxx' field is the sending system's sequence number for the packet. The 'yyy' field is the sequence number of the last packet the sending system received from the other system. uucico -3- uucico uucico (9) DOSGATE uucico (9) For control packets, the 'xxx' field indicates the type of control message, and the 'yyy' field is a parameter for the control message. The possible values for the 'xxx' control are as follows: xxx Message Description --- --------- ------------------------------------- 000 ??? (not used, as far as I can tell) 001 CLOSE System is ready to end protocol 010 RJ Receiver jam, resend next packet 011 SRJ Receiver jam, resend specific packet 100 RR Receiver ready (acknowledge) 101 INITC Final init message 110 INITB Set data packet size 111 INITA Set window size The CLOSE control message is sent at the end of a session when a system is ready to shut down the packet protocol and return to using regular messages for signing-off. The RJ control message is sent to indicate that the receiver got jammed (packets were lost, garbled, etc). The 'yyy' field is set to the sequence number from the last packet that was received successfully. The system receiving the RJ message should resend the packets following the specified sequence number until the systems are resynchronized. The SRJ control message is sent to indicate that the receiver got jammed (packets were lost, garbled, etc). The 'yy' field is set to the sequence number of the packet that the system wants the other system to resend. Note that most systems have one type of receiver jammed message; some use RJ and some (mostly older or off-the-wall systems) use SRJ. The RR control message is sent by a system each time it successfully receives a data packet. This lets the other system know that it can continue to send more packets. Control packets do not need corresponding RR messages. The INITA control message is sent as the first packet during session initialization. The 'yyy' field is set to the window size that the system wants to use. Each system keeps sending INITA to the other until the other sends its INITA message. The INITB control message is sent to tell the other system the data packet size it wants to use. Each system keeps sending INITB to the other until the other sends its INITB message. The data packet size is calculated via " (1 << 'yyy') * 32 ", and only includes the data portion of the packet, not the framing and control bytes. The INITC control message is sent to tell the other system that is is done initializing. When each system has received an INITC message from the other, the session is considered to be started. Note the 'yyy' field should be the same as the 'yyy' field from the INITA packet. uucico -4- uucico uucico (9) DOSGATE uucico (9) The sixth byte of a packet is the exclusive-or of the second through fifth bytes of the packet. All control packets are exactly six bytes long. All data packets for a particular session are the same size; the size is set during the session initialization. TECHNICAL - THE UUCICO COMMUNICATION SESSION This section describes the messages exchanged by two systems engaged in uucico communications, exclusive of the packet protocol in use. Caveat: The author has figured this information out by trial and error and by looking at the serial data and log files that come out of various UUCP implementations, so this information may not be complete or entirely accurate. Login The first step in initiating a uucico session with a remote system is logging in. The 'master' system connects to the 'slave' system (in most cases) by modem or serial link. The slave outputs the familiar "Login:" prompt. The master sends its login name, to which the slave then responds with the "Password:" prompt. If the login name and password are correct, the slave proceeds to session initialization, otherwise the slave may wait for another login attempt, or may hang up the modem line. Session Initialization Once a remote system has logged in, the slave system will start up its UUCICO and send the message "\020Shere\0" to the master. On some systems, this message may be of the form "\020Shere=sitename\0", where "sitename" is the name of the slave's site. The master responds with "\020Ssitename\0", where "sitename" is the name of the master system. This message may also have switches appended, which may consist of "-xN", where N is the system's debug level, and "-QN", where N is the sequence number of the session. The switches are usually ignored by the slave. Next, the slave responds with one of the following: \020RLCK\0 meaning the site is locked by an LCK semaphore file, and cannot initiate a session. Following this, the slave will hang up. \020RCB\0 meaning this site is not allowed to dial in, only be dialed out to. Following this, the slave will hang up. uucico -5- uucico uucico (9) DOSGATE uucico (9) \020RBADSEQ\0 meaning the sequence number specified by the "-Q" switch doesn't match the sequence number expected (if any). Following this, the slave will hang up. \020ROK\0" meaning the site is recognized and accepted. The slave then sends a message indicating the packet protocols it supports, in the form "\020Pppp\0", where 'ppp' is a string of letters indicating the protocols supported. In this implementation, only the letter 'g' will be present, thus the message "\020Pg\0" results. The master responds with "\020Up\0", where 'p' is the protocol the master has selected, or "\020UN\0", indicating the master doesn't have any matching protocols. In this implementation, any response other than "\020Ug\0" causes the session to end. From this point on, until shutdown time, all messages between the systems are carried out using the selected protocol. Session Requests Once the session is initialized, the master is in charge, and sends requests to the slave for any work it wants done. The possible requests are: X files ... which indicates that the master wants the slave to perform uux processing. If the slave will comply, it responds with "XY", otherwise it responds with "XN". This implementation does not support uux requests. S file1 file2 user options which indicates that the master wants to send its file1 to the slave, and have the slave name it file2. If the slave will comply, it responds with "SY". If the slave won't comply because an error occured creating temp files, the slave responds "SN4". If the slave won't comply because of privilege violations, it responds "SN2". Note that in some implementations, "SY" may be followed by an octal file permissions value, i.e. "SY 666". Transmission of the file is as a simple sequence of packets, until a partial data packet containing the last piece of the file is sent. Following transmission of the file, the slave sends "CY" if the transmission was successful, or "CN5" if it failed. uucico -6- uucico uucico (9) DOSGATE uucico (9) R file1 file2 user options which indicates that the master wants the slave to send its file1 to the master, where the master will name it file2. If the slave will comply, it responds "RY", otherwise it responds "RN2". Note that "RY" may have a file mode appended to it, which is usually ignored. Note that in some implementations, "RY" may be followed by an octal file permissions value, i.e. "RY 644". Transmission of the file is as a simple sequence of packets, until a partial data packet containing the last piece of the file is sent. Following transmission of the file, the master sends "CY" if the transmission was successful, or "CN5" if it failed. H which indicates that the master has no more requests for the slave. The slave may respond "HY" if it has no requests for the master, or "HN" if the slave has requests it wishes the master to handle. If the slave responded "HY", the master should send another "HY" to signal that the session is about to shut down. If the slave responded "HN", the slave becomes the master and may begin immediately sending requests to the master (now the slave) without waiting for a response. Session Shutdown When both systems have finished their requests and have traded "HY" messages, shutdown begins. Shutdown consists of the systems sending "\020OOOOOO\0" messages to each other and then breaking the serial line. With the "g" protocol, the systems should exchange CLOSE control packets just before exchanging the "\020OOOOOO\0" messages. FILES L.sys, passwd, dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), L.sys(10), passwd(10), rmail(9), uucp(9), uuxqt(9) BUGS None known. ACKNOWLEDGEMENTS MS-DOS is a registered trademark of Microsoft Corporation. UNIX is a registered trademark of AT&T Bell Laboratories. uucico -7- uucico uucp (9) DOSGATE uucp (9) NAME uucp - queue a request for remote file transfer SYNOPSIS uucp [options] srcfile destfile DESCRIPTION Uucp queues requests for files to be sent from the local system to a remote system or from a remote system to the local system. The files are actually transferred by the uucico utility. Uucp is given two filenames as arguments. The first filename is the file that is to be transferred. The second filename is the destination for the transfer. One of the filenames must have the name of a remote site prepended to it. This tells uucp which system the file is going to/from. The default directory for uucp transfers is the uucp public directory defined in the DOSGATE configuration file. Example: The command uucp /tmp/test.txt lanna!/tmp/abc.txt would request that the file "/tmp/test.txt" be sent to the site "lana" as "/tmp/abc.txt". Example: The command uucp lana!/tmp/news.txt /tmp/news.txt would request that the file "/tmp/news.txt" on the system "lana" be sent to the local system. Uucp does not actually transfer files. It simply queues a request, so that the next time uucico is connected to the site the file is to be transferred to/from, the file will be transferred. Note that system security on most systems only allows files to be transferred from/to the uucp public directory or the "/tmp" directory. Since MS-DOS has no filesystem security, care should be taken in allowing file transfers to other systems from DOSGATE. Options: Several options modify the way uucp works. -c Uses the actual source file instead of making a copy in the uucp spool directory. This is the default. Note that uucico deletes the file after it has been transferred to the remote system. If this is not desirable, see the '-C' option (below). uucp -1- uucp uucp (9) DOSGATE uucp (9) -C Makes a copy of the source file in the uucp spool directory to transfer instead of working with the actual file. -s Instructs uucp to invoke uucico after queueing requests. This initiates transfer to/from remote systems immediately. -xN Enables debug output. The amount of detail is determined by the debug level 'N', which must be a digit from 1 to 9. -? Outputs the program name, version, copyright, and a summary of the command line usage. If this option is given, no other arguments may be given. Uucp writes a log of the actions it performs to the uucp log file specified in the dosgate.cfg file. Since this log file is appended each time uucp is invoked, it should be deleted periodically to prevent it from occupying too much disk space. TECHNICAL Uucp builds a uucico request file (or "C" file) in the uucp spool directory for the specified remote site, which contains a request for uucico to either transfer a file from a remote system to the local system or transfer a file from the local system to a remote system. The next time uucico contacts the remote system, the transfer request will be processed. If a file is to be sent from the local system to a remote system, the "C" file will contain one line which will be of the form: S sourcefile destfile user - sourcefile mode where 'sourcefile' is the name of the file to be sent, and 'destfile' is the name the requestor wants the remote system to name it as when it arrives at the remote system. If a file is to be sent from the remote system to the local system, the "C" file will contain one line which will be of the form: R sourcefile destfile user - sourcefile mode where 'sourcefile' is the name of the file the remote site should send, and 'destfile' is the name that will be given to the file when it arrives at the local system. The 'user' field of either form of request indicates the user that made the request, which in this implementation is always "uucp". uucp -2- uucp uucp (9) DOSGATE uucp (9) The 'mode' field of either form of request indicates the UNIX style file permission settings for the file, which are ignored in this implementation. Some implementations of uucp can send mail to the requestor when a file has been transferred; this implementation does not support this feature. Uucp places the "C" files for a particular remote site into the remote spool directory for the specified site. The directory name is determined by taking the remote spool directory name from the DOSGATE configuration file and appending the site's name to it. For example, if the spool directory is called "C:\DOSGATE\SPOOL", and the site is named "lana", the spool directory for uucp requests for "lana" would be placed in "C:\DOSGATE\SPOOL\LANA". FILES L.sys, passwd, dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), L.sys(10), mail(9), passwd(10) BUGS None known. ACKNOWLEDGEMENTS MS-DOS is a registered trademark of Microsoft Corporation. UNIX is a registered trademark of AT&T Bell Laboratories. uucp -3- uucp uudecode (9) DOSGATE uudecode (9) NAME uudecode - decode ASCII-encoded binary file SYNOPSIS uudecode infile [destfile] DESCRIPTION Uudecode converts an ASCII-encoded file that was created by uuencode back into a binary file. Infile is read, and the decoded data is written to the destination filename specified in the header of infile. The optional destfile argument causes the decoded data to be written to destfile instead. FILES None. SEE dosgate(9), mail(9), uuencode(9) BUGS None known. uudecode -1- uudecode uuencode (9) DOSGATE uuencode (9) NAME uuencode - encode binary file for ASCII transmission SYNOPSIS uuencode infile outfile [destfile] DESCRIPTION Infile is converted from a binary format into a special ASCII encoding which can be transmitted over 7-bit communication lines and then decoded at the receiving end. The encoded data is written to outfile. The optional destfile parameter specifies the name of the file on the destination system that will be created when the data is decoded at the receiving end. FILES None. SEE ALSO mail(9), uudecode(9) BUGS None known. uuencode -1- uuencode uustat (9) DOSGATE uustat (9) NAME uustat - check status of queued uucico requests SYNOPSIS uustat [-?] DESCRIPTION Uustat scans the local spool directories for each site specified in the L.sys file and outputs information about any queued requests for uucico found therein. The optional '-?' argument causes uustat to instead output the name, version, copyright, and summary of the program. None. FILES L.sys, dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), L.sys(10), uucico(9), BUGS While this implementation of uustat performs the same basic function, it bears little resemblance to the uustat utility typically found on a UNIX system. It is less functional and the output is in a completely different format. ACKNOWLEDGEMENTS UNIX is a registered trademark of AT&T Bell Laboratories. uustat -1- uustat uux (9) DOSGATE uux (9) NAME uux - queue a request for remote command execution SYNOPSIS uux [options] site!command DESCRIPTION Uux queues a request for the command argument to be executed on the specified remote site. The request is actually transferred to the remote site by uucico. The site must be one of the sites defined in the L.sys file. For example: uux lana!echo Hello would request that the command "echo Hello" be executed on the site "lana". Options: Several options modify the way uux works. - Uses the standard input of uux as the standard input of the command when it is remotely executed. -iFILE Uses the contents of FILE as the standard input of the command when it is remotely executed. -r Instructs uux not to invoke uucico after queueing the request. Normally uux invokes uucico as soon as a request has been queued. -xN Enables debug output. The amount of detail is determined by the debug level 'N', which must be a digit from 1 to 9. -? Outputs the program name, version, copyright, and a summary of the command line usage, and performs no other actions. Uux is not typically invoked directly by users. It is instead invoked by programs, such as by the rmail program to queue a request to forward a mail message to a remote user or by postnews to queue a request to forward a usenet news article to a remote site. For example, rmail might produce a uux command such as: uux - -r lana!rmail timothy which indicates that the command "rmail timothy" should be executed at the site "lana", taking standard input from uux, uux -1- uux uux (9) DOSGATE uux (9) which would typically contain the text of the mail message being fed to uux by rmail on the local system. TECHNICAL Uux builds a uucico request file (or "C" file) in the uucp spool directory for the specified remote site, which contains a request for uucico to transfer a file from the local system to the remote system. The file that will be transferred contains instructions for the remote system to execute the command requested by the user. If an input file was specified for the command, a request to transfer the spooled input file from the local system to the remote system will also be queued. The next time that uucico contacts the remote system, the transfer request will be processed. The "C" file will contain one or two lines which will be of the form: S sourcefile destfile user - sourcefile mode where 'sourcefile' is the name of the file to be sent, 'destfile' is the name the file will take when arriving at the remote system, user is always 'uucp', and 'mode' are the UNIX-style permission flags of the file, which are always 0666 in this implementation. Once the spool files containing the request and standard input (if specified) have been transferred to the remote system by uucico, the uuxqt program on the remote system will process the execution request. Some implementations of uux can send mail to the requestor when a request has been completed; this implementation does not support this feature. Uux places the "C" files for a particular remote site into the remote spool directory for the specified site. The directory name is determined by taking the remote spool directory name from the DOSGATE configuration file and appending the site's name to it. For example, if the spool directory is called "C:\DOSGATE\SPOOL", and the site is named "lana", the spool directory for uucp requests for "lana" would be placed in "C:\DOSGATE\SPOOL\LANA". FILES L.sys, dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), L.sys(10), postnews(9), rmail(9), uucp(9), uuxqt(9) BUGS None known. It should be noted, however, that this implementation does not support the myriad of features supported by the uux utilities on most UNIX systems. uux -2- uux uux (9) DOSGATE uux (9) ACKNOWLEDGEMENTS UNIX is a registered trademark of AT&T Bell Laboratories. uux -3- uux uuxqt (9) DOSGATE uuxqt (9) NAME uuxqt - execute commands from remote system SYNOPSIS uuxqt [options] DESCRIPTION Uuxqt executes commands on the local system according to instructions in files that have been delivered to the local system from a remote system. Uuxqt is not generally invoked directly by users. It is instead invoked by the uucico utility after each uucico session with another system. If uucico is interrupted, however, the system administrator may wish to manually invoke uuxqt to take care of any remote execution requests that were transferred before uucico was interrupted. Uuxqt does not take any command line arguments other than its options. Options: -xN Enables debug output. The amount of detail is determined by the debug level 'N', which must be a digit from 1 to 9. -l Disables deletion of remote execution files and input files. Uuxqt normally deletes the remote execution files and input files after they have been processed. -? Outputs the program name, version, copyright, and a summary of the command line usage, and performs no other actions. Uuxqt writes a log of the actions it performs to the uuxqt log file specified in the dosgate.cfg file. Since this log file is appended each time uuxqt is invoked, it should be deleted periodically to prevent it from occupying too much disk space. TECHNICAL When a remote system wishes the local system to execute a command, it sends a special file called a remote execution file, or "X" file, to the local system through uucico. Each time uucico completes a session with a remote system, it invokes uuxqt. Uuxqt looks in the uucp public directory defined in the DOSGATE configuration file (which is typically named "/usr/spool/uucp/uucppublic" on a UNIX system) for "X" files to process. Any file beginning with the letter "X" is assumed to be an "X" file. The filenames are usually of the form "X.", where is the name of the site that is supposed to execute the file, and is a uuxqt -1- uuxqt uuxqt (9) DOSGATE uuxqt (9) sequence number used to distinguish the file from other "X" files of the same site. An "X" file contains several lines of text which tell uuxqt what to do. The first letter of each line indicates what the line is for, and the remainder of each line contains parameters for the request (if any). The following types of lines may be found in an "X" file: U specifies the username of the user that requested the command and the site that requested the command. R specifies the username of the user that requested the command. Z (I don't know what this is for, but it shows up in "X" files from some systems.) F specifies the filename of a file that uuxqt should delete when it is finished processing the "X" file, and is usually the same file specified by the 'I' parameter described below. I specifies the filename that should be used as the standard input to the command that is executed. O specifies the filename that should be used as the standard output of the command that is executed. Note that this is rarely used. C specifies the program that uuxqt is supposed to execute. The most common use of uuxqt is in delivering mail sent to the local system from remote systems. In this case the command that is executed is the rmail command, and the input file for rmail is a mail message file that was transferred to the local system from the remote system by uucico. An example "X" file for delivering a mail message is shown below. Sample "X" file --------------- U uucp toadlips R uucp F D.toadli0031 I D.toadli0031 C rmail jason uuxqt -2- uuxqt uuxqt (9) DOSGATE uuxqt (9) In this example, the system 'toadlips' has sent a mail message to the file 'D.toadli0031' on the local system, and wants the local system to invoke the command 'rmail jason' with 'D.toadli0031' as its standard input. This will cause the mail message in the 'D.toadli0031' file to be mailed to the user 'jason' on the local system. Since an 'F' line is present, uuxqt will delete the file 'D.toadli0031' when the rmail command has finished. NOTE: Some systems leave the 'F' field blank (i.e. Mark Williams Coherent) which tends to cause remote mail files to accumulate. In order to cope with this anomaly, the DOSGATE implementation of uuxqt also deletes the file named in the 'I' field. FILES dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), uucico(9), uucp(9) BUGS The uucp public directory may not contain directories which begin with the letter "X", or uuxqt will endlessly attempt (and fail) to process the directory as if it were an "X" file. ACKNOWLEDGEMENTS Coherent is a trademark of the Mark Williams Company. UNIX is a registered trademark of AT&T Bell Laboratories. uuxqt -3- uuxqt active (10) DOSGATE active (10) NAME active - active newsgroups file DESCRIPTION The active newsgroups file (or "active list") keeps track of the usenet news groups on the local system, including the oldest and newest article numbers for each news group. Each line of the active list describes one news group, and is composed of several fields, of the following general form: name newest oldest type where each of the fields is defined as follows: name is the name of the news group described by the line. newest is the article number of the newest article in the specified news group that is currently stored in the news spool directories on the local system. oldest is the article number of the oldest article in the specified news group that is currently stored in the news spool directories on the local system. type is a flag which specifies one of the following conditions: y means that the news group is enabled and users are allowed to post articles to the group. n means that the news group is enabled, but users are not allowed to post articles to the group. m means that the news group is enabled, but is a moderated group which requires that postings be sent to the moderator rather than posted directly to the group. x means that the news group is disabled. The following demonstrates a simple active file. comp.sources.unix 110 218 y comp.sys.laptops 36 121 m soc.singles 7287 7463 x news.admin 1 26 n active -1- active active (10) DOSGATE active (10) The first line of the example describes a news group called comp.sources.unix, which is enabled, to which users are allowed to post articles to, for which the local system currently has article numbers 110 through 218 stored in the news spool directories. The second line of the example describes a news group called comp.sys.laptops which is enabled but moderated, for which the local system currently has article numbers 36 through 121 stored. The third line of the example describes a news group called soc.singles which is disabled, for which the local system currently has article numbers 7,287 through 7,463 stored. The fourth line of the example describes a news group called news.admin which is enabled, to which users are not allowed to post articles, for which the local system currently has article numbers 1 through 26 stored. The active file may contain comments. Any line which begins with a pound (#) character is assumed to be a comment. However, it should be noted that rnews and other programs that modify the active file will remove any comments each time the file is modified. Each line in the file must be no longer than 128 characters. NOTES The pathname of the active file is specified in the dosgate.cfg file. RELATED FILES dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), expire(9), newsrc(10), postnews(9), readnews(9), rnews(9) active -2- active dosgate.cfg (10) DOSGATE dosgate.cfg (10) NAME dosgate.cfg - master configuration file for DOSGATE DESCRIPTION The dosgate.cfg file contains configuration information for DOSGATE. It contains a sequence of configuration entries of the form entry=setting ...where 'entry' is the name of the configuration entry, and 'setting' is a string that defines the current setting of the configuration entry in question. The entries are as follows: sitename This defines the 'system name' or sitename of the system on which DOSGATE is running (the local site). The sitename is used to identify the system to remote systems. Only the first six letters of this name are examined by most uucico implementations. This name should ideally be unique among all uucp-capable systems, and should certainly be different than the name of any other site that the local site will be communicating with or sending mail to. altnames This optional setting defines alternate names for the system on which DOSGATE is running. This allows mail that is delivered to one of several possible sitenames to be received by the local system, such as domain names for the local system. For example: altnames=mybox.UUCP mybox.com mybox.mybox.com would allow the local system to receive mail addressed to 'mybox.UUCP', 'mybox.com', or 'mybox.mybox.com' in addition to the sitename specified by the 'sitename' setting elsewhere in the configuration file. remotedev This determines which port uucico will use for communicating with remote systems when operating in slave mode or when calling a remote system which is described as having an "ACU" connection in the L.sys file. The setting must be either COM1 or COM2. remotebaud This determines the baud rate at which uucico will communicate with remote systems when operating in slave mode. In master mode, uucico takes the baud rate from the L.sys file. The setting is typically 2400 or 9600 for a modem, but may be set to whatever baud rate is required by the communications hardware, from 50 up to 115200. dosgate.cfg -1- dosgate.cfg dosgate.cfg (10) DOSGATE dosgate.cfg (10) remotemode This determines the communication mode that uucico will use when operating in slave mode. In master mode, uucico takes the communication mode from the L.sys file. The setting must be either ACU, for a connection via modem, or DIR, for a connection via direct serial line. remotemask This setting determines whether the parity bit (high bit) of all incoming data is stripped off or not. If the setting is TRUE, the parity bits will be removed. If the setting is FALSE, the parity bits will not be removed. modeminit This is set to the string of characters that must be sent to the modem to initialize it when uucico makes calls to remote systems (master mode). For most standard 1200 and 2400 baud Hayes-compatible modems, this is ATZ\r\d\d\dATS0=0 Q0 V1\r\d\d\d For some Hayes-compatible MNP-capable modems, this is ATZ\rAT\\N0\r\d\d\dATS0=0 Q0 V1\r\d\d\d The sequence '\r' is replaced by a carriage return. The sequence '\n' is replaced by a line feed. The sequence '\0' is replaced by a null character. The sequence '\d' is replaced by a one second delay. Some modems require more time to reset, so additional '\d's may be necessary. For example, one particular Zoom Telephonics modem required six seconds to respond to a reset. modeminitslave This is set to the string of characters that must be sent to the modem to initialize it when uucico waits for calls from remote system (slave mode). The string may contain the same special character sequences as described above for the 'modeminit' setting. For most Hayes-compatible modems, this setting will be ATZ\r\d\d\dATS0=1 Q0 V1\r\d\d\d If the modem requires a different special command to place it into 'auto answer' mode, it can be inserted into this string. modemhangup This is set to the string of characters that must be sent to the modem to force it to hang up. The string may contain the same special character sequences as described above for the 'modeminit' setting. For most Hayes-compatible modems, this setting will be dosgate.cfg -2- dosgate.cfg dosgate.cfg (10) DOSGATE dosgate.cfg (10) \d\d+++\d\dATH\r\d\dATZ\r\d\d\d Some modems require additional time before sending the '+++' or they will not hang up. If difficulties are encountered, try adding more '\d's to the beginning of this string. modemdial This is set to the string of characters that must be sent to the modem to ask it to dial another modem. The string may contain the same special character sequences as described above for the 'modeminit' settings. A tilde (~) character must be placed in the string at the point where the telephone number to be dialed is to be inserted. For most standard 1200 and 2400 baud Hayes-compatible modems, this setting will be dialtimeout This is set to the number of seconds that uucico will wait for a connection signal from the modem after dialing out. This setting may be omitted in which case the default timeout of sixty seconds will be used. The number of seconds should typically be set to between thirty and sixty seconds, although slow connecting modems may require more time. For example: dialtimeout=60 ATDT~\r For some V.32/V.42 Hayes-compatible modems, this setting will be AT\\N3N1DT~\r These examples assume touch-tone dialing. For pulse dialing, replace the 'DT' in the modemdial string with 'DP'. modemconnect This is set to the string of characters that the modem sends back to indicate a successful connection to another modem. For most Hayes-compatible modems this will be CONNECT modembusy This is set to the string of characters that the modem sends back to indicate that the dialed telephone number was busy. For most Hayes-compatible modems this will be BUSY dosgate.cfg -3- dosgate.cfg dosgate.cfg (10) DOSGATE dosgate.cfg (10) modemfail This is set to the string of characters that the modem sends back to indicate that an error occurred making a modem-to-modem connection with the dialed number. For most Hayes-compatible modems this will be NO CARRIER tmpdir This is set to the name of the directory where DOSGATE should place temporary files. For example: c:\tmp This is the equivalent of the "/tmp" directory on a typical UNIX system. uuciconow This is set to "TRUE" if the mail program should spawn uucico each time mail is queued for transmission to a remote system. If set to "FALSE", uucico will not be spawned by the mail program, and must be manually invoked later to initiate the transfer. uucicolog This is set to the full pathname of the file where uucico will write its logfile. The logfile is a record of the actions performed by uucico while it is running. For example: c:\dosgate\uucico.log This is the equivalent of the "/usr/lib/uucp/Logfile/uucico" file on a typical UNIX system. uucplog This is set to the full pathname of the file where uucp will write its logfile. The logfile is a record of the actions performed by uucp while it is running. For example: c:\dosgate\uucp.log This is the equivalent of the "/usr/lib/uucp/Logfile/uucp" file on a typical UNIX system. uuxqtlog This is set to the full pathname of the file where uuxqt will write its logfile. The logfile is a record of the actions performed by uuxqt while it is running. For example: c:\dosgate\uuxqt.log This is the equivalent of the "/usr/lib/uucp/Logfile/uuxqt" file on a typical UNIX dosgate.cfg -4- dosgate.cfg dosgate.cfg (10) DOSGATE dosgate.cfg (10) system. L.sys This is set to the full pathname of the L.sys file. For example: c:\dosgate\L.sys This is the equivalent of the "/usr/lib/uucp/L.sys" file on a typical UNIX system. passwd This is set to the full pathname of the passwd file. For example: c:\dosgate\passwd This is the equivalent of the "/etc/passwd" file on a typical UNIX system. pubdir This is set to the name of the directory where files transferred from remote systems are placed. For example: c:\dosgate\public This is the equivalent of the "/usr/spool/uucppublic" directory on a typical UNIX system. spooldir This is set to the name of the directory under which jobs for remote systems are spooled to. For example: c:\dosgate\spool\uucp This is the equivalent of the "/usr/spool/uucp" directory on a typical UNIX system. maildir This is set to the name of the directory under which mail for local users is spooled to. For example: c:\dosgate\spool\mail This is the equivalent of the "/usr/spool/mail" directory on a typical UNIX system. newsdir This is set to the name of the directory under which incoming usenet news articles are spooled to. For example: c:\dosgate\spool\news dosgate.cfg -5- dosgate.cfg dosgate.cfg (10) DOSGATE dosgate.cfg (10) newsactivefile This is set to the full pathname of the active news groups configuration file. For example: c:\dosgate\active newspostsites This is set to either "NONE" or the names of one or more remote sites to which new usenet news articles typed on the local system will be sent. For example: newspostsites=myneighbor indicates that news articles will be posted to the site 'myneighbor', assuming that 'myneighbor' is a system with which the local system communicates via uucico. organization This is set to the string that will be inserted in the "Organization:" line in the header of each new usenet news article that is posted from the local system. For example: organization=Bob's Disk Repair, Inc. smarthost This setting determines whether mail messages with unknown addresses will be forwarded to another system for mailing or not. If set to 'NONE', mail messages with unknown addresses will not be forwarded, and will instead be sent to the local user specified by the 'postmaster' setting. Otherwise, the 'smarthost' setting is assumed to be the mail address of a system to which mail messages with unknown addresses will be forwarded. postmaster This is set to the username of the user to which undeliverable mail should be sent. Whenever rmail can't figure out what to do with a particular mail message, it sends it to this user. On a UNIX system, this would typically be either "root" or the name of the system administrator. On a single-user DOSGATE installation, this will typically be the single user's name. separatemail This setting determines whether mail will be spooled to files directly in the mail spool directory (see the "maildir" setting), or to files in separate subdirectories underneath the mail spool directory. If set to FALSE, mail will spool to files in the mail spool directory, each file having the same name as the recipient user, i.e. "maildir/username". If set to TRUE, mail for each user will be spooled to a directory underneath the mail spool directory, where the directory name is the same as the recipient user's name, and the dosgate.cfg -6- dosgate.cfg dosgate.cfg (10) DOSGATE dosgate.cfg (10) mail spool file in the directory also has the user's name, i.e. "maildir/username/username". It is recommended that this setting be left FALSE unless there is a need to have each user's mail spooled to a different directory. pathaliasfile This setting determines whether a path aliases database is enabled. If set to "NONE", any features which depend on the path aliases database are disabled. Otherwise, pathaliasfile should be set to the name of a path aliases database file that has been created by the pathalias program. For example: pathaliasfile=NONE or pathaliasfile=c:\dosgate\paths Dosgate.cfg may contain comments. Any line which begins with a pound (#) character is assumed to be a comment. Each line in the file must be no longer than 127 characters. RELATED FILES active, passwd, L.sys SEE ALSO active(10), dosgate(9), L.sys(10), passwd(10), mail(9), rmail(9), rnews(9), uucico(9), uucp(9), uustat(9), uuxqt(9) ACKNOWLEDGEMENTS UNIX is a registered trademark of AT&T Bell Laboratories. dosgate.cfg -7- dosgate.cfg L.sys (10) DOSGATE L.sys (10) NAME L.sys - remote systems description file DESCRIPTION The L.sys file describes each remote system that is allowed to communicate with the local system through uucico. Each line of L.sys describes one system, and is composed of several fields, of the following general form: name times dev speed number/port expect send [ ... ] where each of the fields is defined as follows: name is the login name (sitename) of the remote system. times are the times of day/week that communications are allowed with the remote system. In the current implementation, only the keyword "Any" may appear. dev specifies whether the connection to the remote system is via a modem or via direct serial line. The keyword "ACU" is used for modem. The keyword "DIR" is used for direct serial line. speed is the baud rate of the connection to the modem or remote system, typically "2400" or "9600" for a modem connection, but may be set to any baud rate required by the communications hardware, from 50 up to 115200 baud. number/port specifies either a telephone number or a port name depending on whether the connection to the remote system is via modem or via direct serial line. If via modem, this field must contain the telephone number by which the remote system is contacted (if the remote system only dials in, this number is ignored, but must be present). If connection is via direct serial line, this field must contain the name of the port by which the connection is made, which must be one of the keywords "COM1" or "COM2". expect specifies a string that the local system expects to receive from the remote system. A '\r' may be included in the string to indicate that a carriage return is part of the string. A '\n' may be included in the string to indicate that a line-feed is part of the string. A '\d' may be included in the string to cause a one second delay. Two double- quotation marks ("") indicates that the local system should not wait for any particular reponse from the remote system before continuing to the next 'send' field. L.sys -1- L.sys L.sys (10) DOSGATE L.sys (10) send specifies a string that the local system will send to the remote system once the preceeding 'expect' string has been received. The same special characters understood in the 'expect' fields are understood in the 'send' field. Note that most 'send' strings end with a '\r'. Multiple expect/send fields are usually necessary to initiate a conversation with a remote system. In a typical setup, the local system will expect to see "Login:". Then it will send its login name (sitename). The remote system may then send "Password:", to which the local system replies with its password. Once all expect/send fields have been received and/or sent, the system considers the connection to the remote system successful, and proceeds with its normal uucico conversation. The following two lines demonstrate a simple L.sys file. barfo Any ACU 1200 123-4567 Barfo-BBS \r\r ogin: xyz\r word: apq02\r hades Any DIR 9600 com1 "" \r\r ogin: hoser\r The first line describes a system named 'barfo' which is connected by modem at 1200 baud. When uucico calls 'barfo', it uses the phone number 123-4567. When 'barfo' answers the phone, the local system waits for the message "Barfo-BBS" from the remote system. The local system then sends two carriage returns, to which the remote system responds "Login:". The local system then sends its login name, which in this case is "xyz". The remote system responds with "Password:". The local system then sends its password "apq02". The second line describes a system named 'hades' which is connected by direct serial line at 9600 baud on port COM1. When uucico contacts 'hades', it doesn't wait for a particular response (because the 'expect' field contains ""), and then sends two carriage returns to 'hades'. 'Hades' responds with the "Login:" prompt to which the local system sends its login name, which in this case happens to be "hoser". L.sys may contain comments. Any line which begins with a pound (#) character is assumed to be a comment. Each line in the file must be no longer than 511 characters. NOTES The pathname of the L.sys file is specified in the dosgate.cfg file. L.sys -2- L.sys L.sys (10) DOSGATE L.sys (10) RELATED FILES passwd, dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), passwd(10), rmail(9), uucico(9), uucp(9) L.sys -3- L.sys newsrc (10) DOSGATE newsrc (10) NAME newsrc - news reader profile DESCRIPTION The newsrc file keeps track of which usenet news groups a particular user is subscribed to, and which articles within each group a particular user has read. A newsrc file is stored in the home directory of each user that uses the news reader, readnews. The home directory of each user is specified in the passwd file. If newsrc does not exist, it will be created the first time the user runs readnews. Each line of newsrc describes one news group. The first part of a line is the name of a news group. This is followed by a colon (:) if the group is subscribed to, or an exclamation mark (!) if the group is not subscribed to. This is followed by a space, an article number, a hyphen, and another article number. The first article number is the first article in the news group that the user has read at some time in the past. The second article number is the last article in the news group that the user has read. If the news group has never been accessed, the article numbers may be omitted from the file. For example: comp.sources.unix: 45-61 indicates that 'comp.sources.unix' is a subscribed group of which the user has read articles numbered 45 through 61. For example: misc.invest! 10-14 indicates that 'misc.invest' is a non-subscribed group of which the user has read articles numbered 10 through 14. A group to which the user is subcribed will be scanned for new articles each time the user uses readnews, while an unsubscribed group will be ignored by readnews. The newsrc file may contain comments. Any line which begins with a pound (#) character is assumed to be a comment. However, it should be noted that readnews and other programs that modify the newsrc file will remove any comments each time the file is modified. Each line in the file must be no longer than 128 characters. RELATED FILES active, passwd, dosgate.cfg newsrc -1- newsrc newsrc (10) DOSGATE newsrc (10) SEE ALSO active(10), dosgate(9), dosgate.cfg(10), readnews(9), passwd(10) newsrc -2- newsrc passwd (10) DOSGATE passwd (10) NAME passwd - login passwords file DESCRIPTION The passwd file describes each DOSGATE user on the local system, and each remote system that is allowed to contact the local system. The format of the passwd file is designed to be similar to the format of a UNIX passwd file. Several of the fields are not used by DOSGATE, but must still be present in the file. Each line of the passwd file describes one user (or one 'login account'). A 'user' is considered to be either a real human user, or a remote system that contacts the local system while uucico is running in slave mode. The format of a passwd line is shown in the following template: user:pass:uid:gid:info:homedir:shell Each of the seven fields are separated from each other by a colon (:). The fields are defined as follows: user This field contains the username of the specified user or remote system. When the entry is for a remote system, the name must be the same sitename for the remote system that is listed in the L.sys file. pass This field contains the encrypted password for the user. This is initially blank, but may be modified with the passwd command. uid This field contains the user-id number for the specified user. On a typical UNIX system, the value of this number is significant, but for DOSGATE the only restriction is that each user must have a different number. gid This field contains the group-id number for the specified user. On a typical UNIX system, the value of this number is significant, but DOSGATE ignores this number. info This field contains information about the user. This is typically the user's full name. This string is inserted into the header of each mail message sent by the user. passwd -1- passwd passwd (10) DOSGATE passwd (10) homedir On a typical UNIX system, this field would contain the pathname of the user's home directory. For DOSGATE, this may be any valid directory name, i.e. "c:\dosgate". shell On a typical UNIX system, this field would contain the name of the program executed as the user shell each time the user logged into the system. For DOSGATE, this field is ignored for local users, but must be set to the pathname of the uucico program for remote systems, i.e. "c:\dosgate\uucico.exe". The passwd file may contain comments. Any line which begins with a pound (#) character is assumed to be a comment. Each line in the file must be no longer than 511 characters. RELATED FILES L.sys, dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), L.sys(10), mail(9), passwd(9), rmail(9), uucico(9), uucp(9) ACKNOWLEDGEMENTS UNIX is a registered trademark of AT&T Bell Laboratories. passwd -2- passwd paths (10) DOSGATE paths (10) NAME paths - path aliases database file DESCRIPTION The paths file is a database that specifies the uucp mail path to each site that the local system knows about. This database is constructed by the pathalias program using information from uucp map files which are distributed periodically via Usenet. The name of the paths file is specified by the 'pathaliasfile' setting in the dosgate.cfg file. If no paths file exists, the 'pathaliasfile' setting should indicate this. Each line of the paths file describes one remote site. The first part of a line is the name of a remote site. The remainder of the line is the uucp mail path to that site. Each site may have only one entry in the paths file. For example, a line reading: hoser2 myneighbor!hisneighbor!hoser2!%s indicates that the uucp mail path to the site 'hoser2' is 'myneighbor!hisneighbor!hoser2'. The '!%s' at the end of the line simply indicates that the user's name belongs at that point in the mail path. Each line of the paths file may be no longer than 127 characters. RELATED FILES dosgate.cfg SEE ALSO dosgate(9), dosgate.cfg(10), mail(9), pathalias(9), pathto(9), rmail(9) paths -1- paths