[PECL-CVS] [pecl-search_engine-solr] master: Merge branch 'master' into update-solr-docker

[email protected] (omars via GitHub) Thu, 25 Jun 2026 04:52:13 +0000
Newsgroups php.pecl.cvs
Message-ID <[email protected]>
Author: omars (omars44)
Committer: GitHub (web-flow)
Pusher: omars44
Date: 2026-06-15T11:58:56+03:00

Commit: https://github.com/php/pecl-search_engine-solr/commit/167e587f0b1cd46649a150653ba0c25b46f5f091
Raw diff: https://github.com/php/pecl-search_engine-solr/commit/167e587f0b1cd46649a150653ba0c25b46f5f091.diff

Merge branch 'master' into update-solr-docker

Changed paths:
  A  composer.json
  M  .docker/entrypoint.sh
  M  .github/workflows/linux-tests.yml
  M  .github/workflows/windows-tests.yml
  M  config.w32
  M  docs/documentation.php
  M  package.xml
  M  src/php_solr.c
  M  src/php_solr.h
  M  src/php_solr_client.c
  M  src/php_solr_document.c
  M  src/php_solr_params.c
  M  src/php_solr_version.h
  M  src/solr_functions_client.c
  M  src/solr_functions_document.c
  M  src/solr_string.c
  M  tests/003.solrclient_options.phpt
  M  tests/019.solrclient_getdebug.phpt


Diff:

diff --git a/.docker/entrypoint.sh b/.docker/entrypoint.sh
index 309ea975..ca78eb9c 100644
--- a/.docker/entrypoint.sh
+++ b/.docker/entrypoint.sh
@@ -1,5 +1,5 @@
 pecl package package.xml
-pecl install ./solr-2.8.1.tgz
+pecl install ./solr-2.9.3.tgz
 echo "extension=solr.so" > /usr/local/etc/php/conf.d/solr.ini
 php -m | grep solr
 bash
diff --git a/.github/workflows/linux-tests.yml b/.github/workflows/linux-tests.yml
index 54548273..e601e331 100644
--- a/.github/workflows/linux-tests.yml
+++ b/.github/workflows/linux-tests.yml
@@ -15,7 +15,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        php: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4']
+        php: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5']
     steps:
       - name: Checkout
         uses: actions/checkout@v3
diff --git a/.github/workflows/windows-tests.yml b/.github/workflows/windows-tests.yml
index fc7a6fc6..b7c21209 100644
--- a/.github/workflows/windows-tests.yml
+++ b/.github/workflows/windows-tests.yml
@@ -10,125 +10,42 @@ on:
       - "master"
 
 jobs:
-  windows:
-    defaults:
-      run:
-        shell: cmd
+  get-extension-matrix:
+    runs-on: ubuntu-latest
+    outputs:
+      matrix: ${{ steps.extension-matrix.outputs.matrix }}
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+      - name: Get the extension matrix
+        id: extension-matrix
+        uses: php/php-windows-builder/extension-matrix@v1
+  build:
+    needs: get-extension-matrix
+    runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
-      matrix:
-          version: ["7.4", "8.0", "8.1", "8.2", "8.3", "8.4"]
-          arch: [x64, x86]
-          ts: [ts, nts]
-          os: [windows-2019, windows-2022]
-          exclude:
-            - { os: windows-2019, version: "8.4" }
-            - { os: windows-2022, version: "7.4" }
-          
-    runs-on: ${{matrix.os}}
+      matrix: ${{fromJson(needs.get-extension-matrix.outputs.matrix)}}
     steps:
-      - name: Checkout the code
-        uses: actions/checkout@v2
-        
-      - name: Setup PHP
-        id: setup-php
-        uses: php/[email protected]
-        with:
-          version: ${{matrix.version}}
-          arch: ${{matrix.arch}}
-          ts: ${{matrix.ts}}
-          deps: 'libxml2,libcurl,libiconv,libssh2,openssl,nghttp2'
-          cache: true
-          
-      - name: Enable Developer Command Prompt
-        uses: ilammy/msvc-dev-cmd@v1
-        with:
-          arch: ${{matrix.arch}}
-          toolset: ${{steps.setup-php.outputs.toolset}}
-          
-      # install extra package deps (zlib) (static: _a.lib, and dynamic .lib)
-      - name: cache vcpkg libraries
-        id: cache-vcpkg
-        uses: actions/cache@v4
-        with:
-          path: |
-            ${{github.workspace}}/vcpkg
-            ${{github.workspace}}/vcpkg/installed
-          key: vcpkg-${{matrix.version}}-${{matrix.arch}}-${{ hashFiles('**/vcpkg.json') }}
-          restore-keys: |
-            vcpkg-${{matrix.version}}-${{matrix.arch}}-
-
-      - name: install zlib with vcpkg
-        uses: omars44/pecl-windows-deps-installer@master
-        with:
-          cache-hit: ${{ steps.cache-vcpkg.outputs.cache-hit }}
-          libraries: 'zlib'
-          arch: ${{matrix.arch}}
-
-
-      # start compiling
-      - name: phpize
-        run: |
-           phpize
-      - name: configure
-        run: |
-          configure --enable-solr --with-php-build=.\..\deps --with-prefix=${{steps.setup-php.outputs.prefix}}
-      
-      - name: extract variables from Makefile (build_dir and dll_file)
-        shell: powershell
-        run: |
-          $makefileContent = Get-Content -Path ./Makefile -Raw
-          $buildDirsSub = [regex]::Match($makefileContent, "BUILD_DIRS_SUB=(.*)").Groups[1].Value.Trim()
-          $dllFullPath = Join-Path -Path $buildDirsSub -ChildPath "php_solr.dll"
-      
-          echo "dll_full_path=$dllFullPath" | Out-File -Append -Encoding utf8 -FilePath $env:GITHUB_ENV
-
-      - name: make
-        run: nmake
-      
-      - name: Did it compile successfully?
-        shell: powershell
-        run: |
-          $dll = $env:dll_full_path
-          Write-Host "`"Full DLL path:`" $dll`""
-          if (!(Test-Path $dll)) {
-              Write-Host "The path '$dll' does not exist."
-              exit 1
-          }
-          
-      - name: test
+      - name: Checkout
+        uses: actions/checkout@v4
+      - name: Build and test the extension
         env:
-           SOLR_SERVER_CONFIGURED: 0
-        run: nmake test TESTS="--show-diff -g FAIL,BORK,WARN,LEAK tests"
-        
-      - name: Copy DLL to CWD and sign it
-        if: startsWith(github.ref, 'refs/tags/')
-        shell: powershell
-        run: |
-          Copy-Item -Path $env:dll_full_path -Destination "."
-          $checksum = Get-FileHash -Path "php_solr.dll" -Algorithm SHA256
-          $checksumHashLowercase = $checksum.Hash.ToLower()
-          [System.IO.File]::WriteAllText("php_solr.dll.sha256", $checksumHashLowercase)
-          Write-Host "SHA256: $checksumHashLowercase"
-
-
-      - name: Upload DLL to release
-        if: startsWith(github.ref, 'refs/tags/')
-        uses: svenstaro/upload-release-action@v2
+          SOLR_SERVER_CONFIGURED: 0
+        uses: php/php-windows-builder/extension@v1
         with:
-          repo_token: ${{ secrets.GITHUB_TOKEN }}
-          file: php_solr.dll
-          asset_name: php_solr-dll-${{ matrix.version }}-${{ matrix.ts }}-${{ matrix.arch }}.dll
-          tag: ${{ github.ref }}
-          overwrite: true
-
-      - name: Upload SHA256 Checksum to release
-        if: startsWith(github.ref, 'refs/tags/')
-        uses: svenstaro/upload-release-action@v2
+          php-version: ${{ matrix.php-version }}
+          arch: ${{ matrix.arch }}
+          ts: ${{ matrix.ts }}
+          libs: 'zlib,libxml2,libcurl,libiconv,libssh2,openssl,nghttp2,brotli,libzstd'
+  release:
+    runs-on: ubuntu-latest
+    needs: build
+    if: ${{ github.event_name == 'release' }}
+    steps:
+      - name: Upload artifact to the release
+        uses: php/php-windows-builder/release@v1
         with:
-          repo_token: ${{ secrets.GITHUB_TOKEN }}
-          file: php_solr.dll.sha256
-          asset_name: php_solr-dll-${{ matrix.version }}-${{ matrix.ts }}-${{ matrix.arch }}.sha256
-          tag: ${{ github.ref }}
-          overwrite: true
-      
+          release: ${{ github.event.release.tag_name }}
+          token: ${{ secrets.GITHUB_TOKEN }}
+
diff --git a/composer.json b/composer.json
new file mode 100644
index 00000000..2ee67da7
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,27 @@
+{
+	"name": "pecl/solr",
+	"type": "php-ext",
+	"license": "PHP-3.01",
+	"description": "Apache Solr extension",
+	"require": {
+		"php": ">=7.4,<8.6",
+		"ext-json": "*"
+	},
+	"php-ext": {
+		"extension-name": "solr",
+		"configure-options": [
+			{
+				"name": "enable-solr",
+				"description": "Enable solr support"
+			},
+			{
+				"name": "enable-solr-debug",
+				"description": "Compile with solr in verbose mode"
+			},
+			{
+				"name": "enable-coverage",
+				"description": "Enable developer code coverage information"
+			}
+		]
+	}
+}
diff --git a/config.w32 b/config.w32
index fb4873d1..95eb0882 100644
--- a/config.w32
+++ b/config.w32
@@ -20,6 +20,13 @@ if(PHP_SOLR != 'no')
 		WARNING('solr was not enabled; nghttp2 library not found');
 		PHP_SOLR = "no";
 	}
+	if(!CHECK_LIB('brotlidec-static.lib;brotlidec.lib', 'solr', PHP_SOLR) ||
+		!CHECK_LIB('brotlicommon-static.lib;brotlicommon.lib', 'solr', PHP_SOLR)) {
+		WARNING('brotli libraries were not found; Accept-Encoding brotli may be unavailable');
+	}
+	if(!CHECK_LIB('libzstd_a.lib;libzstd.lib', 'solr', PHP_SOLR)) {
+		WARNING('zstd library not found; Accept-Encoding zstd may be unavailable');
+	}
 	if(!CHECK_LIB('crypt32.lib', 'solr', PHP_SOLR)) {
 		WARNING('solr was not enabled; crypt32 library not found');
 		PHP_SOLR = "no";
diff --git a/docs/documentation.php b/docs/documentation.php
index 1a7c7d05..e502cc83 100644
--- a/docs/documentation.php
+++ b/docs/documentation.php
@@ -18,10 +18,10 @@
 */
 
 define('SOLR_MAJOR_VERSION', 2);
-define('SOLR_MINOR_VERSION', 8);
-define('SOLR_PATCH_VERSION', 1);
+define('SOLR_MINOR_VERSION', 9);
+define('SOLR_PATCH_VERSION', 3);
 
-define('SOLR_EXTENSION_VERSION', '2.8.1');
+define('SOLR_EXTENSION_VERSION', '2.9.3');
 
 /**
  * Returns the current version of the Apache Solr extension
diff --git a/package.xml b/package.xml
index 2f2b1c3c..b68c1102 100644
--- a/package.xml
+++ b/package.xml
@@ -38,10 +38,10 @@ https://github.com/php/pecl-search_engine-solr
     <email>[email protected]</email>
     <active>yes</active>
   </lead>
-  <date>2025-04-22</date>
+  <date>2026-04-13</date>
   <version>
-    <release>2.8.1</release>
-    <api>2.8.1</api>
+    <release>2.9.3</release>
+    <api>2.9.3</api>
   </version>
   <stability>
     <release>stable</release>
@@ -53,7 +53,7 @@ https://github.com/php/pecl-search_engine-solr
   <notes>
 		<![CDATA[
 Fixes:
-- Fix return type of SolrUtils::escapeQueryChars() (#83)
+- Fix windows CI build issue
 
 ]]>
   </notes>
@@ -420,14 +420,11 @@ Fixes:
     <required>
       <php>
         <min>7.4.0</min>
-        <max>8.4.99</max>
+        <max>8.5.99</max>
       </php>
       <pearinstaller>
         <min>1.4.0</min>
       </pearinstaller>
-      <extension>
-        <name>libxml</name>
-      </extension>
     </required>
   </dependencies>
 
@@ -439,6 +436,87 @@ Fixes:
 
   <!-- Changes to the extension should be tracked here -->
   <changelog>
+    <release>
+      <version>
+        <release>2.9.3</release>
+        <api>2.9.3</api>
+      </version>
+      <stability>
+        <release>stable</release>
+        <api>stable</api>
+      </stability>
+      <date>2026-04-13</date>
+      <license uri="http://www.php.net/license">PHP License</license>
+      <notes>
+        <![CDATA[
+Fixes:
+- Fix window CI build issue
+
+]]>
+      </notes>
+    </release>
+    <release>
+      <version>
+        <release>2.9.2</release>
+        <api>2.9.2</api>
+      </version>
+      <stability>
+        <release>stable</release>
+        <api>stable</api>
+      </stability>
+      <date>2026-03-17</date>
+      <license uri="http://www.php.net/license">PHP License</license>
+      <notes>
+        <![CDATA[
+Fixes:
+- Fix maximum required PHP version for PIE
+
+]]>
+      </notes>
+    </release>
+    <release>
+      <version>
+        <release>2.9.1</release>
+        <api>2.9.1</api>
+      </version>
+      <stability>
+        <release>stable</release>
+        <api>stable</api>
+      </stability>
+      <date>2025-11-24</date>
+      <license uri="http://www.php.net/license">PHP License</license>
+      <notes>
+        <![CDATA[
+Fixes:
+- Fix maximum required PHP version for pecl
+
+]]>
+      </notes>
+    </release>
+    <release>
+      <version>
+        <release>2.9.0</release>
+        <api>2.9.0</api>
+      </version>
+      <stability>
+        <release>stable</release>
+        <api>stable</api>
+      </stability>
+      <date>2025-11-24</date>
+      <license uri="http://www.php.net/license">PHP License</license>
+      <notes>
+        <![CDATA[
+Features:
+- Support PHP 8.5 (#88)
+- Support PIE installer (#82)
+
+Fixes:
+- Fix curl deprecations  (#90)
+- Remove unused dependency on libxml extension (#93)
+
+]]>
+      </notes>
+    </release>
     <release>
       <version>
         <release>2.8.1</release>
diff --git a/src/php_solr.c b/src/php_solr.c
index 5cf1deb7..6c5c9c9f 100644
--- a/src/php_solr.c
+++ b/src/php_solr.c
@@ -1136,7 +1136,6 @@ static zend_function_entry solr_utils_methods[] = {
 
 /* {{{ solr_module_deps  */
 static zend_module_dep solr_module_deps[] = {
-    ZEND_MOD_REQUIRED(PHP_LIBXML_EXTENSION_NAME)
     ZEND_MOD_REQUIRED(PHP_JSON_EXTENSION_NAME)
     ZEND_MOD_END
 };
diff --git a/src/php_solr.h b/src/php_solr.h
index 278182f9..d7511a14 100644
--- a/src/php_solr.h
+++ b/src/php_solr.h
@@ -126,7 +126,7 @@ extern ZEND_API zend_class_entry *zend_ce_iterator;
 #define solr_ce_Serializable zend_ce_serializable
 #define solr_ce_ArrayAccess  zend_ce_arrayaccess
 #define solr_ce_Iterator     zend_ce_iterator
-#define solr_ce_Exception    zend_exception_get_default()
+#define solr_ce_Exception    zend_ce_exception
 /* }}} */
 
 extern zend_object_handlers solr_object_handlers;
diff --git a/src/php_solr_client.c b/src/php_solr_client.c
index 3a7fd3c8..e3c21411 100644
--- a/src/php_solr_client.c
+++ b/src/php_solr_client.c
@@ -703,7 +703,7 @@ PHP_METHOD(SolrClient, addDocument)
 
 	if (commitWithin > 0L)
 	{
-		auto char commitWithinBuffer[32];
+		char commitWithinBuffer[32];
 
 		memset(commitWithinBuffer, 0, sizeof(commitWithinBuffer));
 
@@ -714,7 +714,6 @@ PHP_METHOD(SolrClient, addDocument)
 
 	solr_add_doc_node(root_node, doc_entry);
 
-	xmlIndentTreeOutput = 1;
 	xmlDocDumpFormatMemoryEnc(doc_ptr, &request_string, &size, "UTF-8", format);
 
 	/* The XML request we are sending to Solr */
@@ -854,7 +853,7 @@ PHP_METHOD(SolrClient, addDocuments)
 
 	if (commitWithin > 0L)
 	{
-		auto char commitWithinBuffer[32];
+		char commitWithinBuffer[32];
 
 		memset(commitWithinBuffer, 0, sizeof(commitWithinBuffer));
 
@@ -879,8 +878,6 @@ PHP_METHOD(SolrClient, addDocuments)
 	/* We are done with the doc_entries pointer */
 	SOLR_FREE_DOC_ENTRIES(doc_entries);
 
-	xmlIndentTreeOutput = 1;
-
 	xmlDocDumpFormatMemoryEnc(doc_ptr, &request_string, &size, "UTF-8", format);
 
 	/* The XML request we are sending to Solr */
@@ -1067,8 +1064,6 @@ PHP_METHOD(SolrClient, deleteById)
 	xmlNewChild(root_node, NULL, (xmlChar *) "id", escaped_id_value);
 	xmlFree(escaped_id_value);
 
-	xmlIndentTreeOutput = 1;
-
 	xmlDocDumpFormatMemoryEnc(doc_ptr, &request_string, &size, "UTF-8", format);
 
 	/* The XML request we are sending to Solr */
@@ -1169,8 +1164,6 @@ end_doc_ids_loop :
 		return;
 	}
 
-	xmlIndentTreeOutput = 1;
-
 	xmlDocDumpFormatMemoryEnc(doc_ptr, &request_string, &size, "UTF-8", format);
 
 	/* The XML request we are sending to Solr */
@@ -1240,8 +1233,6 @@ PHP_METHOD(SolrClient, deleteByQuery)
 	xmlNewChild(root_node, NULL, (xmlChar *) "query", escaped_query_value);
 	xmlFree(escaped_query_value);
 
-	xmlIndentTreeOutput = 1;
-
 	xmlDocDumpFormatMemoryEnc(doc_ptr, &request_string, &size, "UTF-8", format);
 
 	/* The XML request we are sending to Solr */
@@ -1517,8 +1508,6 @@ end_doc_queries_loop :
 		return;
 	}
 
-	xmlIndentTreeOutput = 1;
-
 	xmlDocDumpFormatMemoryEnc(doc_ptr, &request_string, &size, "UTF-8", format);
 
 	/* The XML request we are sending to Solr */
@@ -1593,8 +1582,6 @@ PHP_METHOD(SolrClient, optimize)
 		return;
 	}
 
-	xmlIndentTreeOutput = 1;
-
 	xmlDocDumpFormatMemoryEnc(doc_ptr, &request_string, &size, "UTF-8", format);
 
 	/* The XML request we are sending to Solr */
@@ -1662,8 +1649,6 @@ PHP_METHOD(SolrClient, commit)
 		return;
 	}
 
-	xmlIndentTreeOutput = 1;
-
 	xmlDocDumpFormatMemoryEnc(doc_ptr, &request_string, &size, "UTF-8", format);
 
 	/* The XML request we are sending to Solr */
@@ -1714,8 +1699,6 @@ PHP_METHOD(SolrClient, rollback)
 		return;
 	}
 
-	xmlIndentTreeOutput = 1;
-
 	xmlDocDumpFormatMemoryEnc(doc_ptr, &request_string, &size, "UTF-8", format);
 
 	/* The XML request we are sending to Solr */
diff --git a/src/php_solr_document.c b/src/php_solr_document.c
index 89b0b72b..8cf3b4f9 100644
--- a/src/php_solr_document.c
+++ b/src/php_solr_document.c
@@ -220,8 +220,6 @@ static void solr_serialize_document_object(HashTable *document_fields, xmlChar *
 
 	} /* SOLR_HASHTABLE_FOR_LOOP(document_fields) */
 
-	xmlIndentTreeOutput = 1;
-
 	xmlDocDumpFormatMemoryEnc(doc_ptr, buffer, size, "UTF-8", format);
 
 	xmlFreeDoc(doc_ptr);
diff --git a/src/php_solr_params.c b/src/php_solr_params.c
index 4c8036b2..932651b8 100644
--- a/src/php_solr_params.c
+++ b/src/php_solr_params.c
@@ -183,8 +183,6 @@ static int solr_serialize_solr_params_object(xmlChar **serialized, int *size, zv
 		}
 	}
 
