aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2016-04-19 10:47:43 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2016-04-19 10:47:43 +0200
commit03b65211260ff757b35a367f8936fd5e882ce56c (patch)
tree014155ca365a93687f99ea6492dd2c9d3e80593e
parent2ffe52c5ecb7cf6af111c685eee7f8fcfd1139a9 (diff)
parent5c495241069708e9b1bbf6e57fd49599be540b63 (diff)
downloadnx-libs-03b65211260ff757b35a367f8936fd5e882ce56c.tar.gz
nx-libs-03b65211260ff757b35a367f8936fd5e882ce56c.tar.bz2
nx-libs-03b65211260ff757b35a367f8936fd5e882ce56c.zip
Merge branch 'fcarvajaldev-3.6.x-remove-old-proto-compat' into 3.6.x
-rw-r--r--debian/copyright.in25
-rw-r--r--doc/nxcomp/nxcomp-3.6-drops-compat-code-3.4.x-testing.pdfbin0 -> 73621 bytes
-rw-r--r--nxcomp/ActionCacheCompat.h45
-rw-r--r--nxcomp/ChangeGCCompat.cpp131
-rw-r--r--nxcomp/ChangeGCCompat.h170
-rw-r--r--nxcomp/Channel.cpp186
-rw-r--r--nxcomp/ChannelCache.h7
-rw-r--r--nxcomp/ClientCache.cpp9
-rw-r--r--nxcomp/ClientCache.h20
-rw-r--r--nxcomp/ClientChannel.cpp525
-rw-r--r--nxcomp/ClientChannel.h40
-rw-r--r--nxcomp/ClientProxy.h10
-rw-r--r--nxcomp/ClientStore.cpp24
-rw-r--r--nxcomp/Control.cpp107
-rw-r--r--nxcomp/Control.h50
-rw-r--r--nxcomp/CreateGC.cpp80
-rw-r--r--nxcomp/CreatePixmapCompat.cpp272
-rw-r--r--nxcomp/CreatePixmapCompat.h154
-rw-r--r--nxcomp/DecodeBuffer.cpp95
-rw-r--r--nxcomp/DecodeBuffer.h12
-rw-r--r--nxcomp/EncodeBuffer.cpp67
-rw-r--r--nxcomp/EncodeBuffer.h12
-rw-r--r--nxcomp/FillPoly.cpp16
-rw-r--r--nxcomp/FillPoly.h16
-rw-r--r--nxcomp/GenericChannel.h24
-rw-r--r--nxcomp/GenericReply.cpp7
-rw-r--r--nxcomp/GenericReply.h1
-rw-r--r--nxcomp/GenericRequest.cpp9
-rw-r--r--nxcomp/GenericRequest.h1
-rw-r--r--nxcomp/GetImageReply.cpp7
-rw-r--r--nxcomp/GetImageReply.h1
-rw-r--r--nxcomp/GetPropertyReply.cpp7
-rw-r--r--nxcomp/GetPropertyReply.h1
-rw-r--r--nxcomp/ListFontsReply.cpp7
-rw-r--r--nxcomp/ListFontsReply.h1
-rw-r--r--nxcomp/Loop.cpp264
-rw-r--r--nxcomp/Makefile.in14
-rw-r--r--nxcomp/Message.cpp14
-rw-r--r--nxcomp/Message.h21
-rw-r--r--nxcomp/PolyLine.cpp18
-rw-r--r--nxcomp/PolyPoint.cpp18
-rw-r--r--nxcomp/PositionCacheCompat.cpp45
-rw-r--r--nxcomp/PositionCacheCompat.h41
-rw-r--r--nxcomp/Proxy.cpp280
-rw-r--r--nxcomp/Proxy.h5
-rw-r--r--nxcomp/PutImage.cpp14
-rw-r--r--nxcomp/PutImage.h2
-rw-r--r--nxcomp/PutPackedImage.cpp7
-rw-r--r--nxcomp/PutPackedImage.h1
-rw-r--r--nxcomp/QueryFontReply.cpp7
-rw-r--r--nxcomp/QueryFontReply.h1
-rw-r--r--nxcomp/RenderCompositeCompat.cpp320
-rw-r--r--nxcomp/RenderCompositeCompat.h80
-rw-r--r--nxcomp/RenderCompositeGlyphs.cpp166
-rw-r--r--nxcomp/RenderCompositeGlyphs.h5
-rw-r--r--nxcomp/RenderCompositeGlyphsCompat.cpp602
-rw-r--r--nxcomp/RenderCompositeGlyphsCompat.h80
-rw-r--r--nxcomp/RenderCreateGlyphSetCompat.cpp231
-rw-r--r--nxcomp/RenderCreateGlyphSetCompat.h80
-rw-r--r--nxcomp/RenderCreatePictureCompat.cpp262
-rw-r--r--nxcomp/RenderCreatePictureCompat.h80
-rw-r--r--nxcomp/RenderExtension.cpp258
-rw-r--r--nxcomp/RenderExtension.h8
-rw-r--r--nxcomp/RenderFreePictureCompat.cpp158
-rw-r--r--nxcomp/RenderFreePictureCompat.h80
-rw-r--r--nxcomp/RenderPictureClipCompat.cpp237
-rw-r--r--nxcomp/RenderPictureClipCompat.h80
-rw-r--r--nxcomp/ServerCache.cpp5
-rw-r--r--nxcomp/ServerCache.h10
-rw-r--r--nxcomp/ServerChannel.cpp614
-rw-r--r--nxcomp/ServerChannel.h15
-rw-r--r--nxcomp/ServerProxy.h10
-rw-r--r--nxcomp/SetUnpackAlpha.cpp7
-rw-r--r--nxcomp/SetUnpackAlpha.h4
-rw-r--r--nxcomp/SetUnpackAlphaCompat.cpp250
-rw-r--r--nxcomp/SetUnpackAlphaCompat.h149
-rw-r--r--nxcomp/SetUnpackColormap.cpp7
-rw-r--r--nxcomp/SetUnpackColormap.h3
-rw-r--r--nxcomp/SetUnpackColormapCompat.cpp262
-rw-r--r--nxcomp/SetUnpackColormapCompat.h149
-rw-r--r--nxcomp/ShapeExtension.cpp7
-rw-r--r--nxcomp/ShapeExtension.h1
-rw-r--r--nxcomp/Split.cpp23
-rw-r--r--nxcomp/TextCompressor.cpp77
-rw-r--r--nxcomp/TextCompressor.h49
-rw-r--r--nxcomp/Types.h10
86 files changed, 650 insertions, 6620 deletions
diff --git a/debian/copyright.in b/debian/copyright.in
index 854ab4e73..4ffde0ba0 100644
--- a/debian/copyright.in
+++ b/debian/copyright.in
@@ -923,7 +923,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h
nx-X11/programs/Xserver/hw/nxagent/Windows.h
nxcomp/ActionCache.cpp
nxcomp/ActionCache.h
- nxcomp/ActionCacheCompat.h
nxcomp/Agent.cpp
nxcomp/Agent.h
nxcomp/Alpha.cpp
@@ -938,8 +937,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h
nxcomp/BlockCacheSet.h
nxcomp/ChangeGC.cpp
nxcomp/ChangeGC.h
- nxcomp/ChangeGCCompat.cpp
- nxcomp/ChangeGCCompat.h
nxcomp/ChangeProperty.cpp
nxcomp/ChangeProperty.h
nxcomp/Channel.cpp
@@ -974,8 +971,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h
nxcomp/CreateGC.h
nxcomp/CreatePixmap.cpp
nxcomp/CreatePixmap.h
- nxcomp/CreatePixmapCompat.cpp
- nxcomp/CreatePixmapCompat.h
nxcomp/DecodeBuffer.cpp
nxcomp/DecodeBuffer.h
nxcomp/EncodeBuffer.cpp
@@ -1053,8 +1048,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h
nxcomp/PolyText16.h
nxcomp/PolyText8.cpp
nxcomp/PolyText8.h
- nxcomp/PositionCacheCompat.cpp
- nxcomp/PositionCacheCompat.h
nxcomp/Proxy.cpp
nxcomp/Proxy.h
nxcomp/ProxyReadBuffer.cpp
@@ -1073,20 +1066,12 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h
nxcomp/RenderChangePicture.h
nxcomp/RenderComposite.cpp
nxcomp/RenderComposite.h
- nxcomp/RenderCompositeCompat.cpp
- nxcomp/RenderCompositeCompat.h
nxcomp/RenderCompositeGlyphs.cpp
nxcomp/RenderCompositeGlyphs.h
- nxcomp/RenderCompositeGlyphsCompat.cpp
- nxcomp/RenderCompositeGlyphsCompat.h
nxcomp/RenderCreateGlyphSet.cpp
nxcomp/RenderCreateGlyphSet.h
- nxcomp/RenderCreateGlyphSetCompat.cpp
- nxcomp/RenderCreateGlyphSetCompat.h
nxcomp/RenderCreatePicture.cpp
nxcomp/RenderCreatePicture.h
- nxcomp/RenderCreatePictureCompat.cpp
- nxcomp/RenderCreatePictureCompat.h
nxcomp/RenderExtension.cpp
nxcomp/RenderExtension.h
nxcomp/RenderFillRectangles.cpp
@@ -1095,8 +1080,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h
nxcomp/RenderFreeGlyphSet.h
nxcomp/RenderFreePicture.cpp
nxcomp/RenderFreePicture.h
- nxcomp/RenderFreePictureCompat.cpp
- nxcomp/RenderFreePictureCompat.h
nxcomp/RenderGenericRequest.cpp
nxcomp/RenderGenericRequest.h
nxcomp/RenderMinorExtensionHeaders.h
@@ -1104,8 +1087,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h
nxcomp/RenderMinorExtensionTags.h
nxcomp/RenderPictureClip.cpp
nxcomp/RenderPictureClip.h
- nxcomp/RenderPictureClipCompat.cpp
- nxcomp/RenderPictureClipCompat.h
nxcomp/RenderPictureFilter.cpp
nxcomp/RenderPictureFilter.h
nxcomp/RenderPictureTransform.cpp
@@ -1136,12 +1117,8 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h
nxcomp/SetClipRectangles.h
nxcomp/SetUnpackAlpha.cpp
nxcomp/SetUnpackAlpha.h
- nxcomp/SetUnpackAlphaCompat.cpp
- nxcomp/SetUnpackAlphaCompat.h
nxcomp/SetUnpackColormap.cpp
nxcomp/SetUnpackColormap.h
- nxcomp/SetUnpackColormapCompat.cpp
- nxcomp/SetUnpackColormapCompat.h
nxcomp/SetUnpackGeometry.cpp
nxcomp/SetUnpackGeometry.h
nxcomp/ShapeExtension.cpp
@@ -1154,8 +1131,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h
nxcomp/StaticCompressor.h
nxcomp/Statistics.cpp
nxcomp/Statistics.h
- nxcomp/TextCompressor.cpp
- nxcomp/TextCompressor.h
nxcomp/Timestamp.cpp
nxcomp/Timestamp.h
nxcomp/TranslateCoords.cpp
diff --git a/doc/nxcomp/nxcomp-3.6-drops-compat-code-3.4.x-testing.pdf b/doc/nxcomp/nxcomp-3.6-drops-compat-code-3.4.x-testing.pdf
new file mode 100644
index 000000000..109f96ab7
--- /dev/null
+++ b/doc/nxcomp/nxcomp-3.6-drops-compat-code-3.4.x-testing.pdf
Binary files differ
diff --git a/nxcomp/ActionCacheCompat.h b/nxcomp/ActionCacheCompat.h
deleted file mode 100644
index 8281db826..000000000
--- a/nxcomp/ActionCacheCompat.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef ActionCacheCompat_H
-#define ActionCacheCompat_H
-
-#include "CharCache.h"
-
-class ActionCacheCompat
-{
- friend class EncodeBuffer;
- friend class DecodeBuffer;
-
- public:
-
- ActionCacheCompat()
- {
- slot_ = 0;
- }
-
- ~ActionCacheCompat()
- {
- }
-
- private:
-
- CharCache base_[4];
- unsigned char slot_;
-};
-
-#endif /* ActionCacheCompat_H */
diff --git a/nxcomp/ChangeGCCompat.cpp b/nxcomp/ChangeGCCompat.cpp
deleted file mode 100644
index ca2973774..000000000
--- a/nxcomp/ChangeGCCompat.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#include "ChangeGCCompat.h"
-
-#include "ClientCache.h"
-
-#include "EncodeBuffer.h"
-#include "DecodeBuffer.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-#undef DUMP
-
-//
-// Here are the methods to handle messages' content.
-//
-
-int ChangeGCCompatStore::parseIdentity(Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- ChangeGCCompatMessage *changeGC = (ChangeGCCompatMessage *) message;
-
- //
- // Here is the fingerprint.
- //
-
- changeGC -> gcontext = GetULONG(buffer + 4, bigEndian);
- changeGC -> value_mask = GetULONG(buffer + 8, bigEndian);
-
- //
- // Clear the unused bytes carried in the
- // payload to increase the effectiveness
- // of the caching algorithm.
- //
-
- if ((int) size > dataOffset)
- {
- #ifdef DEBUG
- *logofs << name() << ": Removing unused bytes from the "
- << "data payload.\n" << logofs_flush;
- #endif
-
- changeGC -> value_mask &= (1 << 23) - 1;
-
- unsigned int mask = 0x1;
- unsigned char *source = (unsigned char *) buffer + CHANGEGC_DATA_OFFSET;
- unsigned long value = 0;
-
- for (unsigned int i = 0; i < 23; i++)
- {
- if (changeGC -> value_mask & mask)
- {
- value = GetULONG(source, bigEndian);
-
- value &= (0xffffffff >> (32 - CREATEGC_FIELD_WIDTH[i]));
-
- PutULONG(value, source, bigEndian);
-
- source += 4;
- }
-
- mask <<= 1;
- }
- }
-
- #ifdef DEBUG
- *logofs << name() << ": Parsed Identity for message at "
- << this << ".\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-int ChangeGCCompatStore::unparseIdentity(const Message *message, unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- ChangeGCCompatMessage *changeGC = (ChangeGCCompatMessage *) message;
-
- //
- // Fill all the message's fields.
- //
-
- PutULONG(changeGC -> gcontext, buffer + 4, bigEndian);
- PutULONG(changeGC -> value_mask, buffer + 8, bigEndian);
-
- #ifdef DEBUG
- *logofs << name() << ": Unparsed identity for message at "
- << this << ".\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-void ChangeGCCompatStore::dumpIdentity(const Message *message) const
-{
- #ifdef DUMP
-
- ChangeGCCompatMessage *changeGC = (ChangeGCCompatMessage *) message;
-
- *logofs << name() << ": Identity gcontext " << changeGC -> gcontext
- << ", mask " << changeGC -> value_mask << ", size "
- << changeGC -> size_ << ".\n" << logofs_flush;
- #endif
-}
-
-void ChangeGCCompatStore::identityChecksum(const Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- md5_append(md5_state_, buffer + 4, 8);
-}
diff --git a/nxcomp/ChangeGCCompat.h b/nxcomp/ChangeGCCompat.h
deleted file mode 100644
index 3a7b0c0a9..000000000
--- a/nxcomp/ChangeGCCompat.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef ChangeGCCompat_H
-#define ChangeGCCompat_H
-
-#include "Message.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-#undef DUMP
-
-//
-// Set default values.
-//
-
-#define CHANGEGC_ENABLE_CACHE 1
-#define CHANGEGC_ENABLE_DATA 0
-#define CHANGEGC_ENABLE_SPLIT 0
-#define CHANGEGC_ENABLE_COMPRESS 0
-
-#define CHANGEGC_DATA_LIMIT 144
-#define CHANGEGC_DATA_OFFSET 12
-
-#define CHANGEGC_CACHE_SLOTS 3000
-#define CHANGEGC_CACHE_THRESHOLD 3
-#define CHANGEGC_CACHE_LOWER_THRESHOLD 1
-
-//
-// The message class.
-//
-
-class ChangeGCCompatMessage : public Message
-{
- friend class ChangeGCCompatStore;
-
- public:
-
- ChangeGCCompatMessage()
- {
- }
-
- ~ChangeGCCompatMessage()
- {
- }
-
- //
- // Put here the fields which constitute
- // the 'identity' part of the message.
- //
-
- private:
-
- unsigned int gcontext;
- unsigned int value_mask;
-};
-
-class ChangeGCCompatStore : public MessageStore
-{
- //
- // Constructors and destructors.
- //
-
- public:
-
- ChangeGCCompatStore() : MessageStore()
- {
- enableCache = CHANGEGC_ENABLE_CACHE;
- enableData = CHANGEGC_ENABLE_DATA;
- enableSplit = CHANGEGC_ENABLE_SPLIT;
- enableCompress = CHANGEGC_ENABLE_COMPRESS;
-
- dataLimit = CHANGEGC_DATA_LIMIT;
- dataOffset = CHANGEGC_DATA_OFFSET;
-
- cacheSlots = CHANGEGC_CACHE_SLOTS;
- cacheThreshold = CHANGEGC_CACHE_THRESHOLD;
- cacheLowerThreshold = CHANGEGC_CACHE_LOWER_THRESHOLD;
-
- messages_ -> resize(cacheSlots);
-
- for (T_messages::iterator i = messages_ -> begin();
- i < messages_ -> end(); i++)
- {
- *i = NULL;
- }
-
- temporary_ = NULL;
- }
-
- virtual ~ChangeGCCompatStore()
- {
- for (T_messages::iterator i = messages_ -> begin();
- i < messages_ -> end(); i++)
- {
- destroy(*i);
- }
-
- destroy(temporary_);
- }
-
- virtual const char *name() const
- {
- return "ChangeGCCompat";
- }
-
- virtual unsigned char opcode() const
- {
- return X_ChangeGC;
- }
-
- virtual unsigned int storage() const
- {
- return sizeof(ChangeGCCompatMessage);
- }
-
- //
- // Message handling methods.
- //
-
- public:
-
- virtual Message *create() const
- {
- return new ChangeGCCompatMessage();
- }
-
- virtual Message *create(const Message &message) const
- {
- return new ChangeGCCompatMessage((const ChangeGCCompatMessage &) message);
- }
-
- virtual void destroy(Message *message) const
- {
- delete (ChangeGCCompatMessage *) message;
- }
-
- virtual int parseIdentity(Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual int unparseIdentity(const Message *message, unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual void identityChecksum(const Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual void dumpIdentity(const Message *message) const;
-};
-
-#endif /* ChangeGCCompat_H */
diff --git a/nxcomp/Channel.cpp b/nxcomp/Channel.cpp
index 71b556b0d..93efa6343 100644
--- a/nxcomp/Channel.cpp
+++ b/nxcomp/Channel.cpp
@@ -386,16 +386,14 @@ int Channel::handleDecode(DecodeBuffer &decodeBuffer, ChannelCache *channelCache
if (store -> enableSplit == 1)
{
- if (control -> isProtoStep7() == 1)
- {
- #ifdef DEBUG
- *logofs << "handleDecode: " << store -> name()
- << ": Checking if the message was split.\n"
- << logofs_flush;
- #endif
+ // Since ProtoStep7 (#issue 108)
+ #ifdef DEBUG
+ *logofs << "handleDecode: " << store -> name()
+ << ": Checking if the message was split.\n"
+ << logofs_flush;
+ #endif
- decodeBuffer.decodeBoolValue(split);
- }
+ decodeBuffer.decodeBoolValue(split);
if (split == 1)
{
@@ -537,16 +535,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe
if (control -> LocalDeltaCompression == 0 ||
enableCache_ == 0 || store -> enableCache == 0)
{
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeActionValue(is_discarded,
- store -> lastActionCache);
- }
- else
- {
- encodeBuffer.encodeActionValueCompat(is_discarded,
- store -> lastActionCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeActionValue(is_discarded,
+ store -> lastActionCache);
store -> lastAction = is_discarded;
@@ -601,19 +592,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe
store -> lastRemoved = position;
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeActionValue(is_removed, store -> lastRemoved,
- store -> lastActionCache);
- }
- else
- {
- encodeBuffer.encodeActionValueCompat(is_removed,
- store -> lastActionCacheCompat);
-
- encodeBuffer.encodePositionValueCompat(store -> lastRemoved,
- store -> lastRemovedCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeActionValue(is_removed, store -> lastRemoved,
+ store -> lastActionCache);
#ifdef DEBUG
*logofs << "handleEncodeCached: " << store -> name() << ": Going to "
@@ -679,16 +660,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe
<< logofs_flush;
#endif
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeActionValue(is_discarded,
- store -> lastActionCache);
- }
- else
- {
- encodeBuffer.encodeActionValueCompat(is_discarded,
- store -> lastActionCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeActionValue(is_discarded,
+ store -> lastActionCache);
store -> lastAction = is_discarded;
@@ -759,16 +733,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe
<< logofs_flush;
#endif
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeActionValue(is_discarded,
- store -> lastActionCache);
- }
- else
- {
- encodeBuffer.encodeActionValueCompat(is_discarded,
- store -> lastActionCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeActionValue(is_discarded,
+ store -> lastActionCache);
store -> lastAction = is_discarded;
@@ -793,16 +760,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe
cerr << "Warning" << ": Message of size " << store -> plainSize(position)
<< " at position " << position << " is locked.\n";
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeActionValue(is_discarded,
- store -> lastActionCache);
- }
- else
- {
- encodeBuffer.encodeActionValueCompat(is_discarded,
- store -> lastActionCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeActionValue(is_discarded,
+ store -> lastActionCache);
store -> lastAction = is_discarded;
@@ -843,20 +803,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe
store -> lastAdded = position;
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeActionValue(IS_ADDED, store -> lastAdded,
- store -> lastActionCache);
-
- }
- else
- {
- encodeBuffer.encodeActionValueCompat(IS_ADDED,
- store -> lastActionCacheCompat);
-
- encodeBuffer.encodePositionValueCompat(store -> lastAdded,
- store -> lastAddedCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeActionValue(IS_ADDED, store -> lastAdded,
+ store -> lastActionCache);
return 0;
}
@@ -898,19 +847,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe
store -> lastHit = position;
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeActionValue(IS_HIT, store -> lastHit,
- store -> lastActionCache);
- }
- else
- {
- encodeBuffer.encodeActionValueCompat(IS_HIT,
- store -> lastActionCacheCompat);
-
- encodeBuffer.encodePositionValueCompat(store -> lastHit,
- store -> lastHitCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeActionValue(IS_HIT, store -> lastHit,
+ store -> lastActionCache);
//
// Send the field by field differences in
@@ -997,16 +936,9 @@ int Channel::handleDecodeCached(DecodeBuffer &decodeBuffer, ChannelCache *channe
unsigned char action;
unsigned short int position;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeActionValue(action, position,
- store -> lastActionCache);
- }
- else
- {
- decodeBuffer.decodeActionValueCompat(action,
- store -> lastActionCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeActionValue(action, position,
+ store -> lastActionCache);
//
// Clean operations must always come
@@ -1015,15 +947,8 @@ int Channel::handleDecodeCached(DecodeBuffer &decodeBuffer, ChannelCache *channe
while (action == is_removed)
{
- if (control -> isProtoStep7() == 1)
- {
- store -> lastRemoved = position;
- }
- else
- {
- decodeBuffer.decodePositionValueCompat(store -> lastRemoved,
- store -> lastRemovedCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ store -> lastRemoved = position;
#ifdef DEBUG
@@ -1046,16 +971,9 @@ int Channel::handleDecodeCached(DecodeBuffer &decodeBuffer, ChannelCache *channe
store -> remove(store -> lastRemoved, discard_checksum, use_data);
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeActionValue(action, position,
- store -> lastActionCache);
- }
- else
- {
- decodeBuffer.decodeActionValueCompat(action,
- store -> lastActionCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeActionValue(action, position,
+ store -> lastActionCache);
}
//
@@ -1065,15 +983,8 @@ int Channel::handleDecodeCached(DecodeBuffer &decodeBuffer, ChannelCache *channe
if ((T_store_action) action == IS_HIT)
{
- if (control -> isProtoStep7() == 1)
- {
- store -> lastHit = position;
- }
- else
- {
- decodeBuffer.decodePositionValueCompat(store -> lastHit,
- store -> lastHitCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ store -> lastHit = position;
//
// Get data from the cache at given position.
@@ -1139,15 +1050,8 @@ int Channel::handleDecodeCached(DecodeBuffer &decodeBuffer, ChannelCache *channe
}
else if ((T_store_action) action == IS_ADDED)
{
- if (control -> isProtoStep7() == 1)
- {
- store -> lastAdded = position;
- }
- else
- {
- decodeBuffer.decodePositionValueCompat(store -> lastAdded,
- store -> lastAddedCacheCompat);
- }
+ // Since ProtoStep7 (#issue 108)
+ store -> lastAdded = position;
#ifdef DEBUG
*logofs << "handleDecodeCached: " << store -> name()
@@ -2037,12 +1941,10 @@ Split *Channel::handleSplitCommitRemove(int request, int resource, int position)
<< ".\n" << logofs_flush;
#endif
- if ((control -> isProtoStep7() == 1 &&
- (resource != split -> getResource() ||
- request != split -> getRequest() ||
- position != split -> getPosition())) ||
- (request != split -> getRequest() ||
- position != split -> getPosition()))
+ // Since ProtoStep7 (#issue 108)
+ if (resource != split -> getResource() ||
+ request != split -> getRequest() ||
+ position != split -> getPosition())
{
#ifdef PANIC
*logofs << "handleSplitCommitRemove: PANIC! The data in "
diff --git a/nxcomp/ChannelCache.h b/nxcomp/ChannelCache.h
index 7b94893b6..c810a0b96 100644
--- a/nxcomp/ChannelCache.h
+++ b/nxcomp/ChannelCache.h
@@ -19,13 +19,6 @@
#define ChannelCache_H
//
-// Elements in array of caches used in TextCompressor.
-//
-
-const unsigned int CLIENT_TEXT_CACHE_SIZE = 9999;
-const unsigned int SERVER_TEXT_CACHE_SIZE = 9999;
-
-//
// Sizes of optional fields for ConfigureWindow
// request.
//
diff --git a/nxcomp/ClientCache.cpp b/nxcomp/ClientCache.cpp
index 2a82009a3..49dc4ece5 100644
--- a/nxcomp/ClientCache.cpp
+++ b/nxcomp/ClientCache.cpp
@@ -25,7 +25,6 @@ ClientCache::ClientCache() :
changePropertyPropertyCache(16), changePropertyTypeCache(16),
changePropertyData32Cache(16),
- changePropertyTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE),
configureWindowBitmaskCache(4),
@@ -53,17 +52,11 @@ ClientCache::ClientCache() :
imageTextLengthCache(8),
imageTextLastX(0), imageTextLastY(0),
imageTextCacheX(8), imageTextCacheY(8),
- imageTextTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE),
-
- internAtomTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE),
-
- openFontTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE),
polySegmentCacheX(8), polySegmentCacheY(8), polySegmentCacheIndex(0),
polyTextLastX(0), polyTextLastY(0), polyTextCacheX(8),
polyTextCacheY(8), polyTextFontCache(8),
- polyTextTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE),
putImageWidthCache(8), putImageHeightCache(8), putImageLastX(0),
putImageLastY(0), putImageXCache(8), putImageYCache(8),
@@ -107,8 +100,6 @@ ClientCache::ClientCache() :
renderLastId(0),
- renderTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE),
-
renderGlyphXCache(16), renderGlyphYCache(16),
renderGlyphX(0), renderGlyphY(0),
diff --git a/nxcomp/ClientCache.h b/nxcomp/ClientCache.h
index 6702e5b66..9ac263c71 100644
--- a/nxcomp/ClientCache.h
+++ b/nxcomp/ClientCache.h
@@ -26,8 +26,6 @@
#include "XidCache.h"
#include "FreeCache.h"
-#include "TextCompressor.h"
-
#include "ChannelCache.h"
class ClientCache : public ChannelCache
@@ -61,7 +59,6 @@ class ClientCache : public ChannelCache
// General-purpose caches.
//
- CharCache textCache[CLIENT_TEXT_CACHE_SIZE];
IntCache cursorCache;
IntCache colormapCache;
IntCache visualCache;
@@ -85,7 +82,6 @@ class ClientCache : public ChannelCache
IntCache changePropertyPropertyCache;
IntCache changePropertyTypeCache;
IntCache changePropertyData32Cache;
- TextCompressor changePropertyTextCompressor;
//
// ClearArea request.
@@ -188,19 +184,6 @@ class ClientCache : public ChannelCache
unsigned int imageTextLastY;
IntCache imageTextCacheX;
IntCache imageTextCacheY;
- TextCompressor imageTextTextCompressor;
-
- //
- // InternAtom request.
- //
-
- TextCompressor internAtomTextCompressor;
-
- //
- // OpenFont request.
- //
-
- TextCompressor openFontTextCompressor;
//
// PolyFillRectangle request.
@@ -251,7 +234,6 @@ class ClientCache : public ChannelCache
IntCache polyTextCacheY;
IntCache polyTextFontCache;
CharCache polyTextDeltaCache;
- TextCompressor polyTextTextCompressor;
//
// PutImage request.
@@ -398,8 +380,6 @@ class ClientCache : public ChannelCache
IntCache *renderDataCache[16];
- TextCompressor renderTextCompressor;
-
IntCache renderGlyphXCache;
IntCache renderGlyphYCache;
diff --git a/nxcomp/ClientChannel.cpp b/nxcomp/ClientChannel.cpp
index 31d6d125a..813e83bee 100644
--- a/nxcomp/ClientChannel.cpp
+++ b/nxcomp/ClientChannel.cpp
@@ -155,13 +155,6 @@ ClientChannel::ClientChannel(Transport *transport, StaticCompressor *compressor)
splitState_.mode = split_none;
//
- // Disable image streaming if the remote
- // doesn't support our proxy version.
- //
-
- handleSplitEnable();
-
- //
// Number of outstanding tainted replies.
//
@@ -342,10 +335,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
// previous versions.
//
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeValue(inputLength, 8);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeValue(inputLength, 8);
for (unsigned int i = 0; i < inputLength; i++)
{
@@ -364,20 +355,6 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
#endif
priority_++;
-
- //
- // Due to the way the loop was implemented
- // we can't encode multiple messages if we
- // are encoding the first request.
- //
-
- if (control -> isProtoStep7() == 0)
- {
- if (proxy -> handleAsyncInit() < 0)
- {
- return -1;
- }
- }
}
else
{
@@ -512,17 +489,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
const unsigned char *nextSrc = inputMessage + 24;
if (format == 8)
{
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, dataLength);
- }
- else
- {
- clientCache_ -> changePropertyTextCompressor.reset();
- for (unsigned int i = 0; i < dataLength; i++)
- clientCache_ -> changePropertyTextCompressor.
- encodeChar(*nextSrc++, encodeBuffer);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, dataLength);
}
else if (format == 32)
{
@@ -872,18 +840,11 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
break;
}
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeNewXidValue(GetULONG(inputMessage + 4, bigEndian_),
- clientCache_ -> lastId, clientCache_ -> lastIdCache,
- clientCache_ -> gcCache,
- clientCache_ -> freeGCCache);
- }
- else
- {
- encodeBuffer.encodeXidValue(GetULONG(inputMessage + 4,
- bigEndian_), clientCache_ -> gcCache);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeNewXidValue(GetULONG(inputMessage + 4, bigEndian_),
+ clientCache_ -> lastId, clientCache_ -> lastIdCache,
+ clientCache_ -> gcCache,
+ clientCache_ -> freeGCCache);
const unsigned char *nextSrc = inputMessage + 8;
encodeBuffer.encodeXidValue(GetULONG(inputMessage + 8,
@@ -1059,18 +1020,12 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
encodeBuffer.encodeXidValue(GetULONG(inputMessage + 8, bigEndian_),
clientCache_ -> windowCache);
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeNewXidValue(GetULONG(inputMessage + 4, bigEndian_),
- clientCache_ -> lastId, clientCache_ -> lastIdCache,
- clientCache_ -> windowCache,
- clientCache_ -> freeWindowCache);
- }
- else
- {
- encodeBuffer.encodeXidValue(GetULONG(inputMessage + 4, bigEndian_),
- clientCache_ -> windowCache);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeNewXidValue(GetULONG(inputMessage + 4, bigEndian_),
+ clientCache_ -> lastId, clientCache_ -> lastIdCache,
+ clientCache_ -> windowCache,
+ clientCache_ -> freeWindowCache);
+
const unsigned char *nextSrc = inputMessage + 12;
for (unsigned int i = 0; i < 6; i++)
{
@@ -1140,16 +1095,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
unsigned int numPoints = ((inputLength - 16) >> 2);
- if (control -> isProtoStep10() == 1)
- {
- encodeBuffer.encodeCachedValue(numPoints, 16,
- clientCache_ -> fillPolyNumPointsCache, 4);
- }
- else
- {
- encodeBuffer.encodeCachedValue(numPoints, 14,
- clientCache_ -> fillPolyNumPointsCache, 4);
- }
+ // Since ProtoStep10 (#issue 108)
+ encodeBuffer.encodeCachedValue(numPoints, 16,
+ clientCache_ -> fillPolyNumPointsCache, 4);
encodeBuffer.encodeXidValue(GetULONG(inputMessage + 4, bigEndian_),
clientCache_ -> drawableCache);
@@ -1270,16 +1218,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
#endif
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeFreeXidValue(GetULONG(inputMessage + 4, bigEndian_),
- clientCache_ -> freeGCCache);
- }
- else
- {
- encodeBuffer.encodeXidValue(GetULONG(inputMessage + 4, bigEndian_),
- clientCache_ -> gcCache);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeFreeXidValue(GetULONG(inputMessage + 4, bigEndian_),
+ clientCache_ -> freeGCCache);
}
break;
case X_FreePixmap:
@@ -1294,26 +1235,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
#endif
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeFreeXidValue(GetULONG(inputMessage + 4, bigEndian_),
- clientCache_ -> freeDrawableCache);
- }
- else
- {
- unsigned int pixmap = GetULONG(inputMessage + 4, bigEndian_);
- unsigned int diff = pixmap - clientCache_ -> createPixmapLastId;
- if (diff == 0)
- {
- encodeBuffer.encodeBoolValue(1);
- }
- else
- {
- encodeBuffer.encodeBoolValue(0);
- clientCache_ -> createPixmapLastId = pixmap;
- encodeBuffer.encodeValue(diff, 29, 4);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeFreeXidValue(GetULONG(inputMessage + 4, bigEndian_),
+ clientCache_ -> freeDrawableCache);
}
break;
case X_GetAtomName:
@@ -1536,18 +1460,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
encodeBuffer.encodeCachedValue(*nextSrc++, 8,
clientCache_ -> polyTextDeltaCache);
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, textLength);
-
- nextSrc += textLength;
- }
- else
- {
- clientCache_ -> polyTextTextCompressor.reset();
- for (unsigned int i = 0; i < textLength; i++)
- clientCache_ -> polyTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, textLength);
+ nextSrc += textLength;
}
}
encodeBuffer.encodeBoolValue(0);
@@ -1620,18 +1535,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
encodeBuffer.encodeCachedValue(*nextSrc++, 8,
clientCache_ -> polyTextDeltaCache);
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, textLength * 2);
-
- nextSrc += textLength * 2;
- }
- else
- {
- clientCache_ -> polyTextTextCompressor.reset();
- for (unsigned int i = 0; i < textLength * 2; i++)
- clientCache_ -> polyTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, textLength * 2);
+ nextSrc += textLength * 2;
}
}
encodeBuffer.encodeBoolValue(0);
@@ -1692,16 +1598,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
clientCache_ -> imageTextCacheY);
const unsigned char *nextSrc = inputMessage + 16;
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, textLength);
- }
- else
- {
- clientCache_ -> imageTextTextCompressor.reset();
- for (unsigned int j = 0; j < textLength; j++)
- clientCache_ -> imageTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, textLength);
}
break;
case X_ImageText16:
@@ -1759,16 +1657,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
clientCache_ -> imageTextCacheY);
const unsigned char *nextSrc = inputMessage + 16;
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, textLength * 2);
- }
- else
- {
- clientCache_ -> imageTextTextCompressor.reset();
- for (unsigned int j = 0; j < textLength * 2; j++)
- clientCache_ -> imageTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, textLength * 2);
}
break;
case X_InternAtom:
@@ -1800,18 +1690,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
encodeBuffer.encodeBoolValue((unsigned int) inputMessage[1]);
const unsigned char *nextSrc = inputMessage + 8;
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, nameLength);
- }
- else
- {
- clientCache_ -> internAtomTextCompressor.reset();
- for (unsigned int i = 0; i < nameLength; i++)
- {
- clientCache_ -> internAtomTextCompressor.encodeChar(*nextSrc++, encodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, nameLength);
sequenceQueue_.push(clientSequence_, inputOpcode);
@@ -1832,18 +1712,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
encodeBuffer.encodeValue(GetUINT(inputMessage + 4, bigEndian_), 16, 6);
const unsigned char* nextSrc = inputMessage + 8;
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, textLength);
- }
- else
- {
- clientCache_ -> polyTextTextCompressor.reset();
- for (unsigned int i = 0; i < textLength; i++)
- {
- clientCache_ -> polyTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, textLength);
sequenceQueue_.push(clientSequence_, inputOpcode);
@@ -1859,18 +1729,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
29, clientCache_ -> colormapCache);
const unsigned char *nextSrc = inputMessage + 12;
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, textLength);
- }
- else
- {
- clientCache_ -> polyTextTextCompressor.reset();
- for (unsigned int i = 0; i < textLength; i++)
- {
- clientCache_ -> polyTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, textLength);
sequenceQueue_.push(clientSequence_, inputOpcode);
@@ -1900,8 +1760,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
#endif
- if (inputOpcode == X_DestroyWindow && control -> isProtoStep7() == 1)
+ if (inputOpcode == X_DestroyWindow)
{
+ // Since ProtoStep7 (#issue 108)
encodeBuffer.encodeFreeXidValue(GetULONG(inputMessage + 4, bigEndian_),
clientCache_ -> freeWindowCache);
}
@@ -1930,19 +1791,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
clientCache_ -> lastFont = font;
const unsigned char *nextSrc = inputMessage + 12;
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, nameLength);
- }
- else
- {
- clientCache_ -> openFontTextCompressor.reset();
- for (; nameLength; nameLength--)
- {
- clientCache_ -> openFontTextCompressor.
- encodeChar(*nextSrc++, encodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, nameLength);
}
break;
case X_PolyFillRectangle:
@@ -2638,14 +2488,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
unsigned int numRectangles = ((inputLength - 12) >> 3);
- if (control -> isProtoStep9() == 1)
- {
- encodeBuffer.encodeValue(numRectangles, 15, 4);
- }
- else
- {
- encodeBuffer.encodeValue(numRectangles, 13, 4);
- }
+ // Since ProtoStep9 (#issue 108)
+ encodeBuffer.encodeValue(numRectangles, 15, 4);
encodeBuffer.encodeValue((unsigned int) inputMessage[1], 2);
encodeBuffer.encodeXidValue(GetULONG(inputMessage + 4, bigEndian_),
@@ -3544,19 +3388,8 @@ int ClientChannel::handleWrite(const unsigned char *message, unsigned int length
PutUINT(nameLength, outputMessage + 8, bigEndian_);
unsigned char* nextDest = outputMessage + 32;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, nameLength);
- }
- else
- {
- serverCache_ -> getAtomNameTextCompressor.reset();
- for (unsigned int i = 0; i < nameLength; i++)
- {
- *nextDest++ = serverCache_ -> getAtomNameTextCompressor.
- decodeChar(decodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, nameLength);
}
break;
case X_GetGeometry:
@@ -3814,21 +3647,9 @@ int ClientChannel::handleWrite(const unsigned char *message, unsigned int length
decodeBuffer.decodeValue(length, 8);
*nextDest++ = (unsigned char)length;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, length);
-
- nextDest += length;
- }
- else
- {
- serverCache_ -> getPropertyTextCompressor.reset();
- for (; length; length--)
- {
- *nextDest++ = serverCache_ -> getPropertyTextCompressor.
- decodeChar(decodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, length);
+ nextDest += length;
}
handleSave(messageStore, outputMessage, outputLength);
@@ -4243,35 +4064,11 @@ int ClientChannel::handleWrite(const unsigned char *message, unsigned int length
serverCache_ -> visualCache);
PutULONG(visual, outputMessage + 8, bigEndian_);
- if (control -> isProtoStep8() == 0)
- {
- const unsigned char *compressedData = NULL;
- unsigned int compressedDataSize = 0;
+ // Since ProtoStep8 (#issue 108)
+ handleCopy(decodeBuffer, requestOpcode, messageStore ->
+ dataOffset, outputMessage, outputLength);
- int decompressed = handleDecompress(decodeBuffer, requestOpcode, messageStore -> dataOffset,
- outputMessage, outputLength, compressedData,
- compressedDataSize);
- if (decompressed < 0)
- {
- return -1;
- }
- else if (decompressed > 0)
- {
- handleSave(messageStore, outputMessage, outputLength,
- compressedData, compressedDataSize);
- }
- else
- {
- handleSave(messageStore, outputMessage, outputLength);
- }
- }
- else
- {
- handleCopy(decodeBuffer, requestOpcode, messageStore ->
- dataOffset, outputMessage, outputLength);
-
- handleSave(messageStore, outputMessage, outputLength);
- }
+ handleSave(messageStore, outputMessage, outputLength);
}
break;
case X_GetPointerMapping:
@@ -5090,40 +4887,23 @@ int ClientChannel::handleSplit(EncodeBuffer &encodeBuffer, MessageStore *store,
{
#if defined(TEST) || defined(SPLIT)
- if (control -> isProtoStep8() == 1)
- {
- *logofs << "handleSplit: PANIC! SPLIT! Split should "
- << "not be enabled for message " << "OPCODE#"
- << (unsigned int) store -> opcode() << ".\n"
- << logofs_flush;
+ // Since ProtoStep8 (#issue 108)
+ *logofs << "handleSplit: PANIC! SPLIT! Split should "
+ << "not be enabled for message " << "OPCODE#"
+ << (unsigned int) store -> opcode() << ".\n"
+ << logofs_flush;
- HandleCleanup();
- }
+ HandleCleanup();
#endif
//
- // Never split the message if connected to
- // an old proxy version. Also refuse the
- // split if we it is not introduced by a
- // start split.
+ // Refuse the split if it is not introduced
+ // by a start split.
//
- if (control -> isProtoStep7() == 0)
- {
- #if defined(TEST) || defined(SPLIT)
- *logofs << "handleSplit: SPLIT! Ignoring the split with "
- << "an old proxy version.\n" << logofs_flush;
- #endif
-
- if (action == IS_ADDED || action == is_discarded)
- {
- encodeBuffer.encodeBoolValue(0);
- }
-
- return 0;
- }
- else if (splitState_.resource == nothing || enableSplit_ == 0)
+ // Since ProtoStep7 (#issue 108)
+ if (splitState_.resource == nothing || enableSplit_ == 0)
{
#if defined(TEST) || defined(SPLIT)
*logofs << "handleSplit: SPLIT! Nothing to do for message "
@@ -5875,16 +5655,7 @@ int ClientChannel::handleSplitEvent(DecodeBuffer &decodeBuffer)
<< strMsTimestamp() << ".\n" << logofs_flush;
#endif
- if (control -> isProtoStep7() == 0)
- {
- #ifdef PANIC
- *logofs << "handleSplitEvent: PANIC! The split can't "
- << "be aborted when connected to an old "
- << "proxy version.\n" << logofs_flush;
- #endif
-
- HandleCleanup();
- }
+ // Since ProtoStep7 (#issue 108)
//
// Decode the information about the
@@ -6512,146 +6283,6 @@ int ClientChannel::handleRestart(T_sequence_mode mode, int resource)
return 1;
}
-int ClientChannel::handleTaintCacheRequest(unsigned char &opcode, const unsigned char *&buffer,
- unsigned int &size)
-{
- #ifdef TEST
- *logofs << "handleTaintCacheRequest: Tainting cache request "
- << "for FD#" << fd_ << ".\n" << logofs_flush;
- #endif
-
- //
- // The save and load flags would affect
- // the decoding side but the decoding
- // side doesn't support the request.
- //
-
- enableCache_ = *(buffer + 4);
- enableSplit_ = *(buffer + 5);
-
- handleSplitEnable();
-
- #ifdef TEST
- *logofs << "handleTaintCacheRequest: Set cache parameters to "
- << "cache " << enableCache_ << " split " << enableSplit_
- << " load " << enableLoad_ << " save " << enableSave_
- << ".\n" << logofs_flush;
- #endif
-
- //
- // Taint the request to a X_NoOperation.
- //
-
- opcode = X_NoOperation;
-
- return 0;
-}
-
-int ClientChannel::handleTaintFontRequest(unsigned char &opcode, const unsigned char *&buffer,
- unsigned int &size)
-{
- //
- // The remote end doesn't support this
- // request so generate an empty reply
- // at the local side.
- //
-
- #ifdef TEST
- *logofs << "handleTaintFontRequest: Suppressing font "
- << "request for FD#" << fd_ << ".\n"
- << logofs_flush;
- #endif
-
- //
- // The client sequence number has not
- // been incremented yet in the loop.
- //
-
- unsigned int sequence = (clientSequence_ + 1) & 0xffff;
-
- #ifdef TEST
- *logofs << "handleTaintFontRequest: Opcode is " << (unsigned) opcode
- << " expected client sequence is " << sequence
- << ".\n" << logofs_flush;
- #endif
-
- unsigned char *reply = writeBuffer_.addMessage(36);
-
- *(reply + 0) = X_Reply;
-
- PutUINT(sequence, reply + 2, bigEndian_);
-
- PutULONG(1, reply + 4, bigEndian_);
-
- //
- // Set the length of the returned
- // path to 0.
- //
-
- *(reply + 32) = 0;
-
- //
- // Save the sequence number, not incremented
- // yet, we used to auto-generate this reply.
- //
-
- lastSequence_ = clientSequence_ + 1;
-
- #ifdef TEST
- *logofs << "handleTaintFontRequest: Registered " << lastSequence_
- << " as last auto-generated sequence number.\n"
- << logofs_flush;
- #endif
-
- //
- // Taint the request to a X_NoOperation.
- //
-
- opcode = X_NoOperation;
-
- if (handleFlush(flush_if_any) < 0)
- {
- return -1;
- }
-
- return 1;
-}
-
-int ClientChannel::handleTaintSplitRequest(unsigned char &opcode, const unsigned char *&buffer,
- unsigned int &size)
-{
- #ifdef TEST
-
- if (opcode == opcodeStore_ -> abortSplit)
- {
- *logofs << "handleTaintSplitRequest: Tainting abort split "
- << "request for FD#" << fd_ << ".\n"
- << logofs_flush;
- }
- else if (opcode == opcodeStore_ -> finishSplit)
- {
- *logofs << "handleTaintSplitRequest: Tainting finish split "
- << "request for FD#" << fd_ << ".\n"
- << logofs_flush;
- }
- else
- {
- *logofs << "handleTaintSplitRequest: Tainting free split "
- << "request for FD#" << fd_ << ".\n"
- << logofs_flush;
- }
-
- #endif
-
- //
- // Taint the request to a X_NoOperation.
- //
-
- opcode = X_NoOperation;
-
- return 1;
-}
-
int ClientChannel::handleTaintLameRequest(unsigned char &opcode, const unsigned char *&buffer,
unsigned int &size)
{
@@ -7485,12 +7116,12 @@ int ClientChannel::handleFastReadRequest(EncodeBuffer &encodeBuffer, const unsig
// All the NX requests are handled in the
// main message loop. The X_PutImage can
// be handled here only if the split was
- // not requested.
+ // not requested (since ProtoStep7 #issue 108).
//
if ((opcode >= X_NXFirstOpcode && opcode <= X_NXLastOpcode) ||
- (control -> isProtoStep7() == 1 && opcode == X_PutImage &&
- splitState_.resource != nothing) || opcode == X_ListExtensions ||
+ (opcode == X_PutImage && splitState_.resource != nothing) ||
+ opcode == X_ListExtensions ||
opcode == X_QueryExtension)
{
return 0;
@@ -7977,8 +7608,6 @@ int ClientChannel::handleCacheRequest(EncodeBuffer &encodeBuffer, const unsigned
enableSave_ = *(buffer + 6);
enableLoad_ = *(buffer + 7);
- handleSplitEnable();
-
#ifdef TEST
*logofs << "handleCacheRequest: Set cache parameters to "
<< " cache " << enableCache_ << " split " << enableSplit_
@@ -8068,11 +7697,9 @@ int ClientChannel::handleStartSplitRequest(EncodeBuffer &encodeBuffer, const uns
// Send the selected resource to the remote.
//
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeCachedValue(splitState_.resource, 8,
- clientCache_ -> resourceCache);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeCachedValue(splitState_.resource, 8,
+ clientCache_ -> resourceCache);
splitState_.mode = (T_split_mode) *(buffer + 4);
@@ -8157,11 +7784,9 @@ int ClientChannel::handleEndSplitRequest(EncodeBuffer &encodeBuffer, const unsig
// Send the selected resource to the remote.
//
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeCachedValue(splitState_.resource, 8,
- clientCache_ -> resourceCache);
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeCachedValue(splitState_.resource, 8,
+ clientCache_ -> resourceCache);
//
// Send the split notification events
diff --git a/nxcomp/ClientChannel.h b/nxcomp/ClientChannel.h
index 9924bb263..5ec55595c 100644
--- a/nxcomp/ClientChannel.h
+++ b/nxcomp/ClientChannel.h
@@ -158,23 +158,6 @@ class ClientChannel : public Channel
int handleTaintRequest(unsigned char &opcode, const unsigned char *&buffer,
unsigned int &size)
{
- if (control -> isProtoStep7() == 0)
- {
- if (opcode == X_NXFreeSplit || opcode == X_NXAbortSplit ||
- opcode == X_NXFinishSplit)
- {
- return handleTaintSplitRequest(opcode, buffer, size);
- }
- else if (opcode == X_NXSetCacheParameters)
- {
- return handleTaintCacheRequest(opcode, buffer, size);
- }
- else if (opcode == X_NXGetFontParameters)
- {
- return handleTaintFontRequest(opcode, buffer, size);
- }
- }
-
if (control -> TaintReplies > 0 &&
opcode == X_GetInputFocus)
{
@@ -190,15 +173,6 @@ class ClientChannel : public Channel
return 0;
}
- int handleTaintCacheRequest(unsigned char &opcode, const unsigned char *&buffer,
- unsigned int &size);
-
- int handleTaintFontRequest(unsigned char &opcode, const unsigned char *&buffer,
- unsigned int &size);
-
- int handleTaintSplitRequest(unsigned char &opcode, const unsigned char *&buffer,
- unsigned int &size);
-
int handleTaintLameRequest(unsigned char &opcode, const unsigned char *&buffer,
unsigned int &size);
@@ -261,20 +235,6 @@ class ClientChannel : public Channel
int handleSplitChecksum(EncodeBuffer &encodeBuffer, T_checksum checksum);
- void handleSplitEnable()
- {
- if (control -> isProtoStep7() == 0)
- {
- #if defined(TEST) || defined(SPLIT)
- *logofs << "handleSplitEnable: WARNING! Disabling split "
- << "with an old proxy version.\n"
- << logofs_flush;
- #endif
-
- enableSplit_ = 0;
- }
- }
-
void handleSplitPending(int resource)
{
if (splitState_.pending == 0)
diff --git a/nxcomp/ClientProxy.h b/nxcomp/ClientProxy.h
index 2b669ba2d..88d345f00 100644
--- a/nxcomp/ClientProxy.h
+++ b/nxcomp/ClientProxy.h
@@ -84,14 +84,8 @@ class ClientProxy : public Proxy
virtual int checkLocalChannelMap(int channelId)
{
- if (control -> isProtoStep7() == 1)
- {
- return ((channelId & control -> ChannelMask) != 0);
- }
- else
- {
- return 1;
- }
+ // Since ProtoStep7 (#issue 108)
+ return ((channelId & control -> ChannelMask) != 0);
}
//
diff --git a/nxcomp/ClientStore.cpp b/nxcomp/ClientStore.cpp
index be0e892b4..d56019258 100644
--- a/nxcomp/ClientStore.cpp
+++ b/nxcomp/ClientStore.cpp
@@ -54,11 +54,6 @@
#include "PutPackedImage.h"
#include "GenericRequest.h"
-#include "ChangeGCCompat.h"
-#include "CreatePixmapCompat.h"
-#include "SetUnpackColormapCompat.h"
-#include "SetUnpackAlphaCompat.h"
-
//
// Set the verbosity level.
//
@@ -111,20 +106,11 @@ ClientStore::ClientStore(StaticCompressor *compressor)
requests_[X_NXSetUnpackGeometry] = new SetUnpackGeometryStore(compressor);
requests_[X_NXPutPackedImage] = new PutPackedImageStore(compressor);
- if (control -> isProtoStep7() == 1)
- {
- requests_[X_ChangeGC] = new ChangeGCStore();
- requests_[X_CreatePixmap] = new CreatePixmapStore();
- requests_[X_NXSetUnpackColormap] = new SetUnpackColormapStore(compressor);
- requests_[X_NXSetUnpackAlpha] = new SetUnpackAlphaStore(compressor);
- }
- else
- {
- requests_[X_ChangeGC] = new ChangeGCCompatStore();
- requests_[X_CreatePixmap] = new CreatePixmapCompatStore();
- requests_[X_NXSetUnpackColormap] = new SetUnpackColormapCompatStore(compressor);
- requests_[X_NXSetUnpackAlpha] = new SetUnpackAlphaCompatStore(compressor);
- }
+ // Since ProtoStep7 (#issue 108)
+ requests_[X_ChangeGC] = new ChangeGCStore();
+ requests_[X_CreatePixmap] = new CreatePixmapStore();
+ requests_[X_NXSetUnpackColormap] = new SetUnpackColormapStore(compressor);
+ requests_[X_NXSetUnpackAlpha] = new SetUnpackAlphaStore(compressor);
for (int i = 0; i < CHANNEL_STORE_RESOURCE_LIMIT; i++)
{
diff --git a/nxcomp/Control.cpp b/nxcomp/Control.cpp
index 062654235..1bf2dbdd2 100644
--- a/nxcomp/Control.cpp
+++ b/nxcomp/Control.cpp
@@ -349,6 +349,14 @@
#define FILE_SIZE_CHECK_TIMEOUT 60000
//
+// Protocol version compatibility values
+//
+
+const int Control::NX_MIN_PROTO_STEP = 10;
+const int Control::NX_MAX_PROTO_STEP = 10;
+const char* const Control::NXPROXY_COMPATIBILITY_VERSION = "3.5.0";
+
+//
// Set defaults for control. They should be what
// you get in case of 'local' connection.
//
@@ -633,11 +641,7 @@ Control::Control()
// time the session is negotiated.
//
- protoStep6_ = 0;
- protoStep7_ = 0;
- protoStep8_ = 0;
- protoStep9_ = 0;
- protoStep10_ = 0;
+ protoStep_ = 0;
}
Control::~Control()
@@ -705,92 +709,27 @@ Control::~Control()
void Control::setProtoStep(int step)
{
- switch (step)
+ if (isValidProtoStep(step))
{
- case 6:
- {
- protoStep6_ = 1;
- protoStep7_ = 0;
- protoStep8_ = 0;
- protoStep9_ = 0;
- protoStep10_ = 0;
-
- break;
- }
- case 7:
- {
- protoStep6_ = 1;
- protoStep7_ = 1;
- protoStep8_ = 0;
- protoStep9_ = 0;
- protoStep10_ = 0;
-
- break;
- }
- case 8:
- {
- protoStep6_ = 1;
- protoStep7_ = 1;
- protoStep8_ = 1;
- protoStep9_ = 0;
- protoStep10_ = 0;
-
- break;
- }
- case 9:
- {
- protoStep6_ = 1;
- protoStep7_ = 1;
- protoStep8_ = 1;
- protoStep9_ = 1;
- protoStep10_ = 0;
-
- break;
- }
- case 10:
- {
- protoStep6_ = 1;
- protoStep7_ = 1;
- protoStep8_ = 1;
- protoStep9_ = 1;
- protoStep10_ = 1;
-
- break;
- }
- default:
- {
- #ifdef PANIC
- *logofs << "Control: PANIC! Invalid protocol step "
- << "with value " << step << ".\n"
- << logofs_flush;
- #endif
-
- HandleCleanup();
- }
+ protoStep_ = step;
+ }
+ else
+ {
+ #ifdef PANIC
+ *logofs << "Control: PANIC! Invalid protocol step "
+ << "with value " << step << ".\n"
+ << logofs_flush;
+ #endif
+
+ HandleCleanup();
}
}
int Control::getProtoStep()
{
- if (protoStep10_ == 1)
- {
- return 10;
- }
- else if (protoStep9_ == 1)
- {
- return 9;
- }
- else if (protoStep8_ == 1)
- {
- return 8;
- }
- else if (protoStep7_ == 1)
- {
- return 7;
- }
- else if (protoStep6_ == 1)
+ if (isValidProtoStep(protoStep_))
{
- return 6;
+ return protoStep_;
}
else
{
diff --git a/nxcomp/Control.h b/nxcomp/Control.h
index 71f357c4a..b3552e091 100644
--- a/nxcomp/Control.h
+++ b/nxcomp/Control.h
@@ -321,6 +321,12 @@ class Control
int CompatVersionMaintenancePatch;
//
+ // Compatibility version for the proxy
+ //
+
+ static const char* const NXPROXY_COMPATIBILITY_VERSION;
+
+ //
// Which unpack methods are implemented in proxy?
//
@@ -713,26 +719,6 @@ class Control
int getProtoStep();
- int isProtoStep7()
- {
- return protoStep7_;
- }
-
- int isProtoStep8()
- {
- return protoStep8_;
- }
-
- int isProtoStep9()
- {
- return protoStep9_;
- }
-
- int isProtoStep10()
- {
- return protoStep10_;
- }
-
private:
//
@@ -746,11 +732,25 @@ class Control
// to the protocol version.
//
- int protoStep6_;
- int protoStep7_;
- int protoStep8_;
- int protoStep9_;
- int protoStep10_;
+ int protoStep_;
+
+ //
+ // Min and max values allowed for protocol step
+ // depending on protocol version compatibility
+ //
+
+ static const int NX_MIN_PROTO_STEP;
+ static const int NX_MAX_PROTO_STEP;
+
+ //
+ // Check the validity of protocol step
+ //
+
+ bool isValidProtoStep(int step)
+ {
+ return ((step >= NX_MIN_PROTO_STEP) && (step <= NX_MAX_PROTO_STEP));
+ }
+
};
#endif /* Control_H */
diff --git a/nxcomp/CreateGC.cpp b/nxcomp/CreateGC.cpp
index f1c10e69b..fab8bba10 100644
--- a/nxcomp/CreateGC.cpp
+++ b/nxcomp/CreateGC.cpp
@@ -146,39 +146,17 @@ void CreateGCStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *me
ClientCache *clientCache = (ClientCache *) channelCache;
- if (control -> isProtoStep7() == 1)
- {
- #ifdef TEST
- *logofs << name() << ": Encoding value " << createGC -> gcontext
- << " as gcontext field.\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeNewXidValue(createGC -> gcontext, clientCache -> lastId,
- clientCache -> lastIdCache, clientCache -> gcCache,
- clientCache -> freeGCCache);
-
- cachedCreateGC -> gcontext = createGC -> gcontext;
- }
- else
- {
- #ifdef TEST
- *logofs << name() << ": Encoding value " << createGC -> drawable
- << " as drawable field.\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeXidValue(createGC -> drawable, clientCache -> drawableCache);
-
- cachedCreateGC -> drawable = createGC -> drawable;
-
- #ifdef TEST
- *logofs << name() << ": Encoding value " << createGC -> gcontext
- << " as gcontext field.\n" << logofs_flush;
- #endif
+ // Since ProtoStep7 (#issue 108)
+ #ifdef TEST
+ *logofs << name() << ": Encoding value " << createGC -> gcontext
+ << " as gcontext field.\n" << logofs_flush;
+ #endif
- encodeBuffer.encodeXidValue(createGC -> gcontext, clientCache -> gcCache);
+ encodeBuffer.encodeNewXidValue(createGC -> gcontext, clientCache -> lastId,
+ clientCache -> lastIdCache, clientCache -> gcCache,
+ clientCache -> freeGCCache);
- cachedCreateGC -> gcontext = createGC -> gcontext;
- }
+ cachedCreateGC -> gcontext = createGC -> gcontext;
}
void CreateGCStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *message,
@@ -190,37 +168,15 @@ void CreateGCStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *me
unsigned int value;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeNewXidValue(value, clientCache -> lastId,
- clientCache -> lastIdCache, clientCache -> gcCache,
- clientCache -> freeGCCache);
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeNewXidValue(value, clientCache -> lastId,
+ clientCache -> lastIdCache, clientCache -> gcCache,
+ clientCache -> freeGCCache);
- createGC -> gcontext = value;
+ createGC -> gcontext = value;
- #ifdef TEST
- *logofs << name() << ": Decoded value " << createGC -> gcontext
- << " as gcontext field.\n" << logofs_flush;
- #endif
- }
- else
- {
- decodeBuffer.decodeXidValue(value, clientCache -> drawableCache);
-
- createGC -> drawable = value;
-
- #ifdef TEST
- *logofs << name() << ": Decoded value " << createGC -> drawable
- << " as drawable field.\n" << logofs_flush;
- #endif
-
- decodeBuffer.decodeXidValue(value, clientCache -> gcCache);
-
- createGC -> gcontext = value;
-
- #ifdef TEST
- *logofs << name() << ": Decoded value " << createGC -> gcontext
- << " as gcontext field.\n" << logofs_flush;
- #endif
- }
+ #ifdef TEST
+ *logofs << name() << ": Decoded value " << createGC -> gcontext
+ << " as gcontext field.\n" << logofs_flush;
+ #endif
}
diff --git a/nxcomp/CreatePixmapCompat.cpp b/nxcomp/CreatePixmapCompat.cpp
deleted file mode 100644
index 6ea346ee1..000000000
--- a/nxcomp/CreatePixmapCompat.cpp
+++ /dev/null
@@ -1,272 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#include "CreatePixmapCompat.h"
-
-#include "ClientCache.h"
-
-#include "EncodeBuffer.h"
-#include "DecodeBuffer.h"
-
-#include "WriteBuffer.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-
-//
-// Constructors and destructors.
-//
-
-CreatePixmapCompatStore::CreatePixmapCompatStore()
-
- : MessageStore()
-{
- enableCache = CREATEPIXMAP_ENABLE_CACHE;
- enableData = CREATEPIXMAP_ENABLE_DATA;
- enableSplit = CREATEPIXMAP_ENABLE_SPLIT;
- enableCompress = CREATEPIXMAP_ENABLE_COMPRESS;
-
- dataLimit = CREATEPIXMAP_DATA_LIMIT;
- dataOffset = CREATEPIXMAP_DATA_OFFSET;
-
- cacheSlots = CREATEPIXMAP_CACHE_SLOTS;
- cacheThreshold = CREATEPIXMAP_CACHE_THRESHOLD;
- cacheLowerThreshold = CREATEPIXMAP_CACHE_LOWER_THRESHOLD;
-
- messages_ -> resize(cacheSlots);
-
- for (T_messages::iterator i = messages_ -> begin();
- i < messages_ -> end(); i++)
- {
- *i = NULL;
- }
-
- temporary_ = NULL;
-}
-
-CreatePixmapCompatStore::~CreatePixmapCompatStore()
-{
- for (T_messages::iterator i = messages_ -> begin();
- i < messages_ -> end(); i++)
- {
- destroy(*i);
- }
-
- destroy(temporary_);
-}
-
-//
-// Here are the methods to handle messages' content.
-//
-
-int CreatePixmapCompatStore::encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer,
- const unsigned int size, int bigEndian,
- ChannelCache *channelCache) const
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeCachedValue(*(buffer + 1), 8,
- clientCache -> depthCache);
-
- encodeBuffer.encodeDiffCachedValue(GetULONG(buffer + 4, bigEndian),
- clientCache -> createPixmapLastId, 29,
- clientCache -> createPixmapIdCache, 4);
-
- encodeBuffer.encodeXidValue(GetULONG(buffer + 8, bigEndian),
- clientCache -> drawableCache);
-
- encodeBuffer.encodeCachedValue(GetUINT(buffer + 12, bigEndian), 16,
- clientCache -> createPixmapXCache, 8);
-
- encodeBuffer.encodeCachedValue(GetUINT(buffer + 14, bigEndian), 16,
- clientCache -> createPixmapYCache, 8);
-
- #ifdef TEST
- *logofs << name() << ": Encoded message. Size is "
- << size << ".\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-int CreatePixmapCompatStore::decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer,
- unsigned int &size, int bigEndian, WriteBuffer *writeBuffer,
- ChannelCache *channelCache) const
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned char cValue;
- unsigned int value;
-
- size = 16;
-
- buffer = writeBuffer -> addMessage(size);
-
- decodeBuffer.decodeCachedValue(cValue, 8,
- clientCache -> depthCache);
-
- *(buffer + 1) = cValue;
-
- decodeBuffer.decodeDiffCachedValue(value,
- clientCache -> createPixmapLastId, 29,
- clientCache -> createPixmapIdCache, 4);
-
- PutULONG(value, buffer + 4, bigEndian);
-
- decodeBuffer.decodeXidValue(value,
- clientCache -> drawableCache);
-
- PutULONG(value, buffer + 8, bigEndian);
-
- decodeBuffer.decodeCachedValue(value, 16,
- clientCache -> createPixmapXCache, 8);
-
- PutUINT(value, buffer + 12, bigEndian);
-
- decodeBuffer.decodeCachedValue(value, 16,
- clientCache -> createPixmapYCache, 8);
-
- PutUINT(value, buffer + 14, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Decoded message. Size is "
- << size << ".\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-int CreatePixmapCompatStore::parseIdentity(Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- CreatePixmapCompatMessage *createPixmap = (CreatePixmapCompatMessage *) message;
-
- createPixmap -> depth = *(buffer + 1);
-
- createPixmap -> id = GetULONG(buffer + 4, bigEndian);
- createPixmap -> drawable = GetULONG(buffer + 8, bigEndian);
-
- createPixmap -> width = GetUINT(buffer + 12, bigEndian);
- createPixmap -> height = GetUINT(buffer + 14, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Parsed identity. Size is "
- << createPixmap -> size_ << " identity is "
- << createPixmap -> i_size_ << ".\n"
- << logofs_flush;
- #endif
-
- return 1;
-}
-
-int CreatePixmapCompatStore::unparseIdentity(const Message *message, unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- CreatePixmapCompatMessage *createPixmap = (CreatePixmapCompatMessage *) message;
-
- *(buffer + 1) = createPixmap -> depth;
-
- PutULONG(createPixmap -> id, buffer + 4, bigEndian);
- PutULONG(createPixmap -> drawable, buffer + 8, bigEndian);
-
- PutUINT(createPixmap -> width, buffer + 12, bigEndian);
- PutUINT(createPixmap -> height, buffer + 14, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Unparsed identity. Size is "
- << createPixmap -> size_ << " identity is "
- << createPixmap -> i_size_ << ".\n"
- << logofs_flush;
- #endif
-
- return 1;
-}
-
-void CreatePixmapCompatStore::dumpIdentity(const Message *message) const
-{
- #ifdef DUMP
-
- #ifdef WARNING
- *logofs << name() << ": WARNING! Dump of identity not implemented.\n"
- << logofs_flush;
- #endif
-
- #endif
-}
-
-void CreatePixmapCompatStore::identityChecksum(const Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- md5_append(md5_state_, buffer + 1, 1);
- md5_append(md5_state_, buffer + 8, 8);
-}
-
-void CreatePixmapCompatStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *message,
- const Message *cachedMessage,
- ChannelCache *channelCache) const
-{
- CreatePixmapCompatMessage *createPixmap = (CreatePixmapCompatMessage *) message;
- CreatePixmapCompatMessage *cachedCreatePixmap = (CreatePixmapCompatMessage *) cachedMessage;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeDiffCachedValue(createPixmap -> id,
- clientCache -> createPixmapLastId, 29,
- clientCache -> createPixmapIdCache, 4);
-
- cachedCreatePixmap -> id = createPixmap -> id;
-
- encodeBuffer.encodeXidValue(createPixmap -> drawable,
- clientCache -> drawableCache);
-
- cachedCreatePixmap -> drawable = createPixmap -> drawable;
-
- #ifdef TEST
- *logofs << name() << ": Encoded update. Size is "
- << createPixmap -> size_ << " identity is "
- << createPixmap -> i_size_ << ".\n"
- << logofs_flush;
- #endif
-}
-
-void CreatePixmapCompatStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *message,
- ChannelCache *channelCache) const
-{
- CreatePixmapCompatMessage *createPixmap = (CreatePixmapCompatMessage *) message;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- decodeBuffer.decodeDiffCachedValue(createPixmap -> id,
- clientCache -> createPixmapLastId, 29,
- clientCache -> createPixmapIdCache, 4);
-
- decodeBuffer.decodeXidValue(createPixmap -> drawable,
- clientCache -> drawableCache);
-
- #ifdef TEST
- *logofs << name() << ": Decoded update. Size is "
- << createPixmap -> size_ << " identity is "
- << createPixmap -> i_size_ << ".\n"
- << logofs_flush;
- #endif
-}
diff --git a/nxcomp/CreatePixmapCompat.h b/nxcomp/CreatePixmapCompat.h
deleted file mode 100644
index e8cf8d99f..000000000
--- a/nxcomp/CreatePixmapCompat.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef CreatePixmapCompat_H
-#define CreatePixmapCompat_H
-
-#include "Message.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-#undef DUMP
-
-//
-// Set default values.
-//
-
-#define CREATEPIXMAP_ENABLE_CACHE 1
-#define CREATEPIXMAP_ENABLE_DATA 0
-#define CREATEPIXMAP_ENABLE_SPLIT 0
-#define CREATEPIXMAP_ENABLE_COMPRESS 0
-
-#define CREATEPIXMAP_DATA_LIMIT 16
-#define CREATEPIXMAP_DATA_OFFSET 16
-
-#define CREATEPIXMAP_CACHE_SLOTS 1000
-#define CREATEPIXMAP_CACHE_THRESHOLD 2
-#define CREATEPIXMAP_CACHE_LOWER_THRESHOLD 1
-
-//
-// The message class.
-//
-
-class CreatePixmapCompatMessage : public Message
-{
- friend class CreatePixmapCompatStore;
-
- public:
-
- CreatePixmapCompatMessage()
- {
- }
-
- ~CreatePixmapCompatMessage()
- {
- }
-
- //
- // Put here the fields which constitute
- // the 'identity' part of the message.
- //
-
- private:
-
- unsigned char depth;
-
- unsigned int id;
- unsigned int drawable;
-
- unsigned short width;
- unsigned short height;
-};
-
-class CreatePixmapCompatStore : public MessageStore
-{
- public:
-
- CreatePixmapCompatStore();
-
- virtual ~CreatePixmapCompatStore();
-
- virtual const char *name() const
- {
- return "CreatePixmapCompat";
- }
-
- virtual unsigned char opcode() const
- {
- return X_CreatePixmap;
- }
-
- virtual unsigned int storage() const
- {
- return sizeof(CreatePixmapCompatMessage);
- }
-
- //
- // Message handling methods.
- //
-
- protected:
-
- virtual Message *create() const
- {
- return new CreatePixmapCompatMessage();
- }
-
- virtual Message *create(const Message &message) const
- {
- return new CreatePixmapCompatMessage((const CreatePixmapCompatMessage &) message);
- }
-
- virtual void destroy(Message *message) const
- {
- delete (CreatePixmapCompatMessage *) message;
- }
-
- virtual int encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer,
- const unsigned int size, int bigEndian,
- ChannelCache *channelCache) const;
-
- virtual int decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer,
- unsigned int &size, int bigEndian, WriteBuffer *writeBuffer,
- ChannelCache *channelCache) const;
-
- virtual int parseIdentity(Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual int unparseIdentity(const Message *message, unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual void updateIdentity(EncodeBuffer &encodeBuffer, const Message *message,
- const Message *cachedMessage,
- ChannelCache *channelCache) const;
-
- virtual void updateIdentity(DecodeBuffer &decodeBuffer, const Message *message,
- ChannelCache *channelCache) const;
-
- virtual void identityChecksum(const Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual void dumpIdentity(const Message *message) const;
-};
-
-#endif /* CreatePixmapCompat_H */
diff --git a/nxcomp/DecodeBuffer.cpp b/nxcomp/DecodeBuffer.cpp
index 077bfdfc0..28c656cb2 100644
--- a/nxcomp/DecodeBuffer.cpp
+++ b/nxcomp/DecodeBuffer.cpp
@@ -34,10 +34,8 @@ DecodeBuffer::DecodeBuffer(const unsigned char *data, unsigned int length)
: buffer_(data), end_(buffer_ + length), nextSrc_(buffer_), srcMask_(0x80)
{
- if (control -> isProtoStep7() == 1)
- {
- end_ = buffer_ + length - DECODE_BUFFER_POSTFIX_SIZE;
- }
+ // Since ProtoStep7 (#issue 108)
+ end_ = buffer_ + length - DECODE_BUFFER_POSTFIX_SIZE;
}
int DecodeBuffer::decodeValue(unsigned int &value, unsigned int numBits,
@@ -277,63 +275,25 @@ int DecodeBuffer::decodeCachedValue(unsigned int &value, unsigned int numBits,
if (index == 2)
{
- if (control -> isProtoStep8() == 1)
- {
- blockSize = cache.getBlockSize(blockSize);
-
- if (decodeValue(value, numBits, blockSize, endOkay))
- {
- cache.insert(value, IntMask[numBits]);
-
- return 1;
- }
+ // Since ProtoStep8 (#issue 108)
+ blockSize = cache.getBlockSize(blockSize);
- #ifdef PANIC
- *logofs << "DecodeBuffer: PANIC! Assertion failed. Error [H] "
- << "in decodeCacheValue() with no value found.\n"
- << logofs_flush;
- #endif
-
- cerr << "Error" << ": Failure decoding data in context [H].\n";
-
- HandleAbort();
- }
- else
+ if (decodeValue(value, numBits, blockSize, endOkay))
{
- unsigned int sameDiff;
-
- decodeBoolValue(sameDiff);
-
- if (sameDiff)
- {
- value = cache.getLastDiff(IntMask[numBits]);
+ cache.insert(value, IntMask[numBits]);
- cache.insert(value, IntMask[numBits]);
-
- return 1;
- }
- else
- {
- blockSize = cache.getBlockSize(blockSize);
-
- if (decodeValue(value, numBits, blockSize, endOkay))
- {
- cache.insert(value, IntMask[numBits]);
-
- return 1;
- }
+ return 1;
+ }
- #ifdef PANIC
- *logofs << "DecodeBuffer: PANIC! Assertion failed. Error [H] "
- << "in decodeCacheValue() with no value found.\n"
- << logofs_flush;
- #endif
+ #ifdef PANIC
+ *logofs << "DecodeBuffer: PANIC! Assertion failed. Error [H] "
+ << "in decodeCacheValue() with no value found.\n"
+ << logofs_flush;
+ #endif
- cerr << "Error" << ": Failure decoding data in context [H].\n";
+ cerr << "Error" << ": Failure decoding data in context [H].\n";
- HandleAbort();
- }
- }
+ HandleAbort();
}
else
{
@@ -665,28 +625,3 @@ void DecodeBuffer::decodeFreeXidValue(unsigned int &value, FreeCache &cache)
decodeCachedValue(value, 29, cache);
}
-void DecodeBuffer::decodePositionValueCompat(short int &value, PositionCacheCompat &cache)
-{
- unsigned int t;
-
- decodeCachedValue(t, 13, *(cache.base_[cache.slot_]));
-
- cache.last_ += t;
- cache.last_ &= 0x1fff;
-
- value = cache.last_;
-
- #ifdef DEBUG
- *logofs << "DecodeBuffer: Decoded position "
- << value << " with base " << cache.slot_
- << ".\n" << logofs_flush;
- #endif
-
- #ifdef DEBUG
- *logofs << "DecodeBuffer: Position block prediction is "
- << (*(cache.base_[cache.slot_])).getBlockSize(13)
- << ".\n" << logofs_flush;
- #endif
-
- cache.slot_ = (value & 0x1f);
-}
diff --git a/nxcomp/DecodeBuffer.h b/nxcomp/DecodeBuffer.h
index 9345f4e23..98f7bf35f 100644
--- a/nxcomp/DecodeBuffer.h
+++ b/nxcomp/DecodeBuffer.h
@@ -27,9 +27,6 @@
#include "OpcodeCache.h"
#include "ActionCache.h"
-#include "ActionCacheCompat.h"
-#include "PositionCacheCompat.h"
-
#define DECODE_BUFFER_OVERFLOW_SIZE 4194304
#define DECODE_BUFFER_POSTFIX_SIZE 1
@@ -99,15 +96,6 @@ class DecodeBuffer
void decodeFreeXidValue(unsigned int &value, FreeCache &cache);
- void decodeActionValueCompat(unsigned char &value, ActionCacheCompat &cache)
- {
- decodeCachedValue(value, 2, cache.base_[cache.slot_]);
-
- cache.slot_ = value;
- }
-
- void decodePositionValueCompat(short int &value, PositionCacheCompat &cache);
-
void decodeTextData(unsigned char *buffer, unsigned int numBytes)
{
decodeMemory(buffer, numBytes);
diff --git a/nxcomp/EncodeBuffer.cpp b/nxcomp/EncodeBuffer.cpp
index 12a57180e..afcf60a9e 100644
--- a/nxcomp/EncodeBuffer.cpp
+++ b/nxcomp/EncodeBuffer.cpp
@@ -261,47 +261,14 @@ void EncodeBuffer::encodeCachedValue(unsigned int value, unsigned int numBits,
// Avoid to encode the additional bool.
//
- if (control -> isProtoStep8() == 1)
- {
- #ifdef DUMP
- *logofs << "EncodeBuffer: Encoded missed int using "
- << diffBits() << " bits out of " << numBits
- << ".\n" << logofs_flush;
- #endif
-
- encodeValue(value, numBits, blockSize);
- }
- else
- {
- if (sameDiff)
- {
- #ifdef DUMP
- *logofs << "EncodeBuffer: Matched difference with block size "
- << cache.getBlockSize(blockSize) << ".\n"
- << logofs_flush;
- #endif
-
- encodeBoolValue(1);
- }
- else
- {
- #ifdef DUMP
- *logofs << "EncodeBuffer: Missed difference with block size "
- << cache.getBlockSize(blockSize) << ".\n"
- << logofs_flush;
- #endif
-
- encodeBoolValue(0);
-
- encodeValue(value, numBits, blockSize);
- }
+ // Since ProtoStep8 (#issue 108)
+ #ifdef DUMP
+ *logofs << "EncodeBuffer: Encoded missed int using "
+ << diffBits() << " bits out of " << numBits
+ << ".\n" << logofs_flush;
+ #endif
- #ifdef DUMP
- *logofs << "EncodeBuffer: Encoded missed int using "
- << diffBits() << " bits out of " << numBits
- << ".\n" << logofs_flush;
- #endif
- }
+ encodeValue(value, numBits, blockSize);
}
}
@@ -454,7 +421,8 @@ unsigned int EncodeBuffer::getLength() const
length++;
}
- if (length > 0 && control -> isProtoStep7() == 1)
+ // Since ProtoStep7 (#issue 108)
+ if (length > 0)
{
return length + ENCODE_BUFFER_POSTFIX_SIZE;
}
@@ -641,20 +609,3 @@ void EncodeBuffer::encodeFreeXidValue(unsigned int value, FreeCache &cache)
{
encodeCachedValue(value, 29, cache);
}
-
-void EncodeBuffer::encodePositionValueCompat(short int value, PositionCacheCompat &cache)
-{
- unsigned int t = (value - cache.last_);
-
- encodeCachedValue(t, 13, *(cache.base_[cache.slot_]));
-
- cache.last_ = value;
-
- #ifdef DEBUG
- *logofs << "EncodeBuffer: Encoded position "
- << value << " with base " << cache.slot_
- << ".\n" << logofs_flush;
- #endif
-
- cache.slot_ = (value & 0x1f);
-}
diff --git a/nxcomp/EncodeBuffer.h b/nxcomp/EncodeBuffer.h
index 9f5ac5352..c7ee0a3b0 100644
--- a/nxcomp/EncodeBuffer.h
+++ b/nxcomp/EncodeBuffer.h
@@ -25,9 +25,6 @@
#include "OpcodeCache.h"
#include "ActionCache.h"
-#include "ActionCacheCompat.h"
-#include "PositionCacheCompat.h"
-
#define ENCODE_BUFFER_DEFAULT_SIZE 16384
//
@@ -117,15 +114,6 @@ class EncodeBuffer
void encodeFreeXidValue(unsigned int value, FreeCache &cache);
- void encodeActionValueCompat(unsigned char value, ActionCacheCompat &cache)
- {
- encodeCachedValue(value, 2, cache.base_[cache.slot_]);
-
- cache.slot_ = value;
- }
-
- void encodePositionValueCompat(short int value, PositionCacheCompat &cache);
-
void encodeTextData(const unsigned char *buffer, unsigned int numBytes)
{
encodeMemory(buffer, numBytes);
diff --git a/nxcomp/FillPoly.cpp b/nxcomp/FillPoly.cpp
index 37df3772b..291cc2a4b 100644
--- a/nxcomp/FillPoly.cpp
+++ b/nxcomp/FillPoly.cpp
@@ -51,8 +51,8 @@ int FillPolyStore::parseIdentity(Message *message, const unsigned char *buffer,
fillPoly -> shape = *(buffer + 12);
fillPoly -> mode = *(buffer + 13);
- if (control -> isProtoStep8() == 1 &&
- size >= (unsigned int) dataOffset)
+ // Since ProtoStep8 (#issue 108)
+ if (size >= (unsigned int) dataOffset)
{
fillPoly -> x_origin = GetUINT(buffer + 16, bigEndian);
fillPoly -> y_origin = GetUINT(buffer + 18, bigEndian);
@@ -85,8 +85,8 @@ int FillPolyStore::unparseIdentity(const Message *message, unsigned char *buffer
*(buffer + 12) = fillPoly -> shape;
*(buffer + 13) = fillPoly -> mode;
- if (control -> isProtoStep8() == 1 &&
- size >= (unsigned int) dataOffset)
+ // Since ProtoStep8 (#issue 108)
+ if (size >= (unsigned int) dataOffset)
{
PutUINT(fillPoly -> x_origin, buffer + 16, bigEndian);
PutUINT(fillPoly -> y_origin, buffer + 18, bigEndian);
@@ -151,8 +151,8 @@ void FillPolyStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *me
cachedFillPoly -> gcontext = fillPoly -> gcontext;
- if (control -> isProtoStep8() == 1 &&
- fillPoly -> size_ >= dataOffset)
+ // Since ProtoStep8 (#issue 108)
+ if (fillPoly -> size_ >= dataOffset)
{
#ifdef TEST
*logofs << name() << ": Encoding value " << fillPoly -> x_origin
@@ -197,8 +197,8 @@ void FillPolyStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *me
<< " as gcontext field.\n" << logofs_flush;
#endif
- if (control -> isProtoStep8() == 1 &&
- fillPoly -> size_ >= dataOffset)
+ // Since ProtoStep8 (#issue 108)
+ if (fillPoly -> size_ >= dataOffset)
{
unsigned int value;
diff --git a/nxcomp/FillPoly.h b/nxcomp/FillPoly.h
index f33968494..d926b6dee 100644
--- a/nxcomp/FillPoly.h
+++ b/nxcomp/FillPoly.h
@@ -40,7 +40,6 @@
#define FILLPOLY_ENABLE_COMPRESS 0
#define FILLPOLY_DATA_LIMIT 512
-#define FILLPOLY_DATA_OFFSET 16
#define FILLPOLY_CACHE_SLOTS 2000
#define FILLPOLY_CACHE_THRESHOLD 3
@@ -98,12 +97,9 @@ class FillPolyStore : public MessageStore
enableCompress = FILLPOLY_ENABLE_COMPRESS;
dataLimit = FILLPOLY_DATA_LIMIT;
- dataOffset = FILLPOLY_DATA_OFFSET;
- if (control -> isProtoStep8() == 1)
- {
- dataOffset = FILLPOLY_DATA_OFFSET_IF_PROTO_STEP_8;
- }
+ // Since ProtoStep8 (#issue 108)
+ dataOffset = FILLPOLY_DATA_OFFSET_IF_PROTO_STEP_8;
cacheSlots = FILLPOLY_CACHE_SLOTS;
cacheThreshold = FILLPOLY_CACHE_THRESHOLD;
@@ -169,11 +165,9 @@ class FillPolyStore : public MessageStore
virtual int identitySize(const unsigned char *buffer, unsigned int size)
{
- unsigned int offset = (control -> isProtoStep8() == 1 ?
- FILLPOLY_DATA_OFFSET_IF_PROTO_STEP_8 :
- FILLPOLY_DATA_OFFSET);
-
- return (size >= offset ? offset : size);
+ // Since ProtoStep8 (#issue 108)
+ return (size >= FILLPOLY_DATA_OFFSET_IF_PROTO_STEP_8 ?
+ FILLPOLY_DATA_OFFSET_IF_PROTO_STEP_8 : size);
}
virtual int parseIdentity(Message *message, const unsigned char *buffer,
diff --git a/nxcomp/GenericChannel.h b/nxcomp/GenericChannel.h
index ba4f1e7e8..10ae794bb 100644
--- a/nxcomp/GenericChannel.h
+++ b/nxcomp/GenericChannel.h
@@ -209,11 +209,7 @@ class CupsChannel : public GenericChannel
virtual int isCompressed()
{
- if (control -> isProtoStep8() == 0)
- {
- return 1;
- }
-
+ // Since ProtoStep8 (#issue 108)
return 0;
}
@@ -252,11 +248,7 @@ class SmbChannel : public GenericChannel
virtual int isCompressed()
{
- if (control -> isProtoStep8() == 0)
- {
- return 1;
- }
-
+ // Since ProtoStep8 (#issue 108)
return 0;
}
@@ -344,11 +336,7 @@ class HttpChannel : public GenericChannel
virtual int isCompressed()
{
- if (control -> isProtoStep8() == 0)
- {
- return 1;
- }
-
+ // Since ProtoStep8 (#issue 108)
return 0;
}
@@ -387,11 +375,7 @@ class FontChannel : public GenericChannel
virtual int isCompressed()
{
- if (control -> isProtoStep8() == 0)
- {
- return 1;
- }
-
+ // Since ProtoStep8 (#issue 108)
return 0;
}
diff --git a/nxcomp/GenericReply.cpp b/nxcomp/GenericReply.cpp
index 9daccc566..f7ffe83dd 100644
--- a/nxcomp/GenericReply.cpp
+++ b/nxcomp/GenericReply.cpp
@@ -45,12 +45,9 @@ GenericReplyStore::GenericReplyStore(StaticCompressor *compressor)
enableCache = GENERICREPLY_ENABLE_CACHE;
enableData = GENERICREPLY_ENABLE_DATA;
enableSplit = GENERICREPLY_ENABLE_SPLIT;
- enableCompress = GENERICREPLY_ENABLE_COMPRESS;
- if (control -> isProtoStep7() == 1)
- {
- enableCompress = GENERICREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7;
- }
+ // Since ProtoStep7 (#issue 108)
+ enableCompress = GENERICREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7;
dataLimit = GENERICREPLY_DATA_LIMIT;
dataOffset = GENERICREPLY_DATA_OFFSET;
diff --git a/nxcomp/GenericReply.h b/nxcomp/GenericReply.h
index de97b86d0..20786a8d2 100644
--- a/nxcomp/GenericReply.h
+++ b/nxcomp/GenericReply.h
@@ -37,7 +37,6 @@
#define GENERICREPLY_ENABLE_CACHE 1
#define GENERICREPLY_ENABLE_DATA 1
#define GENERICREPLY_ENABLE_SPLIT 0
-#define GENERICREPLY_ENABLE_COMPRESS 1
#define GENERICREPLY_DATA_LIMIT 1048576 - 32
#define GENERICREPLY_DATA_OFFSET 32
diff --git a/nxcomp/GenericRequest.cpp b/nxcomp/GenericRequest.cpp
index 40077291b..fa34b89d2 100644
--- a/nxcomp/GenericRequest.cpp
+++ b/nxcomp/GenericRequest.cpp
@@ -45,14 +45,9 @@ GenericRequestStore::GenericRequestStore(StaticCompressor *compressor)
enableCache = GENERICREQUEST_ENABLE_CACHE;
enableData = GENERICREQUEST_ENABLE_DATA;
enableSplit = GENERICREQUEST_ENABLE_SPLIT;
- enableCompress = GENERICREQUEST_ENABLE_COMPRESS;
- if (control -> isProtoStep7() == 1)
- {
- enableCompress = GENERICREQUEST_ENABLE_COMPRESS_IF_PROTO_STEP_7;
-
- enableCompress = 0;
- }
+ // Since ProtoStep7 (#issue 108)
+ enableCompress = GENERICREQUEST_ENABLE_COMPRESS_IF_PROTO_STEP_7;
dataLimit = GENERICREQUEST_DATA_LIMIT;
dataOffset = GENERICREQUEST_DATA_OFFSET;
diff --git a/nxcomp/GenericRequest.h b/nxcomp/GenericRequest.h
index 3175fc2ba..4f164523e 100644
--- a/nxcomp/GenericRequest.h
+++ b/nxcomp/GenericRequest.h
@@ -37,7 +37,6 @@
#define GENERICREQUEST_ENABLE_CACHE 1
#define GENERICREQUEST_ENABLE_DATA 1
#define GENERICREQUEST_ENABLE_SPLIT 0
-#define GENERICREQUEST_ENABLE_COMPRESS 1
#define GENERICREQUEST_DATA_LIMIT 262144 - 20
#define GENERICREQUEST_DATA_OFFSET 20
diff --git a/nxcomp/GetImageReply.cpp b/nxcomp/GetImageReply.cpp
index d4bc21b5a..bea3ee84d 100644
--- a/nxcomp/GetImageReply.cpp
+++ b/nxcomp/GetImageReply.cpp
@@ -43,12 +43,9 @@ GetImageReplyStore::GetImageReplyStore(StaticCompressor *compressor)
enableCache = GETIMAGEREPLY_ENABLE_CACHE;
enableData = GETIMAGEREPLY_ENABLE_DATA;
enableSplit = GETIMAGEREPLY_ENABLE_SPLIT;
- enableCompress = GETIMAGEREPLY_ENABLE_COMPRESS;
- if (control -> isProtoStep7() == 1)
- {
- enableCompress = GETIMAGEREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7;
- }
+ // Since ProtoStep7 (#issue 108)
+ enableCompress = GETIMAGEREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7;
dataLimit = GETIMAGEREPLY_DATA_LIMIT;
dataOffset = GETIMAGEREPLY_DATA_OFFSET;
diff --git a/nxcomp/GetImageReply.h b/nxcomp/GetImageReply.h
index ee7b0bfa3..0fd152122 100644
--- a/nxcomp/GetImageReply.h
+++ b/nxcomp/GetImageReply.h
@@ -37,7 +37,6 @@
#define GETIMAGEREPLY_ENABLE_CACHE 1
#define GETIMAGEREPLY_ENABLE_DATA 1
#define GETIMAGEREPLY_ENABLE_SPLIT 0
-#define GETIMAGEREPLY_ENABLE_COMPRESS 1
#define GETIMAGEREPLY_DATA_LIMIT 1048576 - 32
#define GETIMAGEREPLY_DATA_OFFSET 32
diff --git a/nxcomp/GetPropertyReply.cpp b/nxcomp/GetPropertyReply.cpp
index 223131803..4a906e70a 100644
--- a/nxcomp/GetPropertyReply.cpp
+++ b/nxcomp/GetPropertyReply.cpp
@@ -45,12 +45,9 @@ GetPropertyReplyStore::GetPropertyReplyStore(StaticCompressor *compressor)
enableCache = GETPROPERTYREPLY_ENABLE_CACHE;
enableData = GETPROPERTYREPLY_ENABLE_DATA;
enableSplit = GETPROPERTYREPLY_ENABLE_SPLIT;
- enableCompress = GETPROPERTYREPLY_ENABLE_COMPRESS;
- if (control -> isProtoStep7() == 1)
- {
- enableCompress = GETPROPERTYREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7;
- }
+ // Since ProtoStep7 (#issue 108)
+ enableCompress = GETPROPERTYREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7;
dataLimit = GETPROPERTYREPLY_DATA_LIMIT;
dataOffset = GETPROPERTYREPLY_DATA_OFFSET;
diff --git a/nxcomp/GetPropertyReply.h b/nxcomp/GetPropertyReply.h
index 0f6b19508..f8d53ba0f 100644
--- a/nxcomp/GetPropertyReply.h
+++ b/nxcomp/GetPropertyReply.h
@@ -37,7 +37,6 @@
#define GETPROPERTYREPLY_ENABLE_CACHE 1
#define GETPROPERTYREPLY_ENABLE_DATA 1
#define GETPROPERTYREPLY_ENABLE_SPLIT 0
-#define GETPROPERTYREPLY_ENABLE_COMPRESS 1
#define GETPROPERTYREPLY_DATA_LIMIT 1048576 - 32
#define GETPROPERTYREPLY_DATA_OFFSET 32
diff --git a/nxcomp/ListFontsReply.cpp b/nxcomp/ListFontsReply.cpp
index 5bace82f2..84acaba25 100644
--- a/nxcomp/ListFontsReply.cpp
+++ b/nxcomp/ListFontsReply.cpp
@@ -39,12 +39,9 @@ ListFontsReplyStore::ListFontsReplyStore(StaticCompressor *compressor)
enableCache = LISTFONTSREPLY_ENABLE_CACHE;
enableData = LISTFONTSREPLY_ENABLE_DATA;
enableSplit = LISTFONTSREPLY_ENABLE_SPLIT;
- enableCompress = LISTFONTSREPLY_ENABLE_COMPRESS;
- if (control -> isProtoStep7() == 1)
- {
- enableCompress = LISTFONTSREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7;
- }
+ // Since ProtoStep7 (#issue 108)
+ enableCompress = LISTFONTSREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7;
dataLimit = LISTFONTSREPLY_DATA_LIMIT;
dataOffset = LISTFONTSREPLY_DATA_OFFSET;
diff --git a/nxcomp/ListFontsReply.h b/nxcomp/ListFontsReply.h
index 078fd7ebc..549b7d1c1 100644
--- a/nxcomp/ListFontsReply.h
+++ b/nxcomp/ListFontsReply.h
@@ -37,7 +37,6 @@
#define LISTFONTSREPLY_ENABLE_CACHE 1
#define LISTFONTSREPLY_ENABLE_DATA 1
#define LISTFONTSREPLY_ENABLE_SPLIT 0
-#define LISTFONTSREPLY_ENABLE_COMPRESS 1
#define LISTFONTSREPLY_DATA_LIMIT 1048576 - 32
#define LISTFONTSREPLY_DATA_OFFSET 32
diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp
index 79d753dea..0f9fec6ef 100644
--- a/nxcomp/Loop.cpp
+++ b/nxcomp/Loop.cpp
@@ -4466,32 +4466,16 @@ int SetupServiceSockets()
else
{
//
- // Disable the font server connections if
- // they are not supported by the remote
- // proxy.
+ // Get ready to listen for the font server connections
//
if (useFontSocket)
{
- if (control -> isProtoStep7() == 1)
- {
- int port = atoi(fontPort);
+ // Since ProtoStep7 (#issue 108)
+ int port = atoi(fontPort);
- if ((fontFD = ListenConnection(port, "font")) < 0)
- {
- useFontSocket = 0;
- }
- }
- else
+ if ((fontFD = ListenConnection(port, "font")) < 0)
{
- #ifdef WARNING
- *logofs << "Loop: WARNING! Font server connections not supported "
- << "by the remote proxy.\n" << logofs_flush;
- #endif
-
- cerr << "Warning" << ": Font server connections not supported "
- << "by the remote proxy.\n";
-
useFontSocket = 0;
}
}
@@ -4510,23 +4494,9 @@ int SetupServiceSockets()
if (useSlaveSocket)
{
- if (control -> isProtoStep7() == 1)
- {
- if ((slaveFD = ListenConnection(slavePort, "slave")) < 0)
- {
- useSlaveSocket = 0;
- }
- }
- else
+ // Since ProtoStep7 (#issue 108)
+ if ((slaveFD = ListenConnection(slavePort, "slave")) < 0)
{
- #ifdef WARNING
- *logofs << "Loop: WARNING! Slave connections not supported "
- << "by the remote proxy.\n" << logofs_flush;
- #endif
-
- cerr << "Warning" << ": Slave connections not supported "
- << "by the remote proxy.\n";
-
useSlaveSocket = 0;
}
}
@@ -7226,8 +7196,11 @@ int SendProxyOptions(int fd)
// value and ignore the second.
//
- sprintf(options, "NXPROXY-1.5.0-%i.%i.%i", control -> LocalVersionMajor,
- control -> LocalVersionMinor, control -> LocalVersionPatch);
+ sprintf(options, "NXPROXY-%s-%i.%i.%i",
+ control -> NXPROXY_COMPATIBILITY_VERSION,
+ control -> LocalVersionMajor,
+ control -> LocalVersionMinor,
+ control -> LocalVersionPatch);
//
// If you want to send options from proxy
@@ -7306,8 +7279,8 @@ int SendProxyOptions(int fd)
// Add the 'strict' option, if needed.
//
- if (control -> isProtoStep7() == 1 &&
- useStrict != -1)
+ // Since ProtoStep7 (#issue 108)
+ if (useStrict != -1)
{
sprintf(options + strlen(options), "strict=%d,", useStrict);
}
@@ -7317,8 +7290,8 @@ int SendProxyOptions(int fd)
// memory segment.
//
- if (control -> isProtoStep7() == 1 &&
- *shsegSizeName != '\0')
+ // Since ProtoStep7 (#issue 108)
+ if (*shsegSizeName != '\0')
{
sprintf(options + strlen(options), "shseg=%s,", shsegSizeName);
}
@@ -12064,9 +12037,12 @@ int SetSession()
// to the agent.
//
- if (*sessionType != '\0' &&
- (control -> isProtoStep8() == 1 ||
- strncmp(sessionType, "unix-", strlen("unix-")) != 0))
+ //
+ // Since ProtoStep8 (#issue 108) and also
+ // with older "unix-" sessions
+ //
+
+ if (*sessionType != '\0')
{
#ifdef WARNING
*logofs << "Loop: WARNING! Unrecognized session type '"
@@ -12599,37 +12575,18 @@ int SetVersion()
}
//
- // Handle the 1.5.0 versions. The protocol
- // step 6 is the minimum supported version.
+ // Handle versions from 3.5.0. The protocol
+ // step 10 is the minimum supported version.
//
int step = 0;
- if (major == 1)
- {
- if (minor == 5)
- {
- step = 6;
- }
- }
- else if (major == 2)
- {
- step = 7;
- }
- else if (major == 3)
+ if (major == 3)
{
- if (minor >= 2)
+ if (minor >= 5)
{
step = 10;
}
- else if (minor > 0 || patch > 0)
- {
- step = 9;
- }
- else
- {
- step = 8;
- }
}
else if (major > 3)
{
@@ -12639,6 +12596,16 @@ int SetVersion()
if (step == 0)
{
#ifdef PANIC
+ *logofs << "Loop: PANIC! Unable to set the protocol step value from "
+ << "the negotiated protocol version " << major << "." << minor
+ << "." << patch << ".\n" << logofs_flush;
+ #endif
+
+ cerr << "Error" << ": Unable to set the protocol step value from "
+ << "the negotiated protocol version " << major << "." << minor
+ << "." << patch << ".\n";
+
+ #ifdef PANIC
*logofs << "Loop: PANIC! Incompatible remote version "
<< control -> RemoteVersionMajor << "." << control -> RemoteVersionMinor
<< "." << control -> RemoteVersionPatch << " with local version "
@@ -12702,97 +12669,21 @@ int SetVersion()
if (control -> ProxyMode == proxy_client)
{
- if (control -> isProtoStep8() == 0)
- {
- if (strncmp(sessionType, "shadow", strlen("shadow")) == 0 ||
- strncmp(sessionType, "application", strlen("application")) == 0 ||
- strncmp(sessionType, "console", strlen("console")) == 0 ||
- strncmp(sessionType, "default", strlen("default")) == 0 ||
- strncmp(sessionType, "gnome", strlen("gnome")) == 0 ||
- strncmp(sessionType, "kde", strlen("kde")) == 0 ||
- strncmp(sessionType, "cde", strlen("cde")) == 0 ||
- strncmp(sessionType, "xdm", strlen("xdm")) == 0)
-
- {
- #if defined(TEST) || defined(INFO)
- *logofs << "Loop: WARNING! Prepending 'unix-' to the "
- << "name of the session.\n" << logofs_flush;
- #endif
-
- char buffer[DEFAULT_STRING_LENGTH];
-
- snprintf(buffer, DEFAULT_STRING_LENGTH - 1, "unix-%s", sessionType);
-
- strcpy(sessionType, buffer);
- }
- }
-
//
- // Check if the remote is able to handle
- // the selected pack method.
+ // Since ProtoStep8 (#issue 108)
//
-
- if (control -> isProtoStep8() == 0)
- {
- if (packMethod == PACK_ADAPTIVE || packMethod == PACK_LOSSY)
- {
- #ifdef TEST
- *logofs << "Loop: WARNING! Assuming a lossy encoding with "
- << "an old proxy version.\n" << logofs_flush;
- #endif
-
- packMethod = PACK_JPEG_16M_COLORS;
- }
- else if (packMethod == PACK_LOSSLESS)
- {
- #ifdef TEST
- *logofs << "Loop: WARNING! Assuming a lossless encoding with "
- << "an old proxy version.\n" << logofs_flush;
- #endif
-
- if (control -> isProtoStep7() == 1)
- {
- packMethod = PACK_RLE_16M_COLORS;
- }
- else
- {
- packMethod = PACK_PNG_16M_COLORS;
- }
- }
- }
-
- //
- // If the remote doesn't support the
- // selected method use something that
- // is compatible.
+ // Now it's assumed that the remote is
+ // able to handle the selected pack
+ // method
//
- if ((packMethod == PACK_RGB_16M_COLORS ||
- packMethod == PACK_RLE_16M_COLORS ||
- packMethod == PACK_BITMAP_16M_COLORS) &&
- control -> isProtoStep7() == 0)
- {
- #ifdef TEST
- *logofs << "Loop: WARNING! Setting the pack method to '"
- << PACK_PNG_16M_COLORS << "' with '" << packMethod
- << "' unsupported.\n" << logofs_flush;
- #endif
-
- packMethod = PACK_PNG_16M_COLORS;
- packQuality = 9;
- }
- else if (packMethod == PACK_BITMAP_16M_COLORS &&
- control -> isProtoStep8() == 0)
- {
- #ifdef TEST
- *logofs << "Loop: WARNING! Setting the pack method to '"
- << PACK_RLE_16M_COLORS << "' with '" << packMethod
- << "' unsupported.\n" << logofs_flush;
- #endif
-
- packMethod = PACK_RLE_16M_COLORS;
- packQuality = 9;
- }
+ #ifdef TEST
+ *logofs << __FILE__ << " : " << __LINE__ << " - "
+ << "step = " << control -> getProtoStep()
+ << " packMethod = " << packMethod
+ << " packQuality = " << packQuality
+ << ".\n" << logofs_flush;
+ #endif
//
// Update the pack method name.
@@ -12803,29 +12694,32 @@ int SetVersion()
//
// At the moment the image cache is not used by the
- // agent but we need to take care of the compatibi-
- // lity with old versions. Proxy versions older than
- // the 3.0.0 assume that it is enabled and will send
- // specific bits as part of the encoding. Conversely,
- // it is advisable to disable the cache right now.
- // By not enabling the image cache, the house-keep-
- // ing process will only take care of cleaning up
- // the "cache-" directories.
+ // agent. Proxy versions older than 3.0.0 assumed
+ // that it was enabled and sent specific bits as part
+ // of the encoding. Conversely, it is advisable to
+ // disable the cache right now. By not enabling the
+ // the image cache, the house-keeping process will
+ // only take care of cleaning up the "cache-" direc-
+ // tories.
//
- if (control -> isProtoStep8() == 1)
- {
- #ifdef TEST
- *logofs << "Loop: Disabling image cache with protocol "
- << "step '" << control -> getProtoStep()
- << "'.\n" << logofs_flush;
- #endif
+ //
+ // Considering that compatibility with older versions
+ // has been set to cover as far as 3.5.0, the cache can
+ // be disabled at this point without any concern
+ //
- sprintf(imagesSizeName, "0");
+ // Since ProtoStep8 (#issue 108)
+ #ifdef TEST
+ *logofs << "Loop: Disabling image cache with protocol "
+ << "step '" << control -> getProtoStep()
+ << "'.\n" << logofs_flush;
+ #endif
- control -> ImageCacheEnableLoad = 0;
- control -> ImageCacheEnableSave = 0;
- }
+ sprintf(imagesSizeName, "0");
+
+ control -> ImageCacheEnableLoad = 0;
+ control -> ImageCacheEnableSave = 0;
return 1;
}
@@ -15805,22 +15699,14 @@ static void handleAlertInLoop()
return;
}
- if (lastAlert.local == 0 &&
- (lastAlert.code > LAST_PROTO_STEP_6_ALERT &&
- control -> isProtoStep7() == 0))
- {
- //
- // The remote proxy would be unable
- // to handle the alert.
- //
+ //
+ // Since ProtoStep7 (#issue 108)
+ //
+ // Now the remote proxy should always
+ // be able to handle the alert
+ //
- #ifdef WARNING
- *logofs << "Loop: WARNING! Ignoring unsupported alert "
- << "with code '" << lastAlert.code << "'.\n"
- << logofs_flush;
- #endif
- }
- else if (lastAlert.local == 0)
+ if (lastAlert.local == 0)
{
if (proxy != NULL)
{
diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in
index d309c4949..c2cdceead 100644
--- a/nxcomp/Makefile.in
+++ b/nxcomp/Makefile.in
@@ -165,7 +165,6 @@ CXXSRC = Loop.cpp \
BlockCache.cpp \
BlockCacheSet.cpp \
StaticCompressor.cpp \
- TextCompressor.cpp \
Unpack.cpp \
Alpha.cpp \
Colormap.cpp \
@@ -226,18 +225,7 @@ CXXSRC = Loop.cpp \
RenderCompositeGlyphs.cpp \
RenderFillRectangles.cpp \
RenderTrapezoids.cpp \
- RenderTriangles.cpp \
- PositionCacheCompat.cpp \
- ChangeGCCompat.cpp \
- CreatePixmapCompat.cpp \
- SetUnpackColormapCompat.cpp \
- SetUnpackAlphaCompat.cpp \
- RenderCreatePictureCompat.cpp \
- RenderFreePictureCompat.cpp \
- RenderPictureClipCompat.cpp \
- RenderCreateGlyphSetCompat.cpp \
- RenderCompositeCompat.cpp \
- RenderCompositeGlyphsCompat.cpp
+ RenderTriangles.cpp
MOBJ = $(MSRC:.c=.o)
COBJ = $(CSRC:.c=.o)
diff --git a/nxcomp/Message.cpp b/nxcomp/Message.cpp
index 188ed9a0e..ccafa9963 100644
--- a/nxcomp/Message.cpp
+++ b/nxcomp/Message.cpp
@@ -113,20 +113,6 @@ MessageStore::MessageStore(StaticCompressor *compressor)
lastAction = is_discarded;
//
- // This is used only for compatibility
- // with older proxies.
- //
-
- if (control -> isProtoStep7() == 1)
- {
- lastResize = -1;
- }
- else
- {
- lastResize = 0;
- }
-
- //
// Private members.
//
diff --git a/nxcomp/Message.h b/nxcomp/Message.h
index dcfff7cb6..c10cb266f 100644
--- a/nxcomp/Message.h
+++ b/nxcomp/Message.h
@@ -30,9 +30,6 @@
#include "ActionCache.h"
-#include "ActionCacheCompat.h"
-#include "PositionCacheCompat.h"
-
#include "StaticCompressor.h"
//
@@ -346,16 +343,6 @@ class MessageStore
ActionCache lastActionCache;
//
- // Used in old protocol versions.
- //
-
- ActionCacheCompat lastActionCacheCompat;
-
- PositionCacheCompat lastAddedCacheCompat;
- PositionCacheCompat lastHitCacheCompat;
- PositionCacheCompat lastRemovedCacheCompat;
-
- //
// Position in cache where next insertion
// is going to take place.
//
@@ -363,14 +350,6 @@ class MessageStore
short int lastRated;
//
- // Size of data part of last split message
- // once compressed. This is used only for
- // compatibility with older proxies.
- //
-
- int lastResize;
-
- //
// Constructors and destructors.
//
diff --git a/nxcomp/PolyLine.cpp b/nxcomp/PolyLine.cpp
index 4d285e0b1..9f2d82a5d 100644
--- a/nxcomp/PolyLine.cpp
+++ b/nxcomp/PolyLine.cpp
@@ -93,10 +93,8 @@ void PolyLineStore::dumpIdentity(const Message *message) const
void PolyLineStore::identityChecksum(const Message *message, const unsigned char *buffer,
unsigned int size, int bigEndian) const
{
- if (control -> isProtoStep8() == 1)
- {
- md5_append(md5_state_, buffer + 1, 1);
- }
+ // Since ProtoStep8 (#issue 108)
+ md5_append(md5_state_, buffer + 1, 1);
}
void PolyLineStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *message,
@@ -108,11 +106,6 @@ void PolyLineStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *me
ClientCache *clientCache = (ClientCache *) channelCache;
- if (control -> isProtoStep8() == 0)
- {
- encodeBuffer.encodeBoolValue((unsigned int) polyLine -> mode);
- }
-
#ifdef TEST
*logofs << name() << ": Encoding value " << polyLine -> drawable
<< " as drawable field.\n" << logofs_flush;
@@ -141,13 +134,6 @@ void PolyLineStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *me
unsigned int value;
- if (control -> isProtoStep8() == 0)
- {
- decodeBuffer.decodeBoolValue(value);
-
- polyLine -> mode = value;
- }
-
decodeBuffer.decodeXidValue(value, clientCache -> drawableCache);
polyLine -> drawable = value;
diff --git a/nxcomp/PolyPoint.cpp b/nxcomp/PolyPoint.cpp
index 847300f78..cae4b80a0 100644
--- a/nxcomp/PolyPoint.cpp
+++ b/nxcomp/PolyPoint.cpp
@@ -93,10 +93,8 @@ void PolyPointStore::dumpIdentity(const Message *message) const
void PolyPointStore::identityChecksum(const Message *message, const unsigned char *buffer,
unsigned int size, int bigEndian) const
{
- if (control -> isProtoStep8() == 1)
- {
- md5_append(md5_state_, buffer + 1, 1);
- }
+ // Since ProtoStep8 (#issue 108)
+ md5_append(md5_state_, buffer + 1, 1);
}
void PolyPointStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *message,
@@ -108,11 +106,6 @@ void PolyPointStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *m
ClientCache *clientCache = (ClientCache *) channelCache;
- if (control -> isProtoStep8() == 0)
- {
- encodeBuffer.encodeBoolValue((unsigned int) polyPoint -> mode);
- }
-
#ifdef TEST
*logofs << name() << ": Encoding value " << polyPoint -> drawable
<< " as drawable field.\n" << logofs_flush;
@@ -141,13 +134,6 @@ void PolyPointStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *m
unsigned int value;
- if (control -> isProtoStep8() == 0)
- {
- decodeBuffer.decodeBoolValue(value);
-
- polyPoint -> mode = value;
- }
-
decodeBuffer.decodeXidValue(value, clientCache -> drawableCache);
polyPoint -> drawable = value;
diff --git a/nxcomp/PositionCacheCompat.cpp b/nxcomp/PositionCacheCompat.cpp
deleted file mode 100644
index 4a6a2cd63..000000000
--- a/nxcomp/PositionCacheCompat.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#include "Control.h"
-
-#include "PositionCacheCompat.h"
-
-PositionCacheCompat::PositionCacheCompat()
-{
- if (control -> isProtoStep7() == 0)
- {
- for (int i = 0; i < 32; i++)
- {
- base_[i] = new IntCache(8);
- }
-
- slot_ = 0;
- last_ = 0;
- }
-}
-
-PositionCacheCompat::~PositionCacheCompat()
-{
- if (control -> isProtoStep7() == 0)
- {
- for (int i = 0; i < 32; i++)
- {
- delete base_[i];
- }
- }
-}
diff --git a/nxcomp/PositionCacheCompat.h b/nxcomp/PositionCacheCompat.h
deleted file mode 100644
index 983e45382..000000000
--- a/nxcomp/PositionCacheCompat.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef PositionCacheCompat_H
-#define PositionCacheCompat_H
-
-#include "IntCache.h"
-
-class PositionCacheCompat
-{
- friend class EncodeBuffer;
- friend class DecodeBuffer;
-
- public:
-
- PositionCacheCompat();
- ~PositionCacheCompat();
-
- private:
-
- IntCache *base_[32];
-
- unsigned int slot_;
- short int last_;
-};
-
-#endif /* PositionCacheCompat_H */
diff --git a/nxcomp/Proxy.cpp b/nxcomp/Proxy.cpp
index 4eb99cf45..ae115fede 100644
--- a/nxcomp/Proxy.cpp
+++ b/nxcomp/Proxy.cpp
@@ -244,22 +244,6 @@ Proxy::Proxy(int fd)
clientStore_ = new ClientStore(compressor_);
serverStore_ = new ServerStore(compressor_);
- //
- // Older proxies will refuse to store
- // messages bigger than 262144 bytes.
- //
-
- if (control -> isProtoStep7() == 0)
- {
- #ifdef TEST
- *logofs << "Proxy: WARNING! Limiting the maximum "
- << "message size to " << 262144 << ".\n"
- << logofs_flush;
- #endif
-
- control -> MaximumMessageSize = 262144;
- }
-
clientCache_ = new ClientCache();
serverCache_ = new ServerCache();
@@ -3049,31 +3033,19 @@ int Proxy::handleCloseAllXConnections()
int Proxy::handleCloseAllListeners()
{
- if (control -> isProtoStep7() == 1)
- {
- if (finish_ == 0)
- {
- #ifdef TEST
- *logofs << "Proxy: Closing down all remote listeners.\n"
- << logofs_flush;
- #endif
-
- if (handleControl(code_finish_listeners) < 0)
- {
- return -1;
- }
-
- finish_ = 1;
- }
- }
- else
+ // Since ProtoStep7 (#issue 108)
+ if (finish_ == 0)
{
#ifdef TEST
- *logofs << "Proxy: WARNING! Not sending unsupported "
- << "'code_finish_listeners' message.\n"
+ *logofs << "Proxy: Closing down all remote listeners.\n"
<< logofs_flush;
#endif
+ if (handleControl(code_finish_listeners) < 0)
+ {
+ return -1;
+ }
+
finish_ = 1;
}
@@ -4546,15 +4518,8 @@ int Proxy::addTokenCodes(T_proxy_token &token)
int count = 0;
- if (control -> isProtoStep7() == 1)
- {
- count = token.bytes / token.size;
-
- if (count > 255)
- {
- count = 255;
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ count = token.bytes / token.size;
//
// Force a count of 1, for example
@@ -4569,6 +4534,12 @@ int Proxy::addTokenCodes(T_proxy_token &token)
}
else
{
+ // Since ProtoStep7 (#issue 108)
+ if (count > 255)
+ {
+ count = 255;
+ }
+
//
// Let the next token account for the
// remaining bytes.
@@ -4609,73 +4580,52 @@ int Proxy::handleToken(T_frame_type type)
if (type == frame_data)
{
- if (control -> isProtoStep7() == 1)
+ //
+ // Since ProtoStep7 (#issue 108)
+ //
+
+ // Send a distinct token for each data type.
+ // We don't want to slow down the sending of
+ // the X events, X replies and split confir-
+ // mation events on the X server side, so
+ // take care only of the generic data token.
+ //
+
+ if (control -> ProxyMode == proxy_client)
{
- //
- // Send a distinct token for each data type.
- // We don't want to slow down the sending of
- // the X events, X replies and split confir-
- // mation events on the X server side, so
- // take care only of the generic data token.
- //
+ statistics -> updateControlToken(tokens_[token_control].bytes);
- if (control -> ProxyMode == proxy_client)
+ if (tokens_[token_control].bytes > tokens_[token_control].size)
{
- statistics -> updateControlToken(tokens_[token_control].bytes);
-
- if (tokens_[token_control].bytes > tokens_[token_control].size)
+ if (addTokenCodes(tokens_[token_control]) < 0)
{
- if (addTokenCodes(tokens_[token_control]) < 0)
- {
- return -1;
- }
-
- #if defined(TEST) || defined(INFO) || defined(TOKEN)
-
- T_proxy_token &token = tokens_[token_control];
-
- *logofs << "Proxy: TOKEN! Token class ["
- << DumpToken(token.type) << "] has now "
- << token.bytes << " bytes accumulated and "
- << token.remaining << " tokens remaining.\n"
- << logofs_flush;
- #endif
+ return -1;
}
- statistics -> updateSplitToken(tokens_[token_split].bytes);
-
- if (tokens_[token_split].bytes > tokens_[token_split].size)
- {
- if (addTokenCodes(tokens_[token_split]) < 0)
- {
- return -1;
- }
-
- #if defined(TEST) || defined(INFO) || defined(TOKEN)
+ #if defined(TEST) || defined(INFO) || defined(TOKEN)
- T_proxy_token &token = tokens_[token_split];
+ T_proxy_token &token = tokens_[token_control];
- *logofs << "Proxy: TOKEN! Token class ["
- << DumpToken(token.type) << "] has now "
- << token.bytes << " bytes accumulated and "
- << token.remaining << " tokens remaining.\n"
- << logofs_flush;
- #endif
- }
+ *logofs << "Proxy: TOKEN! Token class ["
+ << DumpToken(token.type) << "] has now "
+ << token.bytes << " bytes accumulated and "
+ << token.remaining << " tokens remaining.\n"
+ << logofs_flush;
+ #endif
}
- statistics -> updateDataToken(tokens_[token_data].bytes);
+ statistics -> updateSplitToken(tokens_[token_split].bytes);
- if (tokens_[token_data].bytes > tokens_[token_data].size)
+ if (tokens_[token_split].bytes > tokens_[token_split].size)
{
- if (addTokenCodes(tokens_[token_data]) < 0)
+ if (addTokenCodes(tokens_[token_split]) < 0)
{
return -1;
}
#if defined(TEST) || defined(INFO) || defined(TOKEN)
- T_proxy_token &token = tokens_[token_data];
+ T_proxy_token &token = tokens_[token_split];
*logofs << "Proxy: TOKEN! Token class ["
<< DumpToken(token.type) << "] has now "
@@ -4685,37 +4635,26 @@ int Proxy::handleToken(T_frame_type type)
#endif
}
}
- else
- {
- //
- // Sum everything to the control token.
- //
- if (control -> ProxyMode == proxy_client)
- {
- statistics -> updateControlToken(tokens_[token_control].bytes);
- statistics -> updateSplitToken(tokens_[token_control].bytes);
- statistics -> updateDataToken(tokens_[token_control].bytes);
+ statistics -> updateDataToken(tokens_[token_data].bytes);
- if (tokens_[token_control].bytes > tokens_[token_control].size)
- {
- if (addTokenCodes(tokens_[token_control]) < 0)
- {
- return -1;
- }
+ if (tokens_[token_data].bytes > tokens_[token_data].size)
+ {
+ if (addTokenCodes(tokens_[token_data]) < 0)
+ {
+ return -1;
+ }
- #if defined(TEST) || defined(INFO) || defined(TOKEN)
+ #if defined(TEST) || defined(INFO) || defined(TOKEN)
- T_proxy_token &token = tokens_[token_control];
+ T_proxy_token &token = tokens_[token_data];
- *logofs << "Proxy: TOKEN! Token class ["
- << DumpToken(token.type) << "] has now "
- << token.bytes << " bytes accumulated and "
- << token.remaining << " tokens remaining.\n"
- << logofs_flush;
- #endif
- }
- }
+ *logofs << "Proxy: TOKEN! Token class ["
+ << DumpToken(token.type) << "] has now "
+ << token.bytes << " bytes accumulated and "
+ << token.remaining << " tokens remaining.\n"
+ << logofs_flush;
+ #endif
}
}
else
@@ -4777,21 +4716,10 @@ int Proxy::handleTokenFromProxy(T_proxy_token &token, int count)
<< count << ".\n" << logofs_flush;
#endif
- if (control -> isProtoStep7() == 0)
- {
- if (control -> ProxyMode == proxy_client ||
- token.request != code_control_token_request)
- {
- #ifdef PANIC
- *logofs << "Proxy: PANIC! Invalid token request received from remote.\n"
- << logofs_flush;
- #endif
-
- cerr << "Error" << ": Invalid token request received from remote.\n";
-
- HandleCleanup();
- }
- }
+ //
+ // Since ProtoStep7 (#issue 108) with no limitations
+ // concerning invalid token requests at this point
+ //
//
// Add our token reply.
@@ -4815,25 +4743,13 @@ int Proxy::handleTokenReplyFromProxy(T_proxy_token &token, int count)
#endif
//
- // Increment the available tokens.
+ // Since ProtoStep7 (#issue 108) with no limitations
+ // concerning invalid token requests at this point
//
- if (control -> isProtoStep7() == 0)
- {
- if (token.reply != code_control_token_reply)
- {
- #ifdef PANIC
- *logofs << "Proxy: PANIC! Invalid token reply received from remote.\n"
- << logofs_flush;
- #endif
-
- cerr << "Error" << ": Invalid token reply received from remote.\n";
-
- HandleCleanup();
- }
-
- count = 1;
- }
+ //
+ // Increment the available tokens.
+ //
token.remaining += count;
@@ -4924,24 +4840,10 @@ void Proxy::handleFailOnLoad(const char *fullName, const char *failContext) cons
int Proxy::handleSaveVersion(unsigned char *buffer, int &major,
int &minor, int &patch) const
{
- if (control -> isProtoStep8() == 1)
- {
- major = 3;
- minor = 0;
- patch = 0;
- }
- else if (control -> isProtoStep7() == 1)
- {
- major = 2;
- minor = 0;
- patch = 0;
- }
- else
- {
- major = 1;
- minor = 4;
- patch = 0;
- }
+ // Since ProtoStep8 (#issue 108)
+ major = 3;
+ minor = 0;
+ patch = 0;
*(buffer + 0) = major;
*(buffer + 1) = minor;
@@ -4964,26 +4866,10 @@ int Proxy::handleLoadVersion(const unsigned char *buffer, int &major,
// incompatible caches.
//
- if (control -> isProtoStep8() == 1)
- {
- if (major < 3)
- {
- return -1;
- }
- }
- else if (control -> isProtoStep7() == 1)
- {
- if (major < 2)
- {
- return -1;
- }
- }
- else
+ // Since ProtoStep8 (#issue 108)
+ if (major < 3)
{
- if (major != 1 && minor != 4)
- {
- return -1;
- }
+ return -1;
}
return 1;
@@ -6109,20 +5995,8 @@ int Proxy::handleNewGenericConnection(int clientFd, T_channel_type type, const c
int Proxy::handleNewSlaveConnection(int clientFd)
{
- if (control -> isProtoStep7() == 1)
- {
- return handleNewGenericConnection(clientFd, channel_slave, "slave");
- }
- else
- {
- #ifdef TEST
- *logofs << "Proxy: WARNING! Not sending unsupported "
- << "'code_new_slave_connection' message.\n"
- << logofs_flush;
- #endif
-
- return -1;
- }
+ // Since ProtoStep7 (#issue 108)
+ return handleNewGenericConnection(clientFd, channel_slave, "slave");
}
int Proxy::handleNewGenericConnectionFromProxy(int channelId, T_channel_type type,
diff --git a/nxcomp/Proxy.h b/nxcomp/Proxy.h
index 3d6c62c54..2f3be7596 100644
--- a/nxcomp/Proxy.h
+++ b/nxcomp/Proxy.h
@@ -767,11 +767,6 @@ class Proxy
handleSplitEvent(encodeBuffer_, split);
}
- int handleAsyncInit()
- {
- return handleFlush();
- }
-
int handleAsyncPriority()
{
if (control -> FlushPriority == 1)
diff --git a/nxcomp/PutImage.cpp b/nxcomp/PutImage.cpp
index 325a4aa66..af170463d 100644
--- a/nxcomp/PutImage.cpp
+++ b/nxcomp/PutImage.cpp
@@ -44,13 +44,9 @@ PutImageStore::PutImageStore(StaticCompressor *compressor)
{
enableCache = PUTIMAGE_ENABLE_CACHE;
enableData = PUTIMAGE_ENABLE_DATA;
- enableSplit = PUTIMAGE_ENABLE_SPLIT;
- enableCompress = PUTIMAGE_ENABLE_COMPRESS;
- if (control -> isProtoStep7() == 1)
- {
- enableCompress = PUTIMAGE_ENABLE_COMPRESS_IF_PROTO_STEP_7;
- }
+ // Since ProtoStep7 (#issue 108)
+ enableCompress = PUTIMAGE_ENABLE_COMPRESS_IF_PROTO_STEP_7;
dataLimit = PUTIMAGE_DATA_LIMIT;
dataOffset = PUTIMAGE_DATA_OFFSET;
@@ -59,10 +55,8 @@ PutImageStore::PutImageStore(StaticCompressor *compressor)
cacheThreshold = PUTIMAGE_CACHE_THRESHOLD;
cacheLowerThreshold = PUTIMAGE_CACHE_LOWER_THRESHOLD;
- if (control -> isProtoStep8() == 1)
- {
- enableSplit = PUTIMAGE_ENABLE_SPLIT_IF_PROTO_STEP_8;
- }
+ // Since ProtoStep8 (#issue 108)
+ enableSplit = PUTIMAGE_ENABLE_SPLIT_IF_PROTO_STEP_8;
messages_ -> resize(cacheSlots);
diff --git a/nxcomp/PutImage.h b/nxcomp/PutImage.h
index e9535cb29..9e438fc84 100644
--- a/nxcomp/PutImage.h
+++ b/nxcomp/PutImage.h
@@ -36,8 +36,6 @@
#define PUTIMAGE_ENABLE_CACHE 1
#define PUTIMAGE_ENABLE_DATA 1
-#define PUTIMAGE_ENABLE_SPLIT 1
-#define PUTIMAGE_ENABLE_COMPRESS 1
#define PUTIMAGE_DATA_LIMIT 262144 - 24
#define PUTIMAGE_DATA_OFFSET 24
diff --git a/nxcomp/PutPackedImage.cpp b/nxcomp/PutPackedImage.cpp
index eae16a16f..af962c703 100644
--- a/nxcomp/PutPackedImage.cpp
+++ b/nxcomp/PutPackedImage.cpp
@@ -44,7 +44,6 @@ PutPackedImageStore::PutPackedImageStore(StaticCompressor *compressor)
{
enableCache = PUTPACKEDIMAGE_ENABLE_CACHE;
enableData = PUTPACKEDIMAGE_ENABLE_DATA;
- enableSplit = PUTPACKEDIMAGE_ENABLE_SPLIT;
enableCompress = PUTPACKEDIMAGE_ENABLE_COMPRESS;
dataLimit = PUTPACKEDIMAGE_DATA_LIMIT;
@@ -54,10 +53,8 @@ PutPackedImageStore::PutPackedImageStore(StaticCompressor *compressor)
cacheThreshold = PUTPACKEDIMAGE_CACHE_THRESHOLD;
cacheLowerThreshold = PUTPACKEDIMAGE_CACHE_LOWER_THRESHOLD;
- if (control -> isProtoStep8() == 1)
- {
- enableSplit = PUTPACKEDIMAGE_ENABLE_SPLIT_IF_PROTO_STEP_8;
- }
+ // Since ProtoStep8 (#issue 108)
+ enableSplit = PUTPACKEDIMAGE_ENABLE_SPLIT_IF_PROTO_STEP_8;
messages_ -> resize(cacheSlots);
diff --git a/nxcomp/PutPackedImage.h b/nxcomp/PutPackedImage.h
index 5287a5b57..7427499b8 100644
--- a/nxcomp/PutPackedImage.h
+++ b/nxcomp/PutPackedImage.h
@@ -36,7 +36,6 @@
#define PUTPACKEDIMAGE_ENABLE_CACHE 1
#define PUTPACKEDIMAGE_ENABLE_DATA 1
-#define PUTPACKEDIMAGE_ENABLE_SPLIT 1
#define PUTPACKEDIMAGE_ENABLE_COMPRESS 0
//
diff --git a/nxcomp/QueryFontReply.cpp b/nxcomp/QueryFontReply.cpp
index 2d42587f7..d723f9127 100644
--- a/nxcomp/QueryFontReply.cpp
+++ b/nxcomp/QueryFontReply.cpp
@@ -39,12 +39,9 @@ QueryFontReplyStore::QueryFontReplyStore(StaticCompressor *compressor)
enableCache = QUERYFONTREPLY_ENABLE_CACHE;
enableData = QUERYFONTREPLY_ENABLE_DATA;
enableSplit = QUERYFONTREPLY_ENABLE_SPLIT;
- enableCompress = QUERYFONTREPLY_ENABLE_COMPRESS;
- if (control -> isProtoStep7() == 1)
- {
- enableCompress = QUERYFONTREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7;
- }
+ // Since ProtoStep7 (#issue 108)
+ enableCompress = QUERYFONTREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7;
dataLimit = QUERYFONTREPLY_DATA_LIMIT;
dataOffset = QUERYFONTREPLY_DATA_OFFSET;
diff --git a/nxcomp/QueryFontReply.h b/nxcomp/QueryFontReply.h
index 537da4e63..e89720ffe 100644
--- a/nxcomp/QueryFontReply.h
+++ b/nxcomp/QueryFontReply.h
@@ -36,7 +36,6 @@
#define QUERYFONTREPLY_ENABLE_CACHE 1
#define QUERYFONTREPLY_ENABLE_DATA 1
#define QUERYFONTREPLY_ENABLE_SPLIT 0
-#define QUERYFONTREPLY_ENABLE_COMPRESS 1
#define QUERYFONTREPLY_DATA_LIMIT 1048576 - 32
#define QUERYFONTREPLY_DATA_OFFSET 8
diff --git a/nxcomp/RenderCompositeCompat.cpp b/nxcomp/RenderCompositeCompat.cpp
deleted file mode 100644
index 5a1eff213..000000000
--- a/nxcomp/RenderCompositeCompat.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-//
-// Include the template for
-// this message class.
-//
-
-#include "RenderCompositeCompat.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-
-#include MESSAGE_TAGS
-
-//
-// Message handling methods.
-//
-
-MESSAGE_BEGIN_ENCODE_SIZE
-{
- //
- // Strictly speaking this request doesn't have
- // a data part. We just encode the field from
- // offset 24 to 36 as they were data using an
- // int cache.
- //
-
- #ifdef TEST
- *logofs << name() << ": Encoded size with value "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_SIZE
-
-MESSAGE_BEGIN_DECODE_SIZE
-{
- size = MESSAGE_OFFSET + 12;
-
- buffer = writeBuffer -> addMessage(size);
-
- #ifdef TEST
- *logofs << name() << ": Decoded size with value "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_SIZE
-
-MESSAGE_BEGIN_ENCODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeCachedValue(*(buffer + 4), 8,
- clientCache -> renderOpCache);
-
- encodeBuffer.encodeXidValue(GetULONG(buffer + 8, bigEndian),
- clientCache -> renderSrcPictureCache);
-
- encodeBuffer.encodeXidValue(GetULONG(buffer + 12, bigEndian),
- clientCache -> renderSrcPictureCache);
-
- encodeBuffer.encodeXidValue(GetULONG(buffer + 16, bigEndian),
- clientCache -> renderSrcPictureCache);
-
- encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 20, bigEndian),
- clientCache -> renderLastX, 16,
- clientCache -> renderXCache, 11);
-
- encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 22, bigEndian),
- clientCache -> renderLastY, 16,
- clientCache -> renderYCache, 11);
-
- #ifdef TEST
- *logofs << name() << ": Encoded message. Type is "
- << (unsigned int) *(buffer + 1) << " size is "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_MESSAGE
-
-MESSAGE_BEGIN_DECODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- *(buffer + 1) = type;
-
- decodeBuffer.decodeCachedValue(*(buffer + 4), 8,
- clientCache -> renderOpCache);
-
- decodeBuffer.decodeXidValue(value, clientCache -> renderSrcPictureCache);
-
- PutULONG(value, buffer + 8, bigEndian);
-
- decodeBuffer.decodeXidValue(value, clientCache -> renderSrcPictureCache);
-
- PutULONG(value, buffer + 12, bigEndian);
-
- decodeBuffer.decodeXidValue(value, clientCache -> renderSrcPictureCache);
-
- PutULONG(value, buffer + 16, bigEndian);
-
- decodeBuffer.decodeDiffCachedValue(value,
- clientCache -> renderLastX, 16,
- clientCache -> renderXCache, 11);
-
- PutUINT(clientCache -> renderLastX, buffer + 20, bigEndian);
-
- decodeBuffer.decodeDiffCachedValue(value,
- clientCache -> renderLastY, 16,
- clientCache -> renderYCache, 11);
-
- PutUINT(clientCache -> renderLastY, buffer + 22, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Decoded message. Type is "
- << (unsigned int) type << " size is " << size
- << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_MESSAGE
-
-MESSAGE_BEGIN_ENCODE_DATA
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- for (unsigned int i = MESSAGE_OFFSET, c = 0; i < size; i += 4)
- {
- #ifdef DEBUG
- *logofs << name() << ": Encoding long value "
- << GetULONG(buffer + i, bigEndian) << " with i = "
- << i << " c = " << c << ".\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeCachedValue(GetULONG(buffer + i, bigEndian), 32,
- *clientCache -> renderCompositeDataCache[c]);
-
- if (++c == 3) c = 0;
- }
-
- #ifdef TEST
- *logofs << name() << ": Encoded " << size - MESSAGE_OFFSET
- << " bytes of data.\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_DATA
-
-MESSAGE_BEGIN_DECODE_DATA
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- for (unsigned int i = MESSAGE_OFFSET, c = 0; i < size; i += 4)
- {
- decodeBuffer.decodeCachedValue(value, 32,
- *clientCache -> renderCompositeDataCache[c]);
-
- #ifdef DEBUG
- *logofs << name() << ": Decoded long value " << value
- << " with i = " << i << " c = " << c << ".\n"
- << logofs_flush;
- #endif
-
- PutULONG(value, buffer + i, bigEndian);
-
- if (++c == 3) c = 0;
- }
-
- #ifdef TEST
- *logofs << name() << ": Decoded " << size - MESSAGE_OFFSET
- << " bytes of data.\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_DATA
-
-MESSAGE_BEGIN_PARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- renderExtension -> data.composite.type = *(buffer + 1);
- renderExtension -> data.composite.op = *(buffer + 4);
-
- renderExtension -> data.composite.src_id = GetULONG(buffer + 8, bigEndian);
- renderExtension -> data.composite.msk_id = GetULONG(buffer + 12, bigEndian);
- renderExtension -> data.composite.dst_id = GetULONG(buffer + 16, bigEndian);
-
- renderExtension -> data.composite.src_x = GetUINT(buffer + 20, bigEndian);
- renderExtension -> data.composite.src_y = GetUINT(buffer + 22, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Parsed identity. Type is "
- << (unsigned int) renderExtension -> data.composite.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_PARSE_IDENTITY
-
-MESSAGE_BEGIN_UNPARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- *(buffer + 1) = renderExtension -> data.composite.type;
- *(buffer + 4) = renderExtension -> data.composite.op;
-
- PutULONG(renderExtension -> data.composite.src_id, buffer + 8, bigEndian);
- PutULONG(renderExtension -> data.composite.msk_id, buffer + 12, bigEndian);
- PutULONG(renderExtension -> data.composite.dst_id, buffer + 16, bigEndian);
-
- PutUINT(renderExtension -> data.composite.src_x, buffer + 20, bigEndian);
- PutUINT(renderExtension -> data.composite.src_y, buffer + 22, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Unparsed identity. Type is "
- << (unsigned int) renderExtension -> data.composite.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_UNPARSE_IDENTITY
-
-MESSAGE_BEGIN_IDENTITY_CHECKSUM
-{
- //
- // Include minor opcode, size and
- // operator in the identity, plus
- // the x and y of the source.
- //
-
- md5_append(md5_state, buffer + 1, 4);
- md5_append(md5_state, buffer + 20, 4);
-}
-MESSAGE_END_IDENTITY_CHECKSUM
-
-MESSAGE_BEGIN_ENCODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
- RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- #ifdef DEBUG
- *logofs << name() << ": Source " << renderExtension ->
- data.composite.src_id << " mask " << renderExtension ->
- data.composite.msk_id << " destination " << renderExtension ->
- data.composite.msk_id << ".\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeXidValue(renderExtension -> data.composite.src_id,
- clientCache -> renderSrcPictureCache);
-
- cachedRenderExtension -> data.composite.src_id =
- renderExtension -> data.composite.src_id;
-
- encodeBuffer.encodeXidValue(renderExtension -> data.composite.msk_id,
- clientCache -> renderSrcPictureCache);
-
- cachedRenderExtension -> data.composite.msk_id =
- renderExtension -> data.composite.msk_id;
-
- encodeBuffer.encodeXidValue(renderExtension -> data.composite.dst_id,
- clientCache -> renderSrcPictureCache);
-
- cachedRenderExtension -> data.composite.dst_id =
- renderExtension -> data.composite.dst_id;
-
- #ifdef TEST
- *logofs << name() << ": Encoded update. Type is "
- << (unsigned int) renderExtension -> data.composite.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_UPDATE
-
-MESSAGE_BEGIN_DECODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- decodeBuffer.decodeXidValue(renderExtension -> data.composite.src_id,
- clientCache -> renderSrcPictureCache);
-
- decodeBuffer.decodeXidValue(renderExtension -> data.composite.msk_id,
- clientCache -> renderSrcPictureCache);
-
- decodeBuffer.decodeXidValue(renderExtension -> data.composite.dst_id,
- clientCache -> renderSrcPictureCache);
-
- #ifdef TEST
- *logofs << name() << ": Decoded update. Type is "
- << (unsigned int) renderExtension -> data.composite.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_UPDATE
diff --git a/nxcomp/RenderCompositeCompat.h b/nxcomp/RenderCompositeCompat.h
deleted file mode 100644
index a26db35ba..000000000
--- a/nxcomp/RenderCompositeCompat.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef RenderCompositeCompat_H
-#define RenderCompositeCompat_H
-
-//
-// Define the characteristics
-// of this message class here.
-//
-
-#undef MESSAGE_NAME
-#define MESSAGE_NAME "RenderCompositeCompat"
-
-#undef MESSAGE_STORE
-#define MESSAGE_STORE RenderCompositeCompatStore
-
-#undef MESSAGE_CLASS
-#define MESSAGE_CLASS RenderMinorExtensionStore
-
-#undef MESSAGE_METHODS
-#define MESSAGE_METHODS "RenderMinorExtensionMethods.h"
-
-#undef MESSAGE_HEADERS
-#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h"
-
-#undef MESSAGE_TAGS
-#define MESSAGE_TAGS "RenderMinorExtensionTags.h"
-
-#undef MESSAGE_OFFSET
-#define MESSAGE_OFFSET 24
-
-#undef MESSAGE_HAS_SIZE
-#define MESSAGE_HAS_SIZE 1
-
-#undef MESSAGE_HAS_DATA
-#define MESSAGE_HAS_DATA 1
-
-#undef MESSAGE_HAS_FILTER
-#define MESSAGE_HAS_FILTER 0
-
-//
-// Declare the message class.
-//
-
-#include MESSAGE_HEADERS
-
-class MESSAGE_STORE : public MESSAGE_CLASS
-{
- public:
-
- virtual const char *name() const
- {
- return MESSAGE_NAME;
- }
-
- virtual int identitySize(const unsigned char *buffer,
- unsigned int size)
- {
- return MESSAGE_OFFSET;
- }
-
- #include MESSAGE_METHODS
-};
-
-#endif /* RenderCompositeCompat_H */
diff --git a/nxcomp/RenderCompositeGlyphs.cpp b/nxcomp/RenderCompositeGlyphs.cpp
index 1135633ff..752dedb2b 100644
--- a/nxcomp/RenderCompositeGlyphs.cpp
+++ b/nxcomp/RenderCompositeGlyphs.cpp
@@ -102,26 +102,14 @@ MESSAGE_BEGIN_ENCODE_MESSAGE
unsigned int src_x = GetUINT(buffer + 24, bigEndian);
unsigned int src_y = GetUINT(buffer + 26, bigEndian);
- if (control -> isProtoStep8() == 1)
- {
- encodeBuffer.encodeDiffCachedValue(src_x,
- clientCache -> renderGlyphX, 16,
- clientCache -> renderGlyphXCache, 11);
-
- encodeBuffer.encodeDiffCachedValue(src_y,
- clientCache -> renderGlyphY, 16,
- clientCache -> renderGlyphYCache, 11);
- }
- else
- {
- encodeBuffer.encodeDiffCachedValue(src_x,
- clientCache -> renderLastX, 16,
- clientCache -> renderXCache, 11);
+ // Since ProtoStep8 (#issue 108)
+ encodeBuffer.encodeDiffCachedValue(src_x,
+ clientCache -> renderGlyphX, 16,
+ clientCache -> renderGlyphXCache, 11);
- encodeBuffer.encodeDiffCachedValue(src_y,
- clientCache -> renderLastY, 16,
- clientCache -> renderYCache, 11);
- }
+ encodeBuffer.encodeDiffCachedValue(src_y,
+ clientCache -> renderGlyphY, 16,
+ clientCache -> renderGlyphYCache, 11);
#ifdef TEST
*logofs << name() << ": Encoded source X "
@@ -147,8 +135,8 @@ MESSAGE_BEGIN_ENCODE_MESSAGE
// tive to the first offset coordinates.
//
- if (control -> isProtoStep8() == 1 &&
- size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
+ // Since ProtoStep8 (#issue 108)
+ if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
{
unsigned int numGlyphs = *(buffer + 28);
@@ -232,32 +220,20 @@ MESSAGE_BEGIN_DECODE_MESSAGE
unsigned int src_x;
unsigned int src_y;
- if (control -> isProtoStep8() == 1)
- {
- decodeBuffer.decodeDiffCachedValue(src_x,
- clientCache -> renderGlyphX, 16,
- clientCache -> renderGlyphXCache, 11);
-
- decodeBuffer.decodeDiffCachedValue(src_y,
- clientCache -> renderGlyphY, 16,
- clientCache -> renderGlyphYCache, 11);
- }
- else
- {
- decodeBuffer.decodeDiffCachedValue(src_x,
- clientCache -> renderLastX, 16,
- clientCache -> renderXCache, 11);
+ // Since ProtoStep8 (#issue 108)
+ decodeBuffer.decodeDiffCachedValue(src_x,
+ clientCache -> renderGlyphX, 16,
+ clientCache -> renderGlyphXCache, 11);
- decodeBuffer.decodeDiffCachedValue(src_y,
- clientCache -> renderLastY, 16,
- clientCache -> renderYCache, 11);
- }
+ decodeBuffer.decodeDiffCachedValue(src_y,
+ clientCache -> renderGlyphY, 16,
+ clientCache -> renderGlyphYCache, 11);
PutUINT(src_x, buffer + 24, bigEndian);
PutUINT(src_y, buffer + 26, bigEndian);
- if (control -> isProtoStep8() == 1 &&
- size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
+ // Since ProtoStep8 (#issue 108)
+ if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
{
decodeBuffer.decodeCachedValue(value, 8,
clientCache -> renderNumGlyphsCache);
@@ -297,8 +273,8 @@ MESSAGE_END_DECODE_MESSAGE
MESSAGE_BEGIN_ENCODE_DATA
{
- if (control -> isProtoStep8() == 1 &&
- size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
+ // Since ProtoStep8 (#issue 108)
+ if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
{
encodeCharData(encodeBuffer, buffer, MESSAGE_OFFSET_IF_PROTO_STEP_8,
size, bigEndian, channelCache);
@@ -318,8 +294,8 @@ MESSAGE_END_ENCODE_DATA
MESSAGE_BEGIN_DECODE_DATA
{
- if (control -> isProtoStep8() == 1 &&
- size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
+ // Since ProtoStep8 (#issue 108)
+ if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
{
decodeCharData(decodeBuffer, buffer, MESSAGE_OFFSET_IF_PROTO_STEP_8,
size, bigEndian, channelCache);
@@ -353,8 +329,8 @@ MESSAGE_BEGIN_PARSE_IDENTITY
renderExtension -> data.composite_glyphs.src_x = GetUINT(buffer + 24, bigEndian);
renderExtension -> data.composite_glyphs.src_y = GetUINT(buffer + 26, bigEndian);
- if (control -> isProtoStep8() == 1 &&
- size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
+ // Since ProtoStep8 (#issue 108)
+ if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
{
renderExtension -> data.composite_glyphs.num_elm = *(buffer + 28);
@@ -387,8 +363,8 @@ MESSAGE_BEGIN_UNPARSE_IDENTITY
PutUINT(renderExtension -> data.composite_glyphs.src_x, buffer + 24, bigEndian);
PutUINT(renderExtension -> data.composite_glyphs.src_y, buffer + 26, bigEndian);
- if (control -> isProtoStep8() == 1 &&
- size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
+ // Since ProtoStep8 (#issue 108)
+ if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
{
*(buffer + 28) = renderExtension -> data.composite_glyphs.num_elm;
@@ -426,8 +402,8 @@ MESSAGE_BEGIN_IDENTITY_CHECKSUM
// first string.
//
- if (control -> isProtoStep8() == 1 &&
- size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
+ // Since ProtoStep8 (#issue 108)
+ if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
{
md5_append(md5_state, buffer + 28, 1);
}
@@ -470,42 +446,22 @@ MESSAGE_BEGIN_ENCODE_UPDATE
unsigned int value;
unsigned int previous;
- if (control -> isProtoStep8() == 1)
- {
- value = renderExtension -> data.composite_glyphs.src_x;
- previous = cachedRenderExtension -> data.composite_glyphs.src_x;
-
- encodeBuffer.encodeDiffCachedValue(value, previous, 16,
- clientCache -> renderGlyphXCache, 11);
+ // Since ProtoStep8 (#issue 108)
+ value = renderExtension -> data.composite_glyphs.src_x;
+ previous = cachedRenderExtension -> data.composite_glyphs.src_x;
- cachedRenderExtension -> data.composite_glyphs.src_x = value;
+ encodeBuffer.encodeDiffCachedValue(value, previous, 16,
+ clientCache -> renderGlyphXCache, 11);
- value = renderExtension -> data.composite_glyphs.src_y;
- previous = cachedRenderExtension -> data.composite_glyphs.src_y;
+ cachedRenderExtension -> data.composite_glyphs.src_x = value;
- encodeBuffer.encodeDiffCachedValue(value, previous, 16,
- clientCache -> renderGlyphYCache, 11);
+ value = renderExtension -> data.composite_glyphs.src_y;
+ previous = cachedRenderExtension -> data.composite_glyphs.src_y;
- cachedRenderExtension -> data.composite_glyphs.src_y = value;
- }
- else
- {
- value = renderExtension -> data.composite_glyphs.src_x;
- previous = cachedRenderExtension -> data.composite_glyphs.src_x;
-
- encodeBuffer.encodeDiffCachedValue(value, previous, 16,
- clientCache -> renderXCache, 11);
-
- cachedRenderExtension -> data.composite_glyphs.src_x = value;
+ encodeBuffer.encodeDiffCachedValue(value, previous, 16,
+ clientCache -> renderGlyphYCache, 11);
- value = renderExtension -> data.composite_glyphs.src_y;
- previous = cachedRenderExtension -> data.composite_glyphs.src_y;
-
- encodeBuffer.encodeDiffCachedValue(value, previous, 16,
- clientCache -> renderYCache, 11);
-
- cachedRenderExtension -> data.composite_glyphs.src_y = value;
- }
+ cachedRenderExtension -> data.composite_glyphs.src_y = value;
#ifdef TEST
*logofs << name() << ": Encoded source X "
@@ -514,8 +470,8 @@ MESSAGE_BEGIN_ENCODE_UPDATE
<< logofs_flush;
#endif
- if (control -> isProtoStep8() == 1 &&
- renderExtension -> size_ >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
+ // Since ProtoStep8 (#issue 108)
+ if (renderExtension -> size_ >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
{
//
// Offset X and Y.
@@ -601,41 +557,23 @@ MESSAGE_BEGIN_DECODE_UPDATE
unsigned int value;
unsigned int previous;
- if (control -> isProtoStep8() == 1)
- {
- previous = renderExtension -> data.composite_glyphs.src_x;
-
- decodeBuffer.decodeDiffCachedValue(value, previous, 16,
- clientCache -> renderGlyphXCache, 11);
-
- renderExtension -> data.composite_glyphs.src_x = value;
-
- previous = renderExtension -> data.composite_glyphs.src_y;
-
- decodeBuffer.decodeDiffCachedValue(value, previous, 16,
- clientCache -> renderGlyphYCache, 11);
+ // Since ProtoStep8 (#issue 108)
+ previous = renderExtension -> data.composite_glyphs.src_x;
- renderExtension -> data.composite_glyphs.src_y = value;
- }
- else
- {
- previous = renderExtension -> data.composite_glyphs.src_x;
+ decodeBuffer.decodeDiffCachedValue(value, previous, 16,
+ clientCache -> renderGlyphXCache, 11);
- decodeBuffer.decodeDiffCachedValue(value, previous, 16,
- clientCache -> renderXCache, 11);
+ renderExtension -> data.composite_glyphs.src_x = value;
- renderExtension -> data.composite_glyphs.src_x = value;
+ previous = renderExtension -> data.composite_glyphs.src_y;
- previous = renderExtension -> data.composite_glyphs.src_y;
+ decodeBuffer.decodeDiffCachedValue(value, previous, 16,
+ clientCache -> renderGlyphYCache, 11);
- decodeBuffer.decodeDiffCachedValue(value, previous, 16,
- clientCache -> renderYCache, 11);
-
- renderExtension -> data.composite_glyphs.src_y = value;
- }
+ renderExtension -> data.composite_glyphs.src_y = value;
- if (control -> isProtoStep8() == 1 &&
- renderExtension -> size_ >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
+ // Since ProtoStep8 (#issue 108)
+ if (renderExtension -> size_ >= MESSAGE_OFFSET_IF_PROTO_STEP_8)
{
//
// Offset X and Y.
diff --git a/nxcomp/RenderCompositeGlyphs.h b/nxcomp/RenderCompositeGlyphs.h
index 527fd3d12..9458ecb14 100644
--- a/nxcomp/RenderCompositeGlyphs.h
+++ b/nxcomp/RenderCompositeGlyphs.h
@@ -80,9 +80,8 @@ class MESSAGE_STORE : public MESSAGE_CLASS
virtual int identitySize(const unsigned char *buffer,
unsigned int size)
{
- unsigned int offset = (control -> isProtoStep8() == 1 ?
- MESSAGE_OFFSET_IF_PROTO_STEP_8 :
- MESSAGE_OFFSET);
+ // Since ProtoStep8 (#issue 108)
+ unsigned int offset = MESSAGE_OFFSET_IF_PROTO_STEP_8;
return (size >= offset ? offset : size);
}
diff --git a/nxcomp/RenderCompositeGlyphsCompat.cpp b/nxcomp/RenderCompositeGlyphsCompat.cpp
deleted file mode 100644
index 3fe10fafb..000000000
--- a/nxcomp/RenderCompositeGlyphsCompat.cpp
+++ /dev/null
@@ -1,602 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-//
-// Include the template for
-// this message class.
-//
-
-#include "RenderCompositeGlyphsCompat.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-
-#include MESSAGE_TAGS
-
-//
-// Message handling methods.
-//
-
-MESSAGE_BEGIN_ENCODE_SIZE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- //
- // The offset points 8 bytes after
- // the beginning of the data part.
- //
-
- #ifdef DEBUG
- *logofs << name() << ": Encoding value "
- << ((size - (MESSAGE_OFFSET - 8)) >> 2)
- << ".\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeCachedValue((size - (MESSAGE_OFFSET - 8)) >> 2, 16,
- clientCache -> renderLengthCache, 5);
-
- #ifdef TEST
- *logofs << name() << ": Encoded size with value "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_SIZE
-
-MESSAGE_BEGIN_DECODE_SIZE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- decodeBuffer.decodeCachedValue(size, 16,
- clientCache -> renderLengthCache, 5);
-
- #ifdef DEBUG
- *logofs << name() << ": Decoded value " << size
- << ".\n" << logofs_flush;
- #endif
-
- size = (MESSAGE_OFFSET - 8) + (size << 2);
-
- buffer = writeBuffer -> addMessage(size);
-
- #ifdef TEST
- *logofs << name() << ": Decoded size with value "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_SIZE
-
-MESSAGE_BEGIN_ENCODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeCachedValue(*(buffer + 4), 8,
- clientCache -> renderOpCache);
-
- encodeBuffer.encodeXidValue(GetULONG(buffer + 8, bigEndian),
- clientCache -> renderSrcPictureCache);
-
- encodeBuffer.encodeXidValue(GetULONG(buffer + 12, bigEndian),
- clientCache -> renderSrcPictureCache);
-
- encodeBuffer.encodeCachedValue(GetULONG(buffer + 16, bigEndian), 32,
- clientCache -> renderFormatCache);
-
- encodeBuffer.encodeCachedValue(GetULONG(buffer + 20, bigEndian), 29,
- clientCache -> renderGlyphSetCache);
-
- encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 24, bigEndian),
- clientCache -> renderLastX, 16,
- clientCache -> renderXCache, 11);
-
- encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 26, bigEndian),
- clientCache -> renderLastY, 16,
- clientCache -> renderYCache, 11);
-
- //
- // Try to save as many bits as possible by
- // encoding the information about the first
- // set of glyphs.
- //
-
- if (size >= MESSAGE_OFFSET)
- {
- unsigned int numGlyphs = *(buffer + 28);
-
- encodeBuffer.encodeCachedValue(numGlyphs, 8,
- clientCache -> renderNumGlyphsCache);
-
- encodeBuffer.encodeCachedValue(GetUINT(buffer + 32, bigEndian), 16,
- clientCache -> renderWidthCache, 11);
-
- encodeBuffer.encodeCachedValue(GetUINT(buffer + 34, bigEndian), 16,
- clientCache -> renderHeightCache, 11);
-
- //
- // Only manage the first set of glyphs,
- // that is in most cases the only one.
- //
-
- switch (*(buffer + 1))
- {
- case X_RenderCompositeGlyphs8:
- {
- if (numGlyphs & 0x03)
- {
- memset((unsigned char *) buffer + MESSAGE_OFFSET + numGlyphs, '\0',
- RoundUp4(numGlyphs) - numGlyphs);
- }
-
- break;
- }
- case X_RenderCompositeGlyphs16:
- {
- if (numGlyphs & 0x01)
- {
- memset((unsigned char *) buffer + MESSAGE_OFFSET + (numGlyphs * 2), '\0',
- RoundUp4(numGlyphs * 2) - numGlyphs * 2);
- }
-
- break;
- }
- }
-
- #ifdef TEST
- if (*(buffer + (size - 1)) != '\0')
- {
- *logofs << name() << ": WARNING! Final byte is non-zero with size "
- << size << " and " << (unsigned int) *(buffer + 28)
- << " glyphs.\n" << logofs_flush;
- }
- else
- {
- *logofs << name() << ": Final byte is zero with size "
- << size << " and " << (unsigned int) *(buffer + 28)
- << " glyphs.\n" << logofs_flush;
- }
- #endif
- }
-
- #ifdef TEST
- *logofs << name() << ": Encoded message. Type is "
- << (unsigned int) *(buffer + 1) << " size is "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_MESSAGE
-
-MESSAGE_BEGIN_DECODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- *(buffer + 1) = type;
-
- decodeBuffer.decodeCachedValue(*(buffer + 4), 8,
- clientCache -> renderOpCache);
-
- decodeBuffer.decodeXidValue(value,
- clientCache -> renderSrcPictureCache);
-
- PutULONG(value, buffer + 8, bigEndian);
-
- decodeBuffer.decodeXidValue(value,
- clientCache -> renderSrcPictureCache);
-
- PutULONG(value, buffer + 12, bigEndian);
-
- decodeBuffer.decodeCachedValue(value, 32,
- clientCache -> renderFormatCache);
-
- PutULONG(value, buffer + 16, bigEndian);
-
- decodeBuffer.decodeCachedValue(value, 29,
- clientCache -> renderGlyphSetCache);
-
- PutULONG(value, buffer + 20, bigEndian);
-
- decodeBuffer.decodeDiffCachedValue(value,
- clientCache -> renderLastX, 16,
- clientCache -> renderXCache, 11);
-
- PutUINT(clientCache -> renderLastX, buffer + 24, bigEndian);
-
- decodeBuffer.decodeDiffCachedValue(value,
- clientCache -> renderLastY, 16,
- clientCache -> renderYCache, 11);
-
- PutUINT(clientCache -> renderLastY, buffer + 26, bigEndian);
-
- if (size >= MESSAGE_OFFSET)
- {
- decodeBuffer.decodeCachedValue(value, 8,
- clientCache -> renderNumGlyphsCache);
-
- *(buffer + 28) = value;
-
- decodeBuffer.decodeCachedValue(value, 16,
- clientCache -> renderWidthCache, 11);
-
- PutUINT(value, buffer + 32, bigEndian);
-
- decodeBuffer.decodeCachedValue(value, 16,
- clientCache -> renderHeightCache, 11);
-
- PutUINT(value, buffer + 34, bigEndian);
- }
-
- #ifdef TEST
- *logofs << name() << ": Decoded message. Type is "
- << (unsigned int) type << " size is " << size
- << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_MESSAGE
-
-MESSAGE_BEGIN_ENCODE_DATA
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- switch (*(buffer + 1))
- {
- case X_RenderCompositeGlyphs8:
- {
- clientCache -> renderTextCompressor.reset();
-
- const unsigned char *next = buffer + MESSAGE_OFFSET;
-
- for (unsigned int i = MESSAGE_OFFSET; i < size; i++)
- {
- #ifdef DEBUG
- *logofs << name() << ": Encoding char with i = " << i
- << ".\n" << logofs_flush;
- #endif
-
- clientCache -> renderTextCompressor.
- encodeChar(*next++, encodeBuffer);
- }
-
- break;
- }
- case X_RenderCompositeGlyphs16:
- {
- for (unsigned int i = MESSAGE_OFFSET; i < size; i += 2)
- {
- value = GetUINT(buffer + i, bigEndian);
-
- #ifdef DEBUG
- *logofs << name() << ": Encoding short with i = " << i
- << ".\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeCachedValue(value, 16,
- *clientCache -> renderCompositeGlyphsDataCache[clientCache ->
- renderLastCompositeGlyphsData]);
-
- clientCache -> renderLastCompositeGlyphsData = value % 16;
- }
-
- break;
- }
- default:
- {
- for (unsigned int i = MESSAGE_OFFSET; i < size; i += 4)
- {
- value = GetULONG(buffer + i, bigEndian);
-
- #ifdef DEBUG
- *logofs << name() << ": Encoding long with i = " << i
- << ".\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeCachedValue(value, 32,
- *clientCache -> renderCompositeGlyphsDataCache[clientCache ->
- renderLastCompositeGlyphsData]);
-
- clientCache -> renderLastCompositeGlyphsData = value % 16;
- }
-
- break;
- }
- }
-
- #ifdef TEST
- *logofs << name() << ": Encoded " << size - MESSAGE_OFFSET
- << " bytes of data.\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_DATA
-
-MESSAGE_BEGIN_DECODE_DATA
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- switch (*(buffer + 1))
- {
- case X_RenderCompositeGlyphs8:
- {
- clientCache -> renderTextCompressor.reset();
-
- unsigned char *next = buffer + MESSAGE_OFFSET;
-
- for (unsigned int i = MESSAGE_OFFSET; i < size; i++)
- {
- #ifdef DEBUG
- *logofs << name() << ": Decoding char with i = " << i
- << ".\n" << logofs_flush;
- #endif
-
- *next++ = clientCache -> renderTextCompressor.
- decodeChar(decodeBuffer);
- }
-
- break;
- }
- case X_RenderCompositeGlyphs16:
- {
- for (unsigned int i = MESSAGE_OFFSET; i < size; i += 2)
- {
- #ifdef DEBUG
- *logofs << name() << ": Decoding short with i = " << i
- << ".\n" << logofs_flush;
- #endif
-
- decodeBuffer.decodeCachedValue(value, 16,
- *clientCache -> renderCompositeGlyphsDataCache[clientCache ->
- renderLastCompositeGlyphsData]);
-
- PutUINT(value, buffer + i, bigEndian);
-
- clientCache -> renderLastCompositeGlyphsData = value % 16;
- }
-
- break;
- }
- default:
- {
- for (unsigned int i = MESSAGE_OFFSET; i < size; i += 4)
- {
- #ifdef DEBUG
- *logofs << name() << ": Decoding long with i = " << i
- << ".\n" << logofs_flush;
- #endif
-
- decodeBuffer.decodeCachedValue(value, 32,
- *clientCache -> renderCompositeGlyphsDataCache[clientCache ->
- renderLastCompositeGlyphsData]);
-
- PutULONG(value, buffer + i, bigEndian);
-
- clientCache -> renderLastCompositeGlyphsData = value % 16;
- }
-
- break;
- }
- }
-
- #ifdef TEST
- *logofs << name() << ": Decoded " << size - MESSAGE_OFFSET
- << " bytes of data.\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_DATA
-
-MESSAGE_BEGIN_PARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- renderExtension -> data.composite_glyphs_compat.type = *(buffer + 1);
- renderExtension -> data.composite_glyphs_compat.op = *(buffer + 4);
-
- renderExtension -> data.composite_glyphs_compat.src_id = GetULONG(buffer + 8, bigEndian);
- renderExtension -> data.composite_glyphs_compat.dst_id = GetULONG(buffer + 12, bigEndian);
-
- renderExtension -> data.composite_glyphs_compat.format = GetULONG(buffer + 16, bigEndian);
- renderExtension -> data.composite_glyphs_compat.set_id = GetULONG(buffer + 20, bigEndian);
-
- renderExtension -> data.composite_glyphs_compat.src_x = GetUINT(buffer + 24, bigEndian);
- renderExtension -> data.composite_glyphs_compat.src_y = GetUINT(buffer + 26, bigEndian);
-
- if (size >= MESSAGE_OFFSET)
- {
- renderExtension -> data.composite_glyphs_compat.num_elm = *(buffer + 28);
-
- renderExtension -> data.composite_glyphs_compat.delta_x = GetUINT(buffer + 32, bigEndian);
- renderExtension -> data.composite_glyphs_compat.delta_y = GetUINT(buffer + 34, bigEndian);
- }
-
- #ifdef TEST
- *logofs << name() << ": Parsed identity. Type is "
- << (unsigned int) renderExtension -> data.composite_glyphs_compat.type
- << " size is " << renderExtension -> size_ << " identity size "
- << renderExtension -> i_size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_PARSE_IDENTITY
-
-MESSAGE_BEGIN_UNPARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- *(buffer + 1) = renderExtension -> data.composite_glyphs_compat.type;
- *(buffer + 4) = renderExtension -> data.composite_glyphs_compat.op;
-
- PutULONG(renderExtension -> data.composite_glyphs_compat.src_id, buffer + 8, bigEndian);
- PutULONG(renderExtension -> data.composite_glyphs_compat.dst_id, buffer + 12, bigEndian);
-
- PutULONG(renderExtension -> data.composite_glyphs_compat.format, buffer + 16, bigEndian);
- PutULONG(renderExtension -> data.composite_glyphs_compat.set_id, buffer + 20, bigEndian);
-
- PutUINT(renderExtension -> data.composite_glyphs_compat.src_x, buffer + 24, bigEndian);
- PutUINT(renderExtension -> data.composite_glyphs_compat.src_y, buffer + 26, bigEndian);
-
- if (size >= MESSAGE_OFFSET)
- {
- *(buffer + 28) = renderExtension -> data.composite_glyphs_compat.num_elm;
-
- PutUINT(renderExtension -> data.composite_glyphs_compat.delta_x, buffer + 32, bigEndian);
- PutUINT(renderExtension -> data.composite_glyphs_compat.delta_y, buffer + 34, bigEndian);
-
- #ifdef DEBUG
- *logofs << name() << ": Len is " << (unsigned int) *(buffer + 28)
- << " delta X is " << GetUINT(buffer + 32, bigEndian)
- << " delta Y is " << GetUINT(buffer + 34, bigEndian)
- << ".\n" << logofs_flush;
-
- *logofs << name() << ": Pad 1 is " << (unsigned int) *(buffer + 29)
- << " pad 2 and 3 are " << GetUINT(buffer + 30, bigEndian)
- << ".\n" << logofs_flush;
- #endif
- }
-
- #ifdef TEST
- *logofs << name() << ": Unparsed identity. Type is "
- << (unsigned int) renderExtension -> data.composite_glyphs_compat.type
- << " size is " << renderExtension -> size_ << " identity size "
- << renderExtension -> i_size_ << ".\n" << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_UNPARSE_IDENTITY
-
-MESSAGE_BEGIN_IDENTITY_CHECKSUM
-{
- //
- // Include minor opcode, size and
- // the composite operator in the
- // identity.
- //
-
- md5_append(md5_state, buffer + 1, 4);
-
- //
- // Include the format and the source
- // x and y fields.
- //
-
- md5_append(md5_state, buffer + 16, 4);
- md5_append(md5_state, buffer + 24, 4);
-
- //
- // Include the number of glyphs.
- //
-
- if (size >= MESSAGE_OFFSET)
- {
- md5_append(md5_state, buffer + 28, 1);
- }
-}
-MESSAGE_END_IDENTITY_CHECKSUM
-
-MESSAGE_BEGIN_ENCODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
- RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeXidValue(renderExtension -> data.composite_glyphs_compat.src_id,
- clientCache -> renderSrcPictureCache);
-
- cachedRenderExtension -> data.composite_glyphs_compat.src_id =
- renderExtension -> data.composite_glyphs_compat.src_id;
-
- encodeBuffer.encodeXidValue(renderExtension -> data.composite_glyphs_compat.dst_id,
- clientCache -> renderSrcPictureCache);
-
- cachedRenderExtension -> data.composite_glyphs_compat.dst_id =
- renderExtension -> data.composite_glyphs_compat.dst_id;
-
- encodeBuffer.encodeCachedValue(renderExtension -> data.composite_glyphs_compat.set_id, 29,
- clientCache -> renderGlyphSetCache);
-
- cachedRenderExtension -> data.composite_glyphs_compat.set_id =
- renderExtension -> data.composite_glyphs_compat.set_id;
-
- if (renderExtension -> size_ >= MESSAGE_OFFSET)
- {
- encodeBuffer.encodeCachedValue(renderExtension -> data.composite_glyphs_compat.delta_x, 16,
- clientCache -> renderWidthCache, 11);
-
- cachedRenderExtension -> data.composite_glyphs_compat.delta_x =
- renderExtension -> data.composite_glyphs_compat.delta_x;
-
- encodeBuffer.encodeCachedValue(renderExtension -> data.composite_glyphs_compat.delta_y, 16,
- clientCache -> renderHeightCache, 11);
-
- cachedRenderExtension -> data.composite_glyphs_compat.delta_y =
- renderExtension -> data.composite_glyphs_compat.delta_y;
- }
-
- #ifdef TEST
- *logofs << name() << ": Encoded update. Type is "
- << (unsigned int) renderExtension -> data.composite_glyphs_compat.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_UPDATE
-
-MESSAGE_BEGIN_DECODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- decodeBuffer.decodeXidValue(renderExtension -> data.composite_glyphs_compat.src_id,
- clientCache -> renderSrcPictureCache);
-
- decodeBuffer.decodeXidValue(renderExtension -> data.composite_glyphs_compat.dst_id,
- clientCache -> renderSrcPictureCache);
-
- decodeBuffer.decodeCachedValue(renderExtension -> data.composite_glyphs_compat.set_id, 29,
- clientCache -> renderGlyphSetCache);
-
- if (renderExtension -> size_ >= MESSAGE_OFFSET)
- {
- unsigned int value;
-
- decodeBuffer.decodeCachedValue(value, 16,
- clientCache -> renderWidthCache, 11);
-
- renderExtension -> data.composite_glyphs_compat.delta_x = value;
-
- decodeBuffer.decodeCachedValue(value, 16,
- clientCache -> renderHeightCache, 11);
-
- renderExtension -> data.composite_glyphs_compat.delta_y = value;
- }
-
- #ifdef TEST
- *logofs << name() << ": Decoded update. Type is "
- << (unsigned int) renderExtension -> data.composite_glyphs_compat.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_UPDATE
diff --git a/nxcomp/RenderCompositeGlyphsCompat.h b/nxcomp/RenderCompositeGlyphsCompat.h
deleted file mode 100644
index 7a00608c2..000000000
--- a/nxcomp/RenderCompositeGlyphsCompat.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef RenderCompositeGlyphsCompat_H
-#define RenderCompositeGlyphsCompat_H
-
-//
-// Define the characteristics
-// of this message class here.
-//
-
-#undef MESSAGE_NAME
-#define MESSAGE_NAME "RenderCompositeGlyphsCompat"
-
-#undef MESSAGE_STORE
-#define MESSAGE_STORE RenderCompositeGlyphsCompatStore
-
-#undef MESSAGE_CLASS
-#define MESSAGE_CLASS RenderMinorExtensionStore
-
-#undef MESSAGE_METHODS
-#define MESSAGE_METHODS "RenderMinorExtensionMethods.h"
-
-#undef MESSAGE_HEADERS
-#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h"
-
-#undef MESSAGE_TAGS
-#define MESSAGE_TAGS "RenderMinorExtensionTags.h"
-
-#undef MESSAGE_OFFSET
-#define MESSAGE_OFFSET 36
-
-#undef MESSAGE_HAS_SIZE
-#define MESSAGE_HAS_SIZE 1
-
-#undef MESSAGE_HAS_DATA
-#define MESSAGE_HAS_DATA 1
-
-#undef MESSAGE_HAS_FILTER
-#define MESSAGE_HAS_FILTER 0
-
-//
-// Declare the message class.
-//
-
-#include MESSAGE_HEADERS
-
-class MESSAGE_STORE : public MESSAGE_CLASS
-{
- public:
-
- virtual const char *name() const
- {
- return MESSAGE_NAME;
- }
-
- virtual int identitySize(const unsigned char *buffer,
- unsigned int size)
- {
- return (size >= MESSAGE_OFFSET ? MESSAGE_OFFSET : size);
- }
-
- #include MESSAGE_METHODS
-};
-
-#endif /* RenderCompositeGlyphsCompat_H */
diff --git a/nxcomp/RenderCreateGlyphSetCompat.cpp b/nxcomp/RenderCreateGlyphSetCompat.cpp
deleted file mode 100644
index 49e9f741d..000000000
--- a/nxcomp/RenderCreateGlyphSetCompat.cpp
+++ /dev/null
@@ -1,231 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-//
-// Include the template for
-// this message class.
-//
-
-#include "RenderCreateGlyphSetCompat.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-
-#include MESSAGE_TAGS
-
-//
-// Message handling methods.
-//
-
-MESSAGE_BEGIN_ENCODE_SIZE
-{
- //
- // Strictly speaking this request doesn't have
- // a data part. We encode the fields past the
- // offset as they were data. An improvement
- // would be to encode the format field using
- // the cache.
- //
-
- #ifdef TEST
- *logofs << name() << ": Encoded size with value "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_SIZE
-
-MESSAGE_BEGIN_DECODE_SIZE
-{
- size = MESSAGE_OFFSET + 4;
-
- buffer = writeBuffer -> addMessage(size);
-
- #ifdef TEST
- *logofs << name() << ": Decoded size with value "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_SIZE
-
-MESSAGE_BEGIN_ENCODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeDiffCachedValue(GetULONG(buffer + 4, bigEndian),
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- #ifdef TEST
- *logofs << name() << ": Encoded message. Type is "
- << (unsigned int) *(buffer + 1) << " size is "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_MESSAGE
-
-MESSAGE_BEGIN_DECODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- *(buffer + 1) = type;
-
- decodeBuffer.decodeDiffCachedValue(value,
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- PutULONG(value, buffer + 4, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Decoded message. Type is "
- << (unsigned int) type << " size is " << size
- << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_MESSAGE
-
-MESSAGE_BEGIN_ENCODE_DATA
-{
- #ifdef DEBUG
-
- *logofs << name() << ": Glyphset is " << GetULONG(buffer + 4, bigEndian)
- << ".\n" << logofs_flush;
-
- if (size > MESSAGE_OFFSET)
- {
- *logofs << name() << ": Format is " << GetULONG(buffer + 8, bigEndian)
- << ".\n" << logofs_flush;
- }
-
- if (size > MESSAGE_OFFSET + 4)
- {
- *logofs << name() << ": WARNING! Unexpected size " << size
- << ".\n" << logofs_flush;
- }
-
- #endif
-
- encodeLongData(encodeBuffer, buffer, MESSAGE_OFFSET,
- size, bigEndian, channelCache);
-
- #ifdef TEST
- *logofs << name() << ": Encoded " << size - MESSAGE_OFFSET
- << " bytes of data.\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_DATA
-
-MESSAGE_BEGIN_DECODE_DATA
-{
- decodeLongData(decodeBuffer, buffer, MESSAGE_OFFSET,
- size, bigEndian, channelCache);
-
- #ifdef TEST
- *logofs << name() << ": Decoded " << size - MESSAGE_OFFSET
- << " bytes of data.\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_DATA
-
-MESSAGE_BEGIN_PARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- renderExtension -> data.create_set.type = *(buffer + 1);
-
- renderExtension -> data.create_set.set_id = GetULONG(buffer + 4, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Parsed identity. Type is "
- << (unsigned int) renderExtension -> data.create_set.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_PARSE_IDENTITY
-
-MESSAGE_BEGIN_UNPARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- *(buffer + 1) = renderExtension -> data.create_set.type;
-
- PutULONG(renderExtension -> data.create_set.set_id, buffer + 4, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Unparsed identity. Type is "
- << (unsigned int) renderExtension -> data.create_set.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_UNPARSE_IDENTITY
-
-MESSAGE_BEGIN_IDENTITY_CHECKSUM
-{
- md5_append(md5_state, buffer + 1, 3);
-}
-MESSAGE_END_IDENTITY_CHECKSUM
-
-MESSAGE_BEGIN_ENCODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
- RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeDiffCachedValue(renderExtension -> data.create_set.set_id,
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- cachedRenderExtension -> data.create_set.set_id =
- renderExtension -> data.create_set.set_id;
-
- #ifdef TEST
- *logofs << name() << ": Encoded update. Type is "
- << (unsigned int) renderExtension -> data.create_set.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_UPDATE
-
-MESSAGE_BEGIN_DECODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- decodeBuffer.decodeDiffCachedValue(renderExtension -> data.create_set.set_id,
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- #ifdef TEST
- *logofs << name() << ": Decoded update. Type is "
- << (unsigned int) renderExtension -> data.create_set.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_UPDATE
diff --git a/nxcomp/RenderCreateGlyphSetCompat.h b/nxcomp/RenderCreateGlyphSetCompat.h
deleted file mode 100644
index 174313e10..000000000
--- a/nxcomp/RenderCreateGlyphSetCompat.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef RenderCreateGlyphSetCompat_H
-#define RenderCreateGlyphSetCompat_H
-
-//
-// Define the characteristics
-// of this message class here.
-//
-
-#undef MESSAGE_NAME
-#define MESSAGE_NAME "RenderCreateGlyphSetCompat"
-
-#undef MESSAGE_STORE
-#define MESSAGE_STORE RenderCreateGlyphSetCompatStore
-
-#undef MESSAGE_CLASS
-#define MESSAGE_CLASS RenderMinorExtensionStore
-
-#undef MESSAGE_METHODS
-#define MESSAGE_METHODS "RenderMinorExtensionMethods.h"
-
-#undef MESSAGE_HEADERS
-#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h"
-
-#undef MESSAGE_TAGS
-#define MESSAGE_TAGS "RenderMinorExtensionTags.h"
-
-#undef MESSAGE_OFFSET
-#define MESSAGE_OFFSET 8
-
-#undef MESSAGE_HAS_SIZE
-#define MESSAGE_HAS_SIZE 1
-
-#undef MESSAGE_HAS_DATA
-#define MESSAGE_HAS_DATA 1
-
-#undef MESSAGE_HAS_FILTER
-#define MESSAGE_HAS_FILTER 0
-
-//
-// Declare the message class.
-//
-
-#include MESSAGE_HEADERS
-
-class MESSAGE_STORE : public MESSAGE_CLASS
-{
- public:
-
- virtual const char *name() const
- {
- return MESSAGE_NAME;
- }
-
- virtual int identitySize(const unsigned char *buffer,
- unsigned int size)
- {
- return MESSAGE_OFFSET;
- }
-
- #include MESSAGE_METHODS
-};
-
-#endif /* RenderCreateGlyphSetCompat_H */
diff --git a/nxcomp/RenderCreatePictureCompat.cpp b/nxcomp/RenderCreatePictureCompat.cpp
deleted file mode 100644
index fa4dcb400..000000000
--- a/nxcomp/RenderCreatePictureCompat.cpp
+++ /dev/null
@@ -1,262 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-//
-// Include the template for
-// this message class.
-//
-
-#include "RenderCreatePictureCompat.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-
-#include MESSAGE_TAGS
-
-//
-// Message handling methods.
-//
-
-MESSAGE_BEGIN_ENCODE_SIZE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeCachedValue((size - MESSAGE_OFFSET) >> 2, 16,
- clientCache -> renderLengthCache, 5);
-
- #ifdef TEST
- *logofs << name() << ": Encoded size with value "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_SIZE
-
-MESSAGE_BEGIN_DECODE_SIZE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- decodeBuffer.decodeCachedValue(size, 16,
- clientCache -> renderLengthCache, 5);
-
- size = MESSAGE_OFFSET + (size << 2);
-
- buffer = writeBuffer -> addMessage(size);
-
- #ifdef TEST
- *logofs << name() << ": Decoded size with value "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_SIZE
-
-MESSAGE_BEGIN_ENCODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeDiffCachedValue(GetULONG(buffer + 4, bigEndian),
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- encodeBuffer.encodeXidValue(GetULONG(buffer + 8, bigEndian),
- clientCache -> drawableCache);
-
- encodeBuffer.encodeCachedValue(GetULONG(buffer + 12, bigEndian), 32,
- clientCache -> renderFormatCache);
-
- encodeBuffer.encodeCachedValue(GetULONG(buffer + 16, bigEndian), 32,
- clientCache -> renderValueMaskCache);
-
- #ifdef TEST
- *logofs << name() << ": Encoded message. Type is "
- << (unsigned int) *(buffer + 1) << " size is "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_MESSAGE
-
-MESSAGE_BEGIN_DECODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- *(buffer + 1) = type;
-
- decodeBuffer.decodeDiffCachedValue(value,
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- PutULONG(value, buffer + 4, bigEndian);
-
- decodeBuffer.decodeXidValue(value,
- clientCache -> drawableCache);
-
- PutULONG(value, buffer + 8, bigEndian);
-
- decodeBuffer.decodeCachedValue(value, 32,
- clientCache -> renderFormatCache);
-
- PutULONG(value, buffer + 12, bigEndian);
-
- decodeBuffer.decodeCachedValue(value, 32,
- clientCache -> renderValueMaskCache);
-
- PutULONG(value, buffer + 16, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Decoded message. Type is "
- << (unsigned int) type << " size is " << size
- << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_MESSAGE
-
-MESSAGE_BEGIN_ENCODE_DATA
-{
- encodeLongData(encodeBuffer, buffer, MESSAGE_OFFSET,
- size, bigEndian, channelCache);
-
- #ifdef TEST
- *logofs << name() << ": Encoded " << size - MESSAGE_OFFSET
- << " bytes of data.\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_DATA
-
-MESSAGE_BEGIN_DECODE_DATA
-{
- decodeLongData(decodeBuffer, buffer, MESSAGE_OFFSET,
- size, bigEndian, channelCache);
-
- #ifdef TEST
- *logofs << name() << ": Decoded " << size - MESSAGE_OFFSET
- << " bytes of data.\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_DATA
-
-MESSAGE_BEGIN_PARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- renderExtension -> data.create_picture.type = *(buffer + 1);
-
- renderExtension -> data.create_picture.src_id = GetULONG(buffer + 4, bigEndian);
- renderExtension -> data.create_picture.dst_id = GetULONG(buffer + 8, bigEndian);
-
- renderExtension -> data.create_picture.format = GetULONG(buffer + 12, bigEndian);
- renderExtension -> data.create_picture.mask = GetULONG(buffer + 16, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Parsed identity. Type is "
- << (unsigned int) renderExtension -> data.create_picture.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_PARSE_IDENTITY
-
-MESSAGE_BEGIN_UNPARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- *(buffer + 1) = renderExtension -> data.create_picture.type;
-
- PutULONG(renderExtension -> data.create_picture.src_id, buffer + 4, bigEndian);
- PutULONG(renderExtension -> data.create_picture.dst_id, buffer + 8, bigEndian);
-
- PutULONG(renderExtension -> data.create_picture.format, buffer + 12, bigEndian);
- PutULONG(renderExtension -> data.create_picture.mask, buffer + 16, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Unparsed identity. Type is "
- << (unsigned int) renderExtension -> data.create_picture.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_UNPARSE_IDENTITY
-
-MESSAGE_BEGIN_IDENTITY_CHECKSUM
-{
- md5_append(md5_state, buffer + 1, 3);
- md5_append(md5_state, buffer + 12, 8);
-}
-MESSAGE_END_IDENTITY_CHECKSUM
-
-MESSAGE_BEGIN_ENCODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
- RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- #ifdef DEBUG
- *logofs << name() << ": Encoding new id value "
- << renderExtension -> data.create_picture.src_id -
- clientCache -> renderLastId << ".\n";
- #endif
-
- encodeBuffer.encodeDiffCachedValue(renderExtension -> data.create_picture.src_id,
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- cachedRenderExtension -> data.create_picture.src_id =
- renderExtension -> data.create_picture.src_id;
-
- encodeBuffer.encodeXidValue(renderExtension -> data.create_picture.dst_id,
- clientCache -> drawableCache);
-
- cachedRenderExtension -> data.create_picture.dst_id =
- renderExtension -> data.create_picture.dst_id;
-
- #ifdef TEST
- *logofs << name() << ": Encoded update. Type is "
- << (unsigned int) renderExtension -> data.create_picture.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_UPDATE
-
-MESSAGE_BEGIN_DECODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- decodeBuffer.decodeDiffCachedValue(renderExtension -> data.create_picture.src_id,
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- decodeBuffer.decodeXidValue(renderExtension -> data.create_picture.dst_id,
- clientCache -> drawableCache);
-
- #ifdef TEST
- *logofs << name() << ": Decoded update. Type is "
- << (unsigned int) renderExtension -> data.create_picture.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_UPDATE
diff --git a/nxcomp/RenderCreatePictureCompat.h b/nxcomp/RenderCreatePictureCompat.h
deleted file mode 100644
index 15c8c85b3..000000000
--- a/nxcomp/RenderCreatePictureCompat.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef RenderCreatePictureCompat_H
-#define RenderCreatePictureCompat_H
-
-//
-// Define the characteristics
-// of this message class here.
-//
-
-#undef MESSAGE_NAME
-#define MESSAGE_NAME "RenderCreatePictureCompat"
-
-#undef MESSAGE_STORE
-#define MESSAGE_STORE RenderCreatePictureCompatStore
-
-#undef MESSAGE_CLASS
-#define MESSAGE_CLASS RenderMinorExtensionStore
-
-#undef MESSAGE_METHODS
-#define MESSAGE_METHODS "RenderMinorExtensionMethods.h"
-
-#undef MESSAGE_HEADERS
-#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h"
-
-#undef MESSAGE_TAGS
-#define MESSAGE_TAGS "RenderMinorExtensionTags.h"
-
-#undef MESSAGE_OFFSET
-#define MESSAGE_OFFSET 20
-
-#undef MESSAGE_HAS_SIZE
-#define MESSAGE_HAS_SIZE 1
-
-#undef MESSAGE_HAS_DATA
-#define MESSAGE_HAS_DATA 1
-
-#undef MESSAGE_HAS_FILTER
-#define MESSAGE_HAS_FILTER 0
-
-//
-// Declare the message class.
-//
-
-#include MESSAGE_HEADERS
-
-class MESSAGE_STORE : public MESSAGE_CLASS
-{
- public:
-
- virtual const char *name() const
- {
- return MESSAGE_NAME;
- }
-
- virtual int identitySize(const unsigned char *buffer,
- unsigned int size)
- {
- return MESSAGE_OFFSET;
- }
-
- #include MESSAGE_METHODS
-};
-
-#endif /* RenderCreatePictureCompat_H */
diff --git a/nxcomp/RenderExtension.cpp b/nxcomp/RenderExtension.cpp
index 79c26e64e..43933748c 100644
--- a/nxcomp/RenderExtension.cpp
+++ b/nxcomp/RenderExtension.cpp
@@ -42,13 +42,6 @@
#include "RenderTrapezoids.h"
#include "RenderTriangles.h"
-#include "RenderCreatePictureCompat.h"
-#include "RenderFreePictureCompat.h"
-#include "RenderPictureClipCompat.h"
-#include "RenderCreateGlyphSetCompat.h"
-#include "RenderCompositeCompat.h"
-#include "RenderCompositeGlyphsCompat.h"
-
//
// Set the verbosity level.
//
@@ -82,46 +75,27 @@ RenderExtensionStore::RenderExtensionStore(StaticCompressor *compressor)
minors_[X_RenderFillRectangles] = new RenderFillRectanglesStore();
minors_[X_RenderAddGlyphs] = new RenderAddGlyphsStore();
- if (control -> isProtoStep7() == 1)
- {
- minors_[X_RenderCreatePicture] = new RenderCreatePictureStore();
- minors_[X_RenderFreePicture] = new RenderFreePictureStore();
- minors_[X_RenderSetPictureClipRectangles] = new RenderPictureClipStore();
- minors_[X_RenderCreateGlyphSet] = new RenderCreateGlyphSetStore();
- minors_[X_RenderComposite] = new RenderCompositeStore();
- minors_[X_RenderCompositeGlyphs8] = new RenderCompositeGlyphsStore();
- minors_[X_RenderCompositeGlyphs16] = new RenderCompositeGlyphsStore();
- minors_[X_RenderCompositeGlyphs32] = new RenderCompositeGlyphsStore();
-
- minors_[X_RenderSetPictureTransform] = new RenderPictureTransformStore();
- minors_[X_RenderSetPictureFilter] = new RenderPictureFilterStore();
- minors_[X_RenderFreeGlyphSet] = new RenderFreeGlyphSetStore();
- minors_[X_RenderTrapezoids] = new RenderTrapezoidsStore();
- minors_[X_RenderTriangles] = new RenderTrianglesStore();
- }
- else
- {
- minors_[X_RenderCreatePicture] = new RenderCreatePictureCompatStore();
- minors_[X_RenderFreePicture] = new RenderFreePictureCompatStore();
- minors_[X_RenderSetPictureClipRectangles] = new RenderPictureClipCompatStore();
- minors_[X_RenderCreateGlyphSet] = new RenderCreateGlyphSetCompatStore();
- minors_[X_RenderComposite] = new RenderCompositeCompatStore();
- minors_[X_RenderCompositeGlyphs8] = new RenderCompositeGlyphsCompatStore();
- minors_[X_RenderCompositeGlyphs16] = new RenderCompositeGlyphsCompatStore();
- minors_[X_RenderCompositeGlyphs32] = new RenderCompositeGlyphsCompatStore();
- }
+ // Since ProtoStep7 (#issue 108)
+ minors_[X_RenderCreatePicture] = new RenderCreatePictureStore();
+ minors_[X_RenderFreePicture] = new RenderFreePictureStore();
+ minors_[X_RenderSetPictureClipRectangles] = new RenderPictureClipStore();
+ minors_[X_RenderCreateGlyphSet] = new RenderCreateGlyphSetStore();
+ minors_[X_RenderComposite] = new RenderCompositeStore();
+ minors_[X_RenderCompositeGlyphs8] = new RenderCompositeGlyphsStore();
+ minors_[X_RenderCompositeGlyphs16] = new RenderCompositeGlyphsStore();
+ minors_[X_RenderCompositeGlyphs32] = new RenderCompositeGlyphsStore();
+
+ minors_[X_RenderSetPictureTransform] = new RenderPictureTransformStore();
+ minors_[X_RenderSetPictureFilter] = new RenderPictureFilterStore();
+ minors_[X_RenderFreeGlyphSet] = new RenderFreeGlyphSetStore();
+ minors_[X_RenderTrapezoids] = new RenderTrapezoidsStore();
+ minors_[X_RenderTriangles] = new RenderTrianglesStore();
dataLimit = RENDEREXTENSION_DATA_LIMIT;
dataOffset = RENDEREXTENSION_DATA_OFFSET;
- if (control -> isProtoStep7() == 1)
- {
- cacheSlots = RENDEREXTENSION_CACHE_SLOTS_IF_PROTO_STEP_7;
- }
- else
- {
- cacheSlots = RENDEREXTENSION_CACHE_SLOTS;
- }
+ // Since ProtoStep7 (#issue 108)
+ cacheSlots = RENDEREXTENSION_CACHE_SLOTS_IF_PROTO_STEP_7;
cacheThreshold = RENDEREXTENSION_CACHE_THRESHOLD;
cacheLowerThreshold = RENDEREXTENSION_CACHE_LOWER_THRESHOLD;
@@ -268,204 +242,78 @@ void RenderMinorExtensionStore::encodeLongData(EncodeBuffer &encodeBuffer, const
unsigned int offset, unsigned int size, int bigEndian,
ChannelCache *channelCache) const
{
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeLongData(buffer + offset, size - offset);
-
- #ifdef TEST
- *logofs << name() << ": Encoded " << size - offset
- << " bytes of long data.\n" << logofs_flush;
- #endif
-
- return;
- }
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- for (unsigned int i = offset, c = (offset - 4) % 16; i < size; i += 4)
- {
- #ifdef DEBUG
- *logofs << name() << ": Encoding int with i = " << i << " c = "
- << c << ".\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeCachedValue(GetULONG(buffer + i, bigEndian), 32,
- *clientCache -> renderDataCache[c]);
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeLongData(buffer + offset, size - offset);
- if (++c == 16) c = 0;
- }
+ #ifdef TEST
+ *logofs << name() << ": Encoded " << size - offset
+ << " bytes of long data.\n" << logofs_flush;
+ #endif
}
void RenderMinorExtensionStore::encodeIntData(EncodeBuffer &encodeBuffer, const unsigned char *buffer,
unsigned int offset, unsigned int size, int bigEndian,
ChannelCache *channelCache) const
{
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeIntData(buffer + offset, size - offset);
-
- #ifdef TEST
- *logofs << name() << ": Encoded " << size - offset
- << " bytes of int data.\n" << logofs_flush;
- #endif
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeIntData(buffer + offset, size - offset);
- return;
- }
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- for (unsigned int i = offset, c = (offset - 4) % 16; i < size; i += 2)
- {
- #ifdef DEBUG
- *logofs << name() << ": Encoding int with i = " << i << " c = "
- << c << ".\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeCachedValue(GetUINT(buffer + i, bigEndian), 16,
- *clientCache -> renderDataCache[c]);
-
- if (++c == 16) c = 0;
- }
+ #ifdef TEST
+ *logofs << name() << ": Encoded " << size - offset
+ << " bytes of int data.\n" << logofs_flush;
+ #endif
}
void RenderMinorExtensionStore::encodeCharData(EncodeBuffer &encodeBuffer, const unsigned char *buffer,
unsigned int offset, unsigned int size, int bigEndian,
ChannelCache *channelCache) const
{
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(buffer + offset, size - offset);
-
- #ifdef TEST
- *logofs << name() << ": Encoded " << size - offset
- << " bytes of text data.\n" << logofs_flush;
- #endif
-
- return;
- }
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- clientCache -> renderTextCompressor.reset();
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(buffer + offset, size - offset);
- const unsigned char *next = buffer + offset;
-
- for (unsigned int i = offset; i < size; i++)
- {
- #ifdef DEBUG
- *logofs << name() << ": Encoding char with i = " << i
- << ".\n" << logofs_flush;
- #endif
-
- clientCache -> renderTextCompressor.
- encodeChar(*next++, encodeBuffer);
- }
+ #ifdef TEST
+ *logofs << name() << ": Encoded " << size - offset
+ << " bytes of text data.\n" << logofs_flush;
+ #endif
}
void RenderMinorExtensionStore::decodeLongData(DecodeBuffer &decodeBuffer, unsigned char *buffer,
unsigned int offset, unsigned int size, int bigEndian,
ChannelCache *channelCache) const
{
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeLongData(buffer + offset, size - offset);
-
- #ifdef TEST
- *logofs << name() << ": Decoded " << size - offset
- << " bytes of long data.\n" << logofs_flush;
- #endif
-
- return;
- }
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- for (unsigned int i = offset, c = (offset - 4) % 16; i < size; i += 4)
- {
- #ifdef DEBUG
- *logofs << name() << ": Decoding int with i = " << i << " c = "
- << c << ".\n" << logofs_flush;
- #endif
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeLongData(buffer + offset, size - offset);
- decodeBuffer.decodeCachedValue(value, 32,
- *clientCache -> renderDataCache[c]);
-
- PutULONG(value, buffer + i, bigEndian);
-
- if (++c == 16) c = 0;
- }
+ #ifdef TEST
+ *logofs << name() << ": Decoded " << size - offset
+ << " bytes of long data.\n" << logofs_flush;
+ #endif
}
void RenderMinorExtensionStore::decodeIntData(DecodeBuffer &decodeBuffer, unsigned char *buffer,
unsigned int offset, unsigned int size, int bigEndian,
ChannelCache *channelCache) const
{
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeIntData(buffer + offset, size - offset);
-
- #ifdef TEST
- *logofs << name() << ": Decoded " << size - offset
- << " bytes of int data.\n" << logofs_flush;
- #endif
-
- return;
- }
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- for (unsigned int i = offset, c = (offset - 4) % 16; i < size; i += 2)
- {
- #ifdef DEBUG
- *logofs << name() << ": Decoding int with i = " << i << " c = "
- << c << ".\n" << logofs_flush;
- #endif
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeIntData(buffer + offset, size - offset);
- decodeBuffer.decodeCachedValue(value, 16,
- *clientCache -> renderDataCache[c]);
-
- PutUINT(value, buffer + i, bigEndian);
-
- if (++c == 16) c = 0;
- }
+ #ifdef TEST
+ *logofs << name() << ": Decoded " << size - offset
+ << " bytes of int data.\n" << logofs_flush;
+ #endif
}
void RenderMinorExtensionStore::decodeCharData(DecodeBuffer &decodeBuffer, unsigned char *buffer,
unsigned int offset, unsigned int size, int bigEndian,
ChannelCache *channelCache) const
{
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(buffer + offset, size - offset);
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(buffer + offset, size - offset);
- #ifdef TEST
- *logofs << name() << ": Decoded " << size - offset
- << " bytes of text data.\n" << logofs_flush;
- #endif
-
- return;
- }
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- clientCache -> renderTextCompressor.reset();
-
- unsigned char *next = buffer + offset;
-
- for (unsigned int i = offset; i < size; i++)
- {
- #ifdef DEBUG
- *logofs << name() << ": Decoding char with i = " << i
- << ".\n" << logofs_flush;
- #endif
-
- *next++ = clientCache -> renderTextCompressor.
- decodeChar(decodeBuffer);
- }
+ #ifdef TEST
+ *logofs << name() << ": Decoded " << size - offset
+ << " bytes of text data.\n" << logofs_flush;
+ #endif
}
void RenderMinorExtensionStore::parseIntData(const Message *message, const unsigned char *buffer,
diff --git a/nxcomp/RenderExtension.h b/nxcomp/RenderExtension.h
index 275ef1c1d..7ccf54068 100644
--- a/nxcomp/RenderExtension.h
+++ b/nxcomp/RenderExtension.h
@@ -44,7 +44,6 @@
#define RENDEREXTENSION_DATA_LIMIT 6144
#define RENDEREXTENSION_DATA_OFFSET 36
-#define RENDEREXTENSION_CACHE_SLOTS 6000
#define RENDEREXTENSION_CACHE_THRESHOLD 20
#define RENDEREXTENSION_CACHE_LOWER_THRESHOLD 10
@@ -83,13 +82,6 @@ class RenderExtensionMessage : public Message
friend class RenderTrapezoidsStore;
friend class RenderTrianglesStore;
- friend class RenderCreatePictureCompatStore;
- friend class RenderFreePictureCompatStore;
- friend class RenderPictureClipCompatStore;
- friend class RenderCreateGlyphSetCompatStore;
- friend class RenderCompositeCompatStore;
- friend class RenderCompositeGlyphsCompatStore;
-
public:
RenderExtensionMessage()
diff --git a/nxcomp/RenderFreePictureCompat.cpp b/nxcomp/RenderFreePictureCompat.cpp
deleted file mode 100644
index fb4c7ac54..000000000
--- a/nxcomp/RenderFreePictureCompat.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-//
-// Include the template for
-// this message class.
-//
-
-#include "RenderFreePictureCompat.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-
-#include MESSAGE_TAGS
-
-//
-// Message handling methods.
-//
-
-MESSAGE_BEGIN_ENCODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeDiffCachedValue(GetULONG(buffer + 4, bigEndian),
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- #ifdef TEST
- *logofs << name() << ": Encoded message. Type is "
- << (unsigned int) *(buffer + 1) << " size is "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_MESSAGE
-
-MESSAGE_BEGIN_DECODE_MESSAGE
-{
- unsigned int value;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- *(buffer + 1) = type;
-
- decodeBuffer.decodeDiffCachedValue(value,
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- PutULONG(value, buffer + 4, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Decoded message. Type is "
- << (unsigned int) type << " size is " << size
- << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_MESSAGE
-
-MESSAGE_BEGIN_PARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- renderExtension -> data.free_picture.type = *(buffer + 1);
-
- renderExtension -> data.free_picture.src_id = GetULONG(buffer + 4, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Parsed identity. Type is "
- << (unsigned int) renderExtension -> data.free_picture.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_PARSE_IDENTITY
-
-MESSAGE_BEGIN_UNPARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- *(buffer + 1) = renderExtension -> data.free_picture.type;
-
- PutULONG(renderExtension -> data.free_picture.src_id, buffer + 4, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Unparsed identity. Type is "
- << (unsigned int) renderExtension -> data.free_picture.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_UNPARSE_IDENTITY
-
-MESSAGE_BEGIN_IDENTITY_CHECKSUM
-{
- md5_append(md5_state, buffer + 1, 3);
-}
-MESSAGE_END_IDENTITY_CHECKSUM
-
-MESSAGE_BEGIN_ENCODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
- RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeDiffCachedValue(renderExtension -> data.free_picture.src_id,
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- cachedRenderExtension -> data.free_picture.src_id =
- renderExtension -> data.free_picture.src_id;
-
- #ifdef TEST
- *logofs << name() << ": Encoded update. Type is "
- << (unsigned int) renderExtension -> data.free_picture.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_UPDATE
-
-MESSAGE_BEGIN_DECODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- decodeBuffer.decodeDiffCachedValue(renderExtension -> data.free_picture.src_id,
- clientCache -> renderLastId, 29,
- clientCache -> renderIdCache);
-
- #ifdef TEST
- *logofs << name() << ": Decoded update. Type is "
- << (unsigned int) renderExtension -> data.free_picture.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_UPDATE
diff --git a/nxcomp/RenderFreePictureCompat.h b/nxcomp/RenderFreePictureCompat.h
deleted file mode 100644
index 32d613ae0..000000000
--- a/nxcomp/RenderFreePictureCompat.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef RenderFreePictureCompat_H
-#define RenderFreePictureCompat_H
-
-//
-// Define the characteristics
-// of this message class here.
-//
-
-#undef MESSAGE_NAME
-#define MESSAGE_NAME "RenderFreePictureCompat"
-
-#undef MESSAGE_STORE
-#define MESSAGE_STORE RenderFreePictureCompatStore
-
-#undef MESSAGE_CLASS
-#define MESSAGE_CLASS RenderMinorExtensionStore
-
-#undef MESSAGE_METHODS
-#define MESSAGE_METHODS "RenderMinorExtensionMethods.h"
-
-#undef MESSAGE_HEADERS
-#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h"
-
-#undef MESSAGE_TAGS
-#define MESSAGE_TAGS "RenderMinorExtensionTags.h"
-
-#undef MESSAGE_OFFSET
-#define MESSAGE_OFFSET 8
-
-#undef MESSAGE_HAS_SIZE
-#define MESSAGE_HAS_SIZE 0
-
-#undef MESSAGE_HAS_DATA
-#define MESSAGE_HAS_DATA 0
-
-#undef MESSAGE_HAS_FILTER
-#define MESSAGE_HAS_FILTER 0
-
-//
-// Declare the message class.
-//
-
-#include MESSAGE_HEADERS
-
-class MESSAGE_STORE : public MESSAGE_CLASS
-{
- public:
-
- virtual const char *name() const
- {
- return MESSAGE_NAME;
- }
-
- virtual int identitySize(const unsigned char *buffer,
- unsigned int size)
- {
- return MESSAGE_OFFSET;
- }
-
- #include MESSAGE_METHODS
-};
-
-#endif /* RenderFreePictureCompat_H */
diff --git a/nxcomp/RenderPictureClipCompat.cpp b/nxcomp/RenderPictureClipCompat.cpp
deleted file mode 100644
index 67d873008..000000000
--- a/nxcomp/RenderPictureClipCompat.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-//
-// Include the template for
-// this message class.
-//
-
-#include "RenderPictureClipCompat.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-
-#include MESSAGE_TAGS
-
-//
-// Message handling methods.
-//
-
-MESSAGE_BEGIN_ENCODE_SIZE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeCachedValue((size - MESSAGE_OFFSET) >> 2, 16,
- clientCache -> renderLengthCache, 5);
-
- #ifdef TEST
- *logofs << name() << ": Encoded size with value "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_SIZE
-
-MESSAGE_BEGIN_DECODE_SIZE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- decodeBuffer.decodeCachedValue(size, 16,
- clientCache -> renderLengthCache, 5);
-
- size = MESSAGE_OFFSET + (size << 2);
-
- buffer = writeBuffer -> addMessage(size);
-
- #ifdef TEST
- *logofs << name() << ": Decoded size with value "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_SIZE
-
-MESSAGE_BEGIN_ENCODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeXidValue(GetULONG(buffer + 4, bigEndian),
- clientCache -> renderSrcPictureCache);
-
- encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 8, bigEndian),
- clientCache -> renderLastX, 16,
- clientCache -> renderXCache, 11);
-
- encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 10, bigEndian),
- clientCache -> renderLastY, 16,
- clientCache -> renderYCache, 11);
-
- #ifdef TEST
- *logofs << name() << ": Encoded message. Type is "
- << (unsigned int) *(buffer + 1) << " size is "
- << size << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_MESSAGE
-
-MESSAGE_BEGIN_DECODE_MESSAGE
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- *(buffer + 1) = type;
-
- decodeBuffer.decodeXidValue(value,
- clientCache -> renderSrcPictureCache);
-
- PutULONG(value, buffer + 4, bigEndian);
-
- decodeBuffer.decodeDiffCachedValue(value,
- clientCache -> renderLastX, 16,
- clientCache -> renderXCache, 11);
-
- PutUINT(clientCache -> renderLastX, buffer + 8, bigEndian);
-
- decodeBuffer.decodeDiffCachedValue(value,
- clientCache -> renderLastY, 16,
- clientCache -> renderYCache, 11);
-
- PutUINT(clientCache -> renderLastY, buffer + 10, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Decoded message. Type is "
- << (unsigned int) type << " size is " << size
- << ".\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_MESSAGE
-
-MESSAGE_BEGIN_ENCODE_DATA
-{
- encodeIntData(encodeBuffer, buffer, MESSAGE_OFFSET,
- size, bigEndian, channelCache);
-
- #ifdef TEST
- *logofs << name() << ": Encoded " << size - MESSAGE_OFFSET
- << " bytes of data.\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_DATA
-
-MESSAGE_BEGIN_DECODE_DATA
-{
- decodeIntData(decodeBuffer, buffer, MESSAGE_OFFSET,
- size, bigEndian, channelCache);
-
- #ifdef TEST
- *logofs << name() << ": Decoded " << size - MESSAGE_OFFSET
- << " bytes of data.\n" << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_DATA
-
-MESSAGE_BEGIN_PARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- renderExtension -> data.picture_clip.type = *(buffer + 1);
-
- renderExtension -> data.picture_clip.src_id = GetULONG(buffer + 4, bigEndian);
-
- renderExtension -> data.picture_clip.src_x = GetUINT(buffer + 8, bigEndian);
- renderExtension -> data.picture_clip.src_y = GetUINT(buffer + 10, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Parsed identity. Type is "
- << (unsigned int) renderExtension -> data.picture_clip.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_PARSE_IDENTITY
-
-MESSAGE_BEGIN_UNPARSE_IDENTITY
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- *(buffer + 1) = renderExtension -> data.picture_clip.type;
-
- PutULONG(renderExtension -> data.picture_clip.src_id, buffer + 4, bigEndian);
-
- PutUINT(renderExtension -> data.picture_clip.src_x, buffer + 8, bigEndian);
- PutUINT(renderExtension -> data.picture_clip.src_y, buffer + 10, bigEndian);
-
- #ifdef TEST
- *logofs << name() << ": Unparsed identity. Type is "
- << (unsigned int) renderExtension -> data.picture_clip.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_UNPARSE_IDENTITY
-
-MESSAGE_BEGIN_IDENTITY_CHECKSUM
-{
- md5_append(md5_state, buffer + 1, 3);
- md5_append(md5_state, buffer + 8, 4);
-}
-MESSAGE_END_IDENTITY_CHECKSUM
-
-MESSAGE_BEGIN_ENCODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
- RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeXidValue(renderExtension -> data.picture_clip.src_id,
- clientCache -> renderSrcPictureCache);
-
- cachedRenderExtension -> data.picture_clip.src_id =
- renderExtension -> data.picture_clip.src_id;
-
- #ifdef TEST
- *logofs << name() << ": Encoded update. Type is "
- << (unsigned int) renderExtension -> data.picture_clip.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_ENCODE_UPDATE
-
-MESSAGE_BEGIN_DECODE_UPDATE
-{
- RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- decodeBuffer.decodeXidValue(renderExtension -> data.picture_clip.src_id,
- clientCache -> renderSrcPictureCache);
-
- #ifdef TEST
- *logofs << name() << ": Decoded update. Type is "
- << (unsigned int) renderExtension -> data.picture_clip.type
- << " size is " << renderExtension -> size_ << ".\n"
- << logofs_flush;
- #endif
-}
-MESSAGE_END_DECODE_UPDATE
diff --git a/nxcomp/RenderPictureClipCompat.h b/nxcomp/RenderPictureClipCompat.h
deleted file mode 100644
index 05fc5cda8..000000000
--- a/nxcomp/RenderPictureClipCompat.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef RenderPictureClipCompat_H
-#define RenderPictureClipCompat_H
-
-//
-// Define the characteristics
-// of this message class here.
-//
-
-#undef MESSAGE_NAME
-#define MESSAGE_NAME "RenderPictureClipCompat"
-
-#undef MESSAGE_STORE
-#define MESSAGE_STORE RenderPictureClipCompatStore
-
-#undef MESSAGE_CLASS
-#define MESSAGE_CLASS RenderMinorExtensionStore
-
-#undef MESSAGE_METHODS
-#define MESSAGE_METHODS "RenderMinorExtensionMethods.h"
-
-#undef MESSAGE_HEADERS
-#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h"
-
-#undef MESSAGE_TAGS
-#define MESSAGE_TAGS "RenderMinorExtensionTags.h"
-
-#undef MESSAGE_OFFSET
-#define MESSAGE_OFFSET 12
-
-#undef MESSAGE_HAS_SIZE
-#define MESSAGE_HAS_SIZE 1
-
-#undef MESSAGE_HAS_DATA
-#define MESSAGE_HAS_DATA 1
-
-#undef MESSAGE_HAS_FILTER
-#define MESSAGE_HAS_FILTER 0
-
-//
-// Declare the message class.
-//
-
-#include MESSAGE_HEADERS
-
-class MESSAGE_STORE : public MESSAGE_CLASS
-{
- public:
-
- virtual const char *name() const
- {
- return MESSAGE_NAME;
- }
-
- virtual int identitySize(const unsigned char *buffer,
- unsigned int size)
- {
- return MESSAGE_OFFSET;
- }
-
- #include MESSAGE_METHODS
-};
-
-#endif /* RenderPictureClipCompat_H */
diff --git a/nxcomp/ServerCache.cpp b/nxcomp/ServerCache.cpp
index f0cc6f825..104ac4728 100644
--- a/nxcomp/ServerCache.cpp
+++ b/nxcomp/ServerCache.cpp
@@ -71,7 +71,6 @@ ServerCache::ServerCache() :
getKeyboardMappingKeysymCache(8),
getPropertyTypeCache(8),
- getPropertyTextCompressor(textCache, SERVER_TEXT_CACHE_SIZE),
getSelectionOwnerCache(8),
@@ -85,9 +84,7 @@ ServerCache::ServerCache() :
translateCoordsChildCache(8), translateCoordsXCache(8),
translateCoordsYCache(8),
- queryTreeWindowCache(8),
-
- getAtomNameTextCompressor(textCache, SERVER_TEXT_CACHE_SIZE)
+ queryTreeWindowCache(8)
{
unsigned int i;
diff --git a/nxcomp/ServerCache.h b/nxcomp/ServerCache.h
index ec213b89f..2287501bf 100644
--- a/nxcomp/ServerCache.h
+++ b/nxcomp/ServerCache.h
@@ -23,7 +23,6 @@
#include "IntCache.h"
#include "CharCache.h"
#include "OpcodeCache.h"
-#include "TextCompressor.h"
#include "BlockCache.h"
#include "BlockCacheSet.h"
@@ -47,7 +46,6 @@ class ServerCache : public ChannelCache
// General-purpose caches.
//
- CharCache textCache[SERVER_TEXT_CACHE_SIZE];
IntCache replySequenceCache;
IntCache eventSequenceCache;
unsigned int lastTimestamp;
@@ -215,7 +213,6 @@ class ServerCache : public ChannelCache
CharCache getPropertyFormatCache;
IntCache getPropertyTypeCache;
- TextCompressor getPropertyTextCompressor;
static BlockCache xResources;
//
@@ -273,13 +270,6 @@ class ServerCache : public ChannelCache
IntCache queryTreeWindowCache;
//
- // GetAtomName reply in protocol
- // versions >= 3.
- //
-
- TextCompressor getAtomNameTextCompressor;
-
- //
// Generic reply. Use short data
// in protocol versions >= 3.
//
diff --git a/nxcomp/ServerChannel.cpp b/nxcomp/ServerChannel.cpp
index 0f3a3e552..e0bd2132f 100644
--- a/nxcomp/ServerChannel.cpp
+++ b/nxcomp/ServerChannel.cpp
@@ -199,8 +199,6 @@ ServerChannel::ServerChannel(Transport *transport, StaticCompressor *compressor)
splitState_.load = 1;
splitState_.commit = 0;
- handleSplitEnable();
-
//
// It will be eventually set by
// the server proxy.
@@ -394,19 +392,6 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
priority_++;
- //
- // Due to the way the loop was implemented
- // we can't encode multiple messages if we
- // are encoding the first request.
- //
-
- if (control -> isProtoStep7() == 0)
- {
- if (proxy -> handleAsyncInit() < 0)
- {
- return -1;
- }
- }
}
else
{
@@ -545,19 +530,8 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
encodeBuffer.encodeValue(nameLength, 16, 6);
const unsigned char *nextSrc = inputMessage + 32;
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, nameLength);
- }
- else
- {
- serverCache_ -> getAtomNameTextCompressor.reset();
- for (unsigned int i = 0; i < nameLength; i++)
- {
- serverCache_ -> getAtomNameTextCompressor.
- encodeChar(*nextSrc++, encodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, nameLength);
priority_++;
}
@@ -930,21 +904,10 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
unsigned int length = (unsigned int) (*nextSrc++);
encodeBuffer.encodeValue(length, 8);
- if (control -> isProtoStep7() == 1)
- {
- encodeBuffer.encodeTextData(nextSrc, length);
+ // Since ProtoStep7 (#issue 108)
+ encodeBuffer.encodeTextData(nextSrc, length);
- nextSrc += length;
- }
- else
- {
- serverCache_ -> getPropertyTextCompressor.reset();
- for (; length; length--)
- {
- serverCache_ -> getPropertyTextCompressor.encodeChar(
- *nextSrc++, encodeBuffer);
- }
- }
+ nextSrc += length;
}
priority_++;
@@ -1253,33 +1216,9 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
encodeBuffer.encodeCachedValue(GetULONG(inputMessage + 8, bigEndian_), 29,
serverCache_ -> visualCache);
- if (control -> isProtoStep8() == 0)
- {
- unsigned int compressedDataSize = 0;
- unsigned char *compressedData = NULL;
-
- int compressed = handleCompress(encodeBuffer, requestOpcode, messageStore -> dataOffset,
- inputMessage, inputLength, compressedData,
- compressedDataSize);
- if (compressed < 0)
- {
- return -1;
- }
- else if (compressed > 0)
- {
- //
- // Update size according to result of image compression.
- //
-
- handleUpdate(messageStore, inputLength - messageStore ->
- dataOffset, compressedDataSize);
- }
- }
- else
- {
- handleCopy(encodeBuffer, requestOpcode, messageStore ->
- dataOffset, inputMessage, inputLength);
- }
+ // Since ProtoStep8 (#issue 108)
+ handleCopy(encodeBuffer, requestOpcode, messageStore ->
+ dataOffset, inputMessage, inputLength);
priority_++;
}
@@ -2069,10 +2008,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
// encoding is used.
//
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeValue(length, 8);
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeValue(length, 8);
unsigned int nextByte;
unsigned char *outputMessage = writeBuffer_.addMessage(length);
@@ -2285,19 +2222,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
if (format == 8)
{
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, dataLength);
- }
- else
- {
- clientCache_ -> changePropertyTextCompressor.reset();
- for (unsigned int i = 0; i < dataLength; i++)
- {
- *nextDest++ = clientCache_ -> changePropertyTextCompressor.
- decodeChar(decodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, dataLength);
}
else if (format == 32)
{
@@ -2584,16 +2510,10 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
outputMessage = writeBuffer_.addMessage(outputLength);
writeBuffer_.registerPointer(&outputMessage);
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeNewXidValue(value, clientCache_ -> lastId,
- clientCache_ -> lastIdCache, clientCache_ -> gcCache,
- clientCache_ -> freeGCCache);
- }
- else
- {
- decodeBuffer.decodeXidValue(value, clientCache_ -> gcCache);
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeNewXidValue(value, clientCache_ -> lastId,
+ clientCache_ -> lastIdCache, clientCache_ -> gcCache,
+ clientCache_ -> freeGCCache);
PutULONG(value, outputMessage + 4, bigEndian_);
unsigned int offset = 8;
@@ -2688,16 +2608,10 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
decodeBuffer.decodeXidValue(value, clientCache_ -> windowCache);
PutULONG(value, outputMessage + 8, bigEndian_);
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeNewXidValue(value, clientCache_ -> lastId,
- clientCache_ -> lastIdCache, clientCache_ -> windowCache,
- clientCache_ -> freeWindowCache);
- }
- else
- {
- decodeBuffer.decodeXidValue(value, clientCache_ -> windowCache);
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeNewXidValue(value, clientCache_ -> lastId,
+ clientCache_ -> lastIdCache, clientCache_ -> windowCache,
+ clientCache_ -> freeWindowCache);
PutULONG(value, outputMessage + 4, bigEndian_);
unsigned char *nextDest = outputMessage + 12;
@@ -2754,16 +2668,9 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
unsigned int numPoints;
- if (control -> isProtoStep10() == 1)
- {
- decodeBuffer.decodeCachedValue(numPoints, 16,
- clientCache_ -> fillPolyNumPointsCache, 4);
- }
- else
- {
- decodeBuffer.decodeCachedValue(numPoints, 14,
- clientCache_ -> fillPolyNumPointsCache, 4);
- }
+ // Since ProtoStep10 (#issue 108)
+ decodeBuffer.decodeCachedValue(numPoints, 16,
+ clientCache_ -> fillPolyNumPointsCache, 4);
outputLength = 16 + (numPoints << 2);
outputMessage = writeBuffer_.addMessage(outputLength);
@@ -2859,14 +2766,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
outputLength = 8;
outputMessage = writeBuffer_.addMessage(outputLength);
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeFreeXidValue(value, clientCache_ -> freeGCCache);
- }
- else
- {
- decodeBuffer.decodeXidValue(value, clientCache_ -> gcCache);
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeFreeXidValue(value, clientCache_ -> freeGCCache);
PutULONG(value, outputMessage + 4, bigEndian_);
}
@@ -2876,23 +2777,10 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
outputLength = 8;
outputMessage = writeBuffer_.addMessage(outputLength);
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeFreeXidValue(value, clientCache_ -> freeDrawableCache);
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeFreeXidValue(value, clientCache_ -> freeDrawableCache);
- PutULONG(value, outputMessage + 4, bigEndian_);
- }
- else
- {
- decodeBuffer.decodeBoolValue(value);
- if (!value)
- {
- decodeBuffer.decodeValue(value, 29, 4);
- clientCache_ -> createPixmapLastId += value;
- clientCache_ -> createPixmapLastId &= 0x1fffffff;
- }
- PutULONG(clientCache_ -> createPixmapLastId, outputMessage + 4, bigEndian_);
- }
+ PutULONG(value, outputMessage + 4, bigEndian_);
}
break;
case X_GetAtomName:
@@ -3125,21 +3013,10 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
clientCache_ -> polyTextDeltaCache);
*nextDest++ = cValue;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, textLength);
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, textLength);
- nextDest += textLength;
- }
- else
- {
- clientCache_ -> polyTextTextCompressor.reset();
- while (textLength)
- {
- *nextDest++ = clientCache_ -> polyTextTextCompressor.decodeChar(decodeBuffer);
- textLength--;
- }
- }
+ nextDest += textLength;
}
}
outputLength += addedLength;
@@ -3211,23 +3088,10 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
decodeBuffer.decodeCachedValue(cValue, 8, clientCache_ -> polyTextDeltaCache);
*nextDest++ = cValue;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, textLength * 2);
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, textLength * 2);
- nextDest += textLength * 2;
- }
- else
- {
- clientCache_ -> polyTextTextCompressor.reset();
- textLength <<= 1;
- while (textLength)
- {
- *nextDest++ =
- clientCache_ -> polyTextTextCompressor.decodeChar(decodeBuffer);
- textLength--;
- }
- }
+ nextDest += textLength * 2;
}
}
outputLength += addedLength;
@@ -3279,16 +3143,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
PutUINT(clientCache_ -> imageTextLastY, outputMessage + 14, bigEndian_);
unsigned char *nextDest = outputMessage + 16;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, textLength);
- }
- else
- {
- clientCache_ -> imageTextTextCompressor.reset();
- for (unsigned int j = 0; j < textLength; j++)
- *nextDest++ = clientCache_ -> imageTextTextCompressor.decodeChar(decodeBuffer);
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, textLength);
handleSave(messageStore, outputMessage, outputLength);
}
@@ -3326,16 +3182,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
PutUINT(clientCache_ -> imageTextLastY, outputMessage + 14, bigEndian_);
unsigned char *nextDest = outputMessage + 16;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, textLength * 2);
- }
- else
- {
- clientCache_ -> imageTextTextCompressor.reset();
- for (unsigned int j = 0; j < textLength * 2; j++)
- *nextDest++ = clientCache_ -> imageTextTextCompressor.decodeChar(decodeBuffer);
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, textLength * 2);
handleSave(messageStore, outputMessage, outputLength);
}
@@ -3362,18 +3210,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
outputMessage[1] = (unsigned char) value;
unsigned char *nextDest = outputMessage + 8;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, nameLength);
- }
- else
- {
- clientCache_ -> internAtomTextCompressor.reset();
- for (unsigned int i = 0; i < nameLength; i++)
- {
- *nextDest++ = clientCache_ -> internAtomTextCompressor.decodeChar(decodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, nameLength);
sequenceQueue_.push(clientSequence_, outputOpcode);
@@ -3399,18 +3237,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
PutUINT(value, outputMessage + 4, bigEndian_);
unsigned char* nextDest = outputMessage + 8;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, textLength);
- }
- else
- {
- clientCache_ -> polyTextTextCompressor.reset();
- for (unsigned int i = 0; i < textLength; i++)
- {
- *nextDest++ = clientCache_ -> polyTextTextCompressor.decodeChar(decodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, textLength);
sequenceQueue_.push(clientSequence_, outputOpcode);
}
@@ -3428,18 +3256,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
PutUINT(textLength, outputMessage + 8, bigEndian_);
unsigned char *nextDest = outputMessage + 12;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, textLength);
- }
- else
- {
- clientCache_ -> polyTextTextCompressor.reset();
- for (unsigned int i = 0; i < textLength; i++)
- {
- *nextDest++ = clientCache_ -> polyTextTextCompressor.decodeChar(decodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, textLength);
sequenceQueue_.push(clientSequence_, outputOpcode);
}
@@ -3456,7 +3274,7 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
outputLength = 8;
outputMessage = writeBuffer_.addMessage(outputLength);
- if (outputOpcode == X_DestroyWindow && control -> isProtoStep7() == 1)
+ if (outputOpcode == X_DestroyWindow) // Since ProtoStep7 (#issue 108)
{
decodeBuffer.decodeFreeXidValue(value, clientCache_ -> freeWindowCache);
}
@@ -3487,19 +3305,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
PutULONG(clientCache_ -> lastFont, outputMessage + 4, bigEndian_);
unsigned char *nextDest = outputMessage + 12;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeTextData(nextDest, nameLength);
- }
- else
- {
- clientCache_ -> openFontTextCompressor.reset();
- for (; nameLength; nameLength--)
- {
- *nextDest++ = clientCache_ -> openFontTextCompressor.
- decodeChar(decodeBuffer);
- }
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeTextData(nextDest, nameLength);
}
break;
case X_PolyFillRectangle:
@@ -4137,14 +3944,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length
unsigned int numRectangles;
- if (control -> isProtoStep9() == 1)
- {
- decodeBuffer.decodeValue(numRectangles, 15, 4);
- }
- else
- {
- decodeBuffer.decodeValue(numRectangles, 13, 4);
- }
+ // Since ProtoStep9 (#issue 108)
+ decodeBuffer.decodeValue(numRectangles, 15, 4);
outputLength = (numRectangles << 3) + 12;
outputMessage = writeBuffer_.addMessage(outputLength);
@@ -4669,10 +4470,8 @@ int ServerChannel::handleSplit(DecodeBuffer &decodeBuffer, MessageStore *store,
T_store_action action, int position, unsigned char &opcode,
unsigned char *&buffer, unsigned int &size)
{
- if (control -> isProtoStep7() == 1)
- {
- splitState_.current = splitState_.resource;
- }
+ // Since ProtoStep7 (#issue 108)
+ splitState_.current = splitState_.resource;
handleSplitStoreAlloc(&splitResources_, splitState_.current);
@@ -4707,14 +4506,12 @@ int ServerChannel::handleSplit(DecodeBuffer &decodeBuffer, MessageStore *store,
action, checksum, buffer, size);
//
- // If we are connected to an old proxy
- // version or the encoding side didn't
- // provide a checksum, then don't send
- // the split report.
+ // If the encoding side didn't provide
+ // a checksum, then don't send the split
+ // report.
//
- if (control -> isProtoStep7() == 0 ||
- checksum == NULL)
+ if (checksum == NULL)
{
if (action == IS_HIT)
{
@@ -4736,8 +4533,6 @@ int ServerChannel::handleSplit(DecodeBuffer &decodeBuffer, MessageStore *store,
#endif
- delete [] checksum;
-
return 1;
}
@@ -4829,13 +4624,11 @@ int ServerChannel::handleSplit(DecodeBuffer &decodeBuffer)
unsigned char resource;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeCachedValue(resource, 8,
- clientCache_ -> resourceCache);
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeCachedValue(resource, 8,
+ clientCache_ -> resourceCache);
- splitState_.current = resource;
- }
+ splitState_.current = resource;
handleSplitStoreAlloc(&splitResources_, splitState_.current);
@@ -5391,8 +5184,11 @@ int ServerChannel::handleColormap(unsigned char &opcode, unsigned char *&buffer,
// data in compressed form.
//
- if (control -> isProtoStep7() == 1)
- {
+ //
+ // Since ProtoStep7 (#issue 108)
+ //
+
+ { // An anonymous block is used here to limit the scope of local variables
unsigned int packed = GetULONG(buffer + 8, bigEndian_);
unsigned int unpacked = GetULONG(buffer + 12, bigEndian_);
@@ -5486,85 +5282,7 @@ int ServerChannel::handleColormap(unsigned char &opcode, unsigned char *&buffer,
}
#endif
- }
- else
- {
- unsigned int entries = GetULONG(buffer + 4, bigEndian_);
-
- if (size == entries * 4 + 8)
- {
- if (unpackState_[resource] -> colormap -> entries != entries &&
- unpackState_[resource] -> colormap -> data != NULL)
- {
- #ifdef TEST
- *logofs << "handleColormap: Freeing previously "
- << "allocated unpack colormap.\n"
- << logofs_flush;
- #endif
-
- delete [] unpackState_[resource] -> colormap -> data;
-
- unpackState_[resource] -> colormap -> data = NULL;
- unpackState_[resource] -> colormap -> entries = 0;
- }
-
- if (entries > 0)
- {
- if (unpackState_[resource] -> colormap -> data == NULL)
- {
- unpackState_[resource] ->
- colormap -> data = new unsigned int[entries];
- }
-
- if (unpackState_[resource] -> colormap -> data != NULL)
- {
- unpackState_[resource] -> colormap -> entries = entries;
-
- #ifdef DEBUG
- *logofs << "handleColormap: Size of new colormap "
- << "data is " << (entries << 2) << ".\n"
- << logofs_flush;
- #endif
-
- memcpy((unsigned char *) unpackState_[resource] ->
- colormap -> data, buffer + 8, entries << 2);
-
- #if defined(DEBUG) && defined(DUMP)
-
- *logofs << "handleColormap: Dumping colormap entries:\n"
- << logofs_flush;
-
- const unsigned int *p = (unsigned int *) buffer + 8;
-
- for (unsigned int i = 0; i < entries; i++)
- {
- *logofs << "handleColormap: [" << i << "] ["
- << (void *) p[i] << "].\n"
- << logofs_flush;
- }
-
- #endif
- }
- else
- {
- #ifdef PANIC
- *logofs << "handleColormap: PANIC! Can't allocate "
- << entries << " entries for unpack colormap "
- << "for FD#" << fd_ << ".\n" << logofs_flush;
- #endif
- }
- }
- }
- else
- {
- #ifdef PANIC
- *logofs << "handleColormap: PANIC! Bad size " << size
- << " for set unpack colormap message for FD#"
- << fd_ << " with " << entries << " entries.\n"
- << logofs_flush;
- #endif
- }
- }
+ } // end anonymous block
handleColormapEnd:
@@ -5593,8 +5311,11 @@ int ServerChannel::handleAlpha(unsigned char &opcode, unsigned char *&buffer,
// data in compressed form.
//
- if (control -> isProtoStep7() == 1)
- {
+ //
+ // Since ProtoStep7 (#issue 108)
+ //
+
+ { // An anonymous block is used here to limit the scope of local variables
unsigned int packed = GetULONG(buffer + 8, bigEndian_);
unsigned int unpacked = GetULONG(buffer + 12, bigEndian_);
@@ -5687,82 +5408,7 @@ int ServerChannel::handleAlpha(unsigned char &opcode, unsigned char *&buffer,
}
#endif
- }
- else
- {
- unsigned int entries = GetULONG(buffer + 4, bigEndian_);
-
- if (size == RoundUp4(entries) + 8)
- {
- if (unpackState_[resource] -> alpha -> entries != entries &&
- unpackState_[resource] -> alpha -> data != NULL)
- {
- #ifdef TEST
- *logofs << "handleAlpha: Freeing previously allocated "
- << "unpack alpha data.\n" << logofs_flush;
- #endif
-
- delete [] unpackState_[resource] -> alpha -> data;
-
- unpackState_[resource] -> alpha -> data = NULL;
- unpackState_[resource] -> alpha -> entries = 0;
- }
-
- if (entries > 0)
- {
- if (unpackState_[resource] -> alpha -> data == NULL)
- {
- unpackState_[resource] -> alpha -> data = new unsigned char[entries];
- }
-
- if (unpackState_[resource] -> alpha -> data != NULL)
- {
- unpackState_[resource] -> alpha -> entries = entries;
-
- #ifdef DEBUG
- *logofs << "handleAlpha: Size of new alpha data is "
- << entries << ".\n" << logofs_flush;
- #endif
-
- memcpy((unsigned char *) unpackState_[resource] ->
- alpha -> data, buffer + 8, entries);
-
- #if defined(DEBUG) && defined(DUMP)
-
- *logofs << "handleAlpha: Dumping alpha entries:\n"
- << logofs_flush;
-
- const unsigned char *p = buffer + 8;
-
- for (unsigned int i = 0; i < entries; i++)
- {
- *logofs << "handleAlpha: [" << i << "] ["
- << (void *) ((int) p[i]) << "].\n"
- << logofs_flush;
- }
-
- #endif
- }
- else
- {
- #ifdef PANIC
- *logofs << "handleAlpha: PANIC! Can't allocate "
- << entries << " entries for unpack alpha data "
- << "for FD#" << fd_ << ".\n" << logofs_flush;
- #endif
- }
- }
- }
- #ifdef PANIC
- else
- {
- *logofs << "handleAlpha: PANIC! Bad size " << size
- << " for set unpack alpha message for FD#"
- << fd_ << " with " << entries << " entries.\n"
- << logofs_flush;
- }
- #endif
- }
+ } //end anonymous block
handleAlphaEnd:
@@ -6680,15 +6326,20 @@ int ServerChannel::handleFastWriteRequest(DecodeBuffer &decodeBuffer, unsigned c
{
//
// All the NX requests are handled in the
- // main message loop. The X_PutImage can
- // be handled here only if a split was
- // not requested.
+ // main message loop.
+ //
+
+ //
+ // Since ProtoStep7 (#issue 108)
+ //
+ // The X_PutImage can be handled here only
+ // if a split was not requested.
//
if ((opcode >= X_NXFirstOpcode && opcode <= X_NXLastOpcode) ||
- (control -> isProtoStep7() == 1 && opcode == X_PutImage &&
- splitState_.resource != nothing) || opcode == X_ListExtensions ||
- opcode == X_QueryExtension)
+ (opcode == X_PutImage && splitState_.resource != nothing) ||
+ opcode == X_ListExtensions ||
+ opcode == X_QueryExtension)
{
return 0;
}
@@ -7896,14 +7547,6 @@ int ServerChannel::handleCacheRequest(DecodeBuffer &decodeBuffer, unsigned char
splitState_.save = (mask >> 8) & 0xff;
splitState_.load = mask & 0xff;
- //
- // Just to be sure. We should never
- // receive this request if connected
- // to an old proxy version.
- //
-
- handleSplitEnable();
-
#ifdef TEST
*logofs << "handleCacheRequest: Set cache parameters to "
<< "save " << splitState_.save << " load "
@@ -7920,34 +7563,24 @@ int ServerChannel::handleStartSplitRequest(DecodeBuffer &decodeBuffer, unsigned
{
//
// Prepare for the split for the selected
- // resource. Old proxy versions only use
+ // resource. Old proxy versions only used
// the split store at position 0.
//
- if (control -> isProtoStep7() == 1)
- {
- unsigned char resource;
+ // Since ProtoStep7 (#issue 108)
+ unsigned char resource;
- decodeBuffer.decodeCachedValue(resource, 8,
- clientCache_ -> resourceCache);
+ decodeBuffer.decodeCachedValue(resource, 8,
+ clientCache_ -> resourceCache);
- splitState_.resource = resource;
+ splitState_.resource = resource;
- splitState_.current = splitState_.resource;
+ splitState_.current = splitState_.resource;
- #if defined(TEST) || defined(SPLIT)
- *logofs << "handleStartSplitRequest: SPLIT! Registered id "
- << splitState_.resource << " as resource "
- << "waiting for a split.\n" << logofs_flush;
- #endif
- }
#if defined(TEST) || defined(SPLIT)
- else
- {
- *logofs << "handleStartSplitRequest: SPLIT! Assuming fake id "
- << splitState_.current << " as resource "
- << "waiting for a split.\n" << logofs_flush;
- }
+ *logofs << "handleStartSplitRequest: SPLIT! Registered id "
+ << splitState_.resource << " as resource "
+ << "waiting for a split.\n" << logofs_flush;
#endif
handleNullRequest(opcode, buffer, size);
@@ -7962,40 +7595,38 @@ int ServerChannel::handleEndSplitRequest(DecodeBuffer &decodeBuffer, unsigned ch
// Verify that the agent resource matches.
//
- if (control -> isProtoStep7() == 1)
- {
- unsigned char resource;
-
- decodeBuffer.decodeCachedValue(resource, 8,
- clientCache_ -> resourceCache);
-
- #ifdef TEST
+ // Since ProtoStep7 (#issue 108)
+ unsigned char resource;
- if (splitState_.resource == nothing)
- {
- #ifdef PANIC
- *logofs << "handleEndSplitRequest: PANIC! SPLIT! Received an end of "
- << "split for resource id " << (unsigned int) *(buffer + 1)
- << " without a previous start.\n"
- << logofs_flush;
- #endif
+ decodeBuffer.decodeCachedValue(resource, 8,
+ clientCache_ -> resourceCache);
- HandleCleanup();
- }
- else if (resource != splitState_.resource)
- {
- #ifdef PANIC
- *logofs << "handleEndSplitRequest: PANIC! SPLIT! Invalid resource id "
- << resource << " received while waiting for resource id "
- << splitState_.resource << ".\n" << logofs_flush;
- #endif
+ #ifdef TEST
- HandleCleanup();
- }
+ if (splitState_.resource == nothing)
+ {
+ #ifdef PANIC
+ *logofs << "handleEndSplitRequest: PANIC! SPLIT! Received an end of "
+ << "split for resource id " << (unsigned int) *(buffer + 1)
+ << " without a previous start.\n"
+ << logofs_flush;
+ #endif
+ HandleCleanup();
+ }
+ else if (resource != splitState_.resource)
+ {
+ #ifdef PANIC
+ *logofs << "handleEndSplitRequest: PANIC! SPLIT! Invalid resource id "
+ << resource << " received while waiting for resource id "
+ << splitState_.resource << ".\n" << logofs_flush;
#endif
+
+ HandleCleanup();
}
+ #endif
+
#if defined(TEST) || defined(SPLIT)
*logofs << "handleEndSplitRequest: SPLIT! Reset id "
<< splitState_.resource << " as resource "
@@ -8013,15 +7644,8 @@ int ServerChannel::handleSplitChecksum(DecodeBuffer &decodeBuffer, T_checksum &c
{
unsigned int receive;
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeBoolValue(receive);
- }
- else
- {
- receive = (control -> ImageCacheEnableLoad == 1 ||
- control -> ImageCacheEnableSave == 1);
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeBoolValue(receive);
if (receive == 1)
{
diff --git a/nxcomp/ServerChannel.h b/nxcomp/ServerChannel.h
index 6536db829..28d5efb3e 100644
--- a/nxcomp/ServerChannel.h
+++ b/nxcomp/ServerChannel.h
@@ -312,21 +312,6 @@ class ServerChannel : public Channel
int handleSplitChecksum(DecodeBuffer &decodeBuffer, T_checksum &checksum);
- void handleSplitEnable()
- {
- if (control -> isProtoStep7() == 0)
- {
- #if defined(TEST) || defined(SPLIT)
- *logofs << "handleSplitEnable: WARNING! Disabling load "
- << "and save with an old proxy version.\n"
- << logofs_flush;
- #endif
-
- splitState_.save = 0;
- splitState_.load = 0;
- }
- }
-
//
// Allocate and free the shared memory
// support resources.
diff --git a/nxcomp/ServerProxy.h b/nxcomp/ServerProxy.h
index 8c4a88410..54bc0f748 100644
--- a/nxcomp/ServerProxy.h
+++ b/nxcomp/ServerProxy.h
@@ -102,14 +102,8 @@ class ServerProxy : public Proxy
virtual int checkLocalChannelMap(int channelId)
{
- if (control -> isProtoStep7() == 1)
- {
- return ((channelId & control -> ChannelMask) == 0);
- }
- else
- {
- return 0;
- }
+ // Since ProtoStep7 (#issue 108)
+ return ((channelId & control -> ChannelMask) == 0);
}
private:
diff --git a/nxcomp/SetUnpackAlpha.cpp b/nxcomp/SetUnpackAlpha.cpp
index a0dd1fc2e..792aa33d7 100644
--- a/nxcomp/SetUnpackAlpha.cpp
+++ b/nxcomp/SetUnpackAlpha.cpp
@@ -44,7 +44,6 @@ SetUnpackAlphaStore::SetUnpackAlphaStore(StaticCompressor *compressor)
{
enableCache = SETUNPACKALPHA_ENABLE_CACHE;
enableData = SETUNPACKALPHA_ENABLE_DATA;
- enableSplit = SETUNPACKALPHA_ENABLE_SPLIT_IF_PROTO_STEP_7;
enableCompress = SETUNPACKALPHA_ENABLE_COMPRESS_IF_PROTO_STEP_7;
dataLimit = SETUNPACKALPHA_DATA_LIMIT;
@@ -54,10 +53,8 @@ SetUnpackAlphaStore::SetUnpackAlphaStore(StaticCompressor *compressor)
cacheThreshold = SETUNPACKALPHA_CACHE_THRESHOLD;
cacheLowerThreshold = SETUNPACKALPHA_CACHE_LOWER_THRESHOLD;
- if (control -> isProtoStep8() == 1)
- {
- enableSplit = SETUNPACKALPHA_ENABLE_SPLIT_IF_PROTO_STEP_8;
- }
+ // Since ProtoStep8 (#issue 108)
+ enableSplit = SETUNPACKALPHA_ENABLE_SPLIT_IF_PROTO_STEP_8;
messages_ -> resize(cacheSlots);
diff --git a/nxcomp/SetUnpackAlpha.h b/nxcomp/SetUnpackAlpha.h
index 2e32a6590..4c4306d8d 100644
--- a/nxcomp/SetUnpackAlpha.h
+++ b/nxcomp/SetUnpackAlpha.h
@@ -36,18 +36,14 @@
#define SETUNPACKALPHA_ENABLE_CACHE 1
#define SETUNPACKALPHA_ENABLE_DATA 1
-#define SETUNPACKALPHA_ENABLE_SPLIT 0
-#define SETUNPACKALPHA_ENABLE_COMPRESS 1
#define SETUNPACKALPHA_DATA_LIMIT 16384
-#define SETUNPACKALPHA_DATA_OFFSET 8
#define SETUNPACKALPHA_CACHE_SLOTS 2000
#define SETUNPACKALPHA_CACHE_THRESHOLD 10
#define SETUNPACKALPHA_CACHE_LOWER_THRESHOLD 5
#define SETUNPACKALPHA_DATA_OFFSET_IF_PROTO_STEP_7 16
-#define SETUNPACKALPHA_ENABLE_SPLIT_IF_PROTO_STEP_7 1
#define SETUNPACKALPHA_ENABLE_COMPRESS_IF_PROTO_STEP_7 0
#define SETUNPACKALPHA_ENABLE_SPLIT_IF_PROTO_STEP_8 0
diff --git a/nxcomp/SetUnpackAlphaCompat.cpp b/nxcomp/SetUnpackAlphaCompat.cpp
deleted file mode 100644
index a8fcabdeb..000000000
--- a/nxcomp/SetUnpackAlphaCompat.cpp
+++ /dev/null
@@ -1,250 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#include "SetUnpackAlphaCompat.h"
-
-#include "ClientCache.h"
-
-#include "EncodeBuffer.h"
-#include "DecodeBuffer.h"
-
-#include "WriteBuffer.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-#undef DUMP
-
-//
-// Constructors and destructors.
-//
-
-SetUnpackAlphaCompatStore::SetUnpackAlphaCompatStore(StaticCompressor *compressor)
-
- : MessageStore(compressor)
-{
- enableCache = SETUNPACKALPHA_ENABLE_CACHE;
- enableData = SETUNPACKALPHA_ENABLE_DATA;
- enableSplit = SETUNPACKALPHA_ENABLE_SPLIT;
- enableCompress = SETUNPACKALPHA_ENABLE_COMPRESS;
-
- dataLimit = SETUNPACKALPHA_DATA_LIMIT;
- dataOffset = SETUNPACKALPHA_DATA_OFFSET;
-
- cacheSlots = SETUNPACKALPHA_CACHE_SLOTS;
- cacheThreshold = SETUNPACKALPHA_CACHE_THRESHOLD;
- cacheLowerThreshold = SETUNPACKALPHA_CACHE_LOWER_THRESHOLD;
-
- messages_ -> resize(cacheSlots);
-
- for (T_messages::iterator i = messages_ -> begin();
- i < messages_ -> end(); i++)
- {
- *i = NULL;
- }
-
- temporary_ = NULL;
-}
-
-SetUnpackAlphaCompatStore::~SetUnpackAlphaCompatStore()
-{
- for (T_messages::iterator i = messages_ -> begin();
- i < messages_ -> end(); i++)
- {
- destroy(*i);
- }
-
- destroy(temporary_);
-}
-
-//
-// Here are the methods to handle messages' content.
-//
-
-int SetUnpackAlphaCompatStore::encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer,
- const unsigned int size, int bigEndian,
- ChannelCache *channelCache) const
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- #ifdef DEBUG
- *logofs << name() << ": Encoding full message identity.\n" << logofs_flush;
- #endif
-
- // Client.
- encodeBuffer.encodeCachedValue(*(buffer + 1), 8,
- clientCache -> resourceCache);
- // Entries.
- encodeBuffer.encodeValue(GetULONG(buffer + 4, bigEndian), 32, 9);
-
- #ifdef DEBUG
- *logofs << name() << ": Encoded full message identity.\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-int SetUnpackAlphaCompatStore::decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer,
- unsigned int &size, int bigEndian, WriteBuffer *writeBuffer,
- ChannelCache *channelCache) const
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- #ifdef DEBUG
- *logofs << name() << ": Decoding full message identity.\n" << logofs_flush;
- #endif
-
- unsigned int value;
- unsigned char cValue;
-
- // Client.
- decodeBuffer.decodeCachedValue(cValue, 8,
- clientCache -> resourceCache);
- // Entries.
- decodeBuffer.decodeValue(value, 32, 9);
-
- size = RoundUp4(value) + 8;
-
- buffer = writeBuffer -> addMessage(size);
-
- *(buffer + 1) = cValue;
-
- PutULONG(value, buffer + 4, bigEndian);
-
- #ifdef DEBUG
- *logofs << name() << ": Decoded full message identity.\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-int SetUnpackAlphaCompatStore::parseIdentity(Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- SetUnpackAlphaCompatMessage *setUnpackAlpha = (SetUnpackAlphaCompatMessage *) message;
-
- setUnpackAlpha -> client = *(buffer + 1);
-
- setUnpackAlpha -> entries = GetULONG(buffer + 4, bigEndian);
-
- #ifdef DEBUG
- *logofs << name() << ": Parsed identity for message at " << message << ".\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-int SetUnpackAlphaCompatStore::unparseIdentity(const Message *message, unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- SetUnpackAlphaCompatMessage *setUnpackAlpha = (SetUnpackAlphaCompatMessage *) message;
-
- *(buffer + 1) = setUnpackAlpha -> client;
-
- PutULONG(setUnpackAlpha -> entries, buffer + 4, bigEndian);
-
- #ifdef DEBUG
- *logofs << name() << ": Unparsed identity for message at " << message << ".\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-void SetUnpackAlphaCompatStore::dumpIdentity(const Message *message) const
-{
- #ifdef DUMP
-
- SetUnpackAlphaCompatMessage *setUnpackAlpha = (SetUnpackAlphaCompatMessage *) message;
-
- *logofs << name() << ": Identity client "
- << (unsigned int) setUnpackAlpha -> client << " entries "
- << setUnpackAlpha -> entries << " size "
- << setUnpackAlpha -> size_ << ".\n";
-
- #endif
-}
-
-void SetUnpackAlphaCompatStore::identityChecksum(const Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- md5_append(md5_state_, buffer + 4, 4);
-}
-
-void SetUnpackAlphaCompatStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *message,
- const Message *cachedMessage,
- ChannelCache *channelCache) const
-{
- SetUnpackAlphaCompatMessage *setUnpackAlpha = (SetUnpackAlphaCompatMessage *) message;
- SetUnpackAlphaCompatMessage *cachedSetUnpackAlpha = (SetUnpackAlphaCompatMessage *) cachedMessage;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- encodeBuffer.encodeCachedValue(setUnpackAlpha -> client, 8,
- clientCache -> resourceCache);
-
- cachedSetUnpackAlpha -> client = setUnpackAlpha -> client;
-
- if (cachedSetUnpackAlpha -> entries != setUnpackAlpha -> entries)
- {
- #ifdef TEST
- *logofs << name() << ": Encoding value " << setUnpackAlpha -> entries
- << " as entries field.\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeBoolValue(1);
-
- encodeBuffer.encodeValue(setUnpackAlpha -> entries, 32, 9);
-
- cachedSetUnpackAlpha -> entries = setUnpackAlpha -> entries;
- }
- else
- {
- encodeBuffer.encodeBoolValue(0);
- }
-}
-
-void SetUnpackAlphaCompatStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *message,
- ChannelCache *channelCache) const
-{
- SetUnpackAlphaCompatMessage *setUnpackAlpha = (SetUnpackAlphaCompatMessage *) message;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- decodeBuffer.decodeCachedValue(setUnpackAlpha -> client, 8,
- clientCache -> resourceCache);
-
- decodeBuffer.decodeBoolValue(value);
-
- if (value)
- {
- decodeBuffer.decodeValue(value, 32, 9);
-
- setUnpackAlpha -> entries = value;
-
- #ifdef DEBUG
- *logofs << name() << ": Decoded value " << setUnpackAlpha -> entries
- << " as entries field.\n" << logofs_flush;
- #endif
- }
-}
diff --git a/nxcomp/SetUnpackAlphaCompat.h b/nxcomp/SetUnpackAlphaCompat.h
deleted file mode 100644
index 80d1522c0..000000000
--- a/nxcomp/SetUnpackAlphaCompat.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef SetUnpackAlphaCompat_H
-#define SetUnpackAlphaCompat_H
-
-#include "Message.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-#undef DUMP
-
-//
-// Set default values.
-//
-
-#define SETUNPACKALPHA_ENABLE_CACHE 1
-#define SETUNPACKALPHA_ENABLE_DATA 1
-#define SETUNPACKALPHA_ENABLE_SPLIT 0
-#define SETUNPACKALPHA_ENABLE_COMPRESS 1
-
-#define SETUNPACKALPHA_DATA_LIMIT 16384
-#define SETUNPACKALPHA_DATA_OFFSET 8
-
-#define SETUNPACKALPHA_CACHE_SLOTS 2000
-#define SETUNPACKALPHA_CACHE_THRESHOLD 10
-#define SETUNPACKALPHA_CACHE_LOWER_THRESHOLD 5
-
-//
-// The message class.
-//
-
-class SetUnpackAlphaCompatMessage : public Message
-{
- friend class SetUnpackAlphaCompatStore;
-
- public:
-
- SetUnpackAlphaCompatMessage()
- {
- }
-
- ~SetUnpackAlphaCompatMessage()
- {
- }
-
- //
- // Put here the fields which constitute
- // the 'identity' part of the message.
- //
-
- private:
-
- unsigned char client;
- unsigned int entries;
-};
-
-class SetUnpackAlphaCompatStore : public MessageStore
-{
- public:
-
- SetUnpackAlphaCompatStore(StaticCompressor *compressor);
-
- virtual ~SetUnpackAlphaCompatStore();
-
- virtual const char *name() const
- {
- return "SetUnpackAlphaCompat";
- }
-
- virtual unsigned char opcode() const
- {
- return X_NXSetUnpackAlpha;
- }
-
- virtual unsigned int storage() const
- {
- return sizeof(SetUnpackAlphaCompatMessage);
- }
-
- //
- // Message handling methods.
- //
-
- protected:
-
- virtual Message *create() const
- {
- return new SetUnpackAlphaCompatMessage();
- }
-
- virtual Message *create(const Message &message) const
- {
- return new SetUnpackAlphaCompatMessage((const SetUnpackAlphaCompatMessage &) message);
- }
-
- virtual void destroy(Message *message) const
- {
- delete (SetUnpackAlphaCompatMessage *) message;
- }
-
- virtual int encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer,
- const unsigned int size, int bigEndian,
- ChannelCache *channelCache) const;
-
- virtual int decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer,
- unsigned int &size, int bigEndian, WriteBuffer *writeBuffer,
- ChannelCache *channelCache) const;
-
- virtual int parseIdentity(Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual int unparseIdentity(const Message *message, unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual void updateIdentity(EncodeBuffer &encodeBuffer, const Message *message,
- const Message *cachedMessage,
- ChannelCache *channelCache) const;
-
- virtual void updateIdentity(DecodeBuffer &decodeBuffer, const Message *message,
- ChannelCache *channelCache) const;
-
- virtual void identityChecksum(const Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual void dumpIdentity(const Message *message) const;
-};
-
-#endif /* SetUnpackAlphaCompat_H */
diff --git a/nxcomp/SetUnpackColormap.cpp b/nxcomp/SetUnpackColormap.cpp
index d522d328e..8fb8b3ce7 100644
--- a/nxcomp/SetUnpackColormap.cpp
+++ b/nxcomp/SetUnpackColormap.cpp
@@ -44,7 +44,6 @@ SetUnpackColormapStore::SetUnpackColormapStore(StaticCompressor *compressor)
{
enableCache = SETUNPACKCOLORMAP_ENABLE_CACHE;
enableData = SETUNPACKCOLORMAP_ENABLE_DATA;
- enableSplit = SETUNPACKCOLORMAP_ENABLE_SPLIT;
enableCompress = SETUNPACKCOLORMAP_ENABLE_COMPRESS_IF_PROTO_STEP_7;
dataLimit = SETUNPACKCOLORMAP_DATA_LIMIT;
@@ -54,10 +53,8 @@ SetUnpackColormapStore::SetUnpackColormapStore(StaticCompressor *compressor)
cacheThreshold = SETUNPACKCOLORMAP_CACHE_THRESHOLD;
cacheLowerThreshold = SETUNPACKCOLORMAP_CACHE_LOWER_THRESHOLD;
- if (control -> isProtoStep8() == 1)
- {
- enableSplit = SETUNPACKCOLORMAP_ENABLE_SPLIT_IF_PROTO_STEP_8;
- }
+ // Since ProtoStep8 (#issue 108)
+ enableSplit = SETUNPACKCOLORMAP_ENABLE_SPLIT_IF_PROTO_STEP_8;
messages_ -> resize(cacheSlots);
diff --git a/nxcomp/SetUnpackColormap.h b/nxcomp/SetUnpackColormap.h
index 53277b3f0..fda7fa16d 100644
--- a/nxcomp/SetUnpackColormap.h
+++ b/nxcomp/SetUnpackColormap.h
@@ -36,11 +36,8 @@
#define SETUNPACKCOLORMAP_ENABLE_CACHE 1
#define SETUNPACKCOLORMAP_ENABLE_DATA 1
-#define SETUNPACKCOLORMAP_ENABLE_SPLIT 1
-#define SETUNPACKCOLORMAP_ENABLE_COMPRESS 1
#define SETUNPACKCOLORMAP_DATA_LIMIT 4096
-#define SETUNPACKCOLORMAP_DATA_OFFSET 8
#define SETUNPACKCOLORMAP_CACHE_SLOTS 2000
#define SETUNPACKCOLORMAP_CACHE_THRESHOLD 5
diff --git a/nxcomp/SetUnpackColormapCompat.cpp b/nxcomp/SetUnpackColormapCompat.cpp
deleted file mode 100644
index 65b108a82..000000000
--- a/nxcomp/SetUnpackColormapCompat.cpp
+++ /dev/null
@@ -1,262 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#include "SetUnpackColormapCompat.h"
-
-#include "ClientCache.h"
-
-#include "EncodeBuffer.h"
-#include "DecodeBuffer.h"
-
-#include "WriteBuffer.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-#undef DUMP
-
-//
-// Constructors and destructors.
-//
-
-SetUnpackColormapCompatStore::SetUnpackColormapCompatStore(StaticCompressor *compressor)
-
- : MessageStore(compressor)
-{
- enableCache = SETUNPACKCOLORMAP_ENABLE_CACHE;
- enableData = SETUNPACKCOLORMAP_ENABLE_DATA;
- enableSplit = SETUNPACKCOLORMAP_ENABLE_SPLIT;
- enableCompress = SETUNPACKCOLORMAP_ENABLE_COMPRESS;
-
- dataLimit = SETUNPACKCOLORMAP_DATA_LIMIT;
- dataOffset = SETUNPACKCOLORMAP_DATA_OFFSET;
-
- cacheSlots = SETUNPACKCOLORMAP_CACHE_SLOTS;
- cacheThreshold = SETUNPACKCOLORMAP_CACHE_THRESHOLD;
- cacheLowerThreshold = SETUNPACKCOLORMAP_CACHE_LOWER_THRESHOLD;
-
- messages_ -> resize(cacheSlots);
-
- for (T_messages::iterator i = messages_ -> begin();
- i < messages_ -> end(); i++)
- {
- *i = NULL;
- }
-
- temporary_ = NULL;
-}
-
-SetUnpackColormapCompatStore::~SetUnpackColormapCompatStore()
-{
- for (T_messages::iterator i = messages_ -> begin();
- i < messages_ -> end(); i++)
- {
- destroy(*i);
- }
-
- destroy(temporary_);
-}
-
-//
-// Here are the methods to handle messages' content.
-//
-
-int SetUnpackColormapCompatStore::encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer,
- const unsigned int size, int bigEndian,
- ChannelCache *channelCache) const
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- #ifdef DEBUG
- *logofs << name() << ": Encoding full message identity.\n" << logofs_flush;
- #endif
-
- // Client.
- encodeBuffer.encodeCachedValue(*(buffer + 1), 8,
- clientCache -> resourceCache);
- // Entries.
- encodeBuffer.encodeValue(GetULONG(buffer + 4, bigEndian), 32, 9);
-
- #ifdef DEBUG
- *logofs << name() << ": Encoded full message identity.\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-int SetUnpackColormapCompatStore::decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer,
- unsigned int &size, int bigEndian, WriteBuffer *writeBuffer,
- ChannelCache *channelCache) const
-{
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- #ifdef DEBUG
- *logofs << name() << ": Decoding full message identity.\n" << logofs_flush;
- #endif
-
- unsigned int value;
- unsigned char cValue;
-
- // Client.
- decodeBuffer.decodeCachedValue(cValue, 8,
- clientCache -> resourceCache);
- // Entries.
- decodeBuffer.decodeValue(value, 32, 9);
-
- size = (value << 2) + 8;
-
- buffer = writeBuffer -> addMessage(size);
-
- *(buffer + 1) = cValue;
-
- PutULONG(value, buffer + 4, bigEndian);
-
- #ifdef DEBUG
- *logofs << name() << ": Decoded full message identity.\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-int SetUnpackColormapCompatStore::parseIdentity(Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- SetUnpackColormapCompatMessage *setUnpackColormap = (SetUnpackColormapCompatMessage *) message;
-
- setUnpackColormap -> client = *(buffer + 1);
-
- setUnpackColormap -> entries = GetULONG(buffer + 4, bigEndian);
-
- #ifdef DEBUG
- *logofs << name() << ": Parsed identity for message at " << message << ".\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-int SetUnpackColormapCompatStore::unparseIdentity(const Message *message, unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- SetUnpackColormapCompatMessage *setUnpackColormap = (SetUnpackColormapCompatMessage *) message;
-
- *(buffer + 1) = setUnpackColormap -> client;
-
- PutULONG(setUnpackColormap -> entries, buffer + 4, bigEndian);
-
- #ifdef DEBUG
- *logofs << name() << ": Unparsed identity for message at " << message << ".\n" << logofs_flush;
- #endif
-
- return 1;
-}
-
-void SetUnpackColormapCompatStore::dumpIdentity(const Message *message) const
-{
- #ifdef DUMP
-
- SetUnpackColormapCompatMessage *setUnpackColormap = (SetUnpackColormapCompatMessage *) message;
-
- *logofs << name() << ": Identity client "
- << (unsigned int) setUnpackColormap -> client << " entries "
- << setUnpackColormap -> entries << " size "
- << setUnpackColormap -> size_ << ".\n";
-
- #endif
-}
-
-void SetUnpackColormapCompatStore::identityChecksum(const Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const
-{
- md5_append(md5_state_, buffer + 4, 4);
-}
-
-void SetUnpackColormapCompatStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *message,
- const Message *cachedMessage,
- ChannelCache *channelCache) const
-{
- SetUnpackColormapCompatMessage *setUnpackColormap = (SetUnpackColormapCompatMessage *) message;
- SetUnpackColormapCompatMessage *cachedSetUnpackColormap = (SetUnpackColormapCompatMessage *) cachedMessage;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- #ifdef TEST
- *logofs << name() << ": Encoding value "
- << (unsigned int) setUnpackColormap -> client
- << " as client field.\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeCachedValue(setUnpackColormap -> client, 8,
- clientCache -> resourceCache);
-
- cachedSetUnpackColormap -> client = setUnpackColormap -> client;
-
- if (cachedSetUnpackColormap -> entries != setUnpackColormap -> entries)
- {
- #ifdef TEST
- *logofs << name() << ": Encoding value " << setUnpackColormap -> entries
- << " as entries field.\n" << logofs_flush;
- #endif
-
- encodeBuffer.encodeBoolValue(1);
-
- encodeBuffer.encodeValue(setUnpackColormap -> entries, 32, 9);
-
- cachedSetUnpackColormap -> entries = setUnpackColormap -> entries;
- }
- else
- {
- encodeBuffer.encodeBoolValue(0);
- }
-}
-
-void SetUnpackColormapCompatStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *message,
- ChannelCache *channelCache) const
-{
- SetUnpackColormapCompatMessage *setUnpackColormap = (SetUnpackColormapCompatMessage *) message;
-
- ClientCache *clientCache = (ClientCache *) channelCache;
-
- unsigned int value;
-
- decodeBuffer.decodeCachedValue(setUnpackColormap -> client, 8,
- clientCache -> resourceCache);
-
- #ifdef DEBUG
- *logofs << name() << ": Decoded value "
- << (unsigned int) setUnpackColormap -> client
- << " as client field.\n" << logofs_flush;
- #endif
-
- decodeBuffer.decodeBoolValue(value);
-
- if (value)
- {
- decodeBuffer.decodeValue(value, 32, 9);
-
- setUnpackColormap -> entries = value;
-
- #ifdef DEBUG
- *logofs << name() << ": Decoded value " << setUnpackColormap -> entries
- << " as entries field.\n" << logofs_flush;
- #endif
- }
-}
diff --git a/nxcomp/SetUnpackColormapCompat.h b/nxcomp/SetUnpackColormapCompat.h
deleted file mode 100644
index d1ffad876..000000000
--- a/nxcomp/SetUnpackColormapCompat.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef SetUnpackColormapCompat_H
-#define SetUnpackColormapCompat_H
-
-#include "Message.h"
-
-//
-// Set the verbosity level.
-//
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-#undef DUMP
-
-//
-// Set default values.
-//
-
-#define SETUNPACKCOLORMAP_ENABLE_CACHE 1
-#define SETUNPACKCOLORMAP_ENABLE_DATA 1
-#define SETUNPACKCOLORMAP_ENABLE_SPLIT 1
-#define SETUNPACKCOLORMAP_ENABLE_COMPRESS 1
-
-#define SETUNPACKCOLORMAP_DATA_LIMIT 4096
-#define SETUNPACKCOLORMAP_DATA_OFFSET 8
-
-#define SETUNPACKCOLORMAP_CACHE_SLOTS 2000
-#define SETUNPACKCOLORMAP_CACHE_THRESHOLD 5
-#define SETUNPACKCOLORMAP_CACHE_LOWER_THRESHOLD 0
-
-//
-// The message class.
-//
-
-class SetUnpackColormapCompatMessage : public Message
-{
- friend class SetUnpackColormapCompatStore;
-
- public:
-
- SetUnpackColormapCompatMessage()
- {
- }
-
- ~SetUnpackColormapCompatMessage()
- {
- }
-
- //
- // Put here the fields which constitute
- // the 'identity' part of the message.
- //
-
- private:
-
- unsigned char client;
- unsigned int entries;
-};
-
-class SetUnpackColormapCompatStore : public MessageStore
-{
- public:
-
- SetUnpackColormapCompatStore(StaticCompressor *compressor);
-
- virtual ~SetUnpackColormapCompatStore();
-
- virtual const char *name() const
- {
- return "SetUnpackColormapCompat";
- }
-
- virtual unsigned char opcode() const
- {
- return X_NXSetUnpackColormap;
- }
-
- virtual unsigned int storage() const
- {
- return sizeof(SetUnpackColormapCompatMessage);
- }
-
- //
- // Message handling methods.
- //
-
- protected:
-
- virtual Message *create() const
- {
- return new SetUnpackColormapCompatMessage();
- }
-
- virtual Message *create(const Message &message) const
- {
- return new SetUnpackColormapCompatMessage((const SetUnpackColormapCompatMessage &) message);
- }
-
- virtual void destroy(Message *message) const
- {
- delete (SetUnpackColormapCompatMessage *) message;
- }
-
- virtual int encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer,
- const unsigned int size, int bigEndian,
- ChannelCache *channelCache) const;
-
- virtual int decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer,
- unsigned int &size, int bigEndian, WriteBuffer *writeBuffer,
- ChannelCache *channelCache) const;
-
- virtual int parseIdentity(Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual int unparseIdentity(const Message *message, unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual void updateIdentity(EncodeBuffer &encodeBuffer, const Message *message,
- const Message *cachedMessage,
- ChannelCache *channelCache) const;
-
- virtual void updateIdentity(DecodeBuffer &decodeBuffer, const Message *message,
- ChannelCache *channelCache) const;
-
- virtual void identityChecksum(const Message *message, const unsigned char *buffer,
- unsigned int size, int bigEndian) const;
-
- virtual void dumpIdentity(const Message *message) const;
-};
-
-#endif /* SetUnpackColormapCompat_H */
diff --git a/nxcomp/ShapeExtension.cpp b/nxcomp/ShapeExtension.cpp
index daa19fbb4..34fad27c9 100644
--- a/nxcomp/ShapeExtension.cpp
+++ b/nxcomp/ShapeExtension.cpp
@@ -45,12 +45,9 @@ ShapeExtensionStore::ShapeExtensionStore(StaticCompressor *compressor)
enableCache = SHAPEEXTENSION_ENABLE_CACHE;
enableData = SHAPEEXTENSION_ENABLE_DATA;
enableSplit = SHAPEEXTENSION_ENABLE_SPLIT;
- enableCompress = SHAPEEXTENSION_ENABLE_COMPRESS;
- if (control -> isProtoStep7() == 1)
- {
- enableCompress = SHAPEEXTENSION_ENABLE_COMPRESS_IF_PROTO_STEP_7;
- }
+ // Since ProtoStep7 (#issue 108)
+ enableCompress = SHAPEEXTENSION_ENABLE_COMPRESS_IF_PROTO_STEP_7;
dataLimit = SHAPEEXTENSION_DATA_LIMIT;
dataOffset = SHAPEEXTENSION_DATA_OFFSET;
diff --git a/nxcomp/ShapeExtension.h b/nxcomp/ShapeExtension.h
index 32c3b55ef..41fe48113 100644
--- a/nxcomp/ShapeExtension.h
+++ b/nxcomp/ShapeExtension.h
@@ -37,7 +37,6 @@
#define SHAPEEXTENSION_ENABLE_CACHE 1
#define SHAPEEXTENSION_ENABLE_DATA 1
#define SHAPEEXTENSION_ENABLE_SPLIT 0
-#define SHAPEEXTENSION_ENABLE_COMPRESS 1
#define SHAPEEXTENSION_DATA_LIMIT 3200
#define SHAPEEXTENSION_DATA_OFFSET 20
diff --git a/nxcomp/Split.cpp b/nxcomp/Split.cpp
index 35a4ed4a2..607544312 100644
--- a/nxcomp/Split.cpp
+++ b/nxcomp/Split.cpp
@@ -748,27 +748,8 @@ int SplitStore::start(DecodeBuffer &decodeBuffer)
// Get the compressed size.
//
- if (control -> isProtoStep7() == 1)
- {
- decodeBuffer.decodeValue(compressedSize, 32, 14);
- }
- else
- {
- //
- // As we can't refuse to handle the decoding
- // of the split message when connected to an
- // old proxy version, we need to decode this
- // in a way that is compatible.
- //
-
- unsigned int diffSize;
-
- decodeBuffer.decodeValue(diffSize, 32, 14);
-
- split -> store_ -> lastResize += diffSize;
-
- compressedSize = split -> store_ -> lastResize;
- }
+ // Since ProtoStep7 (#issue 108)
+ decodeBuffer.decodeValue(compressedSize, 32, 14);
split -> store_ -> validateSize(split -> d_size_, compressedSize);
diff --git a/nxcomp/TextCompressor.cpp b/nxcomp/TextCompressor.cpp
deleted file mode 100644
index 16131222c..000000000
--- a/nxcomp/TextCompressor.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#include "TextCompressor.h"
-
-#include "EncodeBuffer.h"
-#include "DecodeBuffer.h"
-
-//
-// The compression obtained by this class is
-// very poor. In newer versions the text is
-// simply appended to the encode buffer and
-// compressed by leveraging the final stream
-// compression.
-//
-
-void
-TextCompressor::encodeChar(unsigned char ch, EncodeBuffer& encodeBuffer)
-{
- // encode each successive character of text using
- // a predictive model where most of the last 3 characters
- // (low order 7 bits of the previous character, plus the
- // low order 5 bits of the character before that, plus
- // the low order 3 bits of the character before that)
- // are used to find the right cache...
-
- CharCache& cache = cache_[key_ % cacheSize_];
- if ((key_ >= 128) && (cache.getSize() == 0))
- {
- // 3rd-order model doesn't have any statistics yet,
- // so use the 1st-order one instead
- CharCache& cache2 = cache_[(key_ & 0x7f) % cacheSize_];
- encodeBuffer.encodeCachedValue((unsigned int) ch, 8, cache2);
- cache.insert(ch);
- }
- else
- {
- encodeBuffer.encodeCachedValue((unsigned int) ch, 8, cache);
- }
-
- key_ = (((key_ & 0x1f) << 7) | ((key_ & 0x380) << 5) | (ch & 0x7f));
-}
-
-
-unsigned char
-TextCompressor::decodeChar(DecodeBuffer& decodeBuffer)
-{
- unsigned char nextChar;
- CharCache& cache = cache_[key_ % cacheSize_];
- if ((key_ >= 128) && (cache.getSize() == 0))
- {
- CharCache& cache2 = cache_[(key_ & 0x7f) % cacheSize_];
- decodeBuffer.decodeCachedValue(nextChar, 8, cache2);
- cache.insert(nextChar);
- }
- else
- {
- decodeBuffer.decodeCachedValue(nextChar, 8, cache);
- }
-
- key_ = (((key_ & 0x1f) << 7) | ((key_ & 0x380) << 5) | (nextChar & 0x7f));
- return nextChar;
-}
diff --git a/nxcomp/TextCompressor.h b/nxcomp/TextCompressor.h
deleted file mode 100644
index b373b98b8..000000000
--- a/nxcomp/TextCompressor.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
-/* */
-/* NXCOMP, NX protocol compression and NX extensions to this software */
-/* are copyright of NoMachine. Redistribution and use of the present */
-/* software is allowed according to terms specified in the file LICENSE */
-/* which comes in the source distribution. */
-/* */
-/* Check http://www.nomachine.com/licensing.html for applicability. */
-/* */
-/* NX and NoMachine are trademarks of Medialogic S.p.A. */
-/* */
-/* All rights reserved. */
-/* */
-/**************************************************************************/
-
-#ifndef TextCompressor_H
-#define TextCompressor_H
-
-#include "CharCache.h"
-
-class EncodeBuffer;
-class DecodeBuffer;
-
-class TextCompressor
-{
- public:
- TextCompressor(CharCache* cache, unsigned int cacheSize):
- cache_(cache),
- cacheSize_(cacheSize),
- key_(0)
- {
- }
-
- void encodeChar(unsigned char ch, EncodeBuffer &);
- unsigned char decodeChar(DecodeBuffer &);
- void reset(unsigned int newKey = 0)
- {
- key_ = newKey;
- }
-
- private:
- CharCache* cache_;
- unsigned int cacheSize_;
- unsigned int key_;
-};
-
-#endif /* TextCompressor_H */
diff --git a/nxcomp/Types.h b/nxcomp/Types.h
index b7506124e..f4a3eb399 100644
--- a/nxcomp/Types.h
+++ b/nxcomp/Types.h
@@ -199,18 +199,18 @@ T_buffer;
// received at the decoding side.
//
+// Since ProtoStep8 (#issue 108)
enum T_store_action
{
is_hit,
is_added,
is_discarded,
- is_removed,
- is_added_compat = 0,
- is_hit_compat = 1
+ is_removed
};
-#define IS_HIT (control -> isProtoStep8() == 1 ? is_hit : is_hit_compat)
-#define IS_ADDED (control -> isProtoStep8() == 1 ? is_added : is_added_compat)
+// Since ProtoStep8 (#issue 108)
+#define IS_HIT is_hit
+#define IS_ADDED is_added
enum T_checksum_action
{