aboutsummaryrefslogtreecommitdiff
path: root/nxcomp/CHANGELOG
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2016-07-05 10:40:11 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2016-07-05 10:40:41 +0200
commitb38f01092ab65f41fc0a525c46c874a228676f71 (patch)
tree930f1c045327181407529664a1bb975ffa84cde8 /nxcomp/CHANGELOG
parentd38ccd197413f6fad830c314d904904368d3770d (diff)
downloadnx-libs-b38f01092ab65f41fc0a525c46c874a228676f71.tar.gz
nx-libs-b38f01092ab65f41fc0a525c46c874a228676f71.tar.bz2
nx-libs-b38f01092ab65f41fc0a525c46c874a228676f71.zip
NoMachine documentation files: Move to doc/_attic_/ folder.
Diffstat (limited to 'nxcomp/CHANGELOG')
-rw-r--r--nxcomp/CHANGELOG3778
1 files changed, 0 insertions, 3778 deletions
diff --git a/nxcomp/CHANGELOG b/nxcomp/CHANGELOG
deleted file mode 100644
index b0323d4a7..000000000
--- a/nxcomp/CHANGELOG
+++ /dev/null
@@ -1,3778 +0,0 @@
-ChangeLog:
-
-nxcomp-3.5.0-2
-
-- Fixed TR11H02398. Solved a race condition when creating channels.
-
-nxcomp-3.5.0-1
-
-- Opened the 3.5.0 branch based on nxcomp-3.4.0-7.
-
-- Updated copyright to year 2011.
-
-nxcomp-3.4.0-7
-
-- Fixed TR03H02334. Modified the UNIX domain socket checks on MacOSX
- to be compliant with the standard introduced in OSX 10.6.3.
-
-nxcomp-3.4.0-6
-
-- Solved compilation problems on Solaris.
-
-nxcomp-3.4.0-5
-
-- Solved compilation problems on GCC 4.4.
-
-nxcomp-3.4.0-4
-
-- Added reference to fixed TR02H02325.
-
-nxcomp-3.4.0-3
-
-- Updated copyright to year 2010.
-
-nxcomp-3.4.0-2
-
-- Fixed TR03G02204. Changed the parsing of X authority entries in
- order to handle the case where the hostname includes white spaces.
-
-- Fixed TR02H02325. Bug in PNG decompression on 16bpp displays.
-
-nxcomp-3.4.0-1
-
-- Opened the 3.4.0 branch based on nxcomp-3.3.0-4.
-
-- Changed version number.
-
-- Updated copyright to year 2009.
-
-nxcomp-3.3.0-4
-
-- Check if the variable storing the ping time exceeded the maximum
- integer value.
-
-- Recover incorrect sequence number when the proxy is not connected
- to an agent.
-
-nxcomp-3.3.0-3
-
-- Removed a condition in ClientChannel that caused a loss in event
- sequence numbers.
-
-nxcomp-3.3.0-2
-
-- Updated VERSION.
-
-nxcomp-3.3.0-1
-
-- Opened the 3.3.0 branch based on nxcomp-3.2.0-7.
-
-nxcomp-3.2.0-7
-
-- Solved a compilation problem on GCC 4.3.
-
-nxcomp-3.2.0-6
-
-- Changes considering that unsetenv() returns void on Mac OS X.
-
-nxcomp-3.2.0-5
-
-- Fixed TR03F02024. Assume the launchd unix socket as X socket.
-
-- Changed the authorization cookie retrieval when using the launchd
- socket on MacOSX, in order to wait for the X server start.
-
-nxcomp-3.2.0-4
-
-- Fixed TR03F02026. Unset environment variable LD_LIBRARY_PATH before
- calling the exec function running nxclient.
-
-nxcomp-3.2.0-3
-
-- Fix addMsTimestamp() and subMsTimestamp(). Remove the check for
- a valid input in diffTimestamp() and diffUsTimestamp().
-
-nxcomp-3.2.0-2
-
-- Fixed TR12E01973. Now the correct number of bits are used for the
- number of points in a X_FillPoly request.
-
-nxcomp-3.2.0-1
-
-- Opened the 3.2.0 branch based on nxcomp-3.1.0-6.
-
-nxcomp-3.1.0-6
-
-- Always use a timeout of 50 ms to update the congestion counter.
-
-nxcomp-3.1.0-5
-
-- Solve the possible deadlock caused by both proxies running out of
- tokens at the same time.
-
-- In ServerProxy::handleCheckDrop() copy the list since the function
- can delete the elements.
-
-nxcomp-3.1.0-4
-
-- Classes ProxyReadBuffer and ServerReadBuffer returned an invalid
- number of characters to read in the case of a readable() failure.
-
-- Connections to proxy versions newer than 3.0.0 were not accepted.
-
-- Reading options from file could fail if options contained spaces
- or other characters interrupting the fscanf()'s matching of input.
-
-- The proxy link could not be flushed if a ping request was replied
- after the end of the read loop.
-
-nxcomp-3.1.0-3
-
-- Fixed a compilation warning on GCC 2.95.
-
-nxcomp-3.1.0-2
-
-- Solved TR09E01852. Modified the encoding of the number of rects
- in the XSetClipRectangles request.
-
-nxcomp-3.1.0-1
-
-- Opened the 3.1.0 branch based on nxcomp-3.0.0-46.
-
-nxcomp-3.0.0-46
-
-- Fixed TR09E01865 and TR08E01831. Assume the old behavior of compr-
- essing the CUPS, SMB, HTTP and Font channels when connected to an
- old proxy version.
-
-nxcomp-3.0.0-45
-
-- Retry the fork() 30 times, but only on Cygwin (Sob!).
-
-nxcomp-3.0.0-44
-
-- In the case of an error, try again to fork() after a second, for
- a maximum of 5 times. This seems to constitute a valid workaround
- to the intermittent fork() failures observed on Windows.
-
-- Fixed NXTransDestroy() to show the 'broken connection' dialog in
- the case of a link failure on the client.
-
-- Handled the 'terminating' and 'terminated' messages as new proxy
- stages.
-
-- Force all the directories and files created by the library to be
- readable only by the user.
-
-- Don't complain if the shared memory segment can't be initialized
- on Windows.
-
-nxcomp-3.0.0-43
-
-- Prevent the reallocation of the read buffer in the proxy and the
- agent transport if the buffer was borrowed by an upper layer.
-
-- Let the house-keeping process remove the cache directories that
- are empty and have not be used since more than 30 days.
-
-- Added the missing destruction of the ZLIB stream used for image
- decompression at proxy shutdown.
-
-nxcomp-3.0.0-42
-
-- In handleFastWriteReply(), moved the initialization of the 'next'
- pointer inside the '#ifndef __sun' block. This should fix the re-
- maining encoding problems on SPARCs.
-
-nxcomp-3.0.0-41
-
-- VMWare virtual machines can have the system timer deadly broken.
- In the case of timeout, try to send a ping regardless we are the
- client or the server proxy to force a write by the remote.
-
-- Removed the messages 'Info: Using image cache parameters...' and
- 'Info: Using image streaming parameters...' from the session log
- if the image cache is not enabled.
-
-nxcomp-3.0.0-40
-
-- Removed the messages 'Info: Shutting down the NX transport' and
- 'Info: End of NX transport requested by...' at the session tear
- down.
-
-- Removed the remaining log output.
-
-nxcomp-3.0.0-39
-
-- Don't reset the timer on proxy shutdown.
-
-nxcomp-3.0.0-38
-
-- Don't reinstall the signal handler if the signal was enabled and
- the NXTransSignal() action is NX_SIGNAL_FORWARD.
-
-nxcomp-3.0.0-37
-
-- Return a congestion level 9 if the agent channel is in congestion
- state.
-
-- Set the idle timeout (used to update the congestion state) based
- on the link type. The timeout is 0 ms with link LAN and 50 ms in
- the case of MODEM, with the other values in the between.
-
-nxcomp-3.0.0-36
-
-- Changed the encoding of the RenderCompositeGlyphs requests. Use
- a separate cache for X and Y. Send a single bit for offset X and
- offset Y if they match the source coordinates.
-
-- Always use the memcpy() in the handleFastWrite*() on Sun, as the
- alternative code doesn't work on SPARC if the buffer is not word
- aligned.
-
-nxcomp-3.0.0-35
-
-- Ensure a smooth transition between different congestion states.
- If the current congestion counter is greater than the previous,
- ramp up the value quickly by taking the current counter. If the
- new congestion counter is less than the previous, ramp down the
- reported value slowly by calculating the average of the last 8
- updates. Reset the congestion counter to 0 if no token reply is
- pending and the proxy is idle until a timeout.
-
-nxcomp-3.0.0-34
-
-- Calculate the current congestion as the average of the last 3
- frames sent.
-
-nxcomp-3.0.0-33
-
-- When sending a X_RenderCompositeGlyph update, send a single bit
- if the source X and Y match the values in cache.
-
-- Save the check on the bytes readable from the proxy descriptor
- after the select.
-
-nxcomp-3.0.0-32
-
-- Send the X_GetImage replies uncompressed to better leverage the
- stream compression.
-
-- Before entering in congestion state, force a read to see whether
- the remote proxy aborted the connection.
-
-nxcomp-3.0.0-31
-
-- Try to avoid using memcpy() in the channels' handleFastWrite*().
-
-- Changed the copyright notices at the beginning of the files that
- were referring to NXPROXY to refer to NXCOMP.
-
-nxcomp-3.0.0-30
-
-- Set the agent and proxy descriptors as ready, when appropriate,
- also in the case of an interrupt.
-
-nxcomp-3.0.0-29
-
-- On the X server side, read more events from the X server just be-
- fore and just after having written some data. On the X client si-
- de, apply the same to the proxy link.
-
-- X11 channels originate a congestion control code as soon as the-
- re is some data left from the previous write.
-
-nxcomp-3.0.0-28
-
-- Displaced automatically the "channel unresponsive" and "no data
- received from remote" dialogs if the error condition is ceased.
-
-- Rewritten the channel drain procedure.
-
-- Tried a different approach to the channel congestion handling.
- The X11 channels are not drained after a blocking write but only
- if a further write is requested and the channel is still in con-
- gestion state. Benchmarks show that this is still sub-optimal,
- compared to sending the congestion code immediately also for X11
- channels. See the next version.
-
-nxcomp-3.0.0-27
-
-- Ignored the agent option 'defer'.
-
-- Dropped support for the 1.4.0 versions.
-
-- More fixes to support the 1.5.0.
-
-nxcomp-3.0.0-26
-
-- The channel read buffer can inherit the data to be encoded from
- the caller, instead of taking it from the transport. This is le-
- veraged by the agent channel to save the copy.
-
-- Ignored the agent option 'clients'.
-
-- Removed the deprecated code checking the CPU limits.
-
-- Removed the counters that were duplicated in the Statistics and
- the Control classes.
-
-nxcomp-3.0.0-25
-
-- Improved the effectiveness of the caching of the RenderComposite-
- Glyphs by using a differential encoding for the length, delta x
- and delta y of the first string.
-
-- Better handle the compatibility between different formats of the
- cache files.
-
-nxcomp-3.0.0-24
-
-- Fixed the compatibility problem with the 1.5.0 versions.
-
-- Removed the constants NXDisplayReadable, NXDisplayFlushable and
- NXDisplayCongestion. Now nxcompext has three distinct functions.
-
-nxcomp-3.0.0-23
-
-- Removed support for Rdp, Tight and Hextile packed images decod-
- ing since they have been made obsolete by the new NX server.
-
-- Use the value 0 for the action is_hit and 1 for is_added. This
- increases the frequency of zeroes in the encode buffer, giving
- better compression.
-
-- Changed the copyright attribution from Medialogic to NoMachine.
-
-nxcomp-3.0.0-22
-
-- Implemented an alternate encoding reducing the size of the int
- caches to 16 elements and transmitting the values in blocks of
- 4 bits. Although this encoding reduces the effectiveness of
- the differential compression, it allows better compression of
- the final stream, resulting in a 10% to 20% gain in all condi-
- tions. The new encoding is experimental, as it would make the
- 3.0.0 incompatible with all the previous NX versions. Use this
- package as a reference for future implementations.
-
-nxcomp-3.0.0-21
-
-- Encode the first two coordinates of a FillPoly message by using
- a differential encoding, thus the origin of the polygon is not
- included in the checksum. This is aimed to work in combination
- with the agent converting all the FillPoly requests to the rela-
- tive coordinate mode.
-
-- Add the coordinate mode to the checksum of the PolyPoint and Po-
- lyLine messages so that it doesn't need to be encoded separately.
-
-- Disable the streaming for all messages. This saves the encoding
- of a boolean for each message that could potentially be streamed.
-
-- Don't try to match the block size when encoding a value based on
- an IntCache. This saves the additional bool in 90% of the cases.
-
-- Removed support for the former RDP and RFB session types.
-
-- Due to the above changes, this version is incompatible with the
- previous 3.0.0 releases.
-
-nxcomp-3.0.0-20
-
-- Added support for the 'lossy', 'lossless' and 'adaptive' pack me-
- thod literals. These values activate the dynamic selection of the
- pack method by the agent.
-
-- Made the 'adaptive' pack method the default for all link types.
-
-- The default stream compression level is now 6 for link type ISDN,
- 4 for ADSL and 1 for WAN. The default data compression level is
- always 1, except for LAN that is 0.
-
-nxcomp-3.0.0-19
-
-- Print in the session log the X11 display that the proxy is imper-
- sonating or where it is forwarding the connections.
-
-nxcomp-3.0.0-18
-
-- Implemented decoding of the PACK_BITMAP_16M_COLORS pack method.
- This is a very simple encoder removing the 4th byte in 32 bits-
- per-plane images. This encoder is intended to better leverage
- the stream compression on low bandwidth links.
-
-- Removed the code cleaning the padding bytes in RenderAddGlyphs
- and RenderCompositeGlyphs as the operation is now performed in
- Xrender.
-
-- Removed the "Info: Synchronizing local and remote caches." and
- "Info: Using remote server '...'." lines from the session log.
-
-nxcomp-3.0.0-17
-
-- Determine the CPU endianess at compile time only on Linux and
- Cygwin.
-
-nxcomp-3.0.0-16
-
-- Optimized the memory allocation of the ReadBuffer classes. The
- buffers from the Transport classes are used, when possible, to
- avoid the copy.
-
-nxcomp-3.0.0-15
-
-- Reworked the code dealing with the channel congestion control
- messages for increased efficiency.
-
-- Removed the pending_ flag from the proxy and channel class mem-
- bers. If needed, the classes will query the transport buffers
- to see whether there is data pending.
-
-- Removed the additional parameter from NXTransFlush().
-
-- The proxy doesn't issue anymore a sync control message on a X
- reply. Anyway it will respond to the request for compatibility
- with older versions.
-
-- Removed the dynamic selection of the encoding method for the
- X_QueryColors request and X_ListFonts, X_QueryColors, X_Query-
- Font replies. Now all of them use the differential encoding to
- better leverage the stream compression.
-
-- Fixed to build on SUNs where we don't have endian.h.
-
-nxcomp-3.0.0-14
-
-- When handling partial proxy messages, don't try to determine how
- many bytes still need to be read if the ZLIB stream compression
- is enabled.
-
-- If a message can't be located, the ReadBuffer class checks if it
- is possible to consume the data already in the transport buffer.
-
-- Optimize the MD5 routines by determining the CPU endianess at
- compile time.
-
-- Force Drawable and GContext to be CARD32 in NXproto.h.
-
-nxcomp-3.0.0-13
-
-- Changed the semantic of the NXDisplayFlushHandler callback. The
- function is called when new data is sent to the remote proxy or,
- with a 0 length, upon receiving a new token reply, so that the
- agent can update its congestion state.
-
-- Added the NXTransCongestion() function. It returns a value bet-
- ween 0 and 9 indicating the congestion level based on the tokens
- remaining. A value of 9 means that the link is congested and no
- further data can be sent.
-
-- Removed the congestion and synchronization callbacks. They are
- superseded by the new NXTransCongestion() implementation.
-
-nxcomp-3.0.0-12
-
-- Send the token replies at the end of the encode loop instead of
- flushing the buffer immediately.
-
-- Fixed TR05E01687. Correctly detect CTRL-ALT-SHIFT-ESC keystrokes.
-
-- Renamed the option 'block' as 'tile'.
-
-- Ignored the option 'menu', targeting the X11 agent.
-
-nxcomp-3.0.0-11
-
-- Removed the 'interactive' attribute from generic channels. We now
- use the 'prioritized' attribute which yields the same result.
-
-- Simplified the channels' read loop by always reading only once.
-
-- The channels flush the link as soon as the token is exceeded even
- if the flush policy is set to deferred.
-
-- Reserved more cache memory for the images when running a shadow
- session.
-
-nxcomp-3.0.0-10
-
-- Added the NXDisplayWriteHandler callback definition.
-
-- Removed the code that forced the proxy to retain in the cache the
- images referenced at session startup.
-
-- Disabled the persistent image cache since this is not supported
- by the current agent. This will save the overhead caused by the
- image house-keeping process.
-
-nxcomp-3.0.0-9
-
-- Fixed a cast problem in GetBytesReadable().
-
-nxcomp-3.0.0-8
-
-- Added the NXTransTime() utility. It return the time in milliseconds
- elapsed since the last call to the same function. Useful for bench-
- marking the Xlib layer.
-
-- Ignored the option 'block' targeting the X11 agent.
-
-nxcomp-3.0.0-7
-
-- Ignored the options 'shadow', 'shadowmode' targeting the X11 agent.
-
-- Added the session type 'shadow'.
-
-nxcomp-3.0.0-6
-
-- Fixed TR08D01484. Fixed a bug in the cleanup of the RenderAddGlyphs
- messages. We clean up only the glyphs with depth 8, width greater
- than 1 and pixmap byte pad 4.
-
-- Added file COPYING.
-
-nxcomp-3.0.0-5
-
-- Updated the copyright notices to the current year.
-
-nxcomp-3.0.0-4
-
-- Imported changes up to nxcomp-2.1.0-6.
-
-- Fixed TR12D01563. Changed the configure script to always build the
- library with the -fPIC option. This is related to the way SELinux
- works.
-
-- Fixed the dependency from local endianess for 16-bit color RDP un-
- packing functions. This caused wrong colors to be displayed when the
- proxy and the X server were running on two separate machines having
- different endianess.
-
-- Fixed TR10D01523. The Channel::handleDrain() method now accounts
- for the fact that agent connections can't be drained.
-
-- Changed the Tight and Hextile decoding functions to use the X ser-
- ver's byte order.
-
-nxcomp-3.0.0-3
-
-- Changed the main loop to handle the 3.0.0 version.
-
-nxcomp-3.0.0-2
-
-- Updated the file VERSION.
-
-nxcomp-3.0.0-1
-
-- Opened the 3.0.0 branch based on nxcomp-2.0.0-81.
-
-nxcomp-2.0.0-81
-
-- Fixed the dependency from local endianess for JPEG and PNG decomp-
- ression functions. This caused wrong colors to be displayed when
- the proxy and the X server were running on two separate machines
- having different endianess.
-
-- Fixed the number of entries in the handleColormap() function.
-
-nxcomp-2.0.0-80
-
-- Fixed TR06D01404. Removed the warning issued when calling the
- AgentTransport::drain() method.
-
-nxcomp-2.0.0-79
-
-- Updated copyright to year 2006.
-
-nxcomp-2.0.0-78
-
-- Fixed a bug in the cleanup of the RenderAddGlyphs messages.
-
-- Minor improvements to the encoding of the RenderCompositeGlyphs
- and RenderComposite requests.
-
-- Added 'client' to the list of the ignored options.
-
-nxcomp-2.0.0-77
-
-- Added cleanup of the padding bytes in the RenderCompositeGlyphs
- and RenderAddGlyphs requests.
-
-nxcomp-2.0.0-76
-
-- Before adding the frame's bytes to the tokens, the frame length
- is normalized based on the stream compression ratio of the last
- frame sent. This avoids entering the drain loop too early when
- the data is highly compressible.
-
-- Moved the render messages' private data in a union to reduce the
- footprint of the render store.
-
-nxcomp-2.0.0-75
-
-- The action performed on the remote message store and the affected
- position are encoded as a single value. This saves approximately
- 1 bit per each message.
-
-- Created more Compat classes to handle the backward compatibility
- with the 1.4.0 and 1.5.0 versions.
-
-nxcomp-2.0.0-74
-
-- Added support for the RLE pack method and made it the default if
- the selected link type is LAN.
-
-- Removed the legacy support for the 'render' option provided at X
- server side.
-
-- When defining LAME in ClientChannel.h, the channel has the chance
- of suppressing more opcodes by the handleTaintLameRequest() call.
- This is for test purposes.
-
-nxcomp-2.0.0-73
-
-- The X_NXSetUnpackColormap and X_NXSetUnpackAlpha now carry their
- data in compressed form. The alpha data is compressed using the
- ZLIB RLE encoding, while the colormap data is compressed using
- the default ZLIB deflate.
-
-- Thanks to the above changes, ZLIB data compression of all messa-
- ges which do not have a specific encoding is turned off, so that
- we can make better use of the final stream compression.
-
-- Created new message structures to handle the compatibility with
- the old proxy versions. When connected to an old proxy version
- the agent should use the NXSetUnpackColormapCompat() and NXSet-
- UnpackAlpha() interfaces.
-
-nxcomp-2.0.0-72
-
-- Solved a compatibility problem with the 1.X.X versions due to the
- new render encodings.
-
-nxcomp-2.0.0-71
-
-- Improvements to X_RenderSetPictureClipRectangles.
-
-- Fixed handleUnpack() to pass the correct byte order parameter to
- to the unpack alpha function.
-
-- Added the --parent parameter to the client even in pulldown mode.
-
-- Fixed a deallocation bug in StaticCompressor.
-
-nxcomp-2.0.0-70
-
-- Added compression of X_RenderSetPictureFilter, X_RenderSetPicture-
- Transform, X_RenderTrapezoids and X_RenderTriangles.
-
-nxcomp-2.0.0-69
-
-- Changed the format of the persistent cache to accommodate the new
- encoding of the render opcodes. Caches from the 1.4.0 and 1.5.0
- should be still loaded and saved correctly when connected to and
- old version of the library.
-
-- Improved the encoding of the X_CreatePixmap, X_ChangeGC, X_Render-
- CompositeGlyphs, X_RenderComposite, X_RenderCreateGlyphSet, X_Rend-
- erFreePicture and X_RenderCreatePicture messages. Added new classes
- to handle the backward compatibility.
-
-- Made the static compression and decompression code reside in the
- same class.
-
-nxcomp-2.0.0-68
-
-- Improved the encoding of the X_RenderCreateGlyphSet and X_Render-
- FreeGlyphSet requests.
-
-nxcomp-2.0.0-67
-
-- Modified the following session messages:
-
- From: "Session: Session starting at..."
- To: "Session: Starting session at..."
-
- From: "Session: Session terminating at..."
- To: "Session: Terminating session at..."
-
-- Improved the encoding of the requests creating or freeing an XID.
- This affects X_CreateGC, X_CreateWindow, X_CreatePixmap, X_Render-
- CreatePicture, X_FreeGC, X_DestroyWindow, X_FreePixmap, X_Render-
- FreePicture.
-
-- Added 'streaming' and 'backingstore' to the list of options used
- by agents.
-
-- Modified the info messages to print the ZLIB compression paramet-
- ers to be more compact and only use two lines.
-
-nxcomp-2.0.0-66
-
-- When part of an agent, the proxy will wait for the NXTransDestroy()
- function to initiate the shutdown.
-
-nxcomp-2.0.0-65
-
-- Starting from this version the NX client can control the behaviour
- of the client proxy by monitoring the messages marked as "Session".
-
- At the early initialization the proxy will print:
-
- "Session: Session starting at '...'.
-
- The ellipsis here represent the current timestamp, as reported by
- the POSIX function ctime():
-
- Once the session is running, the proxy will print:
-
- "Session: Session started at '...'.
-
- At the time the session is being shut down, the proxy will print:
-
- "Session: Session terminating at '...'.
-
- Followed by:
-
- Session: Session terminated at '...'.
-
- The message "Info: Starting X protocol compression." is removed,
- replaced by the message 'Session started at...' with the same
- meaning.
-
- Once the message 'Session: Session terminated at..." is read from
- the output, the client can optionally wait for the proxy process
- to complete and terminate with an exit code 0.
-
-- The "Session" messages are not printed when the proxy is running
- on the NX server side, as part of an agent.
-
-nxcomp-2.0.0-64
-
-- Reduced the default token limit from 32 to 24. The synchronizat-
- ion callback is triggered by the tokens going below half the li-
- mit.
-
-nxcomp-2.0.0-63
-
-- Added -I/usr/include/c++ to makedepend.
-
-nxcomp-2.0.0-62
-
-- The house-keeping process is now started upon the initialization,
- if the memory cache is enabled, and, on the X server side, when
- the remote actually requested access to the image cache.
-
-nxcomp-2.0.0-61
-
-- Added a NX_HANDLER_SYNCHRONIZATION callback to NXTransHandler().
- The handler is called when the agent can use the available band-
- width to synchronize X objects that are corrupted or incomplete.
-
- The reason can be:
-
- NX_SYNCHRONIZATION_BEGIN: The synchronizationis is allowed.
-
- NX_SYNCHRONIZATION_END: The synchronizationis must stop.
-
- The reason can be determined by agents by using the NXBeginSynch-
- ronization and NXEndSynchronization values defined in NXvars.h.
-
-- Bytes from 14 to 24 in the X_NXGetControlParameters reply report,
- respectively, the frame timeout, the ping timeout, the preferred
- image split mode and the split size threshold.
-
-nxcomp-2.0.0-60
-
-- The following messages used by the NX client and server have been
- changed. The NX client and server should be modified accordingly.
-
- From: "Info: Shutting down the link and exiting."
- To: "Info: Shutting down the NX transport."
-
- From: "Info: End of session requested by remote proxy."
- To: "Info: End of NX transport requested by remote"
-
- From: "Info: End of session requested by agent termination."
- To: "Info: End of NX transport requested by agent."
-
- From: "Info: End of session requested by signal '...'."
- To: "Info: End of NX transport requested by signal '...'."
-
- From: "Info: Shutting down the link and exiting."
- To: "Info: Shutting down the NX transport."
-
- From: "Info: Waiting for cleanup timeout to complete."
- To: "Info: Waiting the cleanup timeout to complete."
-
- From: "Info: Waiting for watchdog process to complete."
- To: "Info: Waiting the watchdog process to complete."
-
-nxcomp-2.0.0-59
-
-- Added more debug information regarding the timing of packets sent
- and received.
-
-- Added the possibility to redirect the log output to a file that can
- be later shared with nxssh running in "binder" mode. This is useful
- when testing the forwarding of the SSHD connection by nxssh to the
- agent. Activated by defining BINDER in Loop.cpp.
-
-nxcomp-2.0.0-58
-
-- Fixed the unpack alpha procedure to only rely on the image's byte
- order.
-
-- Solved the X_PutImage encoding problem introduced in the 2.0.0-56
- version and restored the compatibility with the 1.5.0 version.
-
-nxcomp-2.0.0-57
-
-- Added a NXTransFile() function. It returns the name of the files
- used by the proxy for the current session.
-
- The type parameter can be:
-
- NX_FILE_SESSION: Usually the file 'session' in the user's session
- directory.
-
- NX_FILE_ERRORS: The file used for the diagnostic output. Usually
- the file 'errors' in the session directory.
-
- NX_FILE_OPTIONS: The file containing the NX options, if any.
-
- NX_FILE_STATS: The file used for the statistics output.
-
- The returned string is allocated in static memory. The caller must
- copy the string upon returning from the function, without freeing
- the pointer.
-
-- Fixed the PANIC in the handling of the abort split messages.
-
-- The encode and decode routines may write one byte past the nominal
- end of the encode buffer. This additional byte is now included in
- the payload. This is actually a bug, but harmless.
-
-nxcomp-2.0.0-56
-
-- Added the X_NXAbortSplit request. It can be used to interrupt the
- streaming of all the messages currently in the split store for
- the specified resource. Depending if the split store did or did
- not contain split messages, the client will receive an immediate
- end-split or no-split notification.
-
-- Removed the split modes NXSplitModeEager and NXSplitModeLazy. The
- available modes are now NXSplitModeSync and NXSplitModeAsync. The
- mode NXSplitModeAsync replaces the two old modes and is now the
- default. Similarly to NXSplitModeEager, it makes the proxy split
- only messages that exceed a size threshold, but the threshold is
- generally smaller than in the previous versions.
-
- #define NXSplitModeDefault 0
- #define NXSplitModeAsync 1
- #define NXSplitModeSync 2
-
-- Renamed X_NXSplit to X_NXSplitData, X_NXAbortSplit to X_NXSplitEv-
- ent.
-
-- The proxy now enters a drain loop, when in congestion state, and
- waits until the decongestion. Also the X channels are drained if
- blocked.
-
-- The select is restarted immediately if only the proxy is selected
- and the data read doesn't make a complete message.
-
-- The size of the shared memory segment used by the X server proxy
- is now negotiated at startup and the selected value is printed in
- the session log.
-
-- Added the option 'encrypted'. It tells the local proxy if it is
- running as part of a program providing encryption of the point to
- point communication. This is useful to determine if the proxy can
- block waiting for data or needs to yield to the client to let it
- handle the remote connection.
-
-nxcomp-2.0.0-55
-
-- Fixed handleRestart() to correctly send the end-split event only
- after the split sequence has been closed by the client.
-
-- Fixed a possible memory error in the Keeper class occurring if the
- image caches were erased while in the middle of a loop.
-
-nxcomp-2.0.0-54
-
-- Added a '--parent' option when running the client in dialog mode.
- This is the process id that needs to be signaled in the case the
- user chooses to do so.
-
-nxcomp-2.0.0-53
-
-- Solved a bug in the abort split procedure. The procedure assumed
- that the split had to be at the head of the list. This may not be
- the case if the split was loaded from disk asynchronously, after
- a different split with the same checksum was recomposed.
-
-- By defining STRICT in Loop.cpp, the number of available tokens is
- set to 1. This can be used to trigger the congestion more often
- than it would possible when testing the software with the default
- settings.
-
-- Added more debug output to the procedures handling the streaming
- of the images.
-
-- Reset the channel's split pending and congestion flags in the fin-
- ish procedure. Not doing so caused some additional loops at chan-
- nel shutdown.
-
-- Fixed a bug on Cygwin that prevented the log files to be succes-
- sfully reopened when the size limit was exceeded.
-
-- Failures to write to the agent transport are reported sooner when
- the channel is finished. This saves a few more loops at session
- shutdown.
-
-nxcomp-2.0.0-52
-
-- Started implementing a new handler to let the agent include arbit-
- rary data in the transport statistics. The parameter, in this case,
- is a pointer to a pointer to a null terminated string. The pointer
- is set at the time the handler is registered. The pointed string
- will have to be filled by the agent with its statistics data. For
- now, only the interfaces and the stubs exist.
-
-- Disabled the timestamp cache as it still causes rounding problems
- when calculating the current bitrate.
-
-nxcomp-2.0.0-51
-
-- Removed SelectPackMethod(), not used anymore, from Pack.c.
-
-nxcomp-2.0.0-50
-
-- Added the X_NXFinishSplit request. It forces the proxy to comple-
- tely transfer all the split messages for the given resource, and
- then notify the agent.
-
-- Fixed the statistics to not account the split bits to the control
- token.
-
-nxcomp-2.0.0-49
-
-- Fixed a bug that caused the split timeout to be reset even if a
- different channel had splits to send.
-
-- Removed an error condition that arose when a split operation was
- requested by a different channel than the first to connect. The
- reason is that an auxiliary channel (like the one created by the
- server to store the keyboard configuration) can be the first to
- open a connection to the X server, then can come the agent, that
- is actually using the NX opcodes. The proxy will now simply print
- a debug message.
-
-- Removed a further error condition that was assumed by the proxy
- if a pending flush was detected while no channel was selected for
- output. This can actually happen if the channel was dropped and,
- in the meanwhile, the user requested the proxy statistics.
-
-nxcomp-2.0.0-48
-
-- Added a 'type' parameter to NXTransFlush(). The new NX_FLUSH_IDLE
- type should be used by agents when they have finished handling all
- their clients and are going to wait for more input. This is the
- case, for example, of the X agent returning from WaitForSomething()
- after having set a small timeout to find out if there are clients
- ready, or the case of a RDP agent finding that there are no opcodes
- to read from the RDP server. The 'idle' flush should be requested
- also when the X11 agent is waiting for a split to complete. When
- the flag is used, the proxy uses the available bandwidth to encode
- more low-priority data, like the payload of images being streamed.
-
-nxcomp-2.0.0-47
-
-- Added a new RGB image encoder. For now the encoder uses a static
- Z stream to compress the image data in the destination buffer and
- allows the agent to use the simplest encoding by still separating
- the alpha channel from the image data. The new encoder can be the
- the base for implementing color reduction by dithering or a color-
- mapped translation of the image similar to PNG, but without the
- PNG overhead and with the colormap being sent to the client using
- the NXSetUnpackColormap() opcode.
-
-- Put the routines implementing static deflating and inflating of
- a ZLIB buffer from the Compressor and Decompressor classes to Z.h
- and Z.cpp, so that they can be reused by the new RGB encoder.
-
-nxcomp-2.0.0-46
-
-- Fixed a segfault arising when trying to start a child without the
- NX transport.
-
-nxcomp-2.0.0-45
-
-- Undefined the MATCH directive.
-
-nxcomp-2.0.0-44
-
-- Changed the encoding of the X_CreatePixmap, X_CreateGC, X_Render-
- CreatePicture, X_CreateWindow, RenderCreateGlyphSet.cpp. The Xid
- of the drawable is included in the checksum of the X_CreateGC and
- X_CreatePixmap message. This leverages the way GC and Pixmaps are
- allocated in the X agent to obtain better compression.
-
-- Removed the code handling the reset of the proxy connection. This
- functionality was unused since when the persistence is handled by
- the agent.
-
-- Added a specific section in the statistics output for the render
- extension.
-
-nxcomp-2.0.0-43
-
-- Fixed a bug that could have caused the sending of multiple 'end
- split' messages for the same split sequence.
-
-- Added handling of the option 'strict'.
-
-nxcomp-2.0.0-42
-
-- Added a missing channel switch directive when encoding abort split
- messages at the server side. This could cause a decoding error on
- the client.
-
-nxcomp-2.0.0-41
-
-- Ensured that the link is flushed immediately on the X server side
- when important keyboard or mouse activity is detected in input.
-
-- Implemented a timestamp cache to avoid calling gettimeofday() when
- it is enough to use the last timestamp gotten from the system. The
- cache can be disabled by undefining CACHE_TIMESTAMP in Timestamp.h.
-
-nxcomp-2.0.0-40
-
-- Added the karma delay field to the X_NXGetControlParameters reply.
-
-- Solved a bug with the decoding of split messages likely to happen
- only when using link type LAN.
-
-nxcomp-2.0.0-39
-
-- Implemented separate flow control for the generic channels and the
- image streaming data.
-
-- Improved the split procedure to load a message from the disk cache
- if found after it was originally discarded because locked.
-
-nxcomp-2.0.0-38
-
-- Renamed the 'shmem' option as 'shseg'. The 'shmem' option becomes
- specific to the agent and will be used together with 'shpix' option
- to indicate if, respectively, the shared memory extension and the
- use of the shared pixmaps must be enabled in the agent server. The
- new option will be instead used by the proxy to determine the size
- of the memory segment shared between the proxy and the X server.
-
-- Added the 'shmem', 'shpix', 'keyboard' and 'clipboard' to the list
- of ignored options. The 'keyboard' option should become a synonym
- of 'kbtype'. The 'clipboard' option will tell the NX agent if the
- clipboard support should be disabled for security reasons.
-
-nxcomp-2.0.0-37
-
-- Ensured that, when running a raw session, the persistent cache is
- loaded and saved only once in the session lifetime.
-
-- Added the 'product' keyword to the list of recognized options. The
- option is ignored by the proxy, but can be used by the client or
- server to facilitate the support.
-
-nxcomp-2.0.0-36
-
-- Added the remote version number in the X_NXGetControlParameters
- reply.
-
-- Solved a bug related to the removal of the split stores.
-
-- Removed the unused code dealing with the flush timeouts.
-
-nxcomp-2.0.0-35
-
-- Added an alert to notify the user about the failure of the XDMCP
- session.
-
-nxcomp-2.0.0-34
-
-- The active channels and the agent resources are now stored in a
- list container.
-
-- Added the X_NXFreeSplit request. The request is currently unused
- because the split store is freed automatically when it becomes
- empty, but can be useful in future if we want to implement other
- otpimizations.
-
-nxcomp-2.0.0-33
-
-- There is now a split store for each agent resource. This allows
- the proxy to divide the bandwidth among the agent resources.
-
-- A simple round-robin load-balancing is implemented, dividing the
- bandwidth equally among all the split stores.
-
-- If there is a previous request being streamed for the same res-
- ource, cached messages are appended to the split store and then
- committed in the original order. This makes possible to stream
- the colormap and the alpha channel data even if the split invol-
- ves multiple PutImage or PutPackedImage operations in a single
- start-split/end-split sequence.
-
-- Implemented the commit store class. Made the commit store expand
- the message in the final buffer, instead of leveraging the mes-
- sage store.
-
-- Channels having a drop command pending are checked before trying
- to load or save the cache. This prevents a potential problem with
- the protocol violation error that could be reported by the client
- side proxy.
-
-- The current bitrate is now calculated at the time the transport
- actually writes the data to the network, not at the time the data
- is appended to the transport by the upper layers. The reason is
- that the data can be compressed by the stream compressor and so
- we can calculate the real bitrate only after having flushed the
- ZLIB stream. This fixes the wrong numbers that could be reported
- by the statistics in the previous versions.
-
-nxcomp-2.0.0-32
-
-- More progress in the implementation of the new image streaming.
- This version has been tested to work when connecting to an 1.5.0
- server. Due to the significant changes in the way the streaming
- works in the newer versions, split is never activated by a 2.0.0
- server connecting to a 1.5.0 client.
-
-- Fixed the NXTransClose() function to check if the fd matches the
- NX agent connection.
-
-- Fixed the includes in Socket.h to compile on Solaris and MacOSX.
-
-nxcomp-2.0.0-31
-
-- Changed the NX transport functions that didn't require a NX fd
- parameter to include one. The value can be NX_FD_ANY to signify
- any running NX transport.
-
-nxcomp-2.0.0-30
-
-- More progress in the new implementation of image streaming.
-
-- This version is apparently compatible with the 1.5.0 client but
- needs further testing.
-
-nxcomp-2.0.0-29
-
-- Implemented the NXTransHandler() interface and made the proxy
- use the callback, when it is installed, instead of the notifi-
- cation events.
-
-- Modified the agent transport to report an EOF condition as soon
- as the channel is dropped, instead of reporting the error only
- after the proxy shutdown. This allows the agent to handle its
- clients while the proxy is handling the grace timeout.
-
-- Added a test facility to verify if the client and server caches
- match at shutdown.
-
-- More advances in the new implementation of streaming.
-
-nxcomp-2.0.0-28
-
-- Made the session shutdown faster, normally below 1 second. The
- grace time is now 500 ms once all channels have been dropped.
-
-nxcomp-2.0.0-27
-
-- The house-keeping process will now run a number of iterations
- (currently 100) and then will exit. The proxy will check the
- exit code and, if it was requested by the child, will restart
- it. This is intended to keep the memory consumption low, as I
- noted that after a big number of iterations the performance of
- the allocator start to degrade quickly.
-
-nxcomp-2.0.0-26
-
-- Started implementing the NXTransHandler() interface to let the X
- application hook a callback and be notified by the proxy when an
- event occurs. At the moment only congestion events are supported.
- The interface makes possible for the caller to provide a generic
- parameter. This parameter is passed back to the handler function.
- The parameter is expected to be the Xlib display pointer, given
- that the proxy doesn't have access to the Xlib structures.
-
-- Moved all the internal variables shared between Xlib, nxcompext
- and the X server in nxcomp. Declarations and function prototypes
- moved to NXvars.h.
-
-- Removed the NXGetCleanupParameters() and NXGetImageParameters()
- interfaces and the remaining references to the unused display
- buffer and image cleanup functions.
-
-- In this version the images streaming functionality is disabled.
- Because of that, expect compatibility problems when connecting
- to a different nxcomp version.
-
-nxcomp-2.0.0-25
-
-- Forced the end of the session earlier if a shutdown has been re-
- quested by the local side but the remote proxy is not responding.
-
-nxcomp-2.0.0-24
-
-- Changed the loop deleting the file items in Keeper to pick the
- first element instead of looping through the iterator.
-
-- More problems with the libstdc++ allocators. During the tests, I
- found that the Keeper class can leak industrial amounts of memory.
- Valgrind says that the objects that are not freed are the File
- items we allocate in collect(). As this looked suspicious, I log-
- ged the constructors and destructors and can say that everything
- is OK on our side. Unfortunately, by removing the spleeps used
- to let the program work silently in background, one can find that
- the memory occupation still grows by a MB every few seconds. This
- is less a problem on Windows, where the memory occupation remains
- almost constant. See the comment on __USE_MALLOC below.
-
-- Increased the maximum size of a message that the proxy is allo-
- wed to cache to 4MB. This makes possible to cache many replies
- (like the X_QueryFont replies) that often exceeded the previous
- limit.
-
-nxcomp-2.0.0-23
-
-- Fixed a compatibility problem with the 1.5.0 that arose when
- encoding an image with caching and streaming temporarily disa-
- bled.
-
-- Removed the __USE_MALLOC define in Types.h because this is what
- the g++ developers want. I'll try to avoid flames and will not
- comment on this.
-
-- Added a --with-use-malloc configure option. This option should
- be used when building the release packages on GCC versions that
- support it.
-
-- Started fixing the commit procedure to be able to deal with the
- alpha channel.
-
-nxcomp-2.0.0-22
-
-- Prevented channels from being dropped while in the middle of a
- read loop.
-
-- Added a small utility ensuring that the SIGCHLD we receive in
- the main loop can be always identified as pertaining to an our
- child.
-
-- Increased the space available for the control messages at the
- beginning of the encode buffer and ensured that there is always
- enough space for adding a token message, in the case this is
- required by the flush procedure.
-
-- Made all cache files readable only by the user.
-
-nxcomp-2.0.0-21
-
-- Solved a bug in the streaming of images that caused the agent's
- clients to never resume when connected to an old proxy version.
-
-nxcomp-2.0.0-20
-
-- Disabled again streaming of the alpha channel data. By enabling
- it, the agent randomly fails to repaint the exposed regions. The
- reason is to be investigated.
-
-nxcomp-2.0.0-19
-
-- Implemented the split mode NXSplitModeSync. When this mode is
- selected, the proxy will not send data for the split at the head
- of the list until the remote peer has confirmed that the message
- is not available in the image cache. This is going to be useful
- in combination with the lazy encoding.
-
-- Improved the error detection in the case of failure when saving
- a recomposed split on disk.
-
-- Added X_NXSetUnpackAlpha to the set of requests that is possible
- to stream.
-
-nxcomp-2.0.0-18
-
-- Enabled the 2.0.0 features that were disabled for test purposes.
-
-- Changed the LICENSE file to state that the software is only made
- available under the version 2 of the GPL.
-
-nxcomp-2.0.0-17
-
-- Introduced a new channel of type 'slave'. Opening a slave channel
- should let the proxy fork a new NX client instance (or whatever
- is in the NX_SLAVE environment) and pass to it the channel's desc-
- riptors. This client instance should authenticate the peer, for
- example using the proxy cookie (see how this is implemented in
- nxsensor) and then negotiate the service to be used on the channel.
- This can be used to implement forwarding of arbitrary ports or ad-
- ditional services, like a simple file transfer protocol. For now
- the implementation is incomplete. Opening a slave channel will
- result in the remote proxy just dropping the channel connection.
-
-- The proxy is forcibly flushed at the end of each loop. This is a
- temporary fix until the agents are updated to flush the proxy link
- on demand.
-
-- Added a new alert to be used in the case the RDP session is closed
- and replaced with a new session using the same Windows account.
-
-- Added a forward declaration of class RenderMinorExtensionStore in
- file RenderExtension.h to compile using gcc 4.0.X.
-
-- Added removal of all .orig file when running a 'make clean'.
-
-- The code uses again the 2.0.0 style shutdown (the one waiting for
- the watchdog process to terminate).
-
-nxcomp-2.0.0-16
-
-- Added the NXTransChannel() interface to allow agents to create
- new channels connected to the port that will be forwarded by the
- remote proxy. The function returns 1 on success, 0 if the NX
- transport is not running, or -1 in the case of error. On success,
- the descriptor provided by the caller can be used for all the
- subsequent I/O, including selecting the descriptor to check if
- I/O is possible. The type parameter not only tells to the proxy
- the remote port where the channel has to be connected, but gives
- a hint about the type of data that will be carried by the channel,
- so that the proxy can optimize the compression and schedule the
- traffic on the slow link.
-
- The type can be:
-
- NX_CHANNEL_X: The channel will carry X traffic and it
- will be connected to the remote X display.
-
- NX_CHANNEL_CUPS: The channel will carry CUPS/IPP protocol.
-
- NX_CHANNEL_SMB: The channel will carry SMB/CIFS protocol.
-
- NX_CHANNEL_MEDIA: The channel will transport audio or other
- multimedia data.
-
- NX_CHANNEL_HTTP: The channel will carry HTTP protocol.
-
- NX_CHANNEL_FONT: The channel will forward a X font server
- connection.
-
- Only the proxy running at the NX server/X client side will be
- able to create a X, CUPS, SMB, MEDIA and HTTP channel. A proxy
- running at the NX client/X server side can create font server
- connections. The channel creation will also fail if the remote
- end was not set up to forward the connection.
-
- To create a new channel the agent will have to set up a socket-
- pair and pass to the proxy one of the socket descriptors.
-
- Example:
-
- #include <sys/types.h>
- #include <sys/socket.h>
-
- int fds[2];
-
- if (socketpair(PF_LOCAL, SOCK_STREAM, 0, fds) < 0)
- {
- ...
- }
- else
- {
- //
- // Use fds[0] locally and let the
- // proxy use fds[1].
- //
-
- if (NXTransChannel(fds[1], NX_CHANNEL_X) <= 0)
- {
- ...
- }
-
- //
- // The agent can now use fds[0] in
- // read(), write() and select()
- // system calls.
- //
-
- ...
- }
-
- Note that all the I/O on the descriptor should be non-blocking,
- to give a chance to the NX transport to run in the background
- and handle the data that will be fed to the agent's side of the
- socketpair. This will happen automatically, as long as the agent
- uses the XSelect() version of the select() function (as it is
- normal whenever performing Xlib I/O). In all the other cases,
- like presumably in the agent's main loop, the agent will have
- to loop through NXTransPrepare(), NXTransSelect() and NXTrans-
- Execute() functions explicitly, adding to the sets the descript-
- ors that are awaited by the agent. Please check the implementa-
- tion of _XSelect() in nx-X11/lib/X11/XlibInt.c for an example.
-
-nxcomp-2.0.0-15
-
-- Some changes aimed at finding a workaround to the unreliability
- of the font server connections. The X server seems to be really
- picky about the network latency, so we try to read immediately
- from the channel just being created, instead of waiting for a
- new loop. Additionally the proxy will keep reading from the font
- server connections even after the maximum length of the frame
- is exceeded, in the hope that it will be able to send a complete
- message in a single frame.
-
-- updated the various internal consistency tests run when the TEST
- or INFO flags are enabled.
-
-nxcomp-2.0.0-14
-
-- It seems that the closure of the socket sometimes takes several
- seconds, on Windows, after the connection is broken, with the
- result that the alert can be shown long after the user has gone
- after the failed session. We now skip the closure of the proxy
- link on Windows if we are about to exit.
-
-- The code uses the 1.5.0 style shutdown (the one waiting for the
- term signal in the main process) to be able to test the library
- with the old server. To activate the new shutdown procedure be
- sure the define SHUTDOWN_COMPATIBLE_1_5_0 is unset.
-
-nxcomp-2.0.0-13
-
-- Ensured that static members in channels are reset at the time a
- new proxy is created.
-
-- Adjusted the token parameters for link modes other than modem.
-
-nxcomp-2.0.0-12
-
-- Handled compatibility with 1.X.X versions not sending the count
- field in the token.
-
-- The proxy link is now flushed automatically if the agent has not
- set the deferred flush mode.
-
-nxcomp-2.0.0-11
-
-- Significant modifications to allow the proxy to keep data in the
- encode buffer across multiple loops, until the data is flushed
- because an explicit request by the agent or. Besides maximizing
- the amount of data sent in a single frame, this makes it possi-
- ble to move any packet coalescence strategy in the agent, while
- still using an 'immediate' flush policy.
-
-- Modified the procedure handling the proxy congestion. Each token
- now carries a counter which represents the multiple of TokenBytes
- data bytes that need to be confirmed by the remote end. The ser-
- ver side proxy will need to reply by including the value of the
- counter. When sending a new token, the tokens are decremented by
- the counter and the client side proxy enters in congestion when
- the available tokens becomes zero or negative.
-
-nxcomp-2.0.0-10
-
-- Implemented specific encoding of the X_NXSetCacheParameters
- request.
-
-- Handled the compatibility with older versions not supporting the
- new request. In this case the request is handled at the local si-
- de, preventing the X requests to be cached or split, even without
- the cooperation of the remote side.
-
-nxcomp-2.0.0-9
-
-- Modified the shutdown procedure to not rely on the TERM signal
- when the proxy needs to wait for the server to complete. We will
- now print the following message in the session log:
-
- Info: Watchdog running with pid 'n'.
- Info: Waiting for watchdog process to complete.
-
- The NX server will have to kill the process with the given pid
- to mandate the proxy shutdown. This solves the TR11C01192.
-
-- Added the X_NXSetCacheParameters request. It tells to the proxy
- how to handle caching of X requests, namely if requests should
- be stored in the memory cache, split in smaller data chunks and,
- in the case of images, saved on disk in the persistent image
- cache. The request affects all the X messages until the proxy
- is further configured.
-
-- Enabling and disabling loading and saving of persistent images
- due to a X_NXSetCacheParameters is still to be implemented.
-
-- Implemented font channel compatibility with older versions. If
- the font port is queried and the remote proxy doesn't support
- the tunneling of font server connections, an empty string is
- returned.
-
-- The option 'resize', used by agents, is now silently ignored.
- This solves the TR10C01061.
-
-- Added the missing reference to TR08C000981.
-
-nxcomp-2.0.0-8
-
-- Discarded the first idea of setting the font path implicitly in
- the X server side proxy, by means of a multi-pass operation and
- added the NXGetFontParameters() request and reply. If the proxy
- has been configured accordingly, the request returns the X font
- path that can be set by the agent to tunnel the font server con-
- nections through the NX link.
-
-- Changed the parsing of the font server port to be able to handle
- the defaults.
-
-nxcomp-2.0.0-7
-
-- More work on tunneling of font server connections.
-
-- The synchronization requests are now replied at the same time
- as a new request is received, by checking if the channel has
- already gone past the awaited sequence number. This avoids the
- delay caused by the previous versions in the case the expected
- reply had been handled asynchronously, inside the write loop.
-
-nxcomp-2.0.0-6
-
-- The display is again passed to the client using the -display
- parameter.
-
-- The option 'type' is now ignored at X server side. Support at
- the X server side had been left for compatibility with older
- versions of the proxy.
-
-- Added direct support for more session types, namely 'unix-cde',
- 'unix-xdm', 'unix-console', 'unix-default'. The 'unix-console'
- and 'unix-default', similarly to 'unix-application', will now
- trigger the 'raw' mode.
-
-nxcomp-2.0.0-5
-
-- Renamed Png.h and Png.cpp to Pgn.h and Pgn.cpp to avoid name
- clashes on Windows.
-
-- The distclean target now removes the autom4te.cache directory.
-
-nxcomp-2.0.0-4
-
-- Added the 'kill=n' option to let the proxy add the process to
- the list of daemons that must be terminated at session shutdown.
- Multiple 'kill=n' options can be specified. The proxy will send
- to each process a SIGTERM signal before exiting.
-
-- Removed the code that forcibly disabled the RENDER extension on
- Solaris. Eventual compatibility problems will be now handled in
- the NX agent.
-
-- The path to the client executable is now assumed to be in the
- NX_CLIENT environment. If the variable is not set, the proxy
- will guess the location based on the target platform. This is
- part of the FR11C01215.
-
-nxcomp-2.0.0-3
-
-- More code cleanup. Protocol step 5 and cache step 2 are assumed
- by default. This allows us to remove the various channel caches
- that are not used anymore.
-
-- Removed the outdated encodeBegin() and encodeEnd() methods.
-
-nxcomp-2.0.0-2
-
-- Added compatibility with the 1.5.0 and 1.4.0 versions. Protocol
- version older than the 1.4.0 will cause the proxy to drop the
- connection.
-
-- Rewritten the version negotiatiation logic to better handle the
- compatibility between the local and the remote version.
-
-- Removed the conditional code handling the compatibility with
- the protocol encodings from 1 to 4.
-
-- Small adjustments to the session negotiation procedure to give
- more hints in the case of errors. A dialog is now issued if the
- remote proxy drops the connection due to a probable authentica-
- tion failure or when the remote proxy version is not compatible
- with our version.
-
-nxcomp-2.0.0-1
-
-- Opened the 2.0.0 branch based on nxcomp-1.5.0-80.
-
-nxcomp-1.5.0-80
-
-- Fixed a bug that prevented the Unix socket to be created in the
- right directory. This affected the ability of the server to run
- NX sessions without the agent encoding.
-
-nxcomp-1.5.0-79
-
-- Solved a bug in the 15 to 16 bpp conversion for RDP sessions.
-
-- Corrected a typo in the PANIC message of Unpack16To24 function.
-
-- Optimized the 16 bpp RDP decompression routine.
-
-nxcomp-1.5.0-78
-
-- Implemented the FR11C01215. The following environment variables
- are checked to determine the location of the relevant NX direct-
- ories:
-
- $NX_ROOT The root NX directory is the place where the session
- directory and the cache files are created. This is
- usually overridden by passing the 'root=' option. By
- default, the root NX directory is assumed to be the
- directory '.nx' in the user's home.
-
- $NX_SYSTEM The directory where NX programs and libraries reside.
- If not set, the value is assumed to be '/usr/NX'.
- Programs, libraries and data files are respectedly
- searched in the 'bin', 'lib' and 'share' subdirecto-
- ries.
-
- $NX_HOME The NX user's home directory. If $NX_ROOT is not set
- or invalid, the user's NX directory is created here.
-
- $NX_TEMP The directory where the X11 Unix Domain Sockets and
- all temporary files are to be created.
-
- $NX_CLIENT The full path to the nxclient executable. If the va-
- riable is not set, the nxclient executable will be
- run assuming that the program is in the system path.
- This can be useful on platforms like Windows and the
- Mac where nxclient is located in a different direct-
- ory compared to the other programs, to make easier
- for the user to execute the program from the shell.
-
- Other environment variables:
-
- $HOME The variable is checked in the case $NX_HOME is not
- set, null or invalid.
-
- $TEMP The variable is checked whenever the $NX_TEMP direct-
- ory is not set, null or invalid.
-
- $PATH The path where all executables are searched, except
- nxclient. If $NX_CLIENT is not set, also the client
- executable is searched in the system path.
-
- $XAUTHORITY
- This is the file containing the X11 authorization
- cookies. If not set, the file is assumed to be in
- the user's home (either $NX_HOME or $HOME).
-
- $LD_LIBRARY_PATH
- System-wide library search order. This should be set
- by the program invoking the proxy.
-
-- Extended the usage message to document the relevant environment.
-
-- Made the WaitChild() function interruptible. This allows the user
- to terminate the connection procedure immediately, by sending a
- signal to the proxy process while an abort dialog is shown in the
- foreground. This is part of the solution to the TR11C01216.
-
-- Implementation of the FR11C01215 is not yet complete. The client
- program and the nxauth/xauth are still searched using the previ-
- ous logic. In particular, the NX_CLIENT variable is ignored.
-
-nxcomp-1.5.0-77
-
-- Corrected the typo in the alert dealing with VNC authentication
- failures. This solves the TR11C01199.
-
-nxcomp-1.5.0-76
-
-- Added the missing initialization in the client and server proxy
- constructors.
-
-nxcomp-1.5.0-75
-
-- Starting from this version the build procedure will automatically
- create a DLL on Windows.
-
-- Disabled exceptions in the compiled code.
-
-- Disabled run-time type information to further reduce the size of
- the executable.
-
-- Compiling with GCC 4.0.0 and -fno-exceptions produces a warning
- in some files, due to control apparently reaching the end of a
- non void function. This is bogus and has been confirmed to be a
- GCC 4.0.0 bug solved in more recent versions.
-
-nxcomp-1.5.0-74
-
-- Imported changes from nxcomp-1.6.0-4.
-
-- Solved a compilation error on Solaris and MacOSX platforms.
-
-- The 'font' option now accepts either a numeric value (for a TCP
- port) or a 'unix/:port' or 'tcp/:port' specification. In the case
- of Unix ports, we assume that a port specification "unix/:7100"
- corresponds to the "/tmp/.font-unix/fs7100" socket and a port like
- "unix/:-1" corresponds to "/tmp/.font-unix/fs-1".
-
-- An absolute file path is also accepted as a valid socket. This is
- useful to test the forwarding of the font server connection, for
- example by running a normal X client and pointing the socket to
- the X server.
-
-- Protocol step 7 is now only assumed when connecting to a remote
- proxy version 1.6.0 or later.
-
-nxcomp-1.5.0-73
-
-- Use the include files from nx-X11 if the nx-X11/include directory
- is found. The previous configure checked the presence of nx-X11/
- exports/include, that might not be built at the time this library
- is compiled.
-
-nxcomp-1.5.0-72
-
-- Fixed a problem on AMD64 due to the size of the area pointed by
- the argument of NXTransReadable(). The ioctl() requires a pointer
- to an int, at least on Linux. The original _X11TransBytesReadable()
- function simply calls the ioctl() by passing the pointer that is
- provided. Returning the value assuming a pointer to a long crashes
- some applications, among them xterm. Now NXTransReadable() follows
- the same schema of the ioctl() call and stores the result assuming
- a pointer to an int.
-
-nxcomp-1.5.0-71
-
-- Ensured that the NX trasport is destroyed on NXTransExit() even if
- the parent has overridden our signal handlers.
-
-- Added attribute 'noreturn' to NXTransExit().
-
-- Small change to the shutdown procedure to send the "Waiting for a
- further signal" just after the watchdog is started.
-
-nxcomp-1.5.0-70
-
-- Added the definition of protocol step 7. The new protocol step is
- implicitly assumed when activating the font server channel, so that
- NX clients and servers may decide what to do by verifying the patch
- version of the peer software. This makes possible to activate the
- feature without stepping up the 1.5.0 version of the software.
-
-nxcomp-1.5.0-69
-
-- Added the -fPIC GCC flag when compiling on AMD64 architectures.
-
-- Small changes to configure.in to have specific CFLAGS.
-
-- Created a new configure using autoconf 2.59.
-
-- Added the 'mask=n' option to determine how channel ids are distri-
- buted between client ans server. By default, channels whose ids are
- multiple of 8 (starting from 0) are reserved for the client side.
- All other channels can be allocated at the NX server side.
-
-- A check is missing on the protocol supported by the remote side,
- so it is likely that mixing this version with older 1.5.0 will not
- work.
-
-- The release has the debug logs enabled.
-
-nxcomp-1.5.0-68
-
-- Added provision for opening new channels on both client and server
- side. This required small changes to the way channel ids are mapped
- and retrieved, so that both sides now support bidirectional mapping
- of file descriptors to channels.
-
-- Made the code handling allocation of new generic channels to reside
- in the base Proxy class.
-
-nxcomp-1.5.0-67
-
-- Renamed the 'embedded keyboard' channels as 'aux' channel.
-
-- Renamed 'samba' channels as 'smb'.
-
-- The 'samba' and 'smb' options can now be used interchangeably. The
- same applies to the 'keybd' and 'aux' options, used to set up the
- auxiliary X channel.
-
-- Added a new font channel. The channel is used to forward X font
- server connections from the X server on the NX client to the remote
- NX server. The channel is not yet functional and requires change to
- the channel allocation mechanism.
-
-- Added a common interface to create new listening sockets. This is
- currently used for additional services, but not for the X display
- sockets.
-
-- Simplified the interface used to accept new connections to channels
- being forwarded.
-
-- Removed the -V option as nxproxy is not using dlopen() anymore.
-
-- Removed the inclusion of ClientChannel.h in Proxy.cpp that caused
- test symbols to be reverted to undefined.
-
-nxcomp-1.5.0-66
-
-- Made failures setting the IPTOS_LOWDELAY on the proxy socket to
- cause a warning, instead of an error.
-
-- Made the clean target delete the Cygwin specific libraries.
-
-- Updated the configure and Message.h to deal with GCC 4. Solves the
- TR08C000981.
-
-nxcomp-1.5.0-65
-
-- Removed the warning issued on parsing the agent option 'rootless'.
- Solves the TR08C00959.
-
-- MacOSX 10.4 defines socklen_t. Made the definition conditional so
- that we can still support older versions. Solves the TR07C00926.
-
-- Updated the ChangeLog to include references to the solved TRs.
-
-nxcomp-1.5.0-64
-
-- Imported the 1.6.0 changes in the maintenance 1.5.0.
-
-- Removed a wrong assertion that might cause the session to fail
- when the software was compiled with TEST enabled in Proxy.cpp.
-
-- The nxclient dialog process is signaled with SIGKILL on Windows,
- as the SIGTERM is ignored. This solves the TR07C00929.
-
-- Ensured the JPEG error flag is always set before jumping out of
- the Jpeg decompression.
-
-- Skipped errors encontered setting the TCP_NODELAY flag on Mac.
- Solves TR08C00940.
-
-- Few cosmetic changes.
-
-nxcomp-1.5.0-63
-
-- Ensured that the parent is checked often in the keeper process,
- so that, in the case of a premature death, the child is exited
- earlier.
-
-nxcomp-1.5.0-62
-
-- Some performance tuning of the LAN and WAN link modes.
-
-nxcomp-1.5.0-61
-
-- Fixed the problems arisen with loading or saving the image files
- on Windows by forcing the streams to be opened in binary mode.
- These problems have been triggered by the recent Cygwin upgrade.
-
-- Removed the logs that had be left enabled for test purposes.
-
-nxcomp-1.5.0-60
-
-- Made all errors encountered while unpacking an image just print
- a warning in the session log. Such errors are not fatal but the
- client monitors the state of the session at startup, so that by
- marking image decompression errors as such may cause the session
- to be aborted.
-
-- Marked as warnings also errors encountered by trying to load an
- image from disk.
-
-nxcomp-1.5.0-59
-
-- When detected, the CTRL+ALT+SHIFT+ESC sequence is removed from
- the event stream.
-
-- Also modified the message in the session log to issue a warning,
- instead of an error.
-
-nxcomp-1.5.0-58
-
-- Added a setjmp() before yielding the control to the JPEG library.
- This makes possible to recover from the JPEG decompression errors
- that were previously fatal.
-
-- In the commit split request, the client id is now encoded by the
- client channel beside the propagate flag. The client id is igno-
- red by the decoding party. As in the old protocol versions, the
- committing client is taken from the client id that was originally
- sent together with the packed image.
-
-- Fixed the compilation problem when defining OPCODES in Misc.cpp.
-
-- Skipped the synchronous flush of the proxy link when connecting
- to a previous NX version.
-
-- Ensured that the new alerts are only requested when connected to
- a compatible proxy.
-
-- Ignored the option 'fullscreen', targeting the agents.
-
-nxcomp-1.5.0-57
-
-- Added more alerts and changed the name of those dealing with the
- resume of a session.
-
-- Added the MIXED define. When set, the proxy will let all logs go
- to the standard error. This is useful to interleave the Xlib log
- output with the proxy output in a single file.
-
-- Added a new alert to report an I/O error at agent reconnection.
- This is one of those alert that can't be actually shown, but are
- included to offer a consistent view to the agent implementation.
-
-nxcomp-1.5.0-56
-
-- Added the split mode NXSplitModeSync. By selecting this mode,
- the proxy will try to empty the split store immediately, until
- all messages marked in such mode will be synchronized. The im-
- plementation is left to future versions.
-
- #define NXSplitModeSync 3
-
-- Added the messages specific to RDP and VNC sessions in NXalert.h.
- Included are also a few alerts related to changes to the color
- depth and desktop geometry that may be eventually mandated by the
- remote server.
-
-- Corrected a typo in NXalert.h
-
-nxcomp-1.5.0-55
-
-- Added the 'mode' field in the X_NXStartSplit request. It determi-
- nes the strategy that the proxy will adopt to handle the image.
- If set to 'eager', the proxy will only split the messages whose
- size exceeds the split threshold (the threshold can be found in
- the X_NXGetControlParameters reply). If mode is set to lazy, the
- proxy will split any image that it is not able to find in its
- cache.
-
- The opcode and the two available modes are defined in NXproto.h,
- currently:
-
- #define NXSplitModeDefault 0
- #define NXSplitModeEager 1
- #define NXSplitModeLazy 2
-
-- All requests related to image streaming now carry a 'resource' id.
- The id is currently ignored by the proxy in the case of X_NXCom-
- mitSplit requests.
-
-- Added a new NXSetSplitMode() request. It determines the strategy
- that the proxy will adopt to stream the images. If set to 'eager'
- the proxy will only split the messages whose size exceeds the
- split threshold, otherwise it will split all the images, regard-
- less their size. This is in preparation of the lazy encoding in
- agent.
-
-- Slightly decreased the startup timeout compared to the value it
- had in the 1.4.0. This timeout is used to retain the images used
- during session startup in the persistent cache.
-
-nxcomp-1.5.0-54
-
-- Modified the text of the begin-reconnection alert to mention the
- speed of the connection detected by the agent.
-
-nxcomp-1.5.0-53
-
-- Reworked the handling of the abort-split events issued by the re-
- remote proxy so that we now finalize the procedure and restart the
- client asynchronously, in the middle of the write loop.
-
-nxcomp-1.5.0-52
-
-- Rewritten the internal interface to the notification events. There
- are now five different split notification events:
-
- NXNoSplitNotify The operation didn't cause any actual split.
- The client can be immediately restarted.
-
- NXStartSplitNotify A split is ongoing. The client should be
- suspended until the end of the split.
-
- NXCommitSplitNotify A complete request has been recomposed. The
- client can commit the given request to the
- X server.
-
- NXEndSplitNotify The split operation was duly completed. The
- client can be restarted.
-
- NXEmptySplitNotify No more split operation are pending. The
- agent can use this information to implement
- specific strategies, requiring for example
- that all messages have been recomposed at
- the remote end. This can include updating
- the drawables that were not synchronized
- because of the lazy encoding.
-
-- Removed the X_NXSync and X_NXKarma operations, not used anymore by
- the NX agents.
-
-- Increasing or decreasing a timeout makes it respectively equal to
- the base timeout or to the base timeout / 4.
-
-nxcomp-1.5.0-51
-
-- Improved the mechanism by which synchronization replies are sent
- to the X client proxy.
-
-- Using the leftPad field as passed by the nxagent 1.5.0-58 doesn't
- seem to work with the MIT-SHM. The workaround is to disable the
- MIT-SHM operation in the case of 1 bpp images.
-
-- Removed the limitation on the size of the shared memory segment
- that had been introduced for test purposes.
-
-nxcomp-1.5.0-50
-
-- Solved compilation problem when --with-info was not given.
-
-nxcomp-1.5.0-49
-
-- Improved support for color matching from 15 and 16 bpp to 24 and
- 32 bpp in RDP sessions.
-
-- Solved TR05C00910. This was about "shadows" that might appear in
- RDP sessions when small elements like tooltips were drawn.
-
-nxcomp-1.5.0-48
-
-- Added a 'commit' field in X_NXCommitSplit request. When zero, the
- X server side proxy will unlock the message in the message store,
- without actually committing the image to the X server. The new
- field required changes to the encoding. This means that this ver-
- sion is not compatible with older 1.5.0 nxcomp releases.
-
-- Added a new control message. This is used by NXTransFlush() to for-
- ce a roundtrip between the proxies and speed-up the handling of
- the synchronous replies.
-
-nxcomp-1.5.0-47
-
-- Made the timeouts dynamic, based on the user input and the current
- bitrate.
-
-- Set the available tokens to 8. This allows for 16 KB to be sent on
- a modem before having to wait for a reply.
-
-- Added provision for removing a dialog on the remote end. This can
- be used, for example, to get rid of a message that was displayed
- by the agent at the beginning of a lengthy operation.
-
-- Fixed a fault that arose when trying to run the proxy on a display
- whose name began with the 'nx' string.
-
-- Running a client or server session on a display host beginning with
- 'nx' should be now possible.
-
-- Flush is now always immediate when there is already data queued in
- the TCP socket.
-
-nxcomp-1.5.0-46
-
-- Created the NXalert.h header from Alert.h to share the alert codes
- with the agents. The new NXTransAlert() interface can be used to
- start an alert on the remote side.
-
-- Created the NXTransParse*() and NXTransCleanup() wrappers.
-
-- Temporarily using the single-dash style when passing parameters to
- nxclient until the double-dash style is fixed.
-
-nxcomp-1.5.0-45
-
-- Motion events are now flushed at the time the X server channel is
- sending the token reply.
-
-- Renamed NXDialog() to NXTransDialog() and added a window ID parame-
- ter, to be used by the agent when starting the "pulldown" dialogs.
-
-- Also renamed the other NX utility functions.
-
-nxcomp-1.5.0-44
-
-- Solved a bug that prevented auxiliary X connections from working
- with the agent.
-
-- Added the missing check on the proxy pointer in HandleTimer() as
- it may be actually called before the proxy is created.
-
-nxcomp-1.5.0-43
-
-- Started tuning the performance. For now, the available tokens are
- set to an improbable value of 10000.
-
-nxcomp-1.5.0-42
-
-- Disabled the X server side remote expose events for test purposes.
- This is intended uncover the display problems introduced by the
- new handling of exposures in the X11 agent.
-
-- Fixed some timestamp related functions to avoid rounding problems.
-
-- Moved the timestamps of split, frame and flush from the Control
- to the Proxy class.
-
-- Made the X server side proxy to skip updating the counters related
- to token management.
-
-- Made also the X server side use deferred flushes.
-
-- Modified handleFrame() to manage both pings and data frames and
- send the token before the actual write operation.
-
-- Cleaned the pseudo-files used to load the control parameters.
-
-- Cleaned up the FIXME's in the lower layers. More FIXME's remain in
- the frontend classes.
-
-- Added a further counter to the statistics tracking the number of
- network writes performed on the proxy link.
-
-nxcomp-1.5.0-41
-
-- Now the watchdog process doesn't kill the parent. The termination
- event is determined by monitoring the child. This is advisable to
- avoid interfering with the signal handling in agent.
-
-- The house-keeping process is not started if differential compres-
- sion (and thus caching of images) is disabled.
-
-- Wait for the watchdog to terminate before starting the house-keep-
- ing process.
-
-- Fixed the problem of gray stripes in white areas when using 15bpp
- RDP compression. This solves the TR06C00916.
-
-- Added a log in Message.cpp to tell when an image is removed from
- the memory cache.
-
-- Removed most of the logs. Only left the logs directly related to
- the deferred flushes.
-
-- Removed a warning due to a missing definition in NX.h.
-
-nxcomp-1.5.0-40
-
-- Added the signal '12' to the set of blocked signal on Cygwin. This
- is what is delivered to the application when it tries to create a
- shared memory segment when the cygserver is not running. The call
- later returns "Operation not implemented", only useful if you have
- survived to the signal.
-
-- Modified the configure script to not link against cygipc.
-
-- Improved error handling in the negotiation phase.
-
-- Reset the last signal received when aborting a connection attempt.
- Not doing that might cause a warning.
-
-nxcomp-1.5.0-39
-
-- Both channels and proxy can now deal with incomplete messages by
- waiting for the full data to become available. This is not going
- to work when the transport is connected to an agent that is run-
- ning in-process, so the timeout must be really small.
-
-- Made the main loop more compact by letting a single function read
- from proxy and channels. The same change applies to writing to
- descriptors that are reported to be ready.
-
-- Optimized the loop to report as ready the agent descriptors that
- have become available after the proxy execution phase.
-
-- Now the proxy will try to asynchronously read from its descriptor
- after having read from the channel.
-
-- Unified the routine setting the routines setting the read and write
- descriptors and the timeouts.
-
-- Unified the routine handling the channel events.
-
-- Reintroduced the last ping timestamp to avoid sending more than a
- single ping every PingTimeout milliseconds.
-
-- The cleanup procedure now waits for the watchdog and house-keeping
- processes to terminate.
-
-- Reverted the change occurred in 1.5.0-35 about the byte-ordering
- problem in decompression of PNG and JPEG images.
-
-- More coding about deferred flushes.
-
-- Relevant debug logs are enabled in the main loop, in the proxy and
- in the channel classes, so use only for testing.
-
-nxcomp-1.5.0-38
-
-- Started the implementation of deferred writes based on the new NX
- transport.
-
-- Solved a problem with the statistics file affecting the Windows
- platform. Basically it seems that Cygwin or the stdc++ library
- don't deal correctly with files that are reopened just after
- having unlinked them.
-
-- Implemented support for 15 bpp RDP bitmaps.
-
-- Added "rdpcolors" and "rdpcache" to the list of parameters that
- are ignored in ParseEnviromentOptions().
-
-- This version has lot of logs enabled and some forced cleanups in
- the case of unexpected conditions. Avoid to use it for long-last-
- ing test sessions.
-
-nxcomp-1.5.0-37
-
-- Now splitting of images is fully disabled when running with link
- LAN. Previously the split was not executed by the proxy, but the
- agent was configured to send the start/end sequence.
-
-- Added the check protecting the proxy from token underflow. In the
- previous code the check was left out to verify the conditions un-
- der which this event might be encountered.
-
-- NXTransWrite() and NXTransWriteVector() allocate a context before
- calling handleRead(), so they can correctly return in the case of
- a cleanup.
-
-nxcomp-1.5.0-36
-
-- Modified the channel write loop to interleave abort split events
- between the writes to the X server socket.
-
-nxcomp-1.5.0-35
-
-- Solved a byte-ordering problem in decompression of PNG and JPEG
- images.
-
-- Changed the handleToken() interface to make explicit if a token
- must be issued because of a ping.
-
-- Small fix to prevent a warning in Jpeg.cpp when TEST is enabled.
-
-nxcomp-1.5.0-34
-
-- Solved a few problems introduced by the rewrite of the read loops
- in channels.
-
-- Added definition of NXCollectInputFocusNotify.
-
-nxcomp-1.5.0-33
-
-- Implemented a new control flow system based on tokens exchanged bet-
- ween the proxies. When the clint side runs out of tokens it stops
- sending data until a new token is returned. Tokens are sent whenever
- the data written to the socket exceeds the amount of data set for a
- scheduled write, so the proxy is free to send a number of smaller
- frames before running out of tokens.
-
-- The reason the new system is introduced is because the old method
- had two outstanding problems:
-
- - It worked very well when the proxies were directly connected,
- but couldn't reliably detect a link congestion when tunneled
- over SSH.
-
- - In the attempt of reducing the data queued to the TCP layer, it
- didn't leverage all the available bandwidth.
-
-- Moved the final check on the state of the session at the end of
- execution stage, instead of the beginning. The signals sent by the
- user to request the statistics could be reset before the proxy had
- entered the right procedure.
-
-- Added the session type 'unix-rootless', to be used for single apps
- run with the agent in rootless mode.
-
-nxcomp-1.5.0-32
-
-- Modified the main loop to skip the select when I/O is possible on
- any of the agent descriptors or the proxy link.
-
-- Now the house-keeping process is allocated in the heap instead of
- the stack.
-
-nxcomp-1.5.0-31
-
-- The server channel now performs asynchronous reads from the display
- by interleaving them with data decoded from the remote proxy.
-
-- Improved the handling of the memory-to-memory transport.
-
-nxcomp-1.5.0-30
-
-- Redesigned the handling of the congestion events to work more re-
- liably and to report the events to the remote peer earlier.
-
-- Increased the size of the shared memory segment when the MIT-SHM
- extension is activated.
-
-- Solved a bug that prevented the ping timeout to work as expected.
-
-- Ensured that, when entering the main select(), neither the chan-
- nels or the proxy have pending messages in the read buffers.
-
-- There is now only a single case where we can have pending messa-
- ges, namely in the handling of the MIT-SHM events.
-
-- Solved a bug introduced by the 1.5.0-29 that made the proxy en-
- ter the select with a null timeout.
-
-- Renamed LINK_TYPE_AUTO to LINK_TYPE_NONE in NXproto.h.
-
-nxcomp-1.5.0-29
-
-- Now encoding data from the agent descriptors happens in the same
- context as data is written to the buffer.
-
-- Optimized the handling of the congestion events to avoid running
- further unneeded loops.
-
-- Added timer handling utilities.
-
-nxcomp-1.5.0-28
-
-- Added code providing information about the reason of the failure
- encountered connecting to the local X server. This greatly helps
- when troubleshooting X authorization problems.
-
-- On connection failure a warning message is printed in the session
- log.
-
-- Removed the warning that was previously printed when the MIT-SHM
- extension failed to be initialized on Windows. Shared memory has
- problems on Cygwin and it currently doesn't work in NXWin.
-
-- Reworked the message printed in the case of link failure.
-
-nxcomp-1.5.0-27
-
-- Solved a bug in the connection procedure introduced by 1.5.0-25.
-
-nxcomp-1.5.0-26
-
-- Transformed the errors printed on failure of the fork() creating
- the children into warnings. This can happen quite often on Win-
- dows, due to well known Cygwin problems. See also the ChangeLog
- entry for nxcomp 1.4.0-28. This patch closes the TRSL052278 but
- it's obviously not a long-term solution.
-
-- Set the sticky bit when creating the '/tmp/.X11-unix' directory.
-
-- Modified the Makefile.in to remove the *.out.* files generated by
- Valgrind.
-
-- Updated the README files.
-
-nxcomp-1.5.0-25
-
-- Changed the directory where the client for the Mac is searched if
- it is not found in the system path.
-
-- Modified Auth.cpp to use nxauth also on the Mac.
-
-- Reworked the procedure showing the alert dialog when a timeout is
- encountered in the initial connection.
-
-- Removed the experimental code from the official 1.5.0 branch.
-
-nxcomp-1.5.0-24
-
-- Implemented more experimental classes.
-
-nxcomp-1.5.0-23
-
-- Added the NX_SIGNAL_FORWARD action to NXTransSignal(). This can
- be used to let the proxy call the original signal handler of the
- agent after having blocked the signal.
-
-nxcomp-1.5.0-22
-
-- Ensured that we always have a context, even before creating the
- transport.
-
-- Suppressed the error message printed when passing the -h option.
-
-- Added the experimental code that is currently under development.
-
-nxcomp-1.5.0-21
-
-- Enabled the fake X cookie authentication. This requires checking
- the remote proxy version to verify that the server supports the
- new authorization mechanism.
-
-- It's worth noting that the X client side proxy doesn't care which
- cookie is sent over the connection. The problem is that clients
- connecting to 1.4.0 servers don't have a method to force the ser-
- ver to use the fake cookie. This means that we have to solve the
- problem by letting the proxy check the remote version so that it
- can omit to replace the cookie when connecting to older servers.
-
-nxcomp-1.5.0-20
-
-- Added the NXTransCongestion() function. It returns true if proxy
- is in congestion state.
-
-- Removed an incorrect warning that was printed when calling force()
- for the memory-to-memory transport. The agent could actually re-
- quire multiple loops to read all data queued for it.
-
-nxcomp-1.5.0-19
-
-- Small optimization in NXTransReadable() to run a new NXTransConti-
- nue() loop only after at least RetryTimeout milliseconds are pas-
- sed since the last call and still no data is available. This cuts
- the number of unneeded loops to 1/4th of the total, probably more,
- on faster machines.
-
-- Added NXCollectGrabPointerNotify to NXproto.h.
-
-nxcomp-1.5.0-18
-
-- Minor changes to NXTransContinue().
-
-nxcomp-1.5.0-17
-
-- Moved respawning of a new nxclient instance in the cleanup procedu-
- re. This ensures that the respawn is executed whatever is the rea-
- son of the session shutdown.
-
-- Added a method to force closure of a given channel in proxy.
-
-- Removed code handling the special case triggered on Windows by the
- presence of a NX_SESSION variable in the environment.
-
-nxcomp-1.5.0-16
-
-- Added the NXTransSignal() function to let agents tell to the proxy
- how to handle the standard POSIX signals. Given the SIGINT signal,
- for example, the caller can specify any of the following actions.
-
- NX_SIGNAL_ENABLE: A signal handler will have to be installed by
- the library, so that it can be intercepted by
- the proxy.
-
- NX_SIGNAL_DISABLE: The signal will be handled by the caller and,
- eventually, forwarded to the proxy by calling
- NXTransSignal() explicitly.
-
- NX_SIGNAL_RAISE: The signal must be handled now, as if it had
- been delivered by the operating system. This
- function can be called by the agent with the
- purpose of propagating a signal to the proxy.
-
- As a rule of thumb, agents should let the proxy handle SIGUSR1 and
- SIGUSR2, used for producing the NX protocol statistics, and SIGHUP,
- used for disconnecting the NX transport.
-
-- The following signals are blocked by default upon creation of the
- NX transport:
-
- SIGCHLD These signals should be always put under the control
- SIGUSR1 of the proxy. If agents are intercepting them, agents
- SIGUSR2 should later call NXTransSignal(..., NX_SIGNAL_RAISE)
- SIGHUP to forward the signal to the proxy.
-
- SIGINT These signals should be intercepted by agents. Agents
- SIGTERM should ensure that NXTransDestroy() is called before
- exiting, to give the proxy a chance to shut down the
- NX transport.
-
- SIGPIPE This signal is blocked by the proxy, but not used to
- implement any functionality. It can be handled by the
- NX agent without affecting the proxy.
-
- SIGALRM This is not blocked by the proxy, but could be used
- in future.
-
- SIGVTALRM These signals are not used and should not be used in
- SIGWINCH future versions of the library.
- SIGIO
- SIGTSTP
- SIGTTIN
- SIGTTOU
-
-- By calling NXTransSignal(..., NX_SIGNAL_DISABLE) nxcomp will res-
- tore the signal handler that was saved at the time the proxy hand-
- ler was installed. This means that you should call the function
- just after the XOpenDisplay() or any other function used to init-
- ialize the NX transport.
-
-nxcomp-1.5.0-15
-
-- In NXTransContinue(), if the transport is gone, return immediately,
- that is without having to wait until the NXTransSelect() timeout.
-
-- Ensure that NXTransCreate() has a jump context, just in the case
- a subsequent operation would cause a cleanup.
-
-nxcomp-1.5.0-14
-
-- Solved a problem with requests left in the agent's buffer when run-
- ning the NX transport. The agent could have enqueued data to our
- side and checked the available events but requests could not be
- written to the proxy because proxy might not have had a chance to
- enter a new select. We found that this behaviour was triggered by
- _XEventsQueued, so now a new loop is forced when agent is calling
- _X11TransDataReadable. The procedure can be optimized, by avoiding
- an expensive loop when no critical I/O is pending.
-
-- Added a few additional logs to ClientChannel and ServerChannel.
-
-nxcomp-1.5.0-13
-
-- Added the code handling the special cases of an user not specifying
- a proxy cookie or the case of the X authorization file not contain-
- ing a value matching the display. In the first case we'll forward
- the same cookie that was feeded to the proxy, in the second case we
- will forward to the X server a random generated cookie, similarly to
- what SSH does in this same condition.
-
-- Rewritten the command line parser. Removed all the command line
- options parsed on behalf of nxproxy except:
-
- -C Specify that nxproxy has to run on the "X client"
- side, listening for connections and impersonating
- an X server.\n\
-
- -S Specify that nxproxy has to run in "X server" mode,
- thus forwarding the connections to daemons running
- on the client.\n\
-
- -V n.n.n Request nxproxy to load the given nxcomp version.
- This option is only present on Solaris and Linux.
-
- -v Print version information.
-
- host:port Put at the end, specifies the host and port of the
- listening proxy.
-
- value=name Set the NX option to the provided value.
-
- Multiple NX options can be specified in the DISPLAY environment or
- on the command line, by using the nx/nx,name=value notation.
-
-- The above information is printed on the console when incurring in
- a parse error, together with a list of the available option=value
- parameters.
-
-- Renamed the 'log' option to 'errors'. This makes sense as the de-
- fault name for the log file is actually 'errors'.
-
-- Now the "Established X server connection" message is printed to
- the session log only after the X connection has passed the X auth-
- entication phase. This means that the NX client should become able
- to show the details of the session log whenever the session fails
- due to a cookie problem.
-
-- When selecting the additional services without specifying a port,
- the client proxy will now automatically forward the connections to
- the corresponding well-known ports of the CUPS, SMB and HTTP servi-
- ces. Embedded X keyboard connections will be automatically forward-
- ed to the same display port used to connect to the X server. The
- user will still have to specify the port to be used for the media
- connections as we don't have a suitable well-known port.
-
-- Starting from this version, connections to the keybd port will cre-
- ate real X connection channels. This is required to let connections
- leverage the fake authorization cookie.
-
-- By testing the forwarding of keybd connections I found that, when
- letting X clients connect to the port, it is required to provide
- the X cookie for the unix display. Adding only the TCP cookie will
- not work. For example, by creating a cookie as in:
-
- xauth add localhost:2009 MIT-MAGIC-COOKIE-1 6f...f4
-
- And running:
-
- xterm xterm -display localhost:2009
-
- You will get the following error:
-
- Xlib: connection to "localhost:2009.0" refused by server
- Xlib: No protocol specified
-
- Adding also the unix cookie will fix it:
-
- xauth add localhost/unix:2009 MIT-MAGIC-COOKIE-1 6f...f4
-
- This seems to be a Xlib problem, with Xlib trying to get the cookie
- for the UDS port even if the TCP port was requested by the user.
-
-- Fixed a bug that prevented the nxclient dialog to be displayed when
- the session was abruptedly shut down.
-
-- Fixed the compilation error on Apple MacOSX due to the sa_restorer
- field in sigaction. As long as this field is present on Linux we
- will keep following the safer route and will set it explicitly to
- NULL.
-
-- Included what needs to be included in Process.cpp to compile with
- older gcc.
-
-nxcomp-1.5.0-12
-
-- Implemented a replacement for the popen() and pclose() that do not
- rely on a shell to run the command. They were required on Windows,
- where we don't ship a suitable shell in the install.
-
-- Removed code forcing the PATH to include the bin directory on
- Windows.
-
-nxcomp-1.5.0-11
-
-- Forced Auth.cpp on Windows to have the directory containing the
- nxauth executable in the PATH. This is just for testing, until
- nxclient is fixed.
-
-- Fixed compilation errors on Cygwin and Sun.
-
-- Removed the NX_FORCE_* stubs.
-
-nxcomp-1.5.0-10
-
-- Modified the memory management policies in ReadBuffer to fit all
- the available bytes in a single buffer allocation.
-
-- The locateMessage() methods now give hints on the amount of data
- that has to be read.
-
-- The read loop in channel now doesn't yield in the case of prio-
- ritized messages. This is experimental.
-
-- Removed the check on isTimeToYield() between encodings of multi-
- ple messages. This is aimed at reducing the risk of leaving pen-
- ding messages in channels.
-
-- Modified the channels' read loop to always read all the available
- data.
-
-- Disabled the log output that was selected when compiling with the
- configure option --with-info. This leaves space for other log out-
- put to be selected for more up-to-date scopes.
-
-- Implemented the NXTransReadVector() and the NXTransWriteVector()
- functions to replace READV() and WRITEV().
-
-- Implemented memory-to-memory communication between the agent and
- the NX proxy by making use of the NXTransAgent() interface in the
- nx-X11/lib/X11/Xtranssock.c file.
-
-- Added a check in NXTransSelect() for the EBADF and, on Solaris,
- the EINVAL errors. It can happen in the X11 code that a descript-
- or has become invalid before it is removed from the managed set
-
-- Rewritten the signal handling functions to restore the old actions
- and masks when the NX transport is destroyed.
-
-- Added a NXTransAgent() function to let agents tell the proxy which
- descriptor must be used for the controlling connection. Setting a
- controlling connection has the effect of disabling further X client
- connections and makes the proxy terminate when the channel is shut
- down.
-
-- Solved a problem with setting the initial timeout in the select().
-
-- Modified the Makefile.in to not include -Wno-deprecated when compi-
- ling C programs.
-
-nxcomp-1.5.0-9
-
-- Fixed a problem that prevented the 1.5.0-8 to work on the NX server
- side.
-
-- This version has NX_FORCE_NULL_LISTEN_OPTION and NX_FORCE_NEW_SES-
- SION_OPTION undefined, so it should work in a way that is compati-
- ble with the old nxcomp.
-
-nxcomp-1.5.0-8
-
-- The new code comes with a preliminary integration of nxcomp with
- SSH. It is now possible to create the NX transport by just calling
- the "switch" command as in the following example:
-
- NX> 299 Switching connection to: NX options: ...
-
-- Other possible forms for the NX switch command are:
-
- NX> 299 Switching connection to: NX mode: ...
-
- NX> 299 Switching connection to: NX mode: ... options: ...
-
- Or just:
-
- NX> 299 Switching connection to: NX
-
- The "mode" parameter is there to provide a way to run both enc-
- rypted and unencrypted connections. Possible values are "encrypt-
- ed", "unencrypted" or "default", the latter being an alias for
- "encrypted". Unfortunately I was not able to test unencrypted
- connections, so this may or may not work.
-
-- The top-level process can create the NX transport layer by calling
- NXTransCreate(). The user has to set up a socket pair and pass the
- higher descriptor to nxcomp. nxcomp will later monitor its end, by
- reading and writing NX-encoded traffic. The user has to call the
- NXTransExecute() function as often as it is possible, by letting
- first NXTransPrepare() combine the sets of NX descriptors with the
- descriptors that are used inside its process. A custom NXTransSel-
- ect() is provided to optionally replace the original select(). This
- function saves the original error code and the number of selected
- descriptors upon exit, so the user can call it, restore the original
- values as they were returned by the select() and run the rest of
- the loop unmodified.
-
-- Future versions of the library should provide appropriate methods
- for passing data to and from the proxy by means of a memcpy(), so
- that it will be possible to remove the even minimal TCP overhead.
-
-- Note that integration is far from complete. More work is required
- especially to manage the shutdown cleanly, in a way that gives to
- SSH a chance to free its resources, and on adding facilities for
- handling SSH and NX signals in a single function.
-
-- Rewritten the initialization procedure to make possible to run the
- proxy in-process in an arbitrary connection manager, like SSH or a
- HTTP utility. The same functionality can be used to embed nxcomp in
- the NX agents, so that nxcomp has not to run in a separate process.
-
-- A new state-machine handles the advances through the connection
- stages until the remote proxy (or the forwarder process ) is auth-
- enticated, options have been negotiated and the session is started.
-
-- The option "session" is now used to pass the name of the session
- file to the proxy. The parameter was previously used to pass the
- literal name of the session, as set by the user, and was ignored
- by the proxy. By default the session log is the standard error of
- the process. It is anyway required to set the option when running
- inside SSH, otherwise output will go to the same file as the SSH
- output. In the NX client this would be the 'sshlog' file.
-
-- This version can be easily crafted to test the new integration by
- setting the following define:
-
- NX_FORCE_NULL_LISTEN_OPTION
-
- This makes possible to test the nxcomp/nxssh integration by using
- any production 1.4.0 client. To run this version you are required
- to use nxproxy 1.5.0-4 and nxssh-1.5.0-6.
-
-- New functions handling enabling and disabling signals, based on
- sigprocmask().
-
-- Improved error reporting when failures are encountered while ne-
- gotiating the session.
-
-nxcomp-1.5.0-7
-
-- Caches are saved with a version identifier 1.4.0 so that they are
- not discarded after upgrading the software to the 1.5.0.
-
-- Made values of T_* enumerations to be all lower case.
-
-- Updated copyright to year 2005.
-
-- Started working on an interface for running nxcomp in-process, as
- a additional transport layer of nxssh or nxagent.
-
-nxcomp-1.5.0-6
-
-- Modified the configure script and the makefiles to not include the
- -Wstrict-prototypes and -Wmissing-prototypes compilation flags. The
- -Wnested-externs and -Wmissing-declarations flags are not included
- when using GCC 3.
-
-- Removed the initial newline from string "NXPROXY - Version" printed
- at program startup.
-
-- Made X authentication compatible with 1.4.0 clients. This is a tem-
- porary solution while code is updated to handle the new X authori-
- zation scheme.
-
-nxcomp-1.5.0-5
-
-- Added an Auth class to handle the X authentication. The NX server
- should now use the same proxie cookie that is passed by the client
- at session startup. The X server side proxy will forward the autho-
- rization credentials by replacing the fake cookie with the real co-
- okie, as it is read from the auth file using the xauth utility. The
- implementation is based on the corresponding code found in the SSH
- client and comes with the same limitations: only MIT-MAGIC-COOKIE-1
- cookies are checked and the authorization file is read only once,
- at the time the instance is initialized. If the auth file changes
- along the life of the session, the old cookie will still be used.
- This works with X servers because of an undocumented "feature".
- See also nx-X11.
-
-nxcomp-1.5.0-4
-
-- Adjusted for alarm(0) returning an inconsistent value in ConnectTo-
- Remote().
-
-- Small changes to Types.h, Jpeg.cpp and Png.cpp to compile with gcc
- 3.4.2.
-
-- Cosmetic changes to the ChangeLog file.
-
-nxcomp-1.5.0-3
-
-- Removed test code from ServerChannel.cpp.
-
-- Small cosmetic change in Loop.cpp.
-
-- Tested for compatibility against 1.4.1-8.
-
-nxcomp-1.5.0-2
-
-- Changed VERSION file according to TRCL052336.
-
-nxcomp-1.5.0-1
-
-- Opened the 1.5.0 branch based on 1.4.1-9.
-
-nxcomp-1.4.1-9
-
-- Implemented methods PACK_RDP_PLAIN_64K_COLORS and PACK_RDP_PLAIN_-
- 16M_COLORS. It seems that 16 bpp plain bitmaps can be seldom recei-
- ved. This doesn't seem to be the case of 24 bpp bitmaps.
-
-nxcomp-1.4.1-8
-
-- The new code enables use of 16 bpp and 32 bpp RDP bitmaps. This re-
- quired modifications to the following files:
-
- Misc.h
- Misc.cpp
- Loop.cpp
- Control.cpp
- ServerChannel.cpp
- Unpack.h
- Unpack.cpp
-
-- Lots of cosmetic changes compared to the original code in 1.4.1-7.
-
-- Merged the 1.4.0 and the 1.4.1 branches by importing changes up to
- the 1.4.1-7.
-
-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
- algorithm leveraging the offset field of the X_ShmPutImage
- request. The new algorithm 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.