Autor: David Woodhouse Data: A: Peter Benie CC: exim-users Assumpte: Re: [Exim] Re: request for version 4.10 (local_scan)
Peter.Benie@??? said: > > As you can see, though, I (well, David really) have already written
> > the local_scan that does all the dlopen stuff. All that remains is
> > copying it to your source tree :-). > Please don't copy this patch in its current form. It has a few
> weaknesses:
I second that. It was provided as a proof-of-concept hack, for further
development.
> 1) It casts pointer to object into pointer to function This means that
> it can't be implemented on architectures where these types have
> different widths. (Very many programs that use dlsym make this error.)
> Instead, dlsym should be used to retrieve a method table containing
> the functions exported by the library.
Heh. Shoot me :)
Likewise for the local_scan == NULL case.
> 2) It's overly restrictive about the way it handles the ABI version.
> local_scan_version_fn should be given a minimum and maxiumum version
> supported by the caller so it pick a version with which it is happy.
Indeed. Actually the ABI is a whole can of worms all on its own -- as soon
as we build Exim with -rdynamic we start exporting all kinds of internal
functions which Philip may want to change and/or remove at any time.
I threw in a simple version check just as a placeholder for 'Think about
this some more'.