cvs: php4 /ext/ldap ldap.c php_ldap.h
| From: | Stig Venaas | Date: | Wed, 21 Nov 2001 20:14:17 +0000 |
| Subject: | cvs: php4 /ext/ldap ldap.c php_ldap.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-8278@lists.php.net to get a copy of this message | ||
venaas Wed Nov 21 15:14:17 2001 EDT
Modified files:
/php4/ext/ldap ldap.c php_ldap.h
Log:
Added ldap_sort() function
@- Added ldap_sort() function. (Stig Venaas)
Index: php4/ext/ldap/ldap.c
diff -u php4/ext/ldap/ldap.c:1.104 php4/ext/ldap/ldap.c:1.105
--- php4/ext/ldap/ldap.c:1.104 Wed Nov 14 17:05:33 2001
+++ php4/ext/ldap/ldap.c Wed Nov 21 15:14:17 2001
@@ -22,7 +22,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ldap.c,v 1.104 2001/11/14 22:05:33 venaas Exp $ */
+/* $Id: ldap.c,v 1.105 2001/11/21 20:14:17 venaas Exp $ */
#define IS_EXT_MODULE
#ifdef HAVE_CONFIG_H
@@ -99,6 +99,7 @@
PHP_FE(ldap_err2str, NULL)
PHP_FE(ldap_error, NULL)
PHP_FE(ldap_compare, NULL)
+ PHP_FE(ldap_sort, NULL)
#if ( LDAP_API_VERSION > 2000 ) || HAVE_NSLDAP
PHP_FE(ldap_get_option, third_argument_force_ref)
@@ -256,7 +257,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.104 2001/11/14 22:05:33
venaas Exp $" );
+ php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.105 2001/11/21 20:14:17
venaas Exp $" );
php_info_print_table_row(2, "Total Links", maxl );
#ifdef LDAP_API_VERSION
@@ -1529,6 +1530,36 @@
php_error(E_WARNING, "LDAP: Compare operation could not be completed: %s",
ldap_err2string(errno));
RETURN_LONG(-1);
+}
+/* }}} */
+
+/* {{{ proto int ldap_sort(int link, int result, string sortfilter)
+ Sort LDAP result entries */
+PHP_FUNCTION(ldap_sort)
+{
+ zval *link, *result;
+ LDAP *ldap;
+ char *sortfilter;
+ int sflen;
+ zend_rsrc_list_entry *le;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrs", &link, &result,
&sortfilter, &sflen) == FAILURE) {
+ RETURN_FALSE;
+ }
+
+ ZEND_FETCH_RESOURCE(ldap, LDAP *, &link, -1, "ldap link", le_link);
+
+ if (zend_hash_index_find(&EG(regular_list), Z_LVAL_P(result), (void **) &le) == FAILURE ||
le->type != le_result) {
+ php_error(E_WARNING, "Supplied resource is not a valid ldap result resource");
+ RETURN_FALSE;
+ }
+
+ if (ldap_sort_entries(ldap, (LDAPMessage **) &le->ptr, sflen ? sortfilter : NULL, strcmp)
!= LDAP_SUCCESS) {
+ php_error(E_WARNING, "LDAP sort failed: %s", ldap_err2string(errno));
+ RETURN_FALSE;
+ }
+
+ RETURN_TRUE;
}
/* }}} */
Index: php4/ext/ldap/php_ldap.h
diff -u php4/ext/ldap/php_ldap.h:1.20 php4/ext/ldap/php_ldap.h:1.21
--- php4/ext/ldap/php_ldap.h:1.20 Tue Nov 13 12:10:08 2001
+++ php4/ext/ldap/php_ldap.h Wed Nov 21 15:14:17 2001
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_ldap.h,v 1.20 2001/11/13 17:10:08 venaas Exp $ */
+/* $Id: php_ldap.h,v 1.21 2001/11/21 20:14:17 venaas Exp $ */
#ifndef PHP_LDAP_H
#define PHP_LDAP_H
@@ -77,6 +77,8 @@
PHP_FUNCTION(ldap_error);
PHP_FUNCTION(ldap_compare);
+
+PHP_FUNCTION(ldap_sort);
#if ( LDAP_API_VERSION > 2000 ) || HAVE_NSLDAP
PHP_FUNCTION(ldap_get_option);