[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