summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2015-01-08 10:30:04 +0100
committerBenoit Foucher <benoit@zeroc.com>2015-01-08 10:30:04 +0100
commit60a300bb9e342d4b92536c35ba8490e656ec05e5 (patch)
tree6340ccc38fa558b969d5324dff629d677d37afbc /cpp/src
parentAdded ICE_HAS_BZIP2 macro (diff)
downloadice-60a300bb9e342d4b92536c35ba8490e656ec05e5.tar.bz2
ice-60a300bb9e342d4b92536c35ba8490e656ec05e5.tar.xz
ice-60a300bb9e342d4b92536c35ba8490e656ec05e5.zip
Additional fix for ICE_HAS_BZIP2 macro
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/ConnectionI.cpp15
-rw-r--r--cpp/src/Ice/ConnectionI.h10
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