diff options
author | Fernando Carvajal <fcarvajal@qindel.com> | 2016-04-12 11:52:22 +0200 |
---|---|---|
committer | Fernando Carvajal <fcarvajal@qindel.com> | 2016-04-12 12:07:53 +0200 |
commit | a9be6f59105b7cf29bb799556274dc2c3b3d2af8 (patch) | |
tree | 555bfeba04b21dc26df16ee5c26a3ec798d02584 /nxcomp/ServerChannel.cpp | |
parent | 2ffe52c5ecb7cf6af111c685eee7f8fcfd1139a9 (diff) | |
download | nx-libs-a9be6f59105b7cf29bb799556274dc2c3b3d2af8.tar.gz nx-libs-a9be6f59105b7cf29bb799556274dc2c3b3d2af8.tar.bz2 nx-libs-a9be6f59105b7cf29bb799556274dc2c3b3d2af8.zip |
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
Diffstat (limited to 'nxcomp/ServerChannel.cpp')
-rw-r--r-- | nxcomp/ServerChannel.cpp | 614 |
1 files changed, 119 insertions, 495 deletions
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) { |