XPA ChangeLog
This ChangeLog covers the XPA 2 implementation. It will be updated
as we continue to develop and improve XPA. The up-to-date version can be
found here.
Pre-Release 2.1.0e (2 April 2002)
- Removed the environment variable generated by each XPA access
point (of the form XPA_name=method). The putenv() call was causing ds9
to crash under both Linux and LinuxPPC during a socket operation. We
suspect a bug in putenv but cannot prove it and this feature is not
essential, so ...
Pre-Release 2.1.0e (1 April 2002)
- Fixed an uninitialized variable in xpamb which prevented it from
working at all on some systems.
- Changed xpamb switch from "-add" to "-data" (to store named data).
- Changed how xpamb works with xpaget so that xpamb can return data
from XPA access points as well as from stored data. (Previous versions
only returned stored data.) Now, you can retrieve stored data
explicitly using the -info and/or -data switches. For example:
xpaget xpamb -info foo
will return info about the previously stored data named foo. If
neither switch is present, then the name is assumed to be an XPA access
point.
Pre-Release 2.1.0e (25 March 2002)
- Changed symbol for default port from "*" to "$port" to avoid
a syntactical conflict between class:* and machine:* when processing an
XPA access point class:name specification. Thus, the default inet
method now is '$host:$port' instead of '$host:*'.
Pre-Release 2.1.0e (19 March 2002)
Pre-Release 2.1.0e (14 February 2002)
- Fixed client handling of out-of-sync messages.
Pre-Release 2.1.0e (11 February 2002)
- Fixed client.c/xopen() so that it does not open an extra socket.
- Fixed xpainfo/xopen() to prevent client from hanging waiting for ack.
- Modified stest to generate xpaaccess points xpa, xpa1, c_xpa, and
i_xpa (or more generally, , 1, c_, i) to allow
more flexible testing of templates. Also added -a for testing XPAAccess().
Beta Release 2.1.0b10 (31 January 2002)
- Added support for Mac OSX/Darwin to configure file.
Beta Release 2.1.0b9 (26 January 2002)
- Fixed bug in client library that caused XPAAccess() call to hang.
Beta Release 2.1.0b8 (4 January 2002)
- Made modifications to Makefile.in to make releases easier.
- Added instructions to Makefile.in so that xpa.h will always have
correct #defines for XPA_VERSION, XPA_MAJOR_VERSION, XPA_MINOR_VERSION,
and XPA_PATCH_LEVEL.
Beta Release 2.1.0b7 (21 December 2001)
Beta Release 2.1.0b6 (29 October 2001)
Beta Release 2.1.0b5 (22 October 2001)
- Use FD_SETSIZE instead of getdtablesize() to determine how many files
to check during select();
- Under Cygwin, the launch() routine now uses the Cygwin spawnvp()
instead of fork()/exec() where possible (i.e., if no stdfiles are
being redirected). This is recommended by Cygwin's (skimpy) on-line
documentation and seems to fix the problems ds9 had when starting xpans
automatically.
- Added error check to select() call in xpans.
Beta Release 2.1.0b4 (24 September 2001)
- The launch() now can return an error code if the execv() system
call fails (something system() does not do).
- INET socket calls between xpa clients and servers now will use
localhost if they are on the same machine. This protects against
Linux systems where the hostname is hardwired (wrongly) in a DHCP
environment.
Beta Release 2.1.0b3 (6 September 2001)
- Modified xpans so that, in the case of a firewall, it tries to
correct the specified ip:port by matching against the ip found in
the socket packet at accept() time.
- Replaced system() call used to start xpans automatically with
a special launch() call, which performs execvp() directly without going
through sh. (launch() works under DOS and has fewer security problems.)
- Fixed bug in xpans in which its xpa port was always being set to 14286.
Beta Release 2.1.0b2 (17 August 2001)
- Added support for -remote command, which registers the access
point in the XPA name server of the specified remote server, and gives
the remote server access rights to the access point. This is used, for
example, to give data servers xpa access to ds9 so that data can be
sent to ds9 as a result of a CGI-based Web query.
- Reserved commands (except "-help" and "-version") now can only be
executed on the machine on which the xpa service is running (not
through -remote servers).
- Fixed bug in xpans in which a bad telnet command could hang the program.
- Added -s [security file] to xpans to allow logging of all external
connections.
Beta Release 2.1.0b1 (6 August 2001)
- The xpaaccess client program and XPAAccess() client subroutine
were modified so that an access-type query can directly contact the
xpa servers matching the requested xpa template, instead of just
querying the name server for registered access points. This avoid the
race condition in which an access point is registered but is not yet
available, perhaps because the server has not yet entered its event
loop. Note that the calling sequence of the XPAAccess() routine was
changed to return all matching access points and their availability
status (instead of just returning the number of registered access
points). Because of this, we are calling this a minor release instead
of a patch.
- Added support for XPA_PORT and XPA_PORTFILE environment variables
to allow specification of the port to be used by the command channel
(and data channel, if an optional second port is specified) for a given
access point.
- Added -m switch to xpaget, xpaset, xpainfo, xpaaccess to allow
override of the XPA_METHOD environment variable.
- Changed the default name of the ACL file from xpa.acl to acls.xpa.
- Fixed bug in which it was not possible to send a "set ACL"
command to an XPA server which did not have a receive callback (i.e.,
did not allow xpaset). The xpans program is one such server. It now is
possible to set the ACL on xpans.
- We have discovered that Tcl support for datachan and cmdchan is
broken under Windows due to an unexplained incompatibility between
Cygwin sockets and Win32 sockets. We therefore have removed datachan
and cmdchan from the Windows/Tcl support until further notice.
- Extended the behavior of the XPA_DEFACL environment variable so that
it can support more than one acl, using a list of semi-colon delimited
controls such as: setenv XPA_DEFACL '*:* $host +; *:foo1 otherhost +'.
- Fixed bug in which the class:name specifier "*:*" was erroneously
trying to access the xpans name server, instead of accessing all
access points.
- Support TMPDIR and TMP environment variables as well as XPA_TMPDIR.
XPA Patch Release 2.0.5 (10 November 2000)
- Added support for Tcl on Windows where there is no select()-based
event loop (i.e., where there is no Tcl_CreateFileHandler call in Tcl)
- Minor fixes in Makefile for installing on Windows
- Minor compiler fixes from gcc -Wall.
XPA Patch Release 2.0.4 (20 September 2000)
- Removed extraneous include of varargs.h from find.c.
- Ported to SGI C compiler, which caught lots of unused variables, etc.
- Ported to Cygwin/Windows, which required that we change socket read()
and write() calls to recv() and send() respectively. Also had to ensure that
we only did socket I/O on sockets (no fileio).
XPA Patch Release 2.0.3 (15 June 2000)
- Fixed the client XPASet() and XPASetFd() calls to handle the specified
max number of connections (they were ignoring this argument, leading to
memory overwrites).
- Fixed Makefile.in so that CFLAGS and LDFLAGS are not hard-wired values.
- Fixed word.h to load malloc.h and stdlib.h only if they exist.
- Documentation fixes to programs.html (in xpaaccess) and client.html
(XPANSLookup).
- Added explicit typecast to strlen() argument to MAX #define in
XPAClientStart (strlen() is unsigned in Linux, which can break MAX).
- Removed bogus Imakefile from directory.
- Changed directory name to include patch level (i.e., xpa-2.0.3).
XPA Patch Release 2.0.2 (9 September 1999)
- Fixed server mode (-s) in the xpaset program by properly cleaning up
the input buffers (sending commands and data in server mode was broken).
XPA Patch Release 2.0.1 (6 August 1999)
- Fixed the Tcl binding code (tcl.c) for 64-bit machines (Dec Alpha)
(erroneously used %x instead of %p when converting pointers to ASCII).
- Got rid of a few compiler warnings on 64-bit machines (a few are
unavoidable since we must cast int to void * and back when passing around
client data).
XPA Release 2.0 (27 May 1999)
- "a new day with no mistakes ... yet"
Index to the XPA Help Pages
Last updated: October 29, 2001