summaryrefslogtreecommitdiff
path: root/ext/ldap
diff options
context:
space:
mode:
Diffstat (limited to 'ext/ldap')
-rw-r--r--ext/ldap/config.m42
-rw-r--r--ext/ldap/config.w321
-rw-r--r--ext/ldap/ldap.c551
-rw-r--r--ext/ldap/ldap.stub.php370
-rw-r--r--ext/ldap/ldap_arginfo.h347
-rw-r--r--ext/ldap/php_ldap.h2
-rw-r--r--ext/ldap/tests/bug48696.phpt15
-rw-r--r--ext/ldap/tests/ldap_add_error.phpt20
-rw-r--r--ext/ldap/tests/ldap_bind_error.phpt6
-rw-r--r--ext/ldap/tests/ldap_compare_error.phpt20
-rw-r--r--ext/ldap/tests/ldap_connect_error.phpt4
-rw-r--r--ext/ldap/tests/ldap_count_entries_error.phpt23
-rw-r--r--ext/ldap/tests/ldap_delete_error.phpt16
-rw-r--r--ext/ldap/tests/ldap_dn2ufn.phpt7
-rw-r--r--ext/ldap/tests/ldap_err2str_error.phpt28
-rw-r--r--ext/ldap/tests/ldap_errno_error.phpt23
-rw-r--r--ext/ldap/tests/ldap_error_error.phpt23
-rw-r--r--ext/ldap/tests/ldap_explode_dn.phpt10
-rw-r--r--ext/ldap/tests/ldap_first_attribute_error.phpt15
-rw-r--r--ext/ldap/tests/ldap_first_entry_error.phpt27
-rw-r--r--ext/ldap/tests/ldap_first_reference_error.phpt27
-rw-r--r--ext/ldap/tests/ldap_free_result_error.phpt23
-rw-r--r--ext/ldap/tests/ldap_get_attributes_error.phpt23
-rw-r--r--ext/ldap/tests/ldap_get_dn_error.phpt23
-rw-r--r--ext/ldap/tests/ldap_get_entries_error.phpt33
-rw-r--r--ext/ldap/tests/ldap_get_option_error.phpt40
-rw-r--r--ext/ldap/tests/ldap_get_values_len_error.phpt14
-rw-r--r--ext/ldap/tests/ldap_list_error.phpt35
-rw-r--r--ext/ldap/tests/ldap_mod_add_error.phpt20
-rw-r--r--ext/ldap/tests/ldap_mod_del_error.phpt20
-rw-r--r--ext/ldap/tests/ldap_mod_replace_error.phpt20
-rw-r--r--ext/ldap/tests/ldap_modify_batch_error.phpt20
-rw-r--r--ext/ldap/tests/ldap_modify_error.phpt20
-rw-r--r--ext/ldap/tests/ldap_next_attribute_error.phpt8
-rw-r--r--ext/ldap/tests/ldap_next_entry_error.phpt27
-rw-r--r--ext/ldap/tests/ldap_next_reference_error.phpt27
-rw-r--r--ext/ldap/tests/ldap_parse_reference_error.phpt31
-rw-r--r--ext/ldap/tests/ldap_parse_result_error.phpt17
-rw-r--r--ext/ldap/tests/ldap_read_error.phpt35
-rw-r--r--ext/ldap/tests/ldap_read_variation1.phpt4
-rw-r--r--ext/ldap/tests/ldap_rename_error.phpt7
-rw-r--r--ext/ldap/tests/ldap_sasl_bind_error.phpt6
-rw-r--r--ext/ldap/tests/ldap_search_error.phpt12
-rw-r--r--ext/ldap/tests/ldap_set_option_error.phpt19
-rw-r--r--ext/ldap/tests/ldap_set_rebind_proc_error.phpt10
-rw-r--r--ext/ldap/tests/ldap_sort_basic.phpt201
-rw-r--r--ext/ldap/tests/ldap_sort_error.phpt45
-rw-r--r--ext/ldap/tests/ldap_sort_variation.phpt201
-rw-r--r--ext/ldap/tests/ldap_start_tls_error.phpt27
-rw-r--r--ext/ldap/tests/ldap_unbind_error.phpt42
50 files changed, 797 insertions, 1750 deletions
diff --git a/ext/ldap/config.m4 b/ext/ldap/config.m4
index f10cccc460..89c4b19531 100644
--- a/ext/ldap/config.m4
+++ b/ext/ldap/config.m4
@@ -51,7 +51,7 @@ PHP_ARG_WITH([ldap-sasl],
if test "$PHP_LDAP" != "no"; then
- PHP_NEW_EXTENSION(ldap, ldap.c, $ext_shared,,-DLDAP_DEPRECATED=1 -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
+ PHP_NEW_EXTENSION(ldap, ldap.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
if test "$PHP_LDAP" = "yes"; then
for i in /usr/local /usr; do
diff --git a/ext/ldap/config.w32 b/ext/ldap/config.w32
index b947aa5177..1cbbfb8ba8 100644
--- a/ext/ldap/config.w32
+++ b/ext/ldap/config.w32
@@ -17,7 +17,6 @@ if (PHP_LDAP != "no") {
AC_DEFINE('HAVE_LDAP_START_TLS_S', 1);
AC_DEFINE('HAVE_LDAP', 1);
AC_DEFINE('HAVE_LDAP_SASL', 1);
- AC_DEFINE('LDAP_DEPRECATED', 1);
AC_DEFINE('HAVE_LDAP_CONTROL_FIND', 1);
AC_DEFINE('HAVE_LDAP_PARSE_EXTENDED_RESULT', 1);
AC_DEFINE('HAVE_LDAP_EXTENDED_OPERATION_S', 1);
diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c
index c09dee52bf..815aecb5e1 100644
--- a/ext/ldap/ldap.c
+++ b/ext/ldap/ldap.c
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
@@ -35,6 +33,7 @@
#include "ext/standard/dl.h"
#include "php_ldap.h"
+#include "ldap_arginfo.h"
#ifdef PHP_WIN32
#include <string.h>
@@ -1004,7 +1003,7 @@ PHP_FUNCTION(ldap_connect)
}
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|slssl", &host, &hostlen, &port, &wallet, &walletlen, &walletpasswd, &walletpasswdlen, &authmode) != SUCCESS) {
- RETURN_FALSE;
+ return;
}
if (ZEND_NUM_ARGS() == 5) {
@@ -1012,7 +1011,7 @@ PHP_FUNCTION(ldap_connect)
}
#else
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|sl", &host, &hostlen, &port) != SUCCESS) {
- RETURN_FALSE;
+ return;
}
#endif
@@ -1125,11 +1124,11 @@ PHP_FUNCTION(ldap_bind)
int rc;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r|ss", &link, &ldap_bind_dn, &ldap_bind_dnlen, &ldap_bind_pw, &ldap_bind_pwlen) != SUCCESS) {
- RETURN_FALSE;
+ return;
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (ldap_bind_dn != NULL && memchr(ldap_bind_dn, '\0', ldap_bind_dnlen) != NULL) {
@@ -1182,11 +1181,11 @@ PHP_FUNCTION(ldap_bind_ext)
int rc;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r|ssa", &link, &ldap_bind_dn, &ldap_bind_dnlen, &ldap_bind_pw, &ldap_bind_pwlen, &serverctrls) != SUCCESS) {
- RETURN_FALSE;
+ return;
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (ldap_bind_dn != NULL && memchr(ldap_bind_dn, '\0', ldap_bind_dnlen) != NULL) {
@@ -1347,11 +1346,11 @@ PHP_FUNCTION(ldap_sasl_bind)
php_ldap_bictx *ctx;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r|sssssss", &link, &binddn, &dn_len, &passwd, &passwd_len, &sasl_mech, &mech_len, &sasl_realm, &realm_len, &sasl_authc_id, &authc_id_len, &sasl_authz_id, &authz_id_len, &props, &props_len) != SUCCESS) {
- RETURN_FALSE;
+ return;
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
ctx = _php_sasl_setdefs(ld->link, sasl_mech, sasl_realm, sasl_authc_id, passwd, sasl_authz_id);
@@ -1380,11 +1379,11 @@ PHP_FUNCTION(ldap_unbind)
ldap_linkdata *ld;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &link) != SUCCESS) {
- RETURN_FALSE;
+ return;
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
zend_list_close(Z_RES_P(link));
@@ -1715,7 +1714,7 @@ PHP_FUNCTION(ldap_free_result)
}
if ((ldap_result = (LDAPMessage *)zend_fetch_resource(Z_RES_P(result), "ldap result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
zend_list_close(Z_RES_P(result)); /* Delete list entry */
@@ -1736,11 +1735,11 @@ PHP_FUNCTION(ldap_count_entries)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((ldap_result = (LDAPMessage *)zend_fetch_resource(Z_RES_P(result), "ldap result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(ldap_count_entries(ld->link, ldap_result));
@@ -1761,11 +1760,11 @@ PHP_FUNCTION(ldap_first_entry)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((ldap_result = (LDAPMessage *)zend_fetch_resource(Z_RES_P(result), "ldap result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((entry = ldap_first_entry(ld->link, ldap_result)) == NULL) {
@@ -1794,10 +1793,10 @@ PHP_FUNCTION(ldap_next_entry)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((resultentry = (ldap_resultentry *)zend_fetch_resource(Z_RES_P(result_entry), "ldap result entry", le_result_entry)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((entry_next = ldap_next_entry(ld->link, resultentry->data)) == NULL) {
@@ -1833,10 +1832,10 @@ PHP_FUNCTION(ldap_get_entries)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((ldap_result = (LDAPMessage *)zend_fetch_resource(Z_RES_P(result), "ldap result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
ldap = ld->link;
@@ -1928,11 +1927,11 @@ PHP_FUNCTION(ldap_first_attribute)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((resultentry = (ldap_resultentry *)zend_fetch_resource(Z_RES_P(result_entry), "ldap result entry", le_result_entry)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((attribute = ldap_first_attribute(ld->link, resultentry->data, &resultentry->ber)) == NULL) {
@@ -1961,11 +1960,11 @@ PHP_FUNCTION(ldap_next_attribute)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((resultentry = (ldap_resultentry *)zend_fetch_resource(Z_RES_P(result_entry), "ldap result entry", le_result_entry)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (resultentry->ber == NULL) {
@@ -2008,11 +2007,11 @@ PHP_FUNCTION(ldap_get_attributes)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((resultentry = (ldap_resultentry *)zend_fetch_resource(Z_RES_P(result_entry), "ldap result entry", le_result_entry)) == NULL) {
- RETURN_FALSE;
+ return;
}
array_init(return_value);
@@ -2066,11 +2065,11 @@ PHP_FUNCTION(ldap_get_values_len)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((resultentry = (ldap_resultentry *)zend_fetch_resource(Z_RES_P(result_entry), "ldap result entry", le_result_entry)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((ldap_value_len = ldap_get_values_len(ld->link, resultentry->data, attr)) == NULL) {
@@ -2105,11 +2104,11 @@ PHP_FUNCTION(ldap_get_dn)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((resultentry = (ldap_resultentry *)zend_fetch_resource(Z_RES_P(result_entry), "ldap result entry", le_result_entry)) == NULL) {
- RETURN_FALSE;
+ return;
}
text = ldap_get_dn(ld->link, resultentry->data);
@@ -2209,7 +2208,7 @@ static void php_ldap_do_modify(INTERNAL_FUNCTION_PARAMETERS, int oper, int ext)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
num_attribs = zend_hash_num_elements(Z_ARRVAL_P(entry));
@@ -2449,7 +2448,7 @@ static void php_ldap_do_delete(INTERNAL_FUNCTION_PARAMETERS, int ext)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (serverctrls) {
@@ -2598,7 +2597,7 @@ PHP_FUNCTION(ldap_modify_batch)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
/* perform validation */
@@ -2881,7 +2880,7 @@ PHP_FUNCTION(ldap_errno)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(_get_lderrno(ld->link));
@@ -2915,7 +2914,7 @@ PHP_FUNCTION(ldap_error)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
ld_errno = _get_lderrno(ld->link);
@@ -2942,7 +2941,7 @@ PHP_FUNCTION(ldap_compare)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (serverctrls) {
@@ -2981,39 +2980,6 @@ cleanup:
}
/* }}} */
-/* {{{ proto bool ldap_sort(resource link, resource result, string sortfilter)
- Sort LDAP result entries */
-PHP_FUNCTION(ldap_sort)
-{
- zval *link, *result;
- ldap_linkdata *ld;
- char *sortfilter;
- size_t sflen;
- zend_resource *le;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "rrs", &link, &result, &sortfilter, &sflen) != SUCCESS) {
- RETURN_FALSE;
- }
-
- if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
- }
-
- le = Z_RES_P(result);
- if (le->type != le_result) {
- php_error_docref(NULL, E_WARNING, "Supplied resource is not a valid ldap result resource");
- RETURN_FALSE;
- }
-
- if (ldap_sort_entries(ld->link, (LDAPMessage **) &le->ptr, sflen ? sortfilter : NULL, strcmp) != LDAP_SUCCESS) {
- php_error_docref(NULL, E_WARNING, "%s", ldap_err2string(errno));
- RETURN_FALSE;
- }
-
- RETURN_TRUE;
-}
-/* }}} */
-
#if (LDAP_API_VERSION > 2000) || HAVE_ORALDAP
/* {{{ proto bool ldap_get_option(resource link, int option, mixed retval)
Get the current value of various session-wide parameters */
@@ -3028,7 +2994,7 @@ PHP_FUNCTION(ldap_get_option)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
switch (option) {
@@ -3200,7 +3166,7 @@ PHP_FUNCTION(ldap_set_option)
ldap = NULL;
} else {
if ((ld = (ldap_linkdata *)zend_fetch_resource_ex(link, "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
ldap = ld->link;
}
@@ -3311,7 +3277,7 @@ PHP_FUNCTION(ldap_set_option)
zend_string *val;
val = zval_get_string(newval);
if (EG(exception)) {
- RETURN_FALSE;
+ return;
}
if (ldap_set_option(ldap, option, ZSTR_VAL(val))) {
zend_string_release(val);
@@ -3383,11 +3349,11 @@ PHP_FUNCTION(ldap_parse_result)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((ldap_result = (LDAPMessage *)zend_fetch_resource(Z_RES_P(result), "ldap result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
rc = ldap_parse_result(ld->link, ldap_result, &lerrcode,
@@ -3458,11 +3424,11 @@ PHP_FUNCTION(ldap_parse_exop)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((ldap_result = (LDAPMessage *)zend_fetch_resource(Z_RES_P(result), "ldap result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
rc = ldap_parse_extended_result(ld->link, ldap_result,
@@ -3513,11 +3479,11 @@ PHP_FUNCTION(ldap_first_reference)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((ldap_result = (LDAPMessage *)zend_fetch_resource(Z_RES_P(result), "ldap result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((entry = ldap_first_reference(ld->link, ldap_result)) == NULL) {
@@ -3546,11 +3512,11 @@ PHP_FUNCTION(ldap_next_reference)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((resultentry = (ldap_resultentry *)zend_fetch_resource(Z_RES_P(result_entry), "ldap result entry", le_result_entry)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((entry_next = ldap_next_reference(ld->link, resultentry->data)) == NULL) {
@@ -3580,11 +3546,11 @@ PHP_FUNCTION(ldap_parse_reference)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((resultentry = (ldap_resultentry *)zend_fetch_resource(Z_RES_P(result_entry), "ldap result entry", le_result_entry)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (ldap_parse_reference(ld->link, resultentry->data, &lreferrals, NULL /* &serverctrls */, 0) != LDAP_SUCCESS) {
@@ -3628,7 +3594,7 @@ static void php_ldap_do_rename(INTERNAL_FUNCTION_PARAMETERS, int ext)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (newparent_len == 0) {
@@ -3721,7 +3687,7 @@ PHP_FUNCTION(ldap_start_tls)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (((rc = ldap_set_option(ld->link, LDAP_OPT_PROTOCOL_VERSION, &protocol)) != LDAP_SUCCESS) ||
@@ -3779,11 +3745,11 @@ PHP_FUNCTION(ldap_set_rebind_proc)
ldap_linkdata *ld;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rz", &link, &callback) != SUCCESS) {
- RETURN_FALSE;
+ return;
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (Z_TYPE_P(callback) == IS_STRING && Z_STRLEN_P(callback) == 0) {
@@ -3976,7 +3942,7 @@ PHP_FUNCTION(ldap_control_paged_result)
ldap = NULL;
} else {
if ((ld = (ldap_linkdata *)zend_fetch_resource_ex(link, "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
ldap = ld->link;
}
@@ -4065,11 +4031,11 @@ PHP_FUNCTION(ldap_control_paged_result_response)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((ldap_result = (LDAPMessage *)zend_fetch_resource(Z_RES_P(result), "ldap result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
rc = ldap_parse_result(ld->link,
@@ -4163,7 +4129,7 @@ PHP_FUNCTION(ldap_exop)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (reqdata) {
@@ -4269,7 +4235,7 @@ PHP_FUNCTION(ldap_exop_passwd)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
switch (myargcount) {
@@ -4354,7 +4320,7 @@ PHP_FUNCTION(ldap_exop_whoami)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
/* synchronous call */
@@ -4392,7 +4358,7 @@ PHP_FUNCTION(ldap_exop_refresh)
}
if ((ld = (ldap_linkdata *)zend_fetch_resource(Z_RES_P(link), "ldap link", le_link)) == NULL) {
- RETURN_FALSE;
+ return;
}
lttl = (ber_int_t)zval_get_long(ttl);
@@ -4410,390 +4376,6 @@ PHP_FUNCTION(ldap_exop_refresh)
/* }}} */
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_connect, 0, 0, 0)
- ZEND_ARG_INFO(0, hostname)
- ZEND_ARG_INFO(0, port)
-#ifdef HAVE_ORALDAP
- ZEND_ARG_INFO(0, wallet)
- ZEND_ARG_INFO(0, wallet_passwd)
- ZEND_ARG_INFO(0, authmode)
-#endif
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_resource, 0, 0, 1)
- ZEND_ARG_INFO(0, link_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_bind, 0, 0, 1)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, bind_rdn)
- ZEND_ARG_INFO(0, bind_password)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_bind_ext, 0, 0, 1)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, bind_rdn)
- ZEND_ARG_INFO(0, bind_password)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_LDAP_SASL
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_sasl_bind, 0, 0, 1)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, binddn)
- ZEND_ARG_INFO(0, password)
- ZEND_ARG_INFO(0, sasl_mech)
- ZEND_ARG_INFO(0, sasl_realm)
- ZEND_ARG_INFO(0, sasl_authz_id)
- ZEND_ARG_INFO(0, props)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_read, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, base_dn)
- ZEND_ARG_INFO(0, filter)
- ZEND_ARG_INFO(0, attributes)
- ZEND_ARG_INFO(0, attrsonly)
- ZEND_ARG_INFO(0, sizelimit)
- ZEND_ARG_INFO(0, timelimit)
- ZEND_ARG_INFO(0, deref)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_list, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, base_dn)
- ZEND_ARG_INFO(0, filter)
- ZEND_ARG_INFO(0, attributes)
- ZEND_ARG_INFO(0, attrsonly)
- ZEND_ARG_INFO(0, sizelimit)
- ZEND_ARG_INFO(0, timelimit)
- ZEND_ARG_INFO(0, deref)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_search, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, base_dn)
- ZEND_ARG_INFO(0, filter)
- ZEND_ARG_INFO(0, attributes)
- ZEND_ARG_INFO(0, attrsonly)
- ZEND_ARG_INFO(0, sizelimit)
- ZEND_ARG_INFO(0, timelimit)
- ZEND_ARG_INFO(0, deref)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_count_entries, 0, 0, 2)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, result_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_first_entry, 0, 0, 2)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, result_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_next_entry, 0, 0, 2)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, result_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_get_entries, 0, 0, 2)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, result_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_first_attribute, 0, 0, 2)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, result_entry_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_next_attribute, 0, 0, 2)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, result_entry_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_get_attributes, 0, 0, 2)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, result_entry_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_get_values, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, result_entry_identifier)
- ZEND_ARG_INFO(0, attribute)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_get_values_len, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, result_entry_identifier)
- ZEND_ARG_INFO(0, attribute)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_get_dn, 0, 0, 2)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, result_entry_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_explode_dn, 0, 0, 2)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, with_attrib)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_dn2ufn, 0, 0, 1)
- ZEND_ARG_INFO(0, dn)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_add, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, entry)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_add_ext, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, entry)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_delete, 0, 0, 2)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_delete_ext, 0, 0, 2)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_modify, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, entry)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_modify_batch, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_ARRAY_INFO(0, modifications_info, 0)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_mod_add, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, entry)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_mod_add_ext, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, entry)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_mod_replace, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, entry)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_mod_replace_ext, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, entry)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_mod_del, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, entry)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_mod_del_ext, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, entry)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_err2str, 0, 0, 1)
- ZEND_ARG_INFO(0, errno)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_compare, 0, 0, 4)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, attribute)
- ZEND_ARG_INFO(0, value)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_sort, 0, 0, 3)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, result)
- ZEND_ARG_INFO(0, sortfilter)
-ZEND_END_ARG_INFO()
-
-#ifdef LDAP_CONTROL_PAGEDRESULTS
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_control_paged_result, 0, 0, 2)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, pagesize)
- ZEND_ARG_INFO(0, iscritical)
- ZEND_ARG_INFO(0, cookie)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_control_paged_result_response, 0, 0, 2)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, result)
- ZEND_ARG_INFO(1, cookie)
- ZEND_ARG_INFO(1, estimated)
-ZEND_END_ARG_INFO();
-#endif
-
-#if (LDAP_API_VERSION > 2000) || HAVE_ORALDAP
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_rename, 0, 0, 5)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, newrdn)
- ZEND_ARG_INFO(0, newparent)
- ZEND_ARG_INFO(0, deleteoldrdn)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_rename_ext, 0, 0, 5)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, newrdn)
- ZEND_ARG_INFO(0, newparent)
- ZEND_ARG_INFO(0, deleteoldrdn)
- ZEND_ARG_INFO(0, servercontrols)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_get_option, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, option)
- ZEND_ARG_INFO(1, retval)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_set_option, 0, 0, 3)
- ZEND_ARG_INFO(0, link_identifier)
- ZEND_ARG_INFO(0, option)
- ZEND_ARG_INFO(0, newval)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_first_reference, 0, 0, 2)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, result)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_next_reference, 0, 0, 2)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, entry)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_LDAP_PARSE_REFERENCE
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_parse_reference, 0, 0, 3)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, entry)
- ZEND_ARG_INFO(1, referrals)
-ZEND_END_ARG_INFO()
-#endif
-
-
-#ifdef HAVE_LDAP_PARSE_RESULT
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_parse_result, 0, 0, 3)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, result)
- ZEND_ARG_INFO(1, errcode)
- ZEND_ARG_INFO(1, matcheddn)
- ZEND_ARG_INFO(1, errmsg)
- ZEND_ARG_INFO(1, referrals)
- ZEND_ARG_INFO(1, serverctrls)
-ZEND_END_ARG_INFO()
-#endif
-#endif
-
-#if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC)
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_set_rebind_proc, 0, 0, 2)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, callback)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_escape, 0, 0, 1)
- ZEND_ARG_INFO(0, value)
- ZEND_ARG_INFO(0, ignore)
- ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-#ifdef STR_TRANSLATION
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_t61_to_8859, 0, 0, 1)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_8859_to_t61, 0, 0, 1)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_LDAP_EXTENDED_OPERATION_S
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_exop, 0, 0, 2)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, reqoid)
- ZEND_ARG_INFO(0, reqdata)
- ZEND_ARG_INFO(0, servercontrols)
- ZEND_ARG_INFO(1, retdata)
- ZEND_ARG_INFO(1, retoid)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_LDAP_PASSWD
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_exop_passwd, 0, 0, 1)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, user)
- ZEND_ARG_INFO(0, oldpw)
- ZEND_ARG_INFO(0, newpw)
- ZEND_ARG_INFO(1, serverctrls)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_LDAP_WHOAMI_S
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_exop_whoami, 0, 0, 1)
- ZEND_ARG_INFO(0, link)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_LDAP_REFRESH_S
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_exop_refresh, 0, 0, 3)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, dn)
- ZEND_ARG_INFO(0, ttl)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_LDAP_PARSE_EXTENDED_RESULT
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_parse_exop, 0, 0, 4)
- ZEND_ARG_INFO(0, link)
- ZEND_ARG_INFO(0, result)
- ZEND_ARG_INFO(1, retdata)
- ZEND_ARG_INFO(1, retoid)
-ZEND_END_ARG_INFO()
-#endif
-/* }}} */
-
/*
This is just a small subset of the functionality provided by the LDAP library. All the
operations are synchronous. Referrals are not handled automatically.
@@ -4802,17 +4384,17 @@ ZEND_END_ARG_INFO()
*/
static const zend_function_entry ldap_functions[] = {
PHP_FE(ldap_connect, arginfo_ldap_connect)
- PHP_FALIAS(ldap_close, ldap_unbind, arginfo_ldap_resource)
+ PHP_FALIAS(ldap_close, ldap_unbind, arginfo_ldap_close)
PHP_FE(ldap_bind, arginfo_ldap_bind)
PHP_FE(ldap_bind_ext, arginfo_ldap_bind_ext)
#ifdef HAVE_LDAP_SASL
PHP_FE(ldap_sasl_bind, arginfo_ldap_sasl_bind)
#endif
- PHP_FE(ldap_unbind, arginfo_ldap_resource)
+ PHP_FE(ldap_unbind, arginfo_ldap_unbind)
PHP_FE(ldap_read, arginfo_ldap_read)
PHP_FE(ldap_list, arginfo_ldap_list)
PHP_FE(ldap_search, arginfo_ldap_search)
- PHP_FE(ldap_free_result, arginfo_ldap_resource)
+ PHP_FE(ldap_free_result, arginfo_ldap_free_result)
PHP_FE(ldap_count_entries, arginfo_ldap_count_entries)
PHP_FE(ldap_first_entry, arginfo_ldap_first_entry)
PHP_FE(ldap_next_entry, arginfo_ldap_next_entry)
@@ -4841,11 +4423,10 @@ static const zend_function_entry ldap_functions[] = {
PHP_FE(ldap_mod_del_ext, arginfo_ldap_mod_del_ext)
/* end gjt mod */
- PHP_FE(ldap_errno, arginfo_ldap_resource)
+ PHP_FE(ldap_errno, arginfo_ldap_errno)
PHP_FE(ldap_err2str, arginfo_ldap_err2str)
- PHP_FE(ldap_error, arginfo_ldap_resource)
+ PHP_FE(ldap_error, arginfo_ldap_error)
PHP_FE(ldap_compare, arginfo_ldap_compare)
- PHP_DEP_FE(ldap_sort, arginfo_ldap_sort)
#if (LDAP_API_VERSION > 2000) || HAVE_ORALDAP
PHP_FE(ldap_rename, arginfo_ldap_rename)
@@ -4861,7 +4442,7 @@ static const zend_function_entry ldap_functions[] = {
PHP_FE(ldap_parse_result, arginfo_ldap_parse_result)
#endif
#ifdef HAVE_LDAP_START_TLS_S
- PHP_FE(ldap_start_tls, arginfo_ldap_resource)
+ PHP_FE(ldap_start_tls, arginfo_ldap_start_tls)
#endif
#ifdef HAVE_LDAP_EXTENDED_OPERATION_S
PHP_FE(ldap_exop, arginfo_ldap_exop)
diff --git a/ext/ldap/ldap.stub.php b/ext/ldap/ldap.stub.php
new file mode 100644
index 0000000000..236b69e825
--- /dev/null
+++ b/ext/ldap/ldap.stub.php
@@ -0,0 +1,370 @@
+<?php
+
+//TODO: missing arginfo functions defined in C using
+
+#ifdef HAVE_ORALDAP
+/** @return resource|false */
+function ldap_connect(string $hostname = UNKNOWN, int $port = 389, string $wallet = UNKNOWN, string $wallet_passwd = UNKNOWN, int $authmode = GSLC_SSL_NO_AUTH) {}
+#else
+/** @return resource|false */
+function ldap_connect(string $hostname = UNKNOWN, int $port = 389) {}
+#endif
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_unbind($link_identifier): bool {}
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_close($link_identifier): bool {}
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_bind($link_identifier, string $bind_rdn = UNKNOWN, string $bind_password = UNKNOWN): bool {}
+
+/**
+ * @param resource $link_identifier
+ * @return resource|false
+ */
+function ldap_bind_ext($link_identifier, string $bind_rdn = UNKNOWN, string $bind_password = UNKNOWN, array $servercontrols = []) {}
+
+#ifdef HAVE_LDAP_SASL
+/**
+ * @param resource $link
+ */
+function ldap_sasl_bind($link, string $binddn = UNKNOWN, string $password = UNKNOWN, string $sasl_mech = UNKNOWN, string $sasl_realm = UNKNOWN, string $sasl_authc_id = UNKNOWN, string $sasl_authz_id = UNKNOWN, string $props = UNKNOWN): bool {}
+#endif
+
+/**
+ * @param resource|array $link_identifier
+ * @param string|array $base_dn
+ * @param string|array $filter
+ * @return resource|false
+ */
+function ldap_read($link_identifier, $base_dn, $filter, array $attributes = [], int $attrsonly = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $servercontrols = []) {}
+
+/**
+ * @param resource|array $link_identifier
+ * @param string|array $base_dn
+ * @param string|array $filter
+ * @return resource|false
+ */
+function ldap_list($link_identifier, $base_dn, $filter, array $attributes = [], int $attrsonly = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $servercontrols = []) {}
+
+/**
+ * @param resource|array $link_identifier
+ * @param string|array $base_dn
+ * @param string|array $filter
+ * @return resource|false
+ */
+function ldap_search($link_identifier, $base_dn, $filter, array $attributes = [], int $attrsonly = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $servercontrols = []) {}
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_free_result($link_identifier): bool {}
+
+
+/**
+ * @param resource $link_identifier
+ * @param resource $result_identifier
+ */
+function ldap_count_entries($link_identifier, $result_identifier): int {}
+
+/**
+ * @param resource $link_identifier
+ * @param resource $result_identifier
+ * @return resource|false
+ */
+function ldap_first_entry($link_identifier, $result_identifier) {}
+
+/**
+ * @param resource $link_identifier
+ * @param resource $result_identifier
+ * @return resource|false
+ */
+function ldap_next_entry($link_identifier, $result_identifier) {}
+
+/**
+ * @param resource $link_identifier
+ * @param resource $result_identifier
+ * @return array|false
+ */
+function ldap_get_entries($link_identifier, $result_identifier) {}
+
+/**
+ * @param resource $link_identifier
+ * @param resource $result_entry_identifier
+ * @return string|false
+ */
+function ldap_first_attribute($link_identifier, $result_entry_identifier, int $dummy_ber = UNKNOWN) {}
+
+/**
+ * @param resource $link_identifier
+ * @param resource $result_entry_identifier
+ * @return string|false
+ */
+function ldap_next_attribute($link_identifier, $result_entry_identifier, int $dummy_ber = UNKNOWN) {}
+
+/**
+ * @param resource $link_identifier
+ * @param resource $result_entry_identifier
+ */
+function ldap_get_attributes($link_identifier, $result_entry_identifier): array {}
+
+/**
+ * @param resource $link_identifier
+ * @param resource $result_entry_identifier
+ * @return array|false
+ */
+function ldap_get_values($link_identifier, $result_entry_identifier, string $attribute) {}
+
+/**
+ * @param resource $link_identifier
+ * @param resource $result_entry_identifier
+ * @return array|false
+ */
+function ldap_get_values_len($link_identifier, $result_entry_identifier, string $attribute) {}
+
+/**
+ * @param resource $link_identifier
+ * @param resource $result_entry_identifier
+ * @return string|false
+ */
+function ldap_get_dn($link_identifier, $result_entry_identifier) {}
+
+/**
+ * @return array|false
+ */
+function ldap_explode_dn(string $dn, int $with_attrib) {}
+
+/**
+ * @return string|false
+ */
+function ldap_dn2ufn(string $dn) {}
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_add($link_identifier, string $dn, array $entry, array $servercontrols = []): bool {}
+
+/**
+ * @param resource $link_identifier
+ * @return resource|false
+ */
+function ldap_add_ext($link_identifier, string $dn, array $entry, array $servercontrols = []) {}
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_delete($link_identifier, string $dn, array $servercontrols = []): bool {}
+
+/**
+ * @param resource $link_identifier
+ * @return resource|false
+ */
+function ldap_delete_ext($link_identifier, string $dn, array $servercontrols = []) {}
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_modify($link_identifier, string $dn, array $entry, array $servercontrols = []): bool {}
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_modify_batch($link_identifier, string $dn, array $modifications_info, array $servercontrols = []): bool {}
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_mod_add($link_identifier, string $dn, array $entry, array $servercontrols = []): bool {}
+
+/**
+ * @param resource $link_identifier
+ * @return resource|false
+ */
+function ldap_mod_add_ext($link_identifier, string $dn, array $entry, array $servercontrols = []) {}
+
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_mod_replace($link_identifier, string $dn, array $entry, array $servercontrols = []): bool {}
+
+/**
+ * @param resource $link_identifier
+ * @return resource|false
+ */
+function ldap_mod_replace_ext($link_identifier, string $dn, array $entry, array $servercontrols = []) {}
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_mod_del($link_identifier, string $dn, array $entry, array $servercontrols = []): bool {}
+
+/**
+ * @param resource $link_identifier
+ * @return resource|false
+ */
+function ldap_mod_del_ext($link_identifier, string $dn, array $entry, array $servercontrols = []) {}
+
+/**
+ * @param resource $link
+ */
+function ldap_errno($link): int {}
+
+/**
+ * @param resource $link
+ */
+function ldap_error($link): string {}
+
+function ldap_err2str(int $errno): string {}
+
+/**
+ * @param resource $link_identifier
+ * @return bool|int
+ */
+function ldap_compare($link_identifier, string $dn, string $attribute, string $value, array $servercontrols = []) {}
+
+
+#ifdef LDAP_CONTROL_PAGEDRESULTS
+/**
+ * @param resource $link
+ */
+function ldap_control_paged_result($link, int $pagesize, bool $iscritical = false, string $cookie = ''): bool {}
+
+/**
+ * @param resource $link
+ * @param resource $result
+ */
+function ldap_control_paged_result_response($link, $result, &$cookie = null, &$estimated = null): bool {}
+#endif
+
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP
+/**
+ * @param resource $link_identifier
+ */
+function ldap_rename($link_identifier, string $dn, string $newrdn, string $newparent, bool $deleteoldrdn, array $servercontrols = []): bool {}
+
+/**
+ * @param resource $link_identifier
+ * @return resource|false
+ */
+function ldap_rename_ext($link_identifier, string $dn, string $newrdn, string $newparent, bool $deleteoldrdn, array $servercontrols = []) {}
+
+
+/**
+ * @param resource $link_identifier
+ */
+function ldap_get_option($link_identifier, int $option, &$retval = null): bool {}
+
+/**
+ * @param ?resource $link_identifier
+ */
+function ldap_set_option($link_identifier, int $option, $newval): bool {}
+
+/**
+ * @param resource $link
+ * @param resource $result
+ * @return resource|false
+ */
+function ldap_first_reference($link, $result) {}
+
+/**
+ * @param resource $link
+ * @param resource $entry
+ * @return resource|false
+ */
+function ldap_next_reference($link, $entry) {}
+
+#ifdef HAVE_LDAP_PARSE_REFERENCE
+/**
+ * @param resource $link
+ * @param resource $entry
+ */
+function ldap_parse_reference($link, $entry, &$referrals): bool {}
+#endif
+
+#ifdef HAVE_LDAP_PARSE_RESULT
+/**
+ * @param resource $link
+ * @param resource $result
+ */
+function ldap_parse_result($link, $result, &$errcode, &$matcheddn = null, &$errmsg = null, &$referrals = null, &$serverctrls = null): bool {}
+#endif
+#endif
+
+#if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC)
+/**
+ * @param resource $link
+ * @param callable $callback
+ */
+function ldap_set_rebind_proc($link, $callback): bool {}
+#endif
+
+#ifdef HAVE_LDAP_START_TLS_S
+function ldap_start_tls($link_identifier): bool {}
+#endif
+
+function ldap_escape(string $value, string $ignore = '', int $flags = 0): string {}
+
+#ifdef STR_TRANSLATION
+/**
+ * @return string|false
+ */
+function ldap_t61_to_8859(string $value) {}
+
+/**
+ * @return string|false
+ */
+function ldap_8859_to_t61(string $value) {}
+#endif
+
+
+#ifdef HAVE_LDAP_EXTENDED_OPERATION_S
+/**
+ * @param resource $link
+ * @return resource|bool
+ */
+function ldap_exop($link, string $reqoid, ?string $reqdata = null, ?array $servercontrols = [], &$retdata = null, &$retoid = null) {}
+#endif
+
+#ifdef HAVE_LDAP_PASSWD
+/**
+ * @param resource $link
+ * @return string|bool
+ */
+function ldap_exop_passwd($link, string $user = '', string $oldpw = '', string $newpw = '', &$serverctrls = null) {}
+#endif
+
+
+#ifdef HAVE_LDAP_WHOAMI_S
+/**
+ * @param resource $link
+ * @return string|bool
+ */
+function ldap_exop_whoami($link) {}
+#endif
+
+
+#ifdef HAVE_LDAP_REFRESH_S
+/**
+ * @param resource $link
+ * @return int|false
+ */
+function ldap_exop_refresh($link, string $dn, $ttl) {}
+#endif
+
+
+#ifdef HAVE_LDAP_PARSE_EXTENDED_RESULT
+/**
+ * @param resource $link
+ * @param resource $result
+ */
+function ldap_parse_exop($link, $result, &$retdata = null, &$retoid = null): bool {}
+#endif
+
diff --git a/ext/ldap/ldap_arginfo.h b/ext/ldap/ldap_arginfo.h
new file mode 100644
index 0000000000..b5060e3c10
--- /dev/null
+++ b/ext/ldap/ldap_arginfo.h
@@ -0,0 +1,347 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+#if defined(HAVE_ORALDAP)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_connect, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, hostname, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, port, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, wallet, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, wallet_passwd, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, authmode, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if !(defined(HAVE_ORALDAP))
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_connect, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, hostname, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, port, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_unbind, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ZEND_END_ARG_INFO()
+
+#define arginfo_ldap_close arginfo_ldap_unbind
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_bind, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, bind_rdn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, bind_password, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_bind_ext, 0, 0, 1)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, bind_rdn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, bind_password, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+#if defined(HAVE_LDAP_SASL)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_sasl_bind, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_TYPE_INFO(0, binddn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, sasl_mech, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, sasl_realm, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, sasl_authc_id, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, sasl_authz_id, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, props, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_read, 0, 0, 3)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_INFO(0, base_dn)
+ ZEND_ARG_INFO(0, filter)
+ ZEND_ARG_TYPE_INFO(0, attributes, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_INFO(0, attrsonly, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, sizelimit, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, timelimit, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, deref, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_ldap_list arginfo_ldap_read
+
+#define arginfo_ldap_search arginfo_ldap_read
+
+#define arginfo_ldap_free_result arginfo_ldap_unbind
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_count_entries, 0, 2, IS_LONG, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_INFO(0, result_identifier)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_first_entry, 0, 0, 2)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_INFO(0, result_identifier)
+ZEND_END_ARG_INFO()
+
+#define arginfo_ldap_next_entry arginfo_ldap_first_entry
+
+#define arginfo_ldap_get_entries arginfo_ldap_first_entry
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_first_attribute, 0, 0, 2)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_INFO(0, result_entry_identifier)
+ ZEND_ARG_TYPE_INFO(0, dummy_ber, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_ldap_next_attribute arginfo_ldap_first_attribute
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_get_attributes, 0, 2, IS_ARRAY, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_INFO(0, result_entry_identifier)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_get_values, 0, 0, 3)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_INFO(0, result_entry_identifier)
+ ZEND_ARG_TYPE_INFO(0, attribute, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_ldap_get_values_len arginfo_ldap_get_values
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_get_dn, 0, 0, 2)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_INFO(0, result_entry_identifier)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_explode_dn, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, with_attrib, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_dn2ufn, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_add, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, entry, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_add_ext, 0, 0, 3)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, entry, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_delete, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_delete_ext, 0, 0, 2)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_ldap_modify arginfo_ldap_add
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_modify_batch, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, modifications_info, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_ldap_mod_add arginfo_ldap_add
+
+#define arginfo_ldap_mod_add_ext arginfo_ldap_add_ext
+
+#define arginfo_ldap_mod_replace arginfo_ldap_add
+
+#define arginfo_ldap_mod_replace_ext arginfo_ldap_add_ext
+
+#define arginfo_ldap_mod_del arginfo_ldap_add
+
+#define arginfo_ldap_mod_del_ext arginfo_ldap_add_ext
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_errno, 0, 1, IS_LONG, 0)
+ ZEND_ARG_INFO(0, link)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_error, 0, 1, IS_STRING, 0)
+ ZEND_ARG_INFO(0, link)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_err2str, 0, 1, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, errno, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_compare, 0, 0, 4)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, attribute, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+#if defined(LDAP_CONTROL_PAGEDRESULTS)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_control_paged_result, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_TYPE_INFO(0, pagesize, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, iscritical, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO(0, cookie, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(LDAP_CONTROL_PAGEDRESULTS)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_control_paged_result_response, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_INFO(0, result)
+ ZEND_ARG_INFO(1, cookie)
+ ZEND_ARG_INFO(1, estimated)
+ZEND_END_ARG_INFO()
+#endif
+
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_rename, 0, 5, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, newrdn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, newparent, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, deleteoldrdn, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_rename_ext, 0, 0, 5)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, newrdn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, newparent, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, deleteoldrdn, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_get_option, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+ ZEND_ARG_INFO(1, retval)
+ZEND_END_ARG_INFO()
+#endif
+
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_set_option, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+ ZEND_ARG_INFO(0, newval)
+ZEND_END_ARG_INFO()
+#endif
+
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_first_reference, 0, 0, 2)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_INFO(0, result)
+ZEND_END_ARG_INFO()
+#endif
+
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_next_reference, 0, 0, 2)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_INFO(0, entry)
+ZEND_END_ARG_INFO()
+#endif
+
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP && defined(HAVE_LDAP_PARSE_REFERENCE)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_parse_reference, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_INFO(0, entry)
+ ZEND_ARG_INFO(1, referrals)
+ZEND_END_ARG_INFO()
+#endif
+
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP && defined(HAVE_LDAP_PARSE_RESULT)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_parse_result, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_INFO(0, result)
+ ZEND_ARG_INFO(1, errcode)
+ ZEND_ARG_INFO(1, matcheddn)
+ ZEND_ARG_INFO(1, errmsg)
+ ZEND_ARG_INFO(1, referrals)
+ ZEND_ARG_INFO(1, serverctrls)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_set_rebind_proc, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_INFO(0, callback)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_LDAP_START_TLS_S)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_start_tls, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link_identifier)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_escape, 0, 1, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, ignore, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#if defined(STR_TRANSLATION)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_t61_to_8859, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(STR_TRANSLATION)
+#define arginfo_ldap_8859_to_t61 arginfo_ldap_t61_to_8859
+#endif
+
+#if defined(HAVE_LDAP_EXTENDED_OPERATION_S)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_exop, 0, 0, 2)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_TYPE_INFO(0, reqoid, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, reqdata, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, servercontrols, IS_ARRAY, 1)
+ ZEND_ARG_INFO(1, retdata)
+ ZEND_ARG_INFO(1, retoid)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_LDAP_PASSWD)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_exop_passwd, 0, 0, 1)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_TYPE_INFO(0, user, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, oldpw, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, newpw, IS_STRING, 0)
+ ZEND_ARG_INFO(1, serverctrls)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_LDAP_WHOAMI_S)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_exop_whoami, 0, 0, 1)
+ ZEND_ARG_INFO(0, link)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_LDAP_REFRESH_S)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_exop_refresh, 0, 0, 3)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_TYPE_INFO(0, dn, IS_STRING, 0)
+ ZEND_ARG_INFO(0, ttl)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_LDAP_PARSE_EXTENDED_RESULT)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ldap_parse_exop, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, link)
+ ZEND_ARG_INFO(0, result)
+ ZEND_ARG_INFO(1, retdata)
+ ZEND_ARG_INFO(1, retoid)
+ZEND_END_ARG_INFO()
+#endif
diff --git a/ext/ldap/php_ldap.h b/ext/ldap/php_ldap.h
index f777fe9a5f..fcda55e92f 100644
--- a/ext/ldap/php_ldap.h
+++ b/ext/ldap/php_ldap.h
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
diff --git a/ext/ldap/tests/bug48696.phpt b/ext/ldap/tests/bug48696.phpt
deleted file mode 100644
index 8d25b67236..0000000000
--- a/ext/ldap/tests/bug48696.phpt
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-Bug #48696 (ldap_read() segfaults with invalid parameters)
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifbindfailure.inc');
-?>
---FILE--
-<?php
-
-ldap_read(1,1,1);
-
-?>
---EXPECTF--
-Warning: ldap_read(): supplied argument is not a valid ldap link resource in %s on line %d
diff --git a/ext/ldap/tests/ldap_add_error.phpt b/ext/ldap/tests/ldap_add_error.phpt
index 533496a4b2..14476bb876 100644
--- a/ext/ldap/tests/ldap_add_error.phpt
+++ b/ext/ldap/tests/ldap_add_error.phpt
@@ -12,14 +12,6 @@ require "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-// Too few parameters
-var_dump(ldap_add());
-var_dump(ldap_add($link));
-var_dump(ldap_add($link, "$base"));
-
-// Too many parameters
-var_dump(ldap_add($link, "$base", array(), [], "Additional data"));
-
var_dump(ldap_add($link, "$base", array()));
// Invalid DN
@@ -97,18 +89,6 @@ $link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
ldap_delete($link, "dc=my-domain,$base");
?>
--EXPECTF--
-Warning: ldap_add() expects at least 3 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_add() expects at least 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_add() expects at least 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_add() expects at most 4 parameters, 5 given in %s on line %d
-NULL
-
Warning: ldap_add(): Add: Protocol error in %s on line %d
bool(false)
diff --git a/ext/ldap/tests/ldap_bind_error.phpt b/ext/ldap/tests/ldap_bind_error.phpt
index a569ce6922..ee16908b57 100644
--- a/ext/ldap/tests/ldap_bind_error.phpt
+++ b/ext/ldap/tests/ldap_bind_error.phpt
@@ -13,9 +13,6 @@ require "connect.inc";
$link = ldap_connect($host, $port);
ldap_set_option($link, LDAP_OPT_PROTOCOL_VERSION, $protocol_version);
-// Invalid parameter count
-var_dump(ldap_bind($link, $user, $passwd, null));
-
// Invalid password
var_dump(ldap_bind($link, $user, "ThisIsNotCorrect$passwd"));
@@ -24,9 +21,6 @@ var_dump(ldap_bind($link, "unexistingProperty=weirdValue,$user", $passwd));
?>
===DONE===
--EXPECTF--
-Warning: ldap_bind() expects at most 3 parameters, 4 given in %s on line %d
-bool(false)
-
Warning: ldap_bind(): Unable to bind to server: Invalid credentials in %s on line %d
bool(false)
diff --git a/ext/ldap/tests/ldap_compare_error.phpt b/ext/ldap/tests/ldap_compare_error.phpt
index 120dfab059..50e93d660f 100644
--- a/ext/ldap/tests/ldap_compare_error.phpt
+++ b/ext/ldap/tests/ldap_compare_error.phpt
@@ -13,14 +13,6 @@ require "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
insert_dummy_data($link, $base);
-// Too few parameters
-var_dump(ldap_compare($link));
-var_dump(ldap_compare($link, $link));
-var_dump(ldap_compare($link, $link, $link));
-
-// Too many parameters
-var_dump(ldap_compare($link, $link, $link, $link, [], "Additional data"));
-
var_dump(
ldap_compare($link, "cn=userNotAvailable,$base", "sn", "testSN1"),
ldap_error($link),
@@ -36,18 +28,6 @@ $link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
remove_dummy_data($link, $base);
?>
--EXPECTF--
-Warning: ldap_compare() expects at least 4 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_compare() expects at least 4 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_compare() expects at least 4 parameters, 3 given in %s on line %d
-NULL
-
-Warning: ldap_compare() expects at most 5 parameters, 6 given in %s on line %d
-NULL
-
Warning: ldap_compare(): Compare: No such object in %s on line %d
int(-1)
string(14) "No such object"
diff --git a/ext/ldap/tests/ldap_connect_error.phpt b/ext/ldap/tests/ldap_connect_error.phpt
index b93375c39e..24561e1576 100644
--- a/ext/ldap/tests/ldap_connect_error.phpt
+++ b/ext/ldap/tests/ldap_connect_error.phpt
@@ -12,7 +12,6 @@ ldap.max_links=1
require "connect.inc";
// too many arguments
-var_dump(ldap_connect(null, null, null));
var_dump(ldap_connect("ldap://$host:$port/$base"));
$links = array();
@@ -21,9 +20,6 @@ $links[1] = ldap_connect($host, $port);
?>
===DONE===
--EXPECTF--
-Warning: ldap_connect() expects at most 2 parameters, 3 given in %s on line %d
-bool(false)
-
Warning: ldap_connect(): Could not create session handle: %s in %s on line %d
bool(false)
diff --git a/ext/ldap/tests/ldap_count_entries_error.phpt b/ext/ldap/tests/ldap_count_entries_error.phpt
deleted file mode 100644
index 552625a7eb..0000000000
--- a/ext/ldap/tests/ldap_count_entries_error.phpt
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-ldap_count_entries() - Testing counting LDAP entries that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-var_dump(ldap_count_entries($link));
-var_dump(ldap_count_entries($link, $link));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_count_entries() expects exactly 2 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_count_entries(): supplied resource is not a valid ldap result resource in %s on line %d
-bool(false)
-===DONE===
diff --git a/ext/ldap/tests/ldap_delete_error.phpt b/ext/ldap/tests/ldap_delete_error.phpt
index a34d7b39fe..30a4c2e277 100644
--- a/ext/ldap/tests/ldap_delete_error.phpt
+++ b/ext/ldap/tests/ldap_delete_error.phpt
@@ -12,13 +12,6 @@ require "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-// Too few parameters
-var_dump(ldap_delete());
-var_dump(ldap_delete($link));
-
-// Too many parameters
-var_dump(ldap_delete($link, "$base", [], "Additional data"));
-
// Invalid DN
var_dump(
ldap_delete($link, "weirdAttribute=val"),
@@ -41,15 +34,6 @@ require "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
?>
--EXPECTF--
-Warning: ldap_delete() expects at least 2 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_delete() expects at least 2 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_delete() expects at most 3 parameters, 4 given in %s on line %d
-NULL
-
Warning: ldap_delete(): Delete: Invalid DN syntax in %s on line %d
bool(false)
string(17) "Invalid DN syntax"
diff --git a/ext/ldap/tests/ldap_dn2ufn.phpt b/ext/ldap/tests/ldap_dn2ufn.phpt
index 8082e97809..54c90658cf 100644
--- a/ext/ldap/tests/ldap_dn2ufn.phpt
+++ b/ext/ldap/tests/ldap_dn2ufn.phpt
@@ -14,20 +14,15 @@ var_dump(ldap_dn2ufn("cn=bob,ou=users,dc=example,dc=com"));
/* Convert DN with < > characters */
var_dump(ldap_dn2ufn("cn=<bob>,dc=example,dc=com"));
-/* Too many parameters */
-ldap_dn2ufn("cn=bob,dc=example,dc=com", 1);
-
/* Bad DN value */
var_dump(ldap_dn2ufn("bob,dc=example,dc=com"));
echo "Done\n";
?>
---EXPECTF--
+--EXPECT--
string(16) "bob, example.com"
string(23) "bob, users, example.com"
bool(false)
-
-Warning: ldap_dn2ufn() expects exactly 1 parameter, 2 given in %s on line %d
bool(false)
Done
diff --git a/ext/ldap/tests/ldap_err2str_error.phpt b/ext/ldap/tests/ldap_err2str_error.phpt
deleted file mode 100644
index 0963ac4101..0000000000
--- a/ext/ldap/tests/ldap_err2str_error.phpt
+++ /dev/null
@@ -1,28 +0,0 @@
---TEST--
-ldap_err2str() - Incorrect usage of number to string conversion
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-// Too few args
-var_dump(ldap_err2str());
-
-// Too many args
-var_dump(ldap_err2str(1, "Additional data"));
-
-var_dump(ldap_err2str("weird"));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_err2str() expects exactly 1 parameter, 0 given in %s on line %d
-NULL
-
-Warning: ldap_err2str() expects exactly 1 parameter, 2 given in %s on line %d
-NULL
-
-Warning: ldap_err2str() expects parameter 1 to be int, string given in %s on line %d
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_errno_error.phpt b/ext/ldap/tests/ldap_errno_error.phpt
deleted file mode 100644
index a05876c88e..0000000000
--- a/ext/ldap/tests/ldap_errno_error.phpt
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-ldap_errno() - ldap_errno() operation that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-// Too few parameters
-var_dump(ldap_errno());
-
-// Too many parameters
-var_dump(ldap_errno(null, null));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_errno() expects exactly 1 parameter, 0 given in %s on line %d
-NULL
-
-Warning: ldap_errno() expects exactly 1 parameter, 2 given in %s on line %d
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_error_error.phpt b/ext/ldap/tests/ldap_error_error.phpt
deleted file mode 100644
index e74eacf008..0000000000
--- a/ext/ldap/tests/ldap_error_error.phpt
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-ldap_error() - ldap_error() operation that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-// Too few parameters
-var_dump(ldap_error());
-
-// Too many parameters
-var_dump(ldap_error(null, null));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_error() expects exactly 1 parameter, 0 given in %s on line %d
-NULL
-
-Warning: ldap_error() expects exactly 1 parameter, 2 given in %s on line %d
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_explode_dn.phpt b/ext/ldap/tests/ldap_explode_dn.phpt
index 2337ac9eff..aa8ab10088 100644
--- a/ext/ldap/tests/ldap_explode_dn.phpt
+++ b/ext/ldap/tests/ldap_explode_dn.phpt
@@ -23,12 +23,6 @@ var_dump(ldap_explode_dn("cn=<bob>,dc=example,dc=com", 0));
/* Explode without attributes and < > characters */
var_dump(ldap_explode_dn("cn=<bob>,dc=example,dc=com", 1));
-/* Too few parameters */
-ldap_explode_dn("cn=bob,dc=example,dc=com");
-
-/* Too many parameters */
-ldap_explode_dn("cn=bob,dc=example,dc=com", 1, 1);
-
/* Bad DN value with attributes */
var_dump(ldap_explode_dn("bob,dc=example,dc=com", 0));
@@ -85,10 +79,6 @@ array(5) {
}
bool(false)
bool(false)
-
-Warning: ldap_explode_dn() expects exactly 2 parameters, 1 given in %s on line %d
-
-Warning: ldap_explode_dn() expects exactly 2 parameters, 3 given in %s on line %d
bool(false)
bool(false)
Done
diff --git a/ext/ldap/tests/ldap_first_attribute_error.phpt b/ext/ldap/tests/ldap_first_attribute_error.phpt
index f7016c539f..9737df96c6 100644
--- a/ext/ldap/tests/ldap_first_attribute_error.phpt
+++ b/ext/ldap/tests/ldap_first_attribute_error.phpt
@@ -10,14 +10,13 @@ Patrick Allaert <patrickallaert@php.net>
require "connect.inc";
$link = ldap_connect($host, $port);
-var_dump(ldap_first_attribute($link));
-var_dump(ldap_first_attribute($link, $link));
+try {
+ var_dump(ldap_first_attribute($link, $link));
+} catch (TypeError $e) {
+ echo $e->getMessage(), "\n";
+}
?>
===DONE===
---EXPECTF--
-Warning: ldap_first_attribute() expects %s 2 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_first_attribute(): supplied resource is not a valid ldap result entry resource in %s on line %d
-bool(false)
+--EXPECT--
+ldap_first_attribute(): supplied resource is not a valid ldap result entry resource
===DONE===
diff --git a/ext/ldap/tests/ldap_first_entry_error.phpt b/ext/ldap/tests/ldap_first_entry_error.phpt
deleted file mode 100644
index 9f232e0e8f..0000000000
--- a/ext/ldap/tests/ldap_first_entry_error.phpt
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-ldap_first_entry() - Testing ldap_first_entry() that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-var_dump(ldap_first_entry($link));
-var_dump(ldap_first_entry($link, $link, "Additional data"));
-var_dump(ldap_first_entry($link, $link));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_first_entry() expects exactly 2 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_first_entry() expects exactly 2 parameters, 3 given in %s on line %d
-NULL
-
-Warning: ldap_first_entry(): supplied resource is not a valid ldap result resource in %s on line %d
-bool(false)
-===DONE===
diff --git a/ext/ldap/tests/ldap_first_reference_error.phpt b/ext/ldap/tests/ldap_first_reference_error.phpt
deleted file mode 100644
index d5541e10fc..0000000000
--- a/ext/ldap/tests/ldap_first_reference_error.phpt
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-ldap_first_reference() - Testing ldap_first_reference() that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-var_dump(ldap_first_reference($link));
-var_dump(ldap_first_reference($link, $link, "Additional data"));
-var_dump(ldap_first_reference($link, $link));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_first_reference() expects exactly 2 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_first_reference() expects exactly 2 parameters, 3 given in %s on line %d
-NULL
-
-Warning: ldap_first_reference(): supplied resource is not a valid ldap result resource in %s on line %d
-bool(false)
-===DONE===
diff --git a/ext/ldap/tests/ldap_free_result_error.phpt b/ext/ldap/tests/ldap_free_result_error.phpt
deleted file mode 100644
index 05623d62d0..0000000000
--- a/ext/ldap/tests/ldap_free_result_error.phpt
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-ldap_free_result() - Testing ldap_free_result() that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-var_dump(ldap_free_result($link));
-var_dump(ldap_free_result($link, "Additional data"));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_free_result(): supplied resource is not a valid ldap result resource in %s on line %d
-bool(false)
-
-Warning: ldap_free_result() expects exactly 1 parameter, 2 given in %s on line %d
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_get_attributes_error.phpt b/ext/ldap/tests/ldap_get_attributes_error.phpt
deleted file mode 100644
index 465ba4fd72..0000000000
--- a/ext/ldap/tests/ldap_get_attributes_error.phpt
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-ldap_get_attributes() - Testing ldap_get_attributes() that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-var_dump(ldap_get_attributes($link));
-var_dump(ldap_get_attributes($link, $link));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_get_attributes() expects exactly 2 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_get_attributes(): supplied resource is not a valid ldap result entry resource in %s on line %d
-bool(false)
-===DONE===
diff --git a/ext/ldap/tests/ldap_get_dn_error.phpt b/ext/ldap/tests/ldap_get_dn_error.phpt
deleted file mode 100644
index 71df6a3da1..0000000000
--- a/ext/ldap/tests/ldap_get_dn_error.phpt
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-ldap_get_dn() - Testing ldap_get_dn() that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-var_dump(ldap_get_dn($link));
-var_dump(ldap_get_dn($link, $link));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_get_dn() expects exactly 2 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_get_dn(): supplied resource is not a valid ldap result entry resource in %s on line %d
-bool(false)
-===DONE===
diff --git a/ext/ldap/tests/ldap_get_entries_error.phpt b/ext/ldap/tests/ldap_get_entries_error.phpt
deleted file mode 100644
index 7e0f4c0b98..0000000000
--- a/ext/ldap/tests/ldap_get_entries_error.phpt
+++ /dev/null
@@ -1,33 +0,0 @@
---TEST--
-ldap_get_entries() - ldap_get_entries() operation that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-
-// Too few parameters
-var_dump(ldap_get_entries($link));
-
-// Too many parameters
-var_dump(ldap_get_entries($link, $link, "Additional data"));
-
-// Bad parameter
-var_dump(ldap_get_entries($link, "string"));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_get_entries() expects exactly 2 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_get_entries() expects exactly 2 parameters, 3 given in %s on line %d
-NULL
-
-Warning: ldap_get_entries() expects parameter 2 to be resource, string given in %s on line %d
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_get_option_error.phpt b/ext/ldap/tests/ldap_get_option_error.phpt
deleted file mode 100644
index cf7a0e5d49..0000000000
--- a/ext/ldap/tests/ldap_get_option_error.phpt
+++ /dev/null
@@ -1,40 +0,0 @@
---TEST--
-ldap_get_option() - ldap_get_option() operation that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-$option = null;
-
-// Too few parameters
-var_dump(ldap_get_option());
-var_dump(ldap_get_option($link));
-var_dump(ldap_get_option($link, LDAP_OPT_PROTOCOL_VERSION));
-
-// Too many parameters
-var_dump(
- ldap_get_option($link, LDAP_OPT_PROTOCOL_VERSION, $option, "Additional data"),
- $option
-);
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_get_option() expects exactly 3 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_get_option() expects exactly 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_get_option() expects exactly 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_get_option() expects exactly 3 parameters, 4 given in %s on line %d
-NULL
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_get_values_len_error.phpt b/ext/ldap/tests/ldap_get_values_len_error.phpt
index 8bcaee070f..8040dd6dab 100644
--- a/ext/ldap/tests/ldap_get_values_len_error.phpt
+++ b/ext/ldap/tests/ldap_get_values_len_error.phpt
@@ -15,11 +15,6 @@ insert_dummy_data($link, $base);
$result = ldap_search($link, "$base", "(objectclass=organization)");
$entry = ldap_first_entry($link, $result);
-// Too few parameters
-var_dump(ldap_get_values_len($link));
-var_dump(ldap_get_values_len($link, $entry));
-var_dump(ldap_get_values_len($link, $entry, "weirdAttribute", "Additional data"));
-
var_dump(ldap_get_values_len($link, $entry, "inexistentAttribute"));
?>
===DONE===
@@ -31,15 +26,6 @@ $link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
remove_dummy_data($link, $base);
?>
--EXPECTF--
-Warning: ldap_get_values_len() expects exactly 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_get_values_len() expects exactly 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_get_values_len() expects exactly 3 parameters, 4 given in %s on line %d
-NULL
-
Warning: ldap_get_values_len(): Cannot get the value(s) of attribute %s in %s on line %d
bool(false)
===DONE===
diff --git a/ext/ldap/tests/ldap_list_error.phpt b/ext/ldap/tests/ldap_list_error.phpt
deleted file mode 100644
index 817622e725..0000000000
--- a/ext/ldap/tests/ldap_list_error.phpt
+++ /dev/null
@@ -1,35 +0,0 @@
---TEST--
-ldap_list() - operation that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-include "connect.inc";
-
-$link = ldap_connect($host, $port);
-
-// Too few parameters
-var_dump(ldap_list());
-var_dump(ldap_list($link));
-var_dump(ldap_list($link, $link));
-
-// Too many parameters
-var_dump(ldap_list($link, "$base", "(objectClass=*)", array(), 0, 0, 0, 0, [], "Additional data"));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_list() expects at least 3 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_list() expects at least 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_list() expects at least 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_list() expects at most 9 parameters, 10 given in %s on line %d
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_mod_add_error.phpt b/ext/ldap/tests/ldap_mod_add_error.phpt
index 4bfbaa5551..4cf5ae5725 100644
--- a/ext/ldap/tests/ldap_mod_add_error.phpt
+++ b/ext/ldap/tests/ldap_mod_add_error.phpt
@@ -12,14 +12,6 @@ require "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-// Too few parameters
-var_dump(ldap_mod_add());
-var_dump(ldap_mod_add($link));
-var_dump(ldap_mod_add($link, "$base"));
-
-// Too many parameters
-var_dump(ldap_mod_add($link, "$base", array(), [], "Additional data"));
-
// DN not found
var_dump(ldap_mod_add($link, "dc=my-domain,$base", array()));
@@ -57,18 +49,6 @@ $link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
ldap_delete($link, "dc=my-domain,$base");
?>
--EXPECTF--
-Warning: ldap_mod_add() expects at least 3 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_mod_add() expects at least 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_mod_add() expects at least 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_mod_add() expects at most 4 parameters, 5 given in %s on line %d
-NULL
-
Warning: ldap_mod_add(): Modify: No such object in %s on line %d
bool(false)
diff --git a/ext/ldap/tests/ldap_mod_del_error.phpt b/ext/ldap/tests/ldap_mod_del_error.phpt
index 129d6472c1..1cdf18a0c5 100644
--- a/ext/ldap/tests/ldap_mod_del_error.phpt
+++ b/ext/ldap/tests/ldap_mod_del_error.phpt
@@ -12,14 +12,6 @@ require "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-// Too few parameters
-var_dump(ldap_mod_del());
-var_dump(ldap_mod_del($link));
-var_dump(ldap_mod_del($link, "$base"));
-
-// Too many parameters
-var_dump(ldap_mod_del($link, "$base", array(), [], "Additional data"));
-
// DN not found
var_dump(ldap_mod_del($link, "dc=my-domain,$base", array()));
@@ -39,18 +31,6 @@ $link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
ldap_delete($link, "dc=my-domain,$base");
?>
--EXPECTF--
-Warning: ldap_mod_del() expects at least 3 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_mod_del() expects at least 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_mod_del() expects at least 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_mod_del() expects at most 4 parameters, 5 given in %s on line %d
-NULL
-
Warning: ldap_mod_del(): Modify: No such object in %s on line %d
bool(false)
diff --git a/ext/ldap/tests/ldap_mod_replace_error.phpt b/ext/ldap/tests/ldap_mod_replace_error.phpt
index 4f435b13d2..b920ebafad 100644
--- a/ext/ldap/tests/ldap_mod_replace_error.phpt
+++ b/ext/ldap/tests/ldap_mod_replace_error.phpt
@@ -12,14 +12,6 @@ require "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-// Too few parameters
-var_dump(ldap_mod_replace());
-var_dump(ldap_mod_replace($link));
-var_dump(ldap_mod_replace($link, "$base"));
-
-// Too many parameters
-var_dump(ldap_mod_replace($link, "$base", array(), [], "Additional data"));
-
// DN not found
var_dump(ldap_mod_replace($link, "dc=my-domain,$base", array()));
@@ -37,18 +29,6 @@ require "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
?>
--EXPECTF--
-Warning: ldap_mod_replace() expects at least 3 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_mod_replace() expects at least 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_mod_replace() expects at least 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_mod_replace() expects at most 4 parameters, 5 given in %s on line %d
-NULL
-
Warning: ldap_mod_replace(): Modify: No such object in %s on line %d
bool(false)
diff --git a/ext/ldap/tests/ldap_modify_batch_error.phpt b/ext/ldap/tests/ldap_modify_batch_error.phpt
index a2d9ef9deb..e1806fdf11 100644
--- a/ext/ldap/tests/ldap_modify_batch_error.phpt
+++ b/ext/ldap/tests/ldap_modify_batch_error.phpt
@@ -20,14 +20,6 @@ $addGivenName = array(
)
);
-// Too few parameters
-var_dump(ldap_modify_batch());
-var_dump(ldap_modify_batch($link));
-var_dump(ldap_modify_batch($link, "$base"));
-
-// Too many parameters
-var_dump(ldap_modify_batch($link, "$base", $addGivenName, [], "Invalid additional parameter"));
-
// DN not found
var_dump(ldap_modify_batch($link, "cn=not-found,$base", $addGivenName));
@@ -78,18 +70,6 @@ $link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
ldap_delete($link, "dc=my-domain,$base");
?>
--EXPECTF--
-Warning: ldap_modify_batch() expects at least 3 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_modify_batch() expects at least 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_modify_batch() expects at least 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_modify_batch() expects at most 4 parameters, 5 given in %s on line %d
-NULL
-
Warning: ldap_modify_batch(): Batch Modify: No such object in %s on line %d
bool(false)
diff --git a/ext/ldap/tests/ldap_modify_error.phpt b/ext/ldap/tests/ldap_modify_error.phpt
index 31069bb98c..4e10e77349 100644
--- a/ext/ldap/tests/ldap_modify_error.phpt
+++ b/ext/ldap/tests/ldap_modify_error.phpt
@@ -12,14 +12,6 @@ require "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-// Too few parameters
-var_dump(ldap_modify());
-var_dump(ldap_modify($link));
-var_dump(ldap_modify($link, "$base"));
-
-// Too many parameters
-var_dump(ldap_modify($link, "$base", array(), [], "Additional data"));
-
// DN not found
var_dump(ldap_modify($link, "cn=not-found,$base", array()));
@@ -57,18 +49,6 @@ $link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
ldap_delete($link, "dc=my-domain,$base");
?>
--EXPECTF--
-Warning: ldap_modify() expects at least 3 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_modify() expects at least 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_modify() expects at least 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_modify() expects at most 4 parameters, 5 given in %s on line %d
-NULL
-
Warning: ldap_modify(): Modify: No such object in %s on line %d
bool(false)
diff --git a/ext/ldap/tests/ldap_next_attribute_error.phpt b/ext/ldap/tests/ldap_next_attribute_error.phpt
index 0bedf8c33f..9d668d9c1b 100644
--- a/ext/ldap/tests/ldap_next_attribute_error.phpt
+++ b/ext/ldap/tests/ldap_next_attribute_error.phpt
@@ -15,8 +15,6 @@ insert_dummy_data($link, $base);
$result = ldap_search($link, "$base", "(objectclass=organization)");
$entry = ldap_first_entry($link, $result);
var_dump(
- ldap_next_attribute($link),
- ldap_next_attribute($link, $link),
ldap_next_attribute($link, $entry)
);
?>
@@ -29,12 +27,6 @@ $link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
remove_dummy_data($link, $base);
?>
--EXPECTF--
-Warning: ldap_next_attribute() expects %s 2 parameters, 1 given in %s on line %d
-
-Warning: ldap_next_attribute(): supplied resource is not a valid ldap result entry resource in %s on line %d
-
Warning: ldap_next_attribute(): called before calling ldap_first_attribute() or no attributes found in result entry in %s on line %d
-NULL
-bool(false)
bool(false)
===DONE===
diff --git a/ext/ldap/tests/ldap_next_entry_error.phpt b/ext/ldap/tests/ldap_next_entry_error.phpt
deleted file mode 100644
index 59e9cdcab5..0000000000
--- a/ext/ldap/tests/ldap_next_entry_error.phpt
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-ldap_next_entry() - Testing ldap_next_entry() that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-var_dump(ldap_next_entry($link));
-var_dump(ldap_next_entry($link, $link, "Additional data"));
-var_dump(ldap_next_entry($link, $link));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_next_entry() expects exactly 2 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_next_entry() expects exactly 2 parameters, 3 given in %s on line %d
-NULL
-
-Warning: ldap_next_entry(): supplied resource is not a valid ldap result entry resource in %s on line %d
-bool(false)
-===DONE===
diff --git a/ext/ldap/tests/ldap_next_reference_error.phpt b/ext/ldap/tests/ldap_next_reference_error.phpt
deleted file mode 100644
index 0e47c5ef5c..0000000000
--- a/ext/ldap/tests/ldap_next_reference_error.phpt
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-ldap_next_reference() - Testing ldap_next_reference() that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-var_dump(ldap_next_reference($link));
-var_dump(ldap_next_reference($link, $link, "Additional data"));
-var_dump(ldap_next_reference($link, $link));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_next_reference() expects exactly 2 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_next_reference() expects exactly 2 parameters, 3 given in %s on line %d
-NULL
-
-Warning: ldap_next_reference(): supplied resource is not a valid ldap result entry resource in %s on line %d
-bool(false)
-===DONE===
diff --git a/ext/ldap/tests/ldap_parse_reference_error.phpt b/ext/ldap/tests/ldap_parse_reference_error.phpt
deleted file mode 100644
index 9d180e717d..0000000000
--- a/ext/ldap/tests/ldap_parse_reference_error.phpt
+++ /dev/null
@@ -1,31 +0,0 @@
---TEST--
-ldap_parse_reference() - ldap_parse_reference() operations that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-$link = ldap_connect($host, $port);
-$refs = null;
-var_dump(
- ldap_parse_reference($link, $link),
- ldap_parse_reference($link, $link, $refs),
- ldap_parse_reference($link, $refs, $refs, "Additional data"),
- $refs
-);
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_parse_reference() expects exactly 3 parameters, 2 given in %s on line %d
-
-Warning: ldap_parse_reference(): supplied resource is not a valid ldap result entry resource in %s on line %d
-
-Warning: ldap_parse_reference() expects exactly 3 parameters, 4 given in %s on line %d
-NULL
-bool(false)
-NULL
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_parse_result_error.phpt b/ext/ldap/tests/ldap_parse_result_error.phpt
deleted file mode 100644
index 33f86f40b9..0000000000
--- a/ext/ldap/tests/ldap_parse_result_error.phpt
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-ldap_parse_result() - Testing ldap_parse_result() that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-var_dump(ldap_parse_result(null, null));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_parse_result() expects at least 3 parameters, 2 given in %s on line %d
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_read_error.phpt b/ext/ldap/tests/ldap_read_error.phpt
deleted file mode 100644
index 08f6280490..0000000000
--- a/ext/ldap/tests/ldap_read_error.phpt
+++ /dev/null
@@ -1,35 +0,0 @@
---TEST--
-ldap_read() - operation that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-include "connect.inc";
-
-$link = ldap_connect($host, $port);
-
-// Too few parameters
-var_dump(ldap_read());
-var_dump(ldap_read($link));
-var_dump(ldap_read($link, $link));
-
-// Too many parameters
-var_dump(ldap_read($link, "$base", "(objectClass=*)", array(), 0, 0, 0, 0, [], "Additional data"));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_read() expects at least 3 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_read() expects at least 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_read() expects at least 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_read() expects at most 9 parameters, 10 given in %s on line %d
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_read_variation1.phpt b/ext/ldap/tests/ldap_read_variation1.phpt
index 5d65814ec0..d5c731870c 100644
--- a/ext/ldap/tests/ldap_read_variation1.phpt
+++ b/ext/ldap/tests/ldap_read_variation1.phpt
@@ -7,7 +7,9 @@ if (!extension_loaded('ldap')) die('skip ldap extension not available');
--FILE--
<?php
$array = [123, 456, 789];
-@ldap_read(null, null, null, $array);
+try {
+ ldap_read(null, null, null, $array);
+} catch (TypeError $err) {}
var_dump($array);
?>
--EXPECT--
diff --git a/ext/ldap/tests/ldap_rename_error.phpt b/ext/ldap/tests/ldap_rename_error.phpt
index 8a580e5c34..57c2e03e71 100644
--- a/ext/ldap/tests/ldap_rename_error.phpt
+++ b/ext/ldap/tests/ldap_rename_error.phpt
@@ -10,12 +10,7 @@ Patrick Allaert <patrickallaert@php.net>
require "connect.inc";
$link = ldap_connect($host, $port);
-var_dump(ldap_rename($link));
var_dump(ldap_rename($link, "cn=userNotFound,$base", "cn=userZ", "$base", true));
?>
-===DONE===
---EXPECTF--
-Warning: ldap_rename() expects at least 5 parameters, 1 given in %s on line %d
-NULL
+--EXPECT--
bool(false)
-===DONE===
diff --git a/ext/ldap/tests/ldap_sasl_bind_error.phpt b/ext/ldap/tests/ldap_sasl_bind_error.phpt
index 180066bb2c..9feb912c7e 100644
--- a/ext/ldap/tests/ldap_sasl_bind_error.phpt
+++ b/ext/ldap/tests/ldap_sasl_bind_error.phpt
@@ -14,9 +14,6 @@ require "connect.inc";
$link = ldap_connect($host, $port);
ldap_set_option($link, LDAP_OPT_PROTOCOL_VERSION, $protocol_version);
-// Invalid parameter count
-var_dump(ldap_sasl_bind());
-
// Invalid DN
var_dump(ldap_sasl_bind($link, "Invalid DN", $passwd, 'DIGEST-MD5', 'realm', $sasl_user));
@@ -33,9 +30,6 @@ var_dump(ldap_sasl_bind($link, "unexistingProperty=weirdValue,$user", $passwd));
?>
===DONE===
--EXPECTF--
-Warning: ldap_sasl_bind() expects at least 1 parameter, 0 given in %s on line %d
-bool(false)
-
Warning: ldap_sasl_bind(): Unable to bind to server: Invalid DN syntax in %s on line %d
bool(false)
diff --git a/ext/ldap/tests/ldap_search_error.phpt b/ext/ldap/tests/ldap_search_error.phpt
index 795edd3180..c2e9f32456 100644
--- a/ext/ldap/tests/ldap_search_error.phpt
+++ b/ext/ldap/tests/ldap_search_error.phpt
@@ -15,15 +15,9 @@ $link = ldap_connect($host, $port);
$dn = "dc=not-found,$base";
$filter = "(dc=*)";
-$result = ldap_search();
-var_dump($result);
-
$result = ldap_search($link, $dn, $filter);
var_dump($result);
-$result = ldap_search($link, $dn, $filter, NULL);
-var_dump($result);
-
$result = ldap_search($link, $dn, $filter, array(1 => 'top'));
var_dump($result);
@@ -38,15 +32,9 @@ var_dump($result);
?>
===DONE===
--EXPECTF--
-Warning: ldap_search() expects at least 3 parameters, 0 given in %s on line %d
-NULL
-
Warning: ldap_search(): Search: No such object in %s on line %d
bool(false)
-Warning: ldap_search() expects parameter 4 to be array, null given in %s on line %d
-NULL
-
Warning: ldap_search(): Array initialization wrong in %s on line %d
bool(false)
diff --git a/ext/ldap/tests/ldap_set_option_error.phpt b/ext/ldap/tests/ldap_set_option_error.phpt
index 3ea49cbc7e..a67f972293 100644
--- a/ext/ldap/tests/ldap_set_option_error.phpt
+++ b/ext/ldap/tests/ldap_set_option_error.phpt
@@ -23,14 +23,6 @@ $controls = array(
"notanarray"
);
-// Too few parameters
-var_dump(ldap_set_option());
-var_dump(ldap_set_option($link));
-var_dump(ldap_set_option($link, LDAP_OPT_PROTOCOL_VERSION));
-
-// Too many parameters
-var_dump(ldap_set_option($link, LDAP_OPT_PROTOCOL_VERSION, 3, "Additional data"));
-
var_dump(ldap_set_option($link, LDAP_OPT_PROTOCOL_VERSION, 10));
foreach ($controls as $control)
@@ -40,17 +32,6 @@ var_dump(ldap_set_option($link, 999999, 999999));
?>
===DONE===
--EXPECTF--
-Warning: ldap_set_option() expects exactly 3 parameters, 0 given in %s on line %d
-NULL
-
-Warning: ldap_set_option() expects exactly 3 parameters, 1 given in %s on line %d
-NULL
-
-Warning: ldap_set_option() expects exactly 3 parameters, 2 given in %s on line %d
-NULL
-
-Warning: ldap_set_option() expects exactly 3 parameters, 4 given in %s on line %d
-NULL
bool(false)
Warning: ldap_set_option(): Control must have an oid key in %s on line %d
diff --git a/ext/ldap/tests/ldap_set_rebind_proc_error.phpt b/ext/ldap/tests/ldap_set_rebind_proc_error.phpt
index c8c7985826..c00891b908 100644
--- a/ext/ldap/tests/ldap_set_rebind_proc_error.phpt
+++ b/ext/ldap/tests/ldap_set_rebind_proc_error.phpt
@@ -10,7 +10,7 @@ Patrick Allaert <patrickallaert@php.net>
die("skip ldap_set_rebind_proc() does not exist");
}
require "connect.inc";
- $link = fsockopen($host, $port);
+ $link = @fsockopen($host, $port);
if (!$link) {
die("skip no server listening");
}
@@ -33,18 +33,10 @@ function rebind_proc ($ds, $ldap_url) {
}
$link = ldap_connect($host, $port);
-var_dump(ldap_set_rebind_proc($link));
-var_dump(ldap_set_rebind_proc($link, "rebind_proc", "Additional data"));
var_dump(ldap_set_rebind_proc($link, "rebind_proc_inexistent"));
?>
===DONE===
--EXPECTF--
-Warning: ldap_set_rebind_proc() expects exactly 2 parameters, 1 given in %s on line %d
-bool(false)
-
-Warning: ldap_set_rebind_proc() expects exactly 2 parameters, 3 given in %s on line %d
-bool(false)
-
Warning: ldap_set_rebind_proc(): Two arguments expected for 'rebind_proc_inexistent' to be a valid callback in %s on line %d
bool(false)
===DONE===
diff --git a/ext/ldap/tests/ldap_sort_basic.phpt b/ext/ldap/tests/ldap_sort_basic.phpt
deleted file mode 100644
index e14381f8c7..0000000000
--- a/ext/ldap/tests/ldap_sort_basic.phpt
+++ /dev/null
@@ -1,201 +0,0 @@
---TEST--
-ldap_sort() - Basic ldap_sort test
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
-<?php require_once('skipifbindfailure.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-insert_dummy_data($link, $base);
-ldap_add($link, "cn=userC,$base", array(
- "objectclass" => "person",
- "cn" => "userC",
- "sn" => "zzz",
- "userPassword" => "oops",
- "description" => "a user",
-));
-ldap_add($link, "cn=userD,$base", array(
- "objectclass" => "person",
- "cn" => "userD",
- "sn" => "aaa",
- "userPassword" => "oops",
- "description" => "another user",
-));
-ldap_add($link, "cn=userE,$base", array(
- "objectclass" => "person",
- "cn" => "userE",
- "sn" => "a",
- "userPassword" => "oops",
- "description" => "yet another user",
-));
-$result = ldap_search($link, "$base", "(objectclass=person)", array("sn", "description"));
-var_dump(
- ldap_sort($link, $result, "sn"),
- ldap_get_entries($link, $result)
-);
-?>
-===DONE===
---CLEAN--
-<?php
-include "connect.inc";
-
-$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-ldap_delete($link, "cn=userC,$base");
-ldap_delete($link, "cn=userD,$base");
-ldap_delete($link, "cn=userE,$base");
-remove_dummy_data($link, $base);
-?>
---EXPECTF--
-Deprecated: Function ldap_sort() is deprecated in %s.php on line %d
-bool(true)
-array(7) {
- ["count"]=>
- int(6)
- [0]=>
- array(6) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(1) "a"
- }
- [0]=>
- string(2) "sn"
- ["description"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(16) "yet another user"
- }
- [1]=>
- string(11) "description"
- ["count"]=>
- int(2)
- ["dn"]=>
- string(%d) "cn=userE,%s"
- }
- [1]=>
- array(6) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(3) "aaa"
- }
- [0]=>
- string(2) "sn"
- ["description"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(12) "another user"
- }
- [1]=>
- string(11) "description"
- ["count"]=>
- int(2)
- ["dn"]=>
- string(%d) "cn=userD,%s"
- }
- [2]=>
- array(6) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(7) "testSN1"
- }
- [0]=>
- string(2) "sn"
- ["description"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(6) "user A"
- }
- [1]=>
- string(11) "description"
- ["count"]=>
- int(2)
- ["dn"]=>
- string(%d) "cn=userA,%s"
- }
- [3]=>
- array(6) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(7) "testSN2"
- }
- [0]=>
- string(2) "sn"
- ["description"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(6) "user B"
- }
- [1]=>
- string(11) "description"
- ["count"]=>
- int(2)
- ["dn"]=>
- string(%d) "cn=userB,%s"
- }
- [4]=>
- array(4) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(7) "testSN3"
- }
- [0]=>
- string(2) "sn"
- ["count"]=>
- int(1)
- ["dn"]=>
- string(%d) "cn=userC,cn=userB,%s"
- }
- [5]=>
- array(6) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(3) "zzz"
- }
- [0]=>
- string(2) "sn"
- ["description"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(6) "a user"
- }
- [1]=>
- string(11) "description"
- ["count"]=>
- int(2)
- ["dn"]=>
- string(%d) "cn=userC,%s"
- }
-}
-===DONE===
diff --git a/ext/ldap/tests/ldap_sort_error.phpt b/ext/ldap/tests/ldap_sort_error.phpt
deleted file mode 100644
index c41b56ab51..0000000000
--- a/ext/ldap/tests/ldap_sort_error.phpt
+++ /dev/null
@@ -1,45 +0,0 @@
---TEST--
-ldap_sort() - Testing ldap_sort() that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-var_dump(ldap_sort($link));
-var_dump(ldap_sort($link, $link));
-var_dump(ldap_sort($link, $link, $link, $link));
-var_dump(ldap_sort($link, $link, $link));
-var_dump(ldap_sort($link, $link, "sn"));
-?>
-===DONE===
---EXPECTF--
-Deprecated: Function ldap_sort() is deprecated in %s.php on line %d
-
-Warning: ldap_sort() expects exactly 3 parameters, 1 given in %s on line %d
-bool(false)
-
-Deprecated: Function ldap_sort() is deprecated in %s.php on line %d
-
-Warning: ldap_sort() expects exactly 3 parameters, 2 given in %s on line %d
-bool(false)
-
-Deprecated: Function ldap_sort() is deprecated in %s.php on line %d
-
-Warning: ldap_sort() expects exactly 3 parameters, 4 given in %s on line %d
-bool(false)
-
-Deprecated: Function ldap_sort() is deprecated in %s.php on line %d
-
-Warning: ldap_sort() expects parameter 3 to be string, resource given in %s on line %d
-bool(false)
-
-Deprecated: Function ldap_sort() is deprecated in %s.php on line %d
-
-Warning: ldap_sort(): Supplied resource is not a valid ldap result resource in %s on line %d
-bool(false)
-===DONE===
diff --git a/ext/ldap/tests/ldap_sort_variation.phpt b/ext/ldap/tests/ldap_sort_variation.phpt
deleted file mode 100644
index bb121b63cb..0000000000
--- a/ext/ldap/tests/ldap_sort_variation.phpt
+++ /dev/null
@@ -1,201 +0,0 @@
---TEST--
-ldap_sort() - Basic ldap_sort test
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
-<?php require_once('skipifbindfailure.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-insert_dummy_data($link, $base);
-ldap_add($link, "cn=userC,$base", array(
- "objectclass" => "person",
- "cn" => "userC",
- "sn" => "zzz",
- "userPassword" => "oops",
- "description" => "a user",
-));
-ldap_add($link, "cn=userD,$base", array(
- "objectclass" => "person",
- "cn" => "userD",
- "sn" => "aaa",
- "userPassword" => "oops",
- "description" => "another user",
-));
-ldap_add($link, "cn=userE,$base", array(
- "objectclass" => "person",
- "cn" => "userE",
- "sn" => "a",
- "userPassword" => "oops",
- "description" => "yet another user",
-));
-$result = ldap_search($link, "$base", "(objectclass=person)", array("sn", "description"));
-var_dump(
- ldap_sort($link, $result, "description"),
- ldap_get_entries($link, $result)
-);
-?>
-===DONE===
---CLEAN--
-<?php
-include "connect.inc";
-
-$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-ldap_delete($link, "cn=userC,$base");
-ldap_delete($link, "cn=userD,$base");
-ldap_delete($link, "cn=userE,$base");
-remove_dummy_data($link, $base);
-?>
---EXPECTF--
-Deprecated: Function ldap_sort() is deprecated in %s.php on line %d
-bool(true)
-array(7) {
- ["count"]=>
- int(6)
- [0]=>
- array(4) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(7) "testSN3"
- }
- [0]=>
- string(2) "sn"
- ["count"]=>
- int(1)
- ["dn"]=>
- string(%d) "cn=userC,cn=userB,%s"
- }
- [1]=>
- array(6) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(3) "zzz"
- }
- [0]=>
- string(2) "sn"
- ["description"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(6) "a user"
- }
- [1]=>
- string(11) "description"
- ["count"]=>
- int(2)
- ["dn"]=>
- string(%d) "cn=userC,%s"
- }
- [2]=>
- array(6) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(3) "aaa"
- }
- [0]=>
- string(2) "sn"
- ["description"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(12) "another user"
- }
- [1]=>
- string(11) "description"
- ["count"]=>
- int(2)
- ["dn"]=>
- string(%d) "cn=userD,%s"
- }
- [3]=>
- array(6) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(7) "testSN1"
- }
- [0]=>
- string(2) "sn"
- ["description"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(6) "user A"
- }
- [1]=>
- string(11) "description"
- ["count"]=>
- int(2)
- ["dn"]=>
- string(%d) "cn=userA,%s"
- }
- [4]=>
- array(6) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(7) "testSN2"
- }
- [0]=>
- string(2) "sn"
- ["description"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(6) "user B"
- }
- [1]=>
- string(11) "description"
- ["count"]=>
- int(2)
- ["dn"]=>
- string(%d) "cn=userB,%s"
- }
- [5]=>
- array(6) {
- ["sn"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(1) "a"
- }
- [0]=>
- string(2) "sn"
- ["description"]=>
- array(2) {
- ["count"]=>
- int(1)
- [0]=>
- string(16) "yet another user"
- }
- [1]=>
- string(11) "description"
- ["count"]=>
- int(2)
- ["dn"]=>
- string(%d) "cn=userE,%s"
- }
-}
-===DONE===
diff --git a/ext/ldap/tests/ldap_start_tls_error.phpt b/ext/ldap/tests/ldap_start_tls_error.phpt
deleted file mode 100644
index 686f5331a8..0000000000
--- a/ext/ldap/tests/ldap_start_tls_error.phpt
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-ldap_start_tls() - Binding that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
-<?php require_once('skipifbindfailure.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect($host, $port);
-ldap_set_option($link, LDAP_OPT_PROTOCOL_VERSION, $protocol_version);
-
-// Invalid parameter count
-var_dump(ldap_start_tls());
-var_dump(ldap_start_tls($link, $link));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_start_tls() expects exactly 1 parameter, 0 given in %s on line %d
-NULL
-
-Warning: ldap_start_tls() expects exactly 1 parameter, 2 given in %s on line %d
-NULL
-===DONE===
diff --git a/ext/ldap/tests/ldap_unbind_error.phpt b/ext/ldap/tests/ldap_unbind_error.phpt
deleted file mode 100644
index 85e586eb6f..0000000000
--- a/ext/ldap/tests/ldap_unbind_error.phpt
+++ /dev/null
@@ -1,42 +0,0 @@
---TEST--
-ldap_unbind() - ldap_unbind() operations that should fail
---CREDITS--
-Patrick Allaert <patrickallaert@php.net>
-# Belgian PHP Testfest 2009
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
-<?php require_once('skipifbindfailure.inc'); ?>
---FILE--
-<?php
-require "connect.inc";
-
-$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
-
-// Too few parameters
-var_dump(ldap_unbind());
-
-// Too many parameters
-var_dump(ldap_unbind($link, "Additional data"));
-
-// Bad parameter
-var_dump(ldap_unbind("string"));
-
-// unbind twice
-var_dump(ldap_unbind($link));
-var_dump(ldap_unbind($link));
-?>
-===DONE===
---EXPECTF--
-Warning: ldap_unbind() expects exactly 1 parameter, 0 given in %s on line %d
-bool(false)
-
-Warning: ldap_unbind() expects exactly 1 parameter, 2 given in %s on line %d
-bool(false)
-
-Warning: ldap_unbind() expects parameter 1 to be resource, string given in %s on line %d
-bool(false)
-bool(true)
-
-Warning: ldap_unbind(): supplied resource is not a valid ldap link resource in %s on line %d
-bool(false)
-===DONE===