ChangeLog:

nxcomp-1.4.0-31

- Adjusted for alarm(0) returning an inconsistent value in ConnectTo-
  Remote(). Backported from 1.5.0-4.

- Small changes to Types.h, Jpeg.cpp and Png.cpp to compile with gcc
  3.4.2.

nxcomp-1.4.0-30

- Modified the function checking the Unix socket where X connections
  will be forwarded. The function will not fail if the socket itself
  doesn't exist yet. This solves the TRCL042203.

- Moved the code checking for the CTRL+ALT+SHIFT+ESC sequence to a
  separate function. The implementation will now look for a different
  sequence on the MacOS/X platform. This should solve the TRCL042182.

nxcomp-1.4.0-29

- Solved a bug that could cause proxy to stop reading data from the
  X channels due to an incorrect calculation of the bytes queued on
  the proxy link. The bug only affected Linux kernels of the 2.0/2.2
  series.

- Fixed a problem in the proxy class that could let the select time-
  out to become zero.

nxcomp-1.4.0-28

- Prevented the main proxy process from quitting when the fork() of
  any of the children fails. This can actually happen on Windows due
  to conflicts in reallocating any of the Cygwin DLLs.

- Reworked handling of the priority flag in channels when dealing
  with the X_InternAtoms and X_AllocColor requests to reduce the time
  of session startup. Priority is never set in case of X_InternAtom
  requests and replies as we assume that most clients use the appro-
  priate Xlib function to pipeline multiple requests in a single net-
  work operation.

- The timeout after which proxy will abort the peer connection is
  still 120 seconds. An alert dialog will be shown earlier, after 30
  seconds instead of 60.

nxcomp-1.4.0-27

- Removed the code setting priority on channels on ButtonPress and
  Button release events. It seems preferrable to delay the flush and
  pack more events in a single frame. This makes possible to get the
  ButtonRelease together with the ButtonPress.

- Fixed error detection in SetNoDelay() where a positive result
  could produce a 'not supported' message in debug mode.

nxcomp-1.4.0-26

- Reworked the check aimed at detecting the clock drifts. The previ-
  ous code, introduced in 1.3.2-2, had the undesired side-effect of
  resetting the proxy timeout. This could cause the proxy to never
  detect that the other end had been killed.

- The default behaviour of proxy is now to terminate the session at
  the time an error is encountered. This includes network failures.

- Added a new dialog to be shown to the user whenever the session
  is terminated abnormally.

nxcomp-1.4.0-25

- Fixed a bug in handling of suppression of errors generated by
  committing the image splits. Other errors, unrelated to the commit
  of split, could be suppressed. This might cause the hangup of the
  session when the suppressed error was matching a reply.

nxcomp-1.4.0-24

- When killing the proxy process -9 the watchdog could remain alive.
  This caused the SSH link to keep the stderr open, with the effect
  that former proxy message were not flushed to the session log.
  Now the watchdog checks every second if the parent is dead, so
  that file descriptors can be closed as soon as possible.

- SetupDisplaySocket() tried to force the connections to the X
  server on the UNIX port whenever the display was set to localhost.
  This patch was intended to fix a bug in nxclient, using the TCP
  port even when the display was set to a UNIX socket. This beha-
  viour caused problems when running nxclient on a remote host by
  means of a ssh -X. Proxy will now adhere to the display setting.

nxcomp-1.4.0-23

- Added the possibility to respawn nxclient at the end of session.
  This is an useful feature when powering thin-clients where NX
  is the only application made available.

- This configuration applies system-wide to the local client ins-
  tallation. By default it is disabled. It can be enabled by the
  by creating a 'noexit' file in the directory '/usr/NX/share',
  or at compile time, by setting ENABLE_RESTART_ON_SHUTDOWN to 1.

- Note that the solution is not perfect yet, as there are cases
  where session could die without going through HandleShutdown(),
  for example if a decoding error is raised in the communication
  with the remote peer and the subsequent restore of the proxy
  link fails to succeed.

nxcomp-1.4.0-22

- Corrected typos in Timestamp.h and Loop.cpp.

nxcomp-1.4.0-21

- Tuned the handling of RenderCompositeGlyphs. Now compression of
  RENDER shows an average ratio of 8:1. This is a steady increase
  compared to the 5:1 of the 1.3.2 version. The overall advantage
  when running clients displaying a large amount of text is 30%.

nxcomp-1.4.0-20

- Added a new message store for the CreatePixmap request.

- Fixed handleCopy() to only send the data part past the offset.
  This fix can save a significant amount of traffic, especially
  when sending many small images whose size doesn't reach the
  threshold set for compressing them.

nxcomp-1.4.0-19

- Added tuning of all the RENDER requests. RenderCompositeGlyphs
  will require further work.

- Completed porting of the RENDER requests to the new templates.

nxcomp-1.4.0-18

- Tuned the handling of RenderCreatePicture and RenderFreePicture.

- Created a new template system for writing new message encoders.

- Renamed getBits() in EncodeBuffer with diffBits(). The getBits()
  method now returns the bits actually allocated in the buffer and
  can be called multiple times.

nxcomp-1.4.0-17

- Provided specific encoding of the remaining RENDER requests and
  added compression of RenderCreateGlyphSet.

nxcomp-1.4.0-16

- Code underwent through 7 different patch versions but seems to
  be stable now. It still needs to provide specific encoding for
  RenderCreatePicture RenderChangePicture and RenderFreePicture.
  Code will likely include incompatible changes at any new version
  until the new encoding will stabilize, so be sure that you use
  the same nxcomp version at both sides.

- Created the infrastructure for compressing extension messages
  based on the minor opcode. A new class, MinorMessageStore, has
  to be inherited by stores requiring specific compression, so
  that all the encoding methods of the parent can be redirected
  to it. The RENDER extension is now compressed using this new
  class.

- Managed to maintain the compatibility with caches created by the
  1.3.X version. Caches will be saved using the old format if the
  remote version is not a 1.4.x. When restoring a cache created
  by the 1.3.x with both proxies being the newest version, RENDER
  mesages will be discarded without having to discard the whole
  cache.

- Added a member to the message class to store the identity size.
  This field is now used instead of the default data offset to
  manage the message data, that is the part of message after the
  identity.

- Removed the warnings printed in the session log when passing the
  'kbtype' and the 'geometry' options to the proxy. These options
  are actually used by agents.

nxcomp-1.4.0-15

- Started implementation of the new framework for handling enco-
  ding of X extensions.

- Renamed the overloaded methods handleEncode() and handleDecode()
  to handleEncodeCached(), handleEncodeIdentity() and handleDecode-
  Cached(), handleDecodeIdentity().

- Updated the copyright notice to year 2004.

nxcomp-1.4.0-14

- Added the new channel for HTTP connections. This channel can be
  used to let applications running on the NX server get access to
  data and applications made available by a HTTP daemon running at
  the client side.

  This channel is not used at the moment by nxclient. It can be
  activated by passing http=1 to the NX server side proxy and the
  value http=80 to the NX client side.

nxcomp-1.4.0-13

- Quick patch to run on MacOS/X where inet_addr("127.0.0.1")
  alone seems to fail to return a valid interface.

nxcomp-1.4.0-12

- Few cosmetic changes to logging.

- Removed the debug output.

nxcomp-1.4.0-11

- Removed code used for simulating the new forwarding function-
  ality without client and server support.

nxcomp-1.4.0-10

- Implemented authentication of the forwarder to the listening
  proxy. If a session cookie is required, the forwarder must
  provide the cookie upon connection.

  An authentication phase at the time the forwarder connects
  to the NX client side is strongly suggested because it is usu-
  ally this side that sends the authorization cookie. Without
  such a forwarder authentication, the local peer would reveal
  the cookie to the first process connecting to the port.

- If no cookie is specified in the switch command, the forward-
  er is required to skip the authentication phase. This can be
  useful when running the programs on the command line.

- The implementation required appropriate changes to session
  negotiation in nxssh. This version requires nxssh-1.4.0-8.

nxcomp-1.4.0-9

- Fixed the startup procedure to correctly negotiate the cookie
  when the X server side proxy is listening for a forwarder.

- When listening for a local forwarder (that is when the listen
  option is enabled at X server side), proxy will listen for the
  forwarder on the localhost interface.

- This version has ports and and other parameters hardcoded for
  testing purposes and is not intended for normal use.

nxcomp-1.4.0-8

- Slightly modified the text of FAILED_PROXY_CONNECTION alert.

nxcomp-1.4.0-7

- Added provision for leaving a running dialog showing an OK box
  if proxy is exiting abnormally. This seems to fail to yield the
  expected results as, at the present moment, client checks if
  parent has exited.

- Added a Binder class invoked when calling proxy with -B option.
  It would serve as a replacement of the modifications I'm doing
  in nxssh. The class is just a framework and the implementation
  is unfinished.

nxcomp-1.4.0-6

- Added a line in the session log if the connection procedure is
  aborted due to a signal.

- Fixed ParseHostOption() to let it take in account the proxy
  port offset when passing 'host:port' as the last parameter at
  X server side.

nxcomp-1.4.0-5

- Lowered the default port offsets used for CUPS and SMB services
  to 2000 and 3000. Arbitrary ports can be used by passing the ser-
  vice's port at proxy startup. By default, anyway, the port is at
  the same offset of the proxied display. Considering that the NX
  server uses to start the first session at display 1000, we must
  lower some of the defaults to avoid interference with the normal
  X sessions run on the server.

  Session at display ":1000" will have:

  . Forwarding of CUPS connections at 3000.

  . Forwarding of SMB connections at 4000.

  . The listening proxy (at NX server side) at 5000. This
    port is not used when enabling SSH tunneling

  . The proxied X display (NX agent or proxy) at 7000.

  . Forwarding of multimedia channels at 8000.

  . Forwarding of embedded keyboard connections at 9000.

- Turned off the log output.

nxcomp-1.4.0-4

- Managed to get the X client side proxy connect to the remote
  peer. This means that some parameters that were implicitly
  assumed based on the proxied port simulating the X display
  must be now specified in the NX display string.

- The 'port' parameter now specifies the remote TCP port where
  the local proxy will connect to the remote peer. In previous
  versions this parameter also affected the proxied port. This
  was mainly a side effect, as the remote peer was always con-
  tacted at port 4000 plus the proxied display offset.

- Added the 'listen' parameter to tell to the proxy that is go-
  ing to accept the peer connection on which port it will be
  contacted. By default, similarly to the previous version, the
  proxy will listen at the proxied display offset.

- A check has been added in order to disallow passing both the
  'accept' and the 'connect' parameter at the same time. A simi-
  lar check affects the 'listen' parameter.

- Renamed the previously unused 'sync' channel as 'cups'.

nxcomp-1.4.0-3

- Preserved the ability of version 1.3.2 to load caches generated
  by this version.

nxcomp-1.4.0-2

- Small fixes to compile under Solaris 8.

nxcomp-1.4.0-1

- Opened the 1.4.0 branch.

nxcomp-1.3.2-4

- Fixed a problem with shmget(). Code in ServerChannel checked
  the return value for being greater then 0, while 0 can actual-
  ly be a valid segment.

- When memory cache is disabled, nxcomp will explicitly set the
  appropriate control variables dealing with loading and saving
  of the persistent cache. This can be considered a cosmetic
  change as nxcomp will disable NX delta compression if memory
  cache is not available and this has an implicit effect on the
  ability to load and save such a cache.

nxcomp-1.3.2-3

- Removed inclusion of zlib.h in Png.cpp. Conflicting symbols
  with zlib.h from nx-X11 could cause compilation to fail.

nxcomp-1.3.2-2

- Added a function to take into account the clock drifts at the
  time we check the ping from the remote proxy. This can be
  caused by the user changing the system time or by small adjust-
  ments introduced by the operating system making the clock go
  backward. Such events could cause the proxy link to be shut
  down and reconnected.

- Reduced the length of lines printed in statistics when showing
  the details of X protocol's opcodes. This is intended to help
  nxclient to keep the whole statistics in the 'details' window,
  so that users don't have to use the scrollbars.

nxcomp-1.3.2-1

- Opened the 1.3.2 branch.

nxcomp-1.3.1-5

- It seems that Solaris can return an EINVAL error selecting a
  shutdown descriptor even before we actually close the socket.
  We now ignore the condition on Solaris. This is definitely a
  Solaris bug. 

nxcomp-1.3.1-4

- Increased the timeout after which proxy will abort the peer
  connection to 120 seconds. An alert dialog will now be shown
  after 60 seconds, instead of the 30 seconds being the default
  in the previous version. Some users reported the timeout to
  be too short in the case of temporary network failures.

nxcomp-1.3.1-3

- Some optimizations in the cache house-keeping process. Now it
  runs at lower system priority in respect to the parent. Any 2
  iterations through directories and images, it also sleeps for
  a tiny amount of time. This further decreases the system load.

- Removed the underline characters and added a colon in the
  title of this ChangeLog to fully comply with format used in
  the release notices.

nxcomp-1.3.1-2

- Fixed a crash when running both client and server on the SPARC
  Solaris. An optimization used to avoid byte-swapping when both
  hosts have the same endianess doesn't work on SPARC if buffer
  is not aligned to word boundary. A better version of the code
  should check the CPU, not the OS, as this probably applies to
  other processors.

nxcomp-1.3.1-1

- Opened the 1.3.1 branch.

nxcomp-1.3.0-50

- Disabled the processor limit in X client side proxy. In previous
  versions the processor load limit was set to an idle time ratio
  of 2. This was likely to cause an unwanted slowdown on very old
  hardware or when running the server as guest OS inside a VMWare
  virtual machine.

nxcomp-1.3.0-49

- Last minute update on proxy shutdown bug on Cygwin. A stack
  trace reveals that faillure happens in the static destructor of
  the BlockCacheSet class. It seems that problem appeared just
  after having upgraded to the latest version of Cygwin DLL. Now
  the destructor is skipped at shutdown.

nxcomp-1.3.0-48

- Further fix to overcome the shutdown problem on Windows.

nxcomp-1.3.0-47

- Used T_files::value_type() in Keeper.cpp. The form without the
  explicit constructor fails to compile with GCC 2.91 on RH 6.2.

- Fixed '==' -> '=' in configure.in to build under RH 6.2 and
  probably other platforms.

nxcomp-1.3.0-46

- The cleanup procedure now skips deletion of the IO streams
  under Windows. This is intended to overcome a strange segfault
  occurring at random time, at the time proxy is being shutdown.

nxcomp-1.3.0-45

- Newer versions of the stdlibc++ do not seem to be able to deal
  with NULL strings or non printable characters. This caused the
  standard error stream to get sometimes corrupted in the case
  TEST and DEBUG logs were enabled in Loop.cpp.

nxcomp-1.3.0-44

- Disabled TEST and DEBUG logs in ServerChannel.

nxcomp-1.3.0-43

- Fixed a crash when unpacking an image in server proxy in the
  case the unpack state for the given channel had not been
  previously created.

nxcomp-1.3.0-42

- Small modification to setSchedule() to not account previous
  data accumulated in the encode buffer. The new code seems to
  allow better use of the available bandwidth.

nxcomp-1.3.0-41

- Further fix in Tight decompression. Content of the main write
  buffer was not removed before flushing the unpacked data to
  the X server link.

nxcomp-1.3.0-40

- Removed the code marked as FIXME in Loop and ServerChannel.
  Code was used in previous version to override any pack method
  other than NO_PACK and to disable initialization of the shared
  memory.

nxcomp-1.3.0-39

- Solved the problem with unpacking of RDP text on big-endian
  architectures. The width field in PutPackedImage was put as
  16 bits and extracted as 32 bits at decoding side.

- Moved the code checking if any of the children has exited in a
  specific function. This function is now called any time signals
  are newly enabled. This works even on Solaris.

- Enabled use of shared memory with Tight image decompression.

- Added event NXCollectPropertyNotify to NXproto.h.

nxcomp-1.3.0-38

- Message locks are now checked before splitting a message.

nxcomp-1.3.0-37

- Added a further counter to yield encoding data if the amount 
  of output bytes to be written to channels exceeds a threshold.

- Modified proxy to write data immediately if the encoding loop
  was interrupted.

nxcomp-1.3.0-36

- Further fix required by Tight decompression. By handling mul-
  tiple writes in the Tight class we may flush the main write
  buffer in the wrong order. If Tight decompression is enabled,
  the buffer is now flushed before decoding the packed image.

- A SIGCHLD is raised any time signals are newly enabled. This
  allows the main loop to wait() the pid of children that had
  exited while signals were disabled.

nxcomp-1.3.0-35

- Fixed Tight decompression by handling multiple writes to the
  channel's transport inside the decompression function.

- Made Tight decompressor in ServerChannel a pointer instead of
  an instance of the class. Class is allocated the first time it
  is referenced.

- Rewritten handleUnpack() in ServerChannel to use a switch()
  on the pack method instead of multiple if().

nxcomp-1.3.0-34

- Disabled RENDER extension when running X agent sessions on
  the Solaris client. Problems seem to be caused by incompati-
  bilities in the implementation of RENDER on the Sun X server
  shipped by default. We did not test NX with the XFree86 X
  server, but it seems that, when using the Sun X server, even
  plain X clients don't make full use of the extension.

nxcomp-1.3.0-33

- Added 4 new fields to the X_NXGetControlParameters reply.
  A dialog should be shown by agent if proxy was not able to
  negotiate a persistent cache or if a cache was selected but
  not loaded because incompatible or corrupted.

- Fixed a bug on Solaris where socket() must be recreated if
  the first connect() fails. Not a problem. The strange thing
  is that if you reuse the socket(), the subsequent connect()
  is successful and the program fails as soon as you try to
  write to it.

nxcomp-1.3.0-32

- Added request X_NXFreeUnpack to free the resources allocated
  by the remote proxy to unpack images for the given agent's
  client

- Added an alert at X server side if proxies were not able to
  negotiate a persistent cache or if a cache was selected but
  not loaded at X server side (that means that probably cache
  was not compatible or corrupted). The alert is not enabled
  at the moment. Before enabling it, we need to find a way to
  deal with full-screen mode.

- Tuning of MIT-SHM parameters.

nxcomp-1.3.0-31

- Modified the following requests to carry the id of the
  agent's client:

  - X_NXSetUnpackGeometry
  - X_NXSetUnpackColormap
  - X_NXSetUnpackAlpha
  - X_NXPutPackedImage

  Now each agent's client has its own record pointing to the
  geometry, colormap and alpha channel that will be used to
  unpack the image. Code is not finished yet so it is advisable
  that agents' writers keep using client id 0. Note also that
  the final solution will require some changes to the way split
  notifications are sent to agent that I plan to implement in
  the next versions.

- The X_NXSetUnpackGeometry request has now a message store.
  This should reduce the overhead to the minimum even in the
  case of dumb agents not checking if the current geometry
  matches the image to be unpacked.

nxcomp-1.3.0-30

- Improved handling of short-circuited replies at X client
  side. Request opcodes are now pushed in the sequence queue
  to determine if a reply is expected. In this case tainting
  of reply is skipped to preserve the sequence ordering of
  any event or error that could have generated by the reply.
  This seems to solve all the problems reported by people
  running a NX session in virtual desktop mode nested in an
  existing session being run in single application mode.

- Modified the cleanup procedure to print the 'Waiting for'
  message in the session log only at the time all X channels
  have been actually shut down. This message can be used by
  the NX server to find out the appropriate time to close
  the session.

- Added the selected session type to the 'Using pack method'
  message printed at startup.

- Added the option to close down the proxy link and perform
  a clean shutdown of the session, re-read the whole session
  configuration or restart the proxy link when a SIGHUP is
  delivered to the proxy process. The default behaviour is
  to close down the session. The new default (the old one was
  to restart the link) is a required feature to let users run
  full sessions using single application mode f.e. in a LTSP
  environment. I noted that when the controlling terminal of
  the X session is closed, a SIGHUP is delivered to the X
  server side proxy (probably it is delivered to all the con-
  nected clients, and, thus for NX, only to the proxy). This
  signal can be used to terminate the whole session.

nxcomp-1.3.0-29

- Changed defaults to disable image masks when running proxy
  in single application mode. The new configuration requires
  changes in NX server and in NX X11 library. Users should
  experience much better image quality when using NX on slow
  links. This comes at the cost of slightly worse compression
  ratios.

nxcomp-1.3.0-28

- Opcode of request was not rewritten by server channel when
  using link LAN. This caused problems with taint of replies.

nxcomp-1.3.0-27

- Modified the split store and the split procedures in client
  channel to always return the client id in the notification
  events. The new field is added to event at byte offset 28
  to preserve compatibility with previous agent releases. The
  modification permits to agent to match the commit of alpha
  channel with the original image, if requests are split by
  proxy.

- Temporarily set the timeout used to poll MIT-SHM completion
  events coming from X server to 0. More testing is required.

- Fixed an inconsistent message generated in statistics due to
  a division by 0.

nxcomp-1.3.0-26

- Modified pending timeout from 1 to 0 milliseconds. This means
  that both channels and proxy are now immediately restarted to
  let them consume all data left in their read buffer.

- When querying the X server for MIT-SHM support, size of name
  in X_QueryExtension request was sent as 32 bits instead of 16.
  This caused request to fail on big endian architectures.

- Modified the MIT-SHM initialization procedure to always send
  all the 3 protocol requests also in the case of early failures.

nxcomp-1.3.0-25

- Implemented handling of the new X_NXSetUnpackAlpha message.
  Performances are very satisfactory. Using most of the current
  GNOME and KDE applications, caching reaches 90% of the total
  messages.

- Modified the persistent cache management routines to handle
  backward compatibility with proxy versions prior of 1.3.0.

- It has been made possible to send both X_NXSetUnpackColormap
  and X_NXSetUnpackAlpha messages with 0 entries to temporarily
  disable use of the colormap or the alpha channel and free the
  resources allocated by the server channel class.

- Added function UnpackAlpha() to Unpack.cpp.

nxcomp-1.3.0-24

- Using WriteBuffer::registerPointer() to track growing of the
  write buffer in handleFastWrite() functions. This problem
  existed even in 1.2.2 but never shown up because we didn't
  have to use the pointer after data had been written to the
  write buffer. Now, instead, we have to post-process the write
  buffer to copy data to the shared segment.

- Optimized memory allocations running with link LAN to save a
  memcpy() any time new data is allocated in the scratch buffer.

- When running with link LAN the scratch buffer is now used only
  when:

  - A further allocation would case growing of the write buffer
    (and, thus, a memcpy() of the previous content).

  - When data to added is bigger than the write threshold.

  In previous versions the scratch buffer was used any time the 
  total amount of data to be written (write buffer + scratch
  buffer) exceeded the scheduled write threshold. This caused
  small writes to be appended even when a single write could
  be  obtained without reallocating the buffer.

- Preliminary support for transporting the alpha channel in a
  separate message in case of 32 bits displays using the RENDER
  extension.

nxcomp-1.3.0-23

- Modified the mask used to open the shared memory segment on
  OS/X to 0777. We have to better investigate why the previous
  0600 mask doesn't work even if the user running the proxy is
  the same user running the X server.

nxcomp-1.3.0-22

- Implemented MIT-SHM support on LAN connections.

- More MIT-SHM bug fixes.

nxcomp-1.3.0-21

- Better use of the shared segment through an improved
  algorythm leveraging the offset field of the X_ShmPutImage
  request. The new algorythm greatly reduces the amount of
  polls the proxy needs to perform to find if the completion
  event has arrived.

- Implemented MIT-SHM support for X_PutImage requests.

- Implemented option shmem=value. Use of this option is anyway
  discouraged. Proxy will allocate the shared memory segment
  based on the size of the in-memory cache set by the user.
  Use of MIT-SHM is disabled when user did set a memory cache
  smaller than 2MB (for example on the embedded client).

- Rewritten post-processing of images in server channel loop.

- Improved error handling to ensure we intercept all MIT-SHM
  X errors before they reach the NX agent.

- Solved a problem that was causing channels to not reflect
  shared memory support flags set in control.

nxcomp-1.3.0-20

- Solved a compatibility problem when mixing proxy versions
  1.2.2 and 1.3.0.

nxcomp-1.3.0-18

- Rewritten interfaces to shared memory initialization in
  client and server channel.

- Server channel checks for the completion event until a
  timeout before reusing the shared memory segment.

- Flush flag was not cleared after the write buffer had been
  flushed in handleWrite() of both client and server channels.
  This could lead to multiple fragmented writes, affecting
  the performances.

- Added -lcygipc to linking on Windows platform.

- Added a check on GCC version to see if -Wnested-externs
  -Wmissing-declarations are valid options.

nxcomp-1.3.0-17

- Implemented initial support for MIT-SHM extension in the
  network path between the X server proxy and the real X
  server. Presently it works only for X_NXPutPackedImages.

- Modified configure.in to compile under FreeBSD.

- Small changes to sources due to FreeBSD support.

nxcomp-1.3.0-16

- Fixed caching of RENDER extension on MacOS/X and Solaris.

- Under Solaris an explicit call to EnableSignal() is needed
  at the end of the signal handler as raising a signal seems
  to reset the previous settings.

- Can't find a way to get bytes queued for write on Solaris as
  both FIONWRITE and TIOCOUTQ don't seem to be available. This
  means that NX server on Solaris is only able to detect con-
  gestions on proxy link at the time a write fails with error
  EAGAIN.

- Starting from this version, render extension messages are not
  automatically discarded from cache when running agent based X
  sessions. This is in preparation of render support introduced
  in this release.

nxcomp-1.3.0-15

- Changed default to force writes if X channels exceed buffer
  limits. This change was suggested by benchmarks performed on
  Win32.

- Wrapped IO on cache files in functions performing better error
  checking.

- General cleanup in handling of socket options for MacOS/X and
  Solaris.

nxcomp-1.3.0-14

- Corrupted persistent caches were not deleted in case loading
  of any of the message stores failed. To run further sessions
  on the same host, user had to delete the cache file manually.

- Improved error handling in JPEG decompression. Now connection
  is reset in case of failure.

- Before performing JPEG or PNG decompression, image is better
  checked to verify if loading from disk failed.

- Improved error handling in case of failure loading persistent
  cache from disk. On MacOS/X istream -> fail() doesn't seem to
  work properly. This needs further investigation.

- The default installation path of nxclient is searched under
  MacOS/X at the time nxclient is invoked in dialog mode.

nxcomp-1.3.0-13

- Fixed a (further) compilation problem under Solaris. Now static
  libraries are first searched under /usr/sfw/lib (in case Sun
  would decide to include them in future releases).

nxcomp-1.3.0-12

- Fixed parsing of command line when passing option -V.

- Correctly detected ENOPROTOOPT when setting TCP_NODELAY socket
  option on MacOS/X and Solaris.

nxcomp-1.3.0-11

- Given option in configure to specify what needs to be built
  statically:

  --with-static-png     enable static linking of PNG library
  --with-static-jpeg    enable static linking of JPEG library
  --with-static-z       enable static linking of Z library

nxcomp-1.3.0-10

- Fixed a problem in saving of persistent cache on big-endian
  machines.

nxcomp-1.3.0-9

- Testing with different settings to check if it's possible to
  increase the performances under Windows.

- Solved a problem in parsing of options that prevented proxy
  to connect to a remote session running at port offset 0.

- Fixed two warnings compiling on Solaris.

- Changed configure.in to first check for nx-X11 includes
  and libraries. Added "/usr/openwin/bin/makedepend" to path
  searched for the executable.

nxcomp-1.3.0-8

- Small cleanup in configure.in and files modified by Gregorz
  Kryza to add support for Solaris.

- A new configure script has been generated using autoconf-2.57-3.

nxcomp-1.3.0-7

- Added support for detection of Solaris in configure script.
  Now Makefile.in uses ranlib instead of ar.

- Small changes in source and header files to support Solaris.

nxcomp-1.3.0-4

- Corrected a bug that could cause priority on proxy and channels 
  to be not taken in account at the time proxy tries to determine 
  if it's time to flush the proxy link.

- Better implementation of abort split notification by X server
  proxy to its remote peer. The new implementation doesn't
  need to set a timeout and permits notifications to be received
  earlier.

- Improved support for 'tainting' XSync() messages coming from 
  X clients in single application mode. Now a X_GetInputFocus
  is sent to the real X server any n such messages received by
  proxy. 

- Included support for 15 bpp displays. It seems that handling
  them as 16 bpp it's OK.
