]> granicus.if.org Git - apache/commitdiff
Add optional hook to extend mod_status output.
authorJoe Orton <jorton@apache.org>
Mon, 21 Jul 2003 14:48:02 +0000 (14:48 +0000)
committerJoe Orton <jorton@apache.org>
Mon, 21 Jul 2003 14:48:02 +0000 (14:48 +0000)
* configure.in: Add modules/generators to include path.

* Makefile.in: Install mod_status.h.

* modules/generators/mod_status.h: New file.

* modules/generators/mod_status.c: Implement ap_run_status_hook.
(status_handler): Run status hooks.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100724 13f79535-47bb-0310-9956-ffa450edef68

Makefile.in
configure.in
modules/generators/mod_status.c
modules/generators/mod_status.h [new file with mode: 0644]

index 95dac404a204d57327098c0718255ad424639c91..f09f7df03342adb886d697fc5ea262c323af74f6 100644 (file)
@@ -175,6 +175,7 @@ install-include:
        @cp -p $(srcdir)/modules/dav/main/mod_dav.h $(DESTDIR)$(includedir)
        @cp -p $(srcdir)/modules/filters/mod_include.h $(DESTDIR)$(includedir)
        @cp -p $(srcdir)/modules/generators/mod_cgi.h $(DESTDIR)$(includedir)
+       @cp -p $(srcdir)/modules/generators/mod_status.h $(DESTDIR)$(includedir)
        @cp -p $(srcdir)/modules/loggers/mod_log_config.h $(DESTDIR)$(includedir)
        @cp -p $(srcdir)/modules/http/mod_core.h $(DESTDIR)$(includedir)
        @cp -p $(srcdir)/modules/proxy/mod_proxy.h $(DESTDIR)$(includedir)
index 4bc70ac71e389a66e3f41c4e5a30684020a6788f..2a3ba8fdeb4d601662538a162ff87f6675b3dca6 100644 (file)
@@ -135,7 +135,7 @@ if test "$abs_builddir" != "$abs_srcdir"; then
   APR_ADDTO(INCLUDES, [-I\$(srcdir) -I\$(top_builddir)/server/mpm/\$(MPM_SUBDIR_NAME) -I\$(top_builddir)/include])
 fi
 
-APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_srcdir)/server/mpm/\$(MPM_SUBDIR_NAME) -I\$(top_srcdir)/modules/http -I\$(top_srcdir)/modules/filters -I\$(top_srcdir)/modules/proxy -I\$(top_srcdir)/include])
+APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_srcdir)/server/mpm/\$(MPM_SUBDIR_NAME) -I\$(top_srcdir)/modules/http -I\$(top_srcdir)/modules/filters -I\$(top_srcdir)/modules/proxy -I\$(top_srcdir)/include -I\$(top_srcdir)/modules/generators])
 
 echo $ac_n "${nl}Applying OS-specific hints for httpd ...${nl}"
 
index 172cb888f8f359010ba4cab396860053d4a39ed9..3aee4d98630fd205fd8ebacc17404555d5928b77 100644 (file)
 #include <time.h>
 #include "scoreboard.h"
 #include "http_log.h"
+#include "mod_status.h"
 #if APR_HAVE_UNISTD_H
 #include <unistd.h>
 #endif
@@ -141,6 +142,12 @@ module AP_MODULE_DECLARE_DATA status_module;
 
 int server_limit, thread_limit;
 
+/* Implement 'ap_run_status_hook'. */
+AP_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(int,status_hook,
+                                   (request_rec *r, int flags),
+                                   (r, flags),
+                                   OK, DECLINED)
+
 /*
  * command-related code. This is here to prevent use of ExtendedStatus
  * without status_module included.
@@ -786,6 +793,16 @@ static int status_handler(request_rec *r)
         }
     }
 
+    {
+        /* Run extension hooks to insert extra content. */
+        int flags = 
+            (short_report ? AP_STATUS_SHORT : 0) | 
+            (no_table_report ? AP_STATUS_NOTABLE : 0) |
+            (ap_extended_status ? AP_STATUS_EXTENDED : 0);
+        
+        ap_run_status_hook(r, flags);
+    }
+
     if (!short_report) {
         ap_rputs(ap_psignature("<hr />\n",r), r);
         ap_rputs("</body></html>\n", r);
diff --git a/modules/generators/mod_status.h b/modules/generators/mod_status.h
new file mode 100644 (file)
index 0000000..6dd8f05
--- /dev/null
@@ -0,0 +1,74 @@
+/* ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2003 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written
+ *    permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+#ifndef MOD_STATUS_H
+#define MOD_STATUS_H
+
+#include "ap_config.h"
+#include "httpd.h"
+
+#define AP_STATUS_SHORT    (0x1)  /* short, non-HTML report requested */
+#define AP_STATUS_NOTABLE  (0x2)  /* HTML report without tables */
+#define AP_STATUS_EXTENDED (0x4)  /* detailed report */
+
+/* Optional hooks which can insert extra content into the mod_status
+ * output.  FLAGS will be set to the bitwise OR of any of the
+ * AP_STATUS_* flags.
+ *
+ * Implementations of this hook should generate content using
+ * functions in the ap_rputs/ap_rprintf family; each hook should
+ * return OK or DECLINED. */
+AP_DECLARE_HOOK(int, status_hook, (request_rec *r, int flags))
+
+#endif