felipe Sun Jun 29 14:29:09 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/ldap ldap.c Log: - New parameter parsing API - Added arginfo
http://cvs.php.net/viewvc.cgi/php-src/ext/ldap/ldap.c?r1=1.161.2.3.2.11.2.13&r2=1.161.2.3.2.11.2.14&diff_format=u Index: php-src/ext/ldap/ldap.c diff -u php-src/ext/ldap/ldap.c:1.161.2.3.2.11.2.13 php-src/ext/ldap/ldap.c:1.161.2.3.2.11.2.14 --- php-src/ext/ldap/ldap.c:1.161.2.3.2.11.2.13 Mon Jun 2 11:23:16 2008 +++ php-src/ext/ldap/ldap.c Sun Jun 29 14:29:09 2008 @@ -23,7 +23,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ldap.c,v 1.161.2.3.2.11.2.13 2008/06/02 11:23:16 jani Exp $ */ +/* $Id: ldap.c,v 1.161.2.3.2.11.2.14 2008/06/29 14:29:09 felipe Exp $ */ #define IS_EXT_MODULE #ifdef HAVE_CONFIG_H @@ -82,16 +82,6 @@ ZEND_DECLARE_MODULE_GLOBALS(ldap) static PHP_GINIT_FUNCTION(ldap); -static - ZEND_BEGIN_ARG_INFO(arg3to6of6_force_ref, 0) - ZEND_ARG_PASS_INFO(0) - ZEND_ARG_PASS_INFO(0) - ZEND_ARG_PASS_INFO(1) - ZEND_ARG_PASS_INFO(1) - ZEND_ARG_PASS_INFO(1) - ZEND_ARG_PASS_INFO(1) - ZEND_END_ARG_INFO(); - static int le_link, le_result, le_result_entry; #ifdef COMPILE_DL_LDAP @@ -237,7 +227,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "LDAP Support", "enabled"); - php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.161.2.3.2.11.2.13 2008/06/02 11:23:16 jani Exp $"); + php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.161.2.3.2.11.2.14 2008/06/29 14:29:09 felipe Exp $"); if (LDAPG(max_links) == -1) { snprintf(tmp, 31, "%ld/unlimited", LDAPG(num_links)); @@ -605,8 +595,9 @@ int i, errno; int myargcount = ZEND_NUM_ARGS(); - if (myargcount < 3 || myargcount > 8 || zend_get_parameters_ex(myargcount, &link, &base_dn, &filter, &attrs, &attrsonly, &sizelimit, &timelimit, &deref) != SUCCESS) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(myargcount TSRMLS_CC, "ZZZ|ZZZZZ", &link, &base_dn, &filter, &attrs, &attrsonly, + &sizelimit, &timelimit, &deref) == FAILURE) { + return; } /* Reverse -> fall through */ @@ -2215,6 +2206,288 @@ /* }}} */ #endif +/* {{{ arginfo */ +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_connect, 0, 0, 0) + ZEND_ARG_INFO(0, hostname) + ZEND_ARG_INFO(0, port) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_resource, 0, 0, 1) + ZEND_ARG_INFO(0, link_identifier) +ZEND_END_ARG_INFO() + +static +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() + +#ifdef HAVE_LDAP_SASL +static +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 + +static +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_END_ARG_INFO() + +static +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_END_ARG_INFO() + +static +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_END_ARG_INFO() + +static +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() + +static +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() + +static +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() + +static +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() + +static +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() + +static +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() + +static +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() + +static +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() + +static +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() + +static +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() + +static +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() + +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_dn2ufn, 0, 0, 1) + ZEND_ARG_INFO(0, dn) +ZEND_END_ARG_INFO() + +static +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_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_delete, 0, 0, 2) + ZEND_ARG_INFO(0, link_identifier) + ZEND_ARG_INFO(0, dn) +ZEND_END_ARG_INFO() + +static +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_END_ARG_INFO() + +static +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_END_ARG_INFO() + +static +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_END_ARG_INFO() + +static +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_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_err2str, 0, 0, 1) + ZEND_ARG_INFO(0, errno) +ZEND_END_ARG_INFO() + +static +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_END_ARG_INFO() + +static +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() + +#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 +static +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_END_ARG_INFO() + +static +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() + +static +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(1, newval) +ZEND_END_ARG_INFO() + +static +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() + +static +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 +static +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 +static +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_END_ARG_INFO() +#endif +#endif + +#if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC) +static +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 + +#ifdef STR_TRANSLATION +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_t61_to_8859, 0, 0, 1) + ZEND_ARG_INFO(0, value) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_8859_to_t61, 0, 0, 1) + ZEND_ARG_INFO(0, value) +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. @@ -2222,69 +2495,69 @@ /* {{{ ldap_functions[] */ const zend_function_entry ldap_functions[] = { - PHP_FE(ldap_connect, NULL) - PHP_FALIAS(ldap_close, ldap_unbind, NULL) - PHP_FE(ldap_bind, NULL) + PHP_FE(ldap_connect, arginfo_ldap_connect) + PHP_FALIAS(ldap_close, ldap_unbind, arginfo_ldap_resource) + PHP_FE(ldap_bind, arginfo_ldap_bind) #ifdef HAVE_LDAP_SASL - PHP_FE(ldap_sasl_bind, NULL) + PHP_FE(ldap_sasl_bind, arginfo_ldap_sasl_bind) #endif - PHP_FE(ldap_unbind, NULL) - PHP_FE(ldap_read, NULL) - PHP_FE(ldap_list, NULL) - PHP_FE(ldap_search, NULL) - PHP_FE(ldap_free_result, NULL) - PHP_FE(ldap_count_entries, NULL) - PHP_FE(ldap_first_entry, NULL) - PHP_FE(ldap_next_entry, NULL) - PHP_FE(ldap_get_entries, NULL) - PHP_FE(ldap_first_attribute, third_arg_force_ref) - PHP_FE(ldap_next_attribute, third_arg_force_ref) - PHP_FE(ldap_get_attributes, NULL) - PHP_FALIAS(ldap_get_values, ldap_get_values_len, NULL) - PHP_FE(ldap_get_values_len, NULL) - PHP_FE(ldap_get_dn, NULL) - PHP_FE(ldap_explode_dn, NULL) - PHP_FE(ldap_dn2ufn, NULL) - PHP_FE(ldap_add, NULL) - PHP_FE(ldap_delete, NULL) - PHP_FALIAS(ldap_modify, ldap_mod_replace, NULL) + PHP_FE(ldap_unbind, arginfo_ldap_resource) + 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_count_entries, arginfo_ldap_count_entries) + PHP_FE(ldap_first_entry, arginfo_ldap_first_entry) + PHP_FE(ldap_next_entry, arginfo_ldap_next_entry) + PHP_FE(ldap_get_entries, arginfo_ldap_get_entries) + PHP_FE(ldap_first_attribute, arginfo_ldap_first_attribute) + PHP_FE(ldap_next_attribute, arginfo_ldap_next_attribute) + PHP_FE(ldap_get_attributes, arginfo_ldap_get_attributes) + PHP_FALIAS(ldap_get_values, ldap_get_values_len, arginfo_ldap_get_values) + PHP_FE(ldap_get_values_len, arginfo_ldap_get_values_len) + PHP_FE(ldap_get_dn, arginfo_ldap_get_dn) + PHP_FE(ldap_explode_dn, arginfo_ldap_explode_dn) + PHP_FE(ldap_dn2ufn, arginfo_ldap_dn2ufn) + PHP_FE(ldap_add, arginfo_ldap_add) + PHP_FE(ldap_delete, arginfo_ldap_delete) + PHP_FALIAS(ldap_modify, ldap_mod_replace, arginfo_ldap_modify) /* additional functions for attribute based modifications, Gerrit Thomson */ - PHP_FE(ldap_mod_add, NULL) - PHP_FE(ldap_mod_replace, NULL) - PHP_FE(ldap_mod_del, NULL) + PHP_FE(ldap_mod_add, arginfo_ldap_mod_add) + PHP_FE(ldap_mod_replace, arginfo_ldap_mod_replace) + PHP_FE(ldap_mod_del, arginfo_ldap_mod_del) /* end gjt mod */ - PHP_FE(ldap_errno, NULL) - PHP_FE(ldap_err2str, NULL) - PHP_FE(ldap_error, NULL) - PHP_FE(ldap_compare, NULL) - PHP_FE(ldap_sort, NULL) + PHP_FE(ldap_errno, arginfo_ldap_resource) + PHP_FE(ldap_err2str, arginfo_ldap_err2str) + PHP_FE(ldap_error, arginfo_ldap_resource) + PHP_FE(ldap_compare, arginfo_ldap_compare) + PHP_FE(ldap_sort, arginfo_ldap_sort) #if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 - PHP_FE(ldap_rename, NULL) - PHP_FE(ldap_get_option, third_arg_force_ref) - PHP_FE(ldap_set_option, NULL) - PHP_FE(ldap_first_reference, NULL) - PHP_FE(ldap_next_reference, NULL) + PHP_FE(ldap_rename, arginfo_ldap_rename) + PHP_FE(ldap_get_option, arginfo_ldap_get_option) + PHP_FE(ldap_set_option, arginfo_ldap_set_option) + PHP_FE(ldap_first_reference, arginfo_ldap_first_reference) + PHP_FE(ldap_next_reference, arginfo_ldap_next_reference) #ifdef HAVE_LDAP_PARSE_REFERENCE - PHP_FE(ldap_parse_reference, third_arg_force_ref) + PHP_FE(ldap_parse_reference, arginfo_ldap_parse_reference) #endif #ifdef HAVE_LDAP_PARSE_RESULT - PHP_FE(ldap_parse_result, arg3to6of6_force_ref) + PHP_FE(ldap_parse_result, arginfo_ldap_parse_result) #endif #ifdef HAVE_LDAP_START_TLS_S - PHP_FE(ldap_start_tls, NULL) + PHP_FE(ldap_start_tls, arginfo_ldap_resource) #endif #endif #if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC) - PHP_FE(ldap_set_rebind_proc, NULL) + PHP_FE(ldap_set_rebind_proc, arginfo_ldap_set_rebind_proc) #endif #ifdef STR_TRANSLATION - PHP_FE(ldap_t61_to_8859, NULL) - PHP_FE(ldap_8859_to_t61, NULL) + PHP_FE(ldap_t61_to_8859, arginfo_ldap_t61_to_8859) + PHP_FE(ldap_8859_to_t61, arginfo_ldap_8859_to_t61) #endif {NULL, NULL, NULL}
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php