1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
|
\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
|