[116] in pc-kerberos
OS/2 port of kerberos DLL - Thread problems!?!
daemon@ATHENA.MIT.EDU (Mike Hojnowski)
Fri Jul 28 16:20:23 1995
To: pc-kerberos@MIT.EDU
Date: Fri, 28 Jul 1995 16:07:50 -0400
From: Mike Hojnowski <mqh@mqh.cit.cornell.edu>
Hi,
I'm wondering whether anyone has spent much time working on a port of a
kerberos DLL for OS/2. We started from a windows version here, and have
a mostly working version for non-threaded applications. Along the way, we
bumped into a number of issues. Three minor issues are below. However the
biggie is threading. I'll list that as issue "4" below.
1) No working makefiles in the distribution. We built some to get by.
2) GNU vs CSET environment. We decided to build on CSET, since the GNU
environment depended on EMX, which we didn't want to depend on.
3) In several modules there are these declarations:
static FILE *cnffile; /* XXX pbh added static because of MS bug in fgets()
*/
static char FAR *linebuf;/* XXX pbh added static because of MS bug in
fgets() */
What is the bug in fgets()? Does it exist in OS/2 CSET? Is there a
test code that proves the bug in MS that can be tested against the
OS/2 compiler?
4) This is the biggie. Threads. Most OS/2 applications we're looking at to
use kerberos are using threads. In particular, INETD spawned
processes, and things run off the NCSA WWW server.
The kerberos DLL doesn't have threading support. In particular, you
need to wrap any reference to globals and statics within
DosEnterCritSect() and DosExitCritSect() routines.
Also, "errno" isn't appropriate to use in threaded applications. You
need to use the sock_errno() routine to reference this.
Has anyone tackled the threading issue? It's a huge issue. It seems like we
practically have to write the DLL to make it work with threads. We (obviously)
are not anxious to tackle that. Any thoughts?
Mike
---
Michael Hojnowski - Sr Programmer/Analyst - Cornell University (607) 255-7407
WWW Home Page: http://mqh.cit.cornell.edu/~mqh/home.page.html
PGP Public Key: Can be found on my WWW home page