cvs: php4 /ext/ldap ldap.c php_ldap.h
| From: | Jani Taskinen | Date: | Wed, 02 Aug 2000 13:11:46 +0000 |
| Subject: | cvs: php4 /ext/ldap ldap.c php_ldap.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-1012@lists.php.net to get a copy of this message | ||
sniper Wed Aug 2 06:11:46 2000 EDT
Modified files:
/php4/ext/ldap ldap.c php_ldap.h
Log:
- Added two new functions: ldap_t61_to_8859() and ldap_8859_to_t61().
These functions are available only when using openldap which is compiled
with STR_TRANSLATION and LDAP_CHARSET_8859 defined in ldap_cdefs.h (Jani)
Index: php4/ext/ldap/ldap.c
diff -u php4/ext/ldap/ldap.c:1.56 php4/ext/ldap/ldap.c:1.57
--- php4/ext/ldap/ldap.c:1.56 Fri Jul 28 15:39:22 2000
+++ php4/ext/ldap/ldap.c Wed Aug 2 06:11:46 2000
@@ -22,7 +22,7 @@
*/
-/* $Id: ldap.c,v 1.56 2000/07/28 22:39:22 sniper Exp $ */
+/* $Id: ldap.c,v 1.57 2000/08/02 13:11:46 sniper Exp $ */
#define IS_EXT_MODULE
#include "php.h"
@@ -91,6 +91,12 @@
PHP_FE(ldap_err2str, NULL)
PHP_FE(ldap_error, NULL)
PHP_FE(ldap_compare, NULL)
+
+#ifdef STR_TRANSLATION
+ PHP_FE(ldap_t61_to_8859, NULL)
+ PHP_FE(ldap_8859_to_t61, NULL)
+#endif
+
{NULL, NULL, NULL}
};
@@ -186,7 +192,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.56 2000/07/28 22:39:22
sniper Exp $" );
+ php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.57 2000/08/02 13:11:46
sniper Exp $" );
php_info_print_table_row(2, "Total Links", maxl );
#if HAVE_NSLDAP
@@ -1419,3 +1425,56 @@
}
/* }}} */
+
+#ifdef STR_TRANSLATION
+static void php_ldap_do_translate(INTERNAL_FUNCTION_PARAMETERS, int way) {
+ zval **value;
+ char *ldap_buf;
+ unsigned long ldap_len;
+ int result;
+
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &value) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+ convert_to_string_ex(value);
+ ldap_buf = (*value)->value.str.val;
+ ldap_len = (*value)->value.str.len;
+
+ if(ldap_len == 0) {
+ RETURN_FALSE;
+ }
+
+ if(way == 1) {
+ result = ldap_8859_to_t61(&ldap_buf, &ldap_len, 0);
+ } else {
+ result = ldap_t61_to_8859(&ldap_buf, &ldap_len, 0);
+ }
+
+ if (result == LDAP_SUCCESS) {
+ RETVAL_STRINGL(ldap_buf,ldap_len,1);
+ free(ldap_buf);
+ } else {
+ php_error(E_ERROR, "LDAP: Conversion from iso-8859-1 to t61 failed.");
+ RETVAL_FALSE;
+ }
+
+ return;
+}
+
+
+/* {{{ proto string ldap_t61_to_8859(string value)
+ Translate t61 characters to 8859 characters */
+PHP_FUNCTION(ldap_t61_to_8859) {
+ php_ldap_do_translate(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
+}
+/* }}} */
+
+
+/* {{{ proto string ldap_8859_to_t61(string value)
+ Translate 8859 characters to t61 characters */
+PHP_FUNCTION(ldap_8859_to_t61) {
+ php_ldap_do_translate(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
+}
+/* }}} */
+#endif
Index: php4/ext/ldap/php_ldap.h
diff -u php4/ext/ldap/php_ldap.h:1.9 php4/ext/ldap/php_ldap.h:1.10
--- php4/ext/ldap/php_ldap.h:1.9 Wed Jul 26 04:01:44 2000
+++ php4/ext/ldap/php_ldap.h Wed Aug 2 06:11:46 2000
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_ldap.h,v 1.9 2000/07/26 11:01:44 sniper Exp $ */
+/* $Id: php_ldap.h,v 1.10 2000/08/02 13:11:46 sniper Exp $ */
#ifndef PHP_LDAP_H
#define PHP_LDAP_H
@@ -78,6 +78,11 @@
PHP_FUNCTION(ldap_error);
PHP_FUNCTION(ldap_compare);
+
+#ifdef STR_TRANSLATION
+PHP_FUNCTION(ldap_t61_to_8859);
+PHP_FUNCTION(ldap_8859_to_t61);
+#endif
ZEND_BEGIN_MODULE_GLOBALS(ldap)
long default_link;