From b38f01092ab65f41fc0a525c46c874a228676f71 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 5 Jul 2016 10:40:11 +0200 Subject: NoMachine documentation files: Move to doc/_attic_/ folder. --- .../NoMachine_documentation_files/nx-X11_CHANGELOG | 1085 ++++ .../nx-X11_programs_Xserver_hw_nxagent_CHANGELOG | 6359 ++++++++++++++++++++ .../NoMachine_documentation_files/nxcomp_CHANGELOG | 3778 ++++++++++++ .../NoMachine_documentation_files/nxcomp_README | 21 + .../nxcomp_README-IPAQ | 21 + .../nxcompext_CHANGELOG | 806 +++ .../NoMachine_documentation_files/nxcompext_README | 15 + .../nxcompshad_CHANGELOG | 404 ++ .../nxproxy_CHANGELOG | 216 + .../NoMachine_documentation_files/nxproxy_README | 14 + .../nxproxy_README-IPAQ | 27 + .../nxproxy_README-VALGRIND | 39 + nx-X11/CHANGELOG | 1085 ---- nx-X11/programs/Xserver/hw/nxagent/CHANGELOG | 6359 -------------------- nxcomp/CHANGELOG | 3778 ------------ nxcomp/README | 21 - nxcomp/README-IPAQ | 21 - nxcompext/CHANGELOG | 806 --- nxcompext/README | 15 - nxcompshad/CHANGELOG | 404 -- nxproxy/CHANGELOG | 216 - nxproxy/README | 14 - nxproxy/README-IPAQ | 27 - nxproxy/README-VALGRIND | 39 - 24 files changed, 12785 insertions(+), 12785 deletions(-) create mode 100644 doc/_attic_/NoMachine_documentation_files/nx-X11_CHANGELOG create mode 100644 doc/_attic_/NoMachine_documentation_files/nx-X11_programs_Xserver_hw_nxagent_CHANGELOG create mode 100644 doc/_attic_/NoMachine_documentation_files/nxcomp_CHANGELOG create mode 100644 doc/_attic_/NoMachine_documentation_files/nxcomp_README create mode 100644 doc/_attic_/NoMachine_documentation_files/nxcomp_README-IPAQ create mode 100644 doc/_attic_/NoMachine_documentation_files/nxcompext_CHANGELOG create mode 100644 doc/_attic_/NoMachine_documentation_files/nxcompext_README create mode 100644 doc/_attic_/NoMachine_documentation_files/nxcompshad_CHANGELOG create mode 100644 doc/_attic_/NoMachine_documentation_files/nxproxy_CHANGELOG create mode 100644 doc/_attic_/NoMachine_documentation_files/nxproxy_README create mode 100644 doc/_attic_/NoMachine_documentation_files/nxproxy_README-IPAQ create mode 100644 doc/_attic_/NoMachine_documentation_files/nxproxy_README-VALGRIND delete mode 100644 nx-X11/CHANGELOG delete mode 100644 nx-X11/programs/Xserver/hw/nxagent/CHANGELOG delete mode 100644 nxcomp/CHANGELOG delete mode 100644 nxcomp/README delete mode 100644 nxcomp/README-IPAQ delete mode 100644 nxcompext/CHANGELOG delete mode 100644 nxcompext/README delete mode 100644 nxcompshad/CHANGELOG delete mode 100644 nxproxy/CHANGELOG delete mode 100644 nxproxy/README delete mode 100644 nxproxy/README-IPAQ delete mode 100644 nxproxy/README-VALGRIND 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 [] to [x]. + +- 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- 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 + #include + + 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: + + +#!/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 + + +Run the following commands on your shell, right in the place where +the nxproxy executable is to be placed in your setup: + +$ cat >nxproxy + +$ chmod a+x nxproxy + +Output of valgrind will go on stderr, that is in session file, if +run in NX environment. diff --git a/nx-X11/CHANGELOG b/nx-X11/CHANGELOG deleted file mode 100644 index ffbbe0a61..000000000 --- a/nx-X11/CHANGELOG +++ /dev/null @@ -1,1085 +0,0 @@ -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/nx-X11/programs/Xserver/hw/nxagent/CHANGELOG b/nx-X11/programs/Xserver/hw/nxagent/CHANGELOG deleted file mode 100644 index 0a82773f4..000000000 --- a/nx-X11/programs/Xserver/hw/nxagent/CHANGELOG +++ /dev/null @@ -1,6359 +0,0 @@ -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 [] to [x]. - -- 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- 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/nxcomp/CHANGELOG b/nxcomp/CHANGELOG deleted file mode 100644 index b0323d4a7..000000000 --- a/nxcomp/CHANGELOG +++ /dev/null @@ -1,3778 +0,0 @@ -ChangeLog: - -nxcomp-3.5.0-2 - -- Fixed TR11H02398. Solved a race condition when creating channels. - -nxcomp-3.5.0-1 - -- Opened the 3.5.0 branch based on nxcomp-3.4.0-7. - -- Updated copyright to year 2011. - -nxcomp-3.4.0-7 - -- Fixed TR03H02334. Modified the UNIX domain socket checks on MacOSX - to be compliant with the standard introduced in OSX 10.6.3. - -nxcomp-3.4.0-6 - -- Solved compilation problems on Solaris. - -nxcomp-3.4.0-5 - -- Solved compilation problems on GCC 4.4. - -nxcomp-3.4.0-4 - -- Added reference to fixed TR02H02325. - -nxcomp-3.4.0-3 - -- Updated copyright to year 2010. - -nxcomp-3.4.0-2 - -- Fixed TR03G02204. Changed the parsing of X authority entries in - order to handle the case where the hostname includes white spaces. - -- Fixed TR02H02325. Bug in PNG decompression on 16bpp displays. - -nxcomp-3.4.0-1 - -- Opened the 3.4.0 branch based on nxcomp-3.3.0-4. - -- Changed version number. - -- Updated copyright to year 2009. - -nxcomp-3.3.0-4 - -- Check if the variable storing the ping time exceeded the maximum - integer value. - -- Recover incorrect sequence number when the proxy is not connected - to an agent. - -nxcomp-3.3.0-3 - -- Removed a condition in ClientChannel that caused a loss in event - sequence numbers. - -nxcomp-3.3.0-2 - -- Updated VERSION. - -nxcomp-3.3.0-1 - -- Opened the 3.3.0 branch based on nxcomp-3.2.0-7. - -nxcomp-3.2.0-7 - -- Solved a compilation problem on GCC 4.3. - -nxcomp-3.2.0-6 - -- Changes considering that unsetenv() returns void on Mac OS X. - -nxcomp-3.2.0-5 - -- Fixed TR03F02024. Assume the launchd unix socket as X socket. - -- Changed the authorization cookie retrieval when using the launchd - socket on MacOSX, in order to wait for the X server start. - -nxcomp-3.2.0-4 - -- Fixed TR03F02026. Unset environment variable LD_LIBRARY_PATH before - calling the exec function running nxclient. - -nxcomp-3.2.0-3 - -- Fix addMsTimestamp() and subMsTimestamp(). Remove the check for - a valid input in diffTimestamp() and diffUsTimestamp(). - -nxcomp-3.2.0-2 - -- Fixed TR12E01973. Now the correct number of bits are used for the - number of points in a X_FillPoly request. - -nxcomp-3.2.0-1 - -- Opened the 3.2.0 branch based on nxcomp-3.1.0-6. - -nxcomp-3.1.0-6 - -- Always use a timeout of 50 ms to update the congestion counter. - -nxcomp-3.1.0-5 - -- Solve the possible deadlock caused by both proxies running out of - tokens at the same time. - -- In ServerProxy::handleCheckDrop() copy the list since the function - can delete the elements. - -nxcomp-3.1.0-4 - -- Classes ProxyReadBuffer and ServerReadBuffer returned an invalid - number of characters to read in the case of a readable() failure. - -- Connections to proxy versions newer than 3.0.0 were not accepted. - -- Reading options from file could fail if options contained spaces - or other characters interrupting the fscanf()'s matching of input. - -- The proxy link could not be flushed if a ping request was replied - after the end of the read loop. - -nxcomp-3.1.0-3 - -- Fixed a compilation warning on GCC 2.95. - -nxcomp-3.1.0-2 - -- Solved TR09E01852. Modified the encoding of the number of rects - in the XSetClipRectangles request. - -nxcomp-3.1.0-1 - -- Opened the 3.1.0 branch based on nxcomp-3.0.0-46. - -nxcomp-3.0.0-46 - -- Fixed TR09E01865 and TR08E01831. Assume the old behavior of compr- - essing the CUPS, SMB, HTTP and Font channels when connected to an - old proxy version. - -nxcomp-3.0.0-45 - -- Retry the fork() 30 times, but only on Cygwin (Sob!). - -nxcomp-3.0.0-44 - -- In the case of an error, try again to fork() after a second, for - a maximum of 5 times. This seems to constitute a valid workaround - to the intermittent fork() failures observed on Windows. - -- Fixed NXTransDestroy() to show the 'broken connection' dialog in - the case of a link failure on the client. - -- Handled the 'terminating' and 'terminated' messages as new proxy - stages. - -- Force all the directories and files created by the library to be - readable only by the user. - -- Don't complain if the shared memory segment can't be initialized - on Windows. - -nxcomp-3.0.0-43 - -- Prevent the reallocation of the read buffer in the proxy and the - agent transport if the buffer was borrowed by an upper layer. - -- Let the house-keeping process remove the cache directories that - are empty and have not be used since more than 30 days. - -- Added the missing destruction of the ZLIB stream used for image - decompression at proxy shutdown. - -nxcomp-3.0.0-42 - -- In handleFastWriteReply(), moved the initialization of the 'next' - pointer inside the '#ifndef __sun' block. This should fix the re- - maining encoding problems on SPARCs. - -nxcomp-3.0.0-41 - -- VMWare virtual machines can have the system timer deadly broken. - In the case of timeout, try to send a ping regardless we are the - client or the server proxy to force a write by the remote. - -- Removed the messages 'Info: Using image cache parameters...' and - 'Info: Using image streaming parameters...' from the session log - if the image cache is not enabled. - -nxcomp-3.0.0-40 - -- Removed the messages 'Info: Shutting down the NX transport' and - 'Info: End of NX transport requested by...' at the session tear - down. - -- Removed the remaining log output. - -nxcomp-3.0.0-39 - -- Don't reset the timer on proxy shutdown. - -nxcomp-3.0.0-38 - -- Don't reinstall the signal handler if the signal was enabled and - the NXTransSignal() action is NX_SIGNAL_FORWARD. - -nxcomp-3.0.0-37 - -- Return a congestion level 9 if the agent channel is in congestion - state. - -- Set the idle timeout (used to update the congestion state) based - on the link type. The timeout is 0 ms with link LAN and 50 ms in - the case of MODEM, with the other values in the between. - -nxcomp-3.0.0-36 - -- Changed the encoding of the RenderCompositeGlyphs requests. Use - a separate cache for X and Y. Send a single bit for offset X and - offset Y if they match the source coordinates. - -- Always use the memcpy() in the handleFastWrite*() on Sun, as the - alternative code doesn't work on SPARC if the buffer is not word - aligned. - -nxcomp-3.0.0-35 - -- Ensure a smooth transition between different congestion states. - If the current congestion counter is greater than the previous, - ramp up the value quickly by taking the current counter. If the - new congestion counter is less than the previous, ramp down the - reported value slowly by calculating the average of the last 8 - updates. Reset the congestion counter to 0 if no token reply is - pending and the proxy is idle until a timeout. - -nxcomp-3.0.0-34 - -- Calculate the current congestion as the average of the last 3 - frames sent. - -nxcomp-3.0.0-33 - -- When sending a X_RenderCompositeGlyph update, send a single bit - if the source X and Y match the values in cache. - -- Save the check on the bytes readable from the proxy descriptor - after the select. - -nxcomp-3.0.0-32 - -- Send the X_GetImage replies uncompressed to better leverage the - stream compression. - -- Before entering in congestion state, force a read to see whether - the remote proxy aborted the connection. - -nxcomp-3.0.0-31 - -- Try to avoid using memcpy() in the channels' handleFastWrite*(). - -- Changed the copyright notices at the beginning of the files that - were referring to NXPROXY to refer to NXCOMP. - -nxcomp-3.0.0-30 - -- Set the agent and proxy descriptors as ready, when appropriate, - also in the case of an interrupt. - -nxcomp-3.0.0-29 - -- On the X server side, read more events from the X server just be- - fore and just after having written some data. On the X client si- - de, apply the same to the proxy link. - -- X11 channels originate a congestion control code as soon as the- - re is some data left from the previous write. - -nxcomp-3.0.0-28 - -- Displaced automatically the "channel unresponsive" and "no data - received from remote" dialogs if the error condition is ceased. - -- Rewritten the channel drain procedure. - -- Tried a different approach to the channel congestion handling. - The X11 channels are not drained after a blocking write but only - if a further write is requested and the channel is still in con- - gestion state. Benchmarks show that this is still sub-optimal, - compared to sending the congestion code immediately also for X11 - channels. See the next version. - -nxcomp-3.0.0-27 - -- Ignored the agent option 'defer'. - -- Dropped support for the 1.4.0 versions. - -- More fixes to support the 1.5.0. - -nxcomp-3.0.0-26 - -- The channel read buffer can inherit the data to be encoded from - the caller, instead of taking it from the transport. This is le- - veraged by the agent channel to save the copy. - -- Ignored the agent option 'clients'. - -- Removed the deprecated code checking the CPU limits. - -- Removed the counters that were duplicated in the Statistics and - the Control classes. - -nxcomp-3.0.0-25 - -- Improved the effectiveness of the caching of the RenderComposite- - Glyphs by using a differential encoding for the length, delta x - and delta y of the first string. - -- Better handle the compatibility between different formats of the - cache files. - -nxcomp-3.0.0-24 - -- Fixed the compatibility problem with the 1.5.0 versions. - -- Removed the constants NXDisplayReadable, NXDisplayFlushable and - NXDisplayCongestion. Now nxcompext has three distinct functions. - -nxcomp-3.0.0-23 - -- Removed support for Rdp, Tight and Hextile packed images decod- - ing since they have been made obsolete by the new NX server. - -- Use the value 0 for the action is_hit and 1 for is_added. This - increases the frequency of zeroes in the encode buffer, giving - better compression. - -- Changed the copyright attribution from Medialogic to NoMachine. - -nxcomp-3.0.0-22 - -- Implemented an alternate encoding reducing the size of the int - caches to 16 elements and transmitting the values in blocks of - 4 bits. Although this encoding reduces the effectiveness of - the differential compression, it allows better compression of - the final stream, resulting in a 10% to 20% gain in all condi- - tions. The new encoding is experimental, as it would make the - 3.0.0 incompatible with all the previous NX versions. Use this - package as a reference for future implementations. - -nxcomp-3.0.0-21 - -- Encode the first two coordinates of a FillPoly message by using - a differential encoding, thus the origin of the polygon is not - included in the checksum. This is aimed to work in combination - with the agent converting all the FillPoly requests to the rela- - tive coordinate mode. - -- Add the coordinate mode to the checksum of the PolyPoint and Po- - lyLine messages so that it doesn't need to be encoded separately. - -- Disable the streaming for all messages. This saves the encoding - of a boolean for each message that could potentially be streamed. - -- Don't try to match the block size when encoding a value based on - an IntCache. This saves the additional bool in 90% of the cases. - -- Removed support for the former RDP and RFB session types. - -- Due to the above changes, this version is incompatible with the - previous 3.0.0 releases. - -nxcomp-3.0.0-20 - -- Added support for the 'lossy', 'lossless' and 'adaptive' pack me- - thod literals. These values activate the dynamic selection of the - pack method by the agent. - -- Made the 'adaptive' pack method the default for all link types. - -- The default stream compression level is now 6 for link type ISDN, - 4 for ADSL and 1 for WAN. The default data compression level is - always 1, except for LAN that is 0. - -nxcomp-3.0.0-19 - -- Print in the session log the X11 display that the proxy is imper- - sonating or where it is forwarding the connections. - -nxcomp-3.0.0-18 - -- Implemented decoding of the PACK_BITMAP_16M_COLORS pack method. - This is a very simple encoder removing the 4th byte in 32 bits- - per-plane images. This encoder is intended to better leverage - the stream compression on low bandwidth links. - -- Removed the code cleaning the padding bytes in RenderAddGlyphs - and RenderCompositeGlyphs as the operation is now performed in - Xrender. - -- Removed the "Info: Synchronizing local and remote caches." and - "Info: Using remote server '...'." lines from the session log. - -nxcomp-3.0.0-17 - -- Determine the CPU endianess at compile time only on Linux and - Cygwin. - -nxcomp-3.0.0-16 - -- Optimized the memory allocation of the ReadBuffer classes. The - buffers from the Transport classes are used, when possible, to - avoid the copy. - -nxcomp-3.0.0-15 - -- Reworked the code dealing with the channel congestion control - messages for increased efficiency. - -- Removed the pending_ flag from the proxy and channel class mem- - bers. If needed, the classes will query the transport buffers - to see whether there is data pending. - -- Removed the additional parameter from NXTransFlush(). - -- The proxy doesn't issue anymore a sync control message on a X - reply. Anyway it will respond to the request for compatibility - with older versions. - -- Removed the dynamic selection of the encoding method for the - X_QueryColors request and X_ListFonts, X_QueryColors, X_Query- - Font replies. Now all of them use the differential encoding to - better leverage the stream compression. - -- Fixed to build on SUNs where we don't have endian.h. - -nxcomp-3.0.0-14 - -- When handling partial proxy messages, don't try to determine how - many bytes still need to be read if the ZLIB stream compression - is enabled. - -- If a message can't be located, the ReadBuffer class checks if it - is possible to consume the data already in the transport buffer. - -- Optimize the MD5 routines by determining the CPU endianess at - compile time. - -- Force Drawable and GContext to be CARD32 in NXproto.h. - -nxcomp-3.0.0-13 - -- Changed the semantic of the NXDisplayFlushHandler callback. The - function is called when new data is sent to the remote proxy or, - with a 0 length, upon receiving a new token reply, so that the - agent can update its congestion state. - -- Added the NXTransCongestion() function. It returns a value bet- - ween 0 and 9 indicating the congestion level based on the tokens - remaining. A value of 9 means that the link is congested and no - further data can be sent. - -- Removed the congestion and synchronization callbacks. They are - superseded by the new NXTransCongestion() implementation. - -nxcomp-3.0.0-12 - -- Send the token replies at the end of the encode loop instead of - flushing the buffer immediately. - -- Fixed TR05E01687. Correctly detect CTRL-ALT-SHIFT-ESC keystrokes. - -- Renamed the option 'block' as 'tile'. - -- Ignored the option 'menu', targeting the X11 agent. - -nxcomp-3.0.0-11 - -- Removed the 'interactive' attribute from generic channels. We now - use the 'prioritized' attribute which yields the same result. - -- Simplified the channels' read loop by always reading only once. - -- The channels flush the link as soon as the token is exceeded even - if the flush policy is set to deferred. - -- Reserved more cache memory for the images when running a shadow - session. - -nxcomp-3.0.0-10 - -- Added the NXDisplayWriteHandler callback definition. - -- Removed the code that forced the proxy to retain in the cache the - images referenced at session startup. - -- Disabled the persistent image cache since this is not supported - by the current agent. This will save the overhead caused by the - image house-keeping process. - -nxcomp-3.0.0-9 - -- Fixed a cast problem in GetBytesReadable(). - -nxcomp-3.0.0-8 - -- Added the NXTransTime() utility. It return the time in milliseconds - elapsed since the last call to the same function. Useful for bench- - marking the Xlib layer. - -- Ignored the option 'block' targeting the X11 agent. - -nxcomp-3.0.0-7 - -- Ignored the options 'shadow', 'shadowmode' targeting the X11 agent. - -- Added the session type 'shadow'. - -nxcomp-3.0.0-6 - -- Fixed TR08D01484. Fixed a bug in the cleanup of the RenderAddGlyphs - messages. We clean up only the glyphs with depth 8, width greater - than 1 and pixmap byte pad 4. - -- Added file COPYING. - -nxcomp-3.0.0-5 - -- Updated the copyright notices to the current year. - -nxcomp-3.0.0-4 - -- Imported changes up to nxcomp-2.1.0-6. - -- Fixed TR12D01563. Changed the configure script to always build the - library with the -fPIC option. This is related to the way SELinux - works. - -- Fixed the dependency from local endianess for 16-bit color RDP un- - packing functions. This caused wrong colors to be displayed when the - proxy and the X server were running on two separate machines having - different endianess. - -- Fixed TR10D01523. The Channel::handleDrain() method now accounts - for the fact that agent connections can't be drained. - -- Changed the Tight and Hextile decoding functions to use the X ser- - ver's byte order. - -nxcomp-3.0.0-3 - -- Changed the main loop to handle the 3.0.0 version. - -nxcomp-3.0.0-2 - -- Updated the file VERSION. - -nxcomp-3.0.0-1 - -- Opened the 3.0.0 branch based on nxcomp-2.0.0-81. - -nxcomp-2.0.0-81 - -- Fixed the dependency from local endianess for JPEG and PNG decomp- - ression functions. This caused wrong colors to be displayed when - the proxy and the X server were running on two separate machines - having different endianess. - -- Fixed the number of entries in the handleColormap() function. - -nxcomp-2.0.0-80 - -- Fixed TR06D01404. Removed the warning issued when calling the - AgentTransport::drain() method. - -nxcomp-2.0.0-79 - -- Updated copyright to year 2006. - -nxcomp-2.0.0-78 - -- Fixed a bug in the cleanup of the RenderAddGlyphs messages. - -- Minor improvements to the encoding of the RenderCompositeGlyphs - and RenderComposite requests. - -- Added 'client' to the list of the ignored options. - -nxcomp-2.0.0-77 - -- Added cleanup of the padding bytes in the RenderCompositeGlyphs - and RenderAddGlyphs requests. - -nxcomp-2.0.0-76 - -- Before adding the frame's bytes to the tokens, the frame length - is normalized based on the stream compression ratio of the last - frame sent. This avoids entering the drain loop too early when - the data is highly compressible. - -- Moved the render messages' private data in a union to reduce the - footprint of the render store. - -nxcomp-2.0.0-75 - -- The action performed on the remote message store and the affected - position are encoded as a single value. This saves approximately - 1 bit per each message. - -- Created more Compat classes to handle the backward compatibility - with the 1.4.0 and 1.5.0 versions. - -nxcomp-2.0.0-74 - -- Added support for the RLE pack method and made it the default if - the selected link type is LAN. - -- Removed the legacy support for the 'render' option provided at X - server side. - -- When defining LAME in ClientChannel.h, the channel has the chance - of suppressing more opcodes by the handleTaintLameRequest() call. - This is for test purposes. - -nxcomp-2.0.0-73 - -- The X_NXSetUnpackColormap and X_NXSetUnpackAlpha now carry their - data in compressed form. The alpha data is compressed using the - ZLIB RLE encoding, while the colormap data is compressed using - the default ZLIB deflate. - -- Thanks to the above changes, ZLIB data compression of all messa- - ges which do not have a specific encoding is turned off, so that - we can make better use of the final stream compression. - -- Created new message structures to handle the compatibility with - the old proxy versions. When connected to an old proxy version - the agent should use the NXSetUnpackColormapCompat() and NXSet- - UnpackAlpha() interfaces. - -nxcomp-2.0.0-72 - -- Solved a compatibility problem with the 1.X.X versions due to the - new render encodings. - -nxcomp-2.0.0-71 - -- Improvements to X_RenderSetPictureClipRectangles. - -- Fixed handleUnpack() to pass the correct byte order parameter to - to the unpack alpha function. - -- Added the --parent parameter to the client even in pulldown mode. - -- Fixed a deallocation bug in StaticCompressor. - -nxcomp-2.0.0-70 - -- Added compression of X_RenderSetPictureFilter, X_RenderSetPicture- - Transform, X_RenderTrapezoids and X_RenderTriangles. - -nxcomp-2.0.0-69 - -- Changed the format of the persistent cache to accommodate the new - encoding of the render opcodes. Caches from the 1.4.0 and 1.5.0 - should be still loaded and saved correctly when connected to and - old version of the library. - -- Improved the encoding of the X_CreatePixmap, X_ChangeGC, X_Render- - CompositeGlyphs, X_RenderComposite, X_RenderCreateGlyphSet, X_Rend- - erFreePicture and X_RenderCreatePicture messages. Added new classes - to handle the backward compatibility. - -- Made the static compression and decompression code reside in the - same class. - -nxcomp-2.0.0-68 - -- Improved the encoding of the X_RenderCreateGlyphSet and X_Render- - FreeGlyphSet requests. - -nxcomp-2.0.0-67 - -- Modified the following session messages: - - From: "Session: Session starting at..." - To: "Session: Starting session at..." - - From: "Session: Session terminating at..." - To: "Session: Terminating session at..." - -- Improved the encoding of the requests creating or freeing an XID. - This affects X_CreateGC, X_CreateWindow, X_CreatePixmap, X_Render- - CreatePicture, X_FreeGC, X_DestroyWindow, X_FreePixmap, X_Render- - FreePicture. - -- Added 'streaming' and 'backingstore' to the list of options used - by agents. - -- Modified the info messages to print the ZLIB compression paramet- - ers to be more compact and only use two lines. - -nxcomp-2.0.0-66 - -- When part of an agent, the proxy will wait for the NXTransDestroy() - function to initiate the shutdown. - -nxcomp-2.0.0-65 - -- Starting from this version the NX client can control the behaviour - of the client proxy by monitoring the messages marked as "Session". - - At the early initialization the proxy will print: - - "Session: Session starting at '...'. - - The ellipsis here represent the current timestamp, as reported by - the POSIX function ctime(): - - Once the session is running, the proxy will print: - - "Session: Session started at '...'. - - At the time the session is being shut down, the proxy will print: - - "Session: Session terminating at '...'. - - Followed by: - - Session: Session terminated at '...'. - - The message "Info: Starting X protocol compression." is removed, - replaced by the message 'Session started at...' with the same - meaning. - - Once the message 'Session: Session terminated at..." is read from - the output, the client can optionally wait for the proxy process - to complete and terminate with an exit code 0. - -- The "Session" messages are not printed when the proxy is running - on the NX server side, as part of an agent. - -nxcomp-2.0.0-64 - -- Reduced the default token limit from 32 to 24. The synchronizat- - ion callback is triggered by the tokens going below half the li- - mit. - -nxcomp-2.0.0-63 - -- Added -I/usr/include/c++ to makedepend. - -nxcomp-2.0.0-62 - -- The house-keeping process is now started upon the initialization, - if the memory cache is enabled, and, on the X server side, when - the remote actually requested access to the image cache. - -nxcomp-2.0.0-61 - -- Added a NX_HANDLER_SYNCHRONIZATION callback to NXTransHandler(). - The handler is called when the agent can use the available band- - width to synchronize X objects that are corrupted or incomplete. - - The reason can be: - - NX_SYNCHRONIZATION_BEGIN: The synchronizationis is allowed. - - NX_SYNCHRONIZATION_END: The synchronizationis must stop. - - The reason can be determined by agents by using the NXBeginSynch- - ronization and NXEndSynchronization values defined in NXvars.h. - -- Bytes from 14 to 24 in the X_NXGetControlParameters reply report, - respectively, the frame timeout, the ping timeout, the preferred - image split mode and the split size threshold. - -nxcomp-2.0.0-60 - -- The following messages used by the NX client and server have been - changed. The NX client and server should be modified accordingly. - - From: "Info: Shutting down the link and exiting." - To: "Info: Shutting down the NX transport." - - From: "Info: End of session requested by remote proxy." - To: "Info: End of NX transport requested by remote" - - From: "Info: End of session requested by agent termination." - To: "Info: End of NX transport requested by agent." - - From: "Info: End of session requested by signal '...'." - To: "Info: End of NX transport requested by signal '...'." - - From: "Info: Shutting down the link and exiting." - To: "Info: Shutting down the NX transport." - - From: "Info: Waiting for cleanup timeout to complete." - To: "Info: Waiting the cleanup timeout to complete." - - From: "Info: Waiting for watchdog process to complete." - To: "Info: Waiting the watchdog process to complete." - -nxcomp-2.0.0-59 - -- Added more debug information regarding the timing of packets sent - and received. - -- Added the possibility to redirect the log output to a file that can - be later shared with nxssh running in "binder" mode. This is useful - when testing the forwarding of the SSHD connection by nxssh to the - agent. Activated by defining BINDER in Loop.cpp. - -nxcomp-2.0.0-58 - -- Fixed the unpack alpha procedure to only rely on the image's byte - order. - -- Solved the X_PutImage encoding problem introduced in the 2.0.0-56 - version and restored the compatibility with the 1.5.0 version. - -nxcomp-2.0.0-57 - -- Added a NXTransFile() function. It returns the name of the files - used by the proxy for the current session. - - The type parameter can be: - - NX_FILE_SESSION: Usually the file 'session' in the user's session - directory. - - NX_FILE_ERRORS: The file used for the diagnostic output. Usually - the file 'errors' in the session directory. - - NX_FILE_OPTIONS: The file containing the NX options, if any. - - NX_FILE_STATS: The file used for the statistics output. - - The returned string is allocated in static memory. The caller must - copy the string upon returning from the function, without freeing - the pointer. - -- Fixed the PANIC in the handling of the abort split messages. - -- The encode and decode routines may write one byte past the nominal - end of the encode buffer. This additional byte is now included in - the payload. This is actually a bug, but harmless. - -nxcomp-2.0.0-56 - -- Added the X_NXAbortSplit request. It can be used to interrupt the - streaming of all the messages currently in the split store for - the specified resource. Depending if the split store did or did - not contain split messages, the client will receive an immediate - end-split or no-split notification. - -- Removed the split modes NXSplitModeEager and NXSplitModeLazy. The - available modes are now NXSplitModeSync and NXSplitModeAsync. The - mode NXSplitModeAsync replaces the two old modes and is now the - default. Similarly to NXSplitModeEager, it makes the proxy split - only messages that exceed a size threshold, but the threshold is - generally smaller than in the previous versions. - - #define NXSplitModeDefault 0 - #define NXSplitModeAsync 1 - #define NXSplitModeSync 2 - -- Renamed X_NXSplit to X_NXSplitData, X_NXAbortSplit to X_NXSplitEv- - ent. - -- The proxy now enters a drain loop, when in congestion state, and - waits until the decongestion. Also the X channels are drained if - blocked. - -- The select is restarted immediately if only the proxy is selected - and the data read doesn't make a complete message. - -- The size of the shared memory segment used by the X server proxy - is now negotiated at startup and the selected value is printed in - the session log. - -- Added the option 'encrypted'. It tells the local proxy if it is - running as part of a program providing encryption of the point to - point communication. This is useful to determine if the proxy can - block waiting for data or needs to yield to the client to let it - handle the remote connection. - -nxcomp-2.0.0-55 - -- Fixed handleRestart() to correctly send the end-split event only - after the split sequence has been closed by the client. - -- Fixed a possible memory error in the Keeper class occurring if the - image caches were erased while in the middle of a loop. - -nxcomp-2.0.0-54 - -- Added a '--parent' option when running the client in dialog mode. - This is the process id that needs to be signaled in the case the - user chooses to do so. - -nxcomp-2.0.0-53 - -- Solved a bug in the abort split procedure. The procedure assumed - that the split had to be at the head of the list. This may not be - the case if the split was loaded from disk asynchronously, after - a different split with the same checksum was recomposed. - -- By defining STRICT in Loop.cpp, the number of available tokens is - set to 1. This can be used to trigger the congestion more often - than it would possible when testing the software with the default - settings. - -- Added more debug output to the procedures handling the streaming - of the images. - -- Reset the channel's split pending and congestion flags in the fin- - ish procedure. Not doing so caused some additional loops at chan- - nel shutdown. - -- Fixed a bug on Cygwin that prevented the log files to be succes- - sfully reopened when the size limit was exceeded. - -- Failures to write to the agent transport are reported sooner when - the channel is finished. This saves a few more loops at session - shutdown. - -nxcomp-2.0.0-52 - -- Started implementing a new handler to let the agent include arbit- - rary data in the transport statistics. The parameter, in this case, - is a pointer to a pointer to a null terminated string. The pointer - is set at the time the handler is registered. The pointed string - will have to be filled by the agent with its statistics data. For - now, only the interfaces and the stubs exist. - -- Disabled the timestamp cache as it still causes rounding problems - when calculating the current bitrate. - -nxcomp-2.0.0-51 - -- Removed SelectPackMethod(), not used anymore, from Pack.c. - -nxcomp-2.0.0-50 - -- Added the X_NXFinishSplit request. It forces the proxy to comple- - tely transfer all the split messages for the given resource, and - then notify the agent. - -- Fixed the statistics to not account the split bits to the control - token. - -nxcomp-2.0.0-49 - -- Fixed a bug that caused the split timeout to be reset even if a - different channel had splits to send. - -- Removed an error condition that arose when a split operation was - requested by a different channel than the first to connect. The - reason is that an auxiliary channel (like the one created by the - server to store the keyboard configuration) can be the first to - open a connection to the X server, then can come the agent, that - is actually using the NX opcodes. The proxy will now simply print - a debug message. - -- Removed a further error condition that was assumed by the proxy - if a pending flush was detected while no channel was selected for - output. This can actually happen if the channel was dropped and, - in the meanwhile, the user requested the proxy statistics. - -nxcomp-2.0.0-48 - -- Added a 'type' parameter to NXTransFlush(). The new NX_FLUSH_IDLE - type should be used by agents when they have finished handling all - their clients and are going to wait for more input. This is the - case, for example, of the X agent returning from WaitForSomething() - after having set a small timeout to find out if there are clients - ready, or the case of a RDP agent finding that there are no opcodes - to read from the RDP server. The 'idle' flush should be requested - also when the X11 agent is waiting for a split to complete. When - the flag is used, the proxy uses the available bandwidth to encode - more low-priority data, like the payload of images being streamed. - -nxcomp-2.0.0-47 - -- Added a new RGB image encoder. For now the encoder uses a static - Z stream to compress the image data in the destination buffer and - allows the agent to use the simplest encoding by still separating - the alpha channel from the image data. The new encoder can be the - the base for implementing color reduction by dithering or a color- - mapped translation of the image similar to PNG, but without the - PNG overhead and with the colormap being sent to the client using - the NXSetUnpackColormap() opcode. - -- Put the routines implementing static deflating and inflating of - a ZLIB buffer from the Compressor and Decompressor classes to Z.h - and Z.cpp, so that they can be reused by the new RGB encoder. - -nxcomp-2.0.0-46 - -- Fixed a segfault arising when trying to start a child without the - NX transport. - -nxcomp-2.0.0-45 - -- Undefined the MATCH directive. - -nxcomp-2.0.0-44 - -- Changed the encoding of the X_CreatePixmap, X_CreateGC, X_Render- - CreatePicture, X_CreateWindow, RenderCreateGlyphSet.cpp. The Xid - of the drawable is included in the checksum of the X_CreateGC and - X_CreatePixmap message. This leverages the way GC and Pixmaps are - allocated in the X agent to obtain better compression. - -- Removed the code handling the reset of the proxy connection. This - functionality was unused since when the persistence is handled by - the agent. - -- Added a specific section in the statistics output for the render - extension. - -nxcomp-2.0.0-43 - -- Fixed a bug that could have caused the sending of multiple 'end - split' messages for the same split sequence. - -- Added handling of the option 'strict'. - -nxcomp-2.0.0-42 - -- Added a missing channel switch directive when encoding abort split - messages at the server side. This could cause a decoding error on - the client. - -nxcomp-2.0.0-41 - -- Ensured that the link is flushed immediately on the X server side - when important keyboard or mouse activity is detected in input. - -- Implemented a timestamp cache to avoid calling gettimeofday() when - it is enough to use the last timestamp gotten from the system. The - cache can be disabled by undefining CACHE_TIMESTAMP in Timestamp.h. - -nxcomp-2.0.0-40 - -- Added the karma delay field to the X_NXGetControlParameters reply. - -- Solved a bug with the decoding of split messages likely to happen - only when using link type LAN. - -nxcomp-2.0.0-39 - -- Implemented separate flow control for the generic channels and the - image streaming data. - -- Improved the split procedure to load a message from the disk cache - if found after it was originally discarded because locked. - -nxcomp-2.0.0-38 - -- Renamed the 'shmem' option as 'shseg'. The 'shmem' option becomes - specific to the agent and will be used together with 'shpix' option - to indicate if, respectively, the shared memory extension and the - use of the shared pixmaps must be enabled in the agent server. The - new option will be instead used by the proxy to determine the size - of the memory segment shared between the proxy and the X server. - -- Added the 'shmem', 'shpix', 'keyboard' and 'clipboard' to the list - of ignored options. The 'keyboard' option should become a synonym - of 'kbtype'. The 'clipboard' option will tell the NX agent if the - clipboard support should be disabled for security reasons. - -nxcomp-2.0.0-37 - -- Ensured that, when running a raw session, the persistent cache is - loaded and saved only once in the session lifetime. - -- Added the 'product' keyword to the list of recognized options. The - option is ignored by the proxy, but can be used by the client or - server to facilitate the support. - -nxcomp-2.0.0-36 - -- Added the remote version number in the X_NXGetControlParameters - reply. - -- Solved a bug related to the removal of the split stores. - -- Removed the unused code dealing with the flush timeouts. - -nxcomp-2.0.0-35 - -- Added an alert to notify the user about the failure of the XDMCP - session. - -nxcomp-2.0.0-34 - -- The active channels and the agent resources are now stored in a - list container. - -- Added the X_NXFreeSplit request. The request is currently unused - because the split store is freed automatically when it becomes - empty, but can be useful in future if we want to implement other - otpimizations. - -nxcomp-2.0.0-33 - -- There is now a split store for each agent resource. This allows - the proxy to divide the bandwidth among the agent resources. - -- A simple round-robin load-balancing is implemented, dividing the - bandwidth equally among all the split stores. - -- If there is a previous request being streamed for the same res- - ource, cached messages are appended to the split store and then - committed in the original order. This makes possible to stream - the colormap and the alpha channel data even if the split invol- - ves multiple PutImage or PutPackedImage operations in a single - start-split/end-split sequence. - -- Implemented the commit store class. Made the commit store expand - the message in the final buffer, instead of leveraging the mes- - sage store. - -- Channels having a drop command pending are checked before trying - to load or save the cache. This prevents a potential problem with - the protocol violation error that could be reported by the client - side proxy. - -- The current bitrate is now calculated at the time the transport - actually writes the data to the network, not at the time the data - is appended to the transport by the upper layers. The reason is - that the data can be compressed by the stream compressor and so - we can calculate the real bitrate only after having flushed the - ZLIB stream. This fixes the wrong numbers that could be reported - by the statistics in the previous versions. - -nxcomp-2.0.0-32 - -- More progress in the implementation of the new image streaming. - This version has been tested to work when connecting to an 1.5.0 - server. Due to the significant changes in the way the streaming - works in the newer versions, split is never activated by a 2.0.0 - server connecting to a 1.5.0 client. - -- Fixed the NXTransClose() function to check if the fd matches the - NX agent connection. - -- Fixed the includes in Socket.h to compile on Solaris and MacOSX. - -nxcomp-2.0.0-31 - -- Changed the NX transport functions that didn't require a NX fd - parameter to include one. The value can be NX_FD_ANY to signify - any running NX transport. - -nxcomp-2.0.0-30 - -- More progress in the new implementation of image streaming. - -- This version is apparently compatible with the 1.5.0 client but - needs further testing. - -nxcomp-2.0.0-29 - -- Implemented the NXTransHandler() interface and made the proxy - use the callback, when it is installed, instead of the notifi- - cation events. - -- Modified the agent transport to report an EOF condition as soon - as the channel is dropped, instead of reporting the error only - after the proxy shutdown. This allows the agent to handle its - clients while the proxy is handling the grace timeout. - -- Added a test facility to verify if the client and server caches - match at shutdown. - -- More advances in the new implementation of streaming. - -nxcomp-2.0.0-28 - -- Made the session shutdown faster, normally below 1 second. The - grace time is now 500 ms once all channels have been dropped. - -nxcomp-2.0.0-27 - -- The house-keeping process will now run a number of iterations - (currently 100) and then will exit. The proxy will check the - exit code and, if it was requested by the child, will restart - it. This is intended to keep the memory consumption low, as I - noted that after a big number of iterations the performance of - the allocator start to degrade quickly. - -nxcomp-2.0.0-26 - -- Started implementing the NXTransHandler() interface to let the X - application hook a callback and be notified by the proxy when an - event occurs. At the moment only congestion events are supported. - The interface makes possible for the caller to provide a generic - parameter. This parameter is passed back to the handler function. - The parameter is expected to be the Xlib display pointer, given - that the proxy doesn't have access to the Xlib structures. - -- Moved all the internal variables shared between Xlib, nxcompext - and the X server in nxcomp. Declarations and function prototypes - moved to NXvars.h. - -- Removed the NXGetCleanupParameters() and NXGetImageParameters() - interfaces and the remaining references to the unused display - buffer and image cleanup functions. - -- In this version the images streaming functionality is disabled. - Because of that, expect compatibility problems when connecting - to a different nxcomp version. - -nxcomp-2.0.0-25 - -- Forced the end of the session earlier if a shutdown has been re- - quested by the local side but the remote proxy is not responding. - -nxcomp-2.0.0-24 - -- Changed the loop deleting the file items in Keeper to pick the - first element instead of looping through the iterator. - -- More problems with the libstdc++ allocators. During the tests, I - found that the Keeper class can leak industrial amounts of memory. - Valgrind says that the objects that are not freed are the File - items we allocate in collect(). As this looked suspicious, I log- - ged the constructors and destructors and can say that everything - is OK on our side. Unfortunately, by removing the spleeps used - to let the program work silently in background, one can find that - the memory occupation still grows by a MB every few seconds. This - is less a problem on Windows, where the memory occupation remains - almost constant. See the comment on __USE_MALLOC below. - -- Increased the maximum size of a message that the proxy is allo- - wed to cache to 4MB. This makes possible to cache many replies - (like the X_QueryFont replies) that often exceeded the previous - limit. - -nxcomp-2.0.0-23 - -- Fixed a compatibility problem with the 1.5.0 that arose when - encoding an image with caching and streaming temporarily disa- - bled. - -- Removed the __USE_MALLOC define in Types.h because this is what - the g++ developers want. I'll try to avoid flames and will not - comment on this. - -- Added a --with-use-malloc configure option. This option should - be used when building the release packages on GCC versions that - support it. - -- Started fixing the commit procedure to be able to deal with the - alpha channel. - -nxcomp-2.0.0-22 - -- Prevented channels from being dropped while in the middle of a - read loop. - -- Added a small utility ensuring that the SIGCHLD we receive in - the main loop can be always identified as pertaining to an our - child. - -- Increased the space available for the control messages at the - beginning of the encode buffer and ensured that there is always - enough space for adding a token message, in the case this is - required by the flush procedure. - -- Made all cache files readable only by the user. - -nxcomp-2.0.0-21 - -- Solved a bug in the streaming of images that caused the agent's - clients to never resume when connected to an old proxy version. - -nxcomp-2.0.0-20 - -- Disabled again streaming of the alpha channel data. By enabling - it, the agent randomly fails to repaint the exposed regions. The - reason is to be investigated. - -nxcomp-2.0.0-19 - -- Implemented the split mode NXSplitModeSync. When this mode is - selected, the proxy will not send data for the split at the head - of the list until the remote peer has confirmed that the message - is not available in the image cache. This is going to be useful - in combination with the lazy encoding. - -- Improved the error detection in the case of failure when saving - a recomposed split on disk. - -- Added X_NXSetUnpackAlpha to the set of requests that is possible - to stream. - -nxcomp-2.0.0-18 - -- Enabled the 2.0.0 features that were disabled for test purposes. - -- Changed the LICENSE file to state that the software is only made - available under the version 2 of the GPL. - -nxcomp-2.0.0-17 - -- Introduced a new channel of type 'slave'. Opening a slave channel - should let the proxy fork a new NX client instance (or whatever - is in the NX_SLAVE environment) and pass to it the channel's desc- - riptors. This client instance should authenticate the peer, for - example using the proxy cookie (see how this is implemented in - nxsensor) and then negotiate the service to be used on the channel. - This can be used to implement forwarding of arbitrary ports or ad- - ditional services, like a simple file transfer protocol. For now - the implementation is incomplete. Opening a slave channel will - result in the remote proxy just dropping the channel connection. - -- The proxy is forcibly flushed at the end of each loop. This is a - temporary fix until the agents are updated to flush the proxy link - on demand. - -- Added a new alert to be used in the case the RDP session is closed - and replaced with a new session using the same Windows account. - -- Added a forward declaration of class RenderMinorExtensionStore in - file RenderExtension.h to compile using gcc 4.0.X. - -- Added removal of all .orig file when running a 'make clean'. - -- The code uses again the 2.0.0 style shutdown (the one waiting for - the watchdog process to terminate). - -nxcomp-2.0.0-16 - -- Added the NXTransChannel() interface to allow agents to create - new channels connected to the port that will be forwarded by the - remote proxy. The function returns 1 on success, 0 if the NX - transport is not running, or -1 in the case of error. On success, - the descriptor provided by the caller can be used for all the - subsequent I/O, including selecting the descriptor to check if - I/O is possible. The type parameter not only tells to the proxy - the remote port where the channel has to be connected, but gives - a hint about the type of data that will be carried by the channel, - so that the proxy can optimize the compression and schedule the - traffic on the slow link. - - The type can be: - - NX_CHANNEL_X: The channel will carry X traffic and it - will be connected to the remote X display. - - NX_CHANNEL_CUPS: The channel will carry CUPS/IPP protocol. - - NX_CHANNEL_SMB: The channel will carry SMB/CIFS protocol. - - NX_CHANNEL_MEDIA: The channel will transport audio or other - multimedia data. - - NX_CHANNEL_HTTP: The channel will carry HTTP protocol. - - NX_CHANNEL_FONT: The channel will forward a X font server - connection. - - Only the proxy running at the NX server/X client side will be - able to create a X, CUPS, SMB, MEDIA and HTTP channel. A proxy - running at the NX client/X server side can create font server - connections. The channel creation will also fail if the remote - end was not set up to forward the connection. - - To create a new channel the agent will have to set up a socket- - pair and pass to the proxy one of the socket descriptors. - - Example: - - #include - #include - - 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/nxcomp/README b/nxcomp/README deleted file mode 100644 index f35cce6b5..000000000 --- a/nxcomp/README +++ /dev/null @@ -1,21 +0,0 @@ -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/nxcomp/README-IPAQ b/nxcomp/README-IPAQ deleted file mode 100644 index f9418635c..000000000 --- a/nxcomp/README-IPAQ +++ /dev/null @@ -1,21 +0,0 @@ -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/nxcompext/CHANGELOG b/nxcompext/CHANGELOG deleted file mode 100644 index 941e9b411..000000000 --- a/nxcompext/CHANGELOG +++ /dev/null @@ -1,806 +0,0 @@ -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/nxcompext/README b/nxcompext/README deleted file mode 100644 index 39648e76b..000000000 --- a/nxcompext/README +++ /dev/null @@ -1,15 +0,0 @@ -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/nxcompshad/CHANGELOG b/nxcompshad/CHANGELOG deleted file mode 100644 index 3472a4afe..000000000 --- a/nxcompshad/CHANGELOG +++ /dev/null @@ -1,404 +0,0 @@ -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/nxproxy/CHANGELOG b/nxproxy/CHANGELOG deleted file mode 100644 index e5dff2e4f..000000000 --- a/nxproxy/CHANGELOG +++ /dev/null @@ -1,216 +0,0 @@ -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/nxproxy/README b/nxproxy/README deleted file mode 100644 index 8f95d9f3f..000000000 --- a/nxproxy/README +++ /dev/null @@ -1,14 +0,0 @@ -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/nxproxy/README-IPAQ b/nxproxy/README-IPAQ deleted file mode 100644 index 7a8a8a958..000000000 --- a/nxproxy/README-IPAQ +++ /dev/null @@ -1,27 +0,0 @@ -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/nxproxy/README-VALGRIND b/nxproxy/README-VALGRIND deleted file mode 100644 index ce4d513a4..000000000 --- a/nxproxy/README-VALGRIND +++ /dev/null @@ -1,39 +0,0 @@ -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: - - -#!/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 - - -Run the following commands on your shell, right in the place where -the nxproxy executable is to be placed in your setup: - -$ cat >nxproxy - -$ chmod a+x nxproxy - -Output of valgrind will go on stderr, that is in session file, if -run in NX environment. -- cgit v1.2.3