-	xmlIndentTreeOutput = 1;
-
 	xmlDocDumpFormatMemoryEnc(doc_ptr, serialized, size, "UTF-8", format);
 	xmlFreeDoc(doc_ptr);
 
diff --git a/src/php_solr_version.h b/src/php_solr_version.h
index 1702dc70..8a468de8 100644
--- a/src/php_solr_version.h
+++ b/src/php_solr_version.h
@@ -22,12 +22,12 @@
 #define PHP_SOLR_VERSION_H
 
 #define PHP_SOLR_MAJOR_VERSION 2
-#define PHP_SOLR_MINOR_VERSION 8
-#define PHP_SOLR_PATCH_VERSION 1
+#define PHP_SOLR_MINOR_VERSION 9
+#define PHP_SOLR_PATCH_VERSION 3
 
 #define PHP_SOLR_RELEASE_VERSION PHP_SOLR_PATCH_VERSION
 
-#define PHP_SOLR_VERSION "2.8.1"
+#define PHP_SOLR_VERSION "2.9.3"
 #define PHP_SOLR_DOTTED_VERSION PHP_SOLR_VERSION
 
 
@@ -50,9 +50,9 @@
  * comparisons with greater than and less than work.
  */
 
-#define PHP_SOLR_VERSION_ID 0x020801
+#define PHP_SOLR_VERSION_ID 0x020903
 
-#define SOLR_CLIENT_USER_AGENT "PHP Solr Client 2.8.1"
+#define SOLR_CLIENT_USER_AGENT "PHP Solr Client 2.9.3"
 
 #endif /* PHP_SOLR_VERSION_H */
 
