Re: [PATCH] mod_status optional extension hook

2003-07-18 Thread Joe Orton
On Fri, Jul 18, 2003 at 01:08:18PM +0100, Ben Laurie wrote:
> Joe Orton wrote:
> 
> > This adds an optional hook so that modules can put their own status
> > information in the server-status page when mod_status is loaded.  
> > (mod_ssl has code which can use this to output session cache status).
> > Any objections?
> > 
> > * mod_status.h: New file.
> > 
> > * mod_status.c: Implement the status hook.
> > (status_handler): Call the status hook.
> 
> Sounds good to me, though its not obvious how the module adds to the page?

Using ap_rputs etc - I'll add a comment to this effect, thanks.

joe


Re: [PATCH] mod_status optional extension hook

2003-07-18 Thread Ben Laurie
Joe Orton wrote:

> This adds an optional hook so that modules can put their own status
> information in the server-status page when mod_status is loaded.  
> (mod_ssl has code which can use this to output session cache status).
> Any objections?
> 
> * mod_status.h: New file.
> 
> * mod_status.c: Implement the status hook.
> (status_handler): Call the status hook.

Sounds good to me, though its not obvious how the module adds to the page?

Cheers,

Ben.

-- 
http://www.apache-ssl.org/ben.html   http://www.thebunker.net/

"There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit." - Robert Woodruff




[PATCH] mod_status optional extension hook

2003-07-17 Thread Joe Orton
This adds an optional hook so that modules can put their own status
information in the server-status page when mod_status is loaded.  
(mod_ssl has code which can use this to output session cache status).
Any objections?

* mod_status.h: New file.

* mod_status.c: Implement the status hook.
(status_handler): Call the status hook.

Index: mod_status.c
===
RCS file: /home/cvs/httpd-2.0/modules/generators/mod_status.c,v
retrieving revision 1.72
diff -u -r1.72 mod_status.c
--- mod_status.c3 Feb 2003 17:53:03 -   1.72
+++ mod_status.c17 Jul 2003 14:10:18 -
@@ -107,6 +107,7 @@
 #include 
 #include "scoreboard.h"
 #include "http_log.h"
+#include "mod_status.h"
 #if APR_HAVE_UNISTD_H
 #include 
 #endif
@@ -141,6 +142,12 @@
 
 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.
@@ -784,6 +791,16 @@
  "information you need to use the "
  "ExtendedStatus On directive.\n", 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) {
Index: mod_status.h
===
RCS file: mod_status.h
diff -N mod_status.h
--- /dev/null   1 Jan 1970 00:00:00 -
+++ mod_status.h17 Jul 2003 14:10:18 -
@@ -0,0 +1,70 @@
+/* 
+ * 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 [EMAIL PROTECTED]
+ *
+ * 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
+ * .
+ */
+
+#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 in