summaryrefslogtreecommitdiff
path: root/ext/ldap
diff options
context:
space:
mode:
authorScott MacVicar <scottmac@php.net>2011-05-19 17:41:21 +0000
committerScott MacVicar <scottmac@php.net>2011-05-19 17:41:21 +0000
commit3cb4de03dc0cce9a87e3f58e456c7eee584d26a2 (patch)
tree055aef95ef45731c309029778acbf230fcab019f /ext/ldap
parentc24ef71e6339351b085177d727a7c781893fa1d2 (diff)
downloadphp-git-3cb4de03dc0cce9a87e3f58e456c7eee584d26a2.tar.gz
Tidy up ldap paging code and rename the API as discussed in #42060
Diffstat (limited to 'ext/ldap')
-rw-r--r--ext/ldap/ldap.c43
-rw-r--r--ext/ldap/tests/ldap_control_paged_results_variation1.phpt (renamed from ext/ldap/tests/ldap_ctrl_paged_results_variation1.phpt)4
-rw-r--r--ext/ldap/tests/ldap_control_paged_results_variation2.phpt (renamed from ext/ldap/tests/ldap_ctrl_paged_results_variation2.phpt)4
-rw-r--r--ext/ldap/tests/ldap_control_paged_results_variation3.phpt (renamed from ext/ldap/tests/ldap_ctrl_paged_results_variation3.phpt)8
4 files changed, 30 insertions, 29 deletions
diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c
index e71f0db5b2..0ecb5ddf75 100644
--- a/ext/ldap/ldap.c
+++ b/ext/ldap/ldap.c
@@ -2186,13 +2186,15 @@ PHP_FUNCTION(ldap_8859_to_t61)
#endif
#ifdef LDAP_CONTROL_PAGEDRESULTS
-/* {{{ proto bool ldap_ctrl_paged_results(resource link, int pagesize [, bool iscritical [, string cookie]])
+/* {{{ proto bool ldap_control_paged_result(resource link, int pagesize [, bool iscritical [, string cookie]])
Inject paged results control*/
-PHP_FUNCTION(ldap_ctrl_paged_results)
+PHP_FUNCTION(ldap_control_paged_result)
{
long pagesize;
zend_bool iscritical;
- zval *link, *cookie;
+ zval *link;
+ char *cookie = NULL;
+ int cookie_len = 0;
struct berval lcookie = { 0, NULL };
ldap_linkdata *ld;
LDAP *ldap;
@@ -2200,11 +2202,11 @@ PHP_FUNCTION(ldap_ctrl_paged_results)
LDAPControl ctrl, *ctrlsp[2];
int rc, myargcount = ZEND_NUM_ARGS();
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl|bz", &link, &pagesize, &iscritical, &cookie) != SUCCESS) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl|bs", &link, &pagesize, &iscritical, &cookie, &cookie_len) != SUCCESS) {
return;
}
- if (Z_TYPE_PP(&link) == IS_NULL) {
+ if (Z_TYPE_P(link) == IS_NULL) {
ldap = NULL;
} else {
ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, &link, -1, "ldap link", le_link);
@@ -2221,9 +2223,8 @@ PHP_FUNCTION(ldap_ctrl_paged_results)
switch (myargcount) {
case 4:
- convert_to_string_ex(&cookie);
- lcookie.bv_val = Z_STRVAL_PP(&cookie);
- lcookie.bv_len = Z_STRLEN_PP(&cookie);
+ lcookie.bv_val = cookie;
+ lcookie.bv_len = cookie_len;
/* fallthru */
case 3:
ctrl.ldctl_iscritical = (int)iscritical;
@@ -2232,13 +2233,13 @@ PHP_FUNCTION(ldap_ctrl_paged_results)
if (ber_printf(ber, "{iO}", (int)pagesize, &lcookie) == LBER_ERROR) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to BER printf paged results control");
- RETVAL_BOOL(0);
+ RETVAL_FALSE;
goto lcpr_error_out;
}
rc = ber_flatten2(ber, &ctrl.ldctl_value, 0);
if (rc == LBER_ERROR) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to BER encode paged results control");
- RETVAL_BOOL(0);
+ RETVAL_FALSE;
goto lcpr_error_out;
}
@@ -2252,16 +2253,16 @@ PHP_FUNCTION(ldap_ctrl_paged_results)
rc = ldap_set_option(ldap, LDAP_OPT_SERVER_CONTROLS, ctrlsp);
if (rc != LDAP_SUCCESS) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to set paged results control: %s (%d)", ldap_err2string(rc), rc);
- RETVAL_BOOL(0);
+ RETVAL_FALSE;
goto lcpr_error_out;
}
- RETVAL_BOOL(1);
+ RETVAL_TRUE;
} else {
/* return a PHP control object */
array_init(return_value);
add_assoc_string(return_value, "oid", ctrl.ldctl_oid, 1);
- if ( ctrl.ldctl_value.bv_len ) {
+ if (ctrl.ldctl_value.bv_len) {
add_assoc_stringl(return_value, "value", ctrl.ldctl_value.bv_val, ctrl.ldctl_value.bv_len, 1);
}
if (ctrl.ldctl_iscritical) {
@@ -2270,16 +2271,16 @@ PHP_FUNCTION(ldap_ctrl_paged_results)
}
lcpr_error_out:
- if (ber != NULL) {
+ if (ber != NULL) {
ber_free(ber, 1);
}
return;
}
/* }}} */
-/* {{{ proto bool ldap_ctrl_paged_results_resp(resource link, resource result [, string cookie [, int estimated]])
+/* {{{ proto bool ldap_control_paged_result_response(resource link, resource result [, string cookie [, int estimated]])
Extract paged results control response */
-PHP_FUNCTION(ldap_ctrl_paged_results_resp)
+PHP_FUNCTION(ldap_control_paged_result_response)
{
zval *link, *result, *cookie, *estimated;
struct berval lcookie;
@@ -2357,8 +2358,8 @@ PHP_FUNCTION(ldap_ctrl_paged_results_resp)
zval_dtor(estimated);
ZVAL_LONG(estimated, lestimated);
}
+
zval_dtor(cookie);
-
if (lcookie.bv_len == 0) {
ZVAL_EMPTY_STRING(cookie);
} else {
@@ -2551,14 +2552,14 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_sort, 0, 0, 3)
ZEND_END_ARG_INFO()
#ifdef LDAP_CONTROL_PAGEDRESULTS
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_ctrl_paged_results, 0, 0, 2)
+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_ctrl_paged_results_resp, 0, 0, 2)
+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)
@@ -2709,8 +2710,8 @@ const zend_function_entry ldap_functions[] = {
#endif
#ifdef LDAP_CONTROL_PAGEDRESULTS
- PHP_FE(ldap_ctrl_paged_results, arginfo_ldap_ctrl_paged_results)
- PHP_FE(ldap_ctrl_paged_results_resp, arginfo_ldap_ctrl_paged_results_resp)
+ PHP_FE(ldap_control_paged_result, arginfo_ldap_control_paged_result)
+ PHP_FE(ldap_control_paged_result_response, arginfo_ldap_control_paged_result_response)
#endif
{NULL, NULL, NULL}
};
diff --git a/ext/ldap/tests/ldap_ctrl_paged_results_variation1.phpt b/ext/ldap/tests/ldap_control_paged_results_variation1.phpt
index 88879d974c..7220666099 100644
--- a/ext/ldap/tests/ldap_ctrl_paged_results_variation1.phpt
+++ b/ext/ldap/tests/ldap_control_paged_results_variation1.phpt
@@ -1,5 +1,5 @@
--TEST--
-ldap_ldap_ctrl_paged_results() test (fetching the first page)
+ldap_ldap_control_paged_results() test (fetching the first page)
--CREDITS--
Jean-Sebastien Hedde <jeanseb@au-fil-du.net>
--SKIPIF--
@@ -17,7 +17,7 @@ insert_dummy_data($link);
$dn = "dc=my-domain,dc=com";
$filter = "(cn=*)";
var_dump(
- ldap_ctrl_paged_results($link, 1),
+ ldap_control_paged_results($link, 1),
$result = ldap_search($link, $dn, $filter, array('cn')),
ldap_get_entries($link, $result)
);
diff --git a/ext/ldap/tests/ldap_ctrl_paged_results_variation2.phpt b/ext/ldap/tests/ldap_control_paged_results_variation2.phpt
index 7be5a2c2f7..7cc6d9fc92 100644
--- a/ext/ldap/tests/ldap_ctrl_paged_results_variation2.phpt
+++ b/ext/ldap/tests/ldap_control_paged_results_variation2.phpt
@@ -1,5 +1,5 @@
--TEST--
-ldap_ldap_ctrl_paged_results() test (fetching the first page with a pagesize=2)
+ldap_ldap_control_paged_results() test (fetching the first page with a pagesize=2)
--CREDITS--
Jean-Sebastien Hedde <jeanseb@au-fil-du.net>
--SKIPIF--
@@ -17,7 +17,7 @@ insert_dummy_data($link);
$dn = "dc=my-domain,dc=com";
$filter = "(cn=*)";
var_dump(
- ldap_ctrl_paged_results($link, 2),
+ ldap_control_paged_results($link, 2),
$result = ldap_search($link, $dn, $filter, array('cn')),
ldap_get_entries($link, $result)
);
diff --git a/ext/ldap/tests/ldap_ctrl_paged_results_variation3.phpt b/ext/ldap/tests/ldap_control_paged_results_variation3.phpt
index 3134c2badb..b5f3a7218b 100644
--- a/ext/ldap/tests/ldap_ctrl_paged_results_variation3.phpt
+++ b/ext/ldap/tests/ldap_control_paged_results_variation3.phpt
@@ -1,5 +1,5 @@
--TEST--
-ldap_ldap_ctrl_paged_results() test (fetching the first page then the next final page)
+ldap_ldap_control_paged_results() test (fetching the first page then the next final page)
--CREDITS--
Jean-Sebastien Hedde <jeanseb@au-fil-du.net>
--SKIPIF--
@@ -18,11 +18,11 @@ $dn = "dc=my-domain,dc=com";
$filter = "(cn=*)";
$cookie = '';
var_dump(
- ldap_ctrl_paged_results($link, 2, true, $cookie),
+ ldap_control_paged_results($link, 2, true, $cookie),
$result = ldap_search($link, $dn, $filter, array('cn')),
ldap_get_entries($link, $result),
- ldap_ctrl_paged_results_resp($link, $result, $cookie),
- ldap_ctrl_paged_results($link, 20, true, $cookie),
+ ldap_control_paged_results_response($link, $result, $cookie),
+ ldap_control_paged_results($link, 20, true, $cookie),
$result = ldap_search($link, $dn, $filter, array('cn')),
ldap_get_entries($link, $result)
);