prepare v4.2.5 master
authorMichael Wallner <mike@php.net>
Mon, 5 Feb 2024 19:36:16 +0000 (20:36 +0100)
committerMichael Wallner <mike@php.net>
Mon, 5 Feb 2024 19:36:16 +0000 (20:36 +0100)
* Fix incompatible pointer types (32-bit) (see gh issue #134)
* Fix glitch in CURL_VERSION_TLSAUTH_SRP autoconf probe (see gh issue #133)

23 files changed:
.github/workflows/ci.yml
.github/workflows/curl-matrix.yml
.gitignore
BUGS
CHANGELOG.md
autoconf/pecl/libcurl.m4
autoconf/pecl/pecl.m4
config9.m4
package.xml
php_http.h
scripts/curlver.dist
scripts/gen_curlinfo.php
scripts/gen_github_workflow_ci.php
scripts/gen_github_workflow_curl-matrix.php
src/php_http_client.c
src/php_http_client_curl.c
src/php_http_client_curl_user.c
src/php_http_url.c
tests/client012.phpt
tests/client021.phpt
tests/client025.phpt
tests/helper/dump.inc
tests/helper/server.inc

index 2ed701ca80b3919de6e3eb2c8ab8b8249444c67a..e04f594253ff10de7427e41dcb249edf25324ed5 100644 (file)
@@ -8,25 +8,29 @@ on:
 
 jobs:
   next-0:
-    name: "next-0 (8.1)"
+    name: "next-0 (master)"
+    continue-on-error: true
     env:
-      PHP: "8.1"
+      PHP: "master"
       enable_debug: "yes"
       enable_zts: "yes"
       enable_iconv: "yes"
       TEST_PHP_ARGS: "-d error_reporting=24575"
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
@@ -43,27 +47,28 @@ jobs:
         run: |
           make -f scripts/ci/Makefile test
 
-  next-1:
-    name: "next-1 (master)"
-    continue-on-error: true
+  old-0:
+    name: "old-0 (8.1)"
     env:
-      PHP: "master"
+      PHP: "8.1"
       enable_debug: "yes"
       enable_zts: "yes"
       enable_iconv: "yes"
-      TEST_PHP_ARGS: "-d error_reporting=24575"
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
@@ -80,28 +85,69 @@ jobs:
         run: |
           make -f scripts/ci/Makefile test
 
-  cur-none-0:
-    name: "cur-none-0 (8.0)"
+  old-1:
+    name: "old-1 (8.0)"
     env:
       PHP: "8.0"
+      enable_debug: "yes"
+      enable_zts: "yes"
+      enable_iconv: "yes"
+    runs-on: ubuntu-22.04
+    steps:
+      - uses: actions/checkout@v3
+        with:
+          submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
+      - name: Install
+        run: |
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libcurl4-openssl-dev \
+            libidn-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Prepare
+        run: |
+          make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php
+          make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master
+      - name: Build
+        run: |
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          make -f scripts/ci/Makefile test
+
+  cur-none-0:
+    name: "cur-none-0 (8.2)"
+    env:
+      PHP: "8.2"
       with_http_libicu_dir: "no"
       with_http_libidn_dir: "no"
       with_http_libidn2_dir: "no"
       with_http_libcurl_dir: "no"
       with_http_libevent_dir: "no"
       with_http_libbrotli_dir: "no"
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
@@ -119,24 +165,27 @@ jobs:
           make -f scripts/ci/Makefile test
 
   cur-dbg-zts-0:
-    name: "cur-dbg-zts-0 (8.0)"
+    name: "cur-dbg-zts-0 (8.2)"
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       enable_debug: "yes"
       enable_zts: "yes"
       enable_iconv: "yes"
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
@@ -154,24 +203,27 @@ jobs:
           make -f scripts/ci/Makefile test
 
   cur-dbg-zts-1:
-    name: "cur-dbg-zts-1 (8.0)"
+    name: "cur-dbg-zts-1 (8.2)"
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       enable_debug: "no"
       enable_zts: "yes"
       enable_iconv: "yes"
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
@@ -189,24 +241,27 @@ jobs:
           make -f scripts/ci/Makefile test
 
   cur-dbg-zts-2:
-    name: "cur-dbg-zts-2 (8.0)"
+    name: "cur-dbg-zts-2 (8.2)"
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       enable_debug: "yes"
       enable_zts: "no"
       enable_iconv: "yes"
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
@@ -224,24 +279,27 @@ jobs:
           make -f scripts/ci/Makefile test
 
   cur-dbg-zts-3:
-    name: "cur-dbg-zts-3 (8.0)"
+    name: "cur-dbg-zts-3 (8.2)"
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       enable_debug: "no"
       enable_zts: "no"
       enable_iconv: "yes"
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
@@ -259,27 +317,30 @@ jobs:
           make -f scripts/ci/Makefile test
 
   cur-cov-0:
-    name: "cur-cov-0 (8.0)"
+    name: "cur-cov-0 (8.2)"
     env:
       CFLAGS: "-O0 -g --coverage"
       CXXFLAGS: "-O0 -g --coverage"
-      PHP: "8.0"
+      PHP: "8.2"
       enable_iconv: "yes"
       with_http_libicu_dir: "yes"
       with_http_libidn_dir: "no"
       with_http_libidn2_dir: "no"
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
@@ -302,27 +363,30 @@ jobs:
           bash <(curl -s https://codecov.io/bash) -X xcode -X coveragepy
 
   cur-cov-1:
-    name: "cur-cov-1 (8.0)"
+    name: "cur-cov-1 (8.2)"
     env:
       CFLAGS: "-O0 -g --coverage"
       CXXFLAGS: "-O0 -g --coverage"
-      PHP: "8.0"
+      PHP: "8.2"
       enable_iconv: "yes"
       with_http_libicu_dir: "no"
       with_http_libidn_dir: "yes"
       with_http_libidn2_dir: "no"
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
@@ -345,27 +409,30 @@ jobs:
           bash <(curl -s https://codecov.io/bash) -X xcode -X coveragepy
 
   cur-cov-2:
-    name: "cur-cov-2 (8.0)"
+    name: "cur-cov-2 (8.2)"
     env:
       CFLAGS: "-O0 -g --coverage"
       CXXFLAGS: "-O0 -g --coverage"
-      PHP: "8.0"
+      PHP: "8.2"
       enable_iconv: "yes"
       with_http_libicu_dir: "no"
       with_http_libidn_dir: "no"
       with_http_libidn2_dir: "yes"
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
index d66ececdda5d7b2e4b0c2c3e3ff7273ca1a4b445..a37e54875f1156bfc3198428cd9d420a13c3a04f 100644 (file)
@@ -10,12 +10,12 @@ jobs:
     name: curl-master
     continue-on-error: true
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       CURL: "master"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -27,8 +27,8 @@ jobs:
           path: curl
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -46,7 +46,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -63,132 +63,16 @@ jobs:
           cd http
           make -f scripts/ci/Makefile test
 
-  curl-7_81_0:
-    name: curl-7_81_0
-    continue-on-error: true
-    env:
-      PHP: "8.0"
-      CURL: "7_81_0"
-      enable_debug: "yes"
-      enable_iconv: "yes"
-      with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-          path: http
-      - uses: actions/checkout@v2
-        with:
-          repository: curl/curl
-          path: curl
-          ref: curl-7_81_0 #
-      - name: Install
-        run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
-          sudo apt-get update -y &&  \
-          sudo apt-get build-dep -y libcurl4-openssl-dev && \
-          sudo apt-get install -y \
-            php-cli \
-            php-pear \
-            libidn11-dev \
-            libidn2-0-dev \
-            libicu-dev \
-            libevent-dev \
-            libbrotli-dev \
-            re2c
-      - name: Curl
-        run: |
-          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
-          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
-          cd curl
-          ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
-          make -j2
-          make install
-      - name: Prepare
-        run: |
-          cd http
-          make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php
-          make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master
-      - name: Build
-        run: |
-          cd http
-          make -f scripts/ci/Makefile ext PECL=http
-      - name: Test
-        run: |
-          cd http
-          make -f scripts/ci/Makefile test
-
-  curl-7_80_0:
-    name: curl-7_80_0
-    continue-on-error: true
-    env:
-      PHP: "8.0"
-      CURL: "7_80_0"
-      enable_debug: "yes"
-      enable_iconv: "yes"
-      with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-          path: http
-      - uses: actions/checkout@v2
-        with:
-          repository: curl/curl
-          path: curl
-          ref: curl-7_80_0 #
-      - name: Install
-        run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
-          sudo apt-get update -y &&  \
-          sudo apt-get build-dep -y libcurl4-openssl-dev && \
-          sudo apt-get install -y \
-            php-cli \
-            php-pear \
-            libidn11-dev \
-            libidn2-0-dev \
-            libicu-dev \
-            libevent-dev \
-            libbrotli-dev \
-            re2c
-      - name: Curl
-        run: |
-          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
-          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
-          cd curl
-          ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
-          make -j2
-          make install
-      - name: Prepare
-        run: |
-          cd http
-          make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php
-          make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master
-      - name: Build
-        run: |
-          cd http
-          make -f scripts/ci/Makefile ext PECL=http
-      - name: Test
-        run: |
-          cd http
-          make -f scripts/ci/Makefile test
-
-  curl-7_79_1:
-    name: curl-7_79_1
+  curl-8_1_1:
+    name: curl-8_1_1
     continue-on-error: true
     env:
-      PHP: "8.0"
-      CURL: "7_79_1"
+      PHP: "8.2"
+      CURL: "8_1_1"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -198,11 +82,11 @@ jobs:
         with:
           repository: curl/curl
           path: curl
-          ref: curl-7_79_1 #
+          ref: curl-8_1_1 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -220,7 +104,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -237,16 +121,16 @@ jobs:
           cd http
           make -f scripts/ci/Makefile test
 
-  curl-7_78_0:
-    name: curl-7_78_0
+  curl-8_0_1:
+    name: curl-8_0_1
     continue-on-error: true
     env:
-      PHP: "8.0"
-      CURL: "7_78_0"
+      PHP: "8.2"
+      CURL: "8_0_1"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -256,11 +140,11 @@ jobs:
         with:
           repository: curl/curl
           path: curl
-          ref: curl-7_78_0 #
+          ref: curl-8_0_1 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -278,7 +162,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -295,16 +179,16 @@ jobs:
           cd http
           make -f scripts/ci/Makefile test
 
-  curl-7_76_1:
-    name: curl-7_76_1
+  curl-7_88_1:
+    name: curl-7_88_1
     continue-on-error: true
     env:
-      PHP: "8.0"
-      CURL: "7_76_1"
+      PHP: "8.2"
+      CURL: "7_88_1"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -314,11 +198,11 @@ jobs:
         with:
           repository: curl/curl
           path: curl
-          ref: curl-7_76_1 #
+          ref: curl-7_88_1 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -336,7 +220,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -353,16 +237,16 @@ jobs:
           cd http
           make -f scripts/ci/Makefile test
 
-  curl-7_74_0:
-    name: curl-7_74_0
+  curl-7_87_0:
+    name: curl-7_87_0
     continue-on-error: true
     env:
-      PHP: "8.0"
-      CURL: "7_74_0"
+      PHP: "8.2"
+      CURL: "7_87_0"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -372,11 +256,11 @@ jobs:
         with:
           repository: curl/curl
           path: curl
-          ref: curl-7_74_0 #
+          ref: curl-7_87_0 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -394,7 +278,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -411,16 +295,16 @@ jobs:
           cd http
           make -f scripts/ci/Makefile test
 
-  curl-7_71_1:
-    name: curl-7_71_1
+  curl-7_85_0:
+    name: curl-7_85_0
     continue-on-error: true
     env:
-      PHP: "8.0"
-      CURL: "7_71_1"
+      PHP: "8.2"
+      CURL: "7_85_0"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -430,11 +314,11 @@ jobs:
         with:
           repository: curl/curl
           path: curl
-          ref: curl-7_71_1 #
+          ref: curl-7_85_0 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -452,7 +336,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -469,16 +353,16 @@ jobs:
           cd http
           make -f scripts/ci/Makefile test
 
-  curl-7_68_0:
-    name: curl-7_68_0
+  curl-7_81_0:
+    name: curl-7_81_0
     continue-on-error: true
     env:
-      PHP: "8.0"
-      CURL: "7_68_0"
+      PHP: "8.2"
+      CURL: "7_81_0"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -488,11 +372,11 @@ jobs:
         with:
           repository: curl/curl
           path: curl
-          ref: curl-7_68_0 #
+          ref: curl-7_81_0 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -510,7 +394,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -527,16 +411,16 @@ jobs:
           cd http
           make -f scripts/ci/Makefile test
 
-  curl-7_67_0:
-    name: curl-7_67_0
+  curl-7_78_0:
+    name: curl-7_78_0
     continue-on-error: true
     env:
-      PHP: "8.0"
-      CURL: "7_67_0"
+      PHP: "8.2"
+      CURL: "7_78_0"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -546,11 +430,11 @@ jobs:
         with:
           repository: curl/curl
           path: curl
-          ref: curl-7_67_0 #
+          ref: curl-7_78_0 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -568,7 +452,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -585,16 +469,16 @@ jobs:
           cd http
           make -f scripts/ci/Makefile test
 
-  curl-7_64_0:
-    name: curl-7_64_0
+  curl-7_74_0:
+    name: curl-7_74_0
     continue-on-error: true
     env:
-      PHP: "8.0"
-      CURL: "7_64_0"
+      PHP: "8.2"
+      CURL: "7_74_0"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -604,11 +488,11 @@ jobs:
         with:
           repository: curl/curl
           path: curl
-          ref: curl-7_64_0 #
+          ref: curl-7_74_0 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -626,7 +510,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -647,12 +531,12 @@ jobs:
     name: curl-7_61_1
     continue-on-error: true
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       CURL: "7_61_1"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -665,124 +549,8 @@ jobs:
           ref: curl-7_61_1 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
-          sudo apt-get update -y &&  \
-          sudo apt-get build-dep -y libcurl4-openssl-dev && \
-          sudo apt-get install -y \
-            php-cli \
-            php-pear \
-            libidn11-dev \
-            libidn2-0-dev \
-            libicu-dev \
-            libevent-dev \
-            libbrotli-dev \
-            re2c
-      - name: Curl
-        run: |
-          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
-          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
-          cd curl
-          ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
-          make -j2
-          make install
-      - name: Prepare
-        run: |
-          cd http
-          make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php
-          make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master
-      - name: Build
-        run: |
-          cd http
-          make -f scripts/ci/Makefile ext PECL=http
-      - name: Test
-        run: |
-          cd http
-          make -f scripts/ci/Makefile test
-
-  curl-7_58_0:
-    name: curl-7_58_0
-    continue-on-error: true
-    env:
-      PHP: "8.0"
-      CURL: "7_58_0"
-      enable_debug: "yes"
-      enable_iconv: "yes"
-      with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-          path: http
-      - uses: actions/checkout@v2
-        with:
-          repository: curl/curl
-          path: curl
-          ref: curl-7_58_0 #
-      - name: Install
-        run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
-          sudo apt-get update -y &&  \
-          sudo apt-get build-dep -y libcurl4-openssl-dev && \
-          sudo apt-get install -y \
-            php-cli \
-            php-pear \
-            libidn11-dev \
-            libidn2-0-dev \
-            libicu-dev \
-            libevent-dev \
-            libbrotli-dev \
-            re2c
-      - name: Curl
-        run: |
-          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
-          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
-          cd curl
-          ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
-          make -j2
-          make install
-      - name: Prepare
-        run: |
-          cd http
-          make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php
-          make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master
-      - name: Build
-        run: |
-          cd http
-          make -f scripts/ci/Makefile ext PECL=http
-      - name: Test
-        run: |
-          cd http
-          make -f scripts/ci/Makefile test
-
-  curl-7_52_1:
-    name: curl-7_52_1
-    continue-on-error: true
-    env:
-      PHP: "8.0"
-      CURL: "7_52_1"
-      enable_debug: "yes"
-      enable_iconv: "yes"
-      with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-          path: http
-      - uses: actions/checkout@v2
-        with:
-          repository: curl/curl
-          path: curl
-          ref: curl-7_52_1 #
-      - name: Install
-        run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -800,7 +568,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -821,12 +589,12 @@ jobs:
     name: curl-7_49_1
     continue-on-error: true
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       CURL: "7_49_1"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -839,8 +607,8 @@ jobs:
           ref: curl-7_49_1 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -858,7 +626,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -879,12 +647,12 @@ jobs:
     name: curl-7_31_0
     continue-on-error: true
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       CURL: "7_31_0"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -897,8 +665,8 @@ jobs:
           ref: curl-7_31_0 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -916,7 +684,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -937,12 +705,12 @@ jobs:
     name: curl-7_20_1
     continue-on-error: true
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       CURL: "7_20_1"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -955,8 +723,8 @@ jobs:
           ref: curl-7_20_1 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -974,7 +742,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -995,12 +763,12 @@ jobs:
     name: curl-7_19_7
     continue-on-error: true
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       CURL: "7_19_7"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -1013,8 +781,8 @@ jobs:
           ref: curl-7_19_7 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -1032,7 +800,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
@@ -1053,12 +821,12 @@ jobs:
     name: curl-7_18_2
     continue-on-error: true
     env:
-      PHP: "8.0"
+      PHP: "8.2"
       CURL: "7_18_2"
       enable_debug: "yes"
       enable_iconv: "yes"
       with_http_libcurl_dir: "/opt"
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -1071,8 +839,8 @@ jobs:
           ref: curl-7_18_2 #
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -1090,7 +858,7 @@ jobs:
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
index a20dd1db17a828e3dae721d97e4b70a56fbac4d6..99028c98e2a0ac08d5554e04a6721c807dc5cb46 100644 (file)
@@ -84,3 +84,4 @@ vendor/
 /tests/helper/server.log
 *gcov
 *lcov
+.vscode
diff --git a/BUGS b/BUGS
index 4c2ad80b6025a49554ce2b2c54e6b02063385c26..0b981790dbeb4ba2cc836b1072de46cf178918ac 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -2,15 +2,13 @@ Known Issues
 ============
 
 Windows:
-       If you keep getting "SSL connect error" when trying to issue 
+       If you keep getting "SSL connect error" when trying to issue
                requests, try another (newer) libeay32.dll/ssleay32.dll pair.
 
 Internals:
        Inflating raw deflated data causes a re-initialization of the inflate
                stream where the corresponding window bits are modified to tell libz
                to not check for zlib header bytes.  This is not preventable AFAICS.
-       LFS dependant parts of libcurl are left out because of off_t,
-               respectively off64_t confusion.
        Persistent handles and "cookiestore" request option do interfere,
                as libcurl saves the cookies to the file on curl_easy_destroy(),
                cookies are not saved until the CURL handle will be recycled.
index 571b488fe327b535b330518a1ecdf7126607317d..47ec2a3c70de381fa545763592c1f1e07dc82354 100644 (file)
@@ -1,5 +1,21 @@
 # ChangeLog v4
 
+## 4.2.5, 2024-02-05
+
+* Fix incompatible pointer types (32-bit) (see gh issue #134)
+* Fix glitch in CURL_VERSION_TLSAUTH_SRP autoconf probe (see gh issue #133)
+
+## 4.2.4, 2023-10-02
+
+* Fix Error using ssl array in options : Could not set option tlsauthtype
+  (see  gh issue #131)
+* Fix arginfo wargnings of the internal curl client user handler
+* Disable libidn support for v1.36-v1.38 due to broken locale detection
+
+## 4.2.3, 2022-06-10
+
+* Fix http\Client::requeue() not updating response callback
+
 ## 4.2.2, 2022-02-25
 
 * Fixed gh-issue #123: Segfault with libcurl 7.81
@@ -8,7 +24,7 @@
 
 * Fixed failing tests with PHP-8.1 (see gh issue #120)
 * Fixed configure reliably finding the right libcurl features available
-* Fixed cookie handling with libcurl 7.77+ and consistently across all 
+* Fixed cookie handling with libcurl 7.77+ and consistently across all
   supported libcurl versions (follow-up to gh issue #116)
 
 ## 4.2.0, 2021-08-30
@@ -55,7 +71,7 @@
   * http\Client\Curl\Versions\NGHTTP2
   * http\Client\Curl\Versions\QUIC
   * http\Client\Curl\Versions\ZSTD
+
 ## 4.0.0, 2021-01-13
 
 Changes from beta1:
@@ -65,7 +81,7 @@ Changes from beta1:
 ## 4.0.0beta1, 2020-09-23
 
 * PHP 8 compatibility
-       - Drop ext-propro support:  
+       - Drop ext-propro support:
                PHP 8 removes the object get/set API from the ZendEngine, which renders
                that extension dysfunctional. As a consequence, the header property of
                http\Message and derived classes cannot be modified in place, and thus
index 8de9499e0eaef8351c9a397a1a9e2051f66ee008..fd0e711ec05b8b920510e068929a893ed7bf8d9b 100644 (file)
@@ -126,38 +126,22 @@ AC_DEFUN([PECL_HAVE_LIBCURL_SSL], [dnl
                        ;;
                esac
 
-               PECL_HAVE_CONST([curl/curl.h], [CURLOPT_TLSAUTH_TYPE], int, [
-                       AC_CACHE_CHECK([whether CURLOPT_TLSAUTH_TYPE expects CURL_TLSAUTH_SRP], PECL_CACHE_VAR([LIBCURL_TLSAUTH_SRP]), [
-                               PECL_CACHE_VAR([LIBCURL_TLSAUTH_SRP])=
+               PECL_HAVE_CONST([curl/curl.h], [CURL_VERSION_TLSAUTH_SRP], int, [
+                       AC_CACHE_CHECK([for CURLOPT_TLSAUTH_TYPE SRP support], PECL_CACHE_VAR([LIBCURL_TLSAUTH_SRP]), [
+                               PECL_CACHE_VAR([LIBCURL_TLSAUTH_SRP])=no
                                AC_TRY_RUN([
                                        #include <curl/curl.h>
                                        int main(int argc, char *argv[]) {
-                                               CURL *ch = curl_easy_init();
-                                               return curl_easy_setopt(ch, CURLOPT_TLSAUTH_TYPE, CURL_TLSAUTH_SRP);
+                                               int has_feature = curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_TLSAUTH_SRP;
+                                               int set_failure = curl_easy_setopt(curl_easy_init(), CURLOPT_TLSAUTH_TYPE, "SRP");
+                                               return !has_feature || set_failure;
                                        }
                                ], [
                                        PECL_CACHE_VAR([LIBCURL_TLSAUTH_SRP])=yes
-                               ], [
-                                       AC_TRY_RUN([
-                                               #include <curl/curl.h>
-                                               int main(int argc, char *argv[]) {
-                                                       CURL *ch = curl_easy_init();
-                                                       return curl_easy_setopt(ch, CURLOPT_TLSAUTH_TYPE, "SRP");
-                                               }
-                                       ], [
-                                               PECL_CACHE_VAR([LIBCURL_TLSAUTH_SRP])=no
-                                       ])
                                ])
                        ])
-                       if test -n "$PECL_CACHE_VAR([LIBCURL_TLSAUTH_SRP])"; then
+                       if test "$PECL_CACHE_VAR([LIBCURL_TLSAUTH_SRP])" = "yes"; then
                                PECL_DEFINE([HAVE_LIBCURL_TLSAUTH_TYPE])
-                               if $PECL_CACHE_VAR([LIBCURL_TLSAUTH_SRP]); then
-                                       PECL_DEFINE([LIBCURL_TLSAUTH_SRP], [CURL_TLSAUTH_SRP])
-                                       PECL_DEFINE([LIBCURL_TLSAUTH_DEF], [CURL_TLSAUTH_NONE])
-                               else
-                                       PECL_DEFINE([LIBCURL_TLSAUTH_SRP], ["SRP"])
-                                       PECL_DEFINE([LIBCURL_TLSAUTH_DEF], [""])
-                               fi
                        fi
                ])
 
index d8735b0326628c8baf76dc78bf2e9c99065d8eab..cb2bb70e17c110d47d34d9535a8691534534bab9 100644 (file)
@@ -271,7 +271,7 @@ AC_DEFUN([PECL_CHECK_CUSTOM], [
                LDFLAGS="$LDFLAGS -L$PECL_CACHE_VAR([$1_prefix])/$PHP_LIBDIR"
                LIBS="$LIBS -l$4"
                dnl PECL_EVAL_LIBLINE([$LDFLAGS $LIBS])
-               
+
                AC_CACHE_VAL(PECL_CACHE_VAR([$1_version]), [
                        pushd $PECL_CACHE_VAR([$1_prefix]) >/dev/null
                        PECL_CACHE_VAR([$1_version])=$5
@@ -281,7 +281,6 @@ AC_DEFUN([PECL_CHECK_CUSTOM], [
 
                if test -n "$PECL_CHECKED_VERSION([$1])"; then
                        PECL_VAR([HAVE_$1])=true
-                       PECL_DEFINE([HAVE_$1])
                        PECL_DEFINE_UQ($1[_VERSION], "$PECL_CHECKED_VERSION([$1])")
                else
                        PECL_VAR([HAVE_$1])=false
@@ -336,7 +335,6 @@ AC_DEFUN([PECL_CHECK_CONFIG], [
 
        if test -n "$PECL_CHECKED_VERSION([$1])"; then
                PECL_VAR([HAVE_$1])=true
-               PECL_DEFINE([HAVE_$1])
                PECL_DEFINE_UQ([$1_VERSION], "$PECL_CHECKED_VERSION([$1])")
        else
                PECL_VAR([HAVE_$1])=false
index 695701b6362ec620a970528b0d315ba3109d7fbf..35f1af159719e3ebb0a00496a783b091528f2fc4 100644 (file)
@@ -24,7 +24,7 @@ if test "$PHP_HTTP" != "no"; then
                AC_CHECK_LIB(nsl, getdomainname)
        ])
        AC_CHECK_FUNCS(mbrtowc mbtowc iswalnum inet_pton)
-       
+
        CFLAGS="$CFLAGS -Wno-strict-prototypes"
 
        dnl ZLIB
@@ -80,7 +80,16 @@ if test "$PHP_HTTP" != "no"; then
        if test "$PHP_HTTP_LIBIDN_DIR" != "no"; then
                PECL_CHECK_PKGCONFIG(libidn, [$PHP_HTTP_LIBIDN_DIR])
                if $PECL_VAR([HAVE_LIBIDN]); then
-                       PECL_DEFINE([HAVE_IDNA2003])
+                       PECL_HAVE_VERSION(libidn, 1.36, [
+                               PECL_HAVE_VERSION(libidn, 1.39, [
+                                       PECL_DEFINE([HAVE_IDNA2003])
+                               ], [
+                                       PECL_VAR([HAVE_LIBIDN])=false
+                                       AC_MSG_WARN([libidn locale detection broken; disabling libidn support])
+                               ])
+                       ], [
+                               PECL_DEFINE([HAVE_IDNA2003])
+                       ])
                fi
                PECL_CHECK_DONE(libidn, $PECL_VAR([HAVE_LIBIDN]))
        fi
index 2c8b432165fe2a2d9f41f3537424cb1633ac4c60..5daf7858bfc30b0780ad988f3a0e213b7f57e683 100644 (file)
@@ -31,9 +31,9 @@ https://mdref.m6w6.name/http
   <email>mike@php.net</email>
   <active>yes</active>
  </lead>
- <date>2022-02-25</date>
+ <date>2024-02-05</date>
  <version>
-  <release>4.2.2</release>
+  <release>4.2.5</release>
   <api>4.2.0</api>
  </version>
  <stability>
@@ -42,7 +42,8 @@ https://mdref.m6w6.name/http
  </stability>
  <license uri="http://copyfree.org/content/standard/licenses/2bsd/license.txt">BSD-2-Clause</license>
  <notes><![CDATA[
-  * Fixed gh-issue #123: Segfault with libcurl 7.81
+* Fix incompatible pointer types (32-bit) (see gh issue #134)
+* Fix glitch in CURL_VERSION_TLSAUTH_SRP autoconf probe (see gh issue #133)
 ]]></notes>
  <contents>
   <dir name="/">
index f4b4b33eb38cdeb4bc0179f8157d8d27d87456ee..f8cede27e4f5505463045d15a12b9dda7d7aaef2 100644 (file)
 #ifndef PHP_EXT_HTTP_H
 #define PHP_EXT_HTTP_H
 
-#define PHP_PECL_HTTP_VERSION "4.2.2"
+#define PHP_PECL_HTTP_VERSION "4.2.5"
 
 extern zend_module_entry http_module_entry;
 #define phpext_http_ptr &http_module_entry
 
 extern int http_module_number;
 
-#endif /* PHP_EXT_HTTP_H */
+#endif /* PHP_EXT_HTTP_H */
 
 /*
  * Local variables:
index 829777bd7c9a5547b57690314c6f07e9bcf79a98..416cb07c12f0f9f7b7cab860fdef01186ad2cb8f 100644 (file)
@@ -1,15 +1,15 @@
-# current is 7.81.0 ATM
+# current is 8.1.1 ATM
 # 7.21.5-7.29.0 fail to configure on gh actions
 
-alpine: 7.78.0 7.67.0
+alpine: 8.1.1 7.78.0
 centos: 7.61.1 # 7.29.0
-debian: 7.74.0 7.64.0 7.52.1
-fedora: 7.78.0 7.76.1 7.71.1
+debian: 7.88.1 7.74.0
+fedora: 7.87.0 7.85.0
 other: 7.49.1 7.31.0
-ubuntu: 7.74.0 7.68.0 7.58.0
+ubuntu: 7.81.0 7.74.0
 
 # always test against a few recent
-latest: master 7.81.0 7.80.0 7.79.1
+latest: master 8.1.1 8.0.1 7.88.1 7.81.0
 # and a couple ancient
 oldest: 7.18.2 7.19.7 7.20.1
 
index 92ff65e42859bb64b732498eff4158e76e65a0c3..ab4391dccef9eb2b09463cbbcf9e35b619551ef8 100755 (executable)
@@ -42,6 +42,9 @@ $ifdefs = array(
        'RETRY_AFTER' => 'PHP_HTTP_CURL_VERSION(7,66,0)',
        'EFFECTIVE_METHOD' => 'PHP_HTTP_CURL_VERSION(7,72,0)',
        'PROXY_ERROR' => 'PHP_HTTP_CURL_VERSION(7,73,0)',
+       'REFERER' => 'PHP_HTTP_CURL_VERSION(7,76,0)',
+       'CAINFO' => 'PHP_HTTP_CURL_VERSION(7,84,0)',
+       'CAPATH' => 'PHP_HTTP_CURL_VERSION(7,84,0)',
 );
 $exclude = array(
        'ACTIVESOCKET',
@@ -102,12 +105,12 @@ $templates = array(
 ',
 );
 
-$infos = file_re('curl.h', '/^\s*(CURLINFO_(\w+))\s*=\s*CURLINFO_(STRING|LONG|DOUBLE|SLIST|OFF_T)\s*\+\s*\d+\s*,?\s*$/m');
-
+$infos = file_re('curl.h', '/\s*(CURLINFO_(\w+))\s*(?:CURL_DEPRECATED\(\d+\.\d+\.\d+,\s*"[\w _-]+"\))?\s*=\s*CURLINFO_(STRING|LONG|DOUBLE|SLIST|OFF_T)\s*\+\s*\d+\s*,?\s*/m');
+var_dump($infos);
 ob_start();
 foreach ($infos as $info) {
        list(, $full, $short, $type) = $info;
-       if (in_array($short, $exclude) || substr($short, -2) === "_T") continue;
+       if (in_array($short, $exclude)) continue;
        if (isset($ifdefs[$short])) printf("#if %s\n", $ifdefs[$short]);
        printf($templates[$type], $full, strtolower((isset($translate[$short])) ? $translate[$short] : $short));
        if (isset($ifdefs[$short])) printf("#endif\n");
index c23f23ec9598fb1a98f10829f7b2eec991b2b4ab..41ce95fbb68aa144239691f89801cb06fcca82cc 100755 (executable)
@@ -11,16 +11,21 @@ jobs:
 <?php
 
 $gen = include __DIR__ . "/ci/gen-matrix.php";
-$cur = "8.0";
+$cur = "8.2";
 $job = $gen->github([
 "next" => [
-// most useful for all additional versions except current
-    "PHP" => ["8.1", "master"],
+    "PHP" => ["master"],
     "enable_debug" => "yes",
     "enable_zts" => "yes",
     "enable_iconv" => "yes",
     "TEST_PHP_ARGS" => "-d error_reporting=24575" // ignore E_DEPRECATED
 ],
+"old" => [
+    "PHP" => ["8.1", "8.0"],
+    "enable_debug" => "yes",
+    "enable_zts" => "yes",
+    "enable_iconv" => "yes",
+],
 "cur-none" => [
 // everything disabled for current
     "PHP" => $cur,
@@ -62,18 +67,21 @@ foreach ($job as $id => $env) {
         printf("      %s: \"%s\"\n", $key, $val);
     }
 ?>
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
         with:
           submodules: true
+      - name: Info
+        run: |
+          locale -a && locale
       - name: Install
         run: |
           sudo apt-get install -y \
             php-cli \
             php-pear \
             libcurl4-openssl-dev \
-            libidn11-dev \
+            libidn-dev \
             libidn2-0-dev \
             libicu-dev \
             libevent-dev \
index 66b50c92e497797331a40b3ada714cabeab856be..beaa65df633a26609cf7feae234824189825aeba 100755 (executable)
@@ -34,7 +34,7 @@ rsort($curlver, SORT_NATURAL);
 $gen = include __DIR__ . "/ci/gen-matrix.php";
 $job = $gen->github([
 "curl" => [
-    "PHP" => "8.0",
+    "PHP" => "8.2",
     "CURL" => $curlver,
     "enable_debug" => "yes",
     "enable_iconv" => "yes",
@@ -49,7 +49,7 @@ foreach ($job as $id => $env) {
         printf("      %s: \"%s\"\n", $key, $val);
     }
 ?>
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v2
         with:
@@ -64,8 +64,8 @@ foreach ($job as $id => $env) {
 <?php endif; ?>
       - name: Install
         run: |
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
-          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu jammy-updates main' | sudo tee -a /etc/apt/sources.list && \
           sudo apt-get update -y &&  \
           sudo apt-get build-dep -y libcurl4-openssl-dev && \
           sudo apt-get install -y \
@@ -83,7 +83,7 @@ foreach ($job as $id => $env) {
           sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
           cd curl
           ./buildconf
-          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2 --disable-ldap
           make -j2
           make install
       - name: Prepare
index a272fa45d0a4f6c2658b20273b828b57f7c0097f..dcdfffab4ffd572fe5213c516423c81faa77e159 100644 (file)
@@ -807,6 +807,8 @@ static PHP_METHOD(HttpClient, requeue)
                        if (fci.object) {
                                GC_ADDREF(fci.object);
                        }
+                       e->closure.fci = fci;
+                       e->closure.fcc = fcc;
                }
                RETURN_ZVAL(getThis(), 1, 0);
        }
index 46502bad1eb9b532b67e9cd12400c5bfad7be412..4decc7af20c8e7a234ab9492a775fa5f97a6cac1 100644 (file)
@@ -367,18 +367,34 @@ static ZEND_RESULT_CODE php_http_curle_get_info(CURL *ch, HashTable *info)
                ZVAL_DOUBLE(&tmp, d);
                zend_hash_str_update(info, "size_upload", lenof("size_upload"), &tmp);
        }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_SIZE_UPLOAD_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "size_upload_t", lenof("size_upload_t"), &tmp);
+       }
        if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_SIZE_DOWNLOAD, &d)) {
                ZVAL_DOUBLE(&tmp, d);
                zend_hash_str_update(info, "size_download", lenof("size_download"), &tmp);
        }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_SIZE_DOWNLOAD_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "size_download_t", lenof("size_download_t"), &tmp);
+       }
        if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_SPEED_DOWNLOAD, &d)) {
                ZVAL_DOUBLE(&tmp, d);
                zend_hash_str_update(info, "speed_download", lenof("speed_download"), &tmp);
        }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_SPEED_DOWNLOAD_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "speed_download_t", lenof("speed_download_t"), &tmp);
+       }
        if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_SPEED_UPLOAD, &d)) {
                ZVAL_DOUBLE(&tmp, d);
                zend_hash_str_update(info, "speed_upload", lenof("speed_upload"), &tmp);
        }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_SPEED_UPLOAD_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "speed_upload_t", lenof("speed_upload_t"), &tmp);
+       }
        if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_HEADER_SIZE, &l)) {
                ZVAL_LONG(&tmp, l);
                zend_hash_str_update(info, "header_size", lenof("header_size"), &tmp);
@@ -395,14 +411,26 @@ static ZEND_RESULT_CODE php_http_curle_get_info(CURL *ch, HashTable *info)
                ZVAL_LONG(&tmp, l);
                zend_hash_str_update(info, "filetime", lenof("filetime"), &tmp);
        }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_FILETIME_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "filetime_t", lenof("filetime_t"), &tmp);
+       }
        if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &d)) {
                ZVAL_DOUBLE(&tmp, d);
                zend_hash_str_update(info, "content_length_download", lenof("content_length_download"), &tmp);
        }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "content_length_download_t", lenof("content_length_download_t"), &tmp);
+       }
        if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_CONTENT_LENGTH_UPLOAD, &d)) {
                ZVAL_DOUBLE(&tmp, d);
                zend_hash_str_update(info, "content_length_upload", lenof("content_length_upload"), &tmp);
        }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_CONTENT_LENGTH_UPLOAD_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "content_length_upload_t", lenof("content_length_upload_t"), &tmp);
+       }
        if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_STARTTRANSFER_TIME, &d)) {
                ZVAL_DOUBLE(&tmp, d);
                zend_hash_str_update(info, "starttransfer_time", lenof("starttransfer_time"), &tmp);
@@ -513,6 +541,34 @@ static ZEND_RESULT_CODE php_http_curle_get_info(CURL *ch, HashTable *info)
                zend_hash_str_update(info, "scheme", lenof("scheme"), &tmp);
        }
 #endif
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_TOTAL_TIME_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "total_time_t", lenof("total_time_t"), &tmp);
+       }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_NAMELOOKUP_TIME_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "namelookup_time_t", lenof("namelookup_time_t"), &tmp);
+       }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_CONNECT_TIME_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "connect_time_t", lenof("connect_time_t"), &tmp);
+       }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_PRETRANSFER_TIME_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "pretransfer_time_t", lenof("pretransfer_time_t"), &tmp);
+       }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_STARTTRANSFER_TIME_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "starttransfer_time_t", lenof("starttransfer_time_t"), &tmp);
+       }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_REDIRECT_TIME_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "redirect_time_t", lenof("redirect_time_t"), &tmp);
+       }
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_APPCONNECT_TIME_T, &o)) {
+               ZVAL_LONG(&tmp, o);
+               zend_hash_str_update(info, "appconnect_time_t", lenof("appconnect_time_t"), &tmp);
+       }
 #if PHP_HTTP_CURL_VERSION(7,66,0)
        if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_RETRY_AFTER, &o)) {
                ZVAL_LONG(&tmp, o);
@@ -531,6 +587,24 @@ static ZEND_RESULT_CODE php_http_curle_get_info(CURL *ch, HashTable *info)
                zend_hash_str_update(info, "proxy_error", lenof("proxy_error"), &tmp);
        }
 #endif
+#if PHP_HTTP_CURL_VERSION(7,76,0)
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_REFERER, &c)) {
+               ZVAL_STRING(&tmp, STR_PTR(c));
+               zend_hash_str_update(info, "referer", lenof("referer"), &tmp);
+       }
+#endif
+#if PHP_HTTP_CURL_VERSION(7,84,0)
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_CAINFO, &c)) {
+               ZVAL_STRING(&tmp, STR_PTR(c));
+               zend_hash_str_update(info, "cainfo", lenof("cainfo"), &tmp);
+       }
+#endif
+#if PHP_HTTP_CURL_VERSION(7,84,0)
+       if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_CAPATH, &c)) {
+               ZVAL_STRING(&tmp, STR_PTR(c));
+               zend_hash_str_update(info, "capath", lenof("capath"), &tmp);
+       }
+#endif
 
        /* END::CURLINFO */
 
@@ -630,8 +704,9 @@ static ZEND_RESULT_CODE php_http_curle_get_info(CURL *ch, HashTable *info)
 
 #if (PHP_HTTP_CURL_VERSION(7,19,1) && PHP_HTTP_HAVE_LIBCURL_OPENSSL) || \
        (PHP_HTTP_CURL_VERSION(7,34,0) && PHP_HTTP_HAVE_LIBCURL_NSS) || \
