1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801
|
<HTML>
<HEAD>
<TITLE>XPA ChangeLog</TITLE>
</HEAD>
<BODY>
<H2>XPA ChangeLog</H2>
<P>
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 <A HREF="http://hea-www.harvard.edu/RD/xpa/changelog.html">here</A>.
<H2> Public Release 2.1.15 (July 23, 2013)</H2>
<ul>
<p>
<li> Added support for large data transfers
<P>
<li> XPAGet and XPASet now pass size_t instead of int for lengths
<p>
<li> Send and receive callbacks now pass size_t instead of int for lengths
<p>
<li> Port to mingw (Windows)
</ul>
<H2> Public Release 2.1.14 (June 7, 2012)</H2>
<ul>
<P>
<li> Fixed several memory leaks in the Tcl wrappers (tcl.c).
<P>
<li> Use Tcl stubs library for linking shared Tcl, if available.
</ul>
<H2> Public Release 2.1.13 (April 14, 2011)</H2>
<ul>
<P>
<li> An atexit handler is no longer installed automatically (it crashes
Tcl 8.5.8 applications). Call XPAAtExit(void) to install the handler.
<p>
<li> Removed permission checking from Find() on cygwin systems. This was broken
by Windows 7.
<p>
<li> Removed addition of -no-cpp-precomp flag from gcc 4.2 and beyond (Mac).
</ul>
<H2> Public Release 2.1.12 (January 26, 2010)</H2>
<ul>
<p>
<li> Added XPA_HOST environment variable to allow users to specify
the hostname (and hence, ip) component of the INET method id. This is
useful, for example, if you want to register an access point using a
VPN-generated IP instead of the canonical IP.
<p>
<li> Fix typo in Tcl binding to xpainfo causing a crash after 2 invocations.
</ul>
<H2> Public Release 2.1.11 (December 7, 2009)</H2>
<ul>
<p>
<li> Generalized XPANSKeepAlive() to send messages to xpans, proxy xpans, or
both. The default is to send just to proxies (e.g. chandra-ed).
<p>
<li> Changed XPANSKeepAlive() to send an in-band new-line char to
xpans, changed xpans to handle an in-band new-line as a keep-alive
message. Necessitated by Cisco routers that clear the URG flag in
a TCP packet, breaking OOB data transfer for the whole Internet, as
well as the OOB-based keep-alive implemented in xpans.
<p>
<li> In xpans, print warning when the keep-alive option switch is used.
<p>
<li> Port to mingw (thanks to B.Schoenhammer)
<p>
<li> Change OOB character sent by xpans keepalive to a space, trying to working around cisco routers that force OOB data into the inbound stream.
<p>
<li> fix gcc fprintf warning in xpans.c
</ul>
<H2> Public Release 2.1.10 (September 1, 2009)</H2>
<ul>
<p>
<li> Update mklib and configure.ac to support 64-bit builds on Macs.
<p>
<li> Fixed bug in XPAAccess() in which the returned names could have an extra
(bogus) character when the target is an explicit ip:port or local socket file.
<p>
<li> Add setjmp/longjmp support to xalloc.
<p>
<li> Add XPASaveJmp(void *env) as a high-level interface to xalloc_savejmp();
</ul>
<H2> Internal Release 2.1.9</H2>
<ul>
<p>
<li> Fixed a bug that prevented an access point starting with a number
from being recognized peoperly. NB: a pure number still signifies a
port on the current machine. Also num:num signifies ip:port, where ip
can be a pure hex value or the canonical form vvv.xxx.yyy.zzz.
<p>
<li> Modified internal Launch() routine to use posix_spawn(), if necessary.
This is required for OS X 10.5 (leopard), which frowns upon use of fork()
and exec(). Also modified zprocess routines to use Launch().
<p>
<li> Added XPASetFree(xpa, void (*myfree)(void *)) routine to allow callbacks
to specify a free routine other than malloc free (e.g. Perl garbage collection).
<p>
<li> XPACmdAdd() now checks to ensure that it was passed an XPA struct created
by XPACmdNew().
<p>
<li> Change launch.h to xlaunch.h to avoid conflict with OS X.
</ul>
<H2> Public Release 2.1.8 (1 November 2007)</H2>
<ul>
<p>
<li> A public release to complete current XPA development work.
</ul>
<H2> Patch Release 2.1.7b[1,2] (Feb 22, 2006; March 8, 2007)</H2>
<ul>
<p>
<li> Added a convenience null to the end of the buffers returned by XPAGet.
<p>
<li> Added code to avoid calling atexit routine if a fork'ed child
calls exit() instead of _exit().
<p>
<li> Added XPA_CLIENT_DOXPA environment variable to turn off client
processing of xpa server requests.
<p>
<li> Added --version to xpaset, xpaget, xpainfo, xpaaccess, xpans to
display XPA version and exit.
<p>
<li> Added support for integrating XPA into a Gtk loop.
<p>
<li> xpaaccess now returns its answer in the error code as well as to stdout
(without the -n switch, it returns 1 for a match, with the -n switch,
the number of matches is returned).
<p>
<li> Fixed bug which prevented xpans from being started up automatically
by an xpa server if its pathname contained a space character.
<p>
<li> Fixed bug in MINGW port of xpans in which an XPA server that
terminated via an interrupt was not being properly removed from the
list of registered access points.
<p>
<li> Added XPA_LOGNAME to override LOGNAME when registering username
<p>
<li> Upgraded swish-e indexing code to 2.4.5.
</ul>
<H2> Patch Release 2.1.6 (4 May 2005)</H2>
<ul>
<p>
<li> Added -P switch to xpans to enable experimental proxy support
(default is disabled). An argument of 1 processes proxy requests in
the same thread as xpans requests, while an argument of 2 processes
proxy requests in a separate thread. (The latter is recommended to
avoid xpans timeouts, since xpa callback processing can take a long
time.)
<p>
<li> Added ability to build shared libraries (done automatically with
configure --enable-shared) with compilers other than gcc.
<p>
<li> Made yet another attempt to build shared libraries under OS X.
<p>
<li> Fixed a server bug in Tcl support under Windows (introduced early
in 2.1.6) which caused an occasional SEGV.
<p>
<li> Fixed race condition in cases where 2 or more servers makes client calls
to one another.
<p>
<li> Fixed bug in the XPA handler routine in which an access point was
turned off if an error occurred in that routine (as opposed to the
user-defined callback routine).
<p>
<li> Fixed race condition when "ack=false" flag (or -n) is used with XPASet()
(or xpaset).
<p>
<li> Added defensive code to XPA handler to ensure that the passed XPA record
is valid.
<p>
<li> Tcl/XPA servers such as ds9 were not turning off select() on the
xpa channels inside an xpa callback, as required. This is now fixed.
<p>
<li> Added timestamps to most server and client error messages if the
XPA_TIMESTAMP_ERRORS variable is set. This is useful when XPA errors are
being logged in an error log (e.g. Web/CGI use).
<p>
<li> Generated PostScript and PDF versions of the help pages.
<p>
<li> Moved OPTIONS section before (often-lengthy) DESCRIPTION section in
man pages.
<p>
<li> All memory allocation now performs error checking on the result.
<p>
<li> Removed some compiler warnings that surfaced when using gcc -O2.
<p>
<li> Updated configure.ac to better support Tcl in Panther with Apple
Frameworks.
</ul>
<H2> Patch Release 2.1.5 (12 January 2004)</H2>
<ul>
<p>
<li> Fixed bug in XPAPoll(). Erroneously, no requests were being
processed when maxreq==0. Now, all pending events are processed, as
per the documentation.
<p>
<li> Added ack=false to XPAInfo() (and corresponding -n to xpainfo)
so that client does not wait for a response from the server. This is
essential in cases where XPA servers wish to send info messages to
one another without causing a race condition.
<p>
<li> Generated man pages from the html pages. These are installed
automatically at build time.
<p>
<li> The xpans program with Unix sockets now uses a lock file to signal
that it is running, in order to avoid a potential (but rare) race
condition at startup.
<p>
<li> Code that calls Unix-type bind() now manipulate umask() to ensure that
all users have write permissions to the socket file (OS X apparently uses
these permissions while previous platforms ignore them).
<p>
<li> Configure now checks for socklen_t type (OS X does not define it).
<p>
<li> Added an atexit function to run XPAFree. The aim here is to delete Unix
socket files on exiting.
<p>
<li> Under Windows, the Tcl event-handling code now blocks for 1/1000 of a
second instead of not blocking at all (which inadvertently used 100% of cpu).
<p>
<li> Upgraded Tcl/Tk support to 8.4.
<p>
<li> Made another round of checks was made through all instances of
strcat, strcpy, etc. to look for potential buffer overflows. Changed
all instances of sprintf() to snprintf().
<p>
<li> Class and name designators are now limited to 1024 characters, for
no particular reason.
<p>
<li> The obsolete $SAORD_BIN variable was being added to the path when
searching for xpans. This is no longer the case.
<p>
<li> Fixed non-ANSI compiler errors in both xpa.c and xpans.c.
<p>
<li> Fixed minor problems to support compilation with g++.
<p>
<li> Ported to Intel icc and gcc 3.3 compilers.
<p>
<li> Upgraded autoconf to 2.57. Included in this upgrade is a change that
makes gcc the default compiler (use "configure CC=cc" to change this).
Also, by default, the Tcl shared object is no longer automatically built
if the Tcl libraries are used. Use the --enable-tclshlib switch in
configure to enable this feature.
<p>
<li> Changed license from public domain to GNU GPL.
</ul>
<H2> Patch Release 2.1.4 (24 March 2003)</H2>
<ul>
<p>
<li> Made inet method unique, even when hosts are behind a firewall using
the same ports (on different local machines).
<p>
<li> The initial connection from an xpa server to a local xpans now is
controlled by a timeout (default 5 sec, controlled by XPA_CONNECT_TIMEOUT
variable). This should prevent a hang on connect() if the network
is not set up correctly.
<p>
<li> Fixed rare race condition when an XPA server callback performed its own
XPAGet or XPASet call to another XPA server.
<p>
<li> Use POSIX O_NONBLOCK for non-blocking I/O in fcntl call if it
exists, instead of O_NDELAY.
</ul>
<H2> Patch Release 2.1.3 (26 September 2002)</H2>
<ul>
<p>
<li> Added -k [sec] switch to xpans to support sending one-byte keepalive
messages from xpans to registered xpa servers.
<p>
<li> Added XPANSKeepAlive routine (and Tcl equivalent) to allow
xpa servers to send a one-byte keepalive message to xpans.
</ul>
<H2> Patch Release 2.1.2 (18 July 2002)</H2>
<ul>
<p>
<li> The "-help" reserved command now also displays the XPA version, if
no explicit sub-commands are specified.
<p>
<li> Change internal state of xpans proxy to save ip:port value of a
server behind a NAT firewall. This is required to give some hope of
distinguishing multiple instances of ds9 running behind NAT.
</ul>
<H2> Patch Release 2.1.1 (20 June 2002)</H2>
<ul>
<p>
<li> Added a version check between xpans and an access point,
performed when it gets registered by an XPA server. If the server
has a version greater than the xpans version, a warning is issued by
both programs.
<p>
<li> Added a boolean XPA_NSREGISTER environment variable to allow an
XPA server to skip xpans registration. The default is to register with
the name server. If set to "false", the access point still is set up
but it is not registered with an xpans. It can be registered later on
(using -remote or -proxy, for example).
<p>
<li> Fixed bug in which xpans was still listening on any interface when
XPA_METHOD was localhost (instead of just listening on localhost).
</ul>
<H2> Public Release 2.1.0 (22 April 2002)</H2>
<P>
New features include:
<ul>
<p>
<li> Support for proxy access to XPA servers (e.g. ds9) situated
behind a firewall (useful for NVO-type applications).
<p>
<li> Improved support for allowing remote machines access rights to the
XPA access points (useful for NVO-type applications).
<p>
<li> Ability for XPAAccess() routine and xpaaccess program to contact XPA
directly.
<p>
<li> Support for a clipboard access point that allows clients to store ASCII
state information in an XPA-enabled server.
<p>
<li> Improved support for Windows platform, as well as new support for Mac OSX.
</ul>
<H2> Pre-Release 2.1.0e (2 April 2002)</H2>
<UL>
<P>
<LI> 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 ...
</UL>
<H2> Pre-Release 2.1.0e (1 April 2002)</H2>
<UL>
<P>
<LI> Fixed an uninitialized variable in xpamb which prevented it from
working at all on some systems.
<P>
<LI> Changed xpamb switch from "-add" to "-data" (to store named data).
<P>
<LI> 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:
<PRE>
xpaget xpamb -info foo
</PRE>
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.
</UL>
<H2> Pre-Release 2.1.0e (25 March 2002)</H2>
<UL>
<P>
<LI> 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:*'.
</UL>
<H2> Pre-Release 2.1.0e (19 March 2002)</H2>
<UL>
<P>
<LI> Removed timeout check when reading data (in clients using xpaget
and servers filling the data buffer). We have more and more cases
where we need to wait a long time to retrieve data (e.g., slow
networks or receiving data being compressed on the fly).
<P>
<LI> Moved call to sigaction(SIGCHLD,...) out of XPAOpen(), so that it
is only executed when needed by XPAGet()/XPASet() routines called from
within xpans/proxy. But then changed logic to use a double fork() instead
of sigaction() to prevent zombies (Stevens Adv. Programming p 202).
<P>
<LI> Each XPA access point now generates an environment variable of the
form XPA_name=method so that children can communicate with the parent access
point more easily.
<P>
<LI> Added version option to Tcl xparec:
<PRE>
if [catch { xparec "" version } version] {
puts "pre-2.1.0e"
} else {
puts [split $version .]
}
</PRE>
to help differentiate between XPA versions within Tcl code.
</UL>
<H2> Pre-Release 2.1.0e (14 February 2002)</H2>
<UL>
<P>
<LI> Fixed client handling of out-of-sync messages.
</UL>
<H2> Pre-Release 2.1.0e (11 February 2002)</H2>
<UL>
<P>
<LI> Fixed client.c/xopen() so that it does not open an extra socket.
<P>
<LI> Fixed xpainfo/xopen() to prevent client from hanging waiting for ack.
<P>
<LI> Modified stest to generate xpaaccess points xpa, xpa1, c_xpa, and
i_xpa (or more generally, <name>, <name>1, c_<name>, i<name>) to allow
more flexible testing of templates. Also added -a for testing XPAAccess().
</UL>
<H2> Beta Release 2.1.0b10 (31 January 2002)</H2>
<UL>
<P>
<LI> Added support for Mac OSX/Darwin to configure file.
</UL>
<H2> Beta Release 2.1.0b9 (26 January 2002)</H2>
<UL>
<P>
<LI> Fixed bug in client library that caused XPAAccess() call to hang.
</UL>
<H2> Beta Release 2.1.0b8 (4 January 2002)</H2>
<UL>
<P>
<LI> Made modifications to Makefile.in to make releases easier.
<P>
<LI> 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.
</UL>
<H2> Beta Release 2.1.0b7 (21 December 2001)</H2>
<UL>
<P>
<LI> Added -proxy switch to -remote sub-command to allow remote access
through a firewall, using xpans as a proxy server. The support for proxy
processing required a change to the client/server protocol. This means
that new xpa servers will not work with old xpa clients (although new
xpa clients will work with old xpa servers). For details about proxy
firewall support, see http://hea-www.harvard.edu/RD/xpa/inet.html.
<P>
<LI> Fixed Tcl support for XPA under Windows/Cygwin by re-writing
the code used to add XPA to the Tcl event loop. This fix makes ds9
support for XPA much more stable under Windows.
<P>
<LI> Added the shutdown() call to XPA under Cygwin/Windows before
closing send() sockets. It appears that a Cygwin recv() socket call
does not always sense when the other end closes the socket using
close(). This measure must be considered a hack, since the actual
problem was never resolved.
<P>
<LI> Added code to protect accept() and select() calls from interrupts.
<P>
<LI> Extended syntax of the environment variable XPA_NSINET to:
<PRE>
setenv XPA_NSINET host:port[,port[,port]]
</PRE>
to allow specification of the XPA access point port for xpans,
as well as the proxy data port.
<P>
<LI> Modified xpans log file so that it contains the xpaset commands
required to reconnect with xpa servers.
<P>
<LI> xpans now deletes its Unix socket files.
</UL>
<H2> Beta Release 2.1.0b6 (29 October 2001)</H2>
<UL>
<P>
<LI> Implemented a reserve public access point named -clipboard so
that clients can store ASCII 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:
<PRE>
[data] | xpaset [server] -clipboard add|append [clipboard_name]
xpaset -p [server] -clipboard delete [clipboard_name]
xpaget [server] -clipboard [clipboard_name]
</PRE>
Use "add" to create a new clipboard or replace the contents of an existing
one. Use "append" to append to an existing clipboard.
</UL>
<H2> Beta Release 2.1.0b5 (22 October 2001)</H2>
<UL>
<P>
<LI> Use FD_SETSIZE instead of getdtablesize() to determine how many files
to check during select();
<P>
<LI> 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.
<P>
<LI> Added error check to select() call in xpans.
</UL>
<H2> Beta Release 2.1.0b4 (24 September 2001)</H2>
<UL>
<P>
<LI> The launch() now can return an error code if the execv() system
call fails (something system() does not do).
<P>
<LI> 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.
</UL>
<H2> Beta Release 2.1.0b3 (6 September 2001)</H2>
<UL>
<P>
<LI> 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.
<P>
<LI> 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.)
<P>
<LI> Fixed bug in xpans in which its xpa port was always being set to 14286.
</UL>
<H2> Beta Release 2.1.0b2 (17 August 2001)</H2>
<UL>
<P>
<LI>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.
<P>
<LI>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).
<P>
<LI>Fixed bug in xpans in which a bad telnet command could hang the program.
<P>
<LI>Added -s [security file] to xpans to allow logging of all external
connections.
</UL>
<H2> Beta Release 2.1.0b1 (6 August 2001)</H2>
<UL>
<P>
<LI> 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.
<P>
<LI> 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.
<P>
<LI> Added -m switch to xpaget, xpaset, xpainfo, xpaaccess to allow
override of the XPA_METHOD environment variable.
<P>
<LI> Changed the default name of the ACL file from xpa.acl to acls.xpa.
<P>
<LI> 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.
<P>
<LI> 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.
<P>
<LI> 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 +'.
<P>
<LI> Fixed bug in which the class:name specifier "*:*" was erroneously
trying to access the xpans name server, instead of accessing all
access points.
<P>
<LI> Support TMPDIR and TMP environment variables as well as XPA_TMPDIR.
</UL>
<H2> Patch Release 2.0.5 (10 November 2000)</H2>
<UL>
<P>
<LI> 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)
<P>
<LI> Minor fixes in Makefile for installing on Windows
<P>
<LI> Minor compiler fixes from gcc -Wall.
</UL>
<H2> Patch Release 2.0.4 (20 September 2000) </H2>
<UL>
<P>
<LI> Removed extraneous include of varargs.h from find.c.
<P>
<LI> Ported to SGI C compiler, which caught lots of unused variables, etc.
<P>
<LI> 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).
</UL>
<H2> Patch Release 2.0.3 (15 June 2000) </H2>
<UL>
<P>
<LI> Fixed the client XPASet() and XPASetFd() calls to handle the specified
max number of connections (they were ignoring this argument, leading to
memory overwrites).
<P>
<LI> Fixed Makefile.in so that CFLAGS and LDFLAGS are not hard-wired values.
<P>
<LI> Fixed word.h to load malloc.h and stdlib.h only if they exist.
<P>
<LI> Documentation fixes to programs.html (in xpaaccess) and client.html
(XPANSLookup).
<P>
<LI> Added explicit typecast to strlen() argument to MAX #define in
XPAClientStart (strlen() is unsigned in Linux, which can break MAX).
<P>
<LI> Removed bogus Imakefile from directory.
<P>
<LI> Changed directory name to include patch level (i.e., xpa-2.0.3).
</UL>
<H2> Patch Release 2.0.2 (9 September 1999)</H2>
<UL>
<P>
<LI> Fixed server mode (-s) in the xpaset program by properly cleaning up
the input buffers (sending commands and data in server mode was broken).
</UL>
<H2> Patch Release 2.0.1 (6 August 1999)</H2>
<UL>
<P>
<LI> Fixed the Tcl binding code (tcl.c) for 64-bit machines (Dec Alpha)
(erroneously used %x instead of %p when converting pointers to ASCII).
<P>
<LI> 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).
</UL>
<H2> Public Release 2.0 (27 May 1999)</H2>
<UL>
<P>
<LI> "a new day with no mistakes ... yet"
</UL>
<HR>
<P>
<A HREF="./help.html">Index to the XPA Help Pages</A>
<HR>
<H5>Last updated: 22 April 2002</H5>
</BODY>
</HTML>
|