cvs: php4 /ext/ldap ldap.c php_ldap.h

From: Date: Wed, 26 Jul 2000 11:01:44 +0000
Subject: cvs: php4 /ext/ldap ldap.c php_ldap.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-935@lists.php.net to get a copy of this message
sniper Wed Jul 26 04:01:44 2000 EDT Modified files: /php4/ext/ldap ldap.c php_ldap.h Log: @- Added new function: ldap_compare(). (Jani) # Documentation is coming right after this. Index: php4/ext/ldap/ldap.c diff -u php4/ext/ldap/ldap.c:1.50 php4/ext/ldap/ldap.c:1.51 --- php4/ext/ldap/ldap.c:1.50 Tue Jul 25 08:34:28 2000 +++ php4/ext/ldap/ldap.c Wed Jul 26 04:01:44 2000 @@ -22,7 +22,7 @@ */ -/* $Id: ldap.c,v 1.50 2000/07/25 15:34:28 sniper Exp $ */ +/* $Id: ldap.c,v 1.51 2000/07/26 11:01:44 sniper Exp $ */ #define IS_EXT_MODULE #include "php.h" @@ -90,6 +90,7 @@ PHP_FE(ldap_errno, NULL) PHP_FE(ldap_err2str, NULL) PHP_FE(ldap_error, NULL) + PHP_FE(ldap_compare, NULL) {NULL, NULL, NULL} }; @@ -185,7 +186,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.50 2000/07/25 15:34:28 sniper Exp $" ); + php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.51 2000/07/26 11:01:44 sniper Exp $" ); php_info_print_table_row(2, "Total Links", maxl ); #if HAVE_NSLDAP @@ -1367,3 +1368,47 @@ RETURN_STRING(ldap_err2string(ld_errno), 1); } /* }}} */ + + +/* {{{ proto int ldap_compare(int link, string dn, string attr, string value) + Determine if an entry has a specific value for one of its attributes. */ +PHP_FUNCTION(ldap_compare) { + pval **link, **dn, **attr, **value; + char *ldap_dn, *ldap_attr, *ldap_value; + LDAP *ldap; + int errno; + + if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &link, &dn, &attr, &value) == FAILURE) { + WRONG_PARAM_COUNT; + } + + convert_to_string_ex(link); + ldap = _get_ldap_link(link); + if (ldap == NULL) RETURN_LONG(-1); + + convert_to_string_ex(dn); + convert_to_string_ex(attr); + convert_to_string_ex(value); + + ldap_dn = (*dn)->value.str.val; + ldap_attr = (*attr)->value.str.val; + ldap_value = (*value)->value.str.val; + + errno = ldap_compare_s(ldap, ldap_dn, ldap_attr, ldap_value); + + switch(errno) { + case LDAP_COMPARE_TRUE : + RETURN_TRUE; + break; + + case LDAP_COMPARE_FALSE : + RETURN_FALSE; + break; + } + + php_error(E_WARNING, "LDAP: Compare operation could not be completed: %s", ldap_err2string(errno)); + RETURN_LONG(-1); + +} +/* }}} */ + Index: php4/ext/ldap/php_ldap.h diff -u php4/ext/ldap/php_ldap.h:1.8 php4/ext/ldap/php_ldap.h:1.9 --- php4/ext/ldap/php_ldap.h:1.8 Sun Jul 23 18:39:47 2000 +++ php4/ext/ldap/php_ldap.h Wed Jul 26 04:01:44 2000 @@ -14,10 +14,11 @@ +----------------------------------------------------------------------+ | Authors: Amitay Isaacs <amitay@w-o-i.com> | | Eric Warnke <ericw@albany.edu> | + | Jani Taskinen <sniper@iki.fi> | +----------------------------------------------------------------------+ */ -/* $Id: php_ldap.h,v 1.8 2000/07/24 01:39:47 david Exp $ */ +/* $Id: php_ldap.h,v 1.9 2000/07/26 11:01:44 sniper Exp $ */ #ifndef PHP_LDAP_H #define PHP_LDAP_H @@ -75,6 +76,8 @@ PHP_FUNCTION(ldap_errno); PHP_FUNCTION(ldap_err2str); PHP_FUNCTION(ldap_error); + +PHP_FUNCTION(ldap_compare); ZEND_BEGIN_MODULE_GLOBALS(ldap) long default_link;

« previous php.cvs (#935) next »