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

From: 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);

« previous php.cvs (#8278) next »