ChangeLog:

nx-X11-1.5.0-15

- Made the nxagent server use select() instead of poll() on Solaris
  so that it can leverage the new NX transport.

- Moved the NXTransFlush() call to _XReply().

nx-X11-1.5.0-14

- Added the 'synchronous' parameter in the _XWaitForReadable() call
  to NXTransFlush().

nx-X11-1.5.0-13

- Removed the log entry in XlibInt.c on calling the NXTransFlush().

nx-X11-1.5.0-12

- Changed XlibInt.c and utils.c to call NXTransExit().

nx-X11-1.5.0-11

- Changed XlibInt.c to comply with the new NXTransFlush() interfa-
  ce introduced in nxcomp-1.5.0-42.

- Cosmetic changes to messages printed for debug.

nx-X11-1.5.0-10

- Ensured that all calls to _XIOError() are followed by a return.

- Put exiting the client program in the case of an I/O error under
  the control of the _NXContinueOnDisplayError flag. If set, the
  I/O error routine will simply return, leaving to the application
  the responsibility of checking the state of the XlibDisplayIOEr-
  ror flag.

- Added some checks whenever a read or write is performed on the X
  connection, so that we can exit the I/O loop if the X channel is
  gone. It is likely that more work will be needed when trying to
  support XTHREADS enabled connections. This should not be a pro-
  blem for now, as the default is still to quit the application un-
  less the _NXContinueOnDisplayError flag is explicitly set.

nx-X11-1.5.0-9

- Removed the references to the cygipc library in NXWin. Now use the
  cygserver daemon to provide the MIT-SHM extension.

- Fixed an error in the UseCygIPC definition.

- Changed the cygwin.cf file to avoid redefinition of the BuildGlxExt,
  XWinServer and BuildGlxExt symbols.

nx-X11-1.5.0-8

- Added provision for deferred writes in the NX transport. When en-
  tering _XWaitForReadable() we must ensure that data is flushed to
  the proxy link.

- Added the UseCygIPC define to NX-Cygwin.def.

- Updated the NoMachine copyright notice on the modified files.

nx-X11-1.5.0-7

- Added the GLX extension in NX-Sun.def.

- Added some more logs in WaitFor.c.

nx-X11-1.5.0-6

- Modified Xlibint.h and XlibInt.c to remove the _NXFlushSize para-
  meter. New agents run the NX transport in-process, so we don't get
  any benefit from increasing the display buffer size.

- Modified NX-Darwin.def to not build the NXDarwin server. Since the
  1.4.0 version the NXDarwin server is unsupported and the NX client
  for the Mac requires that the Apple X server is installed.

- Changed NX-Linux.def to avoid the warning due to "SharedLibGLw"
  being not defined.

nx-X11-1.5.0-5

- Modified the Xserver Imakefile to link nxagent with FbPostFbLibs
  and avoid including mfb/libmfb.a.

- Added the GLX extension in NX-Linux.def. This provides unaccelera-
  ted support in nxagent, with GLX operations translated into core X
  protocol primitives.

- Fixed x-X11/programs/Xserver/GL/dri/Imakefile to look in ../../hw/
  /xfree86/os-support/bus for includes.

nx-X11-1.5.0-4

- Avoid calling NXTransSelect() if the transport is gone, so that we
  don't have to wait until the timeout.

- Added the "-fno-strict-aliasing" option to linux.cf when compiling
  with a GCC version >= 4. In the words of Stefan Dirsch: "The opt-
  ion, which is default since gcc 3.1, can result in wrong code when
  the gcc warnings related to it are ignored. And as there are seve-
  ral warnings in X11 related to it, it has been disabled for X11
  from the beginning. This didn't change for gcc4, so it still needs
  to be used."

- Added more logs in XlibInt.c and utils.c. A warning is printed if
  the SmartScheduler is initialized.

nx-X11-1.5.0-3

- Started integration of nxcomp with the X libraries. The Xtrans
  code creates an internal connection to the nxcomp library instead
  of a child proxy process.

- Changed Xpoll.h and XlibInt.c to replace the standard Select
  with a version giving NX a chance to check its own descriptors.

- Implemented the NXTransReadVector() and the NXTransWriteVector()
  functions to replace READV() and WRITEV().

- Implemented memory-to-memory communication with the NX proxy by
  making use of the NXTransAgent() interface.

nx-X11-1.5.0-2

