annotate etc/gnuserv.1 @ 342:b036ce23deaa

Added tag r21-1-0 for changeset 2538ab34df21
author cvs
date Mon, 13 Aug 2007 10:52:06 +0200
parents 70ad99077275
children 74fd4e045ea6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 .TH GNUSERV 1 "" "XEmacs Server"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 .UC 4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 .SH NAME
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
4 gnuserv, gnuclient \- Server and Clients for XEmacs
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 .SH SYNOPSIS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 .B gnuclient
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
7 [-nw] [-display display] [-q] [-v] [-l library] [-batch] [-f function] [-eval form]
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
8 [-h hostname] [-p port] [-r remote-pathname] [[+line] file] ...
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
9 .br
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
10 .B gnudoit [-q]
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
11 form
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 .br
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 .B gnuserv
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
14 .br
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
15 .B gnuattach
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
16 Removed as of gnuserv 3.x
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 .SH DESCRIPTION
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 .PP
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
20 \fIgnuclient\fP allows the user to request a running XEmacs process to
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
21 edit the named files or directories and/or evaluate lisp forms.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
22 Depending on your environment, it can be an X frame or a TTY frame.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
23 One typical use for this is with a dialup connection to a machine on
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
24 which an XEmacs process is currently running.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
25 .PP
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
26 \fIgnudoit\fP is a shell script frontend to ``gnuclient -batch -eval form''.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
27 Its use is depreciated. Try to get used to calling gnuclient directly.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 .PP
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
29 \fIgnuserv\fP is the server program that is set running by XEmacs to
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
30 handle all incoming and outgoing requests. It is not usually invoked
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
31 directly, but is started from XEmacs by loading the \fIgnuserv\fP
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
32 package and evaluating the Lisp form (gnuserv-start).
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
33 .PP
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
34 \fIgnuattach\fP no longer exists. Its functionality has been replaced by
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
35 \fIgnuclient -nw\fP.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 .SH OPTIONS
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
37 .PP
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
38 \fIgnuclient\fP supports as much of the command line options of Emacs as
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
39 makes sense in this context. In addition it adds a few of its own.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
40 .br
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
41 Options with long names can also be specified using a double
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
42 hyphen instead of a single one.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
43 .TP 8
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
44 .BI \-nw
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
45 This option makes \fIgnuclient\fP act as a frontend such that XEmacs
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
46 can attach to the current TTY. XEmacs will then open a new TTY frame.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
47 The effect is similar to having started a new XEmacs on this TTY with
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
48 the ``-nw'' option. It currently only works if XEmacs is running on
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
49 the same machine as gnuclient. This is the default if the `DISPLAY'
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
50 environment variable is not set.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
51 .TP 8
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
52 .BI \-display " display, " \--display " display"
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
53 If this option is given or the `DISPLAY' environment variable is set
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
54 then gnuclient will tell XEmacs to edit files in a frame on the
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
55 specified X device.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 .TP 8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 .BI \-q
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
58 This option informs \fIgnuclient\fP to exit once connection has been
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
59 made with the XEmacs process. Normally \fIgnuclient\fP waits until
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
60 all of the files on the command line have been finished with (their
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
61 buffers killed) by the XEmacs process, and all the forms have been
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
62 evaluated.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 .TP 8
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
64 .BI \-v
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
65 When this option is specified \fIgnuclient\fP will request for the
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
66 specified files to be viewed instead of edited.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
67 .TP 8
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
68 .BI \-l " library"
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
69 Tell Emacs to load the specified library.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
70 .TP 8
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
71 .BI \-batch
278
90d73dddcdc4 Import from CVS: tag r21-0b37
cvs
parents: 181
diff changeset
72 Tell Emacs not to open any frames. Just load libraries and evaluate
90d73dddcdc4 Import from CVS: tag r21-0b37
cvs
parents: 181
diff changeset
73 lisp code. If no files to execute, functions to call or forms to eval
90d73dddcdc4 Import from CVS: tag r21-0b37
cvs
parents: 181
diff changeset
74 are given using the
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
75 .BR \-l ,
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
76 .BR \-f ,
278
90d73dddcdc4 Import from CVS: tag r21-0b37
cvs
parents: 181
diff changeset
77 or
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
78 .B \-eval
278
90d73dddcdc4 Import from CVS: tag r21-0b37
cvs
parents: 181
diff changeset
79 options, then forms to eval are read from STDIN.
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
80 .TP 8
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
81 .BI \-f " function,"
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
82 Make Emacs execute the lisp function.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
83 .TP 8
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
84 .BI \-eval " form"
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
85 Make Emacs execute the lisp form.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
86 .TP 8
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87 .BI \-h " hostname"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 Used only with Internet-domain sockets, this option specifies the host
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
89 machine which should be running \fIgnuserv\fP. If this option is not
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90 specified then the value of the environment variable GNU_HOST is used
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
91 if set. If no hostname is specified, and the GNU_HOST variable is not
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
92 set, an internet connection will not be attempted. N\.B.:
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
93 \fIgnuserv\fP does NOT allow internet connections unless XAUTH
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
94 authentication is used or the GNU_SECURE variable has been specified
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
95 and points at a file listing all trusted hosts. (See SECURITY below.)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 .br
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
98 Note that an internet address may be specified instead of a hostname
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
99 which can speed up connections to the server by quite a bit,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
100 especially if the client machine is running YP.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102 .br
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 Note also that a hostname of \fBunix\fP can be used to specify that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104 the connection to the server should use a Unix-domain socket (if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 supported) rather than an Internet-domain socket.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 .TP 8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107 .BI \-p " port"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 Used only with Internet-domain sockets, this option specifies the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109 service port used to communicate between server and clients. If this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 option is not specified, then the value of the environment variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 GNU_PORT is used, if set, otherwise a service called ``gnuserv'' is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112 looked up in the services database. Finally, if no other value can be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113 found for the port, then a default port is used which is usually 21490
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114 + uid.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 .br
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116 Note that since \fIgnuserv\fP doesn't allow command-line options, the port for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117 it will have to be specified via one of the alternative methods.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118 .TP 8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119 .BI \-r " pathname"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 Used only with Internet-domain sockets, the pathname argument may be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 needed to inform XEmacs how to reach the root directory of a remote
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
122 machine. \fIgnuclient\fP prepends this string to each path argument
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
123 given. For example, if you were trying to edit a file on a client
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
124 machine called otter, whose root directory was accessible from the
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
125 server machine via the path /net/otter, then this argument should be
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
126 set to '/net/otter'. If this option is omitted, then the value is
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
127 taken from the environment variable GNU_NODE, if set, or the empty
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
128 string otherwise.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129 .TP 8
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
130 .BI "[+n] file"
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 This is the path of the file to be edited. If the file is a directory, then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132 the directory browsers dired or monkey are usually invoked instead.
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
133 The cursor is put at line number 'n' if specified.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135 .SH SETUP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136 \fIgnuserv\fP is packaged standardly with recent versions of XEmacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137 Therefore, you should be able to start the server simply by evaluating
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138 the XEmacs Lisp form (gnuserv-start), or equivalently by typing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 `M-x gnuserv-start'.
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
140
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
141 .SH CONFIGURATION
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
142 The behavior of this suite of program is mostly controlled on the lisp
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
143 side in Emacs and its behavior can be customized to a large extent.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
144 Type `M-x customize-group RET gnuserv RET' for easy access. More
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
145 documentation can be found in the file `gnuserv.el'
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
146
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147 .SH EXAMPLE
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148 .RS 4
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
149 gnuclient -q -f mh-smail
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 .br
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151 gnuclient -h cuckoo -r /ange@otter: /tmp/*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 .br
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
153 gnuclient -nw ../src/listproc.c
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 .RE
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
155 .br
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
156
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
157 .br
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
158 More examples and sample wrapper scripts are provided in the
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
159 etc/gnuserv directory of the Emacs installation.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
160
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
162 .SH SYSV IPC
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
163 SysV IPC is used to communicate between \fIgnuclient\fP and
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
164 \fIgnuserv\fP if the symbol SYSV_IPC is defined at the top of
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
165 gnuserv.h. This is incompatible with both Unix-domain and
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
166 Internet-domain socket communication as described below. A file called
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
167 /tmp/gsrv??? is created as a key for the message queue, and if removed
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
168 will cause the communication between server and client to fail until
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
169 the server is restarted.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 .SH UNIX-DOMAIN SOCKETS
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
171 A Unix-domain socket is used to communicate between \fIgnuclient\fP
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
172 and \fIgnuserv\fP if the symbol UNIX_DOMAIN_SOCKETS is defined at the
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
173 top of gnuserv.h. A file called /tmp/gsrvdir????/gsrv is created for
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
174 communication and if deleted will cause communication between server
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
175 and client to fail. Only the user running gnuserv will be able to
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
176 connect to the socket.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177 .SH INTERNET-DOMAIN SOCKETS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178 Internet-domain sockets are used to communicate between
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
179 \fIgnuclient\fP and \fIgnuserv\fP if the symbol
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
180 INTERNET_DOMAIN_SOCKETS is defined at the top of gnuserv.h. Both
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
181 Internet-domain and Unix-domain sockets can be used at the same
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
182 time. If a hostname is specified via -h or via the GNU_HOST
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
183 environment variable, \fIgnuclient\fP establish connections using an
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
184 internet domain socket. If not, a local connection is attempted via
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
185 either a unix-domain socket or SYSV IPC.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 .SH SECURITY
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 Using Internet-domain sockets, a more robust form of security is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
188 needed that wasn't necessary with either Unix-domain sockets or SysV
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189 IPC. Currently, two authentication protocols are supported to provide
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 this: MIT-MAGIC-COOKIE-1 (based on the X11 xauth(1) program) and a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191 simple host-based access control mechanism, hereafter called
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192 GNUSERV-1. The GNUSERV-1 protocol is always available, whereas support
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 for MIT-MAGIC-COOKIE-1 may or may not have been enabled (via a #define
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194 at the top of gnuserv.h) at compile-time.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195 .PP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 \fIgnuserv\fP, using GNUSERV-1, performs a limited form of access
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197 control at the machine level. By default no internet-domain socket is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198 opened. If the variable GNU_SECURE can be found in \fIgnuserv\fP's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199 environment, and it names a readable filename, then this file is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200 opened and assumed to be a list of hosts, one per line, from which the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201 server will allow requests. Connections from any other host will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202 rejected. Even the machine on which \fIgnuserv\fP is running is not
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203 permitted to make connections via the internet socket unless its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204 hostname is explicitly specified in this file. Note that a host may
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205 be either a numeric IP address or a hostname, and that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
206 .I any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
207 user on an approved host may connect to your gnuserv and execute arbitrary
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 elisp (e.g., delete all your files).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 If this file contains a lot of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210 hostnames then the server may take quite a time to start up.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211 .PP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212 When the MIT-MAGIC-COOKIE-1 protocol is enabled, an internet socket
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213 \fIis\fP opened by default. \fIgnuserv\fP will accept a connection from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214 any host, and will wait for a "magic cookie" (essentially, a password)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215 to be presented by the client. If the client doesn't present the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 cookie, or if the cookie is wrong, the authentication of the client is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217 considered to have failed. At this point. \fIgnuserv\fP falls back to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218 the GNUSERV-1 protocol; If the client is calling from a host listed in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 the GNU_SECURE file, the connection will be accepted, otherwise it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220 will be rejected.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221 .TP 4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 .I Using MIT-MAGIC-COOKIE-1 authentication
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223 When the \fIgnuserv\fP server is started, it looks for a cookie
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224 defined for display 999 on the machine where it is running. If the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225 cookie is found, it will be stored for use as the authentication
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226 cookie. These cookies are defined in an authorization file (usually
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 ~/.Xauthority) that is manipulated by the X11 xauth(1) program. For
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228 example, a machine "kali" which runs an emacs that invokes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229 \fIgnuserv\fP should respond as follows (at the shell prompt) when set
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230 up correctly.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231 .PP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232 .RS 8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 kali% xauth list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234 .br
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235 GS65.SP.CS.CMU.EDU:0 MIT-MAGIC-COOKIE-1 11223344
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236 .br
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237 KALI.FTM.CS.CMU.EDU:999 MIT-MAGIC-COOKIE-1 1234
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 .RE
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239 .PP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240 .RS 4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241 In the above case, the authorization file defines two cookies. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242 second one, defined for screen 999 on the server machine, is used for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243 gnuserv authentication.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 .PP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 On the client machine's side, the authorization file must contain an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
246 identical line, specifying the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247 .I server's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
248 cookie. In other words, on a machine "foobar" which wishes to connect
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249 to "kali," the `xauth list' output should contain the line:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250 .PP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
251 .RS 4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252 KALI.FTM.CS.CMU.EDU:999 MIT-MAGIC-COOKIE-1 1234
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
253 .RE
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254 .PP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
255 For more information on authorization files, take a look at the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 xauth(1X11) man page, or invoke xauth interactively (without any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257 arguments) and type "help" at the prompt. Remember that case in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
258 name of the authorization protocol (i.e.`MIT-MAGIC-COOKIE-1')
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
259 .I is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
260 significant!
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
261 .RE
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
262
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
263
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
264 .SH ENVIRONMENT
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
265 .PP
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
266 .TP 8
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
267 .B DISPLAY
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
268 Default X device to put edit frame.
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
269
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
270 .SH FILES
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
271 .PP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
272 .TP 8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
273 .B /tmp/gsrv???
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
274 (SYSV_IPC only)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
275 .TP 8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
276 .B /tmp/gsrvdir???/gsrv
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
277 (unix domain sockets only)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
278 .TP 8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
279 .B ~/.emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
280 XEmacs customization file, see xemacs(1).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
281 .SH SEE ALSO
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
282 .PP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
283 .TP 8
181
bfd6434d15b3 Import from CVS: tag r20-3b17
cvs
parents: 163
diff changeset
284 xauth(1X11), Xsecurity(1X11), gnuserv.el
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
285 .SH BUGS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
286 .PP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
287 NULs occurring in result strings don't get passed back to gnudoit properly.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
288
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
289 .SH AUTHOR.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
290 Andy Norman (ange@hplb.hpl.hp.com), based heavily upon
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
291 etc/emacsclient.c, etc/server.c and lisp/server.el from the GNU Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
292 18.52 distribution. Various modifications from Bob Weiner (weiner@mot.com),
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents: 0
diff changeset
293 Darrell Kindred (dkindred@cmu.edu), Arup Mukherjee (arup@cmu.edu), Ben
298
70ad99077275 Import from CVS: tag r21-0b47
cvs
parents: 278
diff changeset
294 Wing (ben@xemacs.org) and Hrvoje Niksic (hniksic@srce.hr).