cvs: php4 /ext/ldap ldap.c php_ldap.h
| From: | Jani Taskinen | 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;