aboutsummaryrefslogtreecommitdiff
path: root/doc/_attic_
diff options
context:
space:
mode:
Diffstat (limited to 'doc/_attic_')
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nx-X11_CHANGELOG1085
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nx-X11_programs_Xserver_hw_nxagent_CHANGELOG6359
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcomp_CHANGELOG3778
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcomp_README21
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcomp_README-IPAQ21
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcompext_CHANGELOG806
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcompext_README15
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcompshad_CHANGELOG404
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxproxy_CHANGELOG216
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxproxy_README14
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxproxy_README-IPAQ27
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxproxy_README-VALGRIND39
12 files changed, 12785 insertions, 0 deletions
diff --git a/doc/_attic_/NoMachine_documentation_files/nx-X11_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nx-X11_CHANGELOG
new file mode 100644
index 000000000..ffbbe0a61
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nx-X11_CHANGELOG
@@ -0,0 +1,1085 @@
+ChangeLog:
+
+nx-X11-3.5.0-2
+
+- Fixed TR0202420. XKB utility functions wrote out of bounds.
+
+- Upgraded RandR server extension to version 1.2.
+
+nx-X11-3.5.0-1
+
+- Opened the 3.5.0 branch based on nx-X11-3.4.0-4.
+
+- Updated copyright to year 2011.
+
+nx-X11-3.4.0-4
+
+- Fixed TR06H02359. Removed compiler warnings.
+
+nx-X11-3.4.0-3
+
+- Updated copyright to year 2010.
+
+nx-X11-3.4.0-2
+
+- Fixed TR04G02208. Added a path to rgb file.
+
+nx-X11-3.4.0-1
+
+- Opened the 3.4.0 branch based on nx-X11-3.3.0-7.
+
+- Updated copyright to year 2009.
+
+nx-X11-3.3.0-7
+
+- Fixed TR08G02257. The maximum client condition was reached because
+ available fd exhausted. This bug was caused by a function in font
+ library not closing the file before a return on error breaking the
+ flow of normal execution.
+
+- Fixed TR06G02225. The implementation of Xvprintf() has been reviewed
+ to work on more platforms. Previous implementation caused a failure
+ in the build of keyboard map on some platform like Solaris 8 and 9.
+
+nx-X11-3.3.0-6
+
+- Fixed TR03G02198. Reimplemented Xvprintf() in Xserver/os to handle
+ the case in which vsnprintf returned -1.
+
+- Returning from _XSeqSyncFunction() and _XReply() if an I/O error is
+ detected.
+
+nx-X11-3.3.0-5
+
+- Fixed TR01G02163. Signals need to be blocked before the call to
+ fork() in the Popen() utility.
+
+- Fixed TR01G02164. Trapezoid data need to be validated before use.
+ This issue was the same of CVE-2007-2437.
+
+nx-X11-3.3.0-4
+
+- Enabled the code resetting the Xlib buffer if an IO error occured.
+
+nx-X11-3.3.0-3
+
+- Fixed the search path for the XKB base directory.
+
+nx-X11-3.3.0-2
+
+- Fixed TR10F02116. The X11 agent could enter an indefinite wait state
+ if connection to X display is broken and libX11 output buffer is not
+ empty.
+
+nx-X11-3.3.0-1
+
+- Opened the 3.3.0 branch based on nx-X11-3.2.0-2.
+
+nx-X11-3.2.0-2
+
+- Imported patch fixing issues from X.Org security advisory, June
+ 11th, 2008: Multiple vulnerabilities in X server extensions. CVE
+ IDs: CVE-2008-1377, CVE-2008-1379, CVE-2008-2360, CVE-2008-2361,
+ CVE-2008-2362.
+
+nx-X11-3.2.0-1
+
+- Opened the 3.2.0 branch based on nx-X11-3.1.0-6.
+
+nx-X11-3.1.0-6
+
+- Modified Xserver Imakefile to link the Xfixes library.
+
+nx-X11-3.1.0-5
+
+- Disabled the terminate action, just in case the TerminateServer
+ symbol is binded to a non default key sequence.
+
+nx-X11-3.1.0-4
+
+- Imported patch fixing issues from X.Org security advisory, January
+ 17th, 2008: Multiple vulnerabilities in the X server. CVE IDs:
+ CVE-2007-5760 CVE-2007-5958 CVE-2007-6427 CVE-2007-6428
+ CVE-2007-6429 CVE-2008-0006.
+
+nx-X11-3.1.0-3
+
+- Moved a variable definition placed in _mesa_make_current().
+
+nx-X11-3.1.0-2
+
+- Fixed TR10E01924. A crash could occur in _mesa_make_current().
+
+- Initialized after_ret variable in _XcmsGetProperty().
+
+nx-X11-3.1.0-1
+
+- Opened the 3.1.0 branch based on nx-X11-3.0.0-37.
+
+nx-X11-3.0.0-37
+
+- Changed the Xserver Imakefile to link against Xcomposite on the
+ Cygwin platform too.
+
+nx-X11-3.0.0-36
+
+- Fixed TR07E01806. Modified host.def to build GLX code with symbol
+ __GLX_ALIGN64 defined on Solaris platform.
+
+nx-X11-3.0.0-35
+
+- Flush explicitly the NX link before entering the select() in the
+ WaitForReadable() and WaitForWritable() routines.
+
+nx-X11-3.0.0-34
+
+- Changed the agent Imakefile to link to the Xcomposite library.
+
+nx-X11-3.0.0-33
+
+- Fix the NX_TRANS_WAKEUP stuff in WaitForSomething() to not over-
+ ride a valid timeout.
+
+- Check if the requesting client is gone in the XFixes functions
+ sending the cursor events.
+
+nx-X11-3.0.0-32
+
+- Define DDXOSVERRORF and DDXOSFATALERROR symbols on Sun.
+
+- Changed the copyright attribution from Medialogic to NoMachine.
+
+nx-X11-3.0.0-31
+
+- Make SmartScheduleStopTimer() visible outside Xserver/os/utils.c
+ so that it can be called by the agent. Export the declaration in
+ dixstruct.h.
+
+nx-X11-3.0.0-30
+
+- The OsVendorVErrorFFatal flag is set to 1 if the function pointed
+ by OsVendorVErrorFProc is called due to a fatal error.
+
+- Give the possibility to the agent to redirect the standard error
+ during a Popen() or a System() by setting the OsVendorStartRedir-
+ ectErrorFProc and OsVendorEndRedirectErrorFProc function pointers.
+
+nx-X11-3.0.0-29
+
+- Changed the default message printed on a fatal server error. The
+ new message is:
+
+ Error: Aborting session with 'Error text...'.
+
+- Hacked LogVWrite() to force all fatal error messages to have an
+ uppercase initial. Also remove the trailing newline and the full-
+ stop, if present.
+
+nx-X11-3.0.0-28
+
+- Corrected the typos in the ChangeLog.
+
+nx-X11-3.0.0-27
+
+- Fixed the cleanup of the X_RenderCompositeText16 padding bytes.
+
+- More code cleanup in the NX changes to the Xrender library.
+
+- Changed host.def to build the freetype and fontconfig libraries
+ if the agent server is also built. Freetype is built as a shared
+ library: this avoids the link error on 64 bit platforms.
+
+nx-X11-3.0.0-26
+
+- Applied the following security patches, from the X.Org security
+ advisory, April 3rd, 2007 "Multiple vulnerability in X server,
+ libXfont and libX11":
+
+ xorg-xserver-1.2.0-xcmisc.diff
+ xorg-libXfont-1.2.7-bdf-fontdir.diff
+ xorg-libX11-1.1.1-xinitimage.diff
+
+nx-X11-3.0.0-25
+
+- Added the missing *.X.original file for ChkIfEv.c and Xlib.h.
+
+nx-X11-3.0.0-24
+
+- Changed Xrender to clean up the padding bytes in XRenderComposite-
+ Text functions.
+
+- Added function XRenderCleanGlyphs() cleaning the padding bytes in
+ the data section of RenderAddGlyphs requests.
+
+nx-X11-3.0.0-23
+
+- Removed the additional parameter from the call to NXTransFlush()
+ in _XReply().
+
+- Call NXTransExit() on AbortServer() (called by FatalError()) to
+ give the proxy a chance to shut down the NX transport.
+
+nx-X11-3.0.0-22
+
+- Moved the replacement of XCheckIfEvent() ChkIfEv.c with the name
+ XCheckIfEventNoFlush().
+
+nx-X11-3.0.0-21
+
+- Set BUFSIZE to 8192 bytes. While the output buffer size can be
+ configured by setting the XLIBBUFFERSIZE in the environment (see
+ OpenDis.c), this constant is still used when reading from the
+ socket.
+
+nx-X11-3.0.0-20
+
+- If set, the handler pointed by _NXDisplayWriteFunction is called
+ after that more data is written to the display connection.
+
+nx-X11-3.0.0-19
+
+- Added a RejectWellKnownSockets() stub to make possible to compile
+ the agent when the NX transport is disabled.
+
+- Added more useful logs to _XWaitForWritable().
+
+nx-X11-3.0.0-18
+
+- Changed Imakefile of X11 and Xserver in order to build nxcompshad
+ just before the NX agent server.
+
+- Changed Imakefile in Xserver to add NXdamage.o to NXAGENTOBJS.
+
+nx-X11-3.0.0-17
+
+- Changed host.def in order to build Xdamage and Xrandr libraries.
+
+- Changed host.def in order not to build NXWin.
+
+nx-X11-3.0.0-16
+
+- Changed host.def in order to build Xtst as a shared library.
+
+nx-X11-3.0.0-15
+
+- Changes to comply with nxcompshad library.
+
+- Changed configuration to statically build Xtst library.
+
+- Restored parser directory under Xserver/hw/xfree86.
+
+nx-X11-3.0.0-14
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+- Added file COPYING.
+
+- In nx-X11/programs and nx-X11/programs/Xserver/hw/xfree86, removed
+ files and directories not needed to build servers.
+
+nx-X11-3.0.0-13
+
+- Changes aimed to link servers with static versions of Xdmcp and Xau
+ libraries.
+
+nx-X11-3.0.0-12
+
+- Added references to implented FR in the ChangeLog.
+
+- Removed nx-X11/fonts and nx-X11/doc directories. They are not needed
+ for building the NX components.
+
+nx-X11-3.0.0-11
+
+- Updated the copyright notices to year 2007.
+
+nx-X11-3.0.0-10
+
+- Applied the following security patches:
+
+ x11r6.9.0-cidfonts.diff
+ x11r6.9.0-dbe-render.diff
+ x11r6.9.0-geteuid.diff
+ x11r6.9.0-mitri.diff
+ x11r6.9.0-setuid.diff
+
+nx-X11-3.0.0-9
+
+- Merged the NX changes to X11 with the X11R6.9.0 version of X.org.
+
+nx-X11-3.0.0-8
+
+- Changes to build Xshadow library when building X11.
+
+- Changes to Xserver Imakefile to link Xshadow library.
+
+- Changes to host.def in order to build on old distributions.
+
+nx-X11-3.0.0-7
+
+- Imported changes up to nx-X11-2.1.0-2
+
+- Fixed TR08D01485. Updated rgb file paths validation in order to
+ support Ubuntu distribution.
+
+- Added Xtst to libraries to be linked by nxagent.
+
+- Changed Xpm Imakefile to build a shared library on Solaris.
+
+- Fixed build error on Solaris in xtrans.
+
+- Changed host.def not to build Xnest server.
+
+- Changed Xserver Imakefile to link nxaccess library.
+
+nx-X11-3.0.0-6
+
+- Added the path of nxaccess library to the server link command.
+
+nx-X11-3.0.0-5
+
+- Implemented FR10C01079 and FR10C01080. The merge of NX changes to
+ the X.org code is complete.
+
+- Merged changes in config/cf. The NX-*.def files have been dismissed.
+ Main platform dependent configurations have been moved to host.def.
+
+- Removed *.reference files from config/cf.
+
+- Fixed compilation for Cygwin platform.
+
+nx-X11-3.0.0-4
+
+- Imported all changes up to nx-X11-2.0.0-32.
+
+- Cleaned up lib/zlib directory.
+
+- Added missing file programs/Xserver/os/utils.c.NX.original.
+
+- Updated the copyright notice to year 2006.
+
+- The pointer to the display buffer is reset after an I/O error.
+ This prevents leaving the buffer in an inconsistent state if the
+ error occurs inside _XFlush().
+
+- Removed the modifications to the Xrender library. The cleanup of
+ the padding bytes is now performed by the NX transport.
+
+- NX uses the updated ZLIB from its build tree, so Imake.tmpl will
+ now assume that the platform as ZLIB unless otherwise stated.
+
+- The path of the SecurityPolicy file is searched and validated at
+ runtime.
+
+- Added the _X11TransSocketProxyConnInfo() function to Xtranssock.c
+ It returns the pointer to the XtransConnInfo private, if it is a
+ valid _NXProxyConnInfo structure.
+
+- The above function is used by OpenDis.c to detect if the NX trans-
+ port was requested on the display and avoid spurious error messa-
+ ges in the case of a connection failure.
+
+- Added NXmiwindow.o to the NXAGENTOBJS in the Xserver's Imakefile
+ and imported NXmiwindow.c in nxagent. This allows us to check the
+ pointer to the pOldClip region in miSetShape() before going on
+ freeing it.
+
+- The path of the XKB base directory and of the xkbcomp comand is
+ validated at runtime.
+
+- Also added a check to verify the validity of the rgb file path.
+
+- Added NXresource.o to NXAGENTOBJS in the Imakefile of nxagent. We
+ need this to a assign a resource to the pixmaps and other server
+ objects which need to be enumerated at reconnection. Some objects,
+ being created by the X server and not by the clients, don't pass
+ through the resource assignment process operated by the dix. To
+ ensure that all objects get a resource, we add a resource at the
+ time the object is created and temporarily assign the resource to
+ the server client. If the dix later assigns the resource to a va-
+ lid client, the resource is removed from the server client's list.
+
+- The display block handler registered by the client is called in
+ WaitForReadable() and WaitForWritable() before every select(),
+ not only upon entering the function. The reason is that more
+ data can be possibly produced for the NX link by the proxy it-
+ self and, when setting the flush policy to deferred, the client
+ may not have the chance of flushing the NX link.
+
+- Fixed a bug in XkbUseExtension() that caused Xlib to query the
+ presence of the XKEYBOARD extension multiple times. This partial-
+ ly implents the FR01D01275. The complete implementation required
+ modifications to the X11 agent, implemented in nxagent-2.0.0-33.
+
+- Updated to comply with the new NXTransFlush() interface.
+
+- Both nxwin and nxagent now read the X authority file by using an
+ fopen() instead of the system command 'cat'.
+
+- Removed NXmiwindow.o from the NXAGENTOBJ list. The agent will now
+ use the original miwindow.c.
+
+- Added some additional logs in Xtranssock.c to follow the creation
+ and removal of the X server's Unix listener.
+
+- Avoided the sleep of 5 seconds forced by Xtransutil.c if the dir-
+ ectory where the Unix listener is created is not owned by root.
+ This sleep is not executed on Cygwin (where the X socket can be
+ hardly owned by root) but may delay the startup of the agent if
+ the user chose a different NX_TEMP directory. Furthermore, it is
+ unclear what real benefits such sleeps are intended to bring to
+ the security of the X server. This can be controlled by defining
+ the NX_TRANS_SLEEP directive in Xserver/os/Imakefile.
+
+- Added NXmiexpose.o to the NXAGENTOBJ.
+
+- Ensured that _X11TransSocketCloseConnInfo() now initiates the NX
+ shutdown by calling NXTransClose().
+
+- Corrected a misplaced #else that made SocketUNIXConnect() skip a
+ block if the connection was not to the NX transport.
+
+- Updated to comply with the new NX function prototypes introduced
+ in nxcomp-2.0.0-31.
+
+- Moved the most important Xtranssock.c modifications into separate
+ functions.
+
+- Ensured that the modifications enabling the internal connections
+ to the proxy are compiled only when the TRANS_CLIENT directive is
+ defined.
+
+- Solved a bug that prevented the X11 socket to be deleted at the X
+ server shutdown. This needs further tests.
+
+- Added nxcompext to the link of nxagent, now that the dependency
+ of libX11 from nxcompext is removed.
+
+- Improved the Xtranssock routines to never loop through the array
+ of connection info.
+
+- Added a congestion flag to the connection info structure and a
+ function querying the transport and reporting if a change in the
+ congestion state has occurred. The code is currently not enabled,
+ because instead of polling the transport, we let the proxy notify
+ the changes in congestion state by using the callback. The code
+ can be used in future to extend the library, for example, by add-
+ ing some counters tracking the bandwidth usage of the socket con-
+ nection, so that we can make the congestion notifications work
+ even with a plain X11 connection.
+
+- Profiled the routines in XlibInt.c to reduce the number of calls
+ to the error predicate function provided by the client.
+
+- Fixed the nxcompext build problem that caused make World to fail.
+
+- Added a 'CONF' target to the X11 and Xext Imakefiles so that the
+ configure script is not run if the config.status exists.
+
+- Added the _NXDisplayBlockHandler hook. The function is called by
+ Xlib before blocking. The parameter says if Xlib is going to wait
+ for more input or because it needs to write to the display socket.
+ The client can use the hook to perform any internal operation that
+ may require some time to complete. The user, though, should not
+ try to read or write to the display inside the callback routine.
+
+- Removed the outdated NX_TRANS_PROCESS, NX_TRANS_THREAD and NX_TR-
+ ANS_INCLUDE defines.
+
+- Reverted the lib/Xext Imakefile to the original XF86 version and
+ moved the build of the nxcompext library among the libX11 depend-
+ encies.
+
+- Corrected the lib/X11 Imakefile so that a new build of nxcomp and
+ nxcompext is not attempted if the libraries are up-to-date.
+
+- Removed the unused display buffer and image cleanup functions.
+
+- Reverted the PutImage.c file to the original XF86 version.
+
+- Added the _NXDisplayErrorPredicate function in XlibInt.c. It is
+ actually a pointer to a function called whenever Xlib is going to
+ perform a network operation. If the function returns true, the
+ call will be aborted and Xlib will return the control to the ap-
+ plication. It is up to the application to set the XlibDisplayIO-
+ Error flag after the _NXDisplayErrorPredicate returns true. The
+ function can be used to activate additional checks, besides the
+ normal failures detected by Xlib on the display socket. For exam-
+ ple, the application can set the funciton to verify if an inter-
+ rupt was received or if any other event occurred mandating the
+ end of the session.
+
+- Modified XIfEvent(), XMaskEvent() and XPeekIfEvent() to check the
+ _NXDisplayErrorPredicate function and return immediately if the
+ function returns true.
+
+- Modified _XWaitForReadable() to never enter the loop if the dis-
+ play is broken.
+
+- Corrected a make problem on Windows that caused the nxcomp and
+ nxcompext libraries to be referred with the wrong name, with the
+ result that a new configure and make was attempted at each build
+ attempt.
+
+- Merged all the changes to os, Xext, xkb, dix.
+
+- Changed host.def to build only the agent server.
+
+- Merged the changes to Xtranssock.c
+
+nx-X11-3.0.0-3
+
+- Merged the changes to lib/X11. Restored original PutImage.c and
+ ClDisplay.c files.
+
+nx-X11-3.0.0-2
+
+- Created a directory named 'reference' to keep files that are chan-
+ ged during the development of nx-X11 since the 1.5.0-16 to 2.0.0-32
+ version. These files will be removed as long as the differences are
+ merged to the 3.0.0 version. When all differences are merged, this
+ directory will be removed.
+
+nx-X11-3.0.0-1
+
+- Opened the 3.0.0 branch based on the nx-X11-2.0.0-9. The 3.0.0
+ branch will now support the migration toward the X.org tree. Due
+ to time concerns, the 2.0.0 branch is going to be based on the
+ same nx-X11 as the 1.5.0.
+
+nx-X11-2.0.0-9
+
+- Modified the agent link arguments to explicitly include the NX
+ libraries.
+
+- Disabled the Xinerama extension to avoid further clashes with
+ the redefinition of GC in Xlib.
+
+- Added os/libos.a at the end of the agent link.
+
+nx-X11-2.0.0-8
+
+- Moved the declarations of _NXEnable* and related structures from
+ Xlibint.h to NXlibint.h.
+
+- Added provision for building the agent. This can be controlled by
+ setting NXAgentServer to YES in host.def.
+
+- Setting the NXUpgradeAgentServer variable to YES in the host.def
+ file will make the agent assume that it is being built in the new
+ environment. This variable is normally unset when building in the
+ 1.5.0 tree.
+
+nx-X11-2.0.0-7
+
+- Fixed a problem on AMD64 due to the size of the area pointed by
+ the argument of _X11TransBytesReadable(). BytesReadable_t is long,
+ at least on Linux, while the ioctl() requires a pointer to an int.
+ The original _X11TransBytesReadable() function simply calls the
+ ioctl() by passing the pointer that is provided. NXTransReadable(),
+ instead, was correctly returning the value assuming a pointer to
+ a long, but this 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.
+
+- Removed the outdated NX_TRANS_PROCESS and NX_TRANS_THREAD code.
+
+nx-X11-2.0.0-6
+
+- Made xterm work with the NX transport. This required small changes
+ to the Xt toolkit's and the xterm's files to let them use the NX
+ aware select(). This is useful to test the NX transport until the
+ nxagent server is integrated.
+
+- When the transport is gone _X11TransSocketBytesReadable() returns
+ EPIPE. This makes the client become aware of the closure of the
+ connection.
+
+- Added a call to NXTransDestroy() in XCloseDisplay().
+
+- The exit() function in XlibInt.c causes a call to NXTransExit().
+
+- Merged changes to dix/pixmap.c, xkb/xkbDflts.h, mi/Imakefile.
+
+- Removed unneeded changes and files containing patches already in
+ the latest X.org distribution: dix/dispatch.c, fb/fbcompose.c, fb/
+ fbgc.c, xkb/ddxList.c, font/fontfile/dirfile.c, font/fontfile/
+ encparse.c, font/fontfile/fontfile.c, font/FreeType/fttools.c,
+ Xrender/FillRect.c, Xrender/Picture.c.
+
+nx-X11-2.0.0-5
+
+- Changes to the lib/X11/Imakefile to cleanly build the tree. This
+ is obtained by creating a link to the Xcomp library in exports/lib
+ without having to modify the programs' Imakefiles.
+
+- Finished merging the NX changes in the lib/X11 files.
+
+- Merged the CHANGELOG with the one from the 1.5.0 tree.
+
+nx-X11-2.0.0-4
+
+- Merged the NX changes in most Xtrans and lib/X11 files.
+
+nx-X11-2.0.0-3
+
+- Temporarily disabled the use of the MMX extensions in the Xserver's
+ fb code to successfully compile with GCC 4.
+
+nx-X11-2.0.0-2
+
+- Imported the *.NX.reference and *.XF86.reference files that will
+ be needed for the merge. These files are the *.original from the
+ 1.5.0 tree. They will be removed as long as the merge advances.
+
+nx-X11-2.0.0-1
+
+- Created the 2.0.0 branch based on X.org the 6.8.99.16 snapshot.
+
+nx-X11-1.5.0-16
+
+- Added the missing *.XF86.original and *.NX.original files.
+
+nx-X11-1.5.0-15
+
+- Made the nxagent server use select() instead of poll() on Solaris
+ so that it can leverage the new NX transport.
+
+- Moved the NXTransFlush() call to _XReply().
+
+nx-X11-1.5.0-14
+
+- Added the 'synchronous' parameter in the _XWaitForReadable() call
+ to NXTransFlush().
+
+nx-X11-1.5.0-13
+
+- Removed the log entry in XlibInt.c on calling the NXTransFlush().
+
+nx-X11-1.5.0-12
+
+- Changed XlibInt.c and utils.c to call NXTransExit().
+
+nx-X11-1.5.0-11
+
+- Changed XlibInt.c to comply with the new NXTransFlush() interfa-
+ ce introduced in nxcomp-1.5.0-42.
+
+- Cosmetic changes to messages printed for debug.
+
+nx-X11-1.5.0-10
+
+- Ensured that all calls to _XIOError() are followed by a return.
+
+- Put exiting the client program in the case of an I/O error under
+ the control of the _NXContinueOnDisplayError flag. If set, the
+ I/O error routine will simply return, leaving to the application
+ the responsibility of checking the state of the XlibDisplayIOEr-
+ ror flag.
+
+- Added some checks whenever a read or write is performed on the X
+ connection, so that we can exit the I/O loop if the X channel is
+ gone. It is likely that more work will be needed when trying to
+ support XTHREADS enabled connections. This should not be a pro-
+ blem for now, as the default is still to quit the application un-
+ less the _NXContinueOnDisplayError flag is explicitly set.
+
+nx-X11-1.5.0-9
+
+- Removed the references to the cygipc library in NXWin. Now use the
+ cygserver daemon to provide the MIT-SHM extension.
+
+- Fixed an error in the UseCygIPC definition.
+
+- Changed the cygwin.cf file to avoid redefinition of the BuildGlxExt,
+ XWinServer and BuildGlxExt symbols.
+
+nx-X11-1.5.0-8
+
+- Added provision for deferred writes in the NX transport. When en-
+ tering _XWaitForReadable() we must ensure that data is flushed to
+ the proxy link.
+
+- Added the UseCygIPC define to NX-Cygwin.def.
+
+- Updated the NoMachine copyright notice on the modified files.
+
+nx-X11-1.5.0-7
+
+- Added the GLX extension in NX-Sun.def.
+
+- Added some more logs in WaitFor.c.
+
+nx-X11-1.5.0-6
+
+- Modified Xlibint.h and XlibInt.c to remove the _NXFlushSize para-
+ meter. New agents run the NX transport in-process, so we don't get
+ any benefit from increasing the display buffer size.
+
+- Modified NX-Darwin.def to not build the NXDarwin server. Since the
+ 1.4.0 version the NXDarwin server is unsupported and the NX client
+ for the Mac requires that the Apple X server is installed.
+
+- Changed NX-Linux.def to avoid the warning due to "SharedLibGLw"
+ being not defined.
+
+nx-X11-1.5.0-5
+
+- Modified the Xserver Imakefile to link nxagent with FbPostFbLibs
+ and avoid including mfb/libmfb.a.
+
+- Added the GLX extension in NX-Linux.def. This provides unaccelera-
+ ted support in nxagent, with GLX operations translated into core X
+ protocol primitives.
+
+- Fixed x-X11/programs/Xserver/GL/dri/Imakefile to look in ../../hw/
+ /xfree86/os-support/bus for includes.
+
+nx-X11-1.5.0-4
+
+- Avoid calling NXTransSelect() if the transport is gone, so that we
+ don't have to wait until the timeout.
+
+- Added the "-fno-strict-aliasing" option to linux.cf when compiling
+ with a GCC version >= 4. In the words of Stefan Dirsch: "The opt-
+ ion, which is default since gcc 3.1, can result in wrong code when
+ the gcc warnings related to it are ignored. And as there are seve-
+ ral warnings in X11 related to it, it has been disabled for X11
+ from the beginning. This didn't change for gcc4, so it still needs
+ to be used."
+
+- Added more logs in XlibInt.c and utils.c. A warning is printed if
+ the SmartScheduler is initialized.
+
+nx-X11-1.5.0-3
+
+- Started integration of nxcomp with the X libraries. The Xtrans
+ code creates an internal connection to the nxcomp library instead
+ of a child proxy process.
+
+- Changed Xpoll.h and XlibInt.c to replace the standard Select
+ with a version giving NX a chance to check its own descriptors.
+
+- Implemented the NXTransReadVector() and the NXTransWriteVector()
+ functions to replace READV() and WRITEV().
+
+- Implemented memory-to-memory communication with the NX proxy by
+ making use of the NXTransAgent() interface.
+
+nx-X11-1.5.0-2
+
+- We think that the way LoadAuthorization() is working is wrong.
+ It doesn't reset the list of stored authorizations before reading
+ the new cookies. Our take is that if a new auth file is to be
+ read, the only cookies that are to be accepted are those that are
+ in the new file, not those in the file -plus- those that have
+ been in the file in the past. Furthermore, if the list can't be
+ read or it is empty, it should assume that it ignores which co-
+ okies are valid and thus it should disable any access. Your mile-
+ age can vary. A less draconian approach could be to leave the old
+ cookies if the file can't be read and remove them only if the
+ file is empty.
+
+ Adding the cookies without removing the old values for the same
+ protocol has an important implication. If an user shares the co-
+ okie with somebody and later wants to revoke the access to the
+ display, changing the cookie will not work. This is especially
+ important with NX. For security reasons, after reconnecting the
+ session to a different display, it is advisable to generate a
+ new set of cookies, but doing that it is useless with the current
+ code, as the old cookies are going to be still accepted. On the
+ same topic, consider that once an user has got access to the X
+ server, he/she can freely enable host authentication from any
+ host, so the safe behaviour should be to reset the host based
+ authenthication at least at reconnection, and keep as valid only
+ the cookies that are actually in the file. This behaviour would
+ surely break many applications, among them a SSH connection run
+ inside a NX session, as ssh -X reads the cookie for the display
+ only at session startup and does not read the cookies again
+ when the auth file is changed.
+
+ Another bug (or feature, depending on how you want to consider
+ it) is that if the authority file contains entries for different
+ displays (as it is the norm when the authority file is the default
+ .Xauthority in the user's home), the X server will match -any- of
+ the cookies, even cookies that are not for its own display. This
+ means that you have to be careful when passing an authority file
+ to nxagent and maybe keep separate files for letting nxagent find
+ the cookie to be used to connect to the remote display and for
+ letting it find what cookies to accept. If the file is the same,
+ clients will be able to connect to nxagent with both the cookies.
+ This bug obviously affects any X server, also the real X server
+ running on the workstation, so it is common to see nxagent being
+ able to connect to the X server even if no cookie matches the
+ real display.
+
+- Added a check in lib/Xau/AuRead.c to prevent the fread() call to
+ be interrupted by SIGCHLD while reading the auth file. Due to the
+ way the old code worked, this could lead to the server enabling
+ local host access to the display. This problem had been identified
+ in the past. We just found that all the code dealing with reading
+ the auth file was affected. The code calls sigprocmask() to block
+ the signal (though it leaves some other calls unprotected) but the
+ SIGCHLD was not included in the set.
+
+- Added SIGCHLD to the set of signals that are blocked when reading
+ the authorization file.
+
+- As I was at it, I changed the path to the SecurityPolicy file. A
+ few Linux ditributors ship the file in $LIBDIR/xserver, a few only
+ in /etc/X11/xserver, most others in both places. It seems that
+ those who ship in $LIBDIR/xserver do also in /etc/X11 but the op-
+ posite is not true, so I switched to /etc/X11.
+
+nx-X11-1.5.0-1
+
+- Opened the 1.5.0 branch.
+
+nx-X11-1.4.1-2
+
+- Set parameter UseCygIPC on cygwin conf file in order to force the
+ build of MIT-SHM estension.
+
+- Removed some spurius object file.
+
+nx-X11-1.4.1-1
+
+- Opened the 1.4.1 branch.
+
+nx-X11-1.4.0-8
+
+- Changed DefaultFontPath and DefaultRGBDatabase in
+ NX-Cygwin.def.
+
+nx-X11-1.4.0-7
+
+- Imported dispatch in nxdarwin package, in order to let
+ nxdarwin being able to detect new client connection.
+
+- Changed the Xpm Imakefile to make also .a static library
+ on Solaris. To link nxviewer and nxdestkop staticaly.
+
+nx-X11-1.4.0-6
+
+- XInput extension enabled on MacOSX.
+
+- Added some missing backup files of the original XFree86
+ package.
+
+nx-X11-1.4.0-5
+
+- Changed the mi Imakefile in order to let xfree86 servers use
+ the normal mi extension initialization for the XInput exten-
+ sion.
+
+- XInput extension enabled on Solaris.
+
+nx-X11-1.4.0-4
+
+- Removed the RejectWellKnownSocket for the cygwin and
+ MacOSX environments that doesn't use the Xtransport library.
+
+nx-X11-1.4.0-3
+
+- Changed the implementation of the reject method in the
+ Xtransport library, now close any new incoming connection
+ immediately without reading or writing to it.
+
+nx-X11-1.4.0-2
+
+- Implemented a reject method in the Xtransport library,
+ this function accept and close every connection attempt,
+ on the specified listening socket.
+
+- Added the new function RejectWellKnownSocket to the os
+ connection code.
+ This function use the new transport reject function on
+ all listening socket.
+
+nx-X11-1.4.0-1
+
+- Opened the 1.4.0 branch.
+
+- Removed forgotten nxagent-1.3.2-20 directory.
+
+nx-X11-1.3.2-9
+
+- Prevents NX Darwin server going through the reset. On Darwin
+ we found that the it is not possible to get the correct key-
+ board layout unless it is set on the local machine, before
+ the NX session is started, by using xmodmap. As we set the
+ keyboard locally, we must prevent the X server to reset, or
+ we would loose any local configuration.
+
+nx-X11-1.3.2-8
+
+- Removed action associated to keysym XK_Terminate_Server. This
+ could cause agent to be terminated when pressing shift + back-
+ space if using the default US keyboard mapping.
+
+- Disabled the remaining debug logs in lib/X11/PutImage.c
+
+nx-X11-1.3.2-7
+
+- Fixed the wrong programs/Xserver/Imakefile in 1.3.2-6 package.
+
+nx-X11-1.3.2-6
+
+- Changed the define from NX_CLEAN_IN_PLACE to NX_CLEAN_INPLACE.
+ Definition of symbol is now placed in the Imakefile.
+
+- The new _NXEnableCleanInplace Xlib variable does control which
+ algorithm is used to clean the images. Setting NX_IMAGEINPLACE
+ in the environment will activate the in-place cleanup.
+
+- The default value of _NXEnableCleanInplace is -1. Leaving it to
+ a value <= 0 disables use of CleanInplace.
+
+nx-X11-1.3.2-5
+
+- Patch in config/cf/sun.cf. Fix for libfontconfig compilation
+ during gmake Everything on Solaris.
+
+- Patch in lib/X11/Imakefile. Fix for nxcomp compilation during
+ gmake World on Solaris.
+
+nx-X11-1.3.2-4
+
+- Image cleanup is now performed by using NXCleanInPlaceImage from
+ nxcompext. This function saves a buffer copy by cleaning the
+ padding bytes in the same buffer provided by the caller. Note that
+ to prevent memory violations in the case the image was allocated
+ in a static buffer, the function will temporarily redefine the
+ SIGSEGV handler. The former handler is restored before returning
+ to the caller. This can potentially affect some multithreaded
+ clients. Is to be decided if the function is safe enough to be
+ included in the production release.
+
+nx-X11-1.3.2-3
+
+- More debug logs in programs/Xserver/xkb/ddxLoad.c.
+
+nx-X11-1.3.2-2
+
+- Added NXmiwindow.o to NXAGENTOBJS in programs/Xserver/Imakefile.
+ File was not linked into the resulting nxagent. This solves the
+ problem of missing repaints in CDE and other Xt applications.
+
+nx-X11-1.3.2-1
+
+- Added some debug logs in programs/Xserver/xkb/ddxLoad.c. Function
+ XkbDDXCompileKeymapByNames is called by OpenOffice to read the
+ keyboard configuration whenever a drop-down menu is accessed. It
+ seem to always fail with the following error:
+
+ The XKEYBOARD keymap compiler (xkbcomp) reports:
+ > Error: Can't find file "unknown" for geometry include
+ > Exiting
+ > Abandoning geometry file "default"
+
+- Opened the 1.3.2 development branch.
+
+nx-X11-1.3.1-12
+
+- Fixed a problem in xkb/ddxLoad.c on Solaris where Pclose was
+ always returning an error code despite the fact that command
+ was executed properly.
+
+nx-X11-1.3.1-11
+
+- Changed default GCC flags from '-O2 -fno-strength-reduce' to
+ -O3. No platform where NX is targeted is currently using a
+ GCC 2.x affected by the -fno-strength-reduce bug. Note also
+ that nxcomp is already compiled with -O3 since 1.1.1, so it
+ can be considered safe.
+
+nx-X11-1.3.1-10
+
+- Imported an updated fbcompose.c file from XFree86-4.3.99.902.
+ This fixes "uninitialized value" problems reported by Valgrind.
+
+- Fixed further buffer overflows by updating the following file
+ with recent versions coming from the XFree86-4.3.99.902 tree.
+
+ nx-X11/lib/font/fontfile/dirfile.c
+ nx-X11/lib/font/fontfile/encparse.c
+ nx-X11/lib/font/fontfile/fontfile.c
+
+- Fixed a possible buffer overflow in lib/font/FreeType/fttools.c.
+ Verified that the change is already in the XFree86 4.4.0 CVS.
+
+nx-X11-1.3.1-9
+
+- Fixed Xserver/Imakefile which was still referencing NXpixmap.o.
+
+nx-X11-1.3.1-8
+
+- Imported an updated fbgc.c from XFree86-4.3.99.902. This fixes
+ some minor problems reported by Valgrind.
+
+- A major problem was reported by Valgrind about reading after
+ the block allocated in fbCreatePixmap from AllocatePixmap. The
+ file pixmap.c has been modified so that 4 bytes are added to
+ the pixmap buffer at any new allocation. This quick hack should
+ solve the problem for both nxagent and the NXWin server. Further
+ investigation is planned for the next release.
+
+- Fixed Xtranssock.c to compile on Solaris where struct sigaction
+ doesn't have the sa_restorer member.
+
+nx-X11-1.3.1-5
+
+- Renamed the NX-sun.def configuration file to NX-Sun.def.
+
+- Renamed the non-standard NX_iPAQ_XServer and NX_Zaurus_XServer
+ symbols to NXiPAQXServer and NXZaurusXServer.
+
+- Added the missing sun.cf.XF86.original file in config/cf.
+
+- Added the missing empty file host.def.XF86.original in the
+ same directory.
+
+- Added initialization of sa.sa_mask when setting sigaction()
+ for SIGCHLD. The problem was reported by Valgrind running
+ nxagent.
+
+- Removed an unused block of code from WaitFor.c. The code had
+ been commented out in previous versions.
+
+- Removed the non-standard colon at the end of version in this
+ CHANGELOG.
+
+- Removed the spurious spaces in this CHANGELOG.
+
+nx-X11-1.3.1-4
+
+- Added a little workaround to the top Imakefile intended to
+ hide the makedepend warnings about non portable whitespaces
+ in sources.
+
+nx-X11-1.3.1-3
+
+- Fixed compilation problem with nxagent-1.3.1-13.
+
+nx-X11-1.3.1-2
+
+- Changes in NX-sun.def configuration file for Solaris to allow
+ compilation of the XKB extension.
+
+nx-X11-1.3.1-1
+
+- Opened the 1.3.1 development branch.
+
+nx-X11-1.3.0-6
+
+- Original output buffer size in stock XFree86 is 2048. We try
+ to reduce context switches and help stream compression by
+ increasing the maximum size of the buffer 8192. _NXFlushSize
+ determines when the display buffer is actually flushed. It is
+ set by default to 4096 but agents should set it to 0 if they
+ want to disable early flush.
+
+- Added the _NXLostSequenceFunction function pointer to let NX
+ agents suppress the error message and modify the default Xlib
+ behaviour when out-of-order sequence numbers are received.
diff --git a/doc/_attic_/NoMachine_documentation_files/nx-X11_programs_Xserver_hw_nxagent_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nx-X11_programs_Xserver_hw_nxagent_CHANGELOG
new file mode 100644
index 000000000..0a82773f4
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nx-X11_programs_Xserver_hw_nxagent_CHANGELOG
@@ -0,0 +1,6359 @@
+ChangeLog:
+
+nxagent-3.5.0-9
+
+- Fixed an issue with cursor position set in XTest extension.
+
+nxagent-3.5.0-8
+
+- Fixed TR01J02646. Performance issues with cairo version 1.12.
+
+- Fixed TR01J02667. Changes to mouse sensitivity couldn't be forwarded
+ to NX client host although -noignore was among extra options.
+
+- Fixed TR05J02705. Agent ignore WarpPointer requests.
+
+- Fixed TR05J02706. Suspended sessions could not be recovered using
+ a client form a different version.
+
+- Fixed TR05J02703. Agent failed because of missing checks on source
+ drawables in the render code.
+
+nxagent-3.5.0-7
+
+- Fixed TR10I02622. Corrected function searching for icon file.
+
+nxagent-3.5.0-6
+
+- Fixed TR10I02621. Avoided explicit call to XMapWindow() at recon-
+ nection stage.
+
+- Fixed TR10I02620. Solved error in default visual set up.
+
+- Fixed TR10H02390. Get the actual remote key code for CapsLock and
+ NumLock.
+
+nxagent-3.5.0-5
+
+- The NX agent failed to resize its own window to fit the desktop size
+ in shadow sessions. TR07I02561 is now fixed also in shadow mode.
+
+nxagent-3.5.0-4
+
+- Fixed TR07I02530. Solved a buffer overflow occurring when the '-fp'
+ option value exceeds 1024 characters.
+
+- Extended list of the available screen geometries.
+
+nxagent-3.5.0-3
+
+- Fixed TR08I02572. Upgraded RandR extension to version 1.2.
+
+- Fixed TR07I02561. The NX agent failed to resize its own window to
+ fit the desktop size.
+
+nxagent-3.5.0-2
+
+- Fixed TR0502449. Initialized font server path even if font server
+ connection fails.
+
+nxagent-3.5.0-1
+
+- Opened the 3.5.0 branch based on nxagent-3.4.0-16.
+
+- Updated copyright to year 2009.
+
+- Fixed TR0302438. Added a check in function exporting property in
+ order to handle the case looking up an atom name returns a null
+ pointer.
+
+nxagent-3.4.0-16
+
+- Updated copyright to year 2011.
+
+nxagent-3.4.0-15
+
+- Added reference to fixed TR11H02405.
+
+nxagent-3.4.0-14
+
+- Reverted fix for TR03H02335 implemented in nxagent-3.4.0-6. The
+ emulation of right click by Control key + left click introduces
+ issues for some applications changing the reaction to the left click
+ depending on the state of Control key. Issue reported in TR03H02335
+ affects Apple laptop touchpads having a single button acting as
+ left button: on those devices the right button can be emulated by
+ a double-fingered tap (using two fingertips simultaneously).
+
+nxagent-3.4.0-13
+
+- Fixed TR12H02414. Exported property must be split if ChangeProperty
+ request exceeds 262140 bytes.
+
+- Reset AllScreens option at reconnection time if full screen mode
+ have to be automatically turned off.
+
+nxagent-3.4.0-12
+
+- If one of the two full screen modes is active ('one screen' or 'all
+ screens') both keystrokes Ctrl-Alt-F and Ctrl-Alt-Shift-F change the
+ mode back to 'windowed'.
+
+- Fixed TR11H02405. XRenderFreePicture is called only for pictures
+ that were actually created on the X server side.
+
+- Ctrl+Alt+f switch fullscreen to all monitors, while Ctrl+Alt+Shift+f
+ does it to one monitor only.
+
+- If the fullscreen option is enabled at the startup, session starts
+ in the fullscreen mode on all monitors.
+
+- Added a call to XReparentWindow in the nxagentSwitchAllScreens().
+
+- Corrected focus and grab when switching to fullscreen on
+ all monitors.
+
+- Removed a compile warning e deleted some unused variables.
+
+- Removed nxagentPointerAndKeyboardGrabbed variable.
+
+- Use the override redirect attribute to switch to fullscreen to all
+ monitors instead of send _NET_WM_FULLSCREEN_MONITORS hint to the WM.
+
+- Added nxagentMinimizeFromFullScreen(), nxagentMaximizeToFullScreen()
+ and nxagentCreateIconWindow().
+
+- Removed check on EnterNotify to grab the keyboard in fullscreen
+ mode not only if mode is 'NotifyNormal'.
+
+nxagent-3.4.0-11
+
+- Corrected switching between viewport mode and resize mode.
+
+- Fixed TR04H02340. Keycode is correctly translated in shadow sessions
+ also if the remote X display is using evdev.
+
+nxagent-3.4.0-10
+
+- Handled XGrabKeyboard() return value.
+
+- Fixed TR10D01512. NumLock and CapsLock keys are now synchronized
+ between local and remote.
+
+nxagent-3.4.0-9
+
+- Fixed TR06H02362. No icon was swown in the task bar.
+
+- Fixed keyboard grab in fullscreen mode.
+
+- Fixed compiler warnings.
+
+nxagent-3.4.0-8
+
+- Grab the keyboard in fullscreen mode on EnterNotify only if mode is
+ 'NotifyNormal'.
+
+- Yield control in the dispatch loop in case we stop the smart sche-
+ duler timer while waiting for a reply from the remote display.
+
+nxagent-3.4.0-7
+
+- Fixed TR08D01478. The communication with the compiz window manager
+ by means of the _NET_WM_PING property was not handled properly.
+
+- Fixed a type mismatch in XKB events on 64 bit platforms.
+
+- Moved grab/ungrab keyboard from focus in/out event to enter/leave
+ notify event.
+
+- Removed nxagentIconWindow because it's not longer used.
+
+nxagent-3.4.0-6
+
+- Fixed TR09F02102. Problem was with pointer buttons map.
+
+- Fixed TR02H02327. Some KeyRelease events was discarded.
+
+- Fixed up Num and Caps locks.
+
+- Fixed TR03H02335. Emulated right mouse button for Mac clients.
+
+- Added utilities to print info about internal and remote windows.
+
+- Fixed TR01F01995. Solved a picture resource leak by destroying remo-
+ te pictures only when their reference counter returns to zero.
+
+- Fixed TR04H02337. Errors occurred because pictures with no drawable
+ were handled badly.
+
+- Implemented handling nxagent's private for gradient pictures and so-
+ lid fill picture.
+
+- Fixed BadMatch condition check in function ProcRenderComposite.
+
+- Fixed nxagentComposite() to handle situations with source picture
+ drawable pointing to NULL.
+
+- Implemented render acceleration for requests: CreateSolidFill,
+ CreateLinearGradient, CreateRadialGradient, CreateConicalGradient.
+
+- Fixed TR03G02196. Dialogs are shown to the fore when the NX session
+ is in fullscreen mode.
+
+- Changed mechanism to switch to fullscreen mode. Now the override
+ redirect attribute is no longer used and _NET_WM_STATE_FULLSCREEN
+ hint is sent to the WM.
+
+nxagent-3.4.0-5
+
+- Updated copyright to year 2010.
+
+nxagent-3.4.0-4
+
+- Fixed TR07F02090. Now XDMCP sessions start without problems.
+
+- Fixed TR08G02259. Corrected window border granularity of rootless
+ session at reconnection on 64 bit platforms.
+
+- Fixed TR11G02290. Forcing null timeout with queued events only if
+ display connection is up. This prevents the flood of session log.
+
+- Fixed TR10G02287. Now QueryTree's loop is aborted in case of failure
+ and session log isn't filled anymore with repeated warning messages.
+
+- Fixed TR01G02154. Corrected window placement when switching between
+ fullscreen and windowed mode.
+
+- Fixed TR09G02276. Now the agent does not receive unwanted characters
+ while interacting with the local window manager.
+
+- Implemented FR02G02174. Added ability to do large screen pans in
+ viewport mode through key combination Ctrl+Alt+Shift+Arrow.
+
+- Corrected parsing of the 'client' option when the client OS is Mac.
+
+nxagent-3.4.0-3
+
+- Fixed TR09G02271. The array containing the font name fields was not
+ correctly initialized for non-standard font names.
+
+nxagent-3.4.0-2
+
+- Updated copyright to year 2009.
+
+nxagent-3.4.0-1
+
+- Opened the 3.4.0 branch based on nxagent-3.3.0-19.
+
+- Changed the printed version number.
+
+nxagent-3.3.0-19
+
+- Fixed TR09G02266. A proper error message is printed in the session
+ log if the shadowing initialization fails because of a mismatch in
+ the visual class.
+
+- Added a workaround for X servers that doesn't return 1 among the
+ available depths.
+
+nxagent-3.3.0-18
+
+- The area to restore from the backing store is limited by the screen
+ size instead of the visible screen.
+
+nxagent-3.3.0-17
+
+- Fixed TR12F02150. The agent could crash when copying text from VNC
+ viewer. Fixed by aborting the procedure in case the retrieved pro-
+ perty has not a valid format.
+
+nxagent-3.3.0-16
+
+- Fixed TR07G02247. Don't try to call XSetWindowColormap() if the
+ window has no colormap, e.g. if its class is InputOnly.
+
+nxagent-3.3.0-15
+
+- Fixed TR04G02210. Region is cut to the visible screen before re-
+ storing areas from the backing store.
+
+- Fixed TR07G02246. Box is shrinked if bounds can't stay in a short
+ signed integer.
+
+nxagent-3.3.0-14
+
+- Fixed TR03G02206. waitpid() call was missing for the "Fonts replace-
+ ment" dialog type.
+
+- Fixed TR03G02195. Added a properties structure compatible with 32
+ and 64 bit platform types.
+
+nxagent-3.3.0-13
+
+- Handle the window unmap immediately. Don't add it to the configure
+ queue.
+
+nxagent-3.3.0-12
+
+- Fixed TR03G02200. Timestamps could be in the future in KeyRelease
+ events sent to the X clients.
+
+- Added debug logging of input devices state Logging can be enabled
+ or disabled via the Ctrl+Alt+x shortcut. State info is dumped every
+ 5 seconds.
+
+- Added Ctrl+Alt+y shortcut used to deactivate input devices grab for
+ debug purposes.
+
+nxagent-3.3.0-11
+
+- Changed the message logging the screen size changes, in order to
+ show the fullscreen state.
+
+- Handle the window unmapping in the nxagentConfigureWindow queue.
+
+nxagent-3.3.0-10
+
+- Fixed TR12F02146. Compare the drawable and the bitmap data before
+ realizing the image update, in order to delay the data clean up that
+ caused the memcmp() failure.
+
+- Fixed TR01G02156. Reduce the exposing area by subtracting the ex-
+ posed region.
+
+- Fixed a compile warning in Drawable.c.
+
+- Added detailed logs in the nxagentSynchronizeRegion() function if
+ the data memory allocation fails.
+
+nxagent-3.3.0-9
+
+- Added /usr/NX/share/base to alternate font paths. This would fix
+ TR11F02130 if fonts fixed and cursor are installed there.
+
+- Changed Keyboard initialization and reset. This change should fix
+ TR11F02129, TR11F02131, TR11F02132.
+
+nxagent-3.3.0-8
+
+- Fixed TR12F02144. Image bits of render glyphs are copied before they
+ are cleaned. This will avoid a memory corruption.
+
+- Fixed TR12F02145. When dispatching a MotionNotify event, check if a
+ top-level window has been entered before trying to show the pulldown
+ dialog.
+
+nxagent-3.3.0-7
+
+- Added debug code for pointer input.
+
+nxagent-3.3.0-6
+
+- Fixed compile warnings.
+
+nxagent-3.3.0-5
+
+- Disabled verbose logging in Rootless.c.
+
+nxagent-3.3.0-4
+
+- Fix the XKB map load in the case of 64 bit server.
+
+nxagent-3.3.0-3
+
+- Fixed TR10F02119. If the remote X display is using evdev keyboard
+ then copy maps from remote.
+
+- Upgraded VERSION to 3.3.0.
+
+nxagent-3.3.0-2
+
+- Fixed TR10F02115. Painting errors occurred when screen areas beyond
+ the current viewport became viewable in the NX Client for Windows.
+
+- Using a new struct type nxagentWMHints to avoid type mismatch on
+ 64 bit platforms.
+
+- Added debug utilities for pointer input.
+
+nxagent-3.3.0-1
+
+- Opened the 3.3.0 branch based on nxagent-3.2.0-12.
+
+nxagent-3.2.0-12
+
+- Ignore 'resize' option at reconnection if viewport mode is on.
+
+- Fixed TR08E01814. Added shadow keymap initialization in order to
+ enable nxcompshad to translate keycodes across different layouts.
+
+nxagent-3.2.0-11
+
+- Fixed TR08F02098. Function splitting font names has to be instruct-
+ ed to handle the right number of fields.
+
+nxagent-3.2.0-10
+
+- Extended fix for TR07F02091 to include font names having zero in
+ fields RESOLUTION_X and RESOLUTION_Y.
+
+nxagent-3.2.0-9
+
+- Fixed TR07F02091. Scalable fonts were not correctly listed among
+ available fonts.
+
+- Fixed TR06F02080. Use the corrupted area extents as maximum size of
+ the image data.
+
+nxagent-3.2.0-8
+
+- Fixed TR07F02082. The agent server could be unable to init core
+ keyboard on 64 bit systems.
+
+nxagent-3.2.0-7
+
+- Imported patch fixing issues from X.Org security advisory, June
+ 11th, 2008: Multiple vulnerabilities in X server extensions. CVE
+ IDs: CVE-2008-1377, CVE-2008-1379, CVE-2008-2360, CVE-2008-2361,
+ CVE-2008-2362.
+
+nxagent-3.2.0-6
+
+- Fixed TR05F02063. Ignore ReparentNotify events for non-rootless
+ sessions.
+
+- Fixed TR06F02068. Try to pack images only if format is ZPixmap.
+
+- Don't require reparent on close of NX window.
+
+nxagent-3.2.0-5
+
+- Fixed TR04F02044. Restored the original MakeRootTile() function in
+ order to create the root window background pixmap.
+
+- Fixed TR04F02041. Gnome panels stayed on top of the NX session win-
+ dow with desktops running Compiz. This fix provides a solution for
+ the Fullscreen mode.
+
+- Improved for the shadow session the handling of master session win-
+ dow resize.
+
+nxagent-3.2.0-4
+
+- Fixed TR10D01535. The agent window is not minimized anymore when
+ pointer leaves.
+
+- Changes aimed to avoid possible type mismatch in XDisplay struct
+ on 64 bit architectures.
+
+nxagent-3.2.0-3
+
+- Fixed a build issue on Solaris.
+
+nxagent-3.2.0-2
+
+- Code clean up. Moved a variable definition to the beginnning of a
+ block.
+
+nxagent-3.2.0-1
+
+- Opened the 3.2.0 branch based on nxagent-3.1.0-9.
+
+nxagent-3.1.0-9
+
+- Fixed TR03F02025. German umlauts couldn't be pasted into a remote
+ Windows application. Now also the UTF8_STRING target is available
+ for ConvertSelection requests.
+
+- Fixed TR03F02031. Moved SetScreenSaverTimer() call in order to avoid
+ undesired reset of the auto-disconnect timeout when a screen saver
+ turns on.
+
+nxagent-3.1.0-8
+
+- Added reference to fixed TR02F02007 and TR07E01762 in the CHANGELOG.
+
+- Set the GC trap before calling fbPolySegment.
+
+- Fixed TR09E01863. A flag is set if a resource has been added or fre-
+ ed and it is checked in FindClientResourcesByType().
+
+- Added void entries to nxagentRequestLiteral vector in order to avoid
+ a wrong string is printed to the output for NoOperation request.
+
+- Fixed TR11E01948. Now keyboard status is initialized again after
+ the NX session is reconnected. This avoids CAPS LOCK and NUM LOCK
+ synchronization problems.
+
+- Added nxagentXkbCapsTrap and nxagentXkbNumTrap to avoid CAPS LOCK
+ and NUM LOCK synchronization problems when CAPS LOCK or NUM LOCK is
+ the first key to be pressed in the NX session.
+
+- Corrected subSize variable initialization in nxagentRealizeImage().
+
+- Fixed various memory leaks.
+
+- Fixed TR11E01950. Copy and paste via edit menu didn't work for some
+ applications.
+
+- Corrected property type in nxagentRequestSelection(). Some external
+ applications didn't enable their paste button when nxagent was the
+ owner of the CLIPBOARD selection.
+
+- Added struct to save values queried by XQueryExtension for XFixes
+ extension.
+
+nxagent-3.1.0-7
+
+- Imported patch fixing issues from X.Org security advisory, January
+ 17th, 2008: Multiple vulnerabilities in the X server. CVE IDs:
+ CVE-2007-5760 CVE-2007-5958 CVE-2007-6427 CVE-2007-6428
+ CVE-2007-6429 CVE-2008-0006.
+
+- Fixed TR02F02007. Handled the case if nxagentCreateDrawableBitmap()
+ fails to create the pixmap intended to store the bitmap data.
+
+nxagent-3.1.0-6
+
+- Fixed a compile warning in Args.c.
+
+- The synchronization loop breaks if the drawable is clean when it's
+ not supposed to be.
+
+- Fixed TR12E01966. Emacs tooltips were not displayed properly. Added
+ a check on the event mask before calling miWindowExposures().
+
+- Fixed TR01F01982. ConfigureNotify warning is printed in verbose mode
+ only.
+
+nxagent-3.1.0-5
+
+- Moved some variable definitions placed in ProcGetProperty().
+
+nxagent-3.1.0-4
+
+- Fixed TR06D01397. The problem was: drag & drop operations between
+ windows of Java applications didn't work in NX Client for Windows.
+
+- Implemented FR12E01957. Added a limit to the amount of data that can
+ be pasted from an NX session into an external application. The new
+ option - named 'copysize' - can be read from the 'options' file.
+
+nxagent-3.1.0-3
+
+- Fixed TR12E01963. The window tree is revalidated explicitly after
+ recomputing the root window clip regions.
+
+nxagent-3.1.0-2
+
+- Fixed TR11E01946. Forcing exposures on regions saved in the backing
+ store could bring to unexpected results.
+
+- Fixed TR11E01928. Animated cursors were not properly disconnected
+ and reconnected.
+
+nxagent-3.1.0-1
+
+- Opened the 3.1.0 branch based on nxagent-3.0.0-93.
+
+nxagent-3.0.0-93
+
+- Fixed TR10E01913. Now bell settings are restored after the agent
+ reconnects.
+
+nxagent-3.0.0-92
+
+- Fixed a compilation error on 64 bit platforms.
+
+nxagent-3.0.0-91
+
+- Checked the window synchronization status before subtracting an ex-
+ posed area from the corrupted region.
+
+nxagent-3.0.0-90
+
+- Fixed TR11E01932. In case of rootless session displayed by NXWin X
+ server, synthetic ConfigureNotify events are generated by the X11
+ agent. This helps to correct menu navigation in Java 1.6.0.
+
+- Fixed the handling of 'client' parameter.
+
+- Fixed bad refreshes in viewport navigation in the case of Windows
+ client.
+
+- Fixed TR11E01930. If the defer level is set by means of the command
+ line, the DeferLevel option is not reset while resuming the session.
+
+- Fixed TR07E01762. Problem in comparison of font names.
+
+- Printed the new geometry in the session log when the agent screen is
+ resized.
+
+nxagent-3.0.0-89
+
+- Fixed TR10E01919. The agent could crash in the routine in charge of
+ find a replacement for a missing font.
+
+- Removed an unuseful log message.
+
+nxagent-3.0.0-88
+
+- Fixed TR10D01539. Some XKEYBOARD requests are disabled if the option
+ 'keyboard' has value 'query'. This locks the initial keyboard map.
+ Enabling/disabling of XKEYBOARD requests is done at run time.
+
+- Added -noxkblock command line option enabling the XKEYBOARD requests
+ even if the option 'keyboard' value is 'query'.
+
+nxagent-3.0.0-87
+
+- Reworked the handling of CT_PIXMAP client clips. Clips are always
+ converted in regions for internal use, while bitmap are saved for
+ operations involving the remote X.
+
+nxagent-3.0.0-86
+
+- Fixed TR07E01749. Now using different resolution between shadow
+ and master session with shadow display option 'As on the server'
+ doesn't display black borders.
+
+- Fixed TR09E01852. The GC clips of type CT_PIXMAP are not converted
+ in regions. This avoids generating regions made up by thousands of
+ rectangles. Backing store function SetClipmaskRgn is implemented by
+ a stub doing nothing.
+
+nxagent-3.0.0-85
+
+- Fixed TR08E01841. Exposed are forced to new areas exposed by the
+ viewport.
+
+- Fixed TR02E01645. Remote exposures was blocked if the NX client was
+ running on Linux without window manager.
+
+- Even if the agent window is fully obscured, synchronization is not
+ skipped if the Composite extension of the remote display is in use.
+
+- Fixed TR08E01851. Exposures events have to be internally generated
+ for regions that can't be restored because the backing pixmap is
+ corrupted.
+
+- Fixed TR08E01847. The initial values of store used to save XChangeGC
+ calls are set to the default GC values.
+
+- When a drawable becomes synchronized, its outdated bitmap is destro-
+ yed.
+
+- If a pixmap is not fully synchronized after a synchronization loop
+ it is cleared, just like windows.
+
+- Solved a problem causing some pixmaps to remain among the corrup-
+ ted resources even if they were synchronized.
+
+nxagent-3.0.0-84
+
+- Renamed Misc.h as Utils.h to solve name clashes on Windows platform.
+
+nxagent-3.0.0-83
+
+- Changes to include correctly declaration of _XDisplay structure on
+ 64 bit platforms. Further tests are needed to confirm that it fixes
+ TR08E01824.
+
+nxagent-3.0.0-82
+
+- Fixed TR08E01821. Changed nxagentAddItemBSPixmapList() to check if
+ the pixmap item has already an entry in the list before adding it.
+
+- Fixed TR07E01795. Sun Studio main window showed only its grey back-
+ ground. Changed clipboard events handling to let the agent notify
+ a failure in converting selection.
+
+nxagent-3.0.0-81
+
+- Based on nxagent-3.0.0-78.
+
+- The agent options are saved before reopening the display in the
+ reconnection procedure. If the new initialization fails the backup
+ values of options are restored.
+
+- Keyboard device info are saved before the keyboard reset occuring
+ in the reconnection procedure. If the new initialization of the
+ keyboard fails, the old values are restored.
+
+- The initialization procedure of keyboard device returns with error
+ if it fails to retrieve the keyboard mapping information from the
+ remote display.
+
+- The reconnection fails if the default depth of the new display is
+ different from the previous one.
+
+- The session can be migrated if the visuals don't match for color
+ masks swapping. At the moment there are no conversions to line up
+ the RGB masks, so even if the session can be migrated, incorrect
+ colors may be shown.
+
+nxagent-3.0.0-80
+
+- The agent options are saved before reopening the display in the
+ reconnection procedure. If the new initialization fails the backup
+ values of options are restored.
+
+- The flag storing that a SIGHUP has been received is reset if the
+ function reconnecting the session fails.
+
+nxagent-3.0.0-79
+
+- Changed the SIGHUP handler not to ignore the signal if the state
+ is SESSION_GOING_UP or SESSION_GOING_DOWN.
+
+- Keyboard device info are saved before the keybord reset occuring
+ in the reconnection procedure. If the new initialization of the
+ keyboard fails, the old values are restored.
+
+- The initialization procedure of keyboard device returns with error
+ if it fails to retrieve the keyboard mapping information from the
+ remote display.
+
+- The reconnection fails if the default depth of the new display is
+ different from the previous one.
+
+- The session can be migrated if the visuals don't match for color
+ masks swapping. At the moment there are no conversions to line up
+ the RGB masks, so even if the session can be migrated, incorrect
+ colors may be shown.
+
+nxagent-3.0.0-78
+
+- Fixed TR07E01747. Fixed warnings occuring when compiling for AMD64.
+
+- Fixed TR07E01753. NoMachine WM icon in the title bar is displayed
+ correctly.
+
+- Fixed TR03E01656. If client and server endianess didn't match, glyph
+ images bits have to be only temporarily swapped.
+
+- Fixed TR07E01746. Terminate the shadow agent if the option 'shadow'
+ is empty.
+
+- Added option '-verbose'. It enables the printing of errors received
+ by the agent from the remote X server.
+
+- Warnings related to missing fonts are printed only if verbose mode
+ is enabled.
+
+- Disabled a log message related to the use of Composite extension.
+
+nxagent-3.0.0-77
+
+- The pixmap formats are initialized without taking care of which are
+ supported on the remote display.
+
+- Removed the check for pixmap format compatibility when migrating the
+ session to a new display.
+
+- Fixed TR06E01725. A minimum set of available picture formats is
+ used to ensure a wide migration from/to different displays.
+
+- The PictFormat structures used by nxagent are no longer filtered
+ with the ones available on the real display.
+
+- The background pixmaps are cleared while reconnecting in order to
+ make them usable.
+
+- Fixed TR01E01619. Changed the RandR implementation to return a re-
+ fresh rate other than zero.
+
+nxagent-3.0.0-76
+
+- Changed the keystroke to force the drawable's synchronization to
+ CTRL-ALT-J.
+
+nxagent-3.0.0-75
+
+- If the backing store tries to restore areas from a corrupted pixmap,
+ such areas are subtracted from the saved region, so that exposures
+ will be sent for them.
+
+nxagent-3.0.0-74
+
+- Don't skip the synchronization when there are more clients ready.
+ This temporarily solves the synchronization problems observed in
+ the previous versions if one or more clients kept the agent busy.
+
+nxagent-3.0.0-73
+
+- If the PolyFillRect() uses a FillStippled or a FillOpaqueStippled
+ fill style and the destination is corrupted, the area affected by
+ the operation is first synchronized.
+
+nxagent-3.0.0-72
+
+- Fixed the bug affecting the position of the input window when a
+ session was migrated to a linux X server with no window manager
+ running.
+
+- The color used to fill the corrupted backgrounds is converted de-
+ pending on the depth of remote X server.
+
+- The PolyFillRect() does not clean the corrupted destination region
+ if a stipple pixmap is used as mask. This solution is adopted to
+ reduce the region fragmentation and to solve the text drawing pro-
+ blems affecting rdesktop.
+
+nxagent-3.0.0-71
+
+- Force a flush of the display buffer if the coalescence timeout is
+ expired. Set the timeout according to the link type, from 0 to 50
+ ms for link MODEM.
+
+- In nxagentRealizeImage() the width in byte is computed newly if
+ the image has been scaled.
+
+- The shadow agent clips the screen updates in tile only if the link
+ type is MODEM or ISDN.
+
+- Split the abort conditions in the synchronization loop to check
+ separately the congestion and the blocking status.
+
+- Implemented a workaround in order to avoid graphical problems with
+ render composite operations on Xfree86 remote server.
+
+nxagent-3.0.0-70
+
+- Various adjustments aimed at using the best defer rules depending
+ on the congestion state.
+
+- Fixed a problem with icons of message boxes in shadow sessions.
+
+- Changed the log message printed when the shadow agent can't connect
+ to the master session.
+
+- If Composite is in use, don't skip the PutImage and CopyArea opera-
+ tions even if the agent window is fully obscured.
+
+nxagent-3.0.0-69
+
+- The option -nodamage prevents the shadow agent from using the damage
+ extension.
+
+- Changed the scaling feature to set the byte order of the source
+ image according to the local endianess.
+
+- Changed the scaling feature in order to handle different ratios for
+ horizontal and vertical sizes.
+
+- Force the shadow sessions to be non-persistent.
+
+- When a pixmap background is synchronized, an expose is sent to its
+ owners.
+
+nxagent-3.0.0-68
+
+- Changed the type of parameters passed to nxagentRootlessRestack in
+ order to be compliant with Xlib types on 64 bit platfors.
+
+- The nxagentCompositeRects() checks for the render operation type to
+ determine if the corrupted destination region must be cleared.
+
+nxagent-3.0.0-67
+
+- Fixed a condition discarding the expose events received from the X
+ server.
+
+nxagent-3.0.0-66
+
+- The corrupted resources are removed when a session suspends, and are
+ reallocated only at reconnection. This is aimed at avoiding synchro-
+ nization loops when the link is down.
+
+nxagent-3.0.0-65
+
+- Initialize for now the tile size at 64x64 in shadow mode.
+
+- The height and width of the tiles used for synchronizing drawables
+ are set without overriding command line option 'tile'.
+
+- Avoid calling miWindowExposures() for empty regions.
+
+- Fixed a bug while clearing corrupted regions with window exposures.
+
+- The corrupted drawable counters are not reset if there are bitmaps
+ to synchronize.
+
+nxagent-3.0.0-64
+
+- The synchronization bitmap is used only when requesting a full
+ drawable synchronization, otherwise the frame-buffer is used as
+ source.
+
+- Fixed some bugs in the synchronization loop.
+
+- Removed the remaining debug output.
+
+nxagent-3.0.0-63
+
+- Don't start the synchronization loop if the wakeup handler found
+ some clients ready.
+
+- Don't flush the display buffers if the synchronization was inter-
+ rupted and there are more drawables to synchronize.
+
+- Changed the backing store functions to not save the obscured areas
+ which are inside the corrupted region of a window.
+
+- Added the code to send the XClearArea() commands in shadow mode at
+ the end of the synchronization loop. In this way large images are
+ still split in tiles but, on fast links, the final result can made
+ visible all at once.
+
+- Modified the corrupted drawable counters to only report the number
+ of resources needing synchronization. This allows the block hand-
+ ler to avoid spinning through the synchronization loop if there is
+ nothing to do.
+
+- On a window exposure remove the corrupted region of the destinat-
+ ion window.
+
+- For testing purposes, the pixmap synchronization loop starts only
+ if there are corrupted backgrounds.
+
+nxagent-3.0.0-62
+
+- The image scaling is applied only if the destination drawable is the
+ pixmap shadowing the frame buffer of the master session.
+
+- The shadow agent exits with a fatal error if it can't connect to the
+ master session.
+
+nxagent-3.0.0-61
+
+- Forward the SIGCHLD to the NX transport instead of letting the NX
+ transport forward the signal to us. This allows the agent to set
+ and replace the signal handler at any time, without having to ta-
+ ke care of the state of the NX transport.
+
+- Improved the synchronization loop by implementing a simple round-
+ robin mechanism between the resources needing synchronization.
+
+nxagent-3.0.0-60
+
+- Use a new set of functions to install, post-install and reset the
+ signal handlers.
+
+- Reset the signal handlers to their initial state after a display
+ failure, as part of the disconnection procedure.
+
+- Don't set SA_RESTART in the sigaction flags. Make the signal int-
+ errupt the system call.
+
+- Terminate all the running dialogs before exiting.
+
+nxagent-3.0.0-59
+
+- Use the value of nxagentCongestion in nxagentUserInput() instead
+ of calling NXDisplayCongestion().
+
+nxagent-3.0.0-58
+
+- The clip mask of the scratch GC used by nxagentDeferCopyArea() is
+ reset before releasing the GC.
+
+- The MotionNotify event can now break the synchronization loop.
+
+- In the case of shadow sessions, if synchronization aborts then the
+ remaining data to synchronize are not stored in a bitmap.
+
+- If a table rebuild occurs in a loop searching for resources, the
+ loop restarts from beginning not to use the out of date table.
+
+nxagent-3.0.0-57
+
+- The synchronization bitmap is created only if the corrupted area
+ of the source drawable is visible.
+
+- The synchronization loop skips the last synchronizing drawable to
+ give a chance to the next resources to be synchronized.
+
+- Removed the session starting infos concerning the mismatching ver-
+ sions of render and the window manager detection.
+
+- Split the gliph lists in Render.c only if the symbol SPLIT_GLYPH_-
+ LISTS is defined.
+
+- Read again the events in the block handler after the flush.
+
+- The nxagentCongestion variable is now a value ranging from 0 to 9,
+ not a boolean flag.
+
+- Added some experimental code dynamically reducing the size of the
+ display output buffer when the agent is blocking for write.
+
+nxagent-3.0.0-56
+
+- The synchronization loop is now aborted when a short timeout exp-
+ ires. If the drawable synchronization cannot be completed, the
+ remaining data is stored in a bitmap. The synchronization loop is
+ then restarted using the data from the bitmap, instead of pulling
+ the latest image from the framebuffer. This allows the agent to
+ show a complete frame when displaying videos and animations, while
+ at the same time giving a chance to the clients to update the
+ screen in background. When an image from the saved bitmap is put
+ on the remote display, the image is compared with the actual data
+ in the framebuffer. If the two bitmaps match, the corresponding
+ region of the drawable is marked as synchronized, otherwise the
+ drawable remains dirty and will be synchronized at the next loop
+ using the new data taken from the framebuffer.
+
+- If the smart schedules is enabled, let the dispatcher decide when
+ it is time to yield and process the next client.
+
+nxagent-3.0.0-55
+
+- Disable the smart scheduler in the case of shadow sessions.
+
+- If the smart scheduler is enabled, stop the timer before returning
+ from the block handler. WaitForSomething() sets a zero timeout if
+ there are clients with input but doesn't stop the timer. The select
+ is then interrupted to update the schedule time even if, what the
+ dispatcher cares, is only the ticks count at the time the client
+ is scheduled in.
+
+- Fixed a compilation warning in NXresource.c.
+
+- The main window of the shadow agent is mapped in nxagentMapDefault-
+ Windows, like for non shadow agents, if the remote display has no
+ window manager running. This avoids a flickering effect on the !M
+ logo having place if the shadow session was displayed from a Wind-
+ ows client.
+
+- Some code related to the use of the Composite extension is not built
+ in the agent being not necessary anymore.
+
+nxagent-3.0.0-54
+
+- Get SmartScheduleStopTimer() from dixstruct.h.
+
+- Updated the NoMachine icon file.
+
+nxagent-3.0.0-53
+
+- Changed the message 'NXAGENT: Fatal IO error on display' into 'Info:
+ Disconnected from display'.
+
+- Fix a problem occurring when the FindClientResourcesByType() needs
+ to reallocate the resource table.
+
+- The popup window synchronization breaks if an user input is caught.
+
+- Implemented FR05E01712. The stderr and stdin are redirected to the
+ 'clients' file in the session directory.
+
+- The nxagentRealizeImage function does nothing if the agent is not
+ connected to the display.
+
+- Removed the code implementing the redraws of the viewport frame.
+ Such code is not needed because is't enough for the agent to handle
+ the expose event received from the X server.
+
+nxagent-3.0.0-52
+
+- Where it is necessary to wrap the function PaintWindowBackground,
+ the original function pointer is saved and restored afterwards. This
+ let other code wrapping that function (e.g. the damage extension) to
+ work correctly.
+
+- If the agent works in shadow mode, the defer parameters are ignored.
+
+nxagent-3.0.0-51
+
+- Use the smart scheduler on platforms where it is enabled.
+
+- Check ClientsWithInput in the wakeup handler and update the number
+ of clients ready if any descriptor is set.
+
+nxagent-3.0.0-50
+
+- Fixed TR05E01714. Changed VisibilityNotify event so that it forces
+ a refresh on the root window, but only if on the agent Composite is
+ enabled and its window moves from a VisibilityFullyObscured to ano-
+ ther state.
+
+- Grant the availability of core fonts in master sessions also after
+ the disconnection. This makes possible to start new clients inside
+ a shadow sessions while the master is down.
+
+- Changed nxagentGlyphs() to send a single glyph list per request.
+
+- Major rewrite of the agent dispatch handler.
+
+- Some name changes to the functions handling the session states.
+
+nxagent-3.0.0-49
+
+- Made the dispatch loop yield control to a different client after a
+ fair amount of time even if the current client doesn't produce any
+ output.
+
+nxagent-3.0.0-48
+
+- Modified the message in the suspend dialog to say 'Disconnect' in
+ place of 'Suspend'.
+
+- Added macros in Pixels.h to determine the behavior of the lazy en-
+ coding.
+
+- Changed the copyright attribution from Medialogic to NoMachine.
+
+- Reset all options to their defaults before processing the session
+ arguments. This fixes the problem with the DeferLevel option not
+ being set at reconnection.
+
+nxagent-3.0.0-47
+
+- Initialized the arguments of NXGetControlParameters(), NXGetShmem-
+ Parameters() and NXGetUnpackParameters() to end up with valid data
+ also in the case of a display failure.
+
+- Converted the coordinates in the X_PolyFill requests to relative
+ mode. This makes all the requests independent from the origin and
+ helps the caching by the proxy.
+
+nxagent-3.0.0-46
+
+- Don't print the 'Display failure' message on a SIGTERM.
+
+- Ensure that the NX transport is shut down after the 'Terminating
+ session at...' message if the session is killed by the user.
+
+- Let the agent filter the error output by setting the OsVendorVEr-
+ rorFProc function pointer.
+
+- Give the possibility to the agent to redirect the standard error
+ during a Popen() or a System() by setting the OsVendorStartRedir-
+ ectErrorFProc and OsVendorEndRedirectErrorFProc function pointers.
+
+- Fixed a problem in nxagentPolyFillRect() not properly propagating
+ to the destination.
+
+- Added nxagentPolyFillRect() and nxagentGlyphs() among the funct-
+ ions increasing the pixmaps usage counter.
+
+- Cleaned up some of the FIXME related to the lazy encoding.
+
+nxagent-3.0.0-45
+
+- Use the three distinct functions in nxcompext to query the state
+ of the display connection.
+
+- Terminate gracefully on a fatal server error by printing the fol-
+ lowing in the session log:
+
+ Error: Aborting session with 'Error text...'.
+ Session: Aborting session at '...'.
+ Session: Session aborted at '...'.
+
+- Removed more debug messages from the session log.
+
+nxagent-3.0.0-44
+
+- Guess whether to compress an image with a lossless encoder based
+ also on the width and height, not only on size.
+
+- Corrupted pixmaps used as tiles propagate the dirty area when they
+ are involved in a PolyFillRect() operation.
+
+- On link settings ADSL to LAN, images are not split in tiles to bet-
+ ter fill all the available bandwidth.
+
+- Pixmaps referenced often as source in deferred operations or used
+ as backgrounds, are now synchronized as long as when the network
+ congestion level remains 0.
+
+- Use nxagentPaintWindowBorder() to update the window's border in
+ the framebuffer.
+
+- Fixed a problem with the new handling of the X_RenderChangePicture
+ requests that caused the text to be erroneously clipped.
+
+nxagent-3.0.0-43
+
+- Don't pass the uid of the shared memory segment to the nxcompshad
+ library if it can't be retrieved from the options.
+
+- Fixed the new handling of the RenderChangePicture requests to work
+ on 64 bit platforms.
+
+nxagent-3.0.0-42
+
+- 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.
+
+- Use the newer constant PACK_NONE instead of NO_PACK.
+
+nxagent-3.0.0-41
+
+- Fixed a bug in the disconnection procedure introduced with the new
+ handling of the display events.
+
+- Realize the XRenderChangePicture() request only if a change of the
+ remote picture's attributes is detected.
+
+nxagent-3.0.0-40
+
+- Dynamically select a lossy or a lossless encoder based on the num-
+ ber of pixels that appear to be different in the image.
+
+- Use the new PACK_BITMAP_16M_COLORS image encoding. Handle the case
+ when the packed image data points at the same data as the original
+ image. This is useful to save a copy.
+
+- The PACK_BITMAP_16M_COLORS method is now the default for lossless
+ encoding.
+
+- Don't use compression for the alpha channel. This is also intended
+ to better leverage the stream compression.
+
+nxagent-3.0.0-39
+
+- The nxagentComposite() function doesn't check the source and mask
+ synchronization status, but defers the XRenderComposite() operation
+ by checking the defer level only.
+
+- If the target of an XCompositeText() function is an hidden window,
+ the operation is prevented.
+
+- Passing the uid of master X server process to nxcompshad library.
+
+- Before the call of XRenderAddGlyphs(), call the new library function
+ XRenderCleanGlyphs() cleaning the padding bytes of data section of
+ request.
+
+nxagent-3.0.0-38
+
+- Don't warp the cursor if the requesting client is a shadow agent.
+
+- Changed a call to NXFlushDisplay in order to align to nxcomp version
+ 3.0.0-15.
+
+- Updated the NoMachine icon file.
+
+- Changed Agent.h in order to include NX version of Xlib.h avoiding
+ missing declarations.
+
+- If the NXDisplayCongestion notifies an optimum congestion state,
+ the continuous user input, due to unreleased buttons/keys, doesn't
+ break the drawable's synchronization.
+
+- Renamed the option 'block' as 'tile'.
+
+- Implemented a way to guess if the destination drawable of a copy
+ area is a popup window. In such a case, the source is synchronized
+ before doing the copy to avoid ugly effects like text items floating
+ on an invisible background.
+
+- In order to reduce the number of clip mask changings, if the clean
+ region of a corrupted source drawable is formed by a single rectan-
+ gle, its coordinates are used to change extents and position of the
+ area involved in the copy area operation.
+
+- Fixed a crash caused by a reference to a resource table freed by a
+ table rebuilding. This was happening because during the pixmap re-
+ connection some new GC resources went beyond the resource table li-
+ mit, causing a table relocation. As a general rule, a function loop-
+ ing across a resource table should not add or remove resources.
+
+nxagent-3.0.0-37
+
+- To improve the efficiency of the algorithm deferring the trapezoid
+ operations, the composite does not propagate the glyphs flag to
+ the destination.
+
+- Moved the replacement of XCheckIfEvent() to nx-X11 with the name
+ XCheckIfEventNoFlush().
+
+nxagent-3.0.0-36
+
+- Changed nxagentDisplayFlushHandler() according to the new semantic
+ of the handler. The function is called by nxcomp when new data is
+ sent to the remote proxy.
+
+- After the flush handler is called, use NXQueryDisplay() with query
+ type NXDisplayCongestion to update the congestion flag.
+
+- Modified the boxes list defragmentation to merge only those rectan-
+ gles which fully overlap.
+
+- During the synchronization loop the nxagentDispatchHandler() takes
+ care of reading the enqueued events, while the nxagentUserInput()
+ checks only for state changes due to a processed key/button event.
+
+- Set the display output buffer size according to the link type.
+
+- Removed the congestion and synchronization callbacks.
+
+nxagent-3.0.0-35
+
+- In order to avoid the lossy encoding of text regions, the nxagent-
+ GlyphsExtents is computed even if the mask format is not specified.
+ In this case, the render implementation was not calculating the ex-
+ tents of composite text operation, whose coordinates are useful only
+ to build a mask pixmap.
+
+nxagent-3.0.0-34
+
+- Removed message 'Could not init font path element' from the output.
+
+- Moved initialization of picture support before the call to miDCInit-
+ ialize in the screen opening procedure. This is because miDCInitial-
+ ize calls DamageSetup that wraps the picture screen functions.
+
+- Implemented FR05E01686. Added option 'menu' enabling/disabling the
+ pulldown menu in the rootless agent.
+
+- Added a flag to each drawable to record if they have been the dest-
+ ination of a glyph operation. This is used to skip the deferral of
+ some operations (e.g. render trapezoids) if they can cause the
+ drawable to be synchronized using a lossy encoding.
+
+- The render trapezoids are deferred if the operation falls inside
+ a dirty region or if the destination drawable does not contain
+ glyphs.
+
+- Imported the NXmitrap.c file from render directory.
+
+- Improved the algorithm queuing multiple writes across a proxy
+ flush.
+
+nxagent-3.0.0-33
+
+- Read the event queue after each request processed. Doing this
+ is expensive but it seems to work best.
+
+- Don't split the big trapezoid requests. Splitting the requests
+ doesn't seem to provide any benefit with the clients tested.
+
+- By defining BLOCKS in Handlers.c, Events.c and NXdispatch.c, log
+ the begin and end of the most sensitive routines.
+
+nxagent-3.0.0-32
+
+- Use NXSetDisplayWriteHandler() to register a callback invoked
+ by Xlib after some data is written to the display socket. This
+ callback allows the agent to better determine when it is time
+ to send the sync requests.
+
+nxagent-3.0.0-31
+
+- The operation of adding glyphs to remote glyphset has been defer-
+ red, in order to avoid to add unused glyphs. When a composite text
+ operation looks for a certain glyph, if it has not been added to
+ the selected glyphset, an XRenderAddglyphs is requested.
+
+- The forced synchronization timeout is now dependant on link type.
+
+- Force the mi to process the events just after having processed
+ any input.
+
+- Added an experimental 'hard' sync request intended to wait for
+ the X server to complete an image operation. This also affects
+ the agent only when the NX transport is not running.
+
+- Added a synchronization mechanism intended to let the agent de-
+ tect if the X server is not able to process its input when the
+ NX transport is not activated. The algorithm uses asynchronous
+ X_GetInputFocus replies to minimize the impact of latency on
+ slow connections. A new request is sent at any given amount of
+ bytes read from our clients. When the number of pending replies
+ is exceeded, the agent stops accepting additional requests and
+ waits for the remote until the number of pending replies returns
+ below the limit. Note that when the NX transport is running, the
+ algorithm is disabled to not interfere with the proxy's own
+ token-based flow control.
+
+- Added the nxagentDispatchHandler() function. It is called by the
+ dispatcher after a client's request has been processed.
+
+- Added the nxagentWaitEvents() function. It blocks waiting for
+ more input with an optional timeout. It handles the case when
+ the NX transport is not running and is able to recover gracely
+ from a display failure by returning the error.
+
+- Replaced most of the code that was relying on NXTransContinue()
+ to use the new function.
+
+- Moved the new event-related functions to Events.h and Events.c.
+
+- Disabled the code raising the splash screen at reconnection.
+
+- Reverted change done in 3.0.0-8 version, dealing with expose events
+ not having entries in the queue. They are not collected in a global
+ region but sent immediately.
+
+nxagent-3.0.0-30
+
+- Let the block handler check if there are events queued after the
+ flush before entering the select.
+
+- Changed the dispatch loop to read the incoming events more often.
+
+- Added the nxagentReadEvents() and nxagentCheckEvents() functions.
+ Differently from XCheckIfEvent(), nxagentCheckEvents() doesn't
+ flush the output buffer if no event is available. nxagentReadEv-
+ ents(), instead, it's like XEventsQueued() but forces the use of
+ the QueuedAfterReading mode. These functions should be used when-
+ ever XEventsQueued() and XCheckIfEvent() would be required.
+
+- The nxagentQueuedEvents() macro uses XQLength() to return the
+ number of events that have been read and need to be dispatched.
+
+- The nxagentPendingEvents() function returns true if there is any
+ event queued. If not, it queries the transport to find if more
+ events can be read.
+
+- Ripristinated the code preventing the agent to connect to its own
+ display. The code was disabled while migrating to the new tree.
+
+- Removed the dependencies from the NXAGENT_QUERYBSIZE, NXAGENT_NO-
+ EXPOSEOPTIMIZE and NXAGENT_ONEXIT. Removed the unused code.
+
+- Removed more unused code in Clipboard.c.
+
+- The shadow agent calls NXShadowDestroy before exiting.
+
+- Reverted a change done in 3.0.0-8 dealing with expose events. If the
+ result of the subtraction is not sent immediately, some duplicated
+ refresh is shown.
+
+nxagent-3.0.0-29
+
+- The splash screen is removed as soon as the session is started in
+ the case of shadow session.
+
+- The rules to verify when the synchronization loop can be stopped
+ are specified by means of a bitmask passed as parameter to synch-
+ ronization functions.
+
+- The glyphsets are no longer reconnected during a session resuming,
+ but only when they are used.
+
+- Initialized the timeout parameter in block handlers in case of NULL
+ value.
+
+- Added option 'block' to specify the size of image slices sent during
+ the synchronization.
+
+- Fixed a memory leak in nxagentParseOptions().
+
+nxagent-3.0.0-28
+
+- Improved the nxagentGetOptimizedRegionBoxes() function to optimize
+ the high fragmented rectangle lists.
+
+- When resizing nxagent window the fictitious resize for all top level
+ windows, triggering the window tree validation, is not executed if
+ rootless mode is off.
+
+- The nxagentInputWindows cannot be resized in rootless mode because
+ they are not created.
+
+- Added NXdamage.c to the source files.
+
+- Changed damage's GCOps functions drawing text. This was needed be-
+ cause the original functions didn't call agent GCOps if the drawable
+ was registered for damage events.
+
+nxagent-3.0.0-27
+
+- Fixed TR04E01677. Changed the reconnection procedure to call the
+ function destroying the NoMachine splash window. It rarely happened
+ that the splash window was not removed after resuming a session.
+
+- Ignored the ForceScreenSaver requested by X clients to avoid clashes
+ with our screen saver handling.
+
+- Cleanup of code handling the screen saver timeout to remove referen-
+ ces to the old drawable's synchronization method.
+
+- Fixed TR04E01664. The session is terminated instead of suspended if
+ the auto-disconnect timeout expires and the persistence is not allo-
+ wed.
+
+- Reverted an optimization in nxagentCheckWindowConfiguration() in
+ order to avoid inconsistencies in the stacking order.
+
+- Fixed a segmentation fault in rootless mode.
+
+nxagent-3.0.0-26
+
+- Some fixes to build in the Cygwin environment.
+
+nxagent-3.0.0-25
+
+- Renamed the option 'lazylevel' to 'defer'.
+
+- Added a flag to windows to know if they have transparent children,
+ in order to reduce to minimum the put images on windows covered by
+ their children.
+
+- Created a generic list of graphic contexts, used when synchronizing
+ drawables between the nxagent and the remote X server. All the GCs
+ are created with IncludeInferiors property. This solves problem when
+ trying to synchronize windows covered by children with transparent
+ backgrounds.
+
+- The nxagentUserInput checks if keys are pressed.
+
+- Fixed some memory leaks.
+
+- In shadow mode, removed the handling of events of the source display
+ from the code. They can be handled in the nxcompshad library.
+
+- In shadow mode, allow the synchronization loop to break in case of
+ input event.
+
+- Moved the call to miDCInitialize after the initialization of poin-
+ ters to screen functions. This was needed to make DAMAGE work pro-
+ perly.
+
+- In shadow mode, not breaking the polling if a mouse button is down.
+
+- In shadow mode, allow events to break the loop sending updates.
+
+- At reconnection the input window is raised after the root window is
+ mapped.
+
+- Fixed an invalid read. The call to the function nxagentSetInstalled-
+ ColormapWindows() has been moved from nxagentDestroyWindow to Dele-
+ teWindow.
+
+nxagent-3.0.0-24
+
+- The corrupted drawables are added to dedicated lists of resources
+ to speed up the synchronization process.
+
+- The nxagentUserInput checks if a mouse button is pressed.
+
+- Created the nxagentGetScratchGC which resets the scratch GCs to de-
+ faults values also on the remote X server.
+
+- The synchronization cycle is forced when a timeout expires, albeit
+ the remote display is blocked.
+
+- Added a parameter to synchronization functions to specify if loops
+ can break. It's useful to force the synchronization in some circum-
+ stances.
+
+- Keystroke CTRL-ALT-R is enabled in shadow mode too. It is used to
+ switch scaled and non-scaled modes.
+
+- Some changes to adjust the window position.
+
+- Moved some macros to Misc.h.
+
+- Some changes to adjust the behaviour of scaling feature in case of
+ resize and switch to full screen.
+
+- Freeing the buffer used for scaling if no needed anymore.
+
+nxagent-3.0.0-23
+
+- Fixed TR02E01648 and TR10D01534. Changed pointer motion events han-
+ dling. In desktop mode the nxagent creates a InputOnly window that
+ collects the MotionNotify events. This window is mapped over the
+ root window. In rootless mode the nxagent creates all windows on
+ real X server with PointerMotionMask.
+
+- Not exiting from the block handler with zero timeout if drawables to
+ be synchronized are pixmaps only.
+
+- Reduced the margin around the glyph extent from 5 to 3 pixels.
+
+nxagent-3.0.0-22
+
+- Fixed initialization of XImage used for scaling.
+
+- Changes to fix the position of the shadow main window.
+
+nxagent-3.0.0-21
+
+- Moved the implementation of scaling feature in nxagentRealizeImage.
+
+- Disabled log message 'Font not found' in Font.c.
+
+- The synchronization loop is called inside the BlockHandler. Synch-
+ ronization goes on until the display is not blocked.
+
+- Exiting the BlockHandler with timeout zero if corrupted drawables
+ have not been synchronized because of blocked display connection.
+
+- Changed the synchronization loop to slice the dirty regions.
+
+- The updates by shadowing nxagents are now sent using the lazy me-
+ chanics: the remote buffer pixmap is marked as dirty, then synch-
+ ronized.
+
+- Traversing the tree to synchonize windows.
+
+nxagent-3.0.0-20
+
+- Fixed a bug in the nxagentGetOptimizedRegionBoxes() function which
+ was causing a bad merging of boxes.
+
+- Added a margin of 5 pixels around the glyphs extents before synch-
+ ronizing them.
+
+- The synchronization cycle has been reactivated for the first lazy
+ level, in order to synchronize the window's background.
+
+- The CopyArea between pixmaps doesn't mark the full destination as
+ corrupted, but clips the operation with the synchronized area of the
+ source as happens for the windows.
+
+- Implemented scaling feature for the shadow agent. To do: run-time
+ control of this feature by keystrokes and window resize; adapting
+ the window size to the scaled dimensions.
+
+- Setting the shadow session scaling ratio equal to the size chosen
+ from the user divided by the size of the main session.
+
+- Scaled mouse motion events according with the ratio.
+
+- Implemented the nxagentScaleImage() function.
+
+- Updated version number and copyright in the output log.
+
+- Fixed TR06D01390. When resizing nxagent window, we make a fictitious
+ resize for all top level windows, in order to trigger the window
+ tree validation.
+
+nxagent-3.0.0-19
+
+- Force LazyLevel to 0 in case of shadowing session.
+
+- If shadowing poller returns that nothing is changed and no updates
+ have to be sent, call WaitForSomething select with 50 ms timeout.
+
+- The shadow agent doesn't break the sending of updates in case of
+ mouse motion events.
+
+- The scratch GC's clip mask was not cleared during a drawable synch-
+ ronization. Now the GetScratchGC() function is called after changing
+ the nxagentGCTrap flag.
+
+- Implemented the function nxagentGetOptimizedRegionBoxes(). It gets
+ the list of boxes forming a region and operates on it to merge as
+ much boxes as possible, checking their width and position.
+
+- Implemented the function nxagentClearRegion(). It does an XClearA-
+ rea() for each box belonging to a region, using the color returned
+ by nxagentGetCorruptedRegionColor() as background of target window.
+
+- Implemented the function nxagentGetCorruptedRegionColor(). It gets
+ the color of first outer pixel in the bottom right corner of re-
+ gion.
+
+- Fixed some memory leaks.
+
+- Checked and removed some FIXME concerning the lazy encoding.
+
+- Fixed and added some debug messages in Render.c, GC.c and GCOps.c.
+
+- Added to the Literals.h file the Render and Shared memory requests.
+
+nxagent-3.0.0-18
+
+- Changes to comply with nxcompshad library.
+
+nxagent-3.0.0-17
+
+- The master agent holds the number of shadow nxagents connected to
+ itself. The shadow nxagent notify its presence to master nxagent
+ by setting the _NX_SHADOW property.
+
+nxagent-3.0.0-16
+
+- Rearranged the lazy level rules. All the link types now use the lazy
+ level 1: the pixmaps are always corrupted, and they becomes synchro-
+ nized only when they're sources of an operation (i.e. CopyArea, ren-
+ der).
+
+- The lazy levels greater than 1 don't synchronize automatically. It's
+ possible to synchronize with two keystrokes: CTRL+ALT+Z forces the
+ windows synchronization without take care of the congestion; CTRL+
+ ALT+X synchronizes the windows and the background until there is
+ enough bandwidth.
+
+- Only the tile, stipples and glyphs are always synchronized.
+
+- The height of glyphs region has been doubled to obtain a better vi-
+ sual effect after the synchronization.
+
+- Fixed a problem causing the background pixmaps to be used also if
+ they were not fully synchronized.
+
+- Added a function to convert a PolyPoint in a dirty region. The fun-
+ ction is now disabled because it is not advisable to use the exten-
+ ts.
+
+- The XCopyArea is not requested if the clip region is NIL.
+
+- The nxagentPutImage does not update the framebuffer when it is
+ doing a synchronization.
+
+- Moved all the code handling the drawables synchronization in the
+ Drawable.c file.
+
+- As the shared memory pixmaps are never synchronized with the re-
+ mote X server, now they're marked as dirty when they're created.
+
+- An XFillRectangles request now marks the rectangles of the desti-
+ nation drawable as synchronized.
+
+- Fixed a bug that was causing the CopyArea to propagate wrongly the
+ corrupted region on the destination drawable when the GC uses a
+ clip mask.
+
+- Implemented a test function useful to show on the windows all the
+ dirty regions as colored rectangles. It is used with the CTRL+ALT+A
+ keystroke.
+
+- Before sending the XRenderComposite operations (trapezoids, trian-
+ gles, TriStrip, TriFan), the drawables involved are synchronized if
+ they are dirties.
+
+- Changes to shadow mode.
+
+- Moved the code splitting the screen shadowing updates to a separate
+ function.
+
+- Suspend the sending of updates if input is received from the user.
+
+- Make use of callback mechanism implemented in the nxshadow library
+ to suspend screen polling when input is received from the user.
+
+- Flush the display link when requested by the proxy.
+
+nxagent-3.0.0-15
+
+- Print the following info when the screen is resized: "Info: Resized
+ screen [<screen number>] to [<width>x<height>].
+
+- Changes to comply with nxshadow library.
+
+- Fixed the height of screen updates in shadowing mode.
+
+- Terminate cleanly if shadowing initialization fails.
+
+- Split shadowing screen updates in smaller rectangles for slow links.
+
+nxagent-3.0.0-14
+
+- Fixed a compilation error in NXrender.c.
+
+nxagent-3.0.0-13
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+- Added file COPYING.
+
+- Updated the files imported from X.org to the 6.9.0 release.
+
+nxagent-3.0.0-12
+
+- Fixed compilation on Sun platform.
+
+nxagent-3.0.0-11
+
+- Implemented an algorithm adapting colors if the target display have
+ different depth than the shadowed display. It requires that visuals
+ are TrueColor and depths are 16 or 24 or 32.
+
+- Added the option shadowmode. If this option is '0' the shadowing
+ session doesn't interact with the attached session.
+
+nxagent-3.0.0-10
+
+- Changes to comply with the nxshadow component.
+
+nxagent-3.0.0-9
+
+- Applied changes to files imported from X.org sources.
+
+- Updated copyright notices to the current year.
+
+nxagent-3.0.0-8
+
+- Imported changes up to nxagent-2.1.0-17.
+
+- Fixed problem with font path on Solaris 10.
+
+- Disabled some log messages.
+
+- If the agent has blocked when trying to write to the display, try to
+ read other events from the connection.
+
+- After synchronizing expose events, the result of subtraction is not
+ sent immediately, but added to a region. Expose events will be for-
+ warded to clients after exiting from the event loop.
+
+- Critical output is set when button mouse events are received.
+
+- Fixed TR12D01584. X11 sessions could not be started on Mandriva Li-
+ nux 2007 because of a different location of fonts. The font path
+ used by this distribution is now added to the alternates font paths.
+
+- Fixed TR11D01550. Modified the collection of visuals when nxagent
+ opens a display. Now we only use the ones with the same depth than
+ the default one set in the screen.
+
+- Modified the reconnection of pict-format structures, to avoid an
+ error that arises when migrating a session by a Linux machine to
+ a Windows one.
+
+- Small changes in handling of expose events.
+
+- GraphicsExpose are no more forwarded to clients immediately. They
+ are merged with remote-only exposures and sent later.
+
+- Invalidated expose queue elements dealing with destroyed windows.
+
+- Cleaned up code in nxagentSynchronizeExpose().
+
+- Fixed TR10D01541. Now when destroing a window if lastClientWindowPtr
+ point to this window then in nxagentClearClipboard() we put nxagent-
+ ClearClipboard to NULL and lastClientStage to SelectionStageNone.
+
+- Fixed a problem with LazyLevel option that wasn't correctly read
+ from command line.
+
+- Fixed an arithmetic exception raised when the viewable corrupted
+ region is empty but not nil.
+
+- Removed the obsolete 'sss' option.
+
+- Fixed a warning related to the expose queue.
+
+- Modified the queue of exposed region to remove some memmov() calls.
+
+- Remote expose events not having entries in the queue are collected
+ in a global region and sent later, instead of being sent immediate-
+ ly.
+
+- Changed nxagentCheckWindowConfiguration() to prevent unuseful calls
+ to XQueryTree().
+
+- Fixed TR10D01530. Fixed an invalid write in doOpenFont().
+
+- Fixed some invalid write/read in nxagentVerifyDefaultFontPath().
+
+- Fixed TR10D01518. If needed, a restack is performed on the top level
+ windows in rootless mode.
+
+- Fixed TR10D01520. Reviewed session termination and log messages in
+ the case of indirect XDMCP.
+
+- In PictureCreateDefaultFormats(), cleaned the PictFormatRec struct
+ when the format is not supported.
+
+- Fixed TR09D01498. As it is possible to use multiple paths where to
+ store the fonts, now the agent concatenates all the existing font
+ paths used in various XFree/Xorg distributions to obtain a unique
+ default font path.
+
+- Fixed TR09D01502. The privates of the real pixmap are initialized
+ before trying to allocate a virtual pixmap, avoiding the possibility
+ to access an inconsistent structure in case the allocation fails.
+
+- Fixed a memory leak due to a missing deallocation of a virtual pix-
+ map's region.
+
+- Fixed TR08D01486. Removed a warning in NXrender.c.
+
+- Implemented FR08D01470. Now in the reconnection phase missing fonts
+ are replaced by the most similar picked among the available ones.
+
+- Fixed TR08D01480. A condition inside the nxagentWindowExposures
+ function was ignoring the possibility that the first region para-
+ meter could be a null region.
+
+- Fixed TR06D01409. Now NXCollectGrabPointer() is called with the
+ owner_events true in ActivatePointerGrab() .
+
+- Fixed TR03D01317. Increased the time after wich the session termina-
+ tes.
+
+- Fixed TR08D01475. In rootless, ConfigureWindow requests are only
+ forwarded to the X server, even if no window manager has been detec-
+ ted.
+
+- Fixed TR04D01367. An XKB event is sent to notify that keyboard map-
+ ping has changed.
+
+- Check the number of regions in the list before running nxagentSynch-
+ ronizeExpose().
+
+- Reduced the number of GCs used during the drawable synchronization.
+
+- Optimized the corrupted region synchronization trying to use the
+ extents is some circumstances instead of split the full region.
+
+- Checked and removed some FIXME.
+
+- Fixed TR05D01384. Xgl server uses less picture formats than nxagent
+ usually does. Now the PictFormat structures used by nxagent are fil-
+ tered with the ones available for the real display.
+
+- Fixed TR06D01410. Function nxagentRestoreAreas have to make use of
+ a GC with subwindow mode ClipByChildren for preventing from repaint
+ also children of restored window. Children are restored in a separ-
+ ate call, if they have backing store on.
+
+- Fixed TR07D01426. The cursor data were swapped in place if the dis-
+ play had different bitmap bit order. Let Xlib do this work on a copy
+ of the image, preventing from messing up the original data.
+
+- Fixed TR07D01450. Some fonts were missing in the list of available
+ fonts because the ListFonts pattern used to build this list was too
+ much generic. To build a full font list two different patterns have
+ been used.
+
+- Fixed TR07D01449. Some X clients might affect the X screen saver
+ functioning modifying the default properties. The SetScreenSaver
+ request now correctly checks the parameters changes to avoid any
+ issue.
+
+- Fixed TR07D01432. X11 sessions could not be started on Debian 'Etch'
+ because of a different location of fonts. The font path provided by
+ the Debian Policy is now added to the alternates font paths.
+
+- Fixed TR07D01437. The auto suspend timer was reset when it should
+ not.
+
+- Fixed a conditional jump on uninitialised value.
+
+- Fixed TR05D01380. Now migrating a session when display have a 16-bit
+ depth does recover all visuals, avoiding reconnection failure.
+
+nxagent-3.0.0-7
+
+- Fixed problems occurring when the main session is terminated and the
+ connection is refused to the shadow agent.
+
+- Fixed include directory order for Solaris.
+
+nxagent-3.0.0-6
+
+- The shadow agent works only in viewport mode.
+
+- Added nxagentShadowCreateMainWindow function. This function creates a
+ pixmap and a window for mirroring the display root window.
+
+- Added NXShadowUpdateBuffer() function in order to create the buffer
+ for the poller with the same sizes of the root window of the master
+ agent.
+
+- Added NXxrandr.c NXxrandr.h and NXxrandrint.h files.
+
+- If the main agent screen is resized, the shadow agent adapts to the
+ new size of the root window.
+
+- Changed option activating mirror to -S.
+
+- Removed usleep() call when the agent is suspended.
+
+- Input events are sent to the main session even if it is in sus-
+ pended state.
+
+- Updates are made from top to bottom.
+
+- Added the option IgnoreVisibility. If this option is set, PutImage
+ is not skipped when the window is fully obscured.
+
+- Added the option 'shadow' saying the display to attach.
+
+nxagent-3.0.0-5
+
+- Added the mirror mode. It is activated by -M option.
+
+- Recovered the state of keys when the agent in access mode loses
+ focus in mirror mode.
+
+- Changes to work with 16-bit depth display in mirror mode.
+
+- Changed the Imakefile in order to include NXaccess.h and NXaccess-
+ Event.h files.
+
+- The layout keyboard is passed to NXShadowCreate() function in order
+ to load the right keymap file in mirror mode.
+
+nxagent-3.0.0-4
+
+- Small changes to build on 64 bit x86 platform.
+
+nxagent-3.0.0-3
+
+- Fixes to build on Cygwin platform.
+
+- Change the order of include directories in Imakefile.
+
+- Renamed GC.h, Window.h and Pixmap.h to avoid name clashes.
+
+- Undefined NXAGENT_UPDRADE in Composite.c and NXcomposite* files.
+
+- Defined ddxBeforeReset() in Init.c.
+
+nxagent-3.0.0-2
+
+- Merged changes to NXdispatch.c, NXdixfonts.c, NXmiwindow.c, NX-
+ picture.c, NXproperty.c, NXrender.c, NXresource.c, NXwindow.c.
+
+nxagent-3.0.0-1
+
+- Opened the 3.0.0 branch based on nxagent-2.0.0-88.
+
+nxagent-2.0.0-88
+
+- Fixed a memory leak in the code handling the remote font list.
+
+- Removed some log message.
+
+nxagent-2.0.0-87
+
+- The box size is checked during the region synchronization to avoid a
+ possible arithmetic exception.
+
+nxagent-2.0.0-86
+
+- Checked the validity of the colormap in nxagentChangeWindowAttri-
+ butes().
+
+nxagent-2.0.0-85
+
+- Fixed the bad destination coordinates of shared memory pixmap synch-
+ ronization in nxagentCopyArea() and nxagentCopyPlane() functions.
+
+nxagent-2.0.0-84
+
+- Discard the Terminate Server key sequence Ctrl-Alt-BackSpace.
+
+nxagent-2.0.0-83
+
+- Added a workaround to prevent the use of an inconsistent client poi-
+ nter in the nxagentNotifyConvertFailure() function.
+
+nxagent-2.0.0-82
+
+- Fixed the parsing of option 'backingstore'.
+
+nxagent-2.0.0-81
+
+- The agent window visibility on the real X server is used together
+ with the internal state to decide if graphics operations can be
+ avoided.
+
+- When restoring areas, if the backing pixmap is corrupted, an expose
+ event is sent to the region that can't be restored.
+
+nxagent-2.0.0-80
+
+- The core protocol requests internally used to accomplish a Render
+ extension request are no longer propagated to the real X server. To
+ be more precise in this way we can save many XCreatePixmap, XChange-
+ GC and XSetClipRectangles.
+
+- Corrected a minimal incoherence in nxagentCopyArea in managing the
+ creation and deallocation of a region.
+
+- Fixed a double synchronization of an aged drawable during a put ima-
+ ge operation, due to a missing check of nxagentSplitTrap value.
+
+- Added the VisibilityChangeMask bit to the event masks.
+
+- Improved the algorithm which prevents the server client's resource
+ duplication.
+
+nxagent-2.0.0-79
+
+- Added the 'lazylevel' option usable in the command line to specify
+ how much the Agent should be lazy. The default level is 2. Each
+ level adds the following rules to the previous ones:
+
+ Level 0 The lazy is off.
+
+ Level 1 The put images are skipped if we were out of bandwidth,
+ unless that the destination drawable has an old corru-
+ pted region.
+
+ Level 2 No data is put or copied on pixmaps, marking them always
+ as corrupted and synchronizing them on demand.
+
+ Level 3 The put images over the windows are skipped marking the
+ destination as corrupted. When a copy area to a window is
+ requested, the source is synchronized before copying it.
+
+ Level 4 The source drawable is no longer synchronized before a
+ copy area, but the operation is clipped to the synchro-
+ nized region.
+
+- Implemented a dynamic synchronization mechanism, based on user ac-
+ tivity: if the input devices are not used for a variable amount of
+ time (depending from the configured link type), the synchronization
+ starts and goes on until there is enough bandwidth.
+
+- Minor fixes to the way the copy area propagates the corrupted re-
+ gion.
+
+- Whenever a put image is done, a full synchronization is forced on
+ the destination drawable if it has an old corrupted region.
+
+- During the overall synchronization a drawable is skipped if its
+ timestamp is lower than the synchronization interval.
+
+- Updated the copy plane to skip the operations from a corrupted pix-
+ map to another pixmap.
+
+- Fixed the pixmaps synchronization which was not checking the avai-
+ lable bandwidth.
+
+- In rootless mode, ConfigureWindow requests are not internally per-
+ formed for top level windows if a window manager is running. Anyway
+ they are forwarded to the X server.
+
+- Enabled the DPMS extension.
+
+- Fixed the -dpi option.
+
+nxagent-2.0.0-78
+
+- When the remote proxy supports the alpha encoding, the alpha data
+ is sent compressed. When connected to an old version, the agent
+ uses the NXSetUnpackAlphaCompat() call.
+
+- Added support for the RLE pack method.
+
+nxagent-2.0.0-77
+
+- Fixed the check for special keystrokes. State mask for Alt and Meta
+ keys are inferred from the X server modifier map.
+
+nxagent-2.0.0-76
+
+- Fixed application icon in rootless mode.
+
+- If SYNC_WHOLE_GLYPH_DRAWABLE is set in Render.c the whole drawables
+ used in the composite glyphs are synchronized. This is useful to
+ evaluate the policy we should use to minimize the put images.
+
+- Code cleanup in Pixmap.c concerning the synchronization functions.
+
+- Added the nxagentSynchronizeBox() function.
+
+- Setting a wide band link (ADSL, WAN, LAN) disables Lazy and Strea-
+ ming options.
+
+- Now the Lazy option can be switched by the Ctrl+Alt+E keystroke.
+
+- Set a timestamp on a drawable to verify how much old its data are.
+ If we didn't update it since two seconds, the put image operations
+ are not skipped.
+
+- The image data split in chunks smaller than a threshold is now mo-
+ ved from the nxagentPutImage() to the nxagentRealizeImage() func-
+ tion. If a chunk is going to be put on an hidden area of a window,
+ the operation is skipped.
+
+- Fixed the value assigned to the id of the alpha visual. Now it is
+ assigned by XAllocID().
+
+- Removed a call to XSetInputFocus() before mapping the default win-
+ dows.
+
+- Restored the backup display pointer when failing to reconnect the
+ display.
+
+- Fixed some return value in the options parser function.
+
+- Fixed the parsing of environment variable.
+
+nxagent-2.0.0-75
+
+- Optionally split the long X_RenderTrapezoid requests in multiple
+ messages to help the compression.
+
+nxagent-2.0.0-74
+
+- Fixed a bug preventing the reconnection of pictures.
+
+- Fixed the way the agent notify its start up to NX Client. Now the
+ ownership of agent atom is set before the reconnection of pixmaps.
+
+nxagent-2.0.0-73
+
+- Added a check on the display pointer in nxagentTerminateDisplay()
+ to ensure that we don't try to force an I/O error if the display
+ is already down.
+
+- The image operations now are clipped to the visible area of the
+ drawable. As this may hamper the caching algorithm, only source
+ images bigger than 32K are clipped.
+
+- Code cleanup in Render.c.
+
+- When setting SKIP_LOUSY_RENDER_OPERATIONS in Render.c the realiza-
+ tion of some operations is skipped. This is useful to determine
+ how clients (mis)use the RENDER extension to achieve even worse
+ performance than they were able to achieve using the core protocol.
+
+nxagent-2.0.0-72
+
+- Ensured that SIGUSR1 and SIGUSR2 are ignored if the NX transport
+ is not running.
+
+nxagent-2.0.0-71
+
+- Modified the following messages used to track the session state:
+
+ From: "Session: Session starting at..."
+ To: "Session: Starting session at..."
+
+ From: "Session: Session terminating at..."
+ To: "Session: Terminating session at..."
+
+nxagent-2.0.0-70
+
+- Removed the obsolete 'Info' messages related to the 'fast' versus
+ 'slow' copy area and get image modes. The -slow and -fast options
+ are now ignored as ignored are the keystrokes that allowed switch-
+ ing between the two modes.
+
+- Removed more obsolete warnings and commented the logs left around
+ for test purposes.
+
+- Removed the code in NXdispatch.c handling the fake get-image.
+
+- Removed the flags related to the use of the frame-buffer.
+
+- Major code cleanup in GCOps.c, Window.c, GC.c, Pixmap.c, Screen.c.
+
+nxagent-2.0.0-69
+
+- Added a check to avoid parsing an empty DISPLAY variable.
+
+- Added parsing of the 'streaming' option.
+
+- GetTimeInMillis() function is compiled only if DDXTIME is defined,
+ to avoid double definition errors on Solaris platform.
+
+- Messages "Suspending session..." and "Session suspended..." are not
+ printed if the DE_TERMINATE dispatch exception is set.
+
+- When synchronizing the shared memory pixmaps the image is no longer
+ put on the framebuffer.
+
+- Code cleanup in the nxagentSynhronizeRegion() function.
+
+- Added the 'lazy' option to enable or disable the lazy policy. It is
+ activated by default. At the moment this is configured at compile
+ time and can't be changed through a command line or the option file.
+
+- Fixed the counter of the corrupted backgrounds by checking if the
+ pixmap was already marked.
+
+- The option SharedPixmaps is now activated by default.
+
+- Fixed a problem when synchronizing the shared memory pixmaps with
+ the operation being erroneously skipped.
+
+nxagent-2.0.0-68
+
+- If we are doing a copy area to a pixmap and the source drawable is
+ not synchronized, the destination is marked as corrupted and the co-
+ py area request is not propagated to the X server. As a general rule
+ the source drawables are now synchronized only when they are copied
+ to a visible window.
+
+- The nxagentSynchronizeRegion() function synchronizes the region one
+ box at a time. This solves the incorrect pictures synchronization.
+
+- When a new element is added to the list of exposed region, sending
+ the synchronization request to the X server is postponed to the next
+ call of nxagentFlushConfigureWindow().
+
+nxagent-2.0.0-67
+
+- Ensured that NXTransDestroy() is called when getting rid of the NX
+ transport.
+
+nxagent-2.0.0-66
+
+- The various messages used by the NX server to control the state of
+ the session have been changed and the NX server will have to be mo-
+ dified accordingly.
+
+ At the early startup the agent will print the following message:
+
+ "Info: Agent running with pid '...'."
+
+ Followed by:
+
+ "Session: Session starting at '...'."
+
+ The ellipsis here represent the current timestamp, as reported by
+ the POSIX function ctime():
+
+ Example: Mon May 22 15:07:11 2006.
+
+ After the connection to the remote display has been established,
+ the agent will print the following message:
+
+ "Session: Session started at '...'."
+
+ This replaces the old messages:
+
+ "Info: Session started, state is [SESSION_UP]."
+
+ Or:
+
+ "Info: XDMCP session started, state is [SESSION_UP]."
+
+ And:
+
+ "Info: Entering dispatch loop with exception 0x0."
+
+ If the display connection can't be established, due to a network
+ failure, for example, the agent will exit with a fatal error, for
+ example:
+
+ "Fatal server error:
+ Error: Unable to open display 'nx/nx,options=...'."
+
+ This is a special case, as the X server is still initializing and
+ the agent can't intercept all the possible causes of errors.
+
+ When suspending the session, the agent will print one of the fol-
+ lowing messages, depending on the reason of the disconnection:
+
+ "Session: Suspending session at '...'."
+
+ Or:
+
+ "Session: Display failure detected at '...'."
+ "Session: Suspending session at '...'."
+
+ As soon as the disconnection procedure is completed, the agent will
+ notify the server with the message:
+
+ "Session: Session suspended at '...'."
+
+ This message replaces the old message:
+
+ "Session: Session suspended."
+
+ When entering the reconnection procedure, the agent will print:
+
+ "Session: Resuming session at '...'."
+
+ If the session can be successfully resumed, the agent will print:
+
+ "Session: Session resumed at '...'."
+
+ Otherwise, if the display cannot be opened or if the proxy is not
+ able to negotiate the session, the agent will return in suspended
+ mode by printing:
+
+ "Session: Display failure detected at '...'."
+ "Session: Session suspended at '...'."
+
+ At the time the session be terminated, the agent will print:
+
+ "Session: Session terminating at '...'."
+
+ Followed by:
+
+ "Session: Session terminated at '...'."
+
+ This replaces the old message:
+
+ Info: Exiting dispatch loop with exception 0x2.
+
+ The message 'Session terminated at...' should be the last message
+ parsed by the NX server. From that moment on the NX server will
+ wait the agent process to ensure that the cleanup procedures are
+ completed without errors and that the process successfully termi-
+ nates with the exit code 0.
+
+nxagent-2.0.0-65
+
+- Many improvements to the block handler and to the drawable synch-
+ ronization loop.
+
+- Anyway the synchronization loop is skipped, at the moment, to bet-
+ ter test the new copy area implementation. Also all the put-image
+ on pixmaps are skipped, so that the pixmaps are only synchronized
+ on demand.
+
+- Small fix in the put image to always use the region already allo-
+ cated when marking a region as corrupted.
+
+nxagent-2.0.0-64
+
+- The realization of the put image operations now depends on the
+ state of the link, as reported by the proxy through the synchroni-
+ zation handler. If the proxy link is aproaching a congestion, the
+ destination area of the drawable is marked as corrupted and the
+ operation is skipped.
+
+- At the moment the synchronization strategy is quite unsophistica-
+ ted. The drawables are synchronized when a timeout expires in the
+ block handler. The synchronization loop is aborted as soon as the
+ link approaches again the congestion and is restarted at the next
+ timeout.
+
+- Imported miwindow.c from the DIX layer. The code has been changed
+ to prevent miSetShape() from trying to destroy a null region. The
+ bug appears to be related to the backing store but it is unclear
+ if can also affect the sample server. The region is allocated at
+ the beginning of the function only if the backing store is set for
+ the window. Then miSetShape() calls miChangeSaveUnder(), that, in
+ turn, calls miCheckSubSaveUnder(). The latter can change the back-
+ ing store attribute of -some- windows, including, apparently, the
+ window that miSetShape() is processing. miSetShape() then destroys
+ the region if the backing store is set, but it doesn't verify if
+ the region was actually allocated. The problem is fixed by simply
+ adding a check on the pointer.
+
+nxagent-2.0.0-63
+
+- Added the nxagentDisplaySynchronizationHandler() callback. The NX
+ transport uses the callback to report when it is possible synchro-
+ nize the pixmaps and the other X objects that are corrupted or in-
+ complete.
+
+- Fixed nxagentClearSelection() to correctly validate the selection
+ owner before clearing the record.
+
+- Changed the NXGetControlParameters() call to reflect the changes
+ to the reply.
+
+nxagent-2.0.0-62
+
+- At reconnection the pixmap data is sent to the remote X server only
+ in two cases: if the pixmap is associated to a picture (glyphs, for
+ example) or if its depth is 1 (clip masks of GCs). All the other
+ pixmaps are marked as corrupted and synchronized on demand as soon
+ as the drawable is used as a source. This code is not enabled by
+ default and is currently being tested.
+
+- Implemented a new copy area function synchronizing the corrupted
+ region of a drawable before using it as a source.
+
+- Imported resource.c from the DIX. This makes possible to avoid the
+ duplication of the RT_GC, RT_FONT and RT_PIXMAP resource types.
+
+- Added the RT_NX_GC resource type and removed the old code dealing
+ with the reconnection of the GCs used by the GLX extension.
+
+- Fixed a problem in the synchronization of the window background.
+
+- Checked and removed some FIXMEs related to the streaming code.
+
+- Changed nxagentRestoreAreas() to take care of the width of the win-
+ dow's border.
+
+- Changed nxagentSaveAreas() to be independent from the window's pos-
+ ition.
+
+- Called nxagentMapDefaultWindows() before pixmaps' reconnection.
+
+- Changed nxagentMapDefaultWindows() to notify the client about the
+ agent's startup also when running in rootless mode.
+
+- Added the delete and backspace keystrokes to the routine removing
+ duplicated keys.
+
+- Wehn resizing the desktop the clip region of the children windows
+ is clipped to the new size of the root. This fixes a crash occur-
+ ring when resizing the desktop to the minimum height.
+
+nxagent-2.0.0-61
+
+- Changed the extraction of alpha channel from images to be endianess
+ independent.
+
+nxagent-2.0.0-60
+
+- nxagentReleaseSplit() now uses the NXAbortSplit() request to force
+ the proxy to discard the pending splits.
+
+- Added the value of the SharedMemory and SharedPixmaps options in
+ the log, together with the size of the shared memory segment used
+ by the remote proxy.
+
+- Fixed the compilation problem affecting the previous version.
+
+- The location of xkb base directory is checked by calling _NXGetXkb-
+ BasePath() function.
+
+- Fixed TR05D01371. nxagentVerifyDefaultFontPath() is called only if
+ the default font path is not defined on the command line.
+
+- Removed some log message.
+
+nxagent-2.0.0-59
+
+- Improved the composite text operation to synchronize the regions
+ affected by the operation instead of the whole drawable.
+
+- Updated the copy plane to better propagate the corrupted region
+ to the destination.
+
+- The background pixmaps are synchronized with a deferred strategy.
+ Tiles and stipples are still synchronized as soon as the GC needs
+ to be used.
+
+- Completed the new copy area implementation.
+
+- Shared memory pixmaps are not synchronized after a RenderChange-
+ Picture operation. This needs further testing.
+
+- Added a nxagentNotifyKeyboardChanges() function that sends a Map-
+ pingNotify event to clients when the keyboard is reloaded or re-
+ configured. The SendMappingNotify() function is not used anymore.
+ This hopefully solves the TR01D01284.
+
+- Moved the nxagentResetKeyboard() function in Keyboard.c.
+
+- Checked if the previous sibling of a window is changed before try-
+ ing to restack it. This saves the redundant window configuration
+ requests of the previous version.
+
+nxagent-2.0.0-58
+
+- Before composite glyphs operations, only areas intersecting the
+ glyphs extents are synchronized.
+
+- When a new split resource is allocated, a copy of the GC used by
+ the put image operation is created. Such copy will be safely used
+ by the commit operation even if the original GC is changed or
+ destroyed.
+
+nxagent-2.0.0-57
+
+- Region saved by the backing store and corrupted region of backing
+ store pixmaps are emptied at suspend and resume time. This makes
+ the exposures go to the clients that will redraw their windows.
+
+- Changed the nxagent root window cursor. The cursor of the parent
+ window is used instead of the default 'X' cursor.
+
+nxagent-2.0.0-56
+
+- Rewritten the state machine handling the streaming of the images.
+
+- By calling FatalError(), the normal server shutdown was skipped
+ and left the X server socket in .X11-unix. This happened also if
+ for any reason the agent couldn't complete the session startup.
+ Now the DDX abort routine, if the agent is not exiting because of
+ an exception, calls nxagentAbortDisplay() which closes down the
+ well known sockets.
+
+- Upon a failure of the reconnection procedure, if the alert shown
+ to the user by leveraging the proxy control channel is not set
+ to a valid code, the function in will use a default.
+
+nxagent-2.0.0-55
+
+- Added an explicit link flush in the display block handler. The
+ block handler should now be called by nx-X11 before entering the
+ select, not only the the agent has entered WaitForReadable() or
+ WaitForWritable().
+
+- Removed the checks on the value of the Streaming option. The way
+ a drawable is treated only depends from its previous state.
+
+- Started reimplementing the copy area operation to better propaga-
+ te the corrupted region to the destination.
+
+- Shared pixmaps are now synchronized before a copy plane operation.
+
+- The unpack alpha is discarded before the drawable synchronization.
+ This fixes the problems with the synchronization of the cursor. A
+ better way to deal with the condition is to be considered for the
+ future.
+
+- Added a check in the nxagentPutImage() function to skip the opera-
+ tion if the window is fully obscured.
+
+nxagent-2.0.0-54
+
+- Fixed a bug in nxagentPaintWindowBackground(). A region passed as
+ parameter was modified by this function and this affected subseq-
+ uent operations involving the region.
+
+- In rootless mode, the map state of a top level window is uncondit-
+ ionally reflected in the internal state when receiving a map event
+ from the real display.
+
+nxagent-2.0.0-53
+
+- Regions are marked as synchronized after an image operation if the
+ image didn't generate a split.
+
+- When an image operation takes place on a drawable which is already
+ being streamed, the resource is marked as invalid and the commits
+ are discarded.
+
+- A specific trap is used at the time a drawable is synchronized.
+
+- Fixed Render.c to use the latest streaming code.
+
+nxagent-2.0.0-52
+
+- Fixed a problem in rootless mode where some windows could have mis-
+ sed to update the mapped flag after a MapNotify event.
+
+nxagent-2.0.0-51
+
+- Realization of images is skipped, if the link is down, and a small
+ delay is introduced before returning from the image function.
+
+- Started implementing a new handler to let the agent include arbit-
+ rary data in the transport statistics. For now, only the interfa-
+ ces and the stubs exist, and the handler is not registered to the
+ proxy.
+
+nxagent-2.0.0-50
+
+- Removed the unused code in nxagentCheckPixmapIntegrity().
+
+- Instead of calling nxagentShapeWindow() immediately, windows to be
+ reshaped are added to the list of windows that have to be configur-
+ ed at later time. This allows SaveAreas() to work even when windows
+ change shape, as in the case of the "bouncing cursor" as implement-
+ ed in some versions of the KDE.
+
+- Added a missing call to nxagentFlushConfigureWindow() in the recon-
+ nection procedure.
+
+nxagent-2.0.0-49
+
+- Code cleanup in the lazy encoding. Implemented distinct utilities
+ to allocate the split resources and manage the corrupted areas.
+
+- The Render.c file is taken from the previous version because the
+ updates break the composite code.
+
+- Renamed the option 'Lazy' to 'Streaming'.
+
+nxagent-2.0.0-48
+
+- Made the image cache use the agent data, instead of allocating and
+ copying.
+
+- Fixed a memory leak in the image routines.
+
+- The image cache is freed at exit. This helps investigating other
+ eventual leaks.
+
+nxagent-2.0.0-47
+
+- Solved the problem at reconnection with lazy encoding enabled.
+
+nxagent-2.0.0-46
+
+- Solved a bug in the parsing of the pack method that made the agent
+ select an unavailable id.
+
+nxagent-2.0.0-45
+
+- Ensured that images are explicitly byte swapped before sending to
+ an X server using a different byte order. In the attempt of saving
+ an expensive operation, the previous code let the unpack procedure
+ do the job, but this could fail to work in some special cases.
+
+- Cleaned the bitmaps used for the core cursors before putting the
+ image.
+
+- Left the display error handler installed during all the lifetime
+ of the session so that other parts of the code don't have to inst-
+ all it explicitly before entering a critical Xlib routine.
+
+- Removed more unused code.
+
+nxagent-2.0.0-44
+
+- Fixed the problem with the cursor image being encoded with a lossy
+ method. The fix is a temporary. The final solution requires changes
+ to the lazy encoding.
+
+- Reworked the code dealing with the alpha visual. The color mask is
+ set based on the endianess of the remote display and is recreated
+ after a session resume.
+
+- Removed more unused code.
+
+nxagent-2.0.0-43
+
+- Corrupted regions are now correctly clipped to the visible area of
+ the drawable.
+
+- Fixed a problem with the clip mask when calculating the intersect-
+ ion of the clip region with the destination region.
+
+- Drawables involved in a composite glyph operation are now synchro-
+ nized prior to being used.
+
+- The nxagentRealizeDrawable() function is now called only for draw-
+ ables that are not already synchronized.
+
+- Pixmaps are now skipped in the synchronization loop. Synchronizat-
+ ion of pixmap is to be implemented.
+
+nxagent-2.0.0-42
+
+- Improved the algorithm removing the duplicated keys by trying to
+ read more events.
+
+nxagent-2.0.0-41
+
+- Made use of the NXFinishSplit() request to speed up the completion
+ of a pending split.
+
+- Added an explicit NX transport flush before any operation that may
+ block waiting for data from the X server.
+
+- Set the NX flush policy to deferred after reconnection.
+
+- Solved refresh problems when reconnecting in rootless mode.
+
+- Modified the routine removing duplicated arrow key events. Now the
+ routine deals with page down and page up keys as well.
+
+- Added a check for xkb base directory path, in order to support new
+ Linux distributions.
+
+- Disabled backing store support for rootless sessions, as implement-
+ ation is not very functional, yet.
+
+nxagent-2.0.0-40
+
+- Removed code related to old managing of backing store.
+
+- Added initialization of backing store by calling miInitializeBack-
+ ingStore().
+
+- Implemented nxagentSaveAreas() and nxagentRestoreAreas() functions.
+ These functions are based on fb code. Calls to XCopyArea() have been
+ added in their implementation to make them be effective also on the
+ real X server.
+
+- Instead of calling nxagentConfigureWindow() in ClipNotify() and
+ PositionWindow(), windows to be configured or mapped are added to a
+ list, together with a mask storing operation that have to be done.
+ Windows in the list will be configured or mapped later by calling
+ nxagentFlushConfigureWindow(). This avoids that windows were mapped
+ or configured before saving areas in the backing store pixmaps.
+
+- The function nxagentFlushConfigureWindow() is called before resto-
+ ring areas on the X server in nxagentRestoreAreas() and at the end
+ of ConfigureWindow and MapWindow in the DIX layer.
+
+- Blocked the NoExpose events at the proxy side.
+
+- Fixed an error in nxagentCompareRegions().
+
+nxagent-2.0.0-39
+
+- Ensured that the display errors are detected while waiting for a
+ split operation to complete.
+
+- Removed more unused code.
+
+nxagent-2.0.0-38
+
+- Changed nxagentSetCursorPosition() to avoid warping the cursor if
+ the requesting client is NULL or the serverClient.
+
+- Added a specific trap to avoid compressing an image associated to
+ a RENDER cursor using a lossy encoding.
+
+nxagent-2.0.0-37
+
+- Added a check in nxagentPaintWindowBackground() to avoid calling of
+ XClearArea() if the window is not realized.
+
+- Modified nxagentAtomNames in Atoms.c to include CLIPBOARD and TIME-
+ STAMP atoms, avoiding further calls to XInternAtom in Clipboard.c.
+
+- Solved TR04D01356. Auto repeat mode setting is no more propagated to
+ the X server keyboard.
+
+- Cleaned up the code in the routine removing duplicated arrow key
+ events.
+
+nxagent-2.0.0-36
+
+- Added the Literals.h file. For now it just contains a table used
+ to translate a request opcode to the name of the X request, to be
+ used for test purposes.
+
+nxagent-2.0.0-35
+
+- Major code rewrite in nxagentPutSubImage(). Removed support for the
+ deprecated image encodings. Ensured that padding bytes are cleaned
+ before trying to locate the image in the nxcompext cache. Avoided
+ to store the image in the cache if it is coming from a XVideo or
+ GLX operation.
+
+- Added support for the new RGB image encoder. This allows the agent
+ to use the simplest encoding by still separating the alpha channel
+ from the image data.
+
+- Added the missing check in nxagentRedirectWindow() verifying that
+ use of the composite extension is enabled.
+
+- Updated to use the new NXCleanImage() function.
+
+- Removed more debugging output.
+
+nxagent-2.0.0-34
+
+- Updated to use the 'what' parameter in NXFlushDisplay().
+
+- Removed the duplicated arrow key events from the event queue.
+
+- Solved the TR04D01355. The X11 agent now tries to locate the
+ fonts.dir file in the misc directory, to verify the validity of
+ the font path.
+
+- Added a check in nxagentChangeClip to avoid creating a new clip
+ mask if the old clip mask matches the former.
+
+- Use the 'fixed' font to replace fonts that are not found a the
+ display reconnection. This should overcome one the most common
+ sources of troubles when migrating the session to a different
+ display, and constitute the base for improving the algorithm
+ trying to match a substitute font.
+
+- Implemented the FR04D01360. Now the user can enable/disable the
+ streaming of the images by using the option 'streaming'.
+
+- Implemented the FR04D01358. The backing-store can be enabled or
+ disabled by using the option 'backingstore'.
+
+- Forced the reconnection routine to call the IOError handler in
+ the case the display cannot be opened.
+
+nxagent-2.0.0-33
+
+- The GetImage requests in 'slow' mode are now served by retrieving
+ the content of the drawable from the frame buffer.
+
+- Replaced a call to XQueryExtension() by one to XRenderQueryExten-
+ sion(). This function caches previous QueryExtension requests. This
+ partially implements FR01D01275.
+
+- At reconnection, the keyboard is reset only if the keyboard option
+ has been changed.
+
+- Fixed the fonts reconnection procedure. Now the remote fonts list
+ is refilled before fonts reconnection and after failed fonts
+ reconnection, so as to store the correct list of available fonts.
+
+- Added a check in nxagentLoadQueryFont to look up selected font in
+ the list of available fonts. This check avoid filling FontStruct
+ with invalid data.
+
+- Added TIMESTAMP to handled selection targets.
+
+nxagent-2.0.0-32
+
+- Implemented FR03D01323. Added the 'clipboard' option to enable or
+ disable copy and paste operations from the user's desktop to the NX
+ session or vice versa. This option can take four values:
+
+ client The content copied on the client can be pasted inside the
+ NX session.
+
+ server The content copied inside the NX session can be pasted
+ on the client.
+
+ both The copy & paste operations are allowed both between the
+ client and the NX session and viceversa.
+
+ none The copy&paste operations between the client and the NX
+ session are never allowed.
+
+nxagent-2.0.0-31
+
+- Implemented FR03D01337. Now the X11 agent is able to read the op-
+ tions from different places according to the following order: the
+ DISPLAY variable, the options file, the command line.
+
+- Implemented FR03D01347. Added 'composite' to parsed options.
+
+- Always activate shared memory support in the remote X server proxy.
+
+- Modified nxagentCopyArea for the case the source is a shared memory
+ pixmap. The pixmap on the X server is not synchronized, but the con-
+ tent of the shared pixmap mantained by the agent is placed directly
+ on the destination drawable. This allows to skip the following Copy-
+ Area operation.
+
+nxagent-2.0.0-30
+
+- Added the missing flush of the Xlib buffer at the beginning of
+ the block handler.
+
+nxagent-2.0.0-29
+
+- Changes in the block and wakeup handlers to queue multiple reads
+ and flush the link on demand.
+
+- Removed the unused code in Control.h and Control.c. Renamed the
+ files as Client.h and Client.c.
+
+- Added support for the '-nocomposite' command line option.
+
+nxagent-2.0.0-28
+
+- Moved the composite code to Composite.h and Composite.c.
+
+- Redirected the top-level windows when running in rootless mode.
+
+nxagent-2.0.0-27
+
+- When the composite extension is supported by the remote display,
+ the agent window is redirected to the off-screen memory of the
+ X server.
+
+- Imported Xcomposite.c, Xcomposite.h and xcompositeint.h from the
+ 3.0.0 branch to be able to activate the off-screen redirection of
+ the top level windows.
+
+- Added Composite to the list of agent options. The default is to
+ use the composite extension, when available.
+
+nxagent-2.0.0-26
+
+- Avoided to suspend the clients on excess of karma or after a get
+ input focus request.
+
+- Images are now split only when the agent is in congestion state.
+
+- Moved all the image related functions from GCOps.h and GCOps.c to
+ Image.h and Image.c.
+
+- Removed the unused includes in GCOps.c and Image.c.
+
+- Added the karma delay field to the NXGetControlParameters() call.
+
+- Renamed placeholder.xpm as nxmissing.xpm. Renamed the Icon.h file
+ as Icons.h. Added there a define to point at nxmissing.xpm in the
+ include.
+
+nxagent-2.0.0-25
+
+- Implemented the FR03D01334. Option keyboard is now a synonym of
+ option kbtype.
+
+nxagent-2.0.0-24
+
+- Ensured that the split procedure is completed before executing a
+ render operation that required a synchronization of a shared mem-
+ ory pixmap.
+
+- Added the appropriate checks to avoid synchronizing the same sha-
+ red memory pixmap multiple times.
+
+nxagent-2.0.0-23
+
+- Imported changes to NXrender.c and NXshm.c in the files for the
+ 3.0.0 port.
+
+nxagent-2.0.0-22
+
+- Implemented FR03D01331. Options shpix and shmem enable/disable the
+ use of shared pixmaps and shared memory extension.
+
+- Implented handling of value "query" for nxagentKbtype. This value
+ is passed by the NX client for MacOSX. If value of nxagentKbtype is
+ "query" or NULL we init keyboard by core protocol functions reading
+ the keyvoard mapping of the X server. The property _XKB_RULES_NAMES
+ is always set on the root window with default values of model and
+ layout.
+
+- Fixed TR11C01223. When the XDM connection can't be established the
+ agent creates an alert to notify the user that XDM session failed
+ to start.
+
+- Changed Clipboard.c to fix invalid read errors in nxagentGetClip-
+ boardWindow() function.
+
+- Implemented FR11C01218. Modified Font.c introducing the new function
+ nxagentLoadQueryFont, this function loads the font_struct struct
+ locally instead of sending a QueryFont request.
+
+- Modified nxagentListRemoteFontsfunction to fill nxagentFontList
+ struct with all remote fonts, avoiding further calls to XListFonts.
+
+- Added two functions, nxagentFreeRemoteFontList and nxagentFreeFont,
+ used in disconnect phase to empty the nxagentFontList struct and
+ the cached FontStruct elements, respectively.
+
+nxagent-2.0.0-21
+
+- Updated to include the remote proxy version in the NXGetControl-
+ Parameter reply.
+
+- Updated to use the NXDisplayFlush() and NXSetDisplayPolicy() int-
+ erfaces.
+
+nxagent-2.0.0-20
+
+- NXInitDisplay() and NXResetDisplay() are called at the time we
+ open or close the display, to let nxcompext set up its internal
+ structures.
+
+nxagent-2.0.0-19
+
+- Activated the streaming of the images even in the case of a link
+ type LAN.
+
+- In NXmiexpose.c, if the number of rectangles in an exposed region
+ exceeds 4, we let a predicate function decide if it is better to
+ send the window extents, rather than the rectangles in the region.
+
+- Added the NXAGENT_SERVER define in the Imakefile. It will be used
+ in future to mark all the modifications made to files we imported
+ from other layers.
+
+- Removed the warnings from NXmiexpose.c.
+
+nxagent-2.0.0-18
+
+- Imported NXmiexpose.c in the agent code.
+
+- Removed NXmiwindow.c from the agent code. We now use the original
+ miwindow.c
+
+- Removed the static qualifier from the _NXFontPath definition.
+
+- Started implementing the new lazy encoding mechanism. For each of
+ the drawables, the agent will create a "corrupted" region and will
+ try to synchronize the drawable when there is bandwidth available.
+ This is a work in progress.
+
+- Implemented the function nxagentFbOnShadowDisplay. This is a test
+ facility which opens a window on the display showing the content
+ of the agent's framebuffer.
+
+nxagent-2.0.0-17
+
+- The image streaming procedure is now activated also when using a
+ link of type LAN.
+
+- Removed the call to NXTransDestroy() in nxagentCloseDisplay. The
+ NX transport is now implicitly shut down by either NXForceDisplay-
+ Error() or XCloseDisplay().
+
+- Updated to comply with the new NX function prototypes introduced
+ in nxcomp-2.0.0-31.
+
+nxagent-2.0.0-16
+
+- Fixed a bug in the nxagentModifyPixmapHeader function that was
+ causing some glyphs to be displayed incorrectly.
+
+- Implemented the test function nxagentPixmapOnShadowDisplay, useful
+ to display a pixmap on the real screen to check its consistency.
+
+nxagent-2.0.0-15
+
+- Ensured that, before restarting a client after a no-split, all the
+ pending image commits are executed.
+
+- Installed the display error predicate function before trying to
+ open the display even at session startup. This prevents the agent
+ from disappearing silently if a failure occurs before the display
+ initialization is completed.
+
+- Moved the initialization of the callback functions in Display.c.
+
+- Added some interfaces to manipulate the callbacks and the error
+ handlers and verify the state of the display flags.
+
+nxagent-2.0.0-14
+
+- Implemented stub versions of the nxagentDisplayCongestionHandler()
+ and nxagentDisplayBlockHandler() callbacks. See nx-X11-2.0.0-17.
+
+- Added the nxagentDisplayErrorPredicate() function. In combination
+ with changes implemented in nx-X11-2.0.0-16, this allows the agent
+ to abort a blocking operation and shutdown the display in a timely
+ fashion if a signal or any other error condition is received insi-
+ de Xlib.
+
+- Modified nxagentWaitSplitEvent() to use XIfEvent() as we can trust
+ the proxy to either send the event or give up the proxy connection.
+ The function will also give up when an error condition is raised,
+ like for example a session termination requested by the user.
+
+- Removed any remaining reference to the unused display buffer and
+ image cleanup functions.
+
+- Fixed exposures problems when reconnecting.
+
+- Solved TR05C00896. The problem was due to window manager utilizing
+ zero-thick-lines drawing requests. These drawing operations are now
+ performed by calling fbPolySegment() instead of miPolySegment(),
+ which doesn't handle the zero-thick-lines drawing case.
+
+nxagent-2.0.0-13
+
+- Improved the management of the expose events. We now create the
+ fake window used to keep the agent synchronized with the X server
+ only once, instead of creating and configuring a different window
+ for each generated region.
+
+- A warning is printed if the changes requested for the fake window
+ don't match the changes reported in the subsequent ConfigureNotify
+ event.
+
+- Imported previous changes in NXevents.c into the 3.0.0 port.
+
+nxagent-2.0.0-12
+
+- Activated the image streaming also during the reconnection. This
+ makes possible to leverage the remote disk cache.
+
+- Ensured that all clients are restarted when the session is suspen-
+ ded. This is required because the proxy is gone but we may have
+ some client still waiting for the completion of a split procedure.
+
+- Skipped the reset of the keyboard device if the display breaks at
+ the time it is being reconnected.
+
+- As the reset of the keyboard may have failed before we were able
+ to set a valid DeviceIntPtr, also added a check in ProcessPointer-
+ Event(), in NXevents.c to verify that the state of the display is
+ valid before accessing any of the device members. This is to be
+ better investigated.
+
+nxagent-2.0.0-11
+
+- Solved TR02D01298. The clip region associated to the current glyph
+ was not updated because the serial number of the virtual pixmap
+ pointed by the picture was not incremented.
+
+- Imported the NXmiglyph.c file from render directory.
+
+- Removed the patch added in the release 1.3.2-6 temporary fixing this
+ problem.
+
+nxagent-2.0.0-10
+
+- Various improvements the wakeup procedures.
+
+- Implemented the FR10C01110. Now, the X11 agent manages both the
+ PRIMARY and CLIPBOARD selections. It is possible copy and paste text
+ also by using Ctrl+C and Ctrl-V.
+
+- Modified NXdispatch.c in order to correctly include header files.
+
+- More cosmetic changes and code cleanup.
+
+- Imported changes into the files for the 3.0.0 port.
+
+nxagent-2.0.0-9
+
+- Rewritten the procedures suspending and resuming the clients in
+ Control.c. This solves a problem with clients that were restarted
+ at wrong time and should ensure that multiple events for the same
+ client are correctly handled.
+
+- Removed the calls to NXSetUnpackGeometry() setting the parameters
+ for the client 0. The geometry is now set only at the right time,
+ just before trying to unpack the image.
+
+- Removed the sample code using the NXTransChannel() interface.
+
+nxagent-2.0.0-8
+
+- Added test code showing how to open a new NX channel by using the
+ NXTransChannel() interface.
+
+- Streaming of images is not attempted in the case of link LAN.
+
+- Added preliminary code to the tell the proxy to flush the link if
+ the agent is idle.
+
+- Imported changes from nx-X11-2.0.0-14 in NXdixfonts.c.
+
+nxagent-2.0.0-7
+
+- Modified exposures managing: agent synchronizes both with remote X
+ server and remote window manager for every generated region. Synch-
+ ronization is reached sending a ConfigureWindow request for a fake
+ window created on purpose. This way the exposures for the resulting
+ region coming from calculating the difference between local region
+ and the remote region are sent to clients in order to avoid duplica-
+ ted refreshes.
+
+- Improved new algorithm for managing exposures in order to work pro-
+ perly also in rootless mode: added privates to windows in order to
+ get information about mapping of windows on remote X server and vi-
+ sibility state too. This way local exposures are replaced by remote
+ ones if windows are mapped only for agent or windows are not fully
+ visible. This solves TR08C00971.
+
+- Window attributes values about backing store and save-under are re-
+ spectively set to NotUseful and False when creating a window on re-
+ mote X server and ignored when a client requests to change these
+ attributes.
+
+- Removed a no more needed function call to generate exposures when
+ resizing windows.
+
+nxagent-2.0.0-6
+
+- Updated the NoMachine copyright notices.
+
+nxagent-2.0.0-5
+
+- Added handling of font reconnection failure. In case of failure in
+ reconnecting some font, the agent adds the font server connection
+ forwarded by nxcomp to the font path of the X server.
+
+- Fixed TR09C01022. Moved the handling of the session states into
+ main cycle. The session states are not more handled into SIGHUP and
+ IOError handlers but into nxagentHandleConnectionStates() called in
+ nxagentWakeupHandler().
+
+- In ResizeChildrenWinSize(), privates storing window geometry are
+ updated even if the call to PositionWindow() is skipped. This have
+ to be done because the window is moved by the X server accordingly
+ with window gravity. This prevent some window positioning error on
+ the real display evidenced with OpenOffice and GNOME.
+
+nxagent-2.0.0-4
+
+- Solved TR12C01234. In some conditions Alt-F4 keystroke made the user
+ unable to open the Gnome Menu panel. This was due to the agent dis-
+ carding KeyRelease events for Alt-F4 and Alt-F2.
+
+- Undefined TEST and DEBUG in Dialog.c
+
+- Changed the NXAGENT_VERSION define from 1.5.0 to 2.0.0
+
+- Caching and streaming of images is now disabled when dispatching
+ requests from the GLX and XVideo extensions.
+
+- Added the NXxvdisp.c and NXglxext.c files. These files are needed
+ to intercept calls to the XVideo and GLX extensions. Only files
+ in the main directory are imported. Files in the X directory, used
+ for the 3.0.0 port, for now are empty.
+
+- Added the nxagentXvTrap and nxagentGlxTrap flags. These flags are
+ set when dispatching requests from the XVideo and GLX extensions.
+
+- Added the GL and Xext include directories to the Imakefile to be
+ able to compile the NXxvdisp.c and NXglxext.c sources.
+
+- Modified the NXrender.c and NXshm.c files to set the nxagentGCTrap
+ nxagentRenderTrap and nxagentShmTrap even when dispatching requests
+ from swapped clients. Files for the 3.0.0 port are not updated.
+
+nxagent-2.0.0-3
+
+- Solved a problem in the export of WM_SIZE_HINTS properties in root-
+ less mode on 64 bit machines.
+
+- Modified Render.c in order to correctly process Xrender header fi-
+ les on 64 bit machines.
+
+- Made changes in order to compile the agent in the Cygwin environ-
+ ment.
+
+- Renamed the files Time.* to Millis.*
+
+- Specified the relative path of some included header files.
+
+- In the Imakefile added a new include paths order related to the
+ Cygwin environment to avoid name clashes.
+
+- Disabled the MIT-SHM extension in the Cygwin environment.
+
+- Fixed TR11C01186. Added -timeout item to the usage message.
+
+- Fixed TR08C00945. Scrolling a document in Firefox caused image left-
+ overs with animated banners. Set the right window gravity on windows
+ created in the real X server. Let X move children for us accordingly
+ with window gravity attribute, without dix interferences.
+
+- Removed logs related to parsing of the options file.
+
+- Modified dialogs in order to show the name of the session in the
+ caption.
+
+nxagent-2.0.0-2
+
+- Imported changes up to nxagent-1.5.0-112.
+
+- Fixed TR12C01241. The failure condition returned by the XQueryTree
+ function is managed in order to avoid the subsequent errors.
+
+- Fixed the TR11C01165. X11 sessions could not be started on Ubuntu
+ 5.10 because of the different location of fonts. Now we check the
+ existence of the fonts directory pointed by the default XF86 and
+ X.org font path and, if the directory does not exist, we use the
+ alternate font path used on Ubuntu.
+
+- Set the default value of DeviceControl option to False before resu-
+ ming a session.
+
+- Added a warning message printed if reset of keyboard fails at recon-
+ nection.
+
+- Fixed TR11C01185. Solved by checking if there are windows iconized
+ when a window is destroyed.
+
+- Fixed TR11C01164. The xkbcomp process used LD_LIBRARY_PATH as it was
+ a child of the agent. Added a call to NXUnsetLibraryPath() in Init.c
+ in order to remove LD_LIBRARY_PATH before executing a child process.
+
+- Check if there are windows iconized before terminating a rootless
+ session.
+
+- Modified CHANGELOG to include reference to fixed TRs TR08C00967 and
+ TR08C00969. Removed some typo.
+
+- Fixed TR11C01194. The agent crashed if launched with -kb option.
+
+- Fixed TR10C01042. The keyboard didn't work if the session migrated
+ from Apple X server to another platform and viceversa. This has been
+ solved by initializing the keyboard device whenever the session is
+ resumed. This feature can be disabled by the new option -nokbreset.
+
+- Fixed some compilation error arising if TEST was enabled in the file
+ Keyboard.c.
+
+- Fixed TR11C01167. During the disconnection the font structures poin-
+ ted by the font cache were freed leaving inconsistent data in the
+ corresponding privates. Now they are nullified and the GCs are che-
+ cked to guarantee a correct font handling in the suspended state.
+
+nxagent-2.0.0-1
+
+- Opened the 2.0.0 branch based on the 1.6.0-11.
+
+nxagent-1.6.0-11
+
+- Updated the NX.original copies of files in X directory.
+
+- Merged the NX changes:
+
+ - From dix/extension.c to NXextension.c.
+ - From dix/dixfonts.c to NXdixfonts.c.
+ - From dix/glyphcurs.c to NXglyphcurs.c.
+
+- Export of CARDINAL properties are expanded to 64 bit units on 64
+ bit machines.
+
+- Solved a segmentation fault when handling configure notify events
+ in rootless mode on 64 bit machines.
+
+- Merged the NX changes from dix/property in X/NXproperty.c.
+
+- Correctly allocated the local variable used in the call to NXGet-
+ CollectedInputFocus to be of 64 bit on 64 bit machine.
+
+- Defined symbolic constants XlibWindow in order to propertly handle
+ export property on 64 bit machine.
+
+- Moved the XlibAtom define from Atoms.h to Agent.h.
+
+- Modified export properties of type Window and Atom in order to han-
+ dle correctly Window and Atom types on 64 bit machines.
+
+- Removed some invalid read in Atom handling code when compiled for 64
+ bit, due to mismatched size of Atom type between Xlib and Xserver
+ code.
+
+- Modified some header files in order to properly see the correct pro-
+ totypes of some Xlib structures on 64 bit machines.
+
+- The variable currentDispatch is always defined.
+
+- The dispatch current time is updated, this way the initial timeout
+ can elapse and the splash window is removed.
+
+nxagent-1.6.0-10
+
+- Imported changes from nxagent-1.5.0-103.
+
+- Removed some redundant redeclarations.
+
+- Merged the NX changes from randr/randr.c to NXrandr.c.
+
+- Removed some warnings in NXrandr.c.
+
+- Removed NXAGENT_FORCEBACK and NXAGENT_INTERNALBS code.
+
+- Added ddxInitGlobals function in order to compile with the new X.org
+ tree.
+
+- Converted nxagentSynchronizeShmPixmap from macro to function to
+ solve a graphical render problem caused by the variable's scope.
+
+nxagent-1.6.0-9
+
+- Imported changes from nxagent-1.5.0-102
+
+- Fixed TR10C01124. Function nxagentSetPictureFilter() filled the log
+ with a debug message.
+
+- Removed a debug message in Events.c.
+
+- Run function nxagentSetTopLevelEventMask() only in rootless mode.
+
+- In the Java application IntelliJ the dropdown menus was shown in a
+ wrong position when the main window was moved or minimized. The
+ problem is solved for KDE desktop environment.
+
+- Fixed TR08C00967, TR08C00969, TR08C00941. Our incomplete implementa-
+ tion of the MIT-SHM X11 extension was a problem for some applica-
+ tions using the Shared Memory Pixmaps. Now the extension support has
+ been completed, so the nxagent can handle the Shared Memory Pixmaps
+ requests. Introduced some changes in the render implementation to
+ synchronize the content of the Shared Memory Pixmaps with the X ser-
+ ver before performing the ChangePicture and Composite operations.
+
+nxagent-1.6.0-8
+
+- Fixed TR09C01028. The problem was the GC foreground was not updated
+ on the X server. This was due to the private fields was not copied
+ from a GC to another in the function nxagentCopyGC(). Added macro
+ nxagentCopyGCPriv in GC.h.
+
+- Solved TR11C01162. Removed the dialog shown by nxcomp/nxagent when
+ the resume of a session is happening over a slow link.
+
+nxagent-1.6.0-7
+
+- Imported changes up to nxagent-1.5.0-100.
+
+- Fixed some compilation errors.
+
+- Fixed a typo in nxagentChangeClip() declaration.
+
+- Fixed TR10C01040. After the session resume the applications using
+ OpenGL were not correctly resumed because some GCs were not recon-
+ nected. Now we save these GCs in a safe vector, so we can't lose
+ them.
+
+- Improved font reconnection procedure in order to take advantage of
+ new font channel provided by nxcomp. If resuming session fails be-
+ cause missing fonts, the font channel provided by nxcomp is added
+ to font paths of X server. After reconnection succeded the font
+ channel is removed from font paths.
+
+- In the Java application IntelliJ the dropdown menus remained opened
+ and shown in a wrong position when the main window was moved or
+ minimized. This problem has been solved by sending a sinthetic event
+ to client. This solves partially TR09C01012.
+
+- In the same application the caret was not shown in the text window.
+ Solved the problem by setting nxagentGCTrap before calling a MI
+ function in every GC operations.
+
+- Merged the NX changes:
+
+ - From render/glyph.c to NXglyph.c.
+ - From Xext/shm.c to NXshm.c.
+ - From render/render.c to NXrender.c.
+ - From mi/miwindow.c to NXmiwindow.c
+ - From render/glyphstr.h to NXglyphstr.h.
+ - From render/picturestr.h to NXpicturestr.h.
+ - From render/picture.c to NXpicture.c.
+ - From dix/dispatch.c to NXdispatch.c.
+ - From dix/events.c to NXevents.c.
+
+- Changed picturestr.h glyphstr.h to remove some formatting changes
+ compared to the original files.
+
+- Disabled Xinerama extension in order to fix a type conflict in NX-
+ dispatch.c.
+
+- The current directory has been moved in front of the include dire-
+ ctory list.
+
+- Removed NXAGENT_FORCEBACK code in files imported from DIX.
+
+- Changed NXshm.c NXrandr.c NXproperty.c NXpicture.c NXglyphcurs.c
+ NXglyph.c NXextension.c NXrender.c NXdixfonts.c NXdispatch.c NXmi-
+ window.c to remove some formatting changes compared to the original
+ files.
+
+- Added copyright notice to file NXrandr.c.
+
+- All files, except those from mi and dix, compile fine in the new
+ tree. Problems remain with different size of Atoms and other XID
+ objects.
+
+- More compilation fixes for the new tree.
+
+- Merged the NX changes from dix/window.c to NXwindow.c.
+
+- Changed NXwindow.c and NXevents.c to remove some formatting chan-
+ ges compared to the original files.
+
+- More compilation fixes aimed at porting the agent to the new tree.
+
+- Started porting the agent to the 6.8.99.16 X.org tree.
+
+- Lot of compilation fixes aimed at building in the new environment.
+
+- Files imported from the X.org tree's dix and mi will have to be
+ recreated in the nxagent/X directory. The new files will be inclu-
+ ded and built from the nxagent/X director if the NXAGENT_UPGRADE
+ symbol is defined (as it is the case when building in the 2.0.0
+ nx-X11 tree), otherwise the usual NX* files in the nxagent's dir-
+ ectory will be compiled.
+
+- Fixed TR09C01021. SIGHUP it was not received from the proxy. The
+ handler of SIGHUP must be installed also in the case of not persi-
+ stent sessions.
+
+- In non persistent case: if session is normally running, SIGHUP sig-
+ nal is dealt like SIGTERM, otherwise it is passed to the proxy.
+
+- Fixed TR09C01027. Changed function nxagentHandleConfigureNotify()
+ in order to get changes of the staking order in a rootless session
+ even if no window manager is running.
+
+- Fixed TR09C01025. The problem was XView application could be unable
+ to respond to user's input. Modified the Event Mask for non top le-
+ vel windows reparented by the root window. Set the input member of
+ XWMHints to communicate the window manager the keyboard focus model
+ used by the application.
+
+- Fixed TR09C01026. Added 'fast' and 'slow' to the set of accepted
+ command line parameters. 'fast', 'slow' and 'geometry' command line
+ parameters have precedence regarding the options file.
+
+- Fixed TR08C00968. There was a problem in the implementation of the
+ render extension.
+
+- Fixed TR09C01016. In rootless mode when the session was resumed,
+ the cursor was shown with a wrong shape.
+
+- Fixed TR09C01011. Allowed clients to monitor the root window for
+ structure redirect, button press and resize redirect events in root-
+ less mode. This is a quick hack to make the java bean shell work
+ flawlessy with the agent.
+
+- Solved TR08C00961. Improved the algorithm updating the sprite win-
+ dow. Now it is updated based upon crossing and motion event. Since
+ on some X server, like Windows and MacOsX X servers, the only cros-
+ sing event is not a reliable method to trace the sprite window chan-
+ ges.
+
+- Fixed TR08C00966. Solved the problem on Windows when a rootless
+ session is suspended and some of the application windows are
+ minimized.
+
+- Fixed TR08C00960. Updated the internal screen dimension in rootless
+ sessions at reconnection.
+
+- Fixed TR09C01005. The problem was that the 'render' option on the
+ command line was overridden by the one provided in the options file.
+
+- Implemented the HandleEmptySplitEvent function that synchronizes all
+ the drawables after the depletion of the split store, when the lazy
+ option is activated.
+
+- Some changes in order to avoid duplicated refreshes when display-
+ ing Mandrake's kde menu.
+
+- Changed level of some logs from WARNING into TEST in Window.c and
+ in Rootless.c.
+
+- Fixed TR08C00958. Changed the log message printed when the user re-
+ quest to resume the session.
+
+nxagent-1.6.0-6
+
+- When reconnecting, try to estimate the shift on the main window due
+ to WM reparenting.
+
+- In the handling of configure events, if a WM is running save the po-
+ sition of the main window only if event is synthetic.
+
+nxagent-1.6.0-5
+
+- Command line option -noshmem disables shared memory extension in the
+ agent.
+
+- Changed level of some logs from WARNING into TEST.
+
+nxagent-1.6.0-4
+
+- Some changes in order to improve handling of expose events in root-
+ less. The GetInputFocus request is not sent after reconfiguring a
+ top level window: window manager intervention could give race condi-
+ tions. The request is placed in WindowsRestructured() in order to be
+ sure it is sent after any event that could generate expose.
+
+- Zero lenght change property are now imported in rootless mode.
+
+- Corrected few typos.
+
+- Replaced the function usleep with NXTransContinue when NX transport
+ is running.
+
+- Changed the session state to GOING_DOWN as soon as the reconnection
+ is failed.
+
+nxagent-1.6.0-3
+
+- Updated rootless toplevel window map when a window is reparented to
+ the root window.
+
+- Renoved duplicated entry in rootless toplevel window map.
+
+nxagent-1.6.0-2
+
+- Removed TEST and DEBUG in Color.c.
+
+- Removed a compilation error in Atoms.c if DEBUG is enabled.
+
+- Removed invalid read at server reset in rootless mode, now the a-
+ toms description are duplicate before that we cache them.
+
+- Now the local atom in the atom cache are reset when exiting from
+ the dispatch loop.
+
+nxagent-1.6.0-1
+
+- Opened the 1.6.0 branch based on nxagent-1.5.0-87.
+
+nxagent-1.5.0-87
+
+- Corrected the enable-disable lazy encoding dialog in order to show
+ the correct keystroke Ctrl-Alt-E.
+
+nxagent-1.5.0-86
+
+- Reset agent position at reconnection when the new size of display
+ doesn't match the old size and fullscreen is on.
+
+- Inserted a comment about handling of expose events.
+
+nxagent-1.5.0-85
+
+- If fullscreen and resize options are true when reconnecting, geo-
+ metry option is ignored and the root window is resized to the en-
+ tire screen.
+
+- Read the position of the main window at startup from geometry op-
+ tions.
+
+nxagent-1.5.0-84
+
+- Changed the keystroke Ctrl-Alt-L to toggle the image encoding on
+ and off to the new combination Ctrl-Alt-E.
+
+- Enabled the keystroke Ctrl-Alt-M to minimize the root window also
+ in window mode.
+
+nxagent-1.5.0-83
+
+- Replaced the call to XIfEvent() with something less efficient but
+ safer, based on XCheckIfEvent(). The previous version might never
+ return if an I/O Error was encountered waiting for the event. The
+ new version fails gracefully, and returns after having restarted
+ the client.
+
+nxagent-1.5.0-82
+
+- Removed some debug logs.
+
+nxagent-1.5.0-81
+
+- Forced window mode if X server geometry has changed at reconnection.
+
+nxagent-1.5.0-80
+
+- Reset resize desktop at startup flag before reconnection.
+
+nxagent-1.5.0-79
+
+- Removed race condition in the parsing order of the options parame-
+ ter, now the geometry parameters are set in screen initialization.
+
+nxagent-1.5.0-78
+
+- Disabled auto-resize and viewport mode dialog in case of rootless
+ session.
+
+- Removed no more used -backingstore option from usage messages.
+
+- Modified -bs command line option: now the default value "when_re-
+ quested" is always set.
+
+- Fixed wrong size of root window when switching from full screen to
+ window mode and viewport navigation mode is enabled.
+
+- Added option that solved a minimize bug in LeaveNotify when the
+ root window is in full screen and the user is using viewport navi-
+ gation mode.
+
+- Forwarded HUP signal to NX transport, when session state is up and
+ running.
+
+nxagent-1.5.0-77
+
+- Do PutImage in every case. Don't check if the drawable is synchro-
+ nized.
+
+- Do CopyArea, CopyPlane, Composite in every case, don't check whether
+ the source is dirty.
+
+nxagent-1.5.0-76
+
+- Terminate rootless session 15 seconds after the last mapped window
+ has been destroyed.
+
+nxagent-1.5.0-75
+
+- Ctrl-Alt-T shows suspend/terminate dialog also in rootless mode.
+
+- Sleeps 50 ms in the block handler if the session state is down.
+
+- In rootless mode, the focus window is changed following FocusIn
+ events received from the real X server, also in the case no win-
+ dow manager has been detected.
+
+nxagent-1.5.0-74
+
+- Changed the alerts names to comply with nxcomp-1.5.0-57.
+
+- Moved loading of placeholder from startup to the first time it is
+ needed.
+
+- Corrected a typo in the CHANGELOG.
+
+nxagent-1.5.0-73
+
+- Ignored put image on not synchronized drawables, when the image
+ doesn't cover the entire surface.
+
+- Added parsing of render parameter in option file.
+
+- Ignored I/O Error when session is suspended.
+
+- Managed I/O Error at reconnection.
+
+nxagent-1.5.0-72
+
+- Fixed offset of the default window at reconnection and after switch-
+ ing from fullscreen in window mode.
+
+- Suppressed the -lazy command line option.
+
+- Made some slightly changes in GCOps.c and Pixmap.c in order to com-
+ ply with the new 'Lazy' option.
+
+- Avoided to do CopyArea, CopyPlane and Composite operations when the
+ source drawable is dirty.
+
+- Rootless disconnect dialog has changed. This dialog is launched
+ after some time the last window has been closed.
+
+- Ignored geometry changes at reconnection if resize at startup is
+ not set.
+
+- Removed reset of the offset of the root window in viewport mode at
+ reconnection.
+
+- Fixed some refreshes problems in viewport mode and in desktop resize
+ mode.
+
+- Fixed a memory leak in nxagentWindowExposures().
+
+- Added predicate to nxagentDispatchEvents.
+
+- Implemented framework in order to wait for a free resource entry,
+ when calling the asynchronous Collect* functions.
+
+nxagent-1.5.0-71
+
+- Added keystroke Ctrl+Alt+L switching lazy encoding option.
+
+- Disabled viewport movement in resize mode.
+
+- Changed agent geometry at screen resize.
+
+- Changed agent geometry at initialization.
+
+nxagent-1.5.0-70
+
+- Restored the set of blocked signal after the dialog pid just laun-
+ ched has been stored.
+
+- Removed an already fixed FIXME.
+
+- Updated the copyright message.
+
+nxagent-1.5.0-69
+
+- Started working at the integration of the lazy encoding functiona-
+ lity. Made the agent draw the placeholder if the image is split and
+ never suspend the client. There is no provision for synchronizing
+ the drawables yet.
+
+- Made the lazy encoding configurable by the new 'Lazy' option.
+
+- Updated to include the changes in the NXStartSplit() and NXCommit-
+ Split() requests.
+
+- This version requires nxcomp-1.5.0-55 and nxcompext-1.5.0-16.
+
+nxagent-1.5.0-68
+
+- Fixed reconnection of iconified windows.
+
+- Ignored the X server's scratch pixmap at reconnection.
+
+- The desktop gets automatically resized at reconnection if the desk-
+ top resize option is enabled.
+
+- Added the resize option in nxagentProcessOptionsFile() to allow the
+ user to change the geometry of both the root and the default window
+ at reconnection.
+
+- Fixed max size of the default window at startup when auto-resize
+ mode is enabled or in the case of a reconnected session.
+
+- Made some minimal changes in Atoms.c and NXdispatch.c.
+
+nxagent-1.5.0-67
+
+- Changed handling of expose events received from real X server. A re-
+ gion is composed from expose events by checking the count field.
+
+- Reimplemented the exposures managing. Now the GetInputFocus request
+ is sent after a window has been configured or unmapped. We use a
+ vector to store windows originating expose events while waiting for
+ the reply to GetInputFocus.
+
+nxagent-1.5.0-66
+
+- Added the DisplayLatency value in the agent options. This is int-
+ ended to give a hint about the latency of the current display
+ connection. The value is currently used to determine if the agent
+ is running across a slow link, and so it's appropriate to display
+ the begin-reconnection alert.
+
+nxagent-1.5.0-65
+
+- Added the DesktopResize option. It controls the behaviour of the
+ automatic (RandR) resize of the desktop when dragging the agent's
+ window border.
+
+- Automatic resize is again the default.
+
+- Disabled the test logs in Events.c, GCOps.c Pixmap.c, Handlers.c,
+ Reconnect.c.
+
+- More cosmetic changes and code cleanup.
+
+nxagent-1.5.0-64
+
+- Rewritten the image streaming procedure to better leverage the new
+ infrastructure. The start-split/end-split procedure is always init-
+ iated by the agent, including when the size of the image is below
+ the threshold, but the client is only suspended when the split has
+ taken place in the NX transport.
+
+nxagent-1.5.0-63
+
+- Updated image streaming to use the new NX notification events.
+
+- Removed the references to the NXSync() operation, not used anymore
+ by the agent.
+
+nxagent-1.5.0-62
+
+- Fixed wrong position of the root window in case of viewport naviga-
+ tion mode.
+
+- Added a field to the client private to trace the client type.
+
+- Tracked which clients are nxclient dialogs in order to not run the
+ pulldown dialog on them.
+
+nxagent-1.5.0-61
+
+- Disabled server reset if not needed by XDMCP.
+
+- Disabled persistence for indirect XDMCP session until the first gre-
+ eter with the list of host has disappeared.
+
+- Created a small data structure to contain information about integri-
+ ty status and placeholder status of a drawable.
+
+- Modified the call to nxagentRealizeOnePixmap function in order to
+ avoid errors during the signal handling.
+
+nxagent-1.5.0-60
+
+- Added the XDMCP option. If both Rootless and XDMCP are selected the
+ session will fail.
+
+nxagent-1.5.0-59
+
+- Limited the permission to reset the agent only to indirect XDMCP
+ sessions, only one reset is allowed.
+
+- Fixed max size of the default window when switching from fullscreen
+ to window mode and auto-resize is disabled.
+
+nxagent-1.5.0-58
+
+- Enabled reset mechanism, in order to make XDMCP session work proper-
+ ly.
+
+- Added XSync for window manager detection, after a server reset since
+ the XInternAtom already used should be cached.
+
+- Now the pixmap status is always tested on real pixmap.
+
+- The placeholder is drawn only once per drawable.
+
+- Implemented nxagentUnmapWindows() in case of failed reconnection if
+ the session was running in fullscreen mode and NX transport is not
+ enabled.
+
+- In nxagentPutSplitImage(), passing leftPad to XCreateImage().
+
+- This version avoids sending the XSync() to the remote when a large
+ amounts of GetInputFocus requests are issued by the same client.
+ It will require more testing, especially to verify how it works on
+ old Windows machines.
+
+- Changed the NXCommitSplit() call to comply with the new interface.
+
+- The drawable status is now propagated on graphic operations where
+ the source is using the tile and stipple components on the graphic
+ context and the tile or stipple are not synchronized. This affects
+ the following operations:
+
+ - PolyLines
+ - PolySegment
+ - PolyRectangle
+ - PolyArc
+ - FillPolygon
+ - PolyFillRect
+ - PolyFillArc
+ - PolyText8
+ - PolyText16
+
+nxagent-1.5.0-57
+
+- Removed two XSync() operations at screen initialization.
+
+- Modified keyboard initialization in order to load the correct rules.
+ This is choosen according to the vendor string of X-Window system in-
+ stalled on the local machine.
+
+- Corrected a few typos.
+
+- When the NX transport is present, the failed reconnection dialog is
+ launched on the remote X server by using the NXTransAlert() function.
+ The same dialog is managed by NXTransDialog() when a session is run
+ by connecting directly to the display.
+
+- Removed the function nxagentUnmapAllWindows().
+
+nxagent-1.5.0-56
+
+- Set the parent window for the pulldown dialog.
+
+nxagent-1.5.0-55
+
+- Added an alert at the time the reconnection procedure begins. The
+ alert is shown only when the NX transport is present and the link
+ type is not LAN and is removed at the end of the resume operation.
+
+- Removed the former code used for testing the alert functionality.
+
+- Moved the function removing the splash window in Splash.c.
+
+nxagent-1.5.0-54
+
+- Fixed initialization of window privates storing exposed regions.
+ This solves a bug affecting the refresh of windows introduced in
+ nxagent-1.5.0-42.
+
+- Added a STARTING state to nxagent. Until the agent is in this state
+ the suspension mechanism is not activated.
+
+nxagent-1.5.0-53
+
+- Added the special keystroke Ctrl+Alt+R to enable or disable the
+ auto-resize mode.
+
+- A dialog notifies the user when the auto-resize mode is toggled.
+
+- Added a test alert at startup, to verify that NXTransAlert() is
+ working as expected.
+
+nxagent-1.5.0-52
+
+- Changed the code to call NXTransDialog() and NXTransExit().
+
+nxagent-1.5.0-51
+
+- Solved a bug that prevented the clients that had been restarted
+ to be immediately selected for input.
+
+- Removed some code that was added for debugging.
+
+nxagent-1.5.0-50
+
+- Fixed a memory leak in nxagentHandleExposeEvent().
+
+- Fixed a memory leak in nxagentDestroyWindow().
+
+- Now rootless dialog is launched only when last mapped window is
+ deleted, since we have pulldown window to control the session.
+
+- Added pulldown dialog to handle NX windows in rootless sessions.
+ This dialog is activated from a "magic" slice of window under the
+ top border.
+
+- Solved a problem with sessions that might fail at reconnection.
+
+- Now the message text of the dialog launched in case of failed re-
+ connection explains the reason why the agent cannot be resumed.
+
+- Implemented function nxagentUnmapAllWindows() to unmap all windows
+ if nxagent has failed to migrate the session to the new display.
+
+nxagent-1.5.0-49
+
+- Fixed the problems with propagation of the drawable status.
+
+- Modified nxagentPutSplitImage in order to set the correct height
+ of the last split image.
+
+- Code cleaning and optimization in Dialog.c.
+
+- Solved bug that switched on the full screen state in rootless se-
+ ssion.
+
+- Changed the way dialog caption are set in rootless mode. It is set
+ upon the session name or session id value.
+
+- Corrected the function nxagentFailedReconnectinDialog().
+
+nxagent-1.5.0-48
+
+- Solved bug that switched on the full screen state in rootless se-
+ ssion.
+
+- Changed the way dialog caption are set in rootless mode. It is set
+ upon the session name or session id value.
+
+- Corrected the function nxagentFailedReconnectinDialog().
+
+nxagent-1.5.0-47
+
+- Now we call NXContinueOnDisplayError() with value 1 just after
+ having opened the display. This will cause the NX Xlib to return
+ in the case of an I/O error, instead of quitting the application.
+
+- Removed the references to Context.h and the related elements.
+
+- Reflected the changes occurred in NXlib.c regarding NXDisplayErr-
+ ror() and inverted the logic compared to NXDisplayIsValid().
+
+- Added a dialog box to notify the user when nxagent has failed to
+ migrate the session to the new display. Because the main X agent
+ connection is unavailable, this dialog uses the auxiliary nxcomp
+ keyboard channel.
+
+- Disabled the special keystroke Ctrl+Alt+S if any dialog is already
+ running.
+
+- Started implementing lazy synchronization of pixmaps. At the pre-
+ sent moment the implementation doesn't try to perform any optimi-
+ zation on the windows' regions that have to be redrawn and neither
+ it checks the congestion state. After having synchronized a reaso-
+ nable number of pixmaps, it simply sends to all the affected win-
+ dows an expose event, mandating the repaint of the whole area.
+
+- Removed a warning in Atoms.c.
+
+nxagent-1.5.0-46
+
+- Removed the longjmp() at the time an I/O error was encountered on
+ the display.
+
+nxagent-1.5.0-45
+
+- Removed UNDEFINED status for drawables.
+
+- Now lazy encoding affects only windows.
+
+- Changed the block handler to call NXTransFlush() with 'if needed'.
+
+nxagent-1.5.0-44
+
+- After reconnection, stored exposed regions are reset and the manag-
+ ing of duplicate expose events is restarted.
+
+- Detection of window manager has been moved to the start of screen
+ initialization. Screen dimensions and fullscreen option are over-
+ ridden if no window manager is detected.
+
+- Added a call to XSync() in switching fullscreen function in order
+ to synchronize it with the network behaviour.
+
+- Started adding provision for deferred writes in the NX transport.
+ When the flush policy will be set accordingly, X data accumulated
+ by the proxy will be written to the network under the control of
+ the block and wakeup handlers.
+
+- Fixed a bug in nxagentCopyArea(). In some cases, pixmap drawables
+ was erroneusly supposed to be windows. This produced invalid reads
+ when trying to access to fields of WindowRec structure.
+
+nxagent-1.5.0-43
+
+- In the code managing the property notify events, NXCollectProperty
+ is not called if the window is not found in the tree mantained by
+ the agent.
+
+- Changed managing of screen resize in order to avoid repeated resize
+ of desktop. The agent sleeps one second, then all configure event
+ are read from the queue and the server connection. The desktop re-
+ size is performed after the last read configure event.
+
+- Changed nxagentImportProperty() in order to use NXCollectProperty
+ instead of XGetWindowProperty. This avoids many round-trips in root-
+ less mode.
+
+- Fixed Invalid write problem in nxagentRRSetScreenConfig().
+
+nxagent-1.5.0-42
+
+- Modyfied test of NXSetUnpackGeometry for visuals, so now the compa-
+ rison between visuals is based on their IDs and not on the memory
+ area allocated for their visual structure.
+
+- Modified exposure managing in order to avoid duplicated refreshes.
+ Now only exposed regions not formerly managed yet are sent to the
+ clients.
+
+nxagent-1.5.0-41
+
+- Modified nxagentCloseScreen() in order to free the frame buffer.
+
+- Added information of the integrity of the windows. Now the integrity
+ has became a drawable property that will expand in every drawable to
+ drawable operation.
+
+nxagent-1.5.0-40
+
+- Splitting of images now happens only if the display is a valid con-
+ nection.
+
+- The isItTimeToYield flag is now set in the dispatcher only when the
+ client has been actually suspended because of a karma, a sync, or
+ a split operation.
+
+nxagent-1.5.0-39
+
+- Improved the handling of the PutImage request to offer provision
+ for splitting images coming from orders generated by extensions.
+
+- Fixed a problem with clients being unexpectedly restarted instead
+ of waiting for the end of split.
+
+nxagent-1.5.0-38
+
+- Added a persistent dialog when agent is running in rootless mode.
+
+- Modified the policy of management of nxclient dialogs.
+
+- Fixed memory leak problem in nxagentPutSplitImage().
+
+- Modified printing of some debug messages to avoid passing a null
+ pointer to fprintf().
+
+nxagent-1.5.0-37
+
+- Implemented initial support for streaming the packed images in the
+ handling of the MIT-SHM extension.
+
+nxagent-1.5.0-36
+
+- Updated the pixmap status when a placeholder is copied on the pix-
+ map and when the pixmap is the target of a RENDER composite opera-
+ tion.
+
+- Solved the TR05C00900. The NX transport was forced to be set when-
+ ever the display name contained the nx prefix.
+
+- Implemented the FRSA052393. Removed the compression filters applied
+ by nxagent to cursor pixmaps.
+
+- Modified RANDR implementation to make the user able to resize the
+ desktop by simply dragging the agent window's border. Screen resize
+ is made after a small timeout, to give time to the last configure
+ event to come from the server and avoid multiple re-configurations
+ of the screen.
+
+nxagent-1.5.0-35
+
+- Added the current screen size to the set of sizes returned by the
+ RANDR extension.
+
+nxagent-1.5.0-34
+
+- Corrected the placeholder xpm image.
+
+- Added a client dialog to notify the user that nxagent is running in
+ fast or in slow mode after pressing Ctrl + Alt + S.
+
+- Modified RANDR implementation to give a set of screen sizes. Im-
+ plemented functions actually performing screen resize on a RANDR
+ request. Now toggling to fullscreen make the desktop cover the en-
+ tire screen area.
+
+nxagent-1.5.0-33
+
+- Added an auto-disconnect feature similar to the one present in the
+ Windows Terminal Server. The feature is modeled on the built-in X
+ server's screen-saver. If the agent doesn't receive any input from
+ the user in a given timeout, it will either terminate the session,
+ if no client is connected to the display, or will suspend it, so
+ that applications will be left running.
+
+- The default is to disable the auto-disconnect option. The feature
+ is activated by specifying a "-timeout s" parameter on the command
+ line, with s being the timeout in seconds. The minimum allowed ti-
+ meout is 60 seconds.
+
+- The waitpid() call now only checks the agent's own children.
+
+- Moved the longjmp() context declaration to a new Context.h file to
+ avoid clash with redefinitions by the PNG headers.
+
+- Few other cosmetic changes.
+
+nxagent-1.5.0-32
+
+- Added a check on the type of the connection to avoid cleaning the
+ images when not needed.
+
+nxagent-1.5.0-31
+
+- Modified the placeholder frames, now it has a left top black border
+ and a bottom right grey one.
+
+- Modified fbShmPutImage() in order to set the correct size for the
+ temporary pixmap.
+
+- Modified nxagentForceExposure() and nxagentHandleExposeEvent() in
+ order to clip exposed regions to the window size region of the root
+ window.
+
+- Added a new placeholder xpm image.
+
+- Corrected few typos.
+
+- Added function to synchronize GC tiles and stipples whenever those
+ pixmaps have been realized.
+
+nxagent-1.5.0-30
+
+- Hidden viewport windows to clients in QueryTree request in order
+ to make work XDMCP properly.
+
+nxagent-1.5.0-29
+
+- Removed some warnings with gcc 3.4.
+
+- Added desktop -D switch to usage.
+
+- Paint window background draw on framebuffer only with OpenOffice
+ client.
+
+- Now fast copy are and fast getimage are no more set according to
+ the link type, their default value has been set to true.
+
+nxagent-1.5.0-28
+
+- Modified nxagentUpdateViewportFrame() in order to solve a refresh
+ problem. Windows composing the external frame must be always on top
+ to be sure that agent sends expose events for every window.
+
+- In rootless mode agent doesn't export anymore the properties when
+ disconnected from the X server.
+
+- Changed the way agent check if the connection with the X server
+ is available. Instead of using a state machine it uses the display
+ flag.
+
+- Removed the SIGTERM handling function in persistent code. We don't
+ need anymore those function since agent is no more sleeping when
+ disconnected.
+
+- Implemented nxagentFreePropertyList() function in order to empty the
+ list of exported properties when the rootless agent is disconnected.
+
+- Added special keystroke Ctrl + Alt + S toggling between fast and
+ slow mode for GetImage and CopyArea.
+
+- Added missing handling of down arrow key in Keystroke.c.
+
+- Modified nxagentForceExposure() in order to intersect exposed re-
+ gions with the clip region of the root window. This prevents window
+ functions from painting outside the frame buffer.
+
+- Added the field usesFrameBuffer in struct nxagentPrivClient. Modifi-
+ ed GC funtion and DoGetImage() in order to write in the frame buffer
+ only if usesFrameBuffer is True.
+
+- Removed code performing PutImage in the frame buffer, as it is use-
+ less at the moment.
+
+- Modified ProcChangeProperty() to check WM_NAME property.
+
+- Added a piece of code in nxagentOpenScreen() checking for and remo-
+ ving duplicated visuals.
+
+- Added the Dialog.c Dialog.h files. Unified all calls to NXDialog,
+ and blocked SIGCHLD before calling in order not to get the signal
+ before the child pid has been stored.
+
+- Modified the algorithm that disconnect the running session in
+ order to avoid the opening of a new dialog box for closing or
+ suspending the nxagent.
+
+nxagent-1.5.0-27
+
+- Changed the disconnect/reconnect procedure in order to have a pro-
+ per default colormap vector when session is suspended, solving a
+ segmentation fault in create window function.
+
+- Corrected few errors in slow copy area mechanism.
+
+- Modified screen initialization in order to allocate memory for the
+ internal frame buffer.
+
+- Modified some GC functions for writing to and reading from the frame
+ buffer.
+
+- Modified nxagentCreateWindow() for initializing the window in the
+ frame buffer.
+
+- Modified nxagentCreateColormap() in order to use the default visual
+ if a matching one is not found.
+
+- Modified function DoGetImage() in order to call nxagentGetImage() in
+ place of nxagentGetDefaultImage() if fast option is on.
+
+- Added nxagentCheckWindowIntegrity() function verifying the matching
+ between the internal frame buffer and the X server for a window.
+
+nxagent-1.5.0-26
+
+- Added the property "_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR" to the list
+ of exported property in rootless mode, in order to let clients use
+ the system tray.
+
+- Modified import of WM_STATE properties in rootless mode in order
+ to better handle null resources.
+
+- Enhanced the slow CopyArea mechanism in case of one part of the
+ image is out of the X server screen or out of nxagent screen.
+
+- Changed type for variables width and height of default window
+ from 'unsigned int' to 'int'.
+
+nxagent-1.5.0-25
+
+- Added a new signal handler for SIGCHLD. The transport is set to
+ forward the signal (by means of a new NX_SIGNAL_FORWARD action).
+ This allows the agent to wait for its own children.
+
+nxagent-1.5.0-24
+
+- Set up the RANDR extension. When querying the configuration, the
+ clients get 3 sizes, the first being the current size, the second
+ being the maximum size of the remote display, the third being the
+ minimum size (arbitrarily set to 100x100 pixels). Screen sizes in
+ millimeters are calculated based on the size reported for the real
+ display.
+
+ An example of xrandr -q output is below:
+
+ SZ: Pixels Physical Refresh
+ *0 800 x 600 ( 270mm x 203mm )
+ 1 100 x 100 ( 33mm x 33mm )
+ 2 1400 x 1050 ( 474mm x 356mm )
+ Current rotation - normal
+ Current reflection - none
+ Rotations possible - normal
+ Reflections possible - none
+
+ As you can note, reflections and rotation is not possible.
+
+- Set up the GLX extension. This provides basic support with GLX op-
+ erations being translated into core X protocol primitives.
+
+- Moved initialization of GLX and RANDR to the Extensions.c file.
+
+- Removed the references to the unused mfb library. Modified Screen.c
+ to allocate the right privates for the fb code.
+
+- Modified the Xserver Imakefile to link nxagent with FbPostFbLibs
+ and avoid including mfb/libmfb.a.
+
+nxagent-1.5.0-23
+
+- Fixed an incorrect buffer length calculation when retrieving a re-
+ mote property.
+
+- Added a check to avoid the use of a NULL pointer when changing the
+ window cursor.
+
+- Implemented a function to lookup the remote pixmaps.
+
+- Changed the RENDER initialization messages.
+
+- Corrected a few typos in symbol names.
+
+nxagent-1.5.0-22
+
+- Added the nxagentNeedConnectionChange() macro.
+
+- Small optimizations in the block and wakeup handlers.
+
+nxagent-1.5.0-21
+
+- NXCollectGrabPointer() is called by passing nxagentDefaultClient().
+ This is a macro that checks the validity of requestingClient and,
+ if the pointer is NULL, defaults to NXNumberOfConnections - 1.
+
+nxagent-1.5.0-20
+
+- Replaced all calls to XGrabPointer with the asynchronous version
+ provided by nxcompext.
+
+- In DeactivatePointerGrab() function, mouse button state is set to
+ up if the window entered by the pointer is the root window and the
+ agent is in rootless mode. This change is needed because the sub-
+ sequent KeyRelease event could be not received by the agent (for
+ example if the focus had left the window), so that agent could be
+ unable to update the mouse button state.
+
+- In rootless mode, grabs exported to X in ActivatePointerGrab() are
+ always made asynchronous. The synchronous behaviour is implemented
+ by the agent, so that requiring a further synchronous grab down to
+ the real X server is of little use and potentially harmful.
+
+- Modified function XYToWindow() in order to manage the case that
+ mouse pointer is located on the title bar of a top level window in
+ rootless mode.
+
+- Reflected name changes to NXImageCache variables.
+
+nxagent-1.5.0-19
+
+- Changed the implementation of the SIGHUP handler to forward the sig-
+ nal to the proxy only when appropriate. This allows nxagent to close
+ the NX connection without having to go through an I/O error on the
+ display.
+
+- Modified nxagentBreakXConnection() to check if the NX transport is
+ running and thus use NXTransDestroy(). Using a simple shutdown() may
+ not work, for example if NX is using the memory to memory transport.
+
+- Added the -D option, to let users specify that agent must be run in
+ desktop mode. This is presently the default.
+
+nxagent-1.5.0-18
+
+- Set the PropertyChange mask on input/output window in rootless mode
+ in order to get the PropertyNotify events.
+
+nxagent-1.5.0-17
+
+- Cleaned of the reconnection routines, removed the NXAGENT_RECONNECT
+ macro.
+
+- Now the SIGHUP handler forwards the signal also to the NX transport.
+
+- Moved the NXTransDestroy() call in the closure of the display, so
+ we can avoid going through the I/O error handler.
+
+- Removed an invalid free in the function that closes the display.
+
+- Commented out more code in Display.c to avoid the segfault on exit.
+
+- In rootless mode, now function XYToWindow() starts search from the
+ last window originated an EnterNotify event. In this way, we can
+ prevent shaded windows from getting mouse events.
+
+- The variable to disable the smart scheduler is set at its definition
+ instead of setting it in the Dispatch function. This avoids the call
+ to SmartScheduleInit.
+
+- Changed implementation of cursor visualization in rootless mode. We
+ made the cursor attributes changes go transparently to the X server
+ while in desktop mode we ignore any client request to change the cu-
+ rsor on the X side, and we just set the cursor on the default window
+ any time the pointer cross a window border.
+
+- Expanded the range of properties exported on the remote Xserver,
+ this way we export properties whose atom name starts with "WM_" and
+ "_NET_".
+
+- In Rootless mode PropertyChangeMask is added to top level window in
+ order to get PropertyNotify Events.
+
+- First implementation in rootless mode of nxagentImportProperty fun-
+ ction with which after reception of PropertyNotify Events, all chan-
+ ging properties coming from external clients such as Window Manager
+ will be imported in agent windows.
+
+- Changed the GetEventMask function in order to handle the InputOnly
+ windows that need to be notified of property changes in rootless
+ mode.
+
+nxagent-1.5.0-16
+
+- Implemented the -B command line switch, to let nxagent impersonate
+ a "pure" proxy on the NX server side (that is without X connections
+ having to be managed by the nxagent's dispatcher). Such a "nxagent
+ -B" is going to replace the corresponding nxproxy process that in
+ previous version of NX server was run with the same options.
+
+- When running nxagent in 'bind' mode the X port where the the proxy
+ has to listen for connection must be specified after the -B option.
+ The other NX options must be passed in the DISPLAY environment.
+
+ Example:
+
+ nxagent -B :9
+
+- The initialization procedure will check that the display included
+ on the command line matches the one specified in the NX display
+ options.
+
+ For example, given the command:
+
+ nxagent -B :9
+
+ The NX options must be something like:
+
+ DISPLAY=nx/nx,link=modem:9
+
+ This allows users to find out which display the agent is impersona-
+ ting by running a 'ps' and inspecting the command line.
+
+- Fixed a bug preventing the proxy's ClientMessage to reach the right
+ function when activating rootless mode.
+
+- Removed unused function nomachineLogo.
+
+- Code cleaning and soem optimizations in Rootless.c.
+
+- We want to import all properties changed by external clients to our
+ internal windows. But we must ignore property notify generated by
+ our own requests. For this purpose we implement a list to record
+ every change property that we dispatch. This way when processing
+ a property notify we can distinguish between the notify generated
+ by our request and those generated by an 'outside client'.
+
+- In rootless mode, optimized window configurations mantaining inter-
+ nal stacking order.
+
+- Fixed focus troubles in rootless mode. Now focus window is set fol-
+ lowing FocusIn events.
+
+- In rootless mode, now fake KeyRelease events on FocusOut are sent
+ only if keys having down state are modifiers. This prevents from
+ sending key events to a wrong client.
+
+- Removed unused function nxagentRootlessNextSibling in Rootless.c.
+
+- Removed unused function nxagentRootlessStackingOrder in Rootless.c.
+
+- Fixed compilation error if TEST log is enabled in Events.c.
+
+- Changed Options variables to comply with NX naming rules.
+
+- Some additional cosmetic changes.
+
+nxagent-1.5.0-15
+
+- Modified functions nxagentPutImage and DoGetImage for XYPixmap fo-
+ rmat.
+
+- Completed implementation of shared memory extension.
+
+- Implemented a mechanism that prevents monitoring of SubStructure-
+ Redirect ResizeRedirect and ButtonPress events by any clients simu-
+ lating the presence of a window manager running inside the agent.
+
+- Added debug functions in order to check the status of syncroniza-
+ tion between the pixmaps residing on the X server and the local
+ framebuffer ones.
+
+- Changed the policy used when realizing all the pixmaps in 'lazy en-
+ coding' mode so that the agent now switches to 'eager' policy.
+
+- Fixed the routine handling the pixmaps realization: pixmaps with
+ an invalid id are not processed anymore.
+
+- Solved a bug in the routine taking care of clearing the NoMachine
+ logo: the state of the background was set to 'pixel' without de-
+ stroying an eventual backround pixmap.
+
+- Solved a bug in the 'MakeRootTile' function: the value returned by
+ 'AddResource' was not interpreted in the correct way causing the
+ function to bail out without drawing the NoMachine logo and set-
+ ting the background state to Pixmap.
+
+- Renamed PlaceHolder.c to Lazy.c and PlaceHolder.h to Lazy.h.
+
+- Inserted a test feature that cleans the framebuffer pixmaps when
+ they are created.
+
+nxagent-1.5.0-14
+
+- Changed some reconnection messages.
+
+- Now the disconnect procedure is called also after an IO Error is
+ received.
+
+- The rootless agent now doesn't filter anymore keystrokes combina-
+ tion related to desktop feature, like viewport navigation the full-
+ screen state and minimization.
+
+- In rootless mode, internal stacking order is updated by comparing
+ the stack of top level windows mantained by the X server with the
+ one mantained by the agent. A global configuration of windows is
+ performed from top to bottom through the stack.
+
+- In rootless mode, map state of top level windows is kept up to date
+ by managing map and unmap events.
+
+- In rootless mode, enter events are managed to keep track of top
+ level window position. It is very useful for managing differences
+ among window manager behaviours. It should be reimplemented follo-
+ wing the advice given in ICCCM 4.1.5.
+
+- In rootless mode, requests of configure top level windows are di-
+ rectly forwarded to the real X server. Internal configuration is up-
+ dated when configure events are managed by the agent. In order to
+ mantain internal stacking order up to date, a query tree request is
+ performed on the real root window.
+
+- Added viewport navigation by Ctrl + Alt + keypad arrows.
+
+- Fixed wrong internal configuration of agent top level windows, while
+ agent runs in rootless mode with metacity window manager.
+
+- Fixed segmentation fault in nxagent running in rootless mode with
+ OpenOffice.
+
+- Fixed wrong internal stacking order of drop down menus of firefox
+ with nxagent in rootless mode.
+
+nxagent-1.5.0-13
+
+- Fixed compilation problem on solaris.
+
+- Modified the modify pixmap header function. Previously this function
+ has been modified in order to solve a glyph problem, enlarging both
+ the pixmaps dimensions by four. Corrected the misbehaviour that
+ modify the pixmaps dimension even if the caller doesn't want to
+ change it.
+
+nxagent-1.5.0-12
+
+- Fixed erroneous behaviour of Root Window in fullscreen mode caused by
+ wrong value of XSpan and YSpan.
+
+- Fixed wrong clients' position at Reconnection in Rootless mode,
+ setting offset and WinGravity fields in XsizeHints structure.
+
+- Fixed segmentation fault on closing windows that stay always on top.
+
+- Moved the handling of configure notify events in the appropriate
+ functions, and cleaned it.
+
+- In rootless mode, internal stacking order of top level windows is
+ mantained up to date by monitoring events from window manager top
+ level windows.
+
+- Modify the creation of screen at reconnection for detecting an
+ eventual failure.
+
+- Removed export of window properties on the X server in desktop mode.
+
+- Changed the events mask for client's window set on the X server.
+ We don't use anymore the window mask choosen by clients. In rootless
+ mode for a top level window we use the default event mask and for a
+ child only the exposure mask.
+
+nxagent-1.5.0-11
+
+- Restored default event mask at reconnection.
+
+- Fixed abnormal behaviour in rootless mode if application windows are
+ close to the lower and right bounds of the screen. This trouble was
+ due to the wrong size of the agent root window.
+
+- Fixed abnormal behaviour in rootless mode for mouse button events if
+ the application window is not fully contained in the screen.
+
+- In rootless mode, exposed region are extended a few to take in ac-
+ count border width offsets caused by window managers.
+
+- In rootless mode, grab pointer requests from clients are forwarded
+ to X server. This makes application able to close their pop up win-
+ dows on a pointer event.
+
+- Fixed wrong position of the agent root window after resize of main
+ window.
+
+- Changed the size of viewport frame windows in order to avoid re-
+ freshing problems.
+
+nxagent-1.5.0-10
+
+- Handled the Client messages on rootless mode.
+
+- Initializations of event masks have been moved in a unique group of
+ functions.
+
+- Disabled the SmartScheduler in dispatcher as it seems to affect the
+ responsiveness of nxagent.
+
+- Modified the block and wakeup handlers. We could have left data to
+ write to our display connection when entering in WaitForSomething()
+ so we now flush everything before entering the select() and let the
+ proxy do all the buffering.
+
+- Fixed the wakeup handler to match the correct prototype.
+
+- Few cosmetic changes.
+
+- Inserted a test feature that cleans the framebuffer pixmaps when
+ they are created.
+
+- Adjusted pixmap status information in almost every gc operations.
+
+- Removed a warning for usleep not defined on Suse 9.0.
+
+- Adjusted pixmap status information in copy plane operations.
+
+- Throwed fatal error if on lazy encoding the place holder pixmap
+ couldn't be loaded.
+
+- Removed the static path to xpm file in place holder initialization.
+
+- Removed useless signal handler initialization multiple times.
+
+- Refined validation of atoms in the atom cache code.
+
+- Corrected few errors in atom cache initialization.
+
+- Added a primitive atom cache that mantain the map between internal
+ and external atoms.
+
+- Window properties export began on the X server side in rootless
+ mode, this way nxagent open the communication between local clients
+ and the window manager on the X server.
+
+nxagent-1.5.0-9
+
+- Fixed wrong position of the main window in case of maximizing in
+ window mode.
+
+- Set the correct scan line lenght for XYPixmap created in PutImage
+ and GetImage.
+
+- Removed a segmentation fault in GetDefaultImage. The problem arose
+ because the XYPixmap created with a data storage taking in account
+ of only some planes instead of all the depths planes. Despite XPut-
+ Pixel was treating the image as a complete XYPixmap of that depth.
+
+- Removed MapWindow Error at reconnection caused by wrong value of
+ IconWindow.
+
+- Now nxagent_WM_START is intialized as soon as the Atoms are
+ queried.
+
+- Removed Geometry restrictions.
+
+- Changed the configuration of the agent window in window mode.
+
+- The agent window is correctly reconnected even if is resized.
+
+nxagent-1.5.0-8
+
+- Updated copyright notices.
+
+- Removed a segmentation fault in font cache cleaning routine. The
+ problem arise when the session is disconnected and the font struct
+ are not allocated.
+
+- Used the return mask of XParseGeometry to correctly set only the
+ parameters that are involved.
+
+- Unified the initialization of all the geometry related parameters.
+
+- Updated the offset of the four viewport frames windows at recon-
+ nection.
+
+- Changed the way the geometry parameter is used. Now the first time a
+ session is started it set the internal dimension of the agent root
+ window, afterwards it only affects the dimension of the external
+ window on the X server.
+
+- Corrected splash screen offset at reconnection in fullscreen mode.
+
+- Agent can be launched in fullscreen mode and his geometry can differ
+ from the X server geometry.
+
+- Now Width and Height options are used to store geometry of the
+ default window even on fullscreen mode, and to restore the correct
+ dimension when switching back to window mode from fullscreen
+ we added two more options.
+
+- Removed an error in the move viewport procedure that didn't upgrade
+ the offset of the internal root window when the external root win-
+ dow was maximized.
+
+- Unified the initialization of all the geometry related parameters.
+
+- The window manager detection procedure is now started whenever there
+ is an attempt to minimize the fullscreen window or to pass to window
+ mode.
+
+- Function's optimization for detecting if WM is running.
+
+- Switching to window mode has been disabled when the window manager
+ is not running.
+
+nxagent-1.5.0-7
+
+- Now background pixel is not reset at reconnection.
+
+- Now geometry is parsed also as a command line parameter.
+
+- Fixed wrong offset of the root window after a reconnection in case
+ of window mode.
+
+- Fixed wrong geometry of the nxagent window after a reconnection
+ in case of window mode.
+
+- Fixed wrong position of the main window after a reconnection in
+ case of fullscreen mode.
+
+- Fixed refreshing windows problems in viewport navigation. Four in-
+ visible windows are created around the agent window to automatica-
+ lly generate exposure when the viewport frame is moved or a windows
+ come out from the non visibile part of the agent window.
+
+- We need to store the GC records in a list that will be freed in case
+ the reconnection succed and will be restored in case of failure. We
+ have to do this because we cannot destroy the GC records in the
+ disconnect or reconnect procedure, because this way we couldn't
+ recover from a disconnection or a reconnection failure.
+
+- Rewritten the reconnection procedure. Since we cannot be sure
+ that the reconnection will succed we cannot destroy the display
+ structure, so we postpone the closing of the previous display
+ with the creation of the new connection.
+
+nxagent-1.5.0-6
+
+- Adjusted usage list in order to show the R parameter for rootless
+ mode.
+
+- Added handling of display parameter to option file.
+ Corrected few typos error, in option file parsing.
+
+nxagent-1.5.0-5
+
+- Removed error that prevented the realization of cursor in eager
+ mode.
+
+nxagent-1.5.0-4
+
+- Fixed abnormal behaviour of termination dialog, after the keystroke
+ Ctrl + Alt + T.
+
+- Fixed segmentation fault in function parsing option file.
+
+- Fixed various errors on eager encodings.
+
+- Added lazy command line switch in order to switch lazy encoding
+ on.
+
+- Code cleaning.
+
+- Implemented a signal to switch between two pixmap
+ realization policies.
+
+- Corrected an error while defining pixmaps status.
+
+- Implemented a debug feature, consisting in a method that pushes
+ the synchronized realization of all the pixmaps.
+
+- Began implementation of place holders in replacing of images while
+ they are being loaded.
+
+- Performed some changes on spreading of pixmaps status information
+ on copy area.
+
+- Began implementation of lazy encoding.
+
+- Changed version to 1.5.0.
+
+nxagent-1.5.0-3
+
+- Removed the option -nogetimage (FRSA052305).
+
+- Code cleaning in Font.c.
+
+- Removed NXAGENT_FONTMATCH macro.
+
+- Removed NXAGENT_FONTCACHE macro.
+
+- Handled the ReparentNotify event we get when in rootless mode
+ ours window are reparented from the window manager. Inserted
+ fake windows to take account of this new parents.
+
+- Removed the redirection of client message in rootless mode, and
+ the configuration of the WM_PROTOCOLS properties on all the top
+ level windows.
+
+- Removed parent ID from the windows private structure.
+
+- Implemented screen operation ReparentWindow.
+
+- Redirect all client message of type WM_PROTOCOLS and value WM_DELETE-
+ _WINDOW to internal clients in rootless mode.
+
+- Set the WM_PROTOCOLS property on all the top level window.
+
+nxagent-1.5.0-2
+
+- Changed viewport navigation, in order to make it works in fullscreen
+ mode.
+
+- Changed special keystrokes used for closing session and minimizing
+ fullscreen window.
+
+- Removed the message 'NX was unable to negotiate a cache
+ for this session' (FRSA052296).
+
+- Fixed a minor bug. It made metacity produced a warning when the agent
+ started up.
+
+- Code cleaning.
+
+- Implemented dynamic handling of the main window's size in the X11
+ agent (FRSA052264).
+
+- Implemented dynamic navigation of the main window's viewport in the
+ X11 agent (FRSA052265). Users can navigate the viewport while keys
+ Ctrl + Alt are pressed, either by arrows keys or dragging it by the
+ pointer.
+
+- Implemented dynamic handling of the full-screen attribute in the
+ X11 agent.
+
+- First implementation of dynamic handling of the full-screen
+ attribute (FRSA052263).
+
+- Now the X connection descriptor is not closed when disconnected,
+ because the transport layer still has reference to it. So we want
+ it busy till we don't close the display, so we shutdown it instead
+ of closing it.
+
+- Removed replys when disconnected.
+
+- Added the X connection number to the set of enabled input devices, at
+ reconnection.
+
+- Rewritten the disconnect/reconnect layout.
+
+- Now in the suspend status nxagent doesn't sleep.
+
+- Implementing toggle fullscreen special keys.
+
+nxagent-1.5.0-1
+
+- Opened the 1.5.0 branch.
+
+nxagent-1.4.1-7
+
+- Imported changes from nxagent-1.4.0-64 version.
+
+nxagent-1.4.1-6
+
+- Implemented a GC cache for reconnecting pixmap.
+
+nxagent-1.4.1-5
+
+- Handled the situation of disconnect when the pointer has been grabbed.
+ We disconnect and reconnect the "grabbing" cursor and after reconnection
+ we fake a button release in order to let client know that the pointer
+ button has in effect been released.
+
+- Code cleanup.
+
+nxagent-1.4.1-4
+
+- Imported changes from nxagent-1.4.0-63 version.
+
+nxagent-1.4.1-3
+
+- Imported changes from nxagent-1.4.0-62 version.
+
+nxagent-1.4.1-2
+
+- Cleaned code in the GC reconnection area.
+ Scratchs GC are now reconnected before of the pixmaps.
+
+nxagent-1.4.1-1
+
+- Opened the 1.4.1 branch.
+
+nxagent-1.4.0-65
+
+- Cosmetic changes to the diagnostic output.
+
+nxagent-1.4.0-64
+
+- Changed the RENDER version advertised to X clients to be the lowest
+ value between the version of RENDER of nxagent and of the remote X
+ server.
+
+- Disabled fast copy area and fast get image flags, if RENDER extension
+ is not available.
+
+- At the screen initialization, if we don't have window manager we
+ grab keyboard to let nxagent get keyboard events.
+
+- Completely rewritted the handling of KeyPress events, now we moved
+ all the test for 'special' keybindings in file keystroke.c. Added the
+ combination MOD1/2-CTRL-SHIFT-<TAB> for terminate/suspend the session,
+ we used the combination MOD1/2 in order to let it work even on MacOS
+ where Alt(MOD1) doesn't seem to be set.
+
+- Ignored visibility notify events on the icon windows, that were
+ messing up the agent visibility state.
+
+- Changed nxagent reaction on VisibilityNotify event. It fixed the
+ problem with refresh session under Mac OS X with NXDarwin.
+
+nxagent-1.4.0-63
+
+- Reset the congestion state at transport initialization.
+
+nxagent-1.4.0-62
+
+- Fixed the disconnection and reconnection of window that have attached
+ an animated cursor.
+
+nxagent-1.4.0-61
+
+- Removed the XInputExtension initialization in order to use the more
+ general mi extension initialization enabled on new mi version.
+
+- Removed some useless test and logging info on copy area function.
+
+nxagent-1.4.0-60
+
+- Changed the implementation of CopyArea and CopyPlane.
+ If both drawables are on framebuffer we send NoExpose to clients,
+ otherwise we use the mi function HandleExposure to calculate the
+ region to be exposed instead of let mi redo all the copy operation.
+
+nxagent-1.4.0-59
+
+- Disabled use of caching and cleaning of images, if NX transport is
+ not used.
+
+nxagent-1.4.0-58
+
+- Added timeout on convert selection operation. If timeout has not
+ expired and is there a pending operation any new request is dropped
+ and the client notified, until timeout expiration.
+
+- Corrected a bug that prevented to correctly store last convert se-
+ lection request time.
+
+nxagent-1.4.0-57
+
+- The Xinput extension is now initialized at startup. This is of
+ little use because nxagent only needs to support the core pointer
+ and keyboard. Anyway this allows nxagent to get rid of the warn-
+ ings printed by some X clients on recent Linux versions when the
+ extension is not found.
+
+nxagent-1.4.0-56
+
+- Fixed value returned by ConvertSelection. It was the cause of
+ possible slowndowns during KDE sessions.
+
+nxagent-1.4.0-55
+
+- Agent icon now is loaded from a binary-
+ embedded Xpm image, if any attempt to
+ load the default Xpm file from the image
+ directory or from the path fails.
+ Removed code used in the old logo drawing
+ function.
+
+nxagent-1.4.0-54
+
+- Enabled code for sending to client graphics
+ exposures. Redirecting the ones coming from
+ remote X server, only if agent window is not
+ fully visible, and calculating ourselves failure
+ in CopyArea/Plane and notifying clients.
+ The only drawback is that we can have double
+ refresh effect if agent window is covered.
+
+NOTE: Partially enabled MIT-SHM extension has
+ been developed but has not been included
+ in stable release. Included in version
+ nxagent-1.4.0-53-DAR1.
+
+nxagent-1.4.0-53
+
+- Implemented a reliable technic to detect
+ if is there any window manager running on
+ the X server.
+
+nxagent-1.4.0-52
+
+- Fixed a bug that prevented to correctly
+ notify the client of a successfull convert
+ selection.
+
+nxagent-1.4.0-51
+
+- Removed a logging error in render initialization.
+
+nxagent-1.4.0-50
+
+- Now we take the ownership of the selection
+ on "NX_CUT_BUFFER_SERVER" twice, in order
+ to solve bug in communication with nxclient
+ to let him see our main window and know that
+ agent established connection with X server.
+
+nxagent-1.4.0-49
+
+- Fixed the colormask layout of the visual
+ used to put images on the real X server when
+ the drawable has an alpha channel, according
+ to the endianess of the X server.
+
+nxagent-1.4.0-48
+
+- Moved up the render compatibility limit,
+ due to the inclusion of the support for render
+ cursor missing on the 0.2 version.
+
+nxagent-1.4.0-47
+
+- Changing artsd forwarding port from display
+ + 8000 to display + 7000
+
+- Stoping key release event if key press was
+ catched before. For Alt-F2/F4 combination.
+
+- Preserved the alpha data on drawables that
+ are not used by picture but have a depth of 32.
+
+nxagent-1.4.0-46
+
+- Rewritten all the code regarding to the
+ acceleration for the Render creation of the
+ cursor, and removed the acceleration for
+ the animated cursor.
+
+nxagent-1.4.0-45
+
+- The two RENDER operations creating cursors and
+ animated cursors have been accelerated by for-
+ warding the original operation to the X server.
+
+nxagent-1.4.0-44
+
+- Fixed a problem in the clipboard procedure.
+ Now when we get a request of the selection
+ from an internal client we have to, if the
+ owner is on the X server, forward the request
+ to X, otherwise we have to pass the request
+ to our internal client.
+ But for a problem in this procedure we passed,
+ in some situation, the request to the internal
+ client even if the owner was on the other side.
+
+- Fixed a segmentation problem in the render
+ extension by removing composite trapezoid
+ operation on window.
+
+nxagent-1.4.0-43
+
+- Added some pointer sanity check in the discon-
+ nect procedure. The problem was arising because
+ we were executing the code twice when after
+ began a voluntar disconnection the X connect-
+ ion was broken for a network failure.
+
+- Changed directory where nxagent gets the icon.
+
+- Fixed missing implementation of rendering
+ trapezoids.
+
+- Fixed bug in render extension when the nxagent
+ create cursor diffrent then 32 bits format.
+
+nxagent-1.4.0-42
+
+- Solved segmentation fault, caused by a longjmp
+ on a stack context not previously saved.
+
+nxagent-1.4.0-41
+
+- Added an exposures of the window in a resize
+ operation.
+
+nxagent-1.4.0-40
+
+- Implemented a timeout on the opening of the X
+ display, if we get it we reject all well known
+ sockets.
+
+nxagent-1.4.0-39
+
+- Corrected minor error on events handling.
+
+nxagent-1.4.0-38
+
+- Removed in the resize window code some exposure
+ that generated useless traffic.
+
+- Option geometry is no more parsed in the option
+ file.
+
+nxagent-1.4.0-37
+
+- When session is suspended and we get TERM signal
+ nxagent just exit instead of just breaking out of
+ dispatch loop because we get a terminate exception.
+ Cleared display variable after having closed the
+ connection with the X server.
+
+nxagent-1.4.0-36
+
+- Refined some details in the ICC with nxclient.
+
+nxagent-1.4.0-35
+
+- Implemented a new method to comunicate to nxclient,
+ the raise of the agent root window, taking the ownership
+ of the selection "A-{MD5 of session}".
+ Used the same selection to let nxclient comunicate to agent
+ by changing the property on the same string, when the user
+ choose by the administrator to terminate or suspend the
+ session.
+
+nxagent-1.4.0-34
+
+- Key sequence to Suspend/Terminate session (Alt-F4).
+
+- Key sequence to Minimize session in fullscreen mode (Alt-F2).
+
+- Check if WM is started, for Alt-F2 sequence.
+
+- Corrected calculation geometry of exposed region
+ sent to client after reconnection.
+ This solve a serious memory leak of nxagent.
+
+- Fixed a bug in validate GC code that passed
+ a wrong pointer of tile to framebuffer.
+
+nxagent-1.4.0-33
+
+- Changed the reconnection state machine in order
+ to let agent exit if has got the TERM signal.
+
+nxagent-1.4.0-32
+
+- Fixed memory leak in option parser that wasted
+ memory if more than one occurence of 'option'
+ argument would have been parsed.
+
+- Removed a invalid read in Keyboard initialization.
+ Now kbtype option value is copyed instead that
+ referenced.
+
+- The X connection number is recorded only after
+ having cheched for display being successfully opened.
+
+nxagent-1.4.0-31
+
+- Fixed memory leak problem caused by region not
+ beeing destroyed previously.
+
+- Fixed a memory leak in keyboard initialization.
+
+- Fixed a bug in the function that parse the option file,
+ we were reading the options in the format NAME=VALUE and
+ were passing it to the argument parser in the format
+ {NAME, VALUE}, without the prepending '-' in front of NAME.
+
+nxagent-1.4.0-30
+
+- Readded option persistent in order to let nxagent
+ works with older nxserver that are still launching
+ nxagent with the persistent option.
+
+nxagent-1.4.0-29
+
+- Corrected the message of the client dialog
+ asking if user want to suspend or terminate the
+ session.
+
+- Chenged the default value for persistence of session
+ in nxagent to true. Change the persistent option to
+ nopersistent in order to disable it.
+
+nxagent-1.4.0-28
+
+- Added check on screen initialization of possible
+ memory allocation failure.
+
+- Changed the parsing policies of the option file.
+ Now we are just considering kbtype and geometry
+ options.
+
+- Removed testing code that forced rootless mode
+ when geometry is 100X100.
+
+- Correctly initialized and mapped the icon window
+ on fullscreen mode.
+
+nxagent-1.4.0-27
+
+- Fixed lost memory problem caused by second
+ initialization of screen privates. Screen
+ privates is already initialized by miScreenInit
+ function.
+
+nxagent-1.4.0-26
+
+- Added option command line option. This parameter
+ is used to show complete path to option file.
+
+- Added parser of the option file.
+
+- Now default value for fast copy area and fast
+ getimage is true.
+
+nxagent-1.4.0-25
+
+- Done some cleanup to the initialization of the
+ defaults drawables at reconnection, and removed
+ a memory leak in the reopening of the Display.
+
+nxagent-1.4.0-24
+
+- Changed the version number, printed at startup.
+
+- Removed a memory leak in the font reconnection stage.
+
+nxagent-1.4.0-23
+
+- Removed a bug that messed up the render status info
+ if reconnected to a display with no render support.
+ Anyway nxserver should prevent agent to trying reconn-
+ ecting to such display.
+
+nxagent-1.4.0-22
+
+- Enhanced the reconnection error reporting function.
+
+nxagent-1.4.0-21
+
+- Get the ownership of selection NX_CUT_BUFFER_SERVER at reconnection
+ in order to let client knows that agent windows has started
+ successfully.
+
+nxagent-1.4.0-20
+
+- Now we draw splash logo at reconnection. And destroy it and show
+ all other windows when reconnection has done all in once. We draw
+ it on default window instead that on root window, and we map root
+ window when reconnection has finished.
+
+nxagent-1.4.0-19
+
+- Removed the old Xconnection descriptor and added the new one
+ to the device set, instead of resetting the entire enabled
+ device set, at reconnection.
+
+nxagent-1.4.0-18
+
+- Reset the enabled devices set of descriptors, and properly
+ add to this set the the Xconnection descriptor.
+
+NOTE: This solves all the known solaris reconnection problems.
+ (The problem appear only on solaris because on this machine
+ the Xconnection descriptor is changing at reconnection.)
+
+nxagent-1.4.0-17
+
+- Restored the previously owned primary selection, at reconnection.
+ Removed the handling of the return value of XSetSelectionOwner,
+ man page doesn't specify any return value.
+
+nxagent-1.4.0-16
+
+- Added compatibility with older windows clients(Xserver)
+ that send a WM_DELETE_WINDOW client message WM_DELETE_WINDOW
+ to all top level window and so agent show more than one
+ NXDialog asking for confirmation, instead of sending just the
+ message to top level window that are visible and haven't set
+ the override redirect option.
+
+nxagent-1.4.0-15
+
+- Ignored unmatched DirectColor visuals at reconnection
+ on a different display not providing it.
+
+nxagent-1.4.0-14
+
+- Moved the render query extension in display
+ initialization from screen initialization.
+
+- Changed reconnection policy to disallow reconnect a
+ session that is using render to a server not providing it.
+
+nxagent-1.4.0-13
+
+- Unified the screen opening function.
+
+- Changed the reconnection requirements
+ policy about geometry of X server.
+ Now agent doesn't accept changes of X server
+ root window size only if in fullscreen mode.
+
+nxagent-1.4.0-12
+
+- Improved failure notification messagges in Display and
+ font code.
+
+nxagent-1.4.0-11
+
+- Now visuals are properly recreated, in order to reconnect
+ to another X server.
+
+- Updated render formats at reconnection.
+
+nxagent-1.4.0-10
+
+- Removed a serious memory leak at reconnection.
+
+nxagent-1.4.0-9
+
+- Added after window reconnection the redisplay of the current
+ cursor. Done some general cleanup at cursor reconnection code.
+
+nxagent-1.4.0-8
+
+- Unified tha atom creation at reconnect.
+
+nxagent-1.4.0-7
+
+- Dix layer when creating a GC use a default real pixmap as
+ stipple but agent need a virtual one. This can cause
+ segmentation fault to agent if is there any apps that use the
+ default GC stipple created by dix, without changing it.
+
+nxagent-1.4.0-6
+
+- Imported 1.4.0-1-DAR6 from the 1.4.0 development branch.
+
+- Handled reconnection of window's cursor still not
+ reconnected at window reconnection. (This because that cursor
+ is no more a server[nxagent] resource).
+
+- Set the last image client variable at reconnection in order
+ to use the visual cache indexed for client number.
+ Without this we could get a segmentation fault.
+
+- Handled properly the reconnection of animated cursor.
+ Modified the procedure of animated cursor creation
+ in order to empty some unused fields.
+
+- Removed a 4 bytes memory leak at reconnection.
+
+- Synced new tree with nxagent-1.3.2-23.
+
+- Finished the unify of PutImage at reconnection.
+ Added a Reconnection Trap in order to let screen functions
+ (like PutImage) knows that are working at reconnection time
+ and can behave differently.
+
+- Unified the code for the normal PutImage and the one's used at
+ reconnection. But the code that calculate the split is still
+ doubled.
+
+nxagent-1.4.0-5
+
+- Imported 1.3.2-23 from the 1.3.2 development branch, and dropped
+ the previous 1.4.0 versions.
+
+nxagent-1.3.2-23
+
+- Pixel hints are set according to the display's depth. Added the
+ defaults to be used on 16 bits.
+
+nxagent-1.3.2-22
+
+- The pixel hint on Solaris is by default 0xffffff. The value can be
+ overridden by using the -hint option followed by the hex represen-
+ tation of the color, as in -hint 0xaabbcc.
+
+nxagent-1.3.2-21
+
+- Asynchronous GetImages are now disabled. If fast GetImage mode is
+ enabled, agent will always try to guess the pixel to be used for
+ the solid pattern, based, at its best, on the geometry of the pro-
+ vided area. This behaviour can be overridden by passing the -slow
+ parameter on the command line. Slow mode is also the default when
+ selecting WAN or LAN link settings.
+
+- Code cleanup in preparation of the final release.
+
+nxagent-1.3.2-20
+
+- New code uses sigaction to set the SIGHUP handler in persistent
+ mode. Contrarily to signal(), the sigaction call doesn't seem to
+ reset the handler to SIG_DFL after the signal has been caught.
+ This problem seems to be specific of Solaris.
+
+- Client messages of type WM_PROTOCOLS are now handled even when
+ a window manager is not detected at agent startup.
+
+- Removed handling of GraphicsExposure coming fron the real server.
+ Agent will still generate events in the MI. Code dealing with the
+ remote events needs to be better tuned as it seems to cause some
+ troubles with double refreshes.
+
+nxagent-1.3.2-19
+
+- Starting from this version agent doens't use NXSync and NXKarma
+ messages to manage bandwidth arbitration among clients but makes
+ efficient use of the congestion notification messages introduced
+ in 1.3.1. A new handler has been added to manage the congestion
+ state. The handler will block, if needed, waiting for the decon-
+ gestion notification coming from proxy.
+
+nxagent-1.3.2-18
+
+- Rewritten the block handlers to check the event queue more often.
+ The new code seems to greatly enhance responsiveness, especially
+ on fast links.
+
+- Now agent will handle the expose events coming from the remote
+ display inside the event dispatcher.
+
+- Created a new function collecting the expose events. Function is
+ optimized to add all the expose events for the same window to a
+ single region. Region is passed to the mi when the last event
+ has been processed.
+
+- Still dealing with GetImage from OpenOffice. Now we try to match
+ the geometry of the incoming requests with known geometry of most
+ of its graphic elements. It seem to work on Fedora.
+
+nxagent-1.3.2-17
+
+- Added swapping of image data in nxagentGetImage() when connecting
+ to a display having a different image byte order than the agent
+ server.
+
+- Added a new nxagentImageReformat() function in GCOps.c.
+
+- Now agent will not try to pack images having a data size smaller
+ than 768 bytes. The previous threshold was set to 64. The Mandrake
+ vesion of KDE seems to send lot of such small images. Compressed
+ through JPEG, these images obtain a very poor ratio of nearly 1:1.
+
+- Added a function translating and sending the GraphicsExposures
+ events received from the remote server to the agent's clients.
+
+- Renamed the functions providing the ad-hoc handling of remote X
+ events.
+
+nxagent-1.3.2-16
+
+- Implemented a cache for the alpha channel data. With clients
+ making heavy use of the alpha blending, the new cache is able to
+ cut by nearly 30% the traffic incoming to proxy, offering compara-
+ ble savings in CPU performance. While proxy is usually able to
+ cache almost all the alpha traffic, when caching is not enabled
+ (f.e. when link setting is WAN or LAN) this data is sent uncomp-
+ ressed by the agent. Tests running common desktop environments
+ showed that alpha channel could weight up to 2 times the corres-
+ ponding data generated by the packed images.
+
+- Fixed the compilation warnings in NXrender.c.
+
+nxagent-1.3.2-15
+
+- Rewritten handling of GetImage from dispatcher down to GCOps. If
+ the fast GetImage mode is enabled agent will use the asynchronous
+ calls provided by nxcompext to get data from the real server. Data
+ collected from the last get image performed is preserved and the
+ upper left pixel is used to guess a solid background.
+
+- Added a nxagentGetBackgroundImage() function to apply a similar
+ mechanism when the nxagent window isn't fully visible. Previously
+ a solid white background was returned. The new handling seems to
+ correctly match the window background in most cases.
+
+- Fixed a problem passing the bytes per line value when creating a
+ XYPixmap image. The previously calculated value didn't take into
+ account the depth of the image.
+
+- Now image's bytes per line, length and visual are calculated by
+ using a few utility functions added to GCOps.c.
+
+- Added declaration of the nxagentVisibility related variables to
+ Window.h.
+
+nxagent-1.3.2-14
+
+- On Fedora xbcomp configuration fails when agent is run nested.
+ This causes keyboard to ignore most AltGr keys. Strangely enough
+ this behaviour has been observed only with KDE while GNOME does
+ not seem to be affected. Reason is to be investigated.
+
+- Auto-repeat mode of the agent's keyboard device is now always
+ disabled. Agent will leverage auto-repeated keystrokes genera-
+ ted on the real server even when propagating device configura-
+ tion changes.
+
+- The info output telling if agent will propagate the changes to
+ devices' setting is now printed after having initialized the
+ screen. The purpose would be to verify if agent is running in
+ fullscreen mode and there is no WM on the real display. In this
+ case we should forcibly propagate device configuration changes.
+ Unfortunately, due to the way intern atoms are collected, this
+ is not going to work on platforms where sessions are likely to
+ run on an existing X server.
+
+nxagent-1.3.2-13
+
+- Fixed a problem with XYPixmaps being used in PutImage with the
+ wrong left pad. This is a step forward in the solution of the
+ corrupted masks displayed by Mozilla when showing some animated
+ GIFs.
+
+- By selecting 'fast' mode nxagent will now skip real XGetImage
+ operations on windows. This becomes the default in the case of
+ MODEM, ISDN and ADSL links. In theory X clients should never do
+ that. In practice a few naive programs and libraries (like, sur-
+ prisingly enough, a famous Linux office automation suite) do,
+ mainly to compose images with the window's backgound. Why don't
+ they compose content into a Pixmap?
+
+- Improved the implementation of CompositeGlyphs. It now uses a
+ single call to XRenderCompositeText instead of splitting the
+ output in multiple RENDER requests.
+
+- In previous versions file NXmiwindow.o was not linked into the
+ resulting nxagent. This solves the problem of missing repaints
+ in CDE and other Xt applications. Be sure you upgrade nx-X11
+ to version nx-X11-1.3.2-2.
+
+- Added a warning when the change keyboard control or the change
+ pointer control functions are called.
+
+nxagent-1.3.2-12
+
+- Added bit-swapping of glyphs having depth 1 when agent has a
+ different bitmap-bit-order than the X server.
+
+- The KeyRelease event's timestamp calculation, accounting for
+ differences in time between the local and the remote machine,
+ will now use the timestamp taken from the last KeyPress. Using
+ the timestamp of the last event was sometimes causing time to
+ go backward with the result that server could remain grabbed.
+ This solves the long-standing "mouse stop responding" problem.
+
+- Fixed a problem handling the alpha channeled visual introduced
+ while experimenting with the new server endianess layout.
+
+nxagent-1.3.2-11
+
+- Added the Reset option to options repository. By default agent
+ will skip server reset when the last client disconnects. This is
+ equivalent to passing the -noreset option to a standard XFree86
+ server. To restore the original behaviour the new -reset option
+ can be used on the command line.
+
+- Moved the SharedMemory and DeviceControl options to the options
+ repository.
+
+- A basic session, still leveraging all the default facilities, can
+ now be run as: nxagent -name NX -geometry 800x600+10+100 :1. The
+ -fp unix/:7100 option can be added to enable access to the X font
+ server.
+
+- Fixed a "unused variable" warning in Cursor.c.
+
+nxagent-1.3.2-10
+
+- Rootless mode. Some cleanup in initialization.
+
+- Rootless mode. Working at the configure-window errors.
+
+nxagent-1.3.2-9
+
+- Removed limitations when running nxagent nested inside another
+ nxagent server. Now both render extension and packing of images
+ are enabled.
+
+- The nxagent X server now inherits its endianess from the host
+ architecture, instead of assuming the same endianess of the con-
+ necting client. This fixes the remaining problems running ses-
+ sions nested inside another nxagent server.
+
+- Removed any reference to ReformatImage().
+
+nxagent-1.3.2-8
+
+- Changed the way the agent server handles images internally.
+ The inherited Xnest code used to set the server's image order
+ to the same order of the remote X display. This caused agent
+ to create images in the internal frame-buffer with a different
+ endianess in respect to images got from X clients.
+
+- The new image handling code seems to solve all the known image
+ endianess problems, for example cursors created on big-endian
+ displays with a wrong shape or glyphs being showed flipped when
+ retrieving the image data from the virtual frame-buffer.
+
+- As an added bonus the new code seems to double the performance
+ of the SPARC Solaris server when accessing i386 clients.
+
+- Commented out all the existing calls to ReformatImage(). Code
+ needs now extensive testing to see if any of the calls must be
+ actually restored.
+
+- Replaced calls to index() with strchr().
+
+nxagent-1.3.2-7
+
+- Solved a potential memory error when accessing a client or a
+ window pointer in clipboard management code after the resources
+ had been destroyed. Added a nxagentClearClipboard() function to
+ be called before a client or a window is destroyed to get rid
+ of any reference to the disposed resources.
+
+- Auto-repeated keystrokes generated by agent from inside the
+ virtual keyboard device are now ignored. Agent will correctly
+ honor auto-repeated keystrokes generated by the real X server.
+ This is actually the expected behaviour. The former implemen-
+ tation triggered an annoying bug, with keystrokes being inad-
+ vertedly auto-repeated in the case of high latency on the
+ network link.
+
+- Agent will now ignore the pointer settings changes generated
+ inside the remote session. The original behaviour was to reset
+ the pointer values (for example acceleration) to the X factory
+ settings at session startup. Agent will now inherit whatever
+ values are set on the real X display.
+
+- Added a -noignore parameter. When passed, agent will propagate
+ to the real X server any change to keyboard and pointer control
+ settings operated by its own X clients.
+
+nxagent-1.3.2-6
+
+- Fixed problem with glyphs being drawn clipped in the virtual
+ frame buffer. This is not yet the final solution but it seems
+ to work in all the circumstances where problem was observed
+ in the past. Problem seems to be caused by scratch pixmaps
+ being requested with a width and height smaller than actually
+ required. Note anyway that pixmap's buffer seems to be never
+ accessed beyond its boundary. This probably means that memory
+ for the pixmap is originally allocated using the right size.
+
+- Moved backing-store selection to options repository. Now by
+ default the backing-store mode is set to WhenRequested. This
+ means that, in most cases, there is no need to pass the -bs
+ option on the command line.
+
+- Code cleanup in Render.c, NXrender.c, NXglyph.c.
+
+nxagent-1.3.2-5
+
+- Fixed initialization of all the supported depths. Previous
+ versions correctly initialized the various depths but still
+ failed to advertise the support of any other depth than the
+ default depth supported by the remote X server.
+
+- Persistent mode. We now correctly propagate the pixmap ID of
+ the parent to the virtual pixmap at reconnection. This fixes
+ the reconnection errors when render extension is enabled.
+
+- Persistent mode. Solved the refresh problems at reconnection.
+ Problems were generated by the lack of window parent's ID at
+ the time session was reconnected.
+
+- Changed the agent's behaviour at the time the close button is
+ pressed. If agent is running in persistent mode a new dialog
+ is showed with the option to suspend the session.
+
+nxagent-1.3.2-4
+
+- Persistent mode. At the time the proxy connection is reset the
+ per-client unpack geometry information is cleared. This makes
+ agent find out that a new unpack geometry is needed as soon as
+ the display is reconnected.
+
+- Persistent mode. Lot of logging added in order to trace use of
+ resources as long as they are recreated. The current version
+ fails to correctly restore the picture information when render
+ is enabled.
+
+nxagent-1.3.2-3
+
+- Finally fixed all the problems with missing initialization of
+ pixmap formats. The screen info is now correctly set up even
+ when the remote display doesn't support all the target depths.
+ Many thanks to Michael L Torrie who helped me to reproduce the
+ problem and come to a solution.
+
+- Moved initialization of depths, default drawables and pixmap
+ formats to their own functions in Display.c.
+
+nxagent-1.3.2-2
+
+- Fixed the nxagentDestroyPixmap() function to correctly take into
+ account the reference counter of the virtual pixmaps. This solves
+ the crashes observed when running some GTK clients like xchat.
+
+- Added a function Pixmap.c to forcibly destroy the pixmaps created
+ in the virtual framebuffer when the parent pixmap is destroyed.
+
+- This version contains some verbose output intended to better test
+ the new behaviour. The output will be removed in future versions.
+
+nxagent-1.3.2-1
+
+- More cleanup in Pixmap.c.
+
+- Rewritten nxagentCreatePixmap(). Corrected an error where the
+ bitsPerPixel field was set to the pixmap's depth instead of the
+ result of BitsPerPixel(depth). This finally solves the problem
+ of text being incorrectly rendered in the virtual framebuffer.
+
+- Corrected the X error returned at the end of session when trying
+ to free a pixmap with an invalid id.
+
+- Opened the 1.3.2 branch.
+
+nxagent-1.3.1-32
+
+- Cleanup of Pixmap.h/Pixmap.c. Renamed macros according to the
+ nxagent naming conventions.
+
+nxagent-1.3.1-31
+
+- When running in fullscreen mode, grab and ungrab of pointer and
+ keyboard is performed in new functions, placed in Events.c.
+
+- The event loop now checks if the enter/leave notify carries a
+ NotifyInferior detail and, in this case, doesn't perform the grab.
+ This saves half the amount of grabs (and the related roundtrips)
+ performed by the previous version.
+
+- Ungrab of pointer is now performed whenever the cursor leaves the
+ fullscreen window. In previous version only the keyboard was
+ explicitly ungrabbed.
+
+- Added a warning in the event loop when receiving a MappingNotify.
+ This event is presently unhandled and seems to be reported, as a
+ consequence of the selected event mask, only by some X servers.
+
+nxagent-1.3.1-30
+
+- Reverted the patch introduced in Pixmap.c. The whole issue is
+ being investigated in its ramifications up to the virtual frame
+ buffer.
+
+nxagent-1.3.1-29
+
+- Fixed a problem in the nxagentDestroyPixmap function where the
+ reference counter of pixmaps could be decremented twice. This
+ could lead to agent trying to free the pixmaps more than once.
+
+- On Solaris there is no description for pc105 keyboard model. As
+ a workaround we consider pc104 to be the closest approximation.
+
+nxagent-1.3.1-28
+
+- Fixed a bug in the create window procedure. With some clients,
+ like Maelstrom and xmame, the creation of the main window was
+ failing due to the wrong colormap and visual attributes used
+ by agent on the real X server.
+
+- In fullscreen mode the keyboard is now grabbed at the time we
+ receive an EnterNotify event. This fixes a problem at startup
+ observed on some Debian based distributions where agent didn't
+ receive the keyboard focus until user had minimized and then
+ brought to front the agent's window. The grab is now correctly
+ performed by using the timestamp of the remote X server ins-
+ tead of our local timestamp.
+
+- In NXdixfonts.c strings corresponding to names of fonts and
+ font aliases cached by nxagent were missing the terminating
+ zero.
+
+- In function InitClientPrivates fixed the missing initializa-
+ tion of the is_ignored member of the ClientPriv structure.
+
+- Added the Persistent option to Options repository. The flag is
+ intended to replace the old nxagentEnableReconnect variable.
+
+nxagent-1.3.1-27
+
+- Fixed a memory allocation problem in Keyboard.c. A string was
+ allocated in the heap without making enough room for the trail-
+ ing zero.
+
+nxagent-1.3.1-26
+
+- Added further run-time checks to verify that pixmaps are not
+ created with bad bit-per-plane settings. This problem seems to
+ be caused by lack of support by nxagent of some combinations
+ of depth and visual when the render extension is enabled. If
+ this is the case, hide the render extension to new clients and
+ force any subsequent render operation to return a BadRequest
+ error. This required including extension.c from dix. A new
+ NXextension.c file is added to the distribution.
+
+- A problem was reported by Valgrind about reading the first 4
+ bytes just after the block allocated in fbCreatePixmap from
+ nxagentCreatePixmap. A quick fix was added to pixmap.c from
+ dix so that AllocatePixmap adds 4 additinal bytes to each
+ buffer.
+
+nxagent-1.3.1-25
+
+- Fixed a memory corruption error. The original AllocateGlyphSet
+ from render/glyph.c could be called instead of the NX counter-
+ part defined in NXglyph.c. This could lead to the missing
+ allocation of the trailing remote glyphset id field.
+
+- Added initialization of an otherwise usused string in function
+ nxagentPropagateArtsdProperties(). The whole string is probably
+ to be removed in future versions.
+
+- Moved the flag used to avoid reentrancy in GCOps to a separate
+ Trap header and source.
+
+- Further cleanup. Removed the zombie file NXglyphcurs.h.
+
+- Added missing initialization of the picture pointer in private
+ window's data in nxagentCreateWindow.
+
+nxagent-1.3.1-24
+
+- Added the missing timeout when calling WaitForSomething() at
+ startup. The bug caused the splash to remain on screen until
+ a further event was received.
+
+- Fixed a BadAtom error on Windows during initialization. Error
+ was caused by a bad attempt to change the NX_AGENT_SIGNATURE.
+
+- Hunting the 0 bits-per-plane drawable bug in nxagentValidateGC.
+ Added tracing output and additional checks. GC validation is
+ skipped if it is not possible to recover an appropriate value.
+
+- Ensured that nxagentDisplayName is set before calling the post
+ initialization procedure.
+
+nxagent-1.3.1-23
+
+- When session is run nested inside another NX X agent, all the
+ optimizations regarding remote expose events on fully visible
+ windows are disabled. This solves the refresh problems encoun-
+ tered when covering the nested session with a window from the
+ local X server.
+
+- Reusing NX_AGENT_SIGNATURE atom to detect nested operation.
+ Atom is created internally to the agent server at startup,
+ before any atom on the real display.
+
+- Fixed construction of caption used for dialog boxes spawn by
+ agent. The previous algorithm failed to identify the correct
+ string in parameter -name passed on the command line.
+
+nxagent-1.3.1-22
+
+- Ensured that state of keyboard modifiers is initialized with
+ values from the real X server when the first key stroke is
+ pressed by the user.
+
+- Fixed the X_SetInputFocus errors generated at session startup.
+
+- Rootless mode. Ensured that remote expose events are always
+ reported by the remote proxy. This is a temporary fix looking
+ forward for better handling of visibility events.
+
+nxagent-1.3.1-21
+
+- Saved a GetWindowAttributes and a GetGeometry in the function
+ drawing the splash screen.
+
+- Better handling of splash at startup. Removed the flickering on
+ Windows without recurring to another atom. This is achieved by
+ optimizing drawing and delaying mapping of the main windows.
+
+- Modified the magic values activating rootless mode to 100x100.
+
+- Removed modifications introduced in 1.3.1-20.
+
+nxagent-1.3.1-20
+
+- Working on eliminating the splash screen flickering on Windows
+ and Darwin. Checked if the NX_SPLASH atom has been created by
+ the NX X server. If this is the case, we let the NX X server
+ show the splash screen on our behalf.
+
+nxagent-1.3.1-19
+
+- Improved the initialization phase by removing a GetProperty, an
+ InternAtom and two GetInputFocus round-trips.
+
+- Added appropriate masking of the state bits reported by the
+ XkbStateNotifyMask event.
+
+- Added a simple mechanism during the itialization phase to trace
+ the use of X server replies.
+
+nxagent-1.3.1-18
+
+- Made some order in functions loading the NX icon.
+
+- Removed some more zombie files from agent distribution. Now only
+ the files imported from DIX and MI have name prepended with NX.
+
+nxagent-1.3.1-17
+
+- Moved names and values of intern atoms created by agent in their
+ specific header and source.
+
+- We temporarily force rootless mode if user provides a geometry
+ of 801x601. This is intended to simplify testing. Note that if
+ rootless is selected, we'll anyway disregard any geometry set
+ by the user, assuming the geometry of the real display.
+
+nxagent-1.3.1-16
+
+- We are checking now whether NX_IDENTITY intern atom is created
+ before NX_SPLASH. We want NX X servers to show the splash on our
+ behalf, so if NX_SPLASH is already interned, than we just skip
+ the splash procedure.
+
+nxagent-1.3.1-15
+
+- Rootless mode. Fixed a segfault handling ConfigureNotify events
+ on top-level windows.
+
+- Moved handling of ClientMessages coming from proxy in a separate
+ function.
+
+nxagent-1.3.1-14
+
+- Rewritten the code dealing with key modifier changes. Now we
+ use XKB events instead of synchronous XkbGetIndicatorState()
+ calls.
+
+- Moved activation of keyboard and pointer events to Events.c.
+
+- Removed pointer motion optimizations as a better logic, taking
+ in account the selected link speed, is already implemented in
+ proxy.
+
+nxagent-1.3.1-13
+
+- Renamed the -reconnect option as -persistent.
+
+- Rootless mode. Agent's root windows are not mapped at startup.
+
+- Removed the zombie file glyphcurs.c from agent distribution.
+
+nxagent-1.3.1-12
+
+- Corrected a typo in the new CopyArea code in GCOps.c where:
+
+ if (srcx > nxagentWidth) srcx = nxagentWidth;
+ if (srcy > nxagentHeight) srcx = nxagentHeight;
+
+ had to be:
+
+ if (srcx > nxagentWidth) srcx = nxagentWidth;
+ if (srcy > nxagentHeight) srcy = nxagentHeight;
+
+- Added handling of the fullscreen command line parameter to the
+ options repository.
+
+- Added agent geometry parameters to the options repository.
+
+nxagent-1.3.1-11
+
+- Rootless mode. Added handling of configuration events reported
+ for the top-level windows.
+
+- Rootless mode. Children of the root window get the event mask
+ selected when the window is created. This makes the keyboard
+ work at least with xterm and other simple clients. There are
+ still problems with the pointer events.
+
+- Created new Splash.h and Splash.c sources file to contain the
+ few splash screen procedures that were previously sparsed in
+ multiple files.
+
+- Added traces in all the window creation procedures and in the
+ initialization routines called at startup.
+
+- Renamed some source files to make simpler to identify what is
+ imported from DIX and what actually pertains to agent.
+
+nxagent-1.3.1-10
+
+- Added the missing RestackWindow screen operation. This solves
+ problems of incorrect stacking order observed in menus when
+ using the drop shadow feature in the latest KDE versions.
+
+nxagent-1.3.1-9
+
+- The new standard for checking previous inclusion of headers is
+ by verifying definition of _Filename_H_ where Filename is the
+ base name of the file, for example __Options_H__ in the case
+ of "Options.h". This is intended to be a step in reducing the
+ number of defines in code prefixed with NXAGENT.
+
+- Updated NX copyright to year 2004. Placed copyright statement
+ regarding NXAGENT and NX modifications to the Xnest software
+ at the beginning of the file. Checked again if credit is given
+ to all the existing copyright owners.
+
+nxagent-1.3.1-8
+
+- Added a new Options repository to store the values currently
+ dispersed all over around. The new macros nxagentOption(option)
+ and nxagentChangeOption(option, value) should be used from now
+ on to access the important values affecting agent's operations.
+
+- General cleanup of code. Removed the remaining references to
+ the Xnest legacy code.
+
+nxagent-1.3.1-7
+
+- Some steps forward toward rootless agent. Now all the top level
+ windows are correctly created. Drawing to the real screen seems
+ to work without problems. It is still not possible to get events
+ in the event loop and the remote WM is interfering with the WM
+ on the local display.
+
+- More cleanup of code. Some changes to parts added since 1.3.1-5.
+
+nxagent-1.3.1-6
+
+- A drawable with 0 bpp can somehow arrive to the fb layer. The
+ problem needs to be better investigated. In the meanwhile a
+ quick check is added to correctly identify the ill condition.
+
+- Small fix to allow Num/Caps lock synchronization also on the
+ windows platform. This is still to be considered beta quality.
+
+- New options -slow and -fast added to agent. When "fast mode" is
+ not set, agent will query the remote X server to get real content
+ of drawables. When fast mode is enabled, agent will save the
+ round-trip by just clearing the drawable to its background. The
+ default mode is "slow", thus agent will always query the remote
+ server. When "fast mode" is explicitly set or when NX transport
+ is detected and the link is one of MODEM, ISDN and ADSL, agent
+ will default to "fast mode". This behaviour can be overridden by
+ system administrators by setting the key AGENT_EXTRA_OPTIONS_X
+ to "-slow" in node configuration.
+
+nxagent-1.3.1-5
+
+- Created framework for rootless agent. Added a -rootless option.
+
+- Slowly going toward a better organization of nxagent internals.
+ Renamed some files and moved things around. Changed some comments
+ in Screen.c to be more explainatory.
+
+nxagent-1.3.1-4
+
+- Changed default keyboard model to "pc102" (was "pc101") to correct
+ problems with "<" and ">" keys on the German keyboards and, poten-
+ tially on other layouts.
+
+- Added new parameter -kbtype to handle both geometry and layout in
+ a single form, for example pc102/pl. Parameter -keyboard is still
+ supported for backward compatibility.
+
+- Synchronization of Num and Caps lock status is now done comparing
+ the real keyboard and the internal state at the time nxagent gets
+ the focus. If state doesn't match, a fake keyboard event is sent.
+
+nxagent-1.3.1-3
+
+- Fixed a further problem on CopyArea between windows and pixmaps.
+
+nxagent-1.3.1-2
+
+- Implemented CopyArea on framebuffer when copying from windows to
+ pixmaps. Added the -slow command line switch to let nxagent get
+ the real content of the window from the X server. This requires
+ an expensive round-trip so it is disabled by default.
+
+nxagent-1.3.1-1
+
+- Opened the 1.3.1 branch.
+
+nxagent-1.3.0-32
+
+- Fixed a bug on 16 bpp displays using render extension. Now only
+ images which are used by render pictures and which have depth 32
+ are created with a different visual color mask. This saves a big
+ amount of SetUnpackColormap requests.
+
+nxagent-1.3.0-31
+
+- Fixed a bug in nxagentComposite routine. The macro nxgentPicturePriv
+ was used without checking for a null pointer argument.
+
+nxagent-1.3.0-30
+
+- Limitations on bandwidth introduced whenever the agent's window
+ is covered are now disabled by default. They can be enabled by
+ specifying the -limit option on the command line. The -nolimit
+ option is left for compatibility with the previous versions.
+ This handy feature caused complaints in the past from users who
+ instruct window managers to not move the window having focus on
+ top of the stacking order.
+
+nxagent-1.3.0-29
+
+- Removed the warnings issued at compile time.
+
+nxagent-1.3.0-28
+
+- Replaced the corrupted file nxagent.xpm with the original version.
+
+nxagent-1.3.0-27
+
+- Hopefully fixed all the remained memory leaks. Most problems were
+ due to agent's render extension not freeing resources on X server.
+
+- Added support for big-endian X server display on render extension.
+ Glyphs are reformatted according with the destination order.
+
+- Added per client information for SetUnpackGeometry, now the unpack
+ routines should have the correct information for the color mask at
+ the end of the split process.
+
+
+nxagent-1.3.0-26
+
+- Changed the message printed in the log when leaving the dispatch
+ loop from 'Error' to 'Info'.
+
+- Moved initialization of _NXFlushSize to nxcompext in order to set
+ value at the time NXGetControlParameters() is called.
+
+nxagent-1.3.0-25
+
+- Content of selection is now acquired using a single round-trip.
+ If content exceeds 262144 bytes, it is truncated at that size.
+ This works in most situations, at least with text, that, by the
+ way, is the only target supported at the moment. An improvement
+ would be to modify the state machine in a way that the remaining
+ data part is got using a second round-trip. This is not difficult
+ to do and can be considered for future releases.
+
+- In handling of clipborad we had to disable check on multiple
+ convert selection requests from the same client. There is a bug
+ in the algorithm that prevents the counter to be reset at the
+ appropriate time. This is to be investigated.
+
+nxagent-1.3.0-24
+
+- Added asynchronous handling of GetProperty requests and replies
+ using the NXCollectProperty and NXGetCollectedProperty requests
+ and the NXCollectPropertyNotify event in NXclipboard.c and in
+ Event.c. Implementation is not complete yet and can sometimes
+ cause X clients to misbehave.
+
+- Function xnestBitBlitHelper() now always returns NullRegion.
+ Handling of graphical expose events should be rewritten so that
+ regions are always generated internally to nxagent. Returning a
+ null region without checking our event queue, anyway, saves a
+ flush of the display buffer and doesn't seem to affect the
+ functionalities.
+
+- This version comprises modifications to Events.c, GCOps.c,
+ NXClipboard.c, NXwindow.c and Window.c where I found XSync()
+ messages (or code used to just send XSync() messages) outside
+ any #ifdef ..._DEBUG.
+
+nxagent-1.3.0-16
+
+- A dialog is showed at startup if proxy was not able to load a
+ persistent cache.
+
+- Reflected changes introduced in NXGetControlParameters() to add
+ more detailed information about the compression settings.
+
+- Fixed a potential bug with the name of the agent's display at the
+ time a dialog had to be showed. String was allocated with only 6
+ characters. This could lead to dialogs not being showed using
+ display ports greater than 9999.
+
+- NX.h is now included by NXControl.h. Removed #include directives
+ from other files.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcomp_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nxcomp_CHANGELOG
new file mode 100644
index 000000000..b0323d4a7
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcomp_CHANGELOG
@@ -0,0 +1,3778 @@
+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.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcomp_README b/doc/_attic_/NoMachine_documentation_files/nxcomp_README
new file mode 100644
index 000000000..f35cce6b5
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcomp_README
@@ -0,0 +1,21 @@
+README
+------
+
+Building
+--------
+
+1. To compile:
+
+ > tar zxvf nxcomp-X.Y.Z-N.tar.gz
+ > cd nxcomp
+ > ./configure
+ > make
+
+ You'll have to run gmake under Solaris.
+
+2. The 'make install' target is not currently supported
+ in the Makefile, but it should be simple to fix.
+
+You need at least nxproxy and nxagent packages to enjoy this code. Check the
+NoMachine website at http://www.nomachine.com to get the latest release.
+
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcomp_README-IPAQ b/doc/_attic_/NoMachine_documentation_files/nxcomp_README-IPAQ
new file mode 100644
index 000000000..f9418635c
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcomp_README-IPAQ
@@ -0,0 +1,21 @@
+README-IPAQ
+-----------
+
+1. Install a cross-compiler for ARM. You can find detailed
+ informations at:
+
+ http://www.ailis.de/~k/knowledge/crosscompiling/toolchain.php
+
+ There are also binaries needed to install the cross-compiler.
+
+2. Configure and compile libXcomp using:
+
+ $ ./configure --with-ipaq
+ $ make
+
+ After compilation type:
+
+ $ arm-linux-strip libXcomp.*
+
+3. Remember that you also need nxproxy to actually run your NX X
+ session.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcompext_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nxcompext_CHANGELOG
new file mode 100644
index 000000000..941e9b411
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcompext_CHANGELOG
@@ -0,0 +1,806 @@
+ChangeLog:
+
+nxcompext-3.5.0-1
+
+- Opened the 3.5.0 branch based on nxcompext-3.4.0-1.
+
+- Updated copyright to year 2011.
+
+nxcompext-3.4.0-1
+
+- Opened the 3.4.0 branch based on nxcompext-3.3.0-4.
+
+- Updated version number.
+
+- Updated copyright to year 2009.
+
+nxcompext-3.3.0-4
+
+- Fixed TR03G02199. The color palette allocated for encoding an image
+ having 256 colors or less was not freed.
+
+nxcompext-3.3.0-3
+
+- Now setting the correct event serial number when sending collect
+ notifies back.
+
+nxcompext-3.3.0-2
+
+- Updated VERSION.
+
+nxcompext-3.3.0-1
+
+- Opened the 3.3.0 branch based on nxcompext-3.2.0-1.
+
+nxcompext-3.2.0-1
+
+- Opened the 3.2.0 branch based on nxcompext-3.1.0-2.
+
+nxcompext-3.1.0-2
+
+- Updated file VERSION to match the current release version.
+
+nxcompext-3.1.0-1
+
+- Opened the 3.1.0 branch based on nxcompext-3.0.0-18.
+
+nxcompext-3.0.0-18
+
+- Removed the remaining debug output.
+
+nxcompext-3.0.0-17
+
+- Changed the copyright notices at the beginning of the files that
+ were referring to NXPROXY to refer to NXCOMPEXT.
+
+nxcompext-3.0.0-16
+
+- Handle the reply failure in NXGetShmemParameters().
+
+nxcompext-3.0.0-15
+
+- Separated the functionalities made available by NXQueryDisplay()
+ in three distinct functions:
+
+ NXDisplayReadable() Query the number of bytes readable from
+ the display connection.
+
+ NXDisplayFlushable() Query the number of the outstanding bytes
+ to flush to the display connection.
+
+ NXDisplayCongestion() Return a value between 0 and 9 indicating
+ the congestion level of the NX transport.
+
+- Renamed NXQueryDisplayError() to NXDisplayError().
+
+nxcompext-3.0.0-14
+
+- Removed support for Rdp, Tight and Hextile packed images encod-
+ ing since they have been made obsolete by the new NX server.
+
+- Changed the copyright attribution from Medialogic to NoMachine.
+
+nxcompext-3.0.0-13
+
+- Allocate 1024 additional bytes for the Jpeg compression, instead
+ of 512, to avoid failures on very tiny images.
+
+- Removed support for the special *PNG_JPEG* pack method.
+
+nxcompext-3.0.0-12
+
+- Implemented the NXEncodeBitmap() method. This is a very simple
+ encoder removing the 4th byte in 32 bits-per-plane images. For
+ the other pixmap depths it simply returns a pointer to the orig-
+ inal image data, saving the copy. This encoding is intended to
+ better leverage the stream compression on low bandwidth links.
+
+- Removed the quality parameter from the RGB/RLE encoding function.
+
+nxcompext-3.0.0-11
+
+- Removed the additional parameter in the call to NXTransFlush().
+
+nxcompext-3.0.0-10
+
+- Moved the _NXRDPGlyph and _NXRDPText declarations from NXlib.h
+ to NXproto.h to force fields to be CARD32.
+
+- Fixed a typo in NXSetDisplayBuffer() that could cause a double
+ free.
+
+- Fixed a compilation error with old GCC versions.
+
+- Removed the warning issued on AMD64 when compiling with the logs
+ enabled.
+
+nxcompext-3.0.0-9
+
+- Added the NXDisplayCongestion query type to NXQueryDisplay(). It
+ returns a value between 0 and 9, with 9 meaning that the link is
+ congested and no further data can be sent.
+
+- Added the NXSetDisplayBuffer() function. It allows the caller to
+ set the display output buffer size at runtime.
+
+- Removed the congestion and synchronization callbacks.
+
+nxcompext-3.0.0-8
+
+- Removed the warnings issued when purging the collected data at
+ display reset.
+
+nxcompext-3.0.0-7
+
+- Added the NXSetDisplayWriteHandler() interface. The function
+ registers a callback that will be invoked every time more data
+ is written to the display socket.
+
+nxcompext-3.0.0-6
+
+- Made NXQueryDisplay() take into account the bytes in the display
+ buffer when queried for the bytes flushable.
+
+nxcompext-3.0.0-5
+
+- Added file COPYING.
+
+nxcompext-3.0.0-4
+
+- Updated copyright notices to the current year.
+
+nxcompext-3.0.0-3
+
+- Imported changes up to nxcompext-2.1.0-4.
+
+- Fixed TR12D01564. Changed configure script to build library with
+ -fPIC option.
+
+- Added 256 byte to the size of Jpeg destination buffer.
+
+nxcompext-3.0.0-2
+
+- Updated the file VERSION.
+
+nxcompext-3.0.0-1
+
+- Opened the 3.0.0 branch based on nxcompext-2.0.0-33.
+
+nxcompext-2.0.0-33
+
+- Placed the inclusion of jpeglib.h after the X includes to fix a
+ possible compilation error.
+
+nxcompext-2.0.0-32
+
+- Avoid to copy the data to the scratch buffer and yield the task
+ of padding the output to _XSend() in the NXPutPackedImage(), NX-
+ SetUnpackAlpha() and NXSetUnpackColormap() requests.
+
+- Added support for the RLE pack method.
+
+nxcompext-2.0.0-31
+
+- 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.
+
+- 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.
+
+nxcompext-2.0.0-30
+
+- Removed the unfriendly warning printed if a client tried to reset
+ the library multiple times.
+
+nxcompext-2.0.0-29
+
+- Made possible to compile even if makedepend is not found.
+
+nxcompext-2.0.0-28
+
+- Added the NXSetDisplaySynchronizationHandler() interface. The NX
+ transport will use the callback to report when the agent can use
+ the available bandwidth to synchronize the X objects that are
+ corrupted or incomplete.
+
+- Bytes from 14 to 24 in the NXGetControlParameters() reply report,
+ respectively, the frame timeout, the ping timeout, the preferred
+ image split mode and the split size threshold.
+
+nxcompext-2.0.0-27
+
+- Changed the image cleanup functions and the Png and Jpeg encoders
+ to be independent from the host endianess.
+
+- Enabled again the image cleanup on big endian machines.
+
+nxcompext-2.0.0-26
+
+- Added the NXAbortSplit() request.
+
+- Added information about the size of the shared memory segment used
+ by the remote proxy in the NXGetShmemParameters() reply.
+
+nxcompext-2.0.0-25
+
+- Renamed the NXGetSplitResource() and NXGetUnpackResource() utili-
+ ties to NXAllocSplit() and NXAllocUnpack(). They can be called
+ with a NXAnyResource parameter to get the first available id or
+ requre a specific resource. From this version the resource must
+ be explicitly reserved. NXFreeUnpack() and NXFreeSplit() check
+ if the resource was allocated and don't do anything if it is not
+ the case. NXAllocSplit() and NXAllocUnpack() return NXNoResource
+ if the resource can't be reserved.
+
+nxcompext-2.0.0-24
+
+- NXFlushDisplay() now verifies whether the XlibDisplayWriting flag
+ is set before flushing the display buffer. in this case, it only
+ flushes the NX link.
+
+nxcompext-2.0.0-23
+
+- Implemented a move-to-front strategy for the image cache, to mi-
+ nimize the number of lookups.
+
+- Fixed the problems imtroduced by the new cache implementation by
+ modifying the memory allocation routines in Jpeg.c and Pgn.c.
+
+- Temporarily fixed the cleanup problems on big-endian machines by
+ skipping the operation.
+
+- Added a NXSetDisplayStatisticsHandler() to let the agent include
+ arbitrary data in the transport statistics. The parameter 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 can
+ be filled by the agent with its statistics data.
+
+nxcompext-2.0.0-22
+
+- The NXCacheFindImage() returns a pointer to the checksum, if the
+ image is found.
+
+- The image cache uses the data passed to NXCacheAddImage() instead
+ of making a copy.
+
+- The Z stream used by the RGB encoder is allocated at initializat-
+ ion and freed at reset.
+
+nxcompext-2.0.0-21
+
+- Removed the reliance on the local byte order in the image cleanup
+ functions.
+
+nxcompext-2.0.0-20
+
+- Added the NXFinishSplit() request. It forces the proxy to comple-
+ tely transfer all the split messages for the given resource, and
+ then notify the agent.
+
+nxcompext-2.0.0-19
+
+- Enabled again the cleanup of images.
+
+- Updated to comply with the new NXTransFlush() interface.
+
+nxcompext-2.0.0-18
+
+- Moved all the declarations in Rgb.c at the beginning of the block
+ to avoid the possible compilation errors with old compilers.
+
+nxcompext-2.0.0-17
+
+- 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.
+
+- Created a new NXCleanImage() function that takes a XImage pointer
+ and uses either the CleanXYImage() or the CleanZImage() routines
+ to cleanup the padding bits.
+
+nxcompext-2.0.0-16
+
+- Added a parameter to NXFlushDisplay() to specify what needs to be
+ flushed. The parameter can be one the following values, defined
+ in NXvars.h:
+
+ NXFlushBuffer Only the Xlib buffer is to be flushed.
+
+ NXFlushLink Flush both the Xlib buffer and any pending
+ data encoded by the NX transport.
+
+ NXFlushIdle Inform the NX transport that the agent is
+ idle. This will let the NX transport encode
+ more low-priority data, and then flush the
+ link.
+
+- Ensured that the padding bytes are cleaned when creating a new
+ PNG image. It seems that some images are still missed. This is
+ to be investigated.
+
+nxcompext-2.0.0-15
+
+- Ensured that the packed image cache is recreated only on a size
+ change.
+
+nxcompext-2.0.0-14
+
+- Updated to get the karma delay field from the X_NXGetControlPara-
+ meters reply.
+
+nxcompext-2.0.0-13
+
+- Added the NXSetDisplayPolicy() and NXSetDisplayFlushHandler() in-
+ terfaces. The second function registers a callback that will be
+ invoked by the NX transport when the number of bytes encoded by
+ the proxy exceeds the threshold set for the scheduled write.
+
+- Added the NXFlushDisplay() and NXQueryDisplay() interfaces. They
+ are used to hide the corresponding NX transport functions to the
+ application. NXQueryDisplay() can be called with the NXDisplay-
+ Flushable or NXDisplayReadable parameters, to get, repectively,
+ the number of bytes that are queued to the NX transport and the
+ number of bytes that is possible to read.
+
+- Included the remote proxy version in the NXGetControlParameter()
+ reply.
+
+nxcompext-2.0.0-12
+
+- Added the NXGetSplitResource() and NXGetUnpackResource utilities.
+ These can be used by the client to find out the first unused id
+ available for a split or unpack operation.
+
+- Added the NXFreeSplit() request function. It makes the resource
+ available for the next operation and tells the proxy to destroy
+ all the storage associated to the split.
+
+- Renamed the NXNumberOfConnections constant to NXNumberOfResources.
+
+nxcompext-2.0.0-11
+
+- Changed NXForceDisplayError() to also shut down the NX transport
+ by calling NXTransClose().
+
+- Updated to comply with the new NX function prototypes introduced
+ in nxcomp-2.0.0-31.
+
+nxcompext-2.0.0-10
+
+- NXQueryDisplayError() now checks the predicate function only if
+ the I/O error was not encountered already.
+
+nxcompext-2.0.0-9
+
+- Added the NXSetDisplayErrorPredicate(), NXSetDisplayBlockHand-
+ ler(), NXSetDisplayCongestionHandler(), NXSetLostSequenceHand-
+ ler() interfaces to let the user set the values used internal-
+ ly. All functions return the previous handler. See ChangeLog
+ in nx-X11-2.0.0-16 and nx-X11-2.0.0-17.
+
+- Moved all the internal variables shared between Xlib, nxcompext
+ and the X server in nxcomp. Declarations and function prototypes
+ moved to NXvars.h.
+
+- Some name changes. In particular the NXContinueOnDisplayError()
+ function iss renamed NXHandleDisplayError() and NXDisplayError()
+ is now renamed NXQueryDisplayError(). To verify if the display
+ is valid, NXQueryDisplayError() will now call the _NXDisplayEr-
+ rorPredicate function, or, if the predicate function is not set,
+ will simply check the value of the XlibDisplayIOError flag.
+
+- Removed the NXGetCleanupParameters() and NXGetImageParameters()
+ interfaces and the remaining references to the unused display
+ buffer and image cleanup functions.
+
+- Updated the NoMachine copyright notice to year 2006.
+
+nxcompext-2.0.0-8
+
+- Removed the unused screen parameter from XSetUnpackGeometry().
+
+- NXSetUnpackGeometry() now fails if no visual is provided.
+
+nxcompext-2.0.0-7
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+- Removed the misplaced DXPC copyright notices from the license.
+ They were copied from NXCOMP but they don't apply in any way to
+ NXCOMPEXT.
+
+nxcompext-2.0.0-6
+
+- Added the NXSetCacheParameters() request. It tells to the local
+ proxy how to handle the X requests, namely if the next requests
+ have to be stored in the memory cache, split in smal data chunks,
+ and in the case of images, saved on disk in the persistent image
+ cache. The request will affect all X messages, including plain
+ and packed images. It can be used to tell the proxy to discard
+ images coming from some selected operations, like GLX or XVideo.
+
+nxcompext-2.0.0-5
+
+- 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.
+
+nxcompext-2.0.0-4
+
+- Initial work on font server tunneling.
+
+nxcompext-2.0.0-3
+
+- Renamed the NXSetExposeEvents request to NXSetExposeParameters.
+
+nxcompext-2.0.0-2
+
+- Modified the configure and the makefiles to support the Cygwin
+ environment.
+
+- Renamed Png.h to Pgn.h to avoid name clashes on Windows.
+
+- The distclean target now removes the autom4te.cache directory.
+
+nxcompext-2.0.0-1
+
+- Opened the 2.0.0 branch based on nxcompext-1.5.0-20.
+
+nxcompext-1.5.0-20
+
+- Removed the code installing a SIGSEGV handler before trying to
+ clean an image in NXCleanImageInPlace().
+
+nxcompext-1.5.0-19
+
+- Added the NXUnsetLibraryPath() function to specify the behaviour
+ of the Popen() in the X server. If the _NXUnsetLibraryPath flag
+ is set, the Popen() will remove the LD_LIBRARY_PATH variable from
+ the environment before running the child process. This will cause
+ the X server to run the process (for example the keyboard initia-
+ lization utilities) by using the native system libraries, instead
+ of the libraries shipped with the NX environment.
+
+nxcompext-1.5.0-18
+
+- Moved the declarations of _NXEnable* and related structures from
+ Xlibint.h to NXlibint.h.
+
+- 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.
+
+nxcompext-1.5.0-17
+
+- Added the -fPIC GCC flag when compiling on AMD64 architectures.
+
+- Removed all warnings when compiling with GCC4.
+
+- Small changes to configure.in to have specific CFLAGS.
+
+- Created a new configure using autoconf 2.59.
+
+nxcompext-1.5.0-16
+
+- Added the 'mode' field in the 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 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 NXCommit-
+ Split() requests.
+
+nxcompext-1.5.0-15
+
+- Removed the NXSync() and NXKarma() operations, not used anymore
+ by the NX agents.
+
+- Updated to comply with changes occurred in the numbering of the
+ notification events and in the interface to the image streaming
+ functions.
+
+nxcompext-1.5.0-14
+
+- Accounted for the missing xoffset field in clean-up of XYPixmaps.
+
+nxcompext-1.5.0-13
+
+- Added a 'commit' field in NXCommitSplit(). When zero, the remote
+ proxy will remove the message from the split store, without send-
+ ing the recomposed image to the X server.
+
+nxcompext-1.5.0-12
+
+- Added the NXContinueOnDisplayError() function to specify the be-
+ haviour of the Xlib I/O error handler. If the flag is set to true,
+ Xlib will simply return, instead of quitting the program. This
+ leaves to the application the responsibility of checking the sta-
+ te of the XlibDisplayIOError flag.
+
+- Changed NXDisplayIsValid() to NXDisplayError() and inverted the
+ logic. Now the function returns true if the display pointer is
+ NULL or the XlibDisplayIOError flag is set.
+
+- Added the NXForceDisplayError() function, to shutdown the display
+ descriptor and force Xlib to set the I/O error flag.
+
+nxcompext-1.5.0-11
+
+- Added -I../nx-X11/exports/include to CCINCLUDES in Makefile.in.
+
+nxcompext-1.5.0-10
+
+- Added FindLSB() to replace ffs() that may be not present on some
+ systems.
+
+- Some cosmetic changes.
+
+nxcompext-1.5.0-9
+
+- Fixed a printf() that prevented the code to compile if TEST was
+ enabled.
+
+nxcompext-1.5.0-8
+
+- Implemented the NXLib interface for asynchronous handling of the
+ XGetInputFocus requests and replies.
+
+nxcompext-1.5.0-7
+
+- Removed the _NXFlushSize parameter. New agents run the NX trans-
+ port in-process, so we don't get any benefit from increasing the
+ display buffer size.
+
+nxcompext-1.5.0-6
+
+- Added a NXDisplayIsValid() to check that the display is not NULL
+ and that the descriptor was not shut down after an IOError. The
+ reason a function is needed for this is that the flags field is
+ only in Xlibint and it is not visible to Xlib applications.
+
+nxcompext-1.5.0-5
+
+- Added the NXGetCollect*Resource utility functions, returning the
+ first available small integer resource id that can be used in a
+ subsequent collect request.
+
+nxcompext-1.5.0-4
+
+- Added the NXNumberOfConnections constant.
+
+nxcompext-1.5.0-3
+
+- Implemented the NXLib interface for the asynchronous handling of
+ the XGrabPointer requests and replies.
+
+- Solved an error in image cleaning that prevented the 8 bits-per-
+ pixel images to be completely cleaned. Due to the bug, only half
+ of the total lines were cleaned.
+
+- Removed a bug that prevented the cleaning of XYPixmaps images of
+ bitmap unit 32 and byte order LSB.
+
+- Renamed the NXImageCache variables to show they are global. They
+ are currently used in the nxagent code.
+
+nxcompext-1.5.0-2
+
+- Changed VERSION file.
+
+nxcompext-1.5.0-1
+
+- Opened the 1.5.0 branch.
+
+nxcompext-1.4.1-1
+
+- Removed the configure option --with-static. There are two options
+ now, --with-static-png and --with-static-jpeg, to offer a greater
+ degree of control on the resulting library.
+
+- This version differs from the 1.4.0-3-KRY1 in the way that the con-
+ figure script is generated by GNU Autoconf 2.57, the same version
+ used for nxcomp.
+
+- Opened the 1.4.1 branch.
+
+nxcompext-1.4.0-3
+
+- Updated the VERSION file to reflect the 1.4.0 status.
+
+nxcompext-1.4.0-2
+
+- Imported changes from the latest 1.3.2 development branch.
+
+- The 1.4.0 branch already had a 1.4.0-1 version. The changes from
+ the 1.4.0-1 were up to date with the 1.3.2-2 version.
+
+nxcompext-1.3.2-6
+
+- Fixed problem with icons in KDE and Mozilla on SPARC Solaris. The
+ problem was related to cleaning of one-bit XYPixmaps on big-endian
+ hosts, where shift of the cleaning mask executed in the wrong di-
+ rection.
+
+nxcompext-1.3.2-5
+
+- Changes in Clean.c to compile on Solaris.
+
+nxcompext-1.3.2-4
+
+- Fixed a bug in clean image procedures for 1bit XYPixmaps. The bug
+ caused Mozilla to trash some transparent icons in web pages and
+ the toolbar.
+
+- Added cleaning of the padding bytes at the end of the data chunk
+ inside XImage structure
+
+- Implemented handling of SIGSEGV during cleanup in case of static
+ data.
+
+- Moved image cleanup and masking code in new Clean.c and Mask.c
+ sources.
+
+- Corrected few typos in NXCollectImage code.
+
+nxcompext-1.3.2-2
+
+- Imported 1.4.0-1 changes from the 1.4.0 development branch.
+
+- Modified NXAllocColors to handle errors generated allocating
+ each requested color. A per-color result code is now returned
+ to the caller.
+
+- Code cleanup in Png.h and Png.c.
+
+nxcompext-1.3.2-1
+
+- Opened the 1.3.2 branch.
+
+nxcompext-1.3.1-2
+
+- Removed the underline characters and added a colon in the
+ title of this ChangeLog to fully comply with format used in
+ the release notices.
+
+nxcompext-1.3.1-1
+
+- Opened the 1.3.1 branch.
+
+nxcompext-1.3.0-18
+
+- Added the _NXLostSequenceHandler function to let NX agents
+ suppress the error message and modify the default Xlib
+ behaviour when out-of-order sequence numbers are received.
+ Pointer to function is assigned to _NXLostSequenceFunction
+ in XlibInt.c.
+
+- Original output buffer size in stock XFree86 is 2048. We try
+ to reduce context switches and help stream compression by
+ increasing the maximum size of the buffer 8192. _NXFlushSize
+ determines when the display buffer is actually flushed. It is
+ set by default to 4096 in XlibInt.c and set to 0 to use the
+ maximum available size at the time NXGetControlParameters()
+ is called.
+
+nxcompext-1.3.0-17
+
+- In handling of asynchronous GetProperty replies a warning
+ message was printed in session log when a null property was
+ stored in the state structure. This message is now printed
+ only if TEST is defined.
+
+nxcompext-1.3.0-16
+
+- Added asynchronous handling of GetProperty request and reply
+ by means of the NXCollectProperty and NXGetCollectedProperty
+ requests and the NXCollectPropertyNotify event.
+
+nxcompext-1.3.0-15
+
+- Added 4 new fields to the X_NXGetControlParameters reply.
+
+nxcompext-1.3.0-14
+
+- Added request X_NXFreeUnpack to free the resources allocated
+ by the remote proxy to unpack images for the given agent's
+ client
+
+nxcompext-1.3.0-13
+
+- Modified the following requests to carry the id of the
+ agent's client in the field resource:
+
+ - X_NXSetUnpackGeometry
+ - X_NXSetUnpackColormap
+ - X_NXSetUnpackAlpha
+ - X_NXPutPackedImage
+
+nxcompext-1.3.0-11
+
+- Modified the MIT-SHM initialization procedure to always send
+ all the 3 protocol requests also in the case of early failures.
+
+nxcompext-1.3.0-10
+
+- Added handling of X_NXSetUnpackAlpha request.
+
+- 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 remote proxy.
+
+nxcompext-1.3.0-9
+
+- Solved a compatibility problem when mixing proxy versions
+ 1.2.2 and 1.3.0 due to the missing X_NXGetShmemParameters
+ request.
+
+nxcompext-1.3.0-7
+
+- Reduced the number of requests needed to setup the shared
+ segment at X server proxy from 4 to 3.
+
+- Small changes to the shared memory interface to support
+ path X agent to X client proxy.
+
+nxcompext-1.3.0-6
+
+- Implemented initial support for MIT-SHM extension in the
+ network path between the X server proxy and the real X
+ server.
+
+- Configure script now checks for the FreeBSD environment.
+
+- New configure script generated using autoconf-2.57-3.
+
+- Removed the XFree86 CCDEFINES from Makefile.in.
+
+nxcompext-1.3.0-5
+
+- Cosmetic changes.
+
+- Started to convert configure.in to the new layout adopted
+ for nxcomp.
+
+- Created file CHANGELOG.
+
+nxcompext-1.3.0-4
+
+- More fixes in image clean-up.
+
+nxcompext-1.3.0-3
+
+- Many fixes in image clean-up functions to handle differences
+ in endianess between client and X server.
+
+nxcompext-1.3.0-2
+
+- Modified configure.in to compile under Solaris.
+
+nxcompext-1.3.0-1
+
+- First 1.3.0 version based on nxcompext-1.2.2-12.
+
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcompext_README b/doc/_attic_/NoMachine_documentation_files/nxcompext_README
new file mode 100644
index 000000000..39648e76b
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcompext_README
@@ -0,0 +1,15 @@
+README
+------
+
+1. To compile:
+
+ > tar zxvf nxcompext-X.Y.Z-N.tar.gz
+ > cd nxcompext
+ > ./configure
+ > make
+
+ You'll have to run gmake under Solaris.
+
+2. The 'make install' target is not currently supported
+ in the Makefile, but it should be simple to fix.
+
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcompshad_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nxcompshad_CHANGELOG
new file mode 100644
index 000000000..3472a4afe
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcompshad_CHANGELOG
@@ -0,0 +1,404 @@
+ChangeLog:
+
+nxcompshad-3.5.0-2
+
+- Fixed TR03G02189. Now key combinations involving the Shift keys
+ are recognized correctly.
+
+nxcompshad-3.5.0-1
+
+- Opened the 3.5.0 branch based on nxcompshad-3.4.0-3.
+
+- Updated copyright to year 2011.
+
+nxcompshad-3.4.0-3
+
+- Updated copyright to year 2010.
+
+nxcompshad-3.4.0-2
+
+- Fixed TR08G02256. Now the Shadow session is shown correctly with
+ MIT-SHM extension disabled.
+
+- Improved updateShadowFrameBuffer() and ~Poller() functions.
+
+- Avoided memory leak.
+
+nxcompshad-3.4.0-1
+
+- Opened the 3.4.0 branch based on nxcompshad-3.3.0-3.
+
+- Updated version number.
+
+- Updated copyright to year 2009.
+
+- Improved error messages logging in case of initialization failures.
+
+nxcompshad-3.3.0-3
+
+- Fixed TR01G02158. Keymap initialization could be incorrect because
+ of a type mismatch on 64 bit platforms.
+
+nxcompshad-3.3.0-2
+
+- Updated VERSION.
+
+nxcompshad-3.3.0-1
+
+- Opened the 3.3.0 branch based on nxcompshad-3.2.0-3.
+
+nxcompshad-3.2.0-3
+
+- Improved keycode translation.
+
+nxcompshad-3.2.0-2
+
+- Solved a problem when sending fake modifier events.
+
+- Added support for keyboard events handling for the web player.
+
+- Changed keycodes translation for Solaris keyboard.
+
+- Corrected a problem for keycodes translation from Solaris keyboard.
+
+- Fixed TR02F02001. In shadow session the shadower's keyboard layout
+ could be wrong. Now keycodes are correctly translated if master and
+ shadow keyboards have different layouts.
+
+- Added NXShadowGetScreenSize() and NXShadowSetScreenSize() functions,
+ so that the shadow session can handle correctly the resize of the
+ master session window.
+
+- Solved a compilation problem on GCC 4.3.
+
+nxcompshad-3.2.0-1
+
+- Opened the 3.2.0 branch based on nxcompshad-3.1.0-2.
+
+nxcompshad-3.1.0-2
+
+- Updated file VERSION to match the current release version.
+
+nxcompshad-3.1.0-1
+
+- Opened the 3.1.0 branch based on nxcompshad-3.0.0-19.
+
+nxcompshad-3.0.0-19
+
+- Skip initialization of damage extension if it was already disabled.
+
+nxcompshad-3.0.0-18
+
+- The poller destructor checks if the damage extension is in use.
+
+- Small changes to the function getting the screen content in the case
+ damage is not in use.
+
+nxcompshad-3.0.0-17
+
+- Cleanup of some log messages.
+
+nxcompshad-3.0.0-16
+
+- Disabled some log message in the functions initializing the poller.
+
+nxcompshad-3.0.0-15
+
+- Before calling XTest functions, it is checked if the connection to
+ master X server has been initialized.
+
+nxcompshad-3.0.0-14
+
+- After the shm segment is created, its mode is changed and it is
+ marked for destroying. A check on the number of attaches is done.
+
+nxcompshad-3.0.0-13
+
+- Creating the shm segment even if the uid of master X server can't be
+ retrieved.
+
+- Fixed reallocation of update region.
+
+- Checking if the master X server provides XTest extension.
+
+nxcompshad-3.0.0-12
+
+- Fixed a compiler warning on AMD64 platform.
+
+- Changed configure script to add -fPIC option.
+
+- Fixed a mismatch in UpdateManager destructor.
+
+nxcompshad-3.0.0-11
+
+- Fixed the function setting the uid of shm segment.
+
+- Sync with the master X server before marking the shm segment to be
+ destroyed.
+
+nxcompshad-3.0.0-10
+
+- Setting the shm segments as readable only by the master X server
+ process.
+
+- Mark shm segments to be destroyed when the last process detach.
+
+- Enabled keycode translation in order to allow keyboards of different
+ models to work.
+
+nxcompshad-3.0.0-9
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+- Added file COPYING.
+
+- Changes to translate keycodes between different keyboard types. The
+ keycodes are translated through the keysym.
+
+- Changes to convert a Mode_switch key to ISO_Level3_Shift if it is
+ needed.
+
+nxcompshad-3.0.0-8
+
+- Added interface function NXShadowDisableShm disabling the use of
+ MIT-SHM extension.
+
+- Added interface function NXShadowDisableDamage disabling the use of
+ DAMAGE extension.
+
+- Added interface function NXShadowSetDisplayUid setting the uid of
+ shadowed X server
+
+- Changed the owner of shared memory segments to the uid of the sha-
+ dowed X server.
+
+- Fixed logWarning method.
+
+- Moved the code initializing the use of shared memory to shmInit
+ method of X11 Poller.
+
+nxcompshad-3.0.0-7
+
+- Removed the class qualifier in the declaration of destroyUpdate-
+ ManagerRegion().
+
+nxcompshad-3.0.0-6
+
+- Fixed build errors on 64 bit platforms.
+
+- Called XTestGrabControl to override possible grabs of the X server.
+
+nxcompshad-3.0.0-5
+
+- Added some stub members to the Poller class. These are intended to
+ handle keyboard state.
+
+- Changes in the default polling algorithm to disable the line pri-
+ ority persistence.
+
+nxcompshad-3.0.0-4
+
+- If a low layer handling of screen changes is available (DAMAGE in
+ case of X11), polling routine uses it and returns immediately.
+
+- Creating a Damage notify object if the extension is supported.
+
+- DamageNotify events are saved in the update region. After all avail-
+ able events have been handled, the content of screen is retrieved
+ by ShnGetImage requests.
+
+- XDamageSubtract and XSync are done before any event handling.
+
+- Damages are requested as raw rectangles.
+
+- Added Xdamage and Xrandr to required libraries.
+
+- Fixed a problem with some lines not refreshed in shadowing mode.
+
+nxcompshad-3.0.0-3
+
+- Added destroyUpdateManagerRegion() method to UpdateManager class.
+
+- Turned off some log messages.
+
+- Changed configure.in to remove warnings related to deprecated header
+ files and options.
+
+- Changed Makefile.in to remove autom4te.cache dir if the target is
+ 'distclean'.
+
+- Removed multi-word file names.
+
+nxcompshad-3.0.0-2
+
+- Changes to get the screen of original display by a ShmGetImage.
+
+- Exit the polling loop if more than 50 ms have elapsed.
+
+nxcompshad-3.0.0-1
+
+- Created nxcompshad based on nxshadow-3.0.0-7.
+
+nxshadow-3.0.0-7
+
+- Deleted files KeyCursorTmp.cpp, scancodes.h, constant.h.
+
+- Renamed NXshadow.h to Shadow.h.
+
+- Merged NXshadowEvent.h with Shadow.h.
+
+- Fixed configure.in, changed Makefile.in to build Xcompshad library,
+ rebuilt configure script.
+
+nxshadow-3.0.0-6
+
+- Implemented a callback mechanism to ask the caller program if screen
+ polling have to be suspended.
+
+nxshadow-3.0.0-5
+
+- Changes to comply with the library name.
+
+- Fixed a bug in CorePoller that could prevent the update of the last
+ line of a rectangle.
+
+nxshadow-3.0.0-4
+
+- Removed some parameters of the NXShadowAddUpdaterDisplay() function.
+
+nxshadow-3.0.0-3
+
+- Updated copyright notices to the current year.
+
+- Code cleanup in KeysCursorTmp.c file.
+
+nxshadow-3.0.0-2
+
+- If master agent uses shared memory extension, the GetImage is rea-
+ lized by XShmGetImage() function.
+
+- Added new parameters to NXShadowAddUpdaterDisplay() function, the
+ depth and bit mask color of the master display.
+
+nxshadow-3.0.0-1
+
+- Opened the nxshadow-3.0.0 branch based on the nxaccess-3.0.0-13.
+
+- Renamed NXaccess.h NXaccessEvent.h and RegionM.h files as NXshadow.h
+ NXshadowEvent.h and Regions.h.
+
+- Modified the Makefile.in file and configure scripts in order to
+ compile the component.
+
+nxaccess-3.0.0-13
+
+- Fixed X11Poller.cpp pre-processing.
+
+nxaccess-3.0.0-12
+
+- Fixed build problems on Solaris.
+
+nxaccess-3.0.0-11
+
+- Added NXShadowUpdateBuffer() function. This function creates the
+ buffer for the polling.
+
+- If the scaline fails, the polling will suspend for 50 ms.
+
+- Added some functions in order to access data member class.
+
+nxaccess-3.0.0-10
+
+- Used XTEST extension to make the shared display create input events.
+
+nxaccess-3.0.0-9
+
+- Added the mouse events.
+
+- Now, it's possible to connect to X server display or agent display,
+ the display's content is captured by GetImage and sent to another
+ display by PutImage.
+
+nxaccess-3.0.0-8
+
+- Added KeysCursorTmp.cpp file.
+
+- Solved a problem with the keys, when the window lost focus the Key-
+ Release events weren't propagated.
+
+nxaccess-3.0.0-7
+
+- Added functions in order to remove issues with some keys combina-
+ tion.
+
+nxaccess-3.0.0-6
+
+- Added functions to simulate keys Ctrl + Alt + Del in order to run
+ the Task Manager application.
+
+- Now nxaccess is able to manage all switches between desktops.
+
+nxaccess-3.0.0-5
+
+- Solved a problem with the cursor shape. After a while, the cursor
+ shape are no more updated.
+
+- Now the cursor is updated only when it changes its shape.
+
+- Removed a dirty lines after screen updates.
+
+- Removed the unused file Keyboard.cpp.
+
+- Added the colorCorrect() macro in NXaccess.h.
+
+- Removed the colorCorrect() function in Updater.cpp.
+
+nxaccess-3.0.0-4
+
+- Renamed some source files and functions conforming them to the name
+ of component.
+
+nxaccess-3.0.0-3
+
+- Removed the parameter of type Display in all methods of the class
+ Poller.
+
+- Print, Break and Pause keys are enabled.
+
+nxaccess-3.0.0-2
+
+- Modified the Makefile.in in order to avoid compiling the executive
+ file.
+
+- Removed the unused file Main.cpp.
+
+- The Windows keys are enabled.
+
+- Synchronized local and remote states of Num_Lock, Caps_Lock and
+ Scroll_Lock.
+
+- Updated the NoMachine copyright notices.
+
+nxaccess-3.0.0-1
+
+- Opened the 3.0.0 branch based on the nxmirror-2.0.0-3.
+
+nxmirror-2.0.0-3
+
+- Added the keyboard events for all layouts.
+
+- The mouse wheel button is enabled.
+
+nxmirror-2.0.0-2
+
+- Completed implementation of the keyboard events only for italian
+ layout.
+
+- Added the mouse events and shape cursor.
+
+nxmirror-2.0.0-1
+
+- Opened the 2.0.0 branch based on the 1.5.0-60.
+
+- Added CHANGELOG.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxproxy_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nxproxy_CHANGELOG
new file mode 100644
index 000000000..e5dff2e4f
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxproxy_CHANGELOG
@@ -0,0 +1,216 @@
+ChangeLog:
+
+nxproxy-3.5.0-1
+
+- Opened the 3.5.0 branch based on nxproxy-3.4.0-2.
+
+- Updated copyright to year 2011.
+
+nxproxy-3.4.0-2
+
+- Updated copyright to year 2009.
+
+nxproxy-3.4.0-1
+
+- Opened the 3.4.0 branch based on nxproxy-3.3.0-2.
+
+- Changed version number.
+
+nxproxy-3.3.0-2
+
+- Updated VERSION.
+
+nxproxy-3.3.0-1
+
+- Opened the 3.3.0 branch based on nxproxy-3.2.0-1.
+
+nxproxy-3.2.0-1
+
+- Opened the 3.2.0 branch based on nxproxy-3.1.0-2.
+
+nxproxy-3.1.0-2
+
+- Updated version number.
+
+nxproxy-3.1.0-1
+
+- Opened the 3.1.0 branch based on nxproxy-3.0.0-4.
+
+nxproxy-3.0.0-4
+
+- Added file COPYING.
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+nxproxy-3.0.0-3
+
+- Updated the copyright notices to year 2007.
+
+nxproxy-3.0.0-2
+
+- Updated the file VERSION.
+
+nxproxy-3.0.0-1
+
+- Opened the 3.0.0 branch based on nxproxy-2.0.0-2.
+
+nxproxy-2.0.0-2
+
+- Updated copyright to year 2006.
+
+nxproxy-2.0.0-1
+
+- Opened the 2.0.0 branch based on nxproxy-1.5.0-10.
+
+nxproxy-1.5.0-10
+
+- Added the JPEG, PNG and Z libraries to the linker when compiling
+ on Cygwin. GCC 3.3.x requires that these libraries are explicitly
+ given while this is not required since GCC 3.4.x.
+
+- Created a new configure using autoconf 2.59.
+
+nxproxy-1.5.0-9
+
+- Removed provision for dynamically loading a different version of
+ the nxcomp library.
+
+nxproxy-1.5.0-8
+
+- Updated to reflect the new naming of the NX transport interfaces.
+
+nxproxy-1.5.0-7
+
+- Modified the Makefile.in to remove the *.out.* files generated by
+ Valgrind when running a 'make clean'.
+
+- Modified the README files and removed files that were outdated.
+
+nxproxy-1.5.0-6
+
+- Removed the NX_FORCE_IDLE_PROXY stubs.
+
+nxproxy-1.5.0-5
+
+- This version has NX_FORCE_IDLE_PROXY undefined, so it should work
+ in a way that is compatible with the old nxproxy.
+
+nxproxy-1.5.0-4
+
+- This software is crafted by default to test the new integration
+ between nxcomp and nxssh. The process will stay idle and will
+ let nxssh create the proxy. Note that the session log will go to
+ 'sshlog', not to 'session'. This will have to be fixed in nxcomp
+ in future versions.
+
+- Removed the references to the "bind" functionality that is not
+ used in the current software.
+
+nxproxy-1.5.0-3
+
+- Added a NX_FORCE_IDLE_PROXY. If set, nxproxy will stay idle and
+ will not try to create a nxcomp proxy. This is used for testing
+ the new in-process nxcomp functionalities with the development
+ versions of nxclient and nxssh software.
+
+nxproxy-1.5.0-2
+
+- Small changes to this file.
+
+nxproxy-1.5.0-1
+
+- Opened the 1.5.0 branch.
+
+nxproxy-1.4.1-1
+
+- Opened the 1.4.1 branch.
+
+nxproxy-1.4.0-3
+
+- We were lucky. We found a machine where nxproxy failed exactly
+ in the same way described by multiple users in their reports.
+ The error was the same ('dlopen: win32 line 126') and neither
+ rebasing the Cygwin DLLs or removing all the other Cygwin li-
+ braries worked. So the problem had necessarily to be in a bug-
+ gy Cygwin dlopen() implementation. To solve this I had to make
+ changes to the nxproxy code on Windows, so it links to nxcomp
+ at compile time in the way specified below. As far as I can
+ tell, any other way fails. This seems to be another Cygwin bug:
+ the linker says that everything is OK but then the executable
+ can't be run. Both the Cygwin's bash and the command.com say
+ 'Permission denied'.
+
+ LIBS = -L../nxcomp -lstdc++ -Wl,-e,_mainCRTStartup -lXcomp \
+ -lcygipc -static -lpng -static -ljpeg -lz
+
+nxproxy-1.4.0-2
+
+- 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.
+
+- Solved a potential problem in Main.c with NXExit() being called
+ after the dlclose(). This was unlikely to happen as proxy never
+ returns.
+
+nxproxy-1.4.0-1
+
+- Opened the 1.4.0 branch.
+
+nxproxy-1.3.2-1
+
+- Opened the 1.3.2 branch.
+
+nxproxy-1.3.1-2
+
+- Removed the underline characters and added a colon in the
+ title of this ChangeLog to fully comply with format used in
+ the release notices.
+
+nxproxy-1.3.1-1
+
+- Opened the 1.3.1 branch.
+
+nxproxy-1.3.0-7
+
+- Added a check on the OS version when running on MacOS/X.
+ Versions 10.2 and 10.3 differ in the way names are mangled.
+
+- Fixed error detection on dlsym(). The previous code was not
+ able to correctly identify missing symbols.
+
+nxproxy-1.3.0-6
+
+- Modified configure.in to compile under FreeBSD.
+
+nxproxy-1.3.0-5
+
+- Fixed a (further) compilation problem under Cygwin.
+
+nxproxy-1.3.0-4
+
+- New nxproxy is able to load libXcomp by dlopen() under
+ Cygwin. This simplifies both code in Main.c and the
+ configure.in script.
+
+- Changed configure.in to not link with -mwindows under
+ Cygwin. Linking with -mwindows prevented stderr to be
+ correctly output when running nxproxy on a console.
+
+nxproxy-1.3.0-3
+
+- Changed configure.in to first check for nx-X11 includes
+ and libraries. Added "/usr/openwin/bin/makedepend" to
+ path searched for the executable.
+
+nxproxy-1.3.0-2
+
+- Small cleanup in configure.in. A new configure script has
+ been generated using autoconf-2.57-3.
+
+nxproxy-1.3.0-1
+
+- Updated internal version, so this release tries to load
+ libXcomp version 1.3.0.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxproxy_README b/doc/_attic_/NoMachine_documentation_files/nxproxy_README
new file mode 100644
index 000000000..8f95d9f3f
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxproxy_README
@@ -0,0 +1,14 @@
+README
+------
+
+1. To compile:
+
+ > tar zxvf nxproxy-X.Y.Z-N.tar.gz
+ > cd nxproxy
+ > ./configure
+ > make
+
+ You'll have to run gmake under Solaris.
+
+2. The 'make install' target is not currently supported
+ in the Makefile, but it should be simple to fix.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxproxy_README-IPAQ b/doc/_attic_/NoMachine_documentation_files/nxproxy_README-IPAQ
new file mode 100644
index 000000000..7a8a8a958
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxproxy_README-IPAQ
@@ -0,0 +1,27 @@
+README-IPAQ
+-----------
+
+1. Install a cross-compiler for ARM. You can find detailed
+ informations at:
+
+ http://www.ailis.de/~k/knowledge/crosscompiling/toolchain.php
+
+ There are also binaries needed to install the cross-compiler.
+
+2. Configure and compile nxproxy using:
+
+ $ ./configure --with-ipaq
+ $ make
+
+ After compilation type:
+
+ $ arm-linux-strip nxproxy
+
+3. You need libXcomp.so to run nxproxy. Be sure you include the
+ library in your LD_LIBRARY_PATH. For example, you can run:
+
+ > export LD_LIBRARY_PATH $HOME/NX/nxcomp
+ > nxproxy -S localhost:8
+
+4. The package nxscripts contains many examples of NX usage that
+ you can modify to suit your needs.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxproxy_README-VALGRIND b/doc/_attic_/NoMachine_documentation_files/nxproxy_README-VALGRIND
new file mode 100644
index 000000000..ce4d513a4
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxproxy_README-VALGRIND
@@ -0,0 +1,39 @@
+README-VALGRIND
+---------------
+
+You can run nxproxy (and nxcomp) under the supervision of valgrind
+(a very good memory debugger) by wrapping nxproxy in the following
+script:
+
+<snip>
+#!/bin/bash
+
+# Enable core dumps.
+
+ulimit -c unlimited
+
+# Set this to directory where nxproxy is located.
+
+NXPROXY_DIR=~/NX/nxproxy
+
+# Set this to directory where valgrind is located.
+
+VALGRIND_DIR=/usr/local/bin
+
+exec ${VALGRIND_DIR}/valgrind -v --leak-check=yes --leak-resolution=high \
+ --show-reachable=yes --show-reachable=yes \
+ --suppressions=${NXPROXY_DIR}/nxproxy.supp \
+ --num-callers=16 --logfile-fd=2 \
+\
+${NXPROXY_DIR}/nxproxy $1 $2 $3 $4 $5 $6 $7 $8 $9
+<snip>
+
+Run the following commands on your shell, right in the place where
+the nxproxy executable is to be placed in your setup:
+
+$ cat >nxproxy
+<copy paste the previous lines here>
+$ chmod a+x nxproxy
+
+Output of valgrind will go on stderr, that is in session file, if
+run in NX environment.