bnicholes 01/08/27 17:16:08
Modified: dso/unix dso.c
Log:
Basically added a call to apr_dso_load() to make sure that any module that
is loaded by APR will be autounloaded by the OS when all references to
the module are released
Revision Changes Path
1.42 +21 -0 apr/dso/unix/dso.c
Index: dso.c
===================================================================
RCS file: /home/cvs/apr/dso/unix/dso.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- dso.c 2001/07/02 20:17:11 1.41
+++ dso.c 2001/08/28 00:16:08 1.42
@@ -72,6 +72,13 @@
#include <string.h> /* for strerror() on HP-UX */
#endif
+#ifdef NETWARE
+#include <library.h>
+#include <unistd.h>
+
+static int setautounloadflag (const char *path);
+#endif
+
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)
@@ -163,6 +170,10 @@
apr_pool_cleanup_register(pool, *res_handle, dso_cleanup,
apr_pool_cleanup_null);
+#ifdef NETWARE
+ setautounloadflag(path);
+#endif
+
return APR_SUCCESS;
}
@@ -243,5 +254,15 @@
}
return "No Error";
}
+
+#ifdef NETWARE
+static int setautounloadflag (const char *path)
+{
+ char name[256];
+
+ deconstruct(path, NULL, NULL, NULL, name, NULL, NULL, PATH_UNDEF);
+ SetAutoUnloadFlag(findnlmhandle(name, getaddressspace()));
+}
+#endif
#endif