diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/ConnectionI.cpp | 15 | ||||
-rw-r--r-- | cpp/src/Ice/ConnectionI.h | 10 |
2 files changed, 16 insertions, 9 deletions
diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp index 5f4a4232bd4..45b80883a56 100644 --- a/cpp/src/Ice/ConnectionI.cpp +++ b/cpp/src/Ice/ConnectionI.cpp @@ -28,11 +28,8 @@ #include <Ice/ReferenceFactory.h> // For createProxy(). #include <Ice/ProxyFactory.h> // For createProxy(). -#if !defined(ICE_OS_WINRT) -# ifndef ICE_HAS_BZIP2 -# define ICE_HAS_BZIP2 -# endif -# include <bzlib.h> +#ifdef ICE_HAS_BZIP2 +# include <bzlib.h> #endif using namespace std; @@ -3455,14 +3452,18 @@ Ice::ConnectionI::parseMessage(BasicStream& stream, Int& invokeNum, Int& request stream.read(messageType); stream.read(compress); -#ifdef ICE_HAS_BZIP2 if(compress == 2) { +#ifdef ICE_HAS_BZIP2 BasicStream ustream(_instance.get(), Ice::currentProtocolEncoding); doUncompress(stream, ustream); stream.b.swap(ustream.b); - } +#else + FeatureNotSupportedException ex(__FILE__, __LINE__); + ex.unsupportedFeature = "Cannot uncompress compressed message"; + throw ex; #endif + } stream.i = stream.b.begin() + headerSize; switch(messageType) diff --git a/cpp/src/Ice/ConnectionI.h b/cpp/src/Ice/ConnectionI.h index 65aec9908f5..7dc0db9a2b4 100644 --- a/cpp/src/Ice/ConnectionI.h +++ b/cpp/src/Ice/ConnectionI.h @@ -15,6 +15,7 @@ #include <IceUtil/Time.h> #include <IceUtil/StopWatch.h> #include <IceUtil/Timer.h> +#include <IceUtil/UniquePtr.h> #include <Ice/CommunicatorF.h> #include <Ice/Connection.h> @@ -38,7 +39,12 @@ #include <Ice/ACM.h> #include <deque> -#include <IceUtil/UniquePtr.h> + +#if !defined(ICE_OS_WINRT) +# ifndef ICE_HAS_BZIP2 +# define ICE_HAS_BZIP2 +# endif +#endif namespace IceInternal { @@ -266,7 +272,7 @@ private: IceInternal::SocketOperation sendNextMessage(std::vector<OutgoingMessage>&); IceInternal::AsyncStatus sendMessage(OutgoingMessage&); -#ifndef ICE_OS_WINRT +#ifdef ICE_HAS_BZIP2 void doCompress(IceInternal::BasicStream&, IceInternal::BasicStream&); void doUncompress(IceInternal::BasicStream&, IceInternal::BasicStream&); #endif |