From a9be6f59105b7cf29bb799556274dc2c3b3d2af8 Mon Sep 17 00:00:00 2001 From: Fernando Carvajal Date: Tue, 12 Apr 2016 11:52:22 +0200 Subject: Remove compatibility code for nxcomp before 3.5.0 As a part of nxcomp's clean-up process, compatibility with old protocol versions has been set now at 3.5.0. This commit removes compatibility code from nxcomp so the minimum supported version changes from 1.5.0 (protocol step 6) to 3.5.0 (protocol step 10). At this moment the removal is not complete and it will be followed by some other commits, in order to get rid of several components and files that are no longer used as they were only needed to work with old protocol versions. Refs: ArcticaProject/nx-libs#108 --- nxcomp/Channel.cpp | 186 +++--------- nxcomp/ClientCache.cpp | 7 - nxcomp/ClientCache.h | 15 - nxcomp/ClientChannel.cpp | 525 +++++---------------------------- nxcomp/ClientChannel.h | 40 --- nxcomp/ClientProxy.h | 10 +- nxcomp/ClientStore.cpp | 24 +- nxcomp/Control.cpp | 107 ++----- nxcomp/Control.h | 50 ++-- nxcomp/CreateGC.cpp | 80 ++--- nxcomp/DecodeBuffer.cpp | 95 +----- nxcomp/DecodeBuffer.h | 12 - nxcomp/EncodeBuffer.cpp | 67 +---- nxcomp/EncodeBuffer.h | 12 - nxcomp/FillPoly.cpp | 16 +- nxcomp/FillPoly.h | 16 +- nxcomp/GenericChannel.h | 24 +- nxcomp/GenericReply.cpp | 7 +- nxcomp/GenericReply.h | 1 - nxcomp/GenericRequest.cpp | 9 +- nxcomp/GenericRequest.h | 1 - nxcomp/GetImageReply.cpp | 7 +- nxcomp/GetImageReply.h | 1 - nxcomp/GetPropertyReply.cpp | 7 +- nxcomp/GetPropertyReply.h | 1 - nxcomp/ListFontsReply.cpp | 7 +- nxcomp/ListFontsReply.h | 1 - nxcomp/Loop.cpp | 264 +++++------------ nxcomp/Message.cpp | 14 - nxcomp/Message.h | 21 -- nxcomp/PolyLine.cpp | 18 +- nxcomp/PolyPoint.cpp | 18 +- nxcomp/PositionCacheCompat.cpp | 17 -- nxcomp/Proxy.cpp | 280 +++++------------- nxcomp/Proxy.h | 5 - nxcomp/PutImage.cpp | 14 +- nxcomp/PutImage.h | 2 - nxcomp/PutPackedImage.cpp | 7 +- nxcomp/PutPackedImage.h | 1 - nxcomp/QueryFontReply.cpp | 7 +- nxcomp/QueryFontReply.h | 1 - nxcomp/RenderCompositeGlyphs.cpp | 166 ++++------- nxcomp/RenderCompositeGlyphs.h | 5 +- nxcomp/RenderExtension.cpp | 258 ++++------------ nxcomp/RenderExtension.h | 1 - nxcomp/ServerCache.cpp | 5 +- nxcomp/ServerCache.h | 8 - nxcomp/ServerChannel.cpp | 614 ++++++++------------------------------- nxcomp/ServerChannel.h | 15 - nxcomp/ServerProxy.h | 10 +- nxcomp/SetUnpackAlpha.cpp | 7 +- nxcomp/SetUnpackAlpha.h | 4 - nxcomp/SetUnpackColormap.cpp | 7 +- nxcomp/SetUnpackColormap.h | 3 - nxcomp/ShapeExtension.cpp | 7 +- nxcomp/ShapeExtension.h | 1 - nxcomp/Split.cpp | 23 +- nxcomp/Types.h | 10 +- 58 files changed, 649 insertions(+), 2492 deletions(-) (limited to 'nxcomp') 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/ClientCache.cpp b/nxcomp/ClientCache.cpp index 2a82009a3..ec37c69f6 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), diff --git a/nxcomp/ClientCache.h b/nxcomp/ClientCache.h index 6702e5b66..3fa59f642 100644 --- a/nxcomp/ClientCache.h +++ b/nxcomp/ClientCache.h @@ -85,7 +85,6 @@ class ClientCache : public ChannelCache IntCache changePropertyPropertyCache; IntCache changePropertyTypeCache; IntCache changePropertyData32Cache; - TextCompressor changePropertyTextCompressor; // // ClearArea request. @@ -188,19 +187,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 +237,6 @@ class ClientCache : public ChannelCache IntCache polyTextCacheY; IntCache polyTextFontCache; CharCache polyTextDeltaCache; - TextCompressor polyTextTextCompressor; // // PutImage request. diff --git a/nxcomp/ClientChannel.cpp b/nxcomp/ClientChannel.cpp index 31d6d125a..813e83bee 100644 --- a/nxcomp/ClientChannel.cpp +++ b/nxcomp/ClientChannel.cpp @@ -154,13 +154,6 @@ ClientChannel::ClientChannel(Transport *transport, StaticCompressor *compressor) splitState_.commit = 0; 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 @@ -348,6 +348,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 @@ -320,6 +320,12 @@ class Control int CompatVersionPatch; 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/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) { @@ -12638,6 +12595,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 @@ -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/Message.cpp b/nxcomp/Message.cpp index 188ed9a0e..ccafa9963 100644 --- a/nxcomp/Message.cpp +++ b/nxcomp/Message.cpp @@ -112,20 +112,6 @@ MessageStore::MessageStore(StaticCompressor *compressor) lastRated = nothing; 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" // @@ -345,16 +342,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. @@ -362,14 +349,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 index 4a6a2cd63..dd301a0a4 100644 --- a/nxcomp/PositionCacheCompat.cpp +++ b/nxcomp/PositionCacheCompat.cpp @@ -21,25 +21,8 @@ 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/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/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/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..2b616e1e5 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 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..0968e235c 100644 --- a/nxcomp/ServerCache.h +++ b/nxcomp/ServerCache.h @@ -215,7 +215,6 @@ class ServerCache : public ChannelCache CharCache getPropertyFormatCache; IntCache getPropertyTypeCache; - TextCompressor getPropertyTextCompressor; static BlockCache xResources; // @@ -272,13 +271,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/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/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/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 { -- cgit v1.2.3 From 134648169cd0a9359e1a8a31a5bb55a307b0a801 Mon Sep 17 00:00:00 2001 From: Fernando Carvajal Date: Tue, 12 Apr 2016 16:03:37 +0200 Subject: Remove obsolete compatibility files from nxcomp This commit removes obsolete compatibility files whose components were only used to handle compatibility with old protocol versions that are no longer supported. Refs: ArcticaProject/nx-libs#108 --- nxcomp/ActionCacheCompat.h | 45 --- nxcomp/ChangeGCCompat.cpp | 131 ------- nxcomp/ChangeGCCompat.h | 170 ---------- nxcomp/CreatePixmapCompat.cpp | 272 --------------- nxcomp/CreatePixmapCompat.h | 154 --------- nxcomp/Makefile.in | 13 +- nxcomp/PositionCacheCompat.cpp | 28 -- nxcomp/PositionCacheCompat.h | 41 --- nxcomp/RenderCompositeCompat.cpp | 320 ------------------ nxcomp/RenderCompositeCompat.h | 80 ----- nxcomp/RenderCompositeGlyphsCompat.cpp | 602 --------------------------------- nxcomp/RenderCompositeGlyphsCompat.h | 80 ----- nxcomp/RenderCreateGlyphSetCompat.cpp | 231 ------------- nxcomp/RenderCreateGlyphSetCompat.h | 80 ----- nxcomp/RenderCreatePictureCompat.cpp | 262 -------------- nxcomp/RenderCreatePictureCompat.h | 80 ----- nxcomp/RenderExtension.h | 7 - nxcomp/RenderFreePictureCompat.cpp | 158 --------- nxcomp/RenderFreePictureCompat.h | 80 ----- nxcomp/RenderPictureClipCompat.cpp | 237 ------------- nxcomp/RenderPictureClipCompat.h | 80 ----- nxcomp/SetUnpackAlphaCompat.cpp | 250 -------------- nxcomp/SetUnpackAlphaCompat.h | 149 -------- nxcomp/SetUnpackColormapCompat.cpp | 262 -------------- nxcomp/SetUnpackColormapCompat.h | 149 -------- 25 files changed, 1 insertion(+), 3960 deletions(-) delete mode 100644 nxcomp/ActionCacheCompat.h delete mode 100644 nxcomp/ChangeGCCompat.cpp delete mode 100644 nxcomp/ChangeGCCompat.h delete mode 100644 nxcomp/CreatePixmapCompat.cpp delete mode 100644 nxcomp/CreatePixmapCompat.h delete mode 100644 nxcomp/PositionCacheCompat.cpp delete mode 100644 nxcomp/PositionCacheCompat.h delete mode 100644 nxcomp/RenderCompositeCompat.cpp delete mode 100644 nxcomp/RenderCompositeCompat.h delete mode 100644 nxcomp/RenderCompositeGlyphsCompat.cpp delete mode 100644 nxcomp/RenderCompositeGlyphsCompat.h delete mode 100644 nxcomp/RenderCreateGlyphSetCompat.cpp delete mode 100644 nxcomp/RenderCreateGlyphSetCompat.h delete mode 100644 nxcomp/RenderCreatePictureCompat.cpp delete mode 100644 nxcomp/RenderCreatePictureCompat.h delete mode 100644 nxcomp/RenderFreePictureCompat.cpp delete mode 100644 nxcomp/RenderFreePictureCompat.h delete mode 100644 nxcomp/RenderPictureClipCompat.cpp delete mode 100644 nxcomp/RenderPictureClipCompat.h delete mode 100644 nxcomp/SetUnpackAlphaCompat.cpp delete mode 100644 nxcomp/SetUnpackAlphaCompat.h delete mode 100644 nxcomp/SetUnpackColormapCompat.cpp delete mode 100644 nxcomp/SetUnpackColormapCompat.h (limited to 'nxcomp') 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/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/Makefile.in b/nxcomp/Makefile.in index d309c4949..93b644079 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -226,18 +226,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/PositionCacheCompat.cpp b/nxcomp/PositionCacheCompat.cpp deleted file mode 100644 index dd301a0a4..000000000 --- a/nxcomp/PositionCacheCompat.cpp +++ /dev/null @@ -1,28 +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() -{ -} - -PositionCacheCompat::~PositionCacheCompat() -{ -} 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/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/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.h b/nxcomp/RenderExtension.h index 2b616e1e5..7ccf54068 100644 --- a/nxcomp/RenderExtension.h +++ b/nxcomp/RenderExtension.h @@ -82,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/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/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 */ -- cgit v1.2.3 From 5c495241069708e9b1bbf6e57fd49599be540b63 Mon Sep 17 00:00:00 2001 From: Fernando Carvajal Date: Fri, 15 Apr 2016 09:49:09 +0200 Subject: Remove TextCompressor class and files from nxcomp This commit removes TextCompressor class references from ClientCache and ServerCache as it's no longer used after removing old protocol's compatibility code from nxcomp. It also removes the attribute textCache from both classes as it's no longer used either. Finally the header and source files associated with the TextCompressor class are also deleted and removed from the compilation process. Refs: ArcticaProject/nx-libs#108 --- nxcomp/ChannelCache.h | 7 ----- nxcomp/ClientCache.cpp | 2 -- nxcomp/ClientCache.h | 5 --- nxcomp/Makefile.in | 1 - nxcomp/ServerCache.h | 2 -- nxcomp/TextCompressor.cpp | 77 ----------------------------------------------- nxcomp/TextCompressor.h | 49 ------------------------------ 7 files changed, 143 deletions(-) delete mode 100644 nxcomp/TextCompressor.cpp delete mode 100644 nxcomp/TextCompressor.h (limited to 'nxcomp') diff --git a/nxcomp/ChannelCache.h b/nxcomp/ChannelCache.h index 7b94893b6..c810a0b96 100644 --- a/nxcomp/ChannelCache.h +++ b/nxcomp/ChannelCache.h @@ -18,13 +18,6 @@ #ifndef ChannelCache_H #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 ec37c69f6..49dc4ece5 100644 --- a/nxcomp/ClientCache.cpp +++ b/nxcomp/ClientCache.cpp @@ -100,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 3fa59f642..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; @@ -383,8 +380,6 @@ class ClientCache : public ChannelCache IntCache *renderDataCache[16]; - TextCompressor renderTextCompressor; - IntCache renderGlyphXCache; IntCache renderGlyphYCache; diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index 93b644079..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 \ diff --git a/nxcomp/ServerCache.h b/nxcomp/ServerCache.h index 0968e235c..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; 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 */ -- cgit v1.2.3