[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: EBCDIC
Howard Chu wrote:
Well, I've just gotten a successful run of the test suite. To re-cap, the
OS/390 C compiler has an option to generate all char/string literals in
ASCII. The runtime library also has an ASCII-compatibility mode (LIBASCII)
that supports many of the needed functions, so that defining the flags for
these two features takes care of most of the work.
The LIBASCII version of getopt() always segfaulted tho, so I tweaked
makefiles
to use liblutil/getopt instead. Also, I had to intercept stdio (fgets, fputs,
fprintf etc.) to translate input and output accordingly when reading config
files and writing log files. For now I'm throwing the glue into a new file
liblutil/stdio.c. Most of the changes wind up in liblutil this way.
Along those lines, I note that there is a lutil_progname that is currently
used
only by the slap tools. I think it would make sense to also use this in
clients/tools. Any objections?
Will be committing updates shortly. At present there's a lot of hand-tweaking
still needed, I'll write up a How-To for the FAQ-o-Matic. Currently I only
have
gdbm support, and I built the gdbm in ASCII mode as well. I suppose I could
have left it alone, and done ASCII/EBCDIC translation of database filenames
in
ldbm.c or somesuch. I also needed to build an ASCII version of the regex
library;
the OS/390 library has a LIBASCII version of regcomp but it never matched
anything
successfully so I replaced it with the Henry Spencer library.
So with this build, OpenLDAP 2.1 runs on OS/390 and all internal data is left
in
ASCII/UTF8. The translation to/from EBCDIC only occurs when reading/writing
files/stdout/stderr. I guess this makes it difficult for other apps to use
the
client libraries, but I'll cross that bridge later.
I tried your way on a BS2000 and give up after finding that a lot of string
fonction like ispace() were only for EBCDIC...
I convert the data in input/output and handle all strings in EBCDIC, I have got
a run slapd but I have no time to finish it...
I send as attachement the patch I needed to get the slapd running on my EBCDIC
machine. (Just for Fun that some month old!)
I will try the new code on Monday on my machine and give some feedback.
Cheers
Jean-frederic
-- Howard Chu
Chief Architect, Symas Corp. Director, Highland Sun
http://www.symas.com http://highlandsun.com/hyc
Symas: Premier OpenSource Development and Support
-----Original Message-----
From: Michael Stroder [mailto:michael@stroeder.com]
Howard Chu wrote:
On the server side I'm considering what it would take to leave
the internals
in UTF8 and just translate DNs specified in the config file. Could use
something
like BSD's xstr to extract the string constants from the source and
ASCII-encode
the ones that are ber_print'd as a preprocessing step. Still not
sure, the
debug logs would be ugly.
Make sure to find out which EBCDIC variant to use (see RFC1345).
IMHO it's not worth the effort.
Ciao, Michael.
Index: build/ltmain.sh
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/build/ltmain.sh,v
retrieving revision 1.5.2.7
diff -u -r1.5.2.7 ltmain.sh
--- build/ltmain.sh 6 Nov 2001 16:29:18 -0000 1.5.2.7
+++ build/ltmain.sh 25 Jul 2002 14:24:24 -0000
@@ -76,8 +76,17 @@
# metacharacters that are still active within double-quoted strings.
Xsed='sed -e 1s/^X//'
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-SP2NL='tr \040 \012'
-NL2SP='tr \015\012 \040\040'
+# test EBCDIC or ASCII
+case `echo A|od -x` in
+*[Cc]1*) # EBCDIC based system
+ SP2NL="tr '\100' '\n'"
+ NL2SP="tr '\r\n' '\100\100'"
+ ;;
+*) # Assume ASCII based system
+ SP2NL="tr '\040' '\012'"
+ NL2SP="tr '\015\012' '\040\040'"
+ ;;
+esac
# NLS nuisances.
# Only set LANG and LC_ALL to C if already set.
Index: include/ldap_int_thread.h
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/include/ldap_int_thread.h,v
retrieving revision 1.6.2.5
diff -u -r1.6.2.5 ldap_int_thread.h
--- include/ldap_int_thread.h 4 Jan 2002 20:38:15 -0000 1.6.2.5
+++ include/ldap_int_thread.h 25 Jul 2002 14:24:31 -0000
@@ -21,6 +21,10 @@
* *
**********************************/
+#ifdef _OSD_POSIX
+#undef socklen_t
+#endif
+
#include <pthread.h>
#ifdef HAVE_SCHED_H
#include <sched.h>
Index: include/ldap_pvt.h
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/include/ldap_pvt.h,v
retrieving revision 1.7.4.15
diff -u -r1.7.4.15 ldap_pvt.h
--- include/ldap_pvt.h 4 Jan 2002 20:38:15 -0000 1.7.4.15
+++ include/ldap_pvt.h 25 Jul 2002 14:24:31 -0000
@@ -20,6 +20,10 @@
#include <ldap_cdefs.h>
#include <lber.h> /* get ber_slen_t */
+#ifdef _OSD_POSIX
+extern unsigned char os_toascii[];
+#endif
+
LDAP_BEGIN_DECL
#define LDAP_PROTO_TCP 1 /* ldap:// */
@@ -229,7 +233,12 @@
LDAP_F (char*) ldap_utf8_strtok( char* sp, const char* sep, char **last);
/* Optimizations */
+#ifdef _OSD_POSIX
+#define LDAP_UTF8_ISASCII(p) \
+( (const unsigned char) (os_toascii[* (const unsigned char *) (p)]) < 0x80 )
+#else
#define LDAP_UTF8_ISASCII(p) ( * (const unsigned char *) (p) < 0x80 )
+#endif
#define LDAP_UTF8_CHARLEN(p) ( LDAP_UTF8_ISASCII(p) \
? 1 : ldap_utf8_charlen((p)) )
#define LDAP_UTF8_OFFSET(p) ( LDAP_UTF8_ISASCII(p) \
Index: include/ac/socket.h
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/include/ac/socket.h,v
retrieving revision 1.19.2.12
diff -u -r1.19.2.12 socket.h
--- include/ac/socket.h 14 Jan 2002 19:49:59 -0000 1.19.2.12
+++ include/ac/socket.h 25 Jul 2002 14:24:31 -0000
@@ -39,6 +39,11 @@
#include <arpa/inet.h>
#endif
+#ifdef _OSD_POSIX
+#undef T_UNSPEC
+#define BIT_ZERO_ON_LEFT
+#endif
+
#ifdef HAVE_ARPA_NAMESER_H
#include <arpa/nameser.h>
#endif
Index: libraries/liblber/bprint.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/libraries/liblber/bprint.c,v
retrieving revision 1.16.6.8
diff -u -r1.16.6.8 bprint.c
--- libraries/liblber/bprint.c 4 Jan 2002 20:38:18 -0000 1.16.6.8
+++ libraries/liblber/bprint.c 25 Jul 2002 14:24:32 -0000
@@ -176,11 +176,15 @@
off = BP_GRAPH + n + ((n >= 8)?1:0);
+#ifdef _OSD_POSIX
+ line[ BP_GRAPH + n ] = asciiprint(data[i]);
+#else
if ( isprint( data[i] )) {
line[ BP_GRAPH + n ] = data[i];
} else {
line[ BP_GRAPH + n ] = '.';
}
+#endif
}
(*ber_pvt_log_print)( line );
Index: libraries/liblber/decode.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/libraries/liblber/decode.c,v
retrieving revision 1.34.6.10
diff -u -r1.34.6.10 decode.c
--- libraries/liblber/decode.c 4 Jan 2002 20:38:18 -0000 1.34.6.10
+++ libraries/liblber/decode.c 25 Jul 2002 14:24:32 -0000
@@ -299,6 +299,9 @@
return LBER_DEFAULT;
}
(*buf)[datalen] = '\0';
+#ifdef _OSD_POSIX
+ ascii2ebcdic(*buf,*buf,datalen);
+#endif
return tag;
}
@@ -324,12 +327,15 @@
return LBER_DEFAULT;
}
+ ber_log_printf( LDAP_DEBUG_TRACE, ber->ber_debug,
+ "ber_get_stringal len (%d)\n", len );
if( len == 0 ) {
(*bv)->bv_val = NULL;
(*bv)->bv_len = 0;
return tag;
}
+
(*bv)->bv_val = (char *) LBER_MALLOC( len + 1 );
if ( (*bv)->bv_val == NULL ) {
LBER_FREE( *bv );
@@ -345,6 +351,11 @@
((*bv)->bv_val)[len] = '\0';
(*bv)->bv_len = len;
+#ifdef _OSD_POSIX
+ ascii2ebcdic(((*bv)->bv_val),((*bv)->bv_val),len);
+#endif
+ ber_log_printf( LDAP_DEBUG_TRACE, ber->ber_debug,
+ "ber_get_stringal val (%s)\n", ((*bv)->bv_val) );
return tag;
}
@@ -624,6 +635,8 @@
}
rc = ber_get_stringal( ber, &((*bv)[j]) );
+#ifdef _OSD_POSIX
+#endif
j++;
}
if ( j > 0 ) (*bv)[j] = NULL;
Index: libraries/liblber/encode.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/libraries/liblber/encode.c,v
retrieving revision 1.23.4.7
diff -u -r1.23.4.7 encode.c
--- libraries/liblber/encode.c 4 Jan 2002 20:38:19 -0000 1.23.4.7
+++ libraries/liblber/encode.c 25 Jul 2002 14:24:32 -0000
@@ -278,6 +278,12 @@
{
ber_len_t taglen, lenlen;
int rc;
+ char *buff;
+#ifdef _OSD_POSIX
+ char buf[128];
+ int ret;
+ int lenght;
+#endif
assert( ber != NULL );
assert( str != NULL );
@@ -291,13 +297,30 @@
if ( (taglen = ber_put_tag( ber, tag, 0 )) == -1 )
return -1;
+#ifdef _OSD_POSIX
+ if (len<128) {
+ ebcdic2ascii(buf,str,len);
+ buff = buf;
+ } else {
+ buff = malloc(len);
+ assert( buff != NULL );
+ ebcdic2ascii(buff,str,len);
+ }
+#else
+ buff = str;
+#endif
if ( (lenlen = ber_put_len( ber, len, 0 )) == -1 ||
- (ber_len_t) ber_write( ber, str, len, 0 ) != len ) {
+ (ber_len_t) ber_write( ber, buff, len, 0 ) != len ) {
rc = -1;
} else {
/* return length of tag + length + contents */
rc = taglen + lenlen + len;
}
+#ifdef _OSD_POSIX
+ if (len>=128) {
+ free(buff);
+ }
+#endif
return rc;
}
@@ -324,12 +347,40 @@
LDAP_CONST char *str,
ber_tag_t tag )
{
+/* JFC
+#ifdef _OSD_POSIX
+ char *buff;
+ char buf[128];
+ int ret;
+ int len;
+#endif
+ */
assert( ber != NULL );
assert( str != NULL );
assert( BER_VALID( ber ) );
+
+/* JFC
+#ifdef _OSD_POSIX
+ len = strlen( str );
+ if (len<128) {
+ ebcdic2ascii(buf,str,len);
+ ret = ber_put_ostring( ber, buf, len, tag );
+ } else {
+
+ buff = malloc(len);
+ assert( buff != NULL );
+ ebcdic2ascii(buff,str,len);
+ ret = ber_put_ostring( ber, buff, len, tag );
+ free(buff);
+ }
+#else
+ */
return ber_put_ostring( ber, str, strlen( str ), tag );
+/* JFC
+#endif
+ */
}
int
Index: libraries/libldap/utf-8.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/libraries/libldap/utf-8.c,v
retrieving revision 1.13.2.3
diff -u -r1.13.2.3 utf-8.c
--- libraries/libldap/utf-8.c 4 Jan 2002 20:38:22 -0000 1.13.2.3
+++ libraries/libldap/utf-8.c 25 Jul 2002 14:24:33 -0000
@@ -29,7 +29,12 @@
#include "ldap_defaults.h"
#undef ISASCII
+#ifdef _OSD_POSIX
+extern unsigned char os_toascii[];
+#define ISASCII(uc) isascii(uc)
+#else
#define ISASCII(uc) ((uc) < 0x80)
+#endif
#undef UCS4_INVALID
#define UCS4_INVALID 0x80000000U
@@ -78,7 +83,13 @@
*/
int ldap_utf8_charlen( const char * p )
{
+
+#ifdef OSD_POSIX
+ unsigned c = (const unsigned char)
+ os_toascii[* (const unsigned char *)(p)];
+#else
unsigned c = * (const unsigned char *) p;
+#endif
if ((c & 0xfe ) == 0xfc) {
return 6;
@@ -200,6 +211,13 @@
if( LDAP_UTF8_ISASCII(u) ) {
return (char *) &p[1];
}
+
+#ifdef OSD_POSIX
+/* JFC has to add something!!!
+ const unsigned char *u = (const unsigned char *)
+ &os_toascii[* (const unsigned char *)(p)];
+ */
+#endif
for( i=1; i<6; i++ ) {
if ( ( u[i] & 0xc0 ) != 0x80 ) {
Index: libraries/liblunicode/ucdata/ucdata.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/libraries/liblunicode/ucdata/ucdata.c,v
retrieving revision 1.15
diff -u -r1.15 ucdata.c
--- libraries/liblunicode/ucdata/ucdata.c 4 Jan 2002 20:17:42 -0000 1.15
+++ libraries/liblunicode/ucdata/ucdata.c 25 Jul 2002 14:24:35 -0000
@@ -37,6 +37,7 @@
#include "ucdata.h"
+
/**************************************************************************
*
* Miscellaneous types, data, and support functions.
@@ -1138,10 +1139,14 @@
int
ucdata_load(char *paths, int masks)
{
+
int error = 0;
- if (masks & UCDATA_CTYPE)
+ ldap_log_printf( NULL,0xffff,"ucdata_load: %s %d\n",paths,masks,0);
+ if (masks & UCDATA_CTYPE) {
error |= _ucprop_load(paths, 0) < 0 ? UCDATA_CTYPE : 0;
+ ldap_log_printf( NULL,0xffff,"_ucprop_load: %d (error)\n",error,0,0);
+ }
if (masks & UCDATA_CASE)
error |= _uccase_load(paths, 0) < 0 ? UCDATA_CASE : 0;
if (masks & UCDATA_DECOMP)
@@ -1153,6 +1158,7 @@
if (masks & UCDATA_COMP)
error |= _uccomp_load(paths, 0) < 0 ? UCDATA_COMP : 0;
+ ldap_log_printf( NULL,0xffff,"ucdata_load: %s %d (error: %d)\n",paths,masks,error);
return -error;
}
Index: libraries/liblutil/base64.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/libraries/liblutil/base64.c,v
retrieving revision 1.6.2.4
diff -u -r1.6.2.4 base64.c
--- libraries/liblutil/base64.c 4 Jan 2002 20:38:24 -0000 1.6.2.4
+++ libraries/liblutil/base64.c 25 Jul 2002 14:24:35 -0000
@@ -57,7 +57,11 @@
#include <ac/string.h>
/* include socket.h to get sys/types.h and/or winsock2.h */
+#ifdef _OSD_POSIX
+#include <sys/types.h>
+#else
#include <ac/socket.h>
+#endif
#include "lutil.h"
Index: libraries/liblutil/md5.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/libraries/liblutil/md5.c,v
retrieving revision 1.5.8.5
diff -u -r1.5.8.5 md5.c
--- libraries/liblutil/md5.c 4 Jan 2002 20:38:24 -0000 1.5.8.5
+++ libraries/liblutil/md5.c 25 Jul 2002 14:24:35 -0000
@@ -39,7 +39,11 @@
#include <ac/string.h>
/* include socket.h to get sys/types.h and/or winsock2.h */
+#ifdef _OSD_POSIX
+#include <sys/types.h>
+#else
#include <ac/socket.h>
+#endif
#include <lutil_md5.h>
Index: servers/slapd/add.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/servers/slapd/add.c,v
retrieving revision 1.31.2.16
diff -u -r1.31.2.16 add.c
--- servers/slapd/add.c 19 Jan 2002 07:23:14 -0000 1.31.2.16
+++ servers/slapd/add.c 25 Jul 2002 14:24:36 -0000
@@ -118,6 +118,8 @@
goto done;
}
+ Debug( LDAP_DEBUG_ANY, "do_add: for %s (1) %s\n",
+ mod->ml_type,(mod->ml_bvalues[0])->bv_val,0);
*modtail = mod;
modtail = &mod->ml_next;
}
Index: servers/slapd/backend.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/servers/slapd/backend.c,v
retrieving revision 1.42.2.19
diff -u -r1.42.2.19 backend.c
--- servers/slapd/backend.c 4 Jan 2002 20:38:26 -0000 1.42.2.19
+++ servers/slapd/backend.c 25 Jul 2002 14:24:36 -0000
@@ -541,6 +541,10 @@
struct berval *cred )
{
int result;
+ char toto[256];
+ int ltoto;
+
+ Debug(LDAP_DEBUG_TRACE, "be_isroot_pw: %s\n",ndn,0,0);
if ( ! be_isroot( be, ndn ) ) {
return 0;
@@ -557,7 +561,20 @@
#endif
#endif
+ ltoto = be->be_root_pw.bv_len;
+ memcpy(toto,be->be_root_pw.bv_val,ltoto);
+ toto[ltoto] = '\0';
+ Debug(LDAP_DEBUG_TRACE, "be_isroot_pw: pass: %s\n",
+ toto,0,0);
+ ltoto = cred->bv_len;
+ memcpy(toto,cred->bv_val,ltoto);
+ toto[ltoto] = '\0';
+ Debug(LDAP_DEBUG_TRACE, "be_isroot_pw: cred: %s\n",
+ toto,0,0);
+
result = lutil_passwd( &be->be_root_pw, cred, NULL );
+ Debug(LDAP_DEBUG_TRACE, "be_isroot_pw: %s (ret: %d)\n",
+ ndn,result,0);
#if defined( SLAPD_CRYPT ) || defined( SLAPD_SPASSWD )
#ifdef SLAPD_SPASSWD
Index: servers/slapd/bind.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/servers/slapd/bind.c,v
retrieving revision 1.38.2.15
diff -u -r1.38.2.15 bind.c
--- servers/slapd/bind.c 4 Jan 2002 20:38:26 -0000 1.38.2.15
+++ servers/slapd/bind.c 25 Jul 2002 14:24:36 -0000
@@ -45,6 +45,8 @@
const char *text;
struct berval cred;
Backend *be;
+ char toto[256];
+ int ltoto;
Debug( LDAP_DEBUG_TRACE, "do_bind\n", 0, 0, 0 );
@@ -284,7 +286,14 @@
}
if ( method == LDAP_AUTH_SIMPLE ) {
- /* accept "anonymous" binds */
+ /* accept "anonymous" JFC binds */
+#ifdef _OSD_POSIX
+ ltoto = cred.bv_len;
+ memcpy(toto,cred.bv_val,ltoto);
+
+ Debug(LDAP_DEBUG_TRACE, "do_bind: cred: %s (%d)\n",
+ toto,ltoto,0);
+#endif
if ( cred.bv_len == 0 || ndn == NULL || *ndn == '\0' ) {
rc = LDAP_SUCCESS;
text = NULL;
@@ -366,6 +375,7 @@
* appropriate one, or send a referral to our "referral server"
* if we don't hold it.
*/
+ Debug( LDAP_DEBUG_TRACE,"do_bind: JFC %d %d\n",version, method, 0 );
if ( (be = select_backend( ndn, 0 )) == NULL ) {
if ( default_referral ) {
@@ -373,6 +383,8 @@
NULL, NULL, default_referral, NULL );
} else {
+ Debug( LDAP_DEBUG_TRACE,"do_bind: JFC not found %d %d\n"
+ ,version, method, 0 );
/* noSuchObject is not allowed to be returned by bind */
send_ldap_result( conn, op, rc = LDAP_INVALID_CREDENTIALS,
NULL, NULL, NULL, NULL );
@@ -401,6 +413,8 @@
ret = (*be->be_bind)( be, conn, op, dn, ndn,
method, &cred, &edn );
+ Debug( LDAP_DEBUG_TRACE,"do_bind: JFC %d ret: %d\n",
+ version, ret, 0 );
if ( ret == 0 ) {
ldap_pvt_thread_mutex_lock( &conn->c_mutex );
Index: servers/slapd/daemon.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/servers/slapd/daemon.c,v
retrieving revision 1.99.2.25
diff -u -r1.99.2.25 daemon.c
--- servers/slapd/daemon.c 4 Jan 2002 20:38:27 -0000 1.99.2.25
+++ servers/slapd/daemon.c 25 Jul 2002 14:24:36 -0000
@@ -255,6 +255,12 @@
hints.ai_family = AF_UNSPEC;
snprintf(serv, sizeof serv, "%d", port);
+ Debug(LDAP_DEBUG_ANY,
+ "host: %s port: %d\n",host,port,0);
+ Debug(LDAP_DEBUG_ANY,
+ "port: %s port: %d\n",serv,port,0);
+
+
if (err = getaddrinfo(host, serv, &hints, &res)) {
Debug( LDAP_DEBUG_ANY, "daemon: getaddrinfo failed: %s\n",
AC_GAI_STRERROR(err), 0, 0);
Index: servers/slapd/modify.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/servers/slapd/modify.c,v
retrieving revision 1.31.2.19
diff -u -r1.31.2.19 modify.c
--- servers/slapd/modify.c 4 Jan 2002 20:38:28 -0000 1.31.2.19
+++ servers/slapd/modify.c 25 Jul 2002 14:24:36 -0000
@@ -413,8 +413,8 @@
if( rc != 0 ) {
slap_mods_free( mod );
snprintf( textbuf, textlen,
- "%s: value #%ld invalid per syntax",
- ml->ml_type, (long) nvals );
+ "%s: value #%ld (%s) invalid per syntax (%s)",
+ ml->ml_type, (long) nvals , (ml->ml_bvalues[nvals])->bv_val,ad->ad_type->sat_syntax->ssyn_oid );
*text = textbuf;
return LDAP_INVALID_SYNTAX;
}
Index: servers/slapd/schema_init.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/servers/slapd/schema_init.c,v
retrieving revision 1.42.2.37
diff -u -r1.42.2.37 schema_init.c
--- servers/slapd/schema_init.c 15 Jan 2002 18:55:55 -0000 1.42.2.37
+++ servers/slapd/schema_init.c 25 Jul 2002 14:24:37 -0000
@@ -539,6 +539,8 @@
for( count = in->bv_len; count > 0; count-=len, u+=len ) {
/* get the length indicated by the first byte */
len = LDAP_UTF8_CHARLEN( u );
+ Debug(LDAP_DEBUG_ARGS,"UTF8StringValidate: %d at %d\n",
+ len,count,0);
/* should not be zero */
if( len == 0 ) return LDAP_INVALID_SYNTAX;
Index: servers/slapd/back-ldbm/key.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/servers/slapd/back-ldbm/key.c,v
retrieving revision 1.1.2.3
diff -u -r1.1.2.3 key.c
--- servers/slapd/back-ldbm/key.c 4 Jan 2002 20:38:34 -0000 1.1.2.3
+++ servers/slapd/back-ldbm/key.c 25 Jul 2002 14:24:39 -0000
@@ -76,7 +76,12 @@
Debug( LDAP_DEBUG_TRACE, "<= key_change %d\n", rc, 0, 0 );
+#ifdef _OSD_POSIX
+ /* I DO think that ldap_pvt_thread_yield does not work well */
+ Debug( LDAP_DEBUG_TRACE, "<= key_change JFC patch\n",0,0,0);
+#else
ldap_pvt_thread_yield();
+#endif
return rc;
}
Index: servers/slapd/back-sql/bind.c
===================================================================
RCS file: /home/cvs/OpenLDAP/pkg/ldap/servers/slapd/back-sql/bind.c,v
retrieving revision 1.5.2.2
diff -u -r1.5.2.2 bind.c
--- servers/slapd/back-sql/bind.c 30 Oct 2000 21:41:21 -0000 1.5.2.2
+++ servers/slapd/back-sql/bind.c 25 Jul 2002 14:24:39 -0000
@@ -35,6 +35,11 @@
backsql_srch_info bsi;
Debug(LDAP_DEBUG_TRACE,"==>backsql_bind()\n",0,0,0);
+
+#ifdef _OSD_POSIX
+ if ( method == LDAP_AUTH_SIMPLE )
+ ascii2ebcdic(credw->bv_val,credw->bv_val,cred->bv_len);
+#endif
if ( be_isroot_pw( be, conn, ndn, cred ) )
{
- Follow-Ups:
- RE: EBCDIC
- From: "Howard Chu" <hyc@highlandsun.com>
- References:
- RE: EBCDIC
- From: "Howard Chu" <hyc@highlandsun.com>