diff options
-rw-r--r-- | dso/beos/dso.c | 22 | ||||
-rw-r--r-- | include/apr_portable.h | 1 |
2 files changed, 21 insertions, 2 deletions
diff --git a/dso/beos/dso.c b/dso/beos/dso.c index e6764944a..7b578c31a 100644 --- a/dso/beos/dso.c +++ b/dso/beos/dso.c @@ -53,6 +53,7 @@ */ #include "beos/dso.h" +#include "apr_portable.h" #if APR_HAS_DSO @@ -60,9 +61,9 @@ static apr_status_t dso_cleanup(void *thedso) { apr_dso_handle_t *dso = thedso; - if (dso->handle != NULL && unload_add_on(dso->handle) < B_NO_ERROR) + if (dso->handle > 0 && unload_add_on(dso->handle) < B_NO_ERROR) return APR_EINIT; - dso->handle = NULL; + dso->handle = -1; return APR_SUCCESS; } @@ -112,4 +113,21 @@ APR_DECLARE(const char *) apr_dso_error(apr_dso_handle_t *dso, char *buffer, apr return buffer; } +APR_DECLARE(apr_status_t) apr_os_dso_handle_put(apr_dso_handle_t **aprdso, + apr_os_dso_handle_t *osdso, + apr_pool_t *pool) +{ + *aprdso = apr_pcalloc(pool, sizeof **aprdso); + (*aprdso)->handle = *osdso; + (*aprdso)->cont = pool; + return APR_SUCCESS; +} + +APR_DECLARE(apr_status_t) apr_os_dso_handle_get(apr_os_dso_handle_t *osdso, + apr_dso_handle_t *aprdso) +{ + *osdso = aprdso->handle; + return APR_SUCCESS; +} + #endif diff --git a/include/apr_portable.h b/include/apr_portable.h index db7241ef5..d0aa1d92d 100644 --- a/include/apr_portable.h +++ b/include/apr_portable.h @@ -117,6 +117,7 @@ typedef HMODULE apr_os_dso_handle_t; #elif defined(__BEOS__) #include <kernel/OS.h> +#include <kernel/image.h> struct apr_os_lock_t { /* Inter proc */ |