Index: include/http_core.h
===================================================================
RCS file: /home/cvspublic/httpd-2.0/include/http_core.h,v
retrieving revision 1.43
diff -u -r1.43 http_core.h
--- include/http_core.h	2001/04/13 05:19:25	1.43
+++ include/http_core.h	2001/06/11 20:22:28
@@ -60,6 +60,7 @@
 #define APACHE_HTTP_CORE_H
 
 #include "apr.h"
+#include "apr_hash.h"
 
 #if APR_HAVE_STRUCT_RLIMIT
 #include <sys/time.h>
@@ -497,6 +498,38 @@
 AP_CORE_DECLARE_NONSTD(const char *) ap_limit_section(cmd_parms *cmd, void *dummy, const char *arg);
 
 #endif
+
+typedef enum {
+	mgmt_line_type_string,
+	mgmt_line_type_long,
+	mgmt_line_type_hash
+} mgmt_line_type_e;
+
+typedef union {
+	char* string;
+	long	long;
+	apr_hash_t *ht;
+} mgmt_line_value;
+
+typedef struct mgmt_line_t {
+	char *description;
+	char *module; 
+	mgmt_line_type_e valType;
+	mgmt_line_value val;
+} mgmt_line_t;
+
+/**
+ * Gives modules a method to provide metrics/statistics about their operational status
+ *
+ * @param p A pool to use to create entries in the hash table
+ * @param val The name of the parameter(s) that is wanted. This is tree-structured would be in
+ * the form ('*' is all the tree, 'module.*' all of the module , 'module.foo.*', or 'module.foo.bar' )
+ * @param ht The hash table to store the results (using mgmt_line_t) 
+ * @ingroup hooks
+ */
+
+AP_DECLARE_HOOK(int, mgmt_get_vars, 
+	(apr_pool_t *p, const char*val,apr_hash_t *ht))
 
 #ifdef __cplusplus
 }
Index: server/core.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/server/core.c,v
retrieving revision 1.17
diff -u -r1.17 core.c
--- server/core.c	2001/06/08 16:39:48	1.17
+++ server/core.c	2001/06/11 20:22:49
@@ -60,6 +60,7 @@
 #include "apr_strings.h"
 #include "apr_lib.h"
 #include "apr_fnmatch.h"
+#include "apr_hash.h"
 #include "apr_thread_proc.h"    /* for RLIMIT stuff */
 
 #define APR_WANT_IOVEC
@@ -93,6 +94,13 @@
 #define AP_DEFAULT_LIMIT_XML_BODY       ((size_t)1000000)
 
 #define AP_MIN_SENDFILE_BYTES           (256)
+
+APR_HOOK_STRUCT(
+	APR_HOOK_LINK(mgmt_get_vars)
+)
+
+AP_IMPLEMENT_HOOK_RUN_FIRST(int,mgmt_get_vars,
+      (apr_pool_t *p,const  char*val, apr_hash_t *ht),(p,val,ht),DECLINED)
 
 /* Server core module... This module provides support for really basic
  * server operations, including options and commands which control the
