[15846] in Kerberos_V5_Development

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

Re: design choices for a loadable module interface

daemon@ATHENA.MIT.EDU (Tom Yu)
Thu May 27 13:57:35 2010

To: Zhanna Tsitkova <tsitkova@mit.edu>
From: Tom Yu <tlyu@mit.edu>
Date: Thu, 27 May 2010 13:57:29 -0400
In-Reply-To: <06103CC3-4C57-4C5E-8B1A-9647A6F6075A@mit.edu> (Zhanna Tsitkova's
	message of "Wed, 26 May 2010 11:17:09 -0400")
Message-ID: <ldvvda9p6ra.fsf@cathode-dark-space.mit.edu>
MIME-Version: 1.0
Cc: "krbdev@mit.edu" <krbdev@mit.edu>,
   Nicolas Williams <nicolas.williams@oracle.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: krbdev-bounces@mit.edu

Zhanna Tsitkova <tsitkova@MIT.EDU> writes:

>  dynamic plugins - two cases:
>
> 1.  plugin itself is built-in, but loads a shared library. Example
> here would be say, "audit plugin"  that dynamically loads some
> "libaudit_bogus.so". For this case I suggested to have "separate
> symbol for each interface function".  (yesterday I meant this case
> when I was talking about the dynamic libs). The benefit of this kind
> of plugin is the pain-free shared library. i.e. libaudit_bogus.so,
> updates.

Do you mean that from the perspective of the plugin framework, the
plugin module behaves as if it were built in, but its implementation
actually does a dlopen() of some shared object?  How does it find the
shared object file, and why isn't the task of loading the module left
to the plugin framework?

> 2. plugin itself is a dynamic lib: This one should be very similar to
> what we have for static plugins in the new plugin architecture. Plugin
> impl would be
> a shared lib. Here one has two options. One is to build  just a very
> small library say, "plugin_XXX.so" that knows everything about
> underlying
> functionality of, say, "libaudit_bogus.so". Alternatively, we can
> statically link  plugin_XXX with  libaudit_bogus.so and treat it as a
> new
> dynamically loadable plugin. Obviously, the only interface this plugin
> would have is  plugin_XXX_create. Trick here is to pass the ref info
> to plugin_manager.

Which of these would be the runtime-loadable shared objects, and which
ones would be dependencies of the calling library (or program)?
_______________________________________________
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