- We think that the way LoadAuthorization() is working is wrong.
  It doesn't reset the list of stored authorizations before reading
  the new cookies. Our take is that if a new auth file is to be
  read, the only cookies that are to be accepted are those that are
  in the new file, not those in the file -plus- those that have
  been in the file in the past. Furthermore, if the list can't be
  read or it is empty, it should assume that it ignores which co-
  okies are valid and thus it should disable any access. Your mile-
  age can vary. A less draconian approach could be to leave the old
  cookies if the file can't be read and remove them only if the
  file is empty.

  Adding the cookies without removing the old values for the same
  protocol has an important implication. If an user shares the co-
  okie with somebody and later wants to revoke the access to the
  display, changing the cookie will not work. This is especially
  important with NX. For security reasons, after reconnecting the
  session to a different display, it is advisable to generate a
  new set of cookies, but doing that it is useless with the current
  code, as the old cookies are going to be still accepted. On the
  same topic, consider that once an user has got access to the X
  server, he/she can freely enable host authentication from any
  host, so the safe behaviour should be to reset the host based
  authenthication at least at reconnection, and keep as valid only
  the cookies that are actually in the file. This behaviour would
  surely break many applications, among them a SSH connection run
  inside a NX session, as ssh -X reads the cookie for the display
  only at session startup and does not read the cookies again
  when the auth file is changed.

  Another bug (or feature, depending on how you want to consider
  it) is that if the authority file contains entries for different
  displays (as it is the norm when the authority file is the default
  .Xauthority in the user's home), the X server will match -any- of
  the cookies, even cookies that are not for its own display. This 
  means that you have to be careful when passing an authority file
  to nxagent and maybe keep separate files for letting nxagent find
  the cookie to be used to connect to the remote display and for
  letting it find what cookies to accept. If the file is the same,
  clients will be able to connect to nxagent with both the cookies.
  This bug obviously affects any X server, also the real X server
  running on the workstation, so it is common to see nxagent being
  able to connect to the X server even if no cookie matches the
  real display.

- Added a check in lib/Xau/AuRead.c to prevent the fread() call to
  be interrupted by SIGCHLD while reading the auth file. Due to the
  way the old code worked, this could lead to the server enabling
  local host access to the display. This problem had been identified
  in the past. We just found that all the code dealing with reading
  the auth file was affected. The code calls sigprocmask() to block
  the signal (though it leaves some other calls unprotected) but the
  SIGCHLD was not included in the set.

- Added SIGCHLD to the set of signals that are blocked when reading
  the authorization file.

- As I was at it, I changed the path to the SecurityPolicy file. A
  few Linux ditributors ship the file in $LIBDIR/xserver, a few only
  in /etc/X11/xserver, most others in both places. It seems that
  those who ship in $LIBDIR/xserver do also in /etc/X11 but the op-
  posite is not true, so I switched to /etc/X11.

nx-X11-1.5.0-1

- Opened the 1.5.0 branch.

nx-X11-1.4.1-2

- Set parameter UseCygIPC on cygwin conf file in order to force the
  build of MIT-SHM estension.

- Removed some spurius object file.

nx-X11-1.4.1-1

- Opened the 1.4.1 branch.

nx-X11-1.4.0-8

- Changed DefaultFontPath and DefaultRGBDatabase in 
  NX-Cygwin.def.

nx-X11-1.4.0-7

- Imported dispatch in nxdarwin package, in order to let
  nxdarwin being able to detect new client connection.

- Changed the Xpm Imakefile to make also .a static library
  on Solaris. To link nxviewer and nxdestkop staticaly.

nx-X11-1.4.0-6

- XInput extension enabled on MacOSX.

- Added some missing backup files of the original XFree86
  package.

nx-X11-1.4.0-5

- Changed the mi Imakefile in order to let xfree86 servers use
  the normal mi extension initialization for the XInput exten-
  sion.

- XInput extension enabled on Solaris.

nx-X11-1.4.0-4

- Removed the RejectWellKnownSocket for the cygwin and
  MacOSX environments that doesn't use the Xtransport library.

nx-X11-1.4.0-3

- Changed the implementation of the reject method in the
  Xtransport library, now close any new incoming connection 
  immediately without reading or writing to it.

nx-X11-1.4.0-2

- Implemented a reject method in the Xtransport library,
  this function accept and close every connection attempt,
  on the specified listening socket.

- Added the new function RejectWellKnownSocket to the os
  connection code.
  This function use the new transport reject function on
  all listening socket.

nx-X11-1.4.0-1

- Opened the 1.4.0 branch.

- Removed forgotten nxagent-1.3.2-20 directory.

nx-X11-1.3.2-9

- Prevents NX Darwin server going through the reset. On Darwin
  we found that the it is not possible to get the correct key-
  board layout unless it is set on the local machine, before
  the NX session is started, by using xmodmap. As we set the
  keyboard locally, we must prevent the X server to reset, or
  we would loose any local configuration.

nx-X11-1.3.2-8

- Removed action associated to keysym XK_Terminate_Server. This
  could cause agent to be terminated when pressing shift + back-
  space if using the default US keyboard mapping.

- Disabled the remaining debug logs in lib/X11/PutImage.c

nx-X11-1.3.2-7

- Fixed the wrong programs/Xserver/Imakefile in 1.3.2-6 package.

nx-X11-1.3.2-6

- Changed the define from NX_CLEAN_IN_PLACE to NX_CLEAN_INPLACE.
  Definition of symbol is now placed in the Imakefile.

- The new _NXEnableCleanInplace Xlib variable does control which
  algorithm is used to clean the images. Setting NX_IMAGEINPLACE
  in the environment will activate the in-place cleanup.

- The default value of _NXEnableCleanInplace is -1. Leaving it to
  a value <= 0 disables use of CleanInplace.

nx-X11-1.3.2-5

- Patch in config/cf/sun.cf. Fix for libfontconfig compilation
  during gmake Everything on Solaris.

- Patch in lib/X11/Imakefile. Fix for nxcomp compilation during
  gmake World on Solaris.

nx-X11-1.3.2-4

- Image cleanup is now performed by using NXCleanInPlaceImage from
  nxcompext. This function saves a buffer copy by cleaning the
  padding bytes in the same buffer provided by the caller. Note that
  to prevent memory violations in the case the image was allocated
  in a static buffer, the function will temporarily redefine the
  SIGSEGV handler. The former handler is restored before returning
  to the caller. This can potentially affect some multithreaded
  clients. Is to be decided if the function is safe enough to be
  included in the production release.

nx-X11-1.3.2-3

- More debug logs in programs/Xserver/xkb/ddxLoad.c.

nx-X11-1.3.2-2

- Added NXmiwindow.o to NXAGENTOBJS in programs/Xserver/Imakefile.
  File was not linked into the resulting nxagent. This solves the
  problem of missing repaints in CDE and other Xt applications.

nx-X11-1.3.2-1

- Added some debug logs in programs/Xserver/xkb/ddxLoad.c. Function
  XkbDDXCompileKeymapByNames is called by OpenOffice to read the
  keyboard configuration whenever a drop-down menu is accessed. It
  seem to always fail with the following error:

  The XKEYBOARD keymap compiler (xkbcomp) reports:
  > Error:            Can't find file "unknown" for geometry include
  >                   Exiting
  >                   Abandoning geometry file "default"

- Opened the 1.3.2 development branch.

nx-X11-1.3.1-12

- Fixed a problem in xkb/ddxLoad.c on Solaris where Pclose was
  always returning an error code despite the fact that command
  was executed properly.

nx-X11-1.3.1-11

- Changed default GCC flags from '-O2 -fno-strength-reduce' to
  -O3. No platform where NX is targeted is currently using a
  GCC 2.x affected by the -fno-strength-reduce bug. Note also
  that nxcomp is already compiled with -O3 since 1.1.1, so it
  can be considered safe.

nx-X11-1.3.1-10

- Imported an updated fbcompose.c file from XFree86-4.3.99.902.
  This fixes "uninitialized value" problems reported by Valgrind.

- Fixed further buffer overflows by updating the following file
  with recent versions coming from the XFree86-4.3.99.902 tree.

  nx-X11/lib/font/fontfile/dirfile.c
  nx-X11/lib/font/fontfile/encparse.c
  nx-X11/lib/font/fontfile/fontfile.c

- Fixed a possible buffer overflow in lib/font/FreeType/fttools.c.
  Verified that the change is already in the XFree86 4.4.0 CVS.

nx-X11-1.3.1-9

- Fixed Xserver/Imakefile which was still referencing NXpixmap.o.

nx-X11-1.3.1-8

- Imported an updated fbgc.c from XFree86-4.3.99.902. This fixes
  some minor problems reported by Valgrind.

- A major problem was reported by Valgrind about reading after
  the block allocated in fbCreatePixmap from AllocatePixmap. The
  file pixmap.c has been modified so that 4 bytes are added to
  the pixmap buffer at any new allocation. This quick hack should
  solve the problem for both nxagent and the NXWin server. Further
  investigation is planned for the next release.

- Fixed Xtranssock.c to compile on Solaris where struct sigaction
  doesn't have the sa_restorer member.

nx-X11-1.3.1-5

- Renamed the NX-sun.def configuration file to NX-Sun.def.

- Renamed the non-standard NX_iPAQ_XServer and NX_Zaurus_XServer
  symbols to NXiPAQXServer and NXZaurusXServer.

- Added the missing sun.cf.XF86.original file in config/cf.

- Added the missing empty file host.def.XF86.original in the
  same directory.

- Added initialization of sa.sa_mask when setting sigaction()
  for SIGCHLD. The problem was reported by Valgrind running
  nxagent.

- Removed an unused block of code from WaitFor.c. The code had
  been commented out in previous versions.

- Removed the non-standard colon at the end of version in this
  CHANGELOG.

- Removed the spurious spaces in this CHANGELOG.

nx-X11-1.3.1-4

- Added a little workaround to the top Imakefile intended to
  hide the makedepend warnings about non portable whitespaces
  in sources.

nx-X11-1.3.1-3

- Fixed compilation problem with nxagent-1.3.1-13.

nx-X11-1.3.1-2

- Changes in NX-sun.def configuration file for Solaris to allow
  compilation of the XKB extension. 

nx-X11-1.3.1-1

- Opened the 1.3.1 development branch.

nx-X11-1.3.0-6

- Original output buffer size in stock XFree86 is 2048. We try
  to reduce context switches and help stream compression by
  increasing the maximum size of the buffer 8192. _NXFlushSize
  determines when the display buffer is actually flushed. It is
  set by default to 4096 but agents should set it to 0 if they
  want to disable early flush.

- Added the _NXLostSequenceFunction function pointer to let NX
  agents suppress the error message and modify the default Xlib
  behaviour when out-of-order sequence numbers are received.
