Getting common information about access points
There are various kinds of generic information you can retrieve about an \s-1XPA\s0 access point by using the xpaget command.
You can find out which \s-1XPA\s0 access points have been registered with the currently running \s-1XPA\s0 name server by executing the xpaget command to retrieve info from the \s-1XPA\s0 name server:
If, for example, the stest test server program is running, the following \s-1XPA\s0 access points will be returned (the specifics of the returned info will vary for different machines and users):
XPA xpa gs 838e2f67:1262 eric XPA xpa1 gs 838e2f67:1266 eric XPA c_xpa gs 838e2f67:1267 eric XPA i_xpa i 838e2f67:1268 eric
Note that access to this information is subject to the usual \s-1XPA\s0 Access Control restrictions.
Each \s-1XPA\s0 access point supports a number of reserved sub-commands that provide access to different kinds of information, e.g. the access control for that access point. These sub-commands can be executed by using xpaset or xpaget at the command line, or XPAGet() or XPASet() in programs, e.g:
xpaget ds9 \-acl xpaget ds9 \-help xpaget ds9 env FOO
xpaset \-p ds9 env FOO foofoo
With the exception of \-help and \-version, reserved sub-commands are available only on the machine on which the \s-1XPA\s0 server itself is running.
The following reserved sub-commands are defined for all access points:
\-acl get (set) the access control list [options: host type acl, for set] The 'xpaset' option allows you to add a new acl for a given host, or change the acl for an existing host. See \s-1XPA\s0 Access Control for more information. This access point is available only on the server machine.
\-env get (set) an environment variable [options: name (value, for set)] The 'xpaget' option will return the value of the named environment variable. The 'xpaset' option will set the value of the names variable to the specified value. This access point is available only on the server machine. (Please be advised that we have had problems setting environment variables in static Tcl/Tk programs such as ds9 running under Linux.)
\-clipboard set(get) information on a named clipboard Clients can store \s-1ASCII\s0 state information on any number of named clipboards. Clipboards of the same name created by clients on different machines are kept separate. The syntax for creating a clipboard is: [data] | xpaset [server] \-clipboard add|append [clipboard_name] xpaset \-p [server] \-clipboard delete [clipboard_name] Use \*(L"add\*(R" to create a new clipboard or replace the contents of an existing one. Use \*(L"append\*(R" to append to an existing clipboard. Information on a named clipboard is retrieved using: xpaget [server] \-clipboard [clipboard_name]
\-exec set: execute commands from buffer [options: none] If \-exec is specified in the paramlist of an 'xpaset' call, then further sub-commands will be retrieved from the data buffer.
\-help get: return help string for this \s-1XPA\s0 or sub-command [options: name (for sub\-commands)] Each \s-1XPA\s0 access point and each \s-1XPA\s0 sub-command can have a help string associated with it that is specified when the access point is defined. The \-help option will return this help string. For \s-1XPA\s0 access points that contain user-defined sub-commands, you can get the help string for a particular sub-command by specifying its name, or else get the help strings for all sub-commands if not name is specified.
\-ltimeout get (set) the long timeout value [options: seconds|reset] The 'xpaget' option will return the value of the long timeout (in seconds). The 'xpaset' option will set the value of the long timeout. If \*(L"reset\*(R" is specified, then the timeout value will be reset to the default value.
\-nsconnect set: re-establish name server connection to all \s-1XPA\s0's [options: none] If the \s-1XPA\s0 Name Server (xpans) process has terminated unexpectedly and then re-started, this sub-command can be used to re-establish the connection. You use it by sending the command to the [name:port] or [file] of the access point instead of to the \s-1XPA\s0 name (since the latter requires the xpans connection!): xpaset \-p 838e2f67:1268 \-nsconnect See xpans for more information.
\-nsdisconnect set: break name server connection to all \s-1XPA\s0's [options: none] This sub-command will terminate the connection to the \s-1XPA\s0 Name Server (xpans), thereby making all access points inaccessible except through their underlying [name:port] or [file] identifiers. I forget why we added it, it seems pretty useless.
\-stimeout get (set) the short timeout value [options: seconds|reset] The 'xpaget' option will return the value of the short timeout (in seconds). The 'xpaset' option will set the value of the short timeout. If \*(L"reset\*(R" is specified, then the timeout value will be reset to the default value.
\-remote set: register xpa with remote server [options: host[:port] [acl]] [\-proxy] This sub-command will register the \s-1XPA\s0 access point with the \s-1XPA\s0 name server (xpans) on the specified host (which must already be running). The specified host also is given access control to the access point, using the specified acl or the default acl of \*(L"+\*(R" (meaning the remote host can xpaset, xpaget, xpainfo or xpaaccess). If the acl is specified as \*(L"-\*(R", then the access point is unregistered. See Communication Between Machines for more information on how this sub-command is used.
\-version get: return \s-1XPA\s0 version string [options: none] The version refers to the version of \s-1XPA\s0 used to define this access point (currently something like 2.0).
You can add your own reserved commands to all \s-1XPA\s0 access points by using the XPACmdAdd() routine, passing the \s-1XPA\s0 handle returned by \s-1XPA\s0 XPAGetReserved(void) as the first argument. Note again that these will only be available on the machine where the \s-1XPA\s0 service is running.
See xpa(7) for a list of \s-1XPA\s0 help pages