summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dso/beos/dso.c22
-rw-r--r--include/apr_portable.h1
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 */