[16846] in Kerberos_V5_Development

home help back first fref pref prev next nref lref last post

Re: Asynchronous operation and krb5 dependencies

daemon@ATHENA.MIT.EDU (Nathaniel McCallum)
Mon Jun 6 08:50:53 2011

From: Nathaniel McCallum <npmccallum@redhat.com>
To: Nico Williams <nico@cryptonector.com>
Date: Mon, 06 Jun 2011 08:50:46 -0400
In-Reply-To: <BANLkTimQmiJ+jH15+_RobwNaD8u7EL08wA@mail.gmail.com>
Message-ID: <1307364648.2174.1.camel@localhost>
Mime-Version: 1.0
Cc: "krbdev@mit.edu" <krbdev@mit.edu>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: krbdev-bounces@mit.edu

On Mon, 2011-06-06 at 05:46 -0500, Nico Williams wrote:
> On Fri, Jun 3, 2011 at 1:37 PM, Nathaniel McCallum
> <npmccallum@redhat.com> wrote:
> > This is not a DLL hell problem.  The problem is that exposing a
> > particular event loop in your public api means that at run time you are
> > locked into using that event loop (aside from using hacks like
> > LD_PRELOAD).  This means that your library is incompatible with every
> > application that chooses another event loop.
> >
> > The solution is simple. Your average library requires only a small
> > subset of what each event loop provides. If you can provide a *run-time*
> > wrapper which provides this small subset, you can make public api's
> > asynchronous without having to choose an event loop for your
> > applications.  This has nothing to do with DLL hell, unless you know of
> > a way to do lazy symbol loading during exec()...
> 
> I think the solution is simple: let the highest layer provide an event
> loop handle in the form of a set of libevent-like (same prototypes,
> basically) function pointers and even base pointer.
> 
> (Well, but then, how do you deal with APIs like the GSS-API where
> there's no obvious way to reference any particular context due to the
> lack of a krb5_context-like argument?)

This is exactly what we are doing, with a wrapper library.

GSS-API is largely unrelated (for now) since it will just have to
continue using the synchronous apis.  When GSS-API becomes async, it can
use libverto.

Nathaniel

_______________________________________________
krbdev mailing list             krbdev@mit.edu
https://mailman.mit.edu/mailman/listinfo/krbdev

home help back first fref pref prev next nref lref last post