cvs: php4 /ext/ldap ldap.c

From: Date: Mon, 05 Aug 2002 21:14:14 +0000
Subject: cvs: php4 /ext/ldap ldap.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-13145@lists.php.net to get a copy of this message
venaas Mon Aug 5 17:14:14 2002 EDT Modified files: /php4/ext/ldap ldap.c Log: Made ldap_connect/bind/unbind() use zend_parse_parameters() Index: php4/ext/ldap/ldap.c diff -u php4/ext/ldap/ldap.c:1.125 php4/ext/ldap/ldap.c:1.126 --- php4/ext/ldap/ldap.c:1.125 Tue Jul 9 16:54:49 2002 +++ php4/ext/ldap/ldap.c Mon Aug 5 17:14:14 2002 @@ -22,7 +22,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ldap.c,v 1.125 2002/07/09 20:54:49 venaas Exp $ */ +/* $Id: ldap.c,v 1.126 2002/08/05 21:14:14 venaas Exp $ */ #define IS_EXT_MODULE #ifdef HAVE_CONFIG_H @@ -278,7 +278,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.125 2002/07/09 20:54:49 venaas Exp $" ); + php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.126 2002/08/05 21:14:14 venaas Exp $" ); if (LDAPG(max_links) == -1) { snprintf(tmp, 31, "%ld/unlimited", LDAPG(num_links)); @@ -336,72 +336,34 @@ PHP_FUNCTION(ldap_connect) { char *host = NULL; + int hostlen; int port = 389; /* Default port */ #ifdef HAVE_ORALDAP char *wallet, *walletpasswd; + int walletlen, walletpasswdlen; int authmode; int ssl=0; #endif ldap_linkdata *ld; LDAP *ldap; - switch(ZEND_NUM_ARGS()) { - case 0: - break; - - case 1: { - pval **yyhost; - - if (zend_get_parameters_ex(1, &yyhost) == FAILURE) { - RETURN_FALSE; - } - - convert_to_string_ex(yyhost); - host = Z_STRVAL_PP(yyhost); - } - break; - - case 2: { - pval **yyhost, **yyport; - - if (zend_get_parameters_ex(2, &yyhost, &yyport) == FAILURE) { - RETURN_FALSE; - } - - convert_to_string_ex(yyhost); - host = Z_STRVAL_PP(yyhost); - convert_to_long_ex(yyport); - port = Z_LVAL_PP(yyport); - } - break; #ifdef HAVE_ORALDAP + if (ZEND_NUM_ARGS() == 3 || ZEND_NUM_ARGS() == 4) { + WRONG_PARAM_COUNT; + } - case 5: { - pval **yyhost, **yyport, **yywallet, **yywalletpasswd, **yyauthmode; - - if (zend_get_parameters_ex(5, &yyhost, &yyport, &yywallet, &yywalletpasswd, &yyauthmode) == FAILURE) { - RETURN_FALSE; - } - - convert_to_string_ex(yyhost); - convert_to_long_ex(yyport); - convert_to_string_ex(yywallet); - convert_to_string_ex(yywalletpasswd); - convert_to_long_ex(yyauthmode); - host = Z_STRVAL_PP(yyhost); - port = Z_LVAL_PP(yyport); - wallet = Z_STRVAL_PP(yywallet); - walletpasswd = Z_STRVAL_PP(yywalletpasswd); - authmode = Z_LVAL_PP(yyauthmode); - ssl = 1; - } - break; -#endif + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|slssl", &host, &hostlen, &port, &wallet, &walletlen, &walletpasswd, &walletpasswdlen, &authmode) == FAILURE) { + RETURN_FALSE; + } - default: - WRONG_PARAM_COUNT; - break; + if (ZEND_NUM_ARGS() == 5 ) { + ssl = 1; + } +#else + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sl", &host, &hostlen, &port) == FAILURE) { + RETURN_FALSE; } +#endif if (LDAPG(max_links) != -1 && LDAPG(num_links) >= LDAPG(max_links)) { php_error(E_WARNING, "%s(): Too many open links (%d)", get_active_function_name(TSRMLS_C), LDAPG(num_links)); @@ -472,43 +434,19 @@ Bind to LDAP directory */ PHP_FUNCTION(ldap_bind) { - pval **link, **bind_rdn, **bind_pw; - char *ldap_bind_rdn, *ldap_bind_pw; + zval *link; + char *ldap_bind_dn = NULL, *ldap_bind_pw = NULL; + int ldap_bind_dnlen, ldap_bind_pwlen; ldap_linkdata *ld; int rc; - switch(ZEND_NUM_ARGS()) { - case 1: /* Anonymous Bind */ - if (zend_get_parameters_ex(1, &link) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ldap_bind_rdn = NULL; - ldap_bind_pw = NULL; - - break; - - case 3 : - if (zend_get_parameters_ex(3, &link, &bind_rdn, &bind_pw) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_string_ex(bind_rdn); - convert_to_string_ex(bind_pw); - - ldap_bind_rdn = Z_STRVAL_PP(bind_rdn); - ldap_bind_pw = Z_STRVAL_PP(bind_pw); - - break; - - default: - WRONG_PARAM_COUNT; - break; - } + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|ss", &link, &ldap_bind_dn, &ldap_bind_dnlen, &ldap_bind_pw, &ldap_bind_pwlen) == FAILURE) { + RETURN_FALSE; + } - ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, link, -1, "ldap link", le_link); + ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, &link, -1, "ldap link", le_link); - if ((rc = ldap_bind_s(ld->link, ldap_bind_rdn, ldap_bind_pw, LDAP_AUTH_SIMPLE)) != LDAP_SUCCESS) { + if ((rc = ldap_bind_s(ld->link, ldap_bind_dn, ldap_bind_pw, LDAP_AUTH_SIMPLE)) != LDAP_SUCCESS) { php_error(E_WARNING, "%s(): Unable to bind to server: %s", get_active_function_name(TSRMLS_C), ldap_err2string(rc)); RETURN_FALSE; } else { @@ -521,16 +459,16 @@ Unbind from LDAP directory */ PHP_FUNCTION(ldap_unbind) { - pval **link; + zval *link; ldap_linkdata *ld; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &link) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &link) == FAILURE) { + RETURN_FALSE; } - ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, link, -1, "ldap link", le_link); + ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, &link, -1, "ldap link", le_link); - zend_list_delete(Z_LVAL_PP(link)); + zend_list_delete(Z_LVAL_P(link)); RETURN_TRUE; } /* }}} */

« previous php.cvs (#13145) next »