Skip to content

Curl: Add CURLOPT_DOH_URL option #6612

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed

Curl: Add CURLOPT_DOH_URL option #6612

wants to merge 1 commit into from

Conversation

Ayesh
Copy link
Member

@Ayesh Ayesh commented Jan 17, 2021

From libcurl version 7.62.0 and later, it supports DNS-over-HTTPS with CURLOPT_DOH_URL option.
This adds integration with the CURLOPT_DOH_URL option if libcurl version is >= 7.62.0 (0x073E00).

For reference, Ubuntu 20.04+ libcurl4-openssl-dev-based PHP builds use Curl 7.68.

From libcurl version 7.62.0 and later, it supports DNS-over-HTTPS with [`CURLOPT_DOH_URL`](https://curl.se/libcurl/c/CURLOPT_DOH_URL.html) option.
This adds integration with the `CURLOPT_DOH_URL` option if libcurl version is >= 7.62.0 (0x073E00).

For reference, Ubuntu 20.04+ `libcurl4-openssl-dev`-based PHP builds use Curl 7.68.
@php-pulls php-pulls closed this in 3dad63b Jan 18, 2021
jrfnl added a commit to PHPCompatibility/PHPCompatibility that referenced this pull request Mar 9, 2022
> * Added CURLOPT_DOH_URL option
> * Added certificate blob options when for libcurl >= 7.71.0:
>
>         CURLOPT_ISSUERCERT_BLOB
>         CURLOPT_PROXY_ISSUERCERT
>         CURLOPT_PROXY_ISSUERCERT_BLOB
>         CURLOPT_PROXY_SSLCERT_BLOB
>         CURLOPT_PROXY_SSLKEY_BLOB
>         CURLOPT_SSLCERT_BLOB
>         CURLOPT_SSLKEY_BLOB

Includes unit tests.

Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L220-L229
* php/php-src#6612
* php/php-src@3dad63b
* php/php-src#7194
* php/php-src@b11785c
jrfnl added a commit to jrfnl/doc-en that referenced this pull request Mar 11, 2022
> * Added CURLOPT_DOH_URL option

> * Added certificate blob options when for libcurl >= 7.71.0:
>
>         CURLOPT_ISSUERCERT_BLOB
>         CURLOPT_PROXY_ISSUERCERT
>         CURLOPT_PROXY_ISSUERCERT_BLOB
>         CURLOPT_PROXY_SSLCERT_BLOB
>         CURLOPT_PROXY_SSLKEY_BLOB
>         CURLOPT_SSLCERT_BLOB
>         CURLOPT_SSLKEY_BLOB

Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L220-L229
* php/php-src#6612
* php/php-src@3dad63b
* php/php-src#7194
* php/php-src@b11785c
cmb69 pushed a commit to php/doc-en that referenced this pull request Mar 11, 2022
* PHP 8.1 | MigrationGuide/New constants: add missing constants [1]

> * Added CURLOPT_DOH_URL option

> * Added certificate blob options when for libcurl >= 7.71.0:
>
>         CURLOPT_ISSUERCERT_BLOB
>         CURLOPT_PROXY_ISSUERCERT
>         CURLOPT_PROXY_ISSUERCERT_BLOB
>         CURLOPT_PROXY_SSLCERT_BLOB
>         CURLOPT_PROXY_SSLKEY_BLOB
>         CURLOPT_SSLCERT_BLOB
>         CURLOPT_SSLKEY_BLOB

Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L220-L229
* php/php-src#6612
* php/php-src@3dad63b
* php/php-src#7194
* php/php-src@b11785c

* PHP 8.1 | MigrationGuide/New constants: add missing constants [2]

> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
>     `imageavif()` functions, if libgd has been built with avif support.

While not mentioned in the changelog entry, the commit to PHP does contain a new constant declaration...

Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36#diff-00d1efef2247b288c86a6c3bfefac111a4774fbc5453fdc02dcf36c4a23da283R373

> GD:
> * `imagewebp()` can do lossless WebP encoding by passing `IMG_WEBP_LOSSLESS` as
>    quality. This constant is only defined, if a libgd is used which supports
>    lossless WebP encoding.

Refs:
* https://github.com/php/php-src/blob/3a71fcf5caf042a4ce8a586a6b554fd70432e1e2/UPGRADING#L568-L571
* php/php-src#7348
* php/php-src@eb6c9eb

* PHP 8.1 | MigrationGuide/New constants: add missing constants [3]

> Added `POSIX_RLIMIT_KQUEUES` and `POSIX_RLIMIT_NPTS`. These rlimits are only available on FreeBSD.

Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.posix
* php/php-src#6608
* php/php-src@ebca8de

* PHP 8.1 | MigrationGuide/New constants: add missing constants [4]

Refs:
* https://wiki.php.net/rfc/readonly_properties_v2
* php/php-src#7089
* php/php-src@6780aaa

* PHP 8.1 | MigrationGuide/New constants: add missing constants [5]

While not mentioned anywhere at all, the commit to PHP itself adding support for the Sodium xchacha* functions, does declare a couple of new constants as well...

Refs:
* php/php-src#6868
* php/php-src@f7f1f7f#diff-3fe4027560fd299248af1dc1efe04287cc2b6418e8f01755c05c9db64b668b1eR352-R357

While not mentioned anywhere at all, the commit to PHP itself adding support for the Sodium ristretto255* functions, also declares a number of new constants as well...

Refs:
* php/php-src#6922
* php/php-src@9b794f8#diff-3fe4027560fd299248af1dc1efe04287cc2b6418e8f01755c05c9db64b668b1eR368-R381

Co-authored-by: jrfnl <[email protected]>

Closes GH-1449.
tiffany-taylor pushed a commit to tiffany-taylor/doc-en that referenced this pull request Jan 16, 2023
* PHP 8.1 | MigrationGuide/New constants: add missing constants [1]

> * Added CURLOPT_DOH_URL option

> * Added certificate blob options when for libcurl >= 7.71.0:
>
>         CURLOPT_ISSUERCERT_BLOB
>         CURLOPT_PROXY_ISSUERCERT
>         CURLOPT_PROXY_ISSUERCERT_BLOB
>         CURLOPT_PROXY_SSLCERT_BLOB
>         CURLOPT_PROXY_SSLKEY_BLOB
>         CURLOPT_SSLCERT_BLOB
>         CURLOPT_SSLKEY_BLOB

Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L220-L229
* php/php-src#6612
* php/php-src@3dad63b
* php/php-src#7194
* php/php-src@b11785c

* PHP 8.1 | MigrationGuide/New constants: add missing constants [2]

> GD:
> * Avif support is now available through the `imagecreatefromavif()` and
>     `imageavif()` functions, if libgd has been built with avif support.

While not mentioned in the changelog entry, the commit to PHP does contain a new constant declaration...

Refs:
* https://github.com/php/php-src/blob/f67986a9218f4889d9352a87c29337a5b6eaa4bd/UPGRADING#L245-L247
* php/php-src#7026
* php/php-src@81f6d36#diff-00d1efef2247b288c86a6c3bfefac111a4774fbc5453fdc02dcf36c4a23da283R373

> GD:
> * `imagewebp()` can do lossless WebP encoding by passing `IMG_WEBP_LOSSLESS` as
>    quality. This constant is only defined, if a libgd is used which supports
>    lossless WebP encoding.

Refs:
* https://github.com/php/php-src/blob/3a71fcf5caf042a4ce8a586a6b554fd70432e1e2/UPGRADING#L568-L571
* php/php-src#7348
* php/php-src@eb6c9eb

* PHP 8.1 | MigrationGuide/New constants: add missing constants [3]

> Added `POSIX_RLIMIT_KQUEUES` and `POSIX_RLIMIT_NPTS`. These rlimits are only available on FreeBSD.

Refs:
* https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.posix
* php/php-src#6608
* php/php-src@ebca8de

* PHP 8.1 | MigrationGuide/New constants: add missing constants [4]

Refs:
* https://wiki.php.net/rfc/readonly_properties_v2
* php/php-src#7089
* php/php-src@6780aaa

* PHP 8.1 | MigrationGuide/New constants: add missing constants [5]

While not mentioned anywhere at all, the commit to PHP itself adding support for the Sodium xchacha* functions, does declare a couple of new constants as well...

Refs:
* php/php-src#6868
* php/php-src@f7f1f7f#diff-3fe4027560fd299248af1dc1efe04287cc2b6418e8f01755c05c9db64b668b1eR352-R357

While not mentioned anywhere at all, the commit to PHP itself adding support for the Sodium ristretto255* functions, also declares a number of new constants as well...

Refs:
* php/php-src#6922
* php/php-src@9b794f8#diff-3fe4027560fd299248af1dc1efe04287cc2b6418e8f01755c05c9db64b668b1eR368-R381

Co-authored-by: jrfnl <[email protected]>

Closes phpGH-1449.
@Ayesh Ayesh deleted the curl-doh branch March 12, 2024 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants