Re: KITTEN BOF at IETF 60?
Ken Raeburn <[email protected]> Mon, 22 Mar 2004 13:14:11 -0500
| Newsgroups | gmane.ietf.cat |
|---|---|
| Message-ID | <[email protected]> |
Nicolas Williams <[email protected]> writes: >> If it's implementation-specific, then as far as writers of portable >> applications are concerned, it might as well be "no". > > Agreed. The question in mind is: can we just add mt requirements to the > C-bindings? I don't know. Can a compliant GSS-API implementation do things that make it unsafe to use in any multithreaded program even with application-level locking (e.g., watching stack addresses, on a system with a linear stack)? I'm not sure about that either. With a spec that ignores some areas like this, there are assumptions about the environment in which the implementation is required to work. If those assumptions aren't written down, then we have to guess, or ask. Of course, we can't specify absolutely everything. I don't think the C bindings should go so far as to tell you whether a GSSAPI implementation must be compatible with the GNU Emacs "unexec" techniques, for example. But I think thread systems are pervasive enough these days that they should be addressed, somehow. > And doesn't the foregoing apply to the base spec also? I'm not sure. It could probably be argued that multithreaded environments are outside the scope of the base spec, and possibly the basic C bindings, and that a new spec is needed for constraining the C bindings to the needs of such an environment, and writers of multithreaded applications in such environments should be looking for GSSAPI implementations conformant to the new spec, not just RFC 2744. But even if that's the approach to take, I think namespace and extension issues still need to be considered for a possible update to the C bindings. >> No, what's implicit in the name is that both should be unsigned >> integral types of at least 32 bits. On an ILP32 system, one could be >> unsigned int and the other unsigned long. Mostly compatible in C, but >> could trigger diagnostics if you use pointers or multiple declarations. > > Gross. Yeah, well... > Also, I just noticed that rfc2744 section 3.1 says that > OM_uint32 is at least 32 bits, not exactly. Yes. C exists on non-32-bit machines, and the GSS-API C bindings do support that, as far as I can tell. If the C bindings were being developed now, I would recommend using uint_least32_t or unsigned long for gss_uint32, and dropping the OM_uint32 stuff. (A C99 implementation is required to define uint32_t *if* a type with exactly 32 bits is available, but all C99 implementations must supply uint_least32_t.) But there's a bunch of existing code, which is unfortunately tied to this "if you have xom.h available" stuff. Ken -++**==--++**==--++**==--++**==--++**==--++**==--++**== This message was posted through the Stanford campus mailing list server. If you wish to unsubscribe from this mailing list, send the message body of "unsubscribe ietf-cat-wg" to [email protected]