mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
allow ldap_get_option to retrieve global option
This commit is contained in:
parent
00f0175ba9
commit
1e6909d25e
4 changed files with 25 additions and 14 deletions
|
@ -2984,16 +2984,22 @@ cleanup:
|
||||||
/* {{{ Get the current value of various session-wide parameters */
|
/* {{{ Get the current value of various session-wide parameters */
|
||||||
PHP_FUNCTION(ldap_get_option)
|
PHP_FUNCTION(ldap_get_option)
|
||||||
{
|
{
|
||||||
zval *link, *retval;
|
zval *link = NULL, *retval;
|
||||||
ldap_linkdata *ld;
|
ldap_linkdata *ld;
|
||||||
zend_long option;
|
zend_long option;
|
||||||
|
LDAP *ldap;
|
||||||
|
|
||||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Olz", &link, ldap_link_ce, &option, &retval) != SUCCESS) {
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O!lz", &link, ldap_link_ce, &option, &retval) != SUCCESS) {
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
}
|
}
|
||||||
|
|
||||||
ld = Z_LDAP_LINK_P(link);
|
if (!link) {
|
||||||
VERIFY_LDAP_LINK_CONNECTED(ld);
|
ldap = NULL;
|
||||||
|
} else {
|
||||||
|
ld = Z_LDAP_LINK_P(link);
|
||||||
|
VERIFY_LDAP_LINK_CONNECTED(ld);
|
||||||
|
ldap = ld->link;
|
||||||
|
}
|
||||||
|
|
||||||
switch (option) {
|
switch (option) {
|
||||||
/* options with int value */
|
/* options with int value */
|
||||||
|
@ -3029,7 +3035,7 @@ PHP_FUNCTION(ldap_get_option)
|
||||||
{
|
{
|
||||||
int val;
|
int val;
|
||||||
|
|
||||||
if (ldap_get_option(ld->link, option, &val)) {
|
if (ldap_get_option(ldap, option, &val)) {
|
||||||
RETURN_FALSE;
|
RETURN_FALSE;
|
||||||
}
|
}
|
||||||
ZEND_TRY_ASSIGN_REF_LONG(retval, val);
|
ZEND_TRY_ASSIGN_REF_LONG(retval, val);
|
||||||
|
@ -3039,7 +3045,7 @@ PHP_FUNCTION(ldap_get_option)
|
||||||
{
|
{
|
||||||
struct timeval *timeout = NULL;
|
struct timeval *timeout = NULL;
|
||||||
|
|
||||||
if (ldap_get_option(ld->link, LDAP_OPT_NETWORK_TIMEOUT, (void *) &timeout)) {
|
if (ldap_get_option(ldap, LDAP_OPT_NETWORK_TIMEOUT, (void *) &timeout)) {
|
||||||
if (timeout) {
|
if (timeout) {
|
||||||
ldap_memfree(timeout);
|
ldap_memfree(timeout);
|
||||||
}
|
}
|
||||||
|
@ -3056,7 +3062,7 @@ PHP_FUNCTION(ldap_get_option)
|
||||||
{
|
{
|
||||||
int timeout;
|
int timeout;
|
||||||
|
|
||||||
if (ldap_get_option(ld->link, LDAP_X_OPT_CONNECT_TIMEOUT, &timeout)) {
|
if (ldap_get_option(ldap, LDAP_X_OPT_CONNECT_TIMEOUT, &timeout)) {
|
||||||
RETURN_FALSE;
|
RETURN_FALSE;
|
||||||
}
|
}
|
||||||
ZEND_TRY_ASSIGN_REF_LONG(retval, (timeout / 1000));
|
ZEND_TRY_ASSIGN_REF_LONG(retval, (timeout / 1000));
|
||||||
|
@ -3067,7 +3073,7 @@ PHP_FUNCTION(ldap_get_option)
|
||||||
{
|
{
|
||||||
struct timeval *timeout = NULL;
|
struct timeval *timeout = NULL;
|
||||||
|
|
||||||
if (ldap_get_option(ld->link, LDAP_OPT_TIMEOUT, (void *) &timeout)) {
|
if (ldap_get_option(ldap, LDAP_OPT_TIMEOUT, (void *) &timeout)) {
|
||||||
if (timeout) {
|
if (timeout) {
|
||||||
ldap_memfree(timeout);
|
ldap_memfree(timeout);
|
||||||
}
|
}
|
||||||
|
@ -3117,7 +3123,7 @@ PHP_FUNCTION(ldap_get_option)
|
||||||
{
|
{
|
||||||
char *val = NULL;
|
char *val = NULL;
|
||||||
|
|
||||||
if (ldap_get_option(ld->link, option, &val) || val == NULL || *val == '\0') {
|
if (ldap_get_option(ldap, option, &val) || val == NULL || *val == '\0') {
|
||||||
if (val) {
|
if (val) {
|
||||||
ldap_memfree(val);
|
ldap_memfree(val);
|
||||||
}
|
}
|
||||||
|
@ -3131,13 +3137,13 @@ PHP_FUNCTION(ldap_get_option)
|
||||||
{
|
{
|
||||||
LDAPControl **ctrls = NULL;
|
LDAPControl **ctrls = NULL;
|
||||||
|
|
||||||
if (ldap_get_option(ld->link, option, &ctrls) || ctrls == NULL) {
|
if (ldap_get_option(ldap, option, &ctrls) || ctrls == NULL) {
|
||||||
if (ctrls) {
|
if (ctrls) {
|
||||||
ldap_memfree(ctrls);
|
ldap_memfree(ctrls);
|
||||||
}
|
}
|
||||||
RETURN_FALSE;
|
RETURN_FALSE;
|
||||||
}
|
}
|
||||||
_php_ldap_controls_to_array(ld->link, ctrls, retval, 1);
|
_php_ldap_controls_to_array(ldap, ctrls, retval, 1);
|
||||||
} break;
|
} break;
|
||||||
/* options not implemented
|
/* options not implemented
|
||||||
case LDAP_OPT_API_INFO:
|
case LDAP_OPT_API_INFO:
|
||||||
|
|
|
@ -740,7 +740,7 @@ namespace {
|
||||||
function ldap_rename_ext(LDAP\Connection $ldap, string $dn, string $new_rdn, string $new_parent, bool $delete_old_rdn, ?array $controls = null): LDAP\Result|false {}
|
function ldap_rename_ext(LDAP\Connection $ldap, string $dn, string $new_rdn, string $new_parent, bool $delete_old_rdn, ?array $controls = null): LDAP\Result|false {}
|
||||||
|
|
||||||
/** @param array|string|int $value */
|
/** @param array|string|int $value */
|
||||||
function ldap_get_option(LDAP\Connection $ldap, int $option, &$value = null): bool {}
|
function ldap_get_option(?LDAP\Connection $ldap, int $option, &$value = null): bool {}
|
||||||
|
|
||||||
/** @param array|string|int|bool $value */
|
/** @param array|string|int|bool $value */
|
||||||
function ldap_set_option(?LDAP\Connection $ldap, int $option, $value): bool {}
|
function ldap_set_option(?LDAP\Connection $ldap, int $option, $value): bool {}
|
||||||
|
|
4
ext/ldap/ldap_arginfo.h
generated
4
ext/ldap/ldap_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: 7415695a7ae90e6abd45617baf8a9ecf9232b801 */
|
* Stub hash: edd31d6c19c01bee6ddb04c747640c97f0bacba6 */
|
||||||
|
|
||||||
#if defined(HAVE_ORALDAP)
|
#if defined(HAVE_ORALDAP)
|
||||||
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_connect, 0, 0, LDAP\\Connection, MAY_BE_FALSE)
|
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_connect, 0, 0, LDAP\\Connection, MAY_BE_FALSE)
|
||||||
|
@ -217,7 +217,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_ldap_rename_ext, 0, 5, LDAP\
|
||||||
ZEND_END_ARG_INFO()
|
ZEND_END_ARG_INFO()
|
||||||
|
|
||||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_get_option, 0, 2, _IS_BOOL, 0)
|
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_get_option, 0, 2, _IS_BOOL, 0)
|
||||||
ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 0)
|
ZEND_ARG_OBJ_INFO(0, ldap, LDAP\\Connection, 1)
|
||||||
ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
|
ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
|
||||||
ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, value, "null")
|
ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, value, "null")
|
||||||
ZEND_END_ARG_INFO()
|
ZEND_END_ARG_INFO()
|
||||||
|
|
|
@ -7,6 +7,10 @@ ldap
|
||||||
--FILE--
|
--FILE--
|
||||||
<?php
|
<?php
|
||||||
require "connect.inc";
|
require "connect.inc";
|
||||||
|
|
||||||
|
$result = ldap_get_option(NULL, LDAP_OPT_X_TLS_PACKAGE, $optionval);
|
||||||
|
var_dump(in_array($optionval, ['GnuTLS', 'OpenSSL', 'MozNSS']));
|
||||||
|
|
||||||
$link = ldap_connect($uri);
|
$link = ldap_connect($uri);
|
||||||
|
|
||||||
$result = ldap_get_option($link, LDAP_OPT_X_TLS_PACKAGE, $optionval);
|
$result = ldap_get_option($link, LDAP_OPT_X_TLS_PACKAGE, $optionval);
|
||||||
|
@ -15,3 +19,4 @@ var_dump(in_array($optionval, ['GnuTLS', 'OpenSSL', 'MozNSS']));
|
||||||
?>
|
?>
|
||||||
--EXPECT--
|
--EXPECT--
|
||||||
bool(true)
|
bool(true)
|
||||||
|
bool(true)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue