summaryrefslogtreecommitdiffstats
path: root/debian/perl-framework/c-modules/memory_track/mod_memory_track.c
diff options
context:
space:
mode:
Diffstat (limited to 'debian/perl-framework/c-modules/memory_track/mod_memory_track.c')
-rw-r--r--debian/perl-framework/c-modules/memory_track/mod_memory_track.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/debian/perl-framework/c-modules/memory_track/mod_memory_track.c b/debian/perl-framework/c-modules/memory_track/mod_memory_track.c
new file mode 100644
index 0000000..25d11ca
--- /dev/null
+++ b/debian/perl-framework/c-modules/memory_track/mod_memory_track.c
@@ -0,0 +1,45 @@
+#if CONFIG_FOR_HTTPD_TEST
+
+<Location /memory_track>
+ SetHandler memory-track
+</Location>
+
+#endif
+
+#define APACHE_HTTPD_TEST_HANDLER memory_track_handler
+
+#include "apache_httpd_test.h"
+#include "ap_mpm.h"
+
+static int memory_track_handler(request_rec *r)
+{
+ int result;
+
+ if (strcmp(r->handler, "memory-track")) {
+ return DECLINED;
+ }
+ if (r->method_number != M_GET) {
+ return DECLINED;
+ }
+
+ /* t/apache/leaks.t not reliable with event. */
+ if (!ap_mpm_query(AP_MPMQ_IS_ASYNC, &result) && result) {
+ return HTTP_SERVICE_UNAVAILABLE;
+ }
+
+#if APR_POOL_DEBUG
+ {
+ conn_rec *c = r->connection;
+ apr_size_t n = apr_pool_num_bytes(c->pool, 1);
+
+ ap_rprintf(r, "connection,%ld,%lu\n", c->id, n);
+ }
+
+ return OK;
+#else
+ return HTTP_NOT_IMPLEMENTED;
+#endif
+}
+
+APACHE_HTTPD_TEST_MODULE(memory_track);
+