diff --git a/src/solr_functions_client.c b/src/solr_functions_client.c
index 14e2a2ab..abdcceb0 100644
--- a/src/solr_functions_client.c
+++ b/src/solr_functions_client.c
@@ -384,7 +384,8 @@ PHP_SOLR_API int solr_make_update_stream_request(solr_client_t *client, solr_ust
     solr_client_options_t *options = &(client->options);
     int return_status = SUCCESS;
     CURLcode info_status = CURLE_OK;
-    struct curl_httppost *formpost = NULL, *lastptr = NULL;
+    curl_mime *mime = NULL;
+    curl_mimepart *part = NULL;
     int is_binary = stream_data->content_type == SOLR_EXTRACT_CONTENT_STREAM;
     solr_string_t content_type_header;
 
@@ -405,13 +406,12 @@ PHP_SOLR_API int solr_make_update_stream_request(solr_client_t *client, solr_ust
         curl_easy_setopt(sch->curl_handle, CURLOPT_POSTFIELDS, stream_data->content_info->stream_info.binary_content.str);
         curl_easy_setopt(sch->curl_handle, CURLOPT_POSTFIELDSIZE, stream_data->content_info->stream_info.binary_content.len);
         solr_string_free_ex(&content_type_header);
-    } else{
-        curl_formadd(&formpost, &lastptr,
-                CURLFORM_COPYNAME, "PHPSOLRCLIENT",
-                CURLFORM_FILE, (const char *) stream_data->content_info->filename.str,
-                CURLFORM_END
-        );
-        curl_easy_setopt(sch->curl_handle, CURLOPT_HTTPPOST, formpost);
+    } else {
+        mime = curl_mime_init(sch->curl_handle);
+        part = curl_mime_addpart(mime);
+        curl_mime_name(part, "PHPSOLRCLIENT");
+        curl_mime_filedata(part, (const char *) stream_data->content_info->filename.str);
+        curl_easy_setopt(sch->curl_handle, CURLOPT_MIMEPOST, mime);
     }
 
     curl_easy_setopt(sch->curl_handle, CURLOPT_HTTPHEADER, header_list);
@@ -422,8 +422,8 @@ PHP_SOLR_API int solr_make_update_stream_request(solr_client_t *client, solr_ust
 
     curl_slist_free_all(header_list);
 
-    if (!is_binary) {
-        curl_formfree(formpost);
+    if (!is_binary && mime) {
+        curl_mime_free(mime);
     }
 
     return return_status;
diff --git a/src/solr_functions_document.c b/src/solr_functions_document.c
index 34beb8b3..13070361 100644
--- a/src/solr_functions_document.c
+++ b/src/solr_functions_document.c
@@ -426,7 +426,7 @@ PHP_SOLR_API void solr_add_doc_node(xmlNode *root_node, solr_document_t *doc_ent
 
    if (doc_entry->document_boost > 0.0f)
    {
-       auto char tmp_buffer[256]; /* Scratch pad for converting numeric values to strings */
+       char tmp_buffer[256]; /* Scratch pad for converting numeric values to strings */
        memset(tmp_buffer, 0, sizeof(tmp_buffer));
        php_gcvt(doc_entry->document_boost, EG(precision), '.', 'e' , tmp_buffer);
        xmlNewProp(solr_doc_node, (xmlChar *) "boost", (xmlChar *) tmp_buffer);
@@ -507,7 +507,7 @@ PHP_SOLR_API void solr_generate_document_xml_from_fields(xmlNode *solr_doc_node,
             /* Set the boost attribute if this is the first value */
             if (is_first_value && field->field_boost > 0.0f)
             {
-                auto char tmp_boost_value_buffer[256];
+                char tmp_boost_value_buffer[256];
 
                 memset(tmp_boost_value_buffer, 0, sizeof(tmp_boost_value_buffer));
 
diff --git a/src/solr_string.c b/src/solr_string.c
index 37d7af09..dad186d0 100644
--- a/src/solr_string.c
+++ b/src/solr_string.c
@@ -102,7 +102,7 @@ PHP_SOLR_API void solr_string_remove_last_char(solr_string_t *dest)
 PHP_SOLR_API void solr_string_append_long_ex(solr_string_t *dest, long int long_val SOLR_MEM_DEBUG_DC)
 {
 	size_t __new_length = 0U;
-	auto char tmp_buffer[SOLR_STRING_LONG_BUFFER_SIZE];
+	char tmp_buffer[SOLR_STRING_LONG_BUFFER_SIZE];
 	size_t length = 0;
 
 	/* Write the formated long to the buffer */
@@ -128,7 +128,7 @@ PHP_SOLR_API void solr_string_append_long_ex(solr_string_t *dest, long int long_
 PHP_SOLR_API void solr_string_append_unsigned_long_ex(solr_string_t *dest, unsigned long int long_val SOLR_MEM_DEBUG_DC)
 {
 	size_t __new_length = 0U;
-	auto char tmp_buffer[SOLR_STRING_UNSIGNED_LONG_BUFFER_SIZE];
+	char tmp_buffer[SOLR_STRING_UNSIGNED_LONG_BUFFER_SIZE];
 	size_t length = 0;
 
 	/* Write the formated unsigned long to the buffer */
diff --git a/tests/003.solrclient_options.phpt b/tests/003.solrclient_options.phpt
index 24e48051..2f4e8d4d 100644
--- a/tests/003.solrclient_options.phpt
+++ b/tests/003.solrclient_options.phpt
@@ -112,8 +112,8 @@ HTTP/1.1 200 OK
 Content-Type: application/xml; charset=UTF-8
 Content-Length: 0
 
-SolrClientException 1004: Solr HTTP Error 7: 'Couldn't connect to server' 
-SolrClientException 1004: Solr HTTP Error 7: 'Couldn't connect to server' 
+SolrClientException 1004: Solr HTTP Error 7: 'Could%s connect to server' 
+SolrClientException 1004: Solr HTTP Error 7: 'Could%s connect to server' 
 SolrIllegalArgumentException 4000: The SolrClient options cannot be an empty array
 
 
diff --git a/tests/019.solrclient_getdebug.phpt b/tests/019.solrclient_getdebug.phpt
index ff4b66d6..a22eedd5 100644
--- a/tests/019.solrclient_getdebug.phpt
+++ b/tests/019.solrclient_getdebug.phpt
@@ -34,6 +34,8 @@ foreach ( $lines as $line) {
 		0 === strpos($line, 'TCP_NODELAY') || 
 		0 === strpos($line, 'Accept-Encoding') ||
 		0 === strpos($line, 'Curl_http_done') ||
+		0 === strpos($line, 'Request completely sent off') ||
+		0 === strpos($line, 'using HTTP/1.x') ||
 		0 === strpos($line, 'processing:')
 		) {
 		$print = false;