[prev in list] [next in list] [prev in thread] [next in thread]
List: pecl-cvs
Subject: [PECL-CVS] com =?UTF-8?Q?pecl/database/mysql=5Fxdevapi=3A=20WL=23=31=33=30=30=31=20D?= =?UTF-8?Q?evA
From: hery ramilison <mysqlre () php ! net>
Date: 2020-04-23 20:55:24
Message-ID: php-mail-70cfe7a808f1a1f93cb09ad3df0b098717638804 () git ! php ! net
[Download RAW message or body]
Commit: 9946644974f7db1fe92e3328dfada73d11224d28
Author: Darek Slusarczyk <dariusz.slusarczyk@oracle.com> Thu, 23 Apr 2020 \
22:55:24 +0200
Parents: 288a838950ac10742d2166bb4f0c6554241be1a2
Branches: master
Link: http://git.php.net/?p=pecl/database/mysql_xdevapi.git;a=commitdiff;h=9946644974f7db1fe92e3328dfada73d11224d28
Log:
WL#13001 DevAPI: Connection compression
- support lz4 older than v1.8.0 (missing LZ4F_resetDecompressionContext)
- fix config.m4 (sh on FreeBSD doesn't support operator += to concatenate strings)
Bugs:
https://bugs.php.net/13001
Changed paths:
M config.m4
M xmysqlnd/xmysqlnd_compressor_lz4.cc
Diff:
diff --git a/config.m4 b/config.m4
index 3293b3bb..07be2608 100644
--- a/config.m4
+++ b/config.m4
@@ -368,8 +368,7 @@ if test "$PHP_MYSQL_XDEVAPI" != "no" || test \
"$PHP_MYSQL_XDEVAPI_ENABLED" == "ye PREFERRED_BOOST_VER_SUBDIR="boost_1_72_0"
PREFERRED_BOOST_VER_LABEL="1.72.00"
- REQUIRED_BOOST_VER_MSG="required at least $MINIMAL_BOOST_VER_LABEL"
- REQUIRED_BOOST_VER_MSG+=" (preferred is $PREFERRED_BOOST_VER_LABEL)"
+ REQUIRED_BOOST_VER_MSG="required at least $MINIMAL_BOOST_VER_LABEL (preferred is \
$PREFERRED_BOOST_VER_LABEL)"
if test -d "$WITH_BOOST"; then
PREFERRED_BOOST_LOCATION=[$WITH_BOOST/$PREFERRED_BOOST_VER_SUBDIR]
diff --git a/xmysqlnd/xmysqlnd_compressor_lz4.cc \
b/xmysqlnd/xmysqlnd_compressor_lz4.cc index b9bdfc8d..33aea877 100644
--- a/xmysqlnd/xmysqlnd_compressor_lz4.cc
+++ b/xmysqlnd/xmysqlnd_compressor_lz4.cc
@@ -46,6 +46,9 @@ public:
util::bytes decompress(const Mysqlx::Connection::Compression& message) override;
private:
+ void reset_decompression_context();
+
+private:
LZ4F_cctx_s* compress_ctx{ nullptr };
LZ4F_dctx_s* decompress_ctx{ nullptr };
LZ4F_preferences_t lz4_prefs{};
@@ -141,7 +144,7 @@ util::bytes Compressor_lz4::decompress(const \
Mysqlx::Connection::Compression& me nullptr);
if (LZ4F_isError(result)) {
- LZ4F_resetDecompressionContext(decompress_ctx);
+ reset_decompression_context();
throw std::runtime_error("error during lz4 decompression");
}
@@ -157,6 +160,21 @@ util::bytes Compressor_lz4::decompress(const \
Mysqlx::Connection::Compression& me return uncompressed_payload;
}
+void Compressor_lz4::reset_decompression_context()
+{
+#if LZ4_VERSION_NUMBER >= 10800
+ LZ4F_resetDecompressionContext(decompress_ctx);
+#else
+ if (LZ4F_isError(LZ4F_freeDecompressionContext(decompress_ctx))) {
+ throw std::runtime_error("cannot free lz4 decompression context");
+ }
+
+ if (LZ4F_isError(LZ4F_createDecompressionContext(&decompress_ctx, LZ4F_VERSION))) {
+ throw std::runtime_error("cannot create lz4 decompression context");
+ }
+#endif
+}
+
} // anonymous namespace
// ------------------------------------------
--
PECL CVS Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic