mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Merge branch 'Ayesh-curl/8-12/auth-used-consts'
* Ayesh-curl/8-12/auth-used-consts: ext/curl: Add `CURLINFO_{USED_PROXY,HTTPAUTH_USED,PROXYAUTH_USED}`
This commit is contained in:
commit
d6b1d2e4ca
7 changed files with 184 additions and 1 deletions
|
@ -1000,6 +1000,18 @@ const CURLINFO_CAPATH = UNKNOWN;
|
||||||
*/
|
*/
|
||||||
const CURLINFO_CAINFO = UNKNOWN;
|
const CURLINFO_CAINFO = UNKNOWN;
|
||||||
#endif
|
#endif
|
||||||
|
#if LIBCURL_VERSION_NUM >= 0x080c00 /* Available since 8.12.0 */
|
||||||
|
/**
|
||||||
|
* @var int
|
||||||
|
* @cvalue CURLINFO_HTTPAUTH_USED
|
||||||
|
*/
|
||||||
|
const CURLINFO_HTTPAUTH_USED = UNKNOWN;
|
||||||
|
/**
|
||||||
|
* @var int
|
||||||
|
* @cvalue CURLINFO_PROXYAUTH_USED
|
||||||
|
*/
|
||||||
|
const CURLINFO_PROXYAUTH_USED = UNKNOWN;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Other */
|
/* Other */
|
||||||
/**
|
/**
|
||||||
|
@ -3054,6 +3066,13 @@ const CURLINFO_STARTTRANSFER_TIME_T = UNKNOWN;
|
||||||
* @cvalue CURLINFO_TOTAL_TIME_T
|
* @cvalue CURLINFO_TOTAL_TIME_T
|
||||||
*/
|
*/
|
||||||
const CURLINFO_TOTAL_TIME_T = UNKNOWN;
|
const CURLINFO_TOTAL_TIME_T = UNKNOWN;
|
||||||
|
#if LIBCURL_VERSION_NUM >= 0x080700 /* Available since 8.7.0 */
|
||||||
|
/**
|
||||||
|
* @var int
|
||||||
|
* @cvalue CURLINFO_USED_PROXY
|
||||||
|
*/
|
||||||
|
const CURLINFO_USED_PROXY = UNKNOWN;
|
||||||
|
#endif
|
||||||
#if LIBCURL_VERSION_NUM >= 0x080a00 /* Available since 8.10.0 */
|
#if LIBCURL_VERSION_NUM >= 0x080a00 /* Available since 8.10.0 */
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
|
|
11
ext/curl/curl_arginfo.h
generated
11
ext/curl/curl_arginfo.h
generated
|
@ -1,5 +1,5 @@
|
||||||
/* This is a generated file, edit the .stub.php file instead.
|
/* This is a generated file, edit the .stub.php file instead.
|
||||||
* Stub hash: 7d3cd96f8725c59be46817487bb8d06e04384269 */
|
* Stub hash: 48fc95503f4f8cc96575ff6f31fdd1e4cdc5969e */
|
||||||
|
|
||||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_close, 0, 1, IS_VOID, 0)
|
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_close, 0, 1, IS_VOID, 0)
|
||||||
ZEND_ARG_OBJ_INFO(0, handle, CurlHandle, 0)
|
ZEND_ARG_OBJ_INFO(0, handle, CurlHandle, 0)
|
||||||
|
@ -429,6 +429,12 @@ static void register_curl_symbols(int module_number)
|
||||||
#endif
|
#endif
|
||||||
#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */
|
#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */
|
||||||
REGISTER_LONG_CONSTANT("CURLINFO_CAINFO", CURLINFO_CAINFO, CONST_PERSISTENT);
|
REGISTER_LONG_CONSTANT("CURLINFO_CAINFO", CURLINFO_CAINFO, CONST_PERSISTENT);
|
||||||
|
#endif
|
||||||
|
#if LIBCURL_VERSION_NUM >= 0x080c00 /* Available since 8.12.0 */
|
||||||
|
REGISTER_LONG_CONSTANT("CURLINFO_HTTPAUTH_USED", CURLINFO_HTTPAUTH_USED, CONST_PERSISTENT);
|
||||||
|
#endif
|
||||||
|
#if LIBCURL_VERSION_NUM >= 0x080c00 /* Available since 8.12.0 */
|
||||||
|
REGISTER_LONG_CONSTANT("CURLINFO_PROXYAUTH_USED", CURLINFO_PROXYAUTH_USED, CONST_PERSISTENT);
|
||||||
#endif
|
#endif
|
||||||
REGISTER_LONG_CONSTANT("CURLMSG_DONE", CURLMSG_DONE, CONST_PERSISTENT);
|
REGISTER_LONG_CONSTANT("CURLMSG_DONE", CURLMSG_DONE, CONST_PERSISTENT);
|
||||||
REGISTER_LONG_CONSTANT("CURLVERSION_NOW", CURLVERSION_NOW, CONST_PERSISTENT);
|
REGISTER_LONG_CONSTANT("CURLVERSION_NOW", CURLVERSION_NOW, CONST_PERSISTENT);
|
||||||
|
@ -811,6 +817,9 @@ static void register_curl_symbols(int module_number)
|
||||||
REGISTER_LONG_CONSTANT("CURLINFO_REDIRECT_TIME_T", CURLINFO_REDIRECT_TIME_T, CONST_PERSISTENT);
|
REGISTER_LONG_CONSTANT("CURLINFO_REDIRECT_TIME_T", CURLINFO_REDIRECT_TIME_T, CONST_PERSISTENT);
|
||||||
REGISTER_LONG_CONSTANT("CURLINFO_STARTTRANSFER_TIME_T", CURLINFO_STARTTRANSFER_TIME_T, CONST_PERSISTENT);
|
REGISTER_LONG_CONSTANT("CURLINFO_STARTTRANSFER_TIME_T", CURLINFO_STARTTRANSFER_TIME_T, CONST_PERSISTENT);
|
||||||
REGISTER_LONG_CONSTANT("CURLINFO_TOTAL_TIME_T", CURLINFO_TOTAL_TIME_T, CONST_PERSISTENT);
|
REGISTER_LONG_CONSTANT("CURLINFO_TOTAL_TIME_T", CURLINFO_TOTAL_TIME_T, CONST_PERSISTENT);
|
||||||
|
#if LIBCURL_VERSION_NUM >= 0x080700 /* Available since 8.7.0 */
|
||||||
|
REGISTER_LONG_CONSTANT("CURLINFO_USED_PROXY", CURLINFO_USED_PROXY, CONST_PERSISTENT);
|
||||||
|
#endif
|
||||||
#if LIBCURL_VERSION_NUM >= 0x080a00 /* Available since 8.10.0 */
|
#if LIBCURL_VERSION_NUM >= 0x080a00 /* Available since 8.10.0 */
|
||||||
REGISTER_LONG_CONSTANT("CURLINFO_POSTTRANSFER_TIME_T", CURLINFO_POSTTRANSFER_TIME_T, CONST_PERSISTENT);
|
REGISTER_LONG_CONSTANT("CURLINFO_POSTTRANSFER_TIME_T", CURLINFO_POSTTRANSFER_TIME_T, CONST_PERSISTENT);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2662,6 +2662,19 @@ PHP_FUNCTION(curl_getinfo)
|
||||||
if (curl_easy_getinfo(ch->cp, CURLINFO_CAINFO, &s_code) == CURLE_OK) {
|
if (curl_easy_getinfo(ch->cp, CURLINFO_CAINFO, &s_code) == CURLE_OK) {
|
||||||
CAAS("cainfo", s_code);
|
CAAS("cainfo", s_code);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#if LIBCURL_VERSION_NUM >= 0x080700 /* Available since 8.7.0 */
|
||||||
|
if (curl_easy_getinfo(ch->cp, CURLINFO_USED_PROXY, &l_code) == CURLE_OK) {
|
||||||
|
CAAL("used_proxy", l_code);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if LIBCURL_VERSION_NUM >= 0x080c00 /* Available since 8.12.0 */
|
||||||
|
if (curl_easy_getinfo(ch->cp, CURLINFO_HTTPAUTH_USED, &l_code) == CURLE_OK) {
|
||||||
|
CAAL("httpauth_used", l_code);
|
||||||
|
}
|
||||||
|
if (curl_easy_getinfo(ch->cp, CURLINFO_PROXYAUTH_USED, &l_code) == CURLE_OK) {
|
||||||
|
CAAL("proxyauth_used", l_code);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
switch (option) {
|
switch (option) {
|
||||||
|
|
|
@ -11,3 +11,8 @@ respond / "Caddy is up and running"
|
||||||
respond /serverpush "main response"
|
respond /serverpush "main response"
|
||||||
respond /serverpush/pushed "pushed response"
|
respond /serverpush/pushed "pushed response"
|
||||||
push /serverpush /serverpush/pushed
|
push /serverpush /serverpush/pushed
|
||||||
|
|
||||||
|
basicauth /http-basic-auth {
|
||||||
|
# bcrypt password hash for "password", calculated with 'caddy hash-password'
|
||||||
|
user $2a$14$yUKl9SGqVTAAqPTzLup.DefsbXXx3kfreNnzpJOUHcIrKnr5lgef2
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
--TEST--
|
||||||
|
curl_getinfo - CURLINFO_HTTPAUTH_USED - online test
|
||||||
|
--EXTENSIONS--
|
||||||
|
curl
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
$curl_version = curl_version();
|
||||||
|
if ($curl_version['version_number'] < 0x080c00) die("skip: test works only with curl >= 8.12.0");
|
||||||
|
include 'skipif-nocaddy.inc';
|
||||||
|
?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL, "https://localhost/http-basic-auth");
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
|
||||||
|
$info = curl_getinfo($ch);
|
||||||
|
var_dump($info['httpauth_used'] === 0); // this is always 0 before executing the transfer
|
||||||
|
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC | CURLAUTH_DIGEST);
|
||||||
|
curl_setopt($ch, CURLOPT_USERNAME, "foo");
|
||||||
|
curl_setopt($ch, CURLOPT_PASSWORD, "bar");
|
||||||
|
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
$info = curl_getinfo($ch);
|
||||||
|
|
||||||
|
var_dump($info['httpauth_used'] === CURLAUTH_BASIC);
|
||||||
|
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
66
ext/curl/tests/curl_getinfo_CURLINFO_HTTPAUTH_USED.phpt
Normal file
66
ext/curl/tests/curl_getinfo_CURLINFO_HTTPAUTH_USED.phpt
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
--TEST--
|
||||||
|
curl_getinfo - CURLINFO_HTTPAUTH_USED
|
||||||
|
--EXTENSIONS--
|
||||||
|
curl
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
$curl_version = curl_version();
|
||||||
|
if ($curl_version['version_number'] < 0x080c00) die("skip: test works only with curl >= 8.12.0");
|
||||||
|
?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
include 'server.inc';
|
||||||
|
|
||||||
|
$host = curl_cli_server_start();
|
||||||
|
$port = (int) (explode(':', $host))[1];
|
||||||
|
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL, "{$host}/get.inc?test=file");
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
|
||||||
|
echo "httpauth_used and proxyauth_used empty\n";
|
||||||
|
|
||||||
|
$info = curl_getinfo($ch);
|
||||||
|
var_dump(isset($info['httpauth_used']));
|
||||||
|
var_dump(isset($info['proxyauth_used']));
|
||||||
|
var_dump($info['httpauth_used'] === 0); // this is always 0 before executing the transfer
|
||||||
|
var_dump($info['proxyauth_used'] === 0); // this is always 0 before executing the transfer
|
||||||
|
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
echo "httpauth_used and proxyauth_used empty after request\n";
|
||||||
|
$info = curl_getinfo($ch);
|
||||||
|
var_dump(isset($info['httpauth_used']));
|
||||||
|
var_dump(isset($info['proxyauth_used']));
|
||||||
|
var_dump($info['httpauth_used'] === 0);
|
||||||
|
var_dump($info['proxyauth_used'] === 0);
|
||||||
|
var_dump(curl_getinfo($ch, CURLINFO_HTTPAUTH_USED) === $info['used_proxy']);
|
||||||
|
var_dump(curl_getinfo($ch, CURLINFO_PROXYAUTH_USED) === $info['proxyauth_used']);
|
||||||
|
|
||||||
|
echo "httpauth_used set after request\n";
|
||||||
|
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC | CURLAUTH_DIGEST);
|
||||||
|
curl_setopt($ch, CURLOPT_USERNAME, "foo");
|
||||||
|
curl_setopt($ch, CURLOPT_PASSWORD, "bar");
|
||||||
|
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
$info = curl_getinfo($ch);
|
||||||
|
|
||||||
|
var_dump($info['httpauth_used']); // Built-in server does not support auth
|
||||||
|
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
httpauth_used and proxyauth_used empty
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
httpauth_used and proxyauth_used empty after request
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
httpauth_used set after request
|
||||||
|
int(0)
|
38
ext/curl/tests/curl_getinfo_CURLINFO_USED_PROXY.phpt
Normal file
38
ext/curl/tests/curl_getinfo_CURLINFO_USED_PROXY.phpt
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
--TEST--
|
||||||
|
curl_getinfo - CURLINFO_USED_PROXY
|
||||||
|
--EXTENSIONS--
|
||||||
|
curl
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
$curl_version = curl_version();
|
||||||
|
if ($curl_version['version_number'] < 0x080700) die("skip: test works only with curl >= 8.7.0");
|
||||||
|
?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
include 'server.inc';
|
||||||
|
|
||||||
|
$host = curl_cli_server_start();
|
||||||
|
$port = (int) (explode(':', $host))[1];
|
||||||
|
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL, "{$host}/get.inc?test=file");
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
|
||||||
|
$info = curl_getinfo($ch);
|
||||||
|
var_dump(isset($info['used_proxy']));
|
||||||
|
var_dump($info['used_proxy'] === 0); // this is always 0 before executing the transfer
|
||||||
|
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
|
||||||
|
$info = curl_getinfo($ch);
|
||||||
|
var_dump(isset($info['used_proxy']));
|
||||||
|
var_dump($info['used_proxy'] === 0);
|
||||||
|
var_dump(curl_getinfo($ch, CURLINFO_USED_PROXY) === $info['used_proxy']);
|
||||||
|
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
bool(true)
|
Loading…
Add table
Add a link
Reference in a new issue