\centerline{\bf The Aston \TeX\ Server} \smallskip \noindent For network users who can send mail but not transfer files, accessing remote archives is a problem. The conventional way to do this is to use `mail servers' on the machines holding the archives. These are programs which read mail messages directed to a specific username on the archive machine, with the message consisting of commands to the mail server. The server processes the commands which are usually requests to send files to the requestor as mail messages. The mail server described here accepts several commands, described in the following sections. In each case, the commands to the server are specified in the body of the mail message. This is a little different from many other mail servers, which require the command to be in the `subject' field of the mail message. \section{Where is the \TeX\ Archive Mail Server?} The \TeX\ archive's mail server is accessed by sending a mail request, containing a valid {\tt mail-server} command, through \JANET\ to \begintt TEXSERVER@UK.AC.ASTON.TEX \endtt Note that {\tt texserver} operates without any operator interaction: your mail is never seen by human eyes (unless the archive maintainer is deliberately doing so), so it is essential that you get your requests right. I\lowercase{NVALID REQUESTS ARE SIMPLY IGNORED}! People occasionally experience difficulties with getting mail to, or replies from, {\tt texserver}. For this reason, {\tt texserver} generates a `your message received' reply when it receives your request. The actual request is then queued for processing (which may happen up to an hour later). \section{Getting Help} This help message can be acquired by sending the following message to {\tt texserver}: \begintt ignored-text ---ignored-text return-address HELP ignored-text \endtt {\tt texserver} ignores everything in the body of the message until a line containing three hyphens as its first non-blank characters is met. This is because many mail messages (particularly those which pass through protocol converters at gateways) develop a header showing its path through the various mailers. Following the three-hyphen separator, the return address should be specified on the next non-blank line. This must be the address {\it from\/} {\tt texserver} {\it to\/} you, in the usual network format (for people who don't know this, it is explained in a later section). The next non-blank line should contain only the word {\tt HELP} (or {\tt HELP} with a language qualifier--see below), specified in lower, UPPER or MiXeD cases. Any subsequent lines are ignored. This help message is also available in a variety of other languages. The appropriate language version is specified simply by adding a `command qualifier' to the {\tt HELP} command---so that, for example, {\tt HELP/DANISH} or {\tt HELP/DANSK} will select the Danish-language version of the help text. The following qualifiers are currently supported: \begintt /DANISH |it or |tt /DANSK /DUTCH |it or |tt /NL or /NEDERLANDS /FRENCH |it or |tt /FRANCAIS /GERMAN |it or |tt /DEUTSCH /ITALIAN |it or |tt /ITALIANO /JAPANESE /SPANISH |it or |tt /ESPAGNOL /SWEDISH |it or |tt /SWEDE \endtt You can truncate the qualifier to the point of uniqueness, so that {\tt HELP/FRE} selects French and {\tt HELP/DE} German. But do so carefully, for {\tt texserver} will simply ignore ambiguous commands such as {\tt HELP/FR}. And make sure you spell the qualifier correctly! If you request {\tt HELP} in a language other than English, but receive the English message instead, it's because there is not yet a translation into the requested language. Perhaps you would care to consider making the translation yourself, and mailing it back to the author. Your contribution will, of course, receive due acknowledgement. It is well worth transferring the help text to yourself as a first experiment of the system; this will ensure that you understand how to format messages for {\tt texserver} and to specify network addresses on VAX/VMS. \section{Generating Directory Listings} You can acquire a directory listing of the archive or a part of the archive by sending the following message to {\tt texserver}: \begintt ignored-text ---ignored-text return-address DIRECTORY directory-specifier ignored-text \endtt You will understand the form and purpose of most elements of the message from the above discussion of the help, so they won't be explained again. The {\tt DIRECTORY} command, which can be specified in any case and truncated to {\tt DIR}, should be given a directory specification as its argument, conforming to the VAX/VMS directory syntax (see below). If omitted, a listing of the directory {\tt [TEX-ARCHIVE]} is returned. Normally, the files listed by the {\tt DIRECTORY} command can be used as the basis of a {\tt FILES} command (described in a later section), which requests files to be transferred. VMS wizards can, however, put qualifiers to the DCL {\tt DIRECTORY} command {\it following\/} the argument. The most useful one is probably {\tt /SIZE}, which returns the file size in units of 512-byte blocks. To make full use of the {\tt DIRECTORY} command, you need to know about VMS filenames. Firstly, a filename consists of three parts, the {\it name} itself, the {\it extension} (file-type) and the {\it version number}, specified as \begintt name.extension;version \endtt Both the name and extension may be up to 39 characters each, consisting of alphanumerics, dollar, underscore and hyphen. Upper and lower case letters are not distinguished. Note, however, that `name' is not the same as `name.', since {\tt texserver} (and the VMS mailer) applies a default extension to the former but not to the latter. If the version number is omitted (in which case the semi-colon punctuation is not required), VMS automagically selects the highest (most recent). Files, of course, reside in directories. These are specified in square brackets. Like Unix and many other operating systems, directories under VMS are hierarchical. Sub-directories are specified, within the square brackets, following the parent directory name and separated by periods. Hence, \begintt [TEX-ARCHIVE.PUBLIC] \endtt is a valid directory name and \begintt [TEX-ARCHIVE.PUBLIC]PRIVATE.TXT;42 \endtt a file within it. Of course, directories reside on discs and discs on nodes on networks\dots but that is getting needlessly complicated. The other thing you need to know about is wildcards. There are three of them: \halign{\quad \tt#&\qquad#\hfil\cr * &matches zero or more characters\cr ? &matches exactly one character\cr ... & matches a sub-directory tree\cr} Hence, the {\tt texserver} command \begintt DIRECTORY [TEX-ARCHIVE...]*.TXT \endtt will find all versions of all files with an extension of {\tt .TXT} (conventional for text files) in the directory {\tt[TEX-ARCHIVE]} or any of its sub-directories and return the output to you (if you got the return address right). \section{Locating Files} If you know the name of a file which you want to retrieve, but not the directory in which it resides, the {\tt WHEREIS} command can be used to find it. For example, to locate all {\WEB} files in the archive (\WEB\ is the programming language in which \TeX\ is written, being a combination of \TeX\ input and Pascal), you would use a command like: \begintt ignored-text ---ignored-text return-address WHEREIS *.WEB ignored-text \endtt You may use the same wildcard specifiers as in the DIRECTORY command. \section{Searching Files} You can search through files in the archive for a given string of characters. This is useful, for example, when you know something is present in the archive, but not exactly which files are relevent. The {\tt SEARCH} request has the following format: \begintt ignored-text ---ignored-text return-address SEARCH directory-specifier search-string ignored-text \endtt The directory specification should have the same format as for the `directory' request. The search string can be any arbitrary series of characters, but if it includes one or more of the characters |'"/@#| the whole string should be enclosed in double quotes (and double quotes in the search string specified twice consecutively). For example, \begintt search [TEX-ARCHIVE...]*.TXT text \endtt searches all files in the archive with an extension of {\tt .TXT} for the string of characters `text'. (Note that the search is case-insensitive.) To search for the string |/"text"|, one would use \begintt search [TEX-ARCHIVE...]*.TXT "/""text""" \endtt to `escape' the quote character, which has a special meaning to DCL. \section{Transferring Files} Now that you can generate listings of the contents of the archive, extracting files from it is child's play! Simply edit the listing returned by the {\tt DIRECTORY} or {\tt WHEREIS} commands into the following form: \begintt ignored-text ---ignored-text return-address FILES filename filename . . . \endtt Any number of filenames may follow the {\tt FILES} command. Each filename must be specified on a separate line; each file will normally be returned as a separate mail message. Wildcards are {\it not\/} supported by the {\tt FILES} command. There is a limit to the size of a {\sc mail{}} message which can be sent through many gateways. For this reason, large files resulting from {\tt texserver} requests are automatically split up and send in a series of parts. You will normally have to concatenate these parts (in the correct order!) before they will be of use. \section{Specifying the Return Address} The syntax used for network addresses is the one used throughout most of the networking community, |user@site|. For example, for \JANET\ users, requests from `orinoco' at site |uk.ac.wimbledon.common| should have a return address of \begintt orinoco@uk.ac.wimbledon.common \endtt Note that the VMS mailer folds the return address to {\sc upper} case unless it is enclosed in double quotes (this is a common source of trouble for mail being returned to {\tt uucp} sites). For |BITNET| users, you need to send the mail out via the |EARN| gateway: \begintt user%machine.site.BITNET@EARN-RELAY \endtt Note that the order of specifying domains {\it is\/} important to the |EARN| mailer. The syntax is similar for other networks accessed via the |EARN| gateway. Requests from north America (e.g., those with |.EDU| addresses) should also use the |EARN| gateway, since the |NSFNET-RELAY| gateway is not available for UK-to-US traffic: \begintt user%machine.site.EDU@EARN-RELAY \endtt Other users should try |EARN| in the first instance (it seems to be pretty clever). If that fails, consult a local networking guru. If that fails, mail the archive maintainers, who should be able to put you in touch with someone who can help. If all else fails, you're on your own! There is a document, compiled by Tim Clark of the University of Warwick, which goes into significant detail regarding the routing of mail from the UK through gateways. This is available in \LaTeX\ form from the archive as file \begintt [TEX-ARCHIVE.ARCHIVE-UTILS]GATEWAYS.TEX \endtt Any comments, queries, suspected bugs, etc should be addressed to the author, not to the maintainers of the archive it serves. (If any query doesn't get answered within, say, a week, please re-submit it; the author's network connection is rather flaky!) Note that the author is {\it not\/} a networking Wizard. As usual with public-domain software, no commitment is given as to the quality of this software: it may not do what this help says it does. \section{Bibliography} Terry A. Welch, 1984, A Technique for High-Performance Data Compression, IEEE Computer vol 17, no 6, pp.8--19. \author{Adrian Clark} \endinput