+       (PHP_HTTP_CURL_VERSION(7,39,0) && PHP_HTTP_HAVE_LIBCURL_GSKIT) || \
        (PHP_HTTP_CURL_VERSION(7,42,0) && PHP_HTTP_HAVE_LIBCURL_GNUTLS) || \
-       (PHP_HTTP_CURL_VERSION(7,39,0) && PHP_HTTP_HAVE_LIBCURL_GSKIT)
+       (PHP_HTTP_CURL_VERSION(7,79,0) && PHP_HTTP_HAVE_LIBCURL_SECURETRANSPORT)
        {
                int i;
                zval ci_array, subarray;
@@ -1202,8 +1277,10 @@ static ZEND_RESULT_CODE php_http_curle_option_set_ssl_tlsauthtype(php_http_optio
 
        if (val && Z_LVAL_P(val)) {
                switch (Z_LVAL_P(val)) {
+               case CURL_TLSAUTH_NONE:
+                       break;
                case CURL_TLSAUTH_SRP:
-                       if (CURLE_OK == curl_easy_setopt(ch, opt->option, PHP_HTTP_LIBCURL_TLSAUTH_SRP)) {
+                       if (CURLE_OK == curl_easy_setopt(ch, opt->option, "SRP")) {
                                return SUCCESS;
                        }
                        /* no break */
@@ -1211,7 +1288,7 @@ static ZEND_RESULT_CODE php_http_curle_option_set_ssl_tlsauthtype(php_http_optio
                        return FAILURE;
                }
        }
-       if (CURLE_OK != curl_easy_setopt(ch, opt->option, PHP_HTTP_LIBCURL_TLSAUTH_DEF)) {
+       if (CURLE_OK != curl_easy_setopt(ch, opt->option, "NONE")) {
                return FAILURE;
        }
        return SUCCESS;
index 95ea6f5388d6abbeea594bb9b939e4312dfe97c2..2e646f60c7f5bc7f3ac845fbbaf0ea9f87bea7ec 100644 (file)
@@ -22,6 +22,11 @@ typedef struct php_http_client_curl_user_ev {
        php_http_client_curl_user_context_t *context;
 } php_http_client_curl_user_ev_t;
 
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_user_handler, 0, 1, IS_LONG, 1)
+       ZEND_ARG_OBJ_INFO(0, client, "http\\Client", 0)
+       ZEND_ARG_TYPE_INFO(0, stream, IS_RESOURCE, 1)
+       ZEND_ARG_TYPE_INFO(0, action, IS_LONG, 1)
+ZEND_END_ARG_INFO();
 static ZEND_NAMED_FUNCTION(php_http_client_curl_user_handler)
 {
        zval *zstream = NULL, *zclient = NULL;
@@ -186,6 +191,10 @@ static void *php_http_client_curl_user_init(php_http_client_t *client, void *use
        ctx->closure.common.type = ZEND_INTERNAL_FUNCTION;
        ctx->closure.common.function_name = zend_string_init(ZEND_STRL("php_http_client_curl_user_handler"), 0);
        ctx->closure.internal_function.handler = php_http_client_curl_user_handler;
+       ctx->closure.internal_function.arg_info = (zend_internal_arg_info *) &ai_user_handler[1];
+       ctx->closure.internal_function.num_args = 3;
+       ctx->closure.internal_function.required_num_args = 1;
+
 
        zend_create_closure(zclosure, &ctx->closure, NULL, NULL, NULL);
 
index 943a436c1f078bc551b42638484a648e2d4b3aa7..459396f347d57280858a37c6e55546ff2558d495 100644 (file)
@@ -73,7 +73,7 @@ static inline char *localhostname(void)
 static php_http_url_t *php_http_url_from_env(void)
 {
        zval *https, *zhost, *zport;
-       long port;
+       zend_long port;
        php_http_buffer_t buf;
 
        php_http_buffer_init_ex(&buf, MAX(PHP_HTTP_BUFFER_DEFAULT_SIZE, sizeof(php_http_url_t)<<2), PHP_HTTP_BUFFER_INIT_PREALLOC);
index 5dd15133dea9179e483db8bfe1efb9050cd7c172..3b1e1c0c2b9773605cb839a44f4aa693350667e3 100644 (file)
@@ -1,16 +1,19 @@
 --TEST--
 client ssl
 --SKIPIF--
-<?php 
+<?php
 include "skipif.inc";
 skip_online_test();
 skip_client_test();
 skip_curl_test("7.34.0");
+if (0 === strpos(http\Client\Curl\Versions\CURL, "7.87.0")) {
+       die("skip SSL bug in libcurl-7.87\n");
+}
 if (strpos(http\Client\Curl\Versions\SSL, "SecureTransport") !== false)
        die("skip SecureTransport\n");
 ?>
 --FILE--
-<?php 
+<?php
 echo "Test\n";
 
 $client = new http\Client;
@@ -24,7 +27,7 @@ var_dump(
        ) === $client->getSslOptions()
 );
 
-$client->attach($observer = new class implements SplObserver { 
+$client->attach($observer = new class implements SplObserver {
        public $data = [];
 
        #[ReturnTypeWillChange]
index aaf462556b6f02aaf5176ac181c65dfd629c245d..f8eeeb5911d45caed5e4846eb5df1459bdac62e4 100644 (file)
@@ -4,8 +4,9 @@ client cookies
 <?php
 include "skipif.inc";
 skip_client_test();
-if (0 === strpos(http\Client\Curl\Versions\CURL, "7.64.0")) {
-       die("skip - cookie handling broken or crashes with libcurl-7.64\n");
+if (0 === strpos(http\Client\Curl\Versions\CURL, "7.64.0") ||
+       0 === strpos(http\Client\Curl\Versions\CURL, "7.88.1")) {
+       die("skip - cookie handling broken or crashes with libcurl v" . http\Client\Curl\Versions\CURL ."\n");
 }
 ?>
 --FILE--
index 4cb63afc915e6ca2f3f4ca32f8baad78cc1ab9f4..21f4c2db12619037f54edfbae5c3a5e22c31f2d4 100644 (file)
@@ -36,8 +36,8 @@ PUT / HTTP/1.1
 Accept: */*
 Content-Length: %d
 Content-Range: bytes 1-2/3
-Expect: 100-continue
-Host: localhost:%d
+%r(Expect: 100-continue
+)?%rHost: localhost:%d
 User-Agent: %s
 X-Original-Content-Length: %d
 
index 5612d06e606eca70e860e9d168ee1c55cff06f07..59d258c46f8c9681e863ed82cc1d3e4e27eed59b 100644 (file)
@@ -18,7 +18,7 @@ function dump_message($stream, http\Message $msg, $parent = false) {
        fprintf($stream, "%s\n", $msg->getInfo());
        dump_headers($stream, $msg->getHeaders());
        $msg->getBody()->toStream($stream);
-       
+
        if ($parent && ($msg = $msg->getParentMessage())) {
                dump_message($stream, $msg, true);
        }
@@ -28,7 +28,9 @@ function dump_responses($client, array $expect_cookie = []) {
        while (($r = $client->getResponse())) {
                dump_headers(null, $r->getHeaders());
                if ($expect_cookie) {
-                       $got_cookies = array_merge(...array_map(fn($c) => $c->getCookies(), $r->getCookies()));
+                       $got_cookies = array_merge(...array_map(function($c) {
+                               return $c->getCookies();
+                       }, $r->getCookies()));
                        if ($expect_cookie != $got_cookies) {
                                var_dump($expect_cookie, $got_cookies);
                                echo $r->toString(true);
index f203ed6c50f1696253e1a06d6e3439e0db95cc7c..b5bc3b7f4564d014b8636870c2de1bd51bf92bba 100644 (file)
@@ -7,9 +7,9 @@ function logger() {
        if (!ini_get("date.timezone")) {
                date_default_timezone_set(@date_default_timezone_get());
        }
-       error_log(sprintf("%s(%s): %s", 
-               basename(getenv("SCRIPT_FILENAME"), ".php"), 
-               basename(current(get_included_files()), ".inc"), 
+       error_log(sprintf("%s(%s): %s",
+               basename(getenv("SCRIPT_FILENAME"), ".php"),
+               basename(current(get_included_files()), ".inc"),
                call_user_func_array("sprintf", func_get_args())
        ));
 }
@@ -72,11 +72,11 @@ function ext_lib_name($ext) {
 }
 
 function serve($cb) {
-       /* stream_socket_server() automatically sets SO_REUSEADDR, 
+       /* stream_socket_server() automatically sets SO_REUSEADDR,
         * which is, well, bad if the tests are run in parallel
         */
        $offset = rand(0,2000);
-       foreach (range(8000+$offset, 9000+$offset) as $port) {
+       foreach (range(40000+$offset, 50000+$offset) as $port) {
                logger("serve: Trying port %d", $port);
                if (($server = @stream_socket_server("tcp://localhost:$port"))) {
                        fprintf(STDERR, "%s\n", $port);
@@ -149,28 +149,28 @@ function nghttpd($cb) {
                        $stdin = $pipes[0];
                        $stdout = $pipes[1];
                        $stderr = $pipes[2];
-                       
+
                        sleep(1);
                        $status = proc_get_status($proc);
                        logger("nghttpd: %s", new http\Params($status));
                        if (!$status["running"]) {
                                continue;
                        }
-                       
+
                        try {
                                $cb($port, $stdin, $stdout, $stderr);
                        } catch (Exception $e) {
                                echo $e,"\n";
                        }
-               
+
                        proc_terminate($proc);
-               
+
                        fpassthru($stderr);
                        fpassthru($stdout);
                        return;
                }
        }
-                       
+
 }
 
 function proc($bin, $args, $cb) {
@@ -186,7 +186,7 @@ function proc($bin, $args, $cb) {
                        $port = trim(fgets($stderr));
                        $R = array($stderr); $W = array(); $E = array();
                } while (is_numeric($port) && stream_select($R, $W, $E, 0, 10000));
-       
+
                if (is_numeric($port)) {
                        try {
                                $cb($port, $stdin, $stdout, $stderr);
@@ -194,9 +194,9 @@ function proc($bin, $args, $cb) {
                                echo $e,"\n";
                        }
                }
-       
+
                proc_terminate($proc);
-       
+
                fpassthru($stderr);
                fpassthru($stdout);
        }