summaryrefslogtreecommitdiff
path: root/ext/ldap
diff options
context:
space:
mode:
authorStig Venaas <venaas@php.net>2001-12-26 18:40:57 +0000
committerStig Venaas <venaas@php.net>2001-12-26 18:40:57 +0000
commit403350e41d54d1d9f817ba153aefd575b6d1dbfb (patch)
tree9ad127d4f20e95d919cdf7abc347cee394c6e4e5 /ext/ldap
parent2ce4b47657ab53f7125edf76497cfcf44907f534 (diff)
downloadphp-git-403350e41d54d1d9f817ba153aefd575b6d1dbfb.tar.gz
unbreak parallel search
Diffstat (limited to 'ext/ldap')
-rw-r--r--ext/ldap/ldap.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c
index 23f738d5e2..bef2df3af1 100644
--- a/ext/ldap/ldap.c
+++ b/ext/ldap/ldap.c
@@ -636,7 +636,7 @@ static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
if (Z_TYPE_PP(link) == IS_ARRAY) {
int i, nlinks, nbases, nfilters, *rcs;
ldap_linkdata **lds;
- zval **entry;
+ zval **entry, *resource;
nlinks = zend_hash_num_elements(Z_ARRVAL_PP(link));
if (nlinks == 0) {
@@ -728,15 +728,17 @@ static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
/* Collect results from the searches */
for (i=0; i<nlinks; i++) {
+ MAKE_STD_ZVAL(resource);
if (rcs[i] != -1) {
rcs[i] = ldap_result(lds[i]->link, LDAP_RES_ANY, 1 /* LDAP_MSG_ALL */, NULL, &ldap_res);
}
if (rcs[i] != -1) {
- add_next_index_long(return_value, zend_list_insert(ldap_res, le_result));
+ ZEND_REGISTER_RESOURCE(resource, ldap_res, le_result);
+ add_next_index_zval(return_value, resource);
} else {
add_next_index_bool(return_value, 0);
}
- };
+ }
efree(lds);
efree(rcs);
return;