mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
ext/ldap: Use HashTable* for controls
This commit is contained in:
parent
a165f1fffc
commit
355f320a27
1 changed files with 41 additions and 41 deletions
|
@ -745,18 +745,17 @@ static void _php_ldap_controls_to_array(LDAP *ld, LDAPControl** ctrls, zval* arr
|
||||||
ldap_controls_free(ctrls);
|
ldap_controls_free(ctrls);
|
||||||
}
|
}
|
||||||
|
|
||||||
static LDAPControl** _php_ldap_controls_from_array(LDAP *ld, zval* array, uint32_t arg_num)
|
static LDAPControl** php_ldap_controls_from_array(LDAP *ld, const HashTable *controls, uint32_t arg_num)
|
||||||
{
|
{
|
||||||
int ncontrols;
|
|
||||||
LDAPControl** ctrlp, **ctrls = NULL;
|
LDAPControl** ctrlp, **ctrls = NULL;
|
||||||
zval* ctrlarray;
|
zval* ctrlarray;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
ncontrols = zend_hash_num_elements(Z_ARRVAL_P(array));
|
uint32_t num_controls = zend_hash_num_elements(controls);
|
||||||
ctrls = safe_emalloc((1 + ncontrols), sizeof(*ctrls), 0);
|
ctrls = safe_emalloc((1 + num_controls), sizeof(*ctrls), 0);
|
||||||
*ctrls = NULL;
|
*ctrls = NULL;
|
||||||
ctrlp = ctrls;
|
ctrlp = ctrls;
|
||||||
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(array), ctrlarray) {
|
ZEND_HASH_FOREACH_VAL(controls, ctrlarray) {
|
||||||
if (Z_TYPE_P(ctrlarray) != IS_ARRAY) {
|
if (Z_TYPE_P(ctrlarray) != IS_ARRAY) {
|
||||||
zend_argument_type_error(arg_num, "must contain only arrays, where each array is a control");
|
zend_argument_type_error(arg_num, "must contain only arrays, where each array is a control");
|
||||||
error = 1;
|
error = 1;
|
||||||
|
@ -1145,25 +1144,25 @@ PHP_FUNCTION(ldap_bind)
|
||||||
/* {{{ Bind to LDAP directory */
|
/* {{{ Bind to LDAP directory */
|
||||||
PHP_FUNCTION(ldap_bind_ext)
|
PHP_FUNCTION(ldap_bind_ext)
|
||||||
{
|
{
|
||||||
zval *serverctrls = NULL;
|
|
||||||
zval *link;
|
zval *link;
|
||||||
char *ldap_bind_dn = NULL, *ldap_bind_pw = NULL;
|
char *ldap_bind_dn = NULL, *ldap_bind_pw = NULL;
|
||||||
size_t ldap_bind_dnlen, ldap_bind_pwlen;
|
size_t ldap_bind_dnlen, ldap_bind_pwlen;
|
||||||
|
HashTable *server_controls_ht = NULL;
|
||||||
ldap_linkdata *ld;
|
ldap_linkdata *ld;
|
||||||
LDAPControl **lserverctrls = NULL;
|
LDAPControl **lserverctrls = NULL;
|
||||||
ldap_resultdata *result;
|
ldap_resultdata *result;
|
||||||
LDAPMessage *ldap_res;
|
LDAPMessage *ldap_res;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O|p!p!a!", &link, ldap_link_ce, &ldap_bind_dn, &ldap_bind_dnlen, &ldap_bind_pw, &ldap_bind_pwlen, &serverctrls) != SUCCESS) {
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O|p!p!h!", &link, ldap_link_ce, &ldap_bind_dn, &ldap_bind_dnlen, &ldap_bind_pw, &ldap_bind_pwlen, &server_controls_ht) != SUCCESS) {
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
}
|
}
|
||||||
|
|
||||||
ld = Z_LDAP_LINK_P(link);
|
ld = Z_LDAP_LINK_P(link);
|
||||||
VERIFY_LDAP_LINK_CONNECTED(ld);
|
VERIFY_LDAP_LINK_CONNECTED(ld);
|
||||||
|
|
||||||
if (serverctrls) {
|
if (server_controls_ht) {
|
||||||
lserverctrls = _php_ldap_controls_from_array(ld->link, serverctrls, 4);
|
lserverctrls = php_ldap_controls_from_array(ld->link, server_controls_ht, 4);
|
||||||
if (lserverctrls == NULL) {
|
if (lserverctrls == NULL) {
|
||||||
RETVAL_FALSE;
|
RETVAL_FALSE;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -1402,12 +1401,13 @@ static void php_set_opts(LDAP *ldap, int sizelimit, int timelimit, int deref, in
|
||||||
/* {{{ php_ldap_do_search */
|
/* {{{ php_ldap_do_search */
|
||||||
static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
|
static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
|
||||||
{
|
{
|
||||||
zval *link, *attrs = NULL, *serverctrls = NULL;
|
zval *link, *attrs = NULL;
|
||||||
HashTable *base_dn_ht = NULL;
|
HashTable *base_dn_ht = NULL;
|
||||||
zend_string *base_dn_str = NULL;
|
zend_string *base_dn_str = NULL;
|
||||||
HashTable *filter_ht = NULL;
|
HashTable *filter_ht = NULL;
|
||||||
zend_string *filter_str = NULL;
|
zend_string *filter_str = NULL;
|
||||||
zend_long attrsonly, sizelimit, timelimit, deref;
|
zend_long attrsonly, sizelimit, timelimit, deref;
|
||||||
|
HashTable *server_controls_ht = NULL;
|
||||||
char **ldap_attrs = NULL;
|
char **ldap_attrs = NULL;
|
||||||
ldap_linkdata *ld = NULL;
|
ldap_linkdata *ld = NULL;
|
||||||
ldap_resultdata *result;
|
ldap_resultdata *result;
|
||||||
|
@ -1427,7 +1427,7 @@ static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
|
||||||
Z_PARAM_LONG(sizelimit)
|
Z_PARAM_LONG(sizelimit)
|
||||||
Z_PARAM_LONG(timelimit)
|
Z_PARAM_LONG(timelimit)
|
||||||
Z_PARAM_LONG(deref)
|
Z_PARAM_LONG(deref)
|
||||||
Z_PARAM_ARRAY_EX(serverctrls, 1, 1)
|
Z_PARAM_ARRAY_HT_EX(server_controls_ht, 1, 1)
|
||||||
ZEND_PARSE_PARAMETERS_END();
|
ZEND_PARSE_PARAMETERS_END();
|
||||||
|
|
||||||
/* Reverse -> fall through */
|
/* Reverse -> fall through */
|
||||||
|
@ -1600,10 +1600,10 @@ process:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (serverctrls) {
|
if (server_controls_ht) {
|
||||||
/* We have to parse controls again for each link as they use it */
|
/* We have to parse controls again for each link as they use it */
|
||||||
_php_ldap_controls_free(&lserverctrls);
|
_php_ldap_controls_free(&lserverctrls);
|
||||||
lserverctrls = _php_ldap_controls_from_array(current_ld->link, serverctrls, 9);
|
lserverctrls = php_ldap_controls_from_array(current_ld->link, server_controls_ht, 9);
|
||||||
if (lserverctrls == NULL) {
|
if (lserverctrls == NULL) {
|
||||||
rcs[ldap_link_index] = -1;
|
rcs[ldap_link_index] = -1;
|
||||||
// TODO Throw an exception/cleanup?
|
// TODO Throw an exception/cleanup?
|
||||||
|
@ -1661,8 +1661,8 @@ cleanup_parallel:
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (serverctrls) {
|
if (server_controls_ht) {
|
||||||
lserverctrls = _php_ldap_controls_from_array(ld->link, serverctrls, 9);
|
lserverctrls = php_ldap_controls_from_array(ld->link, server_controls_ht, 9);
|
||||||
if (lserverctrls == NULL) {
|
if (lserverctrls == NULL) {
|
||||||
ret = 0;
|
ret = 0;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -2193,11 +2193,11 @@ PHP_FUNCTION(ldap_dn2ufn)
|
||||||
/* {{{ php_ldap_do_modify */
|
/* {{{ php_ldap_do_modify */
|
||||||
static void php_ldap_do_modify(INTERNAL_FUNCTION_PARAMETERS, int oper, int ext)
|
static void php_ldap_do_modify(INTERNAL_FUNCTION_PARAMETERS, int oper, int ext)
|
||||||
{
|
{
|
||||||
zval *serverctrls = NULL;
|
|
||||||
zval *link;
|
zval *link;
|
||||||
ldap_linkdata *ld;
|
ldap_linkdata *ld;
|
||||||
char *dn;
|
char *dn;
|
||||||
HashTable *attributes_ht;
|
HashTable *attributes_ht;
|
||||||
|
HashTable *server_controls_ht = NULL;
|
||||||
LDAPMod **ldap_mods;
|
LDAPMod **ldap_mods;
|
||||||
LDAPControl **lserverctrls = NULL;
|
LDAPControl **lserverctrls = NULL;
|
||||||
ldap_resultdata *result;
|
ldap_resultdata *result;
|
||||||
|
@ -2205,7 +2205,7 @@ static void php_ldap_do_modify(INTERNAL_FUNCTION_PARAMETERS, int oper, int ext)
|
||||||
size_t dn_len;
|
size_t dn_len;
|
||||||
int is_full_add=0; /* flag for full add operation so ldap_mod_add can be put back into oper, gerrit THomson */
|
int is_full_add=0; /* flag for full add operation so ldap_mod_add can be put back into oper, gerrit THomson */
|
||||||
|
|
||||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oph/|a!", &link, ldap_link_ce, &dn, &dn_len, &attributes_ht, &serverctrls) != SUCCESS) {
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oph/|h!", &link, ldap_link_ce, &dn, &dn_len, &attributes_ht, &server_controls_ht) != SUCCESS) {
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2305,8 +2305,8 @@ static void php_ldap_do_modify(INTERNAL_FUNCTION_PARAMETERS, int oper, int ext)
|
||||||
} ZEND_HASH_FOREACH_END();
|
} ZEND_HASH_FOREACH_END();
|
||||||
ldap_mods[num_attribs] = NULL;
|
ldap_mods[num_attribs] = NULL;
|
||||||
|
|
||||||
if (serverctrls) {
|
if (server_controls_ht) {
|
||||||
lserverctrls = _php_ldap_controls_from_array(ld->link, serverctrls, 4);
|
lserverctrls = php_ldap_controls_from_array(ld->link, server_controls_ht, 4);
|
||||||
if (lserverctrls == NULL) {
|
if (lserverctrls == NULL) {
|
||||||
RETVAL_FALSE;
|
RETVAL_FALSE;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -2446,8 +2446,8 @@ PHP_FUNCTION(ldap_mod_del_ext)
|
||||||
/* {{{ php_ldap_do_delete */
|
/* {{{ php_ldap_do_delete */
|
||||||
static void php_ldap_do_delete(INTERNAL_FUNCTION_PARAMETERS, int ext)
|
static void php_ldap_do_delete(INTERNAL_FUNCTION_PARAMETERS, int ext)
|
||||||
{
|
{
|
||||||
zval *serverctrls = NULL;
|
|
||||||
zval *link;
|
zval *link;
|
||||||
|
HashTable *server_controls_ht = NULL;
|
||||||
ldap_linkdata *ld;
|
ldap_linkdata *ld;
|
||||||
LDAPControl **lserverctrls = NULL;
|
LDAPControl **lserverctrls = NULL;
|
||||||
ldap_resultdata *result;
|
ldap_resultdata *result;
|
||||||
|
@ -2456,15 +2456,15 @@ static void php_ldap_do_delete(INTERNAL_FUNCTION_PARAMETERS, int ext)
|
||||||
int rc, msgid;
|
int rc, msgid;
|
||||||
size_t dn_len;
|
size_t dn_len;
|
||||||
|
|
||||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Op|a!", &link, ldap_link_ce, &dn, &dn_len, &serverctrls) != SUCCESS) {
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Op|h!", &link, ldap_link_ce, &dn, &dn_len, &server_controls_ht) != SUCCESS) {
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
}
|
}
|
||||||
|
|
||||||
ld = Z_LDAP_LINK_P(link);
|
ld = Z_LDAP_LINK_P(link);
|
||||||
VERIFY_LDAP_LINK_CONNECTED(ld);
|
VERIFY_LDAP_LINK_CONNECTED(ld);
|
||||||
|
|
||||||
if (serverctrls) {
|
if (server_controls_ht) {
|
||||||
lserverctrls = _php_ldap_controls_from_array(ld->link, serverctrls, 3);
|
lserverctrls = php_ldap_controls_from_array(ld->link, server_controls_ht, 3);
|
||||||
if (lserverctrls == NULL) {
|
if (lserverctrls == NULL) {
|
||||||
RETVAL_FALSE;
|
RETVAL_FALSE;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -2522,11 +2522,11 @@ PHP_FUNCTION(ldap_delete_ext)
|
||||||
/* {{{ Perform multiple modifications as part of one operation */
|
/* {{{ Perform multiple modifications as part of one operation */
|
||||||
PHP_FUNCTION(ldap_modify_batch)
|
PHP_FUNCTION(ldap_modify_batch)
|
||||||
{
|
{
|
||||||
zval *server_controls_zv = NULL;
|
|
||||||
zval *link;
|
zval *link;
|
||||||
char *dn;
|
char *dn;
|
||||||
size_t dn_len;
|
size_t dn_len;
|
||||||
HashTable *modifications;
|
HashTable *modifications;
|
||||||
|
HashTable *server_controls_ht = NULL;
|
||||||
LDAPControl **lserverctrls = NULL;
|
LDAPControl **lserverctrls = NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2553,7 +2553,7 @@ PHP_FUNCTION(ldap_modify_batch)
|
||||||
];
|
];
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oph/|a!", &link, ldap_link_ce, &dn, &dn_len, &modifications, &server_controls_zv) != SUCCESS) {
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oph/|h!", &link, ldap_link_ce, &dn, &dn_len, &modifications, &server_controls_ht) != SUCCESS) {
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2669,8 +2669,8 @@ PHP_FUNCTION(ldap_modify_batch)
|
||||||
/* validation of modifications array was successful */
|
/* validation of modifications array was successful */
|
||||||
|
|
||||||
/* Check that the LDAP server controls array is valid */
|
/* Check that the LDAP server controls array is valid */
|
||||||
if (server_controls_zv) {
|
if (server_controls_ht) {
|
||||||
lserverctrls = _php_ldap_controls_from_array(ld->link, server_controls_zv, 4);
|
lserverctrls = php_ldap_controls_from_array(ld->link, server_controls_ht, 4);
|
||||||
if (lserverctrls == NULL) {
|
if (lserverctrls == NULL) {
|
||||||
_php_ldap_controls_free(&lserverctrls);
|
_php_ldap_controls_free(&lserverctrls);
|
||||||
RETURN_FALSE;
|
RETURN_FALSE;
|
||||||
|
@ -2846,21 +2846,21 @@ PHP_FUNCTION(ldap_error)
|
||||||
/* {{{ Determine if an entry has a specific value for one of its attributes */
|
/* {{{ Determine if an entry has a specific value for one of its attributes */
|
||||||
PHP_FUNCTION(ldap_compare)
|
PHP_FUNCTION(ldap_compare)
|
||||||
{
|
{
|
||||||
zval *serverctrls = NULL;
|
|
||||||
zval *link;
|
zval *link;
|
||||||
char *dn, *attr;
|
char *dn, *attr;
|
||||||
size_t dn_len, attr_len;
|
size_t dn_len, attr_len;
|
||||||
|
HashTable *server_controls_ht = NULL;
|
||||||
ldap_linkdata *ld;
|
ldap_linkdata *ld;
|
||||||
LDAPControl **lserverctrls = NULL;
|
LDAPControl **lserverctrls = NULL;
|
||||||
int ldap_errno;
|
int ldap_errno;
|
||||||
struct berval lvalue;
|
struct berval lvalue;
|
||||||
|
|
||||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Opps|a!",
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Opps|h!",
|
||||||
&link, ldap_link_ce,
|
&link, ldap_link_ce,
|
||||||
&dn, &dn_len,
|
&dn, &dn_len,
|
||||||
&attr, &attr_len,
|
&attr, &attr_len,
|
||||||
&lvalue.bv_val, &lvalue.bv_len,
|
&lvalue.bv_val, &lvalue.bv_len,
|
||||||
&serverctrls
|
&server_controls_ht
|
||||||
) != SUCCESS) {
|
) != SUCCESS) {
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
}
|
}
|
||||||
|
@ -2868,8 +2868,8 @@ PHP_FUNCTION(ldap_compare)
|
||||||
ld = Z_LDAP_LINK_P(link);
|
ld = Z_LDAP_LINK_P(link);
|
||||||
VERIFY_LDAP_LINK_CONNECTED(ld);
|
VERIFY_LDAP_LINK_CONNECTED(ld);
|
||||||
|
|
||||||
if (serverctrls) {
|
if (server_controls_ht) {
|
||||||
lserverctrls = _php_ldap_controls_from_array(ld->link, serverctrls, 5);
|
lserverctrls = php_ldap_controls_from_array(ld->link, server_controls_ht, 5);
|
||||||
if (lserverctrls == NULL) {
|
if (lserverctrls == NULL) {
|
||||||
RETVAL_FALSE;
|
RETVAL_FALSE;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -3251,7 +3251,7 @@ PHP_FUNCTION(ldap_set_option)
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
}
|
}
|
||||||
|
|
||||||
ctrls = _php_ldap_controls_from_array(ldap, newval, 3);
|
ctrls = php_ldap_controls_from_array(ldap, Z_ARRVAL_P(newval), 3);
|
||||||
|
|
||||||
if (ctrls == NULL) {
|
if (ctrls == NULL) {
|
||||||
RETURN_FALSE;
|
RETURN_FALSE;
|
||||||
|
@ -3526,7 +3526,6 @@ PHP_FUNCTION(ldap_parse_reference)
|
||||||
/* {{{ php_ldap_do_rename */
|
/* {{{ php_ldap_do_rename */
|
||||||
static void php_ldap_do_rename(INTERNAL_FUNCTION_PARAMETERS, int ext)
|
static void php_ldap_do_rename(INTERNAL_FUNCTION_PARAMETERS, int ext)
|
||||||
{
|
{
|
||||||
zval *serverctrls = NULL;
|
|
||||||
zval *link;
|
zval *link;
|
||||||
ldap_linkdata *ld;
|
ldap_linkdata *ld;
|
||||||
LDAPControl **lserverctrls = NULL;
|
LDAPControl **lserverctrls = NULL;
|
||||||
|
@ -3536,8 +3535,9 @@ static void php_ldap_do_rename(INTERNAL_FUNCTION_PARAMETERS, int ext)
|
||||||
char *dn, *newrdn, *newparent;
|
char *dn, *newrdn, *newparent;
|
||||||
size_t dn_len, newrdn_len, newparent_len;
|
size_t dn_len, newrdn_len, newparent_len;
|
||||||
bool deleteoldrdn;
|
bool deleteoldrdn;
|
||||||
|
HashTable *server_controls_ht = NULL;
|
||||||
|
|
||||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Opppb|a!", &link, ldap_link_ce, &dn, &dn_len, &newrdn, &newrdn_len, &newparent, &newparent_len, &deleteoldrdn, &serverctrls) != SUCCESS) {
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Opppb|h!", &link, ldap_link_ce, &dn, &dn_len, &newrdn, &newrdn_len, &newparent, &newparent_len, &deleteoldrdn, &server_controls_ht) != SUCCESS) {
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3549,8 +3549,8 @@ static void php_ldap_do_rename(INTERNAL_FUNCTION_PARAMETERS, int ext)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
|
#if (LDAP_API_VERSION > 2000) || defined(HAVE_ORALDAP)
|
||||||
if (serverctrls) {
|
if (server_controls_ht) {
|
||||||
lserverctrls = _php_ldap_controls_from_array(ld->link, serverctrls, 6);
|
lserverctrls = php_ldap_controls_from_array(ld->link, server_controls_ht, 6);
|
||||||
if (lserverctrls == NULL) {
|
if (lserverctrls == NULL) {
|
||||||
RETVAL_FALSE;
|
RETVAL_FALSE;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -3857,10 +3857,10 @@ PHP_FUNCTION(ldap_8859_to_t61)
|
||||||
/* {{{ Extended operations, Pierangelo Masarati */
|
/* {{{ Extended operations, Pierangelo Masarati */
|
||||||
#ifdef HAVE_LDAP_EXTENDED_OPERATION_S
|
#ifdef HAVE_LDAP_EXTENDED_OPERATION_S
|
||||||
static void php_ldap_exop(INTERNAL_FUNCTION_PARAMETERS, bool force_sync) {
|
static void php_ldap_exop(INTERNAL_FUNCTION_PARAMETERS, bool force_sync) {
|
||||||
zval *serverctrls = NULL;
|
|
||||||
zval *link, *retdata = NULL, *retoid = NULL;
|
zval *link, *retdata = NULL, *retoid = NULL;
|
||||||
char *lretoid = NULL;
|
char *lretoid = NULL;
|
||||||
zend_string *reqoid, *reqdata = NULL;
|
zend_string *reqoid, *reqdata = NULL;
|
||||||
|
HashTable *server_controls_ht = NULL;
|
||||||
struct berval lreqdata, *lretdata = NULL;
|
struct berval lreqdata, *lretdata = NULL;
|
||||||
ldap_linkdata *ld;
|
ldap_linkdata *ld;
|
||||||
ldap_resultdata *result;
|
ldap_resultdata *result;
|
||||||
|
@ -3875,7 +3875,7 @@ static void php_ldap_exop(INTERNAL_FUNCTION_PARAMETERS, bool force_sync) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "OP|S!a!zz", &link, ldap_link_ce, &reqoid, &reqdata, &serverctrls, &retdata, &retoid) != SUCCESS) {
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "OP|S!h!zz", &link, ldap_link_ce, &reqoid, &reqdata, &server_controls_ht, &retdata, &retoid) != SUCCESS) {
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3889,8 +3889,8 @@ static void php_ldap_exop(INTERNAL_FUNCTION_PARAMETERS, bool force_sync) {
|
||||||
lreqdata.bv_len = 0;
|
lreqdata.bv_len = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (serverctrls) {
|
if (server_controls_ht) {
|
||||||
lserverctrls = _php_ldap_controls_from_array(ld->link, serverctrls, 4);
|
lserverctrls = php_ldap_controls_from_array(ld->link, server_controls_ht, 4);
|
||||||
if (lserverctrls == NULL) {
|
if (lserverctrls == NULL) {
|
||||||
RETVAL_FALSE;
|
RETVAL_FALSE;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue