annotate man/efs.texi @ 42:8b8b7f3559a2 r19-15b104

Import from CVS: tag r19-15b104
author cvs
date Mon, 13 Aug 2007 08:54:51 +0200
parents
children 8d2a9b52c682
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
42
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1 \input texinfo @c -*-texinfo-*-
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
2 @comment %**start of header (This is for running Texinfo on a region.)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
3 @setfilename efs.info
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
4 @settitle EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
5 @comment %**end of header (This is for running Texinfo on a region.)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
6
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
7 @synindex fn vr
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
8
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
9 @node Top, What is EFS?, (dir), (dir)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
10 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
11 @ifinfo
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
12 @unnumbered EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
13
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
14 This file documents EFS, a system for transparent file-transfer
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
15 between remote hosts using the FTP protocol within Emacs.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
16
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
17 This info is for version 1.15 of EFS.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
18
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
19 Documentation version: 1.0
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
20
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
21 Copyright @copyright{} 1991, 1992 Free Software Foundation, Inc.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
22
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
23 Permission is granted to make and distribute verbatim copies of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
24 this manual provided the copyright notice and this permission notice
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
25 are preserved on all copies.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
26
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
27 @ignore
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
28 Permission is granted to process this file through TeX and print the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
29 results, provided the printed document carries a copying permission
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
30 notice identical to this one except for the removal of this paragraph
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
31 (this paragraph not being relevant to the printed manual).
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
32
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
33 @end ignore
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
34 Permission is granted to copy and distribute modified versions of this
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
35 manual under the conditions for verbatim copying, provided that the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
36 entire resulting derived work is distributed under the terms of a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
37 permission notice identical to this one.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
38 @end ifinfo
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
39
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
40 @titlepage
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
41 @sp5
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
42 @center @titlefont{EFS}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
43 @center version 1.15
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
44 @sp2
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
45 @center A transparent remote file system, by Sandy Rutherford and Andy Norman
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
46 @sp7
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
47 @center This documentation based on ange-ftp documentation by David Smith
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
48 @center and on documentation in the EFS source code
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
49 @center It was put together by Mike Sperber.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
50
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
51 This documentation is definitely incomplete and parts of it may be
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
52 outright incorrect or out-of-date.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
53
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
54 @center info-version 1.0
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
55 @page
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
56 @vskip 0pt plus 1filll
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
57 Copyright @copyright{} 1991, 1992 Free Software Foundation, Inc.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
58
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
59 Permission is granted to make and distribute verbatim copies of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
60 this manual provided the copyright notice and this permission notice
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
61 are preserved on all copies.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
62
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
63 Permission is granted to copy and distribute modified versions of this
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
64 manual under the conditions for verbatim copying, provided that the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
65 entire resulting derived work is distributed under the terms of a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
66 permission notice identical to this one.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
67 @end titlepage
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
68
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
69 @menu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
70 * What is EFS?::
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
71 * Installing EFS:: Where to find it, and how to use it.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
72 * Using EFS:: EFS -- a users' guide.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
73 * Getting help:: Mailing lists and newsgroups.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
74 * Bugs:: Known bugs, and a wish list.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
75
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
76 Indices:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
77 * Concept Index::
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
78 * Variable and command index::
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
79 @end menu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
80
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
81
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
82 @node What is EFS?, Installing EFS, Top, Top
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
83 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
84 @chapter Introducing EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
85
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
86 EFS is a system for transparent file-transfer between remote UNIX,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
87 Guardian, DOS, Macintosh, KA9Q, Netware, NOS/VE, Plan 9, TI Explorer,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
88 Twenex, TOPS 20, VOS, MPE, MVS, VMS, CMS or MTS hosts using FTP. This
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
89 means that you can edit, copy and otherwise manipulate files on any
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
90 machine you have access to from within Emacs as if it were a local
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
91 file. EFS works by introducing an extended filename syntax, and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
92 overloading functions such as @code{insert-file-contents} so that
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
93 accessing a remote file causes appropriate commands to be sent to an FTP
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
94 process. EFS includes and enhanced version of Dired to facilitate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
95 directory browsing and multiple file transfer from remote hosts.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
96
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
97 The authors of EFS are Sandy Rutherford (@code{sandy@@math.ubc.ca}) and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
98 Andy (Ange) Norman (@code{ange@@hplb.hpl.hp.com}). EFS is partly based
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
99 on an earlier package called ange-ftp. The integration of EFS 1.15 into
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
100 XEmacs and numerous bug fixes were done by Mike Sperber
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
101 (@code{sperber@@informatik.uni-tuebingen.de}).
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
102
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
103 @ifinfo
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
104 Many people have sent in enhancements for ange-ftp and EFS.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
105 Members of the ange-ftp and EFS Hall of Fame include:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
106
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
107 @itemize @bullet
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
108 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
109 Many thanks to Roland McGrath for improving the filename syntax handling,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
110 for suggesting many enhancements and for numerous cleanups to the code.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
111
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
112 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
113 Thanks to Jamie Zawinski for bugfixes and for ideas such as gateways.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
114
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
115 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
116 Thanks to Ken Laprade for improved @file{.netrc} parsing and password
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
117 reading, and Dired/shell autoloading.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
118
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
119 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
120 Thanks to Sebastian Kremer for tree dired support and for many ideas and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
121 bugfixes.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
122
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
123 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
124 Thanks to Joe Wells for bugfixes, non-UNIX system support, VOS support,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
125 and hostname completion.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
126
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
127 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
128 Thanks to Nakagawa Takayuki for many good ideas, filename-completion, help
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
129 with file-name expansion, efficiency worries, stylistic concerns and many
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
130 bugfixes.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
131
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
132 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
133 Also, thanks to Rob Austein, Doug Bagley, Andy Caiger, Jim Franklin,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
134 Noah Friedman, Aksnes Knut-Havard, Elmar Heeb, John Interrante, Roland
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
135 McGrath, Jeff Morgenthaler, Mike Northam, Jens Petersen, Jack Repenning,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
136 Joerg-Martin Schwarz, Michael Sperber, Svein Tjemsland, Andy Whitcroft,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
137 Raymond A. Wiker and many others whose names have been forgotten who
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
138 have helped to debug and fix problems.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
139 @end itemize
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
140 @end ifinfo
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
141
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
142 Finally, this info file was put together by Mike Sperber
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
143 (@code{sperber@@informatik.uni-tuebingen.de}) from an ange-ftp info file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
144 written by Dave Smith (@code{dsmith@@stats.adelaide.edu.au}) and the EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
145 source code.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
146
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
147 @node Installing EFS, Using EFS, What is EFS?, Top
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
148 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
149 @chapter Installing EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
150
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
151 At the time of writing of this documentation, the version of EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
152 distributed with XEmacs (this means the EFS running on XEmacs
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
153 19.15/20.1) is the latest version available. It includes many bugfixes
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
154 and some enhancements over the last separately released version of EFS,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
155 1.15. This situation will change once a new version of EFS is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
156 available.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
157
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
158 Generally, EFS is pretty easy to get hold of. FTP is the probably the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
159 simplest method, but other options such as mail are available.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
160
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
161 Once you have the Emacs-Lisp source, there are a few customisations you
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
162 might need to make. The ideal configuration is to have the FTP process running
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
163 on the same machine as you are running Emacs on, but this is not always
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
164 possible since some machines cannot access hosts outside the local
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
165 network. In this case, the FTP process needs to be run on a machine
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
166 which @emph{does} have access to the local world --- this is called the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
167 @strong{gateway host}. EFS has facilities to make use of a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
168 gateway host when accessing remote hosts.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
169
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
170 @menu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
171 * Obtaining source code:: Where to find the EFS source.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
172 * Installing source:: Where to put it, how to load it.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
173 * Using a gateway:: If your local machine has limited access.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
174 * Setting up a gateway::
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
175 * Gateway types::
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
176 * Gateway problems::
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
177 * Other options:: More user variables to twiddle.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
178 @end menu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
179
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
180 @node Obtaining source code, Installing source, Installing EFS, Installing EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
181 @section How to get the EFS source code
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
182 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
183
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
184 The latest separately distributed version of EFS should always be
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
185 available from Andy Norman's home page at
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
186 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
187 http://www-uk.hpl.hp.com/people/ange/efs
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
188 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
189
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
190 There are also some ftp locations:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
191
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
192 @table @b
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
193 @item Switzerland
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
194 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
195 /anonymous@@itp.ethz.ch:/sandy/efs/
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
196 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
197
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
198 @item Massachusetts, USA
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
199 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
200 /anonymous@@alpha.gnu.ai.mit.edu:/efs/
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
201 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
202
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
203 @item California, USA
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
204 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
205 /anonymous@@ftp.hmc.edu:/pub/emacs/packages/efs/
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
206 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
207 @end table
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
208
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
209 Failing these, someone on the EFS mailing list (@xref{Getting help}) may
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
210 be able to help you find the latest version.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
211
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
212 @node Installing source, Using a gateway, Obtaining source code, Installing EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
213 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
214 @section Installing the source
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
215
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
216 For byte compiling the EFS package, a @file{Makefile} is provided. You
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
217 should follow the instructions at the top of the @file{Makefile}. If
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
218 you have any problems, please let us know so that we can fix them for
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
219 other users. Don't even consider using eFS without byte compiling it. It
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
220 will be far too slow.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
221
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
222 If you decide to byte compile efs by hand, it is important that the file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
223 @file{efs-defun.el} be byte compiled first, followed by @file{efs.el}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
224 The other files may be byte compiled in any order.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
225
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
226 To use EFS, simply put the byte compiled files in your load path
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
227 and add
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
228
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
229 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
230 (require 'efs)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
231 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
232
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
233 in your @file{.emacs} file. Note this takes awhile, and some users have
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
234 found this to be unbearably slow. Therefore ...
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
235
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
236 If you would like efs to be autoloaded when you attempt to access
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
237 a remote file, put
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
238
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
239 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
240 (require 'efs-auto)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
241 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
242
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
243 in your @file{.emacs} file. Note that there are some limitations associated
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
244 with autoloading EFS. A discussion of them is given at the top of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
245 @file{efs-auto.el}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
246
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
247 Note that, in XEmacs, EFS automatically loads @file{efs-auto} when the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
248 user accesses a remote file. Therefore, no additional @code{require}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
249 statements should be necessary to use EFS. Just fire away ...
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
250
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
251 The above instructions should allow you to access all hosts that your
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
252 local machine can access. If your local host has limited access,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
253 however, you may wish to have EFS working through a gateway
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
254 machine. If so, read on. Otherwise, @xref{Using EFS} to get started
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
255 using EFS.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
256
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
257 @node Using a gateway, Setting up a gateway, Installing source, Installing EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
258 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
259 @section Using a gateway
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
260
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
261 Sometimes it is necessary for the FTP process to be run on a different
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
262 machine than the machine running Emacs. This can happen when the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
263 local machine has restrictions on what hosts it can access.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
264
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
265 Suppose you are running Emacs (and EFS, of course) on a machine X
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
266 (let's call it the `local host') and you want to access a file on a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
267 machine Z (which we will call the `remote host'). Unfortunately, X does
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
268 not have FTP access to Z: when you try a manual FTP something like
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
269 the following happens:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
270 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
271 X$ ftp Z.foo.bar.com
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
272 ftp: connect: Host is unreachable
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
273 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
274 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
275 However, X @emph{does} have access to a machine Y (the `gateway
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
276 machine') which @emph{can} access Z. Fortunately, you have an account on
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
277 the gateway machine, and so the solution is to login to Y, ftp to Z,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
278 download the file you want from Z to Y, and then copy it from Y to the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
279 local host, X. This can get a bit tedious, to say the least, but
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
280 fortunately EFS can do all the hard work for you.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
281
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
282 @node Setting up a gateway, Gateway types, Using a gateway, Installing EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
283 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
284 @section Setting up a gateway
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
285
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
286 @enumerate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
287
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
288 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
289 Set the variable @code{efs-gateway-host} to the name of a machine
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
290 @vindex efs-gateway-host
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
291 that doesn't have the access restrictions. If you need to use a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
292 nonstandard port to access this host for gateway use, then specify
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
293 @code{efs-gateway-host} as @code{<hostname>#<port>}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
294
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
295 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
296 Set the variable @code{efs-ftp-local-host-regexp} to a regular
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
297 expression
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
298 @vindex efs-ftp-local-host-regexp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
299 that matches hosts that can be contacted from running a local ftp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
300 process, but fails to match hosts that can't be accessed locally.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
301
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
302 For example:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
303
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
304 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
305 "\\.hp\\.com$\\|^[^.]*$"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
306 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
307
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
308 will match all hosts that are in the @t{.hp.com} domain, or don't have
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
309 an explicit domain in their name, but will fail to match hosts with
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
310 explicit domains or that are specified by their ip address.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
311
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
312 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
313 Set the variable @code{efs-local-host-regexp} to machines that you have
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
314 @vindex efs-local-host-regexp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
315 direct TCP/IP access. In other words, you must be able to ping these
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
316 hosts. Usually, @code{efs-ftp-local-host-regexp} and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
317 @code{efs-local-host-regexp} will be the same. However, they will
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
318 differ for so-called transparent gateways. See below for more
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
319 details.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
320
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
321 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
322 Set the variable @code{efs-gateway-tmp-name-template} to the name of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
323 @vindex efs-gateway-tmp-name-template
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
324 a directory plus an identifying filename prefix for making temporary
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
325 files on the gateway. For example: @code{"/tmp/hplose/ange/efs"}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
326
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
327 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
328 If the gateway and the local host share cross-mounted directories,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
329 set the value of @code{efs-gateway-mounted-dirs-alist} accordingly. It
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
330 @vindex efs-gateway-mounted-dirs-alist
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
331 is particularly useful, but not mandatory, that the directory
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
332 of @code{efs-gateway-tmp-name-template} be cross-mounted.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
333 @vindex efs-gateway-tmp-name-template
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
334
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
335 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
336 Set the variable @code{efs-gateway-type} to the type gateway that you have.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
337 This variable is a list, the first element of which is a symbol
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
338 denoting the type of gateway.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
339 @end enumerate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
340
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
341 @node Gateway types, Gateway problems, Setting up a gateway, Installing EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
342 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
343 @section Supported gateway types
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
344
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
345 @vindex efs-gateway-type
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
346
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
347 @table @samp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
348
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
349 @item local
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
350 This means that your local host is itself the gateway. However,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
351 it is necessary to use a different FTP client to gain access to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
352 the outside world. If the name of the FTP client were @t{xftp}, you might
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
353 set @code{efs-gateway-type} to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
354
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
355 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
356 (list 'local "xftp" efs-ftp-program-args)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
357 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
358
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
359 If @t{xftp} required special arguments, then give them in place of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
360 @t{efs-ftp-program-args}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
361 @vindex efs-ftp-program-args
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
362
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
363 @item proxy
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
364
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
365 This indicates that your gateway works by first FTP'ing to it, and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
366 then issuing a @code{USER} command of the form
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
367
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
368 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
369 USER <username>@@<host>
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
370 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
371
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
372 In this case, you might set @code{efs-gateway-type} to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
373
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
374 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
375 (list 'proxy "ftp" efs-ftp-program-args)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
376 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
377
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
378 If you need to use a nonstandard client, such as @t{iftp}, give this
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
379 @pindex iftp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
380 instead of @t{ftp}. If this client needs to take special arguments,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
381 give them instead of @t{efs-ftp-program-args}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
382
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
383 @item remsh
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
384
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
385 For this type of gateway, you need to start a remote shell on
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
386 your gateway, using either @t{remsh} or @t{rsh}. You should set
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
387 @pindex remsh
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
388 @pindex rsh
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
389 @sc{efs-gateway-type} to something like
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
390
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
391 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
392 (list 'remsh "remsh" nil "ftp" efs-ftp-program-args)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
393 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
394
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
395 If you use @t{rsh} instead of @r{remsh}, change the second element from
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
396 @code{"remsh"} to @code{"rsh"}. Note that the symbol indicating the gateway
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
397 type should still be @code{'remsh}. If you want to pass arguments
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
398 to the remsh program, give them as the third element. For example,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
399 if you need to specify a user, make this @code{(list "-l" "sandy")}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
400 If you need to use a nonstandard FTP client, specify that as the fourth
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
401 element. If your FTP client needs to be given special arguments,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
402 give them instead of @code{efs-ftp-program-args}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
403
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
404 @item interactive
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
405
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
406 This indicates that you need to establish a login on the gateway,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
407 using either @t{telnet} or @t{rlogin}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
408 @pindex telnet
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
409 @pindex rlogin
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
410 You should set @code{efs-gateway-type} to something like
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
411
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
412 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
413 (list 'interactive "rlogin" nil "exec ftp" efs-ftp-program-args)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
414 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
415
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
416 If you need to use @t{telnet}, then give @code{"telnet"} in place of the second
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
417 element @code{"rlogin"}. If your login program needs to be given arguments,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
418 then they should be given in the third slot. The fourth element
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
419 is for the name of the FTP client program. Giving this as @code{"exec ftp"},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
420 instead of @code{"ftp"}, ensures that you are logged out if the FTP client
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
421 dies. If the FTP client takes special arguments, give these instead
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
422 of @code{efs-ftp-program-args}. Furthermore, you should see the documentation
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
423 at the top of @file{efs-gwp.el}. You may need to set the variables
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
424 @code{efs-gwp-setup-term-command}, and @code{efs-gwp-prompt-pattern}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
425 @vindex efs-gwp-setup-term-command
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
426 @vindex efs-gwp-prompt-pattern
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
427
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
428 @item raptor
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
429 This is a type of gateway where efs is expected to specify a gateway
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
430 user, and send a password for this user using the @code{ACCOUNT} command.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
431 For example, to log in to @samp{foobar.edu} as sandy, while using the account
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
432 ange on the gateway, the following commands would be sent:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
433
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
434 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
435 open raptorgate.com
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
436 quote USER sandy@@foobar.edu ange
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
437 quote pass <sandy's password on foobar>
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
438 quote account <ange's password on raptorgate>
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
439 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
440
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
441 For such a gateway, you would set @code{efs-gateway-type} to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
442
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
443 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
444 (list 'raptor efs-ftp-program efs-ftp-program-args <GATEWAY USER>)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
445 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
446
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
447 where @code{<GATEWAY USER>} is the name of your account on the gateway. In
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
448 the above example, this would be @code{"ange"}. You can set your gateway
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
449 password by simply setting an account password for the gateway host.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
450 This can be done with either efs-set-account, or within your .netrc
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
451 file. If no password is set, you will be prompted for one.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
452
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
453 @item interlock
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
454 This is a type of gateway where you are expected to send a PASS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
455 command after opening the connection to the gateway.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
456 The precise login sequence is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
457
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
458 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
459 open interlockgate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
460 quote PASS <sandy's password on interlockgate>
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
461 quote USER sandy@@foobar.edu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
462 quote PASS <sandy's password on foobar.edu>
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
463 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
464
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
465 For such a gateway, you should set @code{efs-gateway-type} to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
466
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
467 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
468 (list 'interlock efs-ftp-program efs-ftp-program-args)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
469 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
470
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
471 If you need to use a nonstandard name for your FTP client,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
472 then replace @code{efs-ftp-program} with this name. If your FTP client
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
473 needs to take nonstandard arguments, then replace @code{efs-ftp-program-args}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
474 with these arguments.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
475
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
476 If your gateway returns both a 220 code and a 331 code to the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
477 @code{"open interlockgate"} command, then you should add a regular
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
478 expression to @code{efs-skip-msgs} that matches the 220 response.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
479 Returning two response codes to a single FTP command is not permitted
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
480 in RFC 959. It is not possible for efs to ignore the 220 by default,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
481 because than it would hang for interlock installations which do not
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
482 require a password.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
483
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
484 @item kerberos
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
485 With this gateway, you need to authenticate yourself by getting a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
486 kerberos "ticket" first. Usually, this is done with the kinit program.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
487 Once authenticated, you connect to @samp{foobar.com} as user sandy with the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
488 sequence: (Note that the @code{"-n"} argument inhibits automatic login.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
489 Although, in manual use you probably don't use it, EFS always uses it.)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
490
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
491 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
492 iftp -n
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
493 open foobar.com
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
494 user sandy@@foobar.com
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
495 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
496 @pindex iftp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
497
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
498 You should set @code{efs-gateway-type} to something like
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
499
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
500 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
501 (list 'kerberos "iftp" efs-ftp-program-args "kinit" <KINIT-ARGS>)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
502 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
503
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
504 If you use an FTP client other than @t{iftp}, insert its name instead of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
505 @code{"iftp"} above. If your FTP client needs special arguments, give
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
506 them as a list of strings in place of @code{efs-ftp-program-args}. If
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
507 the program that you use to collect a ticket in not called
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
508 @code{"kinit"}, then give its name in place of @code{"kinit"} above.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
509 @code{<KINIT-ARGS>} should be any arguments that you need to pass to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
510 your kinit program, given as a list of strings. Most likely, you will
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
511 give this as nil.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
512
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
513 See the file @file{efs-kerberos.el} for more configuration variables. If you
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
514 need to adjust any of these variables, please report this to us so that
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
515 we can fix them for other users.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
516
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
517 If EFS detects that you are not authenticated to use the gateway, it
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
518 will run the kinit program automatically, prompting you for a password.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
519 If you give a password in your @file{.netrc} file for login the value of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
520 @code{efs-gateway-host} and user @t{kerberos}, then EFS will use this to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
521 obtain gateway authentication.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
522
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
523 @item Transparent gateways
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
524
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
525 If your gateway is completely transparent (for example it uses socks),
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
526 then you should set @code{efs-gateway-type} to @code{nil}. Also, set
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
527 @code{efs-ftp-local-host-regexp} to @code{".*"}. However,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
528 @code{efs-local-host-regexp}, must still be set to a regular expression
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
529 matching hosts in your local domain. EFS uses this to determine which
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
530 machines that it can open-network-stream to. Furthermore, you should
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
531 still set @code{efs-gateway-host} to the name of your gateway machine.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
532 That way EFS will know that this is a special machine having direct
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
533 TCP/IP access to both hosts in the outside world, and hosts in your
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
534 local domain.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
535
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
536 @end table
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
537
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
538
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
539
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
540 @node Gateway problems, Other options, Gateway types, Installing EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
541 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
542 @section Common Problems with Gateways
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
543
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
544 @subsection Spurious 220 responses
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
545
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
546 Some proxy-style gateways (eg gateway type @code{'proxy} or @code{'raptor}),
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
547 return two 3-digit FTP reply codes to the @code{USER} command.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
548 For example:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
549
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
550 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
551 open gateway.weird
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
552 220 Connected to gateway.weird
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
553 quote USER sandy@@foobar
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
554 220 Connected to foobar
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
555 331 Password required for sandy
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
556 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
557
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
558 This is wrong, according to the FTP Protocol. Each command must return
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
559 exactly one 3-digit reply code. It may be preceded by continuation
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
560 lines. What should really be returned is:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
561
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
562 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
563 quote USER sandy@@foobar
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
564 331-Connected to foobar.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
565 331 Password required for sandy.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
566 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
567
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
568 or even
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
569
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
570 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
571 quote USER sandy@@foobar
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
572 331-220 Connected to foobar.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
573 331 Password required for sandy.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
574 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
575
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
576 Even though the @samp{"331-220"} looks strange, it is correct protocol,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
577 and EFS will parse it properly.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
578
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
579 If your gateway is returning a spurious 220 to @code{USER}, a work-around
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
580 is to add a regular expression to @code{efs-skip-msgs} that matches
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
581 @vindex efs-skip-msgs
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
582 this line. It must not match the 220 line returned to the open
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
583 command. This work-around may not work, as some system FTP clients
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
584 also get confused by the spurious 220. In this case, the only
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
585 solution is to patch the gateway server. In either case, please
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
586 send a bug report to the author of your gateway software.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
587
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
588 @subsection Case-sensitive parsing of FTP commands
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
589
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
590 Some gateway servers seem to treat FTP commands case-sensitively.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
591 This is incorrect, as RFC 959 clearly states that FTP commands
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
592 are always to be case-insensitive. If this is a problem with your
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
593 gateway server, you should send a bug report to its author.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
594 If efs is using a case for FTP commands that does not suit your server,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
595 a possible work-around is to edit the efs source so that the required
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
596 case is used. However, we will not be making any changes to the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
597 standard EFS distribution to support this type of server behaviour.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
598 If you need help changing the efs source, you should enquire with the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
599 efs-help mailing list.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
600
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
601 @node Other options, , Gateway problems, Installing EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
602 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
603 @section Other user options
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
604
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
605 Here are other user options available in EFS:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
606
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
607 @code{efs-netrc-filename}: The name of a file in @code{netrc(5)}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
608 format that EFS will use to match hostnames, users and their
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
609 respective passwords. Hostnames specified here are also used for hostname
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
610 completion.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
611 The default is @code{"~/.netrc"}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
612 @vindex efs-netrc-filename
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
613
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
614 @code{efs-default-user}: If this is a string, it is the username to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
615 use when none is specified in a filename. If @code{nil}, then the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
616 name under which the user is logged in is used. If non-@code{nil} but
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
617 not a string, the user is prompted for the name. The default is @code{nil}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
618 @vindex efs-default-user
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
619
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
620 @code{efs-default-password}: The password to use when the user is the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
621 same as @code{efs-default-user}. The default is @code{nil}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
622 @vindex efs-default-password
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
623
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
624 @code{efs-default-account}: Account password to use when the user
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
625 is the same as @code{efs-default-user}. The default is @code{nil}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
626 @vindex efs-default-account
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
627
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
628 @code{efs-dumb-unix-host-regexp}: The FTP servers on some machines have
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
629 problems if the @code{ls} command is used. The usual indication that
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
630 something is wrong is when EFS erroneously thinks that a directory
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
631 is just a plain file. The routine @code{efs-add-host} can
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
632 be called to tell EFS to limit itself to the @code{DIR} command and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
633 not @code{ls} for a given host (but this change will take effect for the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
634 current Emacs session only) when called like this:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
635
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
636 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
637 (efs-add-host 'dumb-unix "hostname")
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
638 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
639
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
640 If a large number of machines with similar hostnames have this problem
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
641 then it is easier to change the value of this variable to a regexp which
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
642 matches hostnames which have this problem, particularly since EFS cannot
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
643 automatically detect such hosts. The default is @code{nil}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
644 @vindex efs-dumb-unix-host-regexp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
645 @findex efs-add-host
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
646
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
647 @code{efs-binary-file-name-regexp}: By default EFS will
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
648 transfer files in ASCII mode. If a file being transferred matches the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
649 value of this regexp then the FTP process will be toggled into BINARY
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
650 mode before the transfer and back to ASCII mode after the transfer. The
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
651 default is:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
652 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
653 (concat "\\." ; the dot
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
654 ;; extensions
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
655 "\\([zZ]\\|t?gz\\|lzh\\|arc\\|zip\\|zoo\\|ta[rz]\\|dvi\\|sit\\|"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
656 "ps\\|elc\\|gif\\|Z-part-..\\|tpz\\|exe\\|[jm]pg\\|TZ[a-z]?\\|lib\\)"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
657 "\\(~\\|~[0-9]+~\\)?$" ; backups
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
658 "\\|"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
659 ;; UPPER CASE LAND
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
660 "\\."
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
661 "\\(ARC\\|ELC\\|TAGS\\|EXE\\|ZIP\\|DVI\|ZOO\\|GIF\\|T?GZ\\|"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
662 "[JM]PG\\)"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
663 "\\([.#;][0-9]+\\)?$" ; versions
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
664 )
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
665 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
666 @vindex efs-binary-file-name-regexp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
667
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
668 @code{efs-hash-mark-size}: EFS by default requests that the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
669 FTP process sends hash marks (just @code{#} characters) during transfers
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
670 to keep track of how much data has been sent or received. This variable,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
671 if non-@code{nil}, should be the number of kilobytes represented by the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
672 FTP client's hash mark. The default value of 1 doesn't work for me --- I
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
673 use 2 instead.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
674 @vindex efs-hash-mark-size
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
675
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
676 @code{efs-verbose}: If this is @code{t} then EFS will be chatty about
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
677 interaction with the FTP process. The default is @code{t}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
678 @vindex efs-process-verbose
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
679
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
680 @code{efs-ftp-program-name}: This should be the name of the FTP
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
681 program to run on the local host. The default value of @code{"ftp"}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
682 should be fine for most systems.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
683 @vindex efs-ftp-program-name
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
684
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
685 @code{efs-make-backup-files}: A list of operating systems for which
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
686 EFS will make Emacs backup files on the remote host. For example,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
687 @code{'(unix)} makes sense, but @code{'(unix vms)} or @code{'(vms)}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
688 would be silly, since VMS makes its own backups. The host type is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
689 determined by the function @code{efs-host-type}. Possible host
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
690 types are: @code{dumb-unix}; @code{vos}; @code{vms}; @code{mts}; and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
691 @code{unix}. The default of @code{nil} means make no backups on remote
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
692 hosts.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
693 @vindex efs-make-backup-files
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
694 @cindex backup files
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
695
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
696 @code{efs-skip-msgs}: A regular expression matching messages from
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
697 the ftp process that can be ignored. The default is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
698 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
699 (concat
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
700 "^110 \\|" ; Restart marker reply.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
701 "^125 \\|" ; Data connection already open; transfer starting.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
702 "^150 ") ; File status OK; about to open connection.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
703 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
704 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
705 but you might need to tweak it if EFS is giving up when it
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
706 shouldn't.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
707 @vindex efs-skip-msgs
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
708
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
709 @code{efs-fatal-msgs}: A regular expression matching messages from
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
710 the FTP process that indicate something has gone drastically wrong
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
711 attempting the action that was initiated and that the FTP process should
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
712 (or already has) been killed. The default is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
713 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
714 (concat
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
715 ;; RFC959 codes
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
716 "^221 \\|" ; Service closing control connection.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
717 "^421 \\|" ; Service not available.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
718 "^425 \\|" ; Can't open data connection.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
719 "^426 \\|" ; Connection closed, transfer aborted.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
720 "^451 \\|" ; Requested action aborted, local error in processing.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
721 ;; RFC959 non-compliant codes
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
722 "^552 Maximum Idle Time Exceded\\.$\\|" ; Hellsoft server uses this to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
723 ; indicate a timeout. 552 is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
724 ; supposed to be used for exceeded
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
725 ; storage allocation. Note that
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
726 ; they also misspelled the error
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
727 ; message.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
728 ;; client problems
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
729 "^ftp: \\|^Not connected\\|^rcmd: \\|^No control connection\\|"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
730 "^unknown host\\|: unknown host$\\|^lost connection\\|"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
731 "^[Ss]egmentation fault\\|"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
732 ;; Make sure that the "local: " isn't just a message about a file.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
733 "^local: [^/]\\|"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
734 ;; Gateways
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
735 "^iftp: cannot authenticate to server\\b"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
736 )
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
737 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
738 @vindex efs-fatal-msgs
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
739
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
740 @code{efs-gateway-fatal-msgs}: Regular expression matching messages
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
741 from the rlogin / telnet process that indicates that logging in to the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
742 gateway machine has gone wrong. The default is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
743 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
744 "No route to host\\|Connection closed\\|No such host\\|Login incorrect"
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
745 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
746 @vindex efs-gateway-fatal-msgs
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
747
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
748 @code{efs-tmp-name-template}: This should be a directory and a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
749 filename prefix indicating where EFS should make temporary files.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
750 The default of @code{"/tmp/efs"} should be fine for most systems.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
751 @vindex efs-tmp-name-template
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
752 @cindex temporary files
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
753
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
754 @code{efs-retry-time}: Number of seconds to wait before retrying if
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
755 a file or listing doesn't arrive. For slow connections, you might get a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
756 ``listing unreadable'' error messages
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
757 @cindex listing unreadable error
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
758 or an empty buffer for a file that you know has something in it. The
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
759 solution is to increase the value of @code{efs-retry-time}. Its default
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
760 value is 5 which is plenty for reasonable connections. However, for
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
761 some transatlantic connections 20 might be a better value.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
762 @vindex efs-retry-time
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
763
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
764 @node Using EFS, Getting help, Installing EFS, Top
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
765 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
766 @chapter Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
767
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
768 Once installed, efs operates largely transparently. All files normally
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
769 accessible to you on the internet, become part of a large virtual file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
770 system. These files are accessed using an extended file name syntax. To
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
771 access file @code{<path>} on remote host @code{<host>} by logging in as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
772 user @code{<user>}, you simply specify the full path of the file as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
773 @code{/<user>@@<host>:<path>}. Nearly all Emacs file handling functions
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
774 work for remote files. It is not possible to access remote files using
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
775 shell commands in an emacs *shell* buffer, as such commands are passed
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
776 directly to the shell, and not handled by emacs.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
777
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
778 FTP is the underlying utility that efs uses to operate on remote files.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
779
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
780 For example, if @code{find-file} is given a filename of:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
781
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
782 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
783 /ange@@anorman:/tmp/notes
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
784 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
785
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
786 then EFS will spawn an FTP process, connect to the host 'anorman' as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
787 user 'ange', get the file @file{/tmp/notes} and pop up a buffer containing the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
788 contents of that file as if it were on the local file system. If efs
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
789 needed a password to connect then it would prompt the user in the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
790 minibuffer. For further discussion of the EFS path syntax, see the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
791 paragraph on extended file name syntax @ref{Remote filenames}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
792
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
793 Full file-name completion is supported on every type of remote host. To
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
794 do filename completion, EFS needs a listing from the remote host.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
795 Therefore, for very slow connections, it might not save any
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
796 time. However, the listing is cached, so subsequent uses of file-name
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
797 completion will be just as fast as for local file names.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
798
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
799 @menu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
800 * Ports:: Using nonstandard ports.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
801 * Remote filenames:: The EFS extended filename syntax.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
802 * Passwords::
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
803 * Using Dired:: Browsing directories.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
804 * Using a .netrc:: Preventing password pestering.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
805 * EFS commands:: Interactive commands supplied by EFS.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
806 * FTP processes:: How EFS does its work
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
807 * Tips:: Some stuff to help you use EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
808 * DL support:: Descriptive directory listings
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
809 * Non-Unix Hosts:: Some of what you want to know
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
810 * Completion:: Works but has its price
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
811 * Accessing the FTP process:: ... manually
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
812 @end menu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
813
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
814 @node Ports, Remote filenames, Using EFS, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
815 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
816 @section Using nonstandard ports
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
817
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
818 EFS supports the use of nonstandard ports on remote hosts. To specify
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
819 that port @code{<port>} should be used, give the host name as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
820 @code{host#<port>}. Host names may be given in this form anywhere that
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
821 efs normally expects a host name. This includes in the @file{.netrc} file.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
822 Logically, EFS treats different ports to correspond to different remote
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
823 hosts.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
824
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
825 @node Remote filenames, Passwords, Ports, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
826 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
827 @section Extended filename syntax
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
828
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
829 The default full EFS path syntax is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
830
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
831 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
832 /<user>@@<host>#<port>:<path>
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
833 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
834
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
835 Both the @code{#<port>'}and @code{<user>@@} may be omitted.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
836
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
837 If the @code{#<port>} is omitted, then the default port is taken to be 21,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
838 the usual FTP port. For most users, the port syntax will only
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
839 very rarely be necessary.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
840
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
841 If the @code{<user>@@} is omitted, then EFS will use a default user. If
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
842 a login token is specified in your @file{.netrc} file, then this will be
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
843 used as the default user for @code{<host>}. Otherwise, it is determined
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
844 based on the value of the variable @code{efs-default-user}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
845 @vindex{efs-default-user}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
846
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
847 This EFS path syntax can be customised to a certain extent by changing a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
848 number of variables. To
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
849 undertake such a customization requires some knowledge about the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
850 internal workings of EFS.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
851
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
852 @node Passwords, Using Dired, Remote filenames, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
853 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
854 @section Passwords
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
855
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
856 A password is required for each host / user pair. This will be prompted
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
857 for when needed, unless already set by calling @code{efs-set-passwd},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
858 @findex{efs-set-passwd} or specified in a @emph{valid} @file{~/.netrc}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
859 file.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
860
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
861 When EFS prompts for a password, it provides defaults from its cache of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
862 currently known passwords. The defaults are ordered such that passwords
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
863 for accounts which have the same user name as the login which is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
864 currently underway have priority. You can cycle through your list of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
865 defaults with @kbd{C-n} to cycle forwards and @kbd{C-p} to cycle
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
866 backwards. The list is circular.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
867
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
868 @subsection Passwords for user @t{anonymous}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
869
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
870 Passwords for the user @t{anonymous} (or @t{ftp}) are handled specially.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
871 The variable @code{efs-generate-anonymous-password} controls what
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
872 \vindex efs-generate-anonymous-password happens. If the value of this
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
873 variable is a string, then this is used as the password; if
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
874 non-@code{nil}, then a password is created from the name of the user and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
875 the hostname of the machine on which Emacs is running; if @code{nil}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
876 (the default) then the user is prompted for a password as normal.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
877
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
878 @subsection Account passwords
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
879
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
880 Some FTP servers require an additional password which is sent by the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
881 @code{ACCOUNT} command. EFS will detect this and prompt the user for an
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
882 account password if the server expects one. Also, an account password
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
883 can be set by calling @code{efs-set-account}, or by specifying an
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
884 @findex efs-set-account
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
885 account token in the @file{.netrc} file.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
886
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
887 Some operating systems, such as CMS, require that @code{ACCOUNT} be used
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
888 to give a write access password for minidisks. @code{efs-set-account} can be
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
889 used to set a write password for a specific minidisk. Also, tokens of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
890 the form
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
891
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
892 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
893 minidisk <minidisk name> <password>
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
894 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
895
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
896 may be added to host lines in your @file{.netrc} file. Minidisk tokens
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
897 must be at the end of the host line, however there may be an arbitrary
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
898 number of them for any given host.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
899
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
900 @node Using Dired, Using a .netrc, Passwords, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
901 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
902 @section Using Dired
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
903
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
904 This feature of EFS is particularly useful when file transfers, as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
905 opposed to file editing, are the order of the day. Simply run
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
906 @code{find-file} on a directory to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
907 get a listing of the files in that directory. For example, you might
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
908 run @code{find-file} on
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
909 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
910 /anonymous@@archive.site.com:pub
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
911 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
912 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
913 to see what's in the @file{pub} directory of your favourite archive
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
914 @cindex archive sites
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
915 site. This brings up a Dired buffer of all the files in that directory.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
916 The @kbd{f} command is useful for looking at @file{README} files --- if
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
917 you then decide to save it @kbd{C-x C-w} is useful. You can also use
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
918 this method to copy files, but the @kbd{c} command is easier. The
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
919 @kbd{f} command can also be used to descend the directory tree by
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
920 applying it to directories.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
921
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
922 You can also use Dired to refresh EFS's internal cache. If you
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
923 (or anybody else) has changed a remote directory since you first accessed it
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
924 with EFS, completion is not provided on any new files that EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
925 does not know about. If you have
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
926 (or create) a Dired buffer which contains the modified directory,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
927 executing @code{revert-buffer}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
928 @findex revert-buffer
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
929 with a prefix argument (@kbd{C-u g} in the Dired buffer)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
930 will force a refresh of both the the buffer @emph{and also EFS's
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
931 internal cache}. If you find that filename completion isn't working on a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
932 @cindex filename completion
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
933 file that you @emph{know} is there, this is how to fix the problem.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
934
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
935 Dired provides facilities for maintaining an
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
936 entire directory tree in a Dired buffer, for marking files which match a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
937 certain regexp (or you can select files interactively) and then copying
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
938 all those files to your local host (or even a different remote host).
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
939 Another useful feature is Virtual Dired, which allows you to save Dired
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
940 @cindex virtual dired
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
941 buffers of remote hosts, allowing you to browse them at a later date
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
942 without actually needing to connect to the host.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
943
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
944 @node Using a .netrc, EFS commands, Using Dired, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
945 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
946 @section Using a .netrc file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
947
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
948 Being prompted for passwords all the time can get rather annoying, but
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
949 there is a way to fix the problem --- a @file{.netrc} (but @xref{Other
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
950 options} and @code{efs-netrc-filename}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
951 @vindex efs-netrc-filename
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
952 if you want another
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
953 filename) file in your home directory. Basically, this is a file (in the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
954 format of Unix @code{netrc(5)}) which
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
955 contains the names of all the machines you regularly login to, as well
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
956 as the username and password you use for that machine. You can also
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
957 supply an account password, if required.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
958
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
959 Your @file{.netrc} file consists of lines of the form
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
960 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
961 machine <machine-name> login <user-name> password <password>
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
962 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
963 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
964 It doesn't all have to be on the one line, though: any @code{login} or
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
965 @code{password} commands in the file refer to the previous
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
966 @code{machine} command. You can also have @code{account
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
967 <account-passwd>} commands if you need special account passwords.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
968
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
969 For example, you might have the following line in your @file{.netrc}:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
970 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
971 machine Y.local.lan.edu login myname password secret
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
972 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
973 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
974 Then if you run @code{find-file} on the file @file{/Y.local.lan.edu:somefile}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
975 you will automatically be logged in as user @code{myname} with password
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
976 @code{secret}. You can still login under another name and password, if
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
977 you so desire: just include the @code{user@@} part of the filename.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
978
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
979 You may also include a default option, as follows:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
980 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
981 default login <user-name> password <password>
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
982 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
983 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
984 which applies to any other machines not mentioned elsewhere in your
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
985 @file{.netrc}. A particularly useful application of this is with
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
986 anonymous logins:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
987 @cindex anonymous FTP
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
988 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
989 default login myname password myname@@myhost.edu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
990 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
991 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
992 so that accessing @file{/anyhost:anyfile} will automatically log you in
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
993 anonymously, provided the host is not mentioned in the @file{.netrc}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
994 Note also that if the value of @code{efs-default-user} is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
995 @vindex efs-default-user
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
996 non-@code{nil}, its value will have precedence over the username
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
997 supplied in the default option of the @file{.netrc}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
998
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
999 The @file{.netrc} file is also useful in another regard: machines
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1000 included in it are provided with hostname completion. That is, for any
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1001 @cindex hostname completion
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1002 machine in the @file{.netrc}, you need only type a slash and the first
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1003 few characters of its name and then press @key{TAB} to be logged in
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1004 automatically with a username and password from the @file{.netrc} file.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1005 So it's a good idea to put hosts you use regularly in your @file{.netrc}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1006 as well:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1007 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1008 machine archive.site.com login anonymous password myname@@X.local.lan.edu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1009 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1010
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1011 @node EFS commands, FTP processes, Using a .netrc, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1012 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1013 @section EFS commands
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1014
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1015 EFS supplies a few interactive commands to make connecting with
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1016 hosts a little easier.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1017
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1018 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1019 Command @code{efs-set-user}: Prompts for a hostname and a username.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1020 Next time access to the host is attempted, EFS will attempt to log
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1021 in again with the new username.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1022 @findex efs-set-user
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1023
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1024 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1025 Command @code{efs-set-passwd}: Prompts for a hostname, user and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1026 password. Future logins to that host as that user will use the given
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1027 password.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1028 @findex efs-set-passwd
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1029
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1030 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1031 Command @code{efs-set-account}: Prompts for a hostname, user and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1032 account. Future logins to that host as that user will use the given
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1033 account.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1034 @findex efs-set-account
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1035
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1036 Note that the effects of the above three commands only last the duration
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1037 of the current Emacs session. To make their effects permanent, you may
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1038 include them as lisp code in your @file{.emacs}:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1039 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1040 (efs-set-user HOST USER)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1041 (efs-set-password HOST USER PASSWORD)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1042 (efs-set-account HOST USER ACCOUNT)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1043 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1044 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1045 This is an alternative to using a @file{.netrc}; @xref{Using a .netrc}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1046
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1047 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1048 Command @code{efs-kill-ftp-process}: kill the FTP process
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1049 associated with a given buffer's filename (by default the current
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1050 buffer). This is an easy way to achieve a resynch: any future accesses
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1051 to the remote host will cause the FTP process to be recreated.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1052 @findex efs-kill-ftp-process
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1053
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1054 @node FTP processes, Tips, EFS commands, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1055 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1056 @section FTP processes
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1057
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1058 When EFS starts up an FTP process, it leaves it running for speed
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1059 purposes. Some FTP servers will close the connection after a period of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1060 time, but EFS should be able to quietly reconnect the next time that
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1061 the process is needed.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1062
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1063 The FTP process will be killed should the associated @samp{*ftp user@@host*}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1064 buffer be deleted. This should not cause efs any grief.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1065
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1066 @subsection Showing background FTP activity on the mode-line
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1067
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1068 After EFS is loaded, the command @code{efs-display-ftp-activity} will cause
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1069 @findex efs-display-ftp-activity
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1070 background FTP activity to be displayed on the mode line. The variable
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1071 @code{efs-mode-line-format} is used to determine how this data is displayed.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1072 @vindex efs-mode-line-format
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1073 efs does not continuously track the number of active sessions, as this
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1074 would cause the display to change too rapidly. Rather, it uses a heuristic
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1075 algorithm to determine when there is a significant change in FTP activity.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1076
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1077 @subsection File types
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1078
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1079 By default EFS will assume that all files are ASCII. If a file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1080 being transferred matches the value of @code{efs-binary-file-name-regexp}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1081 @vindex efs-binary-file-name-regexp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1082 then the file will be assumed to be a binary file, and EFS will
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1083 transfer it using "type image". ASCII files will be transferred
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1084 using a transfer type which efs computes to be correct according
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1085 to its knowledge of the file system of the remote host. The
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1086 command @code{efs-prompt-for-transfer-type} toggles the variable
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1087 @findex efs-prompt-for-transfer-type
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1088 @code{efs-prompt-for-transfer-type}. When this variable is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1089 @vindex efs-prompt-for-transfer-type
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1090 non-@code{nil}, EFS will prompt the user for the transfer type to use
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1091 for every FTP transfer. Having this set all the time is annoying, but
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1092 it is useful to give special treatment to a small set of files. There
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1093 is also a variable @code{efs-text-file-name-regexp}. This is tested
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1094 @vindex {efs-text-file-name-regexp}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1095 before @code{efs-binary-file-name-regexp}, so if you set
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1096 @code{efs-text-file-name-regexp} to a non-trivial regular expression,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1097 and @code{efs-binary-file-name-regexp} to @samp{".*"}, the result will
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1098 to make image the default tranfer type.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1099
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1100 Also, if you set @code{efs-treat-crlf-as-nl},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1101 @vindex efs-treat-crlf-as-nl
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1102 then EFS will use type image
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1103 to transfer files between hosts whose file system differ only in that
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1104 one specifies end of line as CR-LF, and the other as NL. This is useful
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1105 if you are transferring files between UNIX and DOS machines, and have a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1106 package such as @file{dos-mode.el}, that handles the extra @key{^M}'s.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1107
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1108 @subsection Status reports
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1109
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1110 Most EFS commands that talk to the FTP process output a status
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1111 message on what they are doing. In addition, efs can take advantage
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1112 of the FTP client's @code{HASH} command to display the status of transferring
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1113 files and listing directories. See the documentation for the variables
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1114 @code{efs-hash-mark-size},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1115 @vindex efs-hash-mark-size
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1116 @code{efs-send-hash}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1117 @vindex efs-send-hash
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1118 and @code{efs-verbose}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1119 @vindex efs-verbose
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1120 for more details.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1121
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1122 @subsection Caching of directory information
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1123
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1124 EFS keeps an internal cache of file listings from remote hosts.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1125 If this cache gets out of synch, it can be renewed by reverting a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1126 dired buffer for the appropriate directory (@code{dired-revert} is usually
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1127 bound to @kbd{g}).
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1128
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1129 Alternatively, you can add the following two lines to your @file{.emacs} file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1130 if you want @kbd{C-r} to refresh EFS's cache whilst doing filename
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1131 completion.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1132
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1133 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1134 (define-key minibuffer-local-completion-map "\C-r" 'efs-re-read-dir)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1135 (define-key minibuffer-local-must-match-map "\C-r" 'efs-re-read-dir)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1136 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1137
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1138 @node Tips, DL support, FTP processes, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1139 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1140
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1141 @section Tips for using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1142
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1143 @enumerate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1144 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1145 Beware of compressing files on non-UNIX hosts. EFS will do it by
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1146 copying the file to the local machine, compressing it there, and then
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1147 sending it back. Binary file transfers between machines of different
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1148 architectures can be a risky business. Test things out first on some
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1149 test files. @xref{Bugs} Also, note that EFS sometimes
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1150 copies files by moving them through the local machine. Again,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1151 be careful when doing this with binary files on non-Unix
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1152 machines.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1153
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1154 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1155 Beware that dired over ftp will use your setting of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1156 @code{dired-no-confirm}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1157 @vindex dired-no-confirm
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1158 (list of dired commands for which confirmation is not asked).
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1159 You might want to reconsider your setting of this variable,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1160 because you might want confirmation for more commands on remote
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1161 direds than on local direds. For example, I strongly recommend
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1162 that you not include compress in this list. If there is enough
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1163 demand it might be a good idea to have an alist
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1164 @code{efs-dired-no-confirm} of pairs @code{( TYPE . LIST )}, where @code{TYPE} is an
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1165 operating system type and @code{LIST} is a list of commands for which
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1166 confirmation would be suppressed. Then remote dired listings
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1167 would take their (buffer-local) value of @code{dired-no-confirm} from
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1168 this alist. Who votes for this?
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1169
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1170 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1171 Some combinations of FTP clients and servers break and get out of sync
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1172 when asked to list a non-existent directory. Some of the @t{ai.mit.edu}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1173 machines cause this problem for some FTP clients. Using
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1174 @code{efs-kill-ftp-process}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1175 @findex efs-kill-ftp-process
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1176 can be used to restart the ftp process, which
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1177 should get things back in synch.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1178
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1179 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1180 Some ftp servers impose a length limit on the password that can
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1181 be sent. If this limit is exceeded they may bomb in an
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1182 incomprehensible way. This sort of behaviour is common with
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1183 MVS servers. Therefore, you should beware of this possibility
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1184 if you are generating a long password (like an email address)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1185 with @code{efs-generate-anonymous-password}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1186 @vindex efs-generate-anonymous-password
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1187
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1188 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1189 Some antiquated FTP servers hang when asked for an @code{RNFR} command.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1190 EFS sometimes uses this to test whether its local cache is stale.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1191 If your server for @code{HOST} hangs when asked for this command, put
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1192
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1193 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1194 (efs-set-host-property HOST 'rnfr-failed t)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1195 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1196
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1197 in your @code{efs-ftp-startup-function-alist}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1198 @vindex efs-ftp-startup-function-alist
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1199 entry for @code{HOST}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1200
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1201 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1202 The FTP servers on some Unix machines have problems if the @code{ls}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1203 command is used. EFS will try to correct for this automatically,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1204 and send the @code{dir} command instead. If it fails, you can call the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1205 function @code{efs-add-host},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1206 @findex efs-add-host
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1207 and give the host type as @code{dumb-unix}. Note that this change will
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1208 take effect for the current Emacs session only. To make this
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1209 specification for future emacs sessions, put
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1210
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1211 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1212 (efs-add-host 'dumb-unix "hostname")
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1213 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1214
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1215 in your @file{.emacs} file. Also, please report any failure to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1216 automatically recognize dumb unix to the "bugs" address given below, so
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1217 that we can fix the auto recognition code.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1218
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1219 @end enumerate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1220
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1221 @node DL support, Non-Unix Hosts, Tips, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1222 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1223 @section Descriptive directory listings
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1224
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1225 Some hosts (such as @code{cs.uwp.edu}) now use descriptive directory
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1226 listings
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1227 @cindex descriptive directory listings
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1228 @cindex extended directory listings
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1229 (which in fact contain @emph{less} information than the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1230 standard listing!) when issued the @code{ls} command, and EFS has
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1231 been modified to cope with this. EFS can detect such listings, but
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1232 if you regularly use a remote host which uses this extended listing
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1233 format you should set the variable @code{efs-dl-dir-regexp} to a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1234 @vindex efs-dl-dir-regexp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1235 regular expression which matches directories using the extended listing
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1236 format. You shouldn't anchor the regexp with @samp{$} -- that way the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1237 regexp will match subdirectories as well. Alternatively, you can use
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1238 the interactive command @code{efs-add-dl-dir} to temporarily add a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1239 @findex efs-add-dl-dir
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1240 remote directory for this Emacs session only.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1241
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1242 Dired has been modified to work with such descriptive listings.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1243
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1244 @node Non-Unix Hosts, Completion, DL support, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1245 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1246 @section Using EFS with non-Unix hosts
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1247
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1248 EFS also works with some non-Unix hosts, although not necessarily
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1249 with all the features available with Unix hosts. VMS, CMS, and MTS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1250 systems will all now work with EFS and Dired. It also works with a whole
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1251 bunch of others, but documentation for that has not been written yet.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1252 This section was taken straight from the ange-ftp manual, and is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1253 therefore in all likelihood out-of-date.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1254
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1255 EFS should be able to automatically detect which type of host you
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1256 are using (VMS, CMS or MTS), but if it is unable to do so you can fix
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1257 the problem by setting the appropriate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1258 @code{efs-TYPE-host-regexp} variable (where @code{TYPE} is one of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1259 @samp{vms}, @samp{cms} or @samp{mts}) -- see below. If EFS is unable
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1260 to automatically detect any VMS, CMS or MTS host, please report this as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1261 a bug: @xref{Bugs}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1262
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1263 In all cases the file-name conventions of the remote host are converted
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1264 to a UNIX-ish format, and this is the format you should use to find
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1265 files on such hosts.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1266
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1267 @menu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1268 * VMS support:: Using EFS with VMS systems
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1269 * CMS support:: Using EFS with CMS systems
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1270 * MTS support:: Using EFS with MTS systems
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1271 @end menu
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1272
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1273 @node VMS support, CMS support, Non-Unix Hosts, Non-Unix Hosts
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1274 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1275 @subsection VMS support
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1276 @cindex VMS filenames
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1277 VMS filenames are of the form @code{FILE.TYPE;##}, where both
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1278 @code{FILE} and @code{TYPE} can be up to 39 characters long, and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1279 @code{##} is an integer version number between 1 and 32,767. Valid
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1280 characters in filenames are @samp{A}-@samp{Z}, @samp{0}-@samp{9},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1281 @samp{_}, @samp{-} and @samp{$}, however @samp{$} cannot begin a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1282 filename and @samp{-} cannot be used as the first or last character.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1283
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1284 Directories in VMS are converted to the standard UNIX @samp{/} notation.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1285 For example, the VMS filename
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1286 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1287 PUB$:[ANONYMOUS.SDSCPUB.NEXT]README.TXT;1
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1288 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1289 would be entered as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1290 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1291 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1292 /PUB$$:/ANONYMOUS/SDSCPUB/NEXT/README.TXT;1
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1293 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1294 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1295 (The double @samp{$} is required to prevent Emacs from attempting to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1296 expand an environment variable.) Similarly, to anonymously FTP the file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1297 @file{[.CSV.POLICY]RULES.MEM;1} from @code{ymir.claremont.edu} you would
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1298 type @kbd{C-x C-f
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1299 /anonymous@@ymir.claremont.edu:CSV/POLICY/RULES.MEM;1}. You can always
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1300 drop off the @samp{;##} part at the end of the filename to get the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1301 latest version.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1302
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1303 Sandy Rutherford provides some tips for using VMS hosts:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1304 @itemize @bullet
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1305 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1306 Although VMS is not case sensitive, EMACS running under UNIX is.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1307 Therefore, to access a VMS file, you must enter the filename with upper
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1308 case letters.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1309
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1310 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1311 To access the latest version of file under VMS, you use the filename
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1312 without the @samp{;} and version number. You should always edit the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1313 latest version of a file. If you want to edit an earlier version, copy
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1314 it to a new file first. This has nothing to do with EFS, but is
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1315 simply good VMS operating practice. Therefore, to edit @file{FILE.TXT;3}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1316 (say 3 is latest version), do @kbd{C-x C-f
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1317 /ymir.claremont.edu:FILE.TXT}. If you inadvertently do
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1318 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1319 @kbd{C-x C-f /ymir.claremont.edu:FILE.TXT;3}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1320 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1321 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1322 you will find that VMS will not allow
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1323 you to save the file because it will refuse to overwrite
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1324 @file{FILE.TXT;3}, but instead will want to create @file{FILE.TXT;4},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1325 and attach the buffer to this file. To get out of this situation,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1326 @kbd{M-x write-file /ymir.claremont.edu:FILE.TXT} will attach the buffer
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1327 to latest version of the file. For this reason, in Dired @kbd{f}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1328 (@code{dired-find-file}),
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1329 @findex dired-find-file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1330 always loads the file sans version, whereas @kbd{v},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1331 (@code{dired-view-file}),
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1332 @findex dired-view-file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1333 always loads the explicit version number. The
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1334 reasoning being that it reasonable to view old versions of a file, but
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1335 not to edit them.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1336
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1337 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1338 VMS filenames often contain @samp{$} characters: make sure you always
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1339 quote these as @samp{$$} and watch out for the Emacs bug which fails to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1340 quote @samp{$}'s when defaults are presented in the minibuffer: see
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1341 @xref{Bugs}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1342 @end itemize
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1343
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1344 EFS should automatically detect that you are using a VMS host. If
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1345 it fails to do so (which should be reported as a bug) you can use the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1346 command @code{efs-add-vms-host}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1347 @findex efs-add-vms-host
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1348 to inform EFS manually. For a more permanent effect, or
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1349 if you use a VMS host regularly, it's a good idea to set
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1350 @code{efs-vms-host-regexp} to a regular expression matching that
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1351 @vindex efs-vms-host-regexp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1352 host's name. For instance, if use use @code{ymir.claremont.edu} a lot,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1353 place the following in your .emacs:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1354 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1355 (setq efs-vms-host-regexp "^ymir.claremont.edu$")
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1356 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1357
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1358 @node CMS support, MTS support, VMS support, Non-Unix Hosts
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1359 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1360 @subsection CMS support
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1361 EFS has full support, including Dired support, for hosts
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1362 running CMS.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1363
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1364 @cindex CMS filenames
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1365 CMS filenames are entered in a UNIX-y way. Minidisks are
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1366 treated as UNIX directories; for example to access the file @file{READ.ME} in
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1367 minidisk @file{*.311} on @file{cuvmb.cc.columbia.edu}, you would enter
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1368 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1369 /anonymous@@cuvmb.cc.columbia.edu:/*.311/READ.ME
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1370 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1371 If @file{*.301} is the default minidisk for this account, you could access
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1372 @file{FOO.BAR} on this minidisk as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1373 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1374 /anonymous@@cuvmb.cc.columbia.edu:FOO.BAR
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1375 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1376 CMS filenames are of the form @file{FILE.TYPE}, where both @file{FILE}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1377 and @file{TYPE} can be up to 8 characters. Again, beware that CMS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1378 filenames are always upper case, and hence must be entered as such.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1379
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1380 Sandy Rutherford provides some tips on using CMS hosts:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1381 @itemize @bullet
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1382 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1383 CMS machines, with the exception of anonymous accounts, nearly always
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1384 need an account password. To have EFS send an account password,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1385 you can either include it in your @file{.netrc} (@xref{Using a .netrc}), or use
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1386 @code{efs-set-account}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1387 @findex efs-set-account
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1388
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1389 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1390 EFS cannot send ``write passwords'' for a minidisk. Hopefully, we
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1391 can fix this.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1392 @end itemize
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1393
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1394 EFS should automatically detect that you are using a CMS host. If
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1395 it fails to do so (which should be reported as a bug) you can use the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1396 command @code{efs-add-cms-host}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1397 @findex efs-add-cms-host
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1398 to inform EFS manually. For a more permanent effect, or
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1399 if you use a CMS host regularly, it's a good idea to set
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1400 @code{efs-cms-host-regexp} to a regular expression matching that
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1401 @vindex efs-cms-host-regexp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1402 host's name.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1403
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1404 @node MTS support, , CMS support, Non-Unix Hosts
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1405 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1406 @subsection MTS support
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1407 EFS has full support, including Dired support, for hosts
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1408 running the Michigan terminal system, and should be able to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1409 automatically recognise any MTS machine.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1410
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1411 @cindex MTS filenames
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1412 MTS filenames are entered in a UNIX-y way. For example, if your account
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1413 was @file{YYYY}, the file @file{FILE} in the account @file{XXXX:} on
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1414 @file{mtsg.ubc.ca} would be entered as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1415 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1416 /YYYY@@mtsg.ubc.ca:/XXXX:/FILE
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1417 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1418 In other words, MTS accounts are treated as UNIX directories. Of course,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1419 to access a file in another account, you must have access permission for
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1420 it. If @file{FILE} were in your own account, then you could enter it in a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1421 relative path fashion as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1422 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1423 /YYYY@@mtsg.ubc.ca:FILE
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1424 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1425 MTS filenames can be up to 12 characters. Like UNIX, the structure of the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1426 filename does not contain a type (i.e. it can have as many @samp{.}'s as you
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1427 like.) MTS filenames are always in upper case, and hence be sure to enter
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1428 them as such! MTS is not case sensitive, but an EMACS running under UNIX
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1429 is.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1430
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1431 EFS should automatically detect that you are using an MTS host. If
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1432 it fails to do so (which should be reported as a bug) you can use the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1433 command @code{efs-add-mts-host}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1434 @findex efs-add-mts-host
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1435 to inform EFS manually. For a more permanent effect, or
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1436 if you use an MTS host regularly, it's a good idea to set
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1437 @code{efs-mts-host-regexp} to a regular expression matching that
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1438 @vindex efs-mts-host-regexp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1439 host's name.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1440
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1441 @node Completion, Accessing the FTP process, Non-Unix Hosts, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1442 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1443 @section File- and host-name completion
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1444
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1445 Full filename completion is supported on all remote UNIX hosts and some
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1446 non-Unix hosts. Hostnames also have completion if they are mentioned in
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1447 the @file{.netrc} and no username is specified. However using the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1448 filename completion feature can be a bit of a two edged sword.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1449
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1450 To understand why, we need to discuss how EFS works. Whenever
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1451 EFS is asked to find a remote file (or directory) an @code{ls}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1452 command is sent to the FTP process to list all the files in the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1453 directory. This list is maintained in an internal cache, to provide
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1454 filename completion for later requests on that directory. EFS keeps
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1455 this cache up-to-date by monitoring Emacs commands which affect files
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1456 and directories, but if a process outside Emacs (such as another user)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1457 changes a directory (e.g. a new file is added)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1458 completion won't work on
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1459 that file since EFS doesn't know about it yet. The solution if to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1460 force EFS to reread the directory and update it's cache, and the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1461 easiest way to do that is with Dired --- @xref{Using Dired} to see how.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1462
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1463 Another problem is that the @code{ls} command can take a long time,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1464 especially when dealing with distant hosts over slow links. So if you're
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1465 after a file in the @file{pub/images} directory but nothing else, it's a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1466 better idea to type @kbd{pub/images/file @key{TAB}} than @kbd{pub/im @key{TAB}}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1467 which will force a read of the @file{pub} directory (since
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1468 EFS needs to know how to complete @code{im}). A little extra typing
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1469 can often save a lot of waiting. Don't be afraid to use the @key{TAB}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1470 key once the directory is cached, though.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1471
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1472 @node Accessing the FTP process, , Completion, Using EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1473 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1474 @section Accessing the FTP process buffer
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1475
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1476 The FTP process used to access the remote files is available for access
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1477 if you wish. It will be in a buffer
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1478 @cindex process buffers
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1479 @cindex buffers
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1480 called @samp{"*ftp @var{remote-file-name}*"},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1481 i.e. if you found the file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1482 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1483 /anonymous@@archive.site.com:pub/README
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1484 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1485 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1486 there will be a buffer
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1487 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1488 *ftp anonymous@@archive.site.com*
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1489 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1490 @noindent
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1491 where all the transfers are taking place. You can have a look at the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1492 buffer using @kbd{C-x b} as usual, and even type in commands to the FTP
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1493 process under an interface very much like @samp{shell-mode}. There are
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1494 two instances when doing this can be very useful: one is accessing
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1495 non-UNIX hosts, where Dired and filename completion may not work (if EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1496 even works at all). If you are going to use @code{mget} or @code{mput},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1497 make sure you type @code{glob} first: EFS turns globbing off by
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1498 default. Don't be afraid of changing directories, either --- EFS always
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1499 uses absolute pathnames when communicating with the FTP process.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1500
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1501 You can kill the FTP process at any time simply by killing this buffer.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1502 @cindex FTP processes
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1503 @cindex processes
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1504 You can also call @code{efs-kill-ftp-process}.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1505 @findex efs-kill-ftp-process
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1506 This won't cause EFS any grief whatsoever --- if you later make
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1507 another request to that host, EFS will simply fire up another
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1508 process and create a new buffer to hold it.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1509
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1510 @node Getting help, Bugs, Using EFS, Top
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1511 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1512 @chapter Getting help
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1513
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1514 EFS has its own mailing list called @t{efs-help}. All users of EFS
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1515 are welcome to subscribe (see below) and to discuss aspects of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1516 EFS.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1517
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1518 To [un]subscribe to @t{efs-help}, or to report mailer problems with the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1519 list, please mail one of the following addresses:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1520
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1521 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1522 efs-help-request@@cuckoo.hpl.hp.com
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1523 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1524 or
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1525 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1526 efs-help-request%cuckoo.hpl.hp.com@@hplb.hpl.hp.com
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1527 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1528
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1529 Please don't forget the @t{-request} part.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1530
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1531 For mail to be posted directly to @t{efs-help}, send to one of the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1532 following addresses:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1533
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1534 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1535 efs-help@@cuckoo.hpl.hp.com
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1536 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1537 or
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1538 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1539 efs-help%cuckoo.hpl.hp.com@@hplb.hpl.hp.com
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1540 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1541
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1542 Alternatively, there is a mailing list that only gets
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1543 announcements of new EFS releases. This is called @t{efs-announce},
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1544 and can be subscribed to by e-mailing to the @t{-request} address as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1545 above. Please make it clear in the request which mailing list you
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1546 wish to join.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1547
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1548 Mailing list archives are also accessible from this web page:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1549
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1550 @example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1551 http://www-uk.hpl.hp.com/people/ange/efs
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1552 @end example
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1553
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1554
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1555 @node Bugs, Concept Index, Getting help, Top
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1556 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1557 @chapter Bugs and Wish List
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1558
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1559
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1560 If you find any bugs or problems with this package, @strong{please}
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1561 e-mail the authors. Ideas and constructive comments are especially
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1562 welcome. So are any enhancements to EFS, preferably debugged and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1563 documented. Also welcome are any typo fixes, corrections or additions to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1564 this manual.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1565
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1566 Here is a list of known bugs:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1567
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1568 If you hit a bug in this list, please report it anyway. Most of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1569 the bugs here remain unfixed because they are considered too
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1570 esoteric to be a high priority. If one of them gets reported
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1571 enough, we will likely change our view on that.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1572
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1573 @enumerate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1574 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1575 EFS does not check to make sure that when creating a new file,
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1576 you provide a valid filename for the remote operating system.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1577 If you do not, then the remote FTP server will most likely
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1578 translate your filename in some way. This may cause EFS to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1579 get confused about what exactly is the name of the file.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1580
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1581 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1582 For CMS support, we send too many @code{cd}'s. Since @code{cd}'s are
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1583 cheap, I haven't worried about this too much. Eventually, we should have
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1584 some caching of the current minidisk. This is complicated by the fact
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1585 that some CMS servers lie about the current minidisk, so sending
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1586 redundant cd's helps us recover in this case.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1587
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1588 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1589 The code to do compression of files over ftp is not as careful as it
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1590 should be. It deletes the old remote version of the file, before
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1591 actually checking if the local to remote transfer of the compressed file
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1592 succeeds. Of course to delete the original version of the file after
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1593 transferring the compressed version back is also dangerous, because some
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1594 OS's have severe restrictions on the length of filenames, and when the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1595 compressed version is copied back the @code{"-Z"} or @code{".Z"} may be
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1596 truncated. Then, EFS would delete the only remaining version of the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1597 file. Maybe EFS should make backups when it compresses files (of
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1598 course, the backup @code{"~"} could also be truncated off, sigh...).
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1599 Suggestions?
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1600
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1601 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1602 If a dir listing is attempted for an empty directory on (at least
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1603 some) VMS hosts, an ftp error is given. This is really an ftp bug, and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1604 I don't know how to get EFS work to around it.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1605
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1606 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1607 EFS gets confused by directories containing file names with embedded
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1608 newlines. A temporary solution is to add @code{"q"} to your dired
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1609 listing switches. As long as your dired listing switches also contain
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1610 @code{"l"} and either @code{"a"} or @code{"A"}, EFS will use these
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1611 switches to get listings for its internal cache. The "q" switch should
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1612 force listings to be exactly one file per line. You still will not be
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1613 able to access a file with embedded newlines, but at least it won't mess
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1614 up the parsing of the rest of the files.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1615
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1616 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1617 EFS cannot parse symlinks which have an embedded @code{" -> "} in their
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1618 name. It's alright to have an embedded @code{" -> "} in the name of any
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1619 other type of file. A fix is possible, but probably not worth the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1620 trouble. If you disagree, send us a bug report.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1621
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1622 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1623 EFS doesn't handle context-dep. files in H-switch listings on
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1624 HP's. It wouldn't be such a big roaring deal to fix this. I'm
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1625 waiting until I get an actual bug report though.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1626
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1627 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1628 If a hard link is added or deleted, EFS will not update its
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1629 internal cache of the link count for other names of the file.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1630 This may cause file-nlinks to return incorrectly. Reverting
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1631 any dired buffer containing other names for the file will
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1632 cause the file data to be updated, including the link counts.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1633 A fix for this problem is known and will be eventually
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1634 implemented. How it is implemented will depend on how we decide
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1635 to handle inodes. See below.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1636
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1637 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1638 EFS is unable to parse R-switch listings from remote Unix hosts.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1639 This is inefficient, because EFS will insist on doing individual
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1640 listings of the subdirectories to get its file information.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1641 This may be fixed if there is enough demand.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1642
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1643 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1644 In file-attributes, EFS returns a fake inode number. Of course
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1645 this is necessary, but this inode number is not even necessarily
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1646 unique. It is simply the sum of the characters (treated as
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1647 integers) in the host name, user name, and file name. Possible
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1648 ways to get a unique inode number are:
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1649
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1650 @enumerate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1651 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1652 Simply keep a count of all remote file in the cache, and
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1653 return the file's position in this count as a negative number.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1654 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1655 For unix systems, we could actually get at the real inode number on the
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1656 remote host, by adding an @code{"i"} to the ls switches. The inode
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1657 numbers would then be removed from the listing returned by @code{efs-ls}, if
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1658 the caller hadn't requested the @code{"i"} switch. We could then make a
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1659 unique number out of the host name and the real inode number.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1660 @end enumerate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1661
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1662 @item
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1663 EFS tries to determine if a file is readable or writable by comparing
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1664 the file modes, file owner, and user name under which it is logged
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1665 into the remote host. This does not take into account groups.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1666 We simply assume that the user belongs to all groups. As a result
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1667 we may assume that a file is writable, when in fact it is not.
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1668 Groups are tough to handle correctly over FTP. Suggestions?
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1669 (For new FTP servers, can do a @code{"QUOTE SITE EXEC groups"} to
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1670 handle this.)
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1671 @end enumerate
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1672
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1673
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1674 @node Concept Index, Variable and command index, Bugs, Top
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1675 @comment node-name, next, previous, up
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1676 @unnumbered Concept Index
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1677
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1678 @printindex cp
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1679
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1680 @node Variable and function index, , Concept Index, Top
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1681 @unnumbered Variable and function index
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1682
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1683 @printindex vr
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1684
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1685 @contents
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1686
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1687 @bye
8b8b7f3559a2 Import from CVS: tag r19-15b104
cvs
parents:
diff changeset
1688