Graham Leggett wrote:
Hi all,

The current dso helper code in apr-util masks the apr_dso_handle_t structure from the caller, and in the process makes it impossible to call apr_dso_error to find the human readable error message for why the module failed to load.

The attached patch fixes this, making a change to the include/private/apu_internal.h header file to expose the apr_dso_handle_t structure.

The plan is to commit this to trunk only (1.4.x and later) - given that the header is private, does this break the ABI rules?

The ABI rules generally allow internal changes.

However, -1 to this patch, as it is a private function and you haven't
actually demonstrated a use case.  This implies you are relying on it
externally which defeats the 'private' declaration.

Likewise, the module handle is private.

apu_dso_load is transparent to the user.  If misconfigured, the caller
(e.g. mod_ldap/mod_db[dm] caller) is clueless that this might have
happened.  I suggest proposing a specific API for dealing with the
public aspects of apu_dso_load, and have both functions return some
"special case" error code for this purpose, which maps to the most
recent error result of apu_dso_load.


Reply via email to