Re: [Exim] Is Exin SNMP Aware?

Top Page
Delete this message
Reply to this message
Author: Sheldon Hearn
Date:  
To: Philip Hazel
CC: Theo E. Schlossnagle, exim-users
Subject: Re: [Exim] Is Exin SNMP Aware?

On Wed, 29 Aug 2001 10:14:36 +0100, Philip Hazel wrote:

> > I think the loadable module, with hooks is a much cleaner approach.
>
> Does every single OS that Exim runs under support loadable modules? In
> the same way? I've learned to be extremely cautious about introducing
> new OS functionality to Exim.


An easier way to answer this question might be:

    Does Exim run on any platforms on which Apache DSO is not supported?


Since the hard work's already been done there, all we need is a quick
comparison.

Here is Apache's list of platforms on which DSO (dynamic shared object)
mechanism for loadable modules is supported:

        o Out-of-the-box supported platforms are:
           - Linux     - SunOS         - UnixWare     - Darwin/Mac OS
           - FreeBSD   - Solaris       - AIX          - OpenStep/Mach
           - OpenBSD   - IRIX          - SCO          - DYNIX/ptx
           - NetBSD    - HPUX          - ReliantUNIX
           - BSDI      - Digital Unix  - DGUX


        o Entirely unsupported platforms are:
           - Ultrix


Basically, any platform with dlopen() support is going to be okay.

> Another approach, which is more basic, it to allow you to supply a C
> function that gets built and linked into Exim.


The real winner is to allow both approaches. The C function can either
be built and linked directly into the Exim binary, or linked into its
own loadable object.

Why do I care about loadable objects? In my experience, their real
value comes to light when you get into package management.

Here's an example, and a very real one that we ran into at UUNET SA.

Without Apache DSO, adding an embedded Perl interpreter to Apache meant
rebuilding the httpd binary. Same story for PHP3.

The advent of Apache DSO meant we could just do this on our FreeBSD
boxes:

    pkg_add apache13-ssl-1.3.x.tgz
    pkg_add mod_php3-3.0.x.tgz
    pkg_add mod_perl-1.2x.tgz


Whether you see a large volume of contributed or 3rd-party Exim
"modules" becoming available in the future is really the issue. If not,
it's hardly worth the effort.

But I think if you're going to allow user-defined code, you should at
least consider making that code dynamically loadable on platforms where
it's easy to do so. Platforms on which this is not supported will be no
worse off than if no loadable support were available at all. :-)

Ciao,
Sheldon.