You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by Dean Gaudet <dg...@hyperreal.org> on 1997/07/19 11:02:49 UTC
cvs commit: apache/src CHANGES mod_info.c
dgaudet 97/07/19 02:02:49
Modified: src CHANGES mod_info.c
Log:
AddModuleInfo directive for mod_info which allows you to annotate
the output of mod_info
Submitted by: "Lou D. Langholtz" <ld...@usi.utah.edu>
Reviewed by: Dean Gaudet
Revision Changes Path
1.347 +3 -0 apache/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache/src/CHANGES,v
retrieving revision 1.346
retrieving revision 1.347
diff -C3 -r1.346 -r1.347
*** CHANGES 1997/07/19 08:58:33 1.346
--- CHANGES 1997/07/19 09:02:46 1.347
***************
*** 1,5 ****
--- 1,8 ----
Changes with Apache 1.3
+ *) AddModuleInfo directive for mod_info which allows you to annotate
+ the output of mod_info. ["Lou D. Langholtz" <ld...@usi.utah.edu>]
+
*) Added NoProxy directive to avoid using ProxyRemote for selected
addresses. Added ProxyDomain directive to cause unqualified
names to be qualified by redirection.
1.21 +79 -3 apache/src/mod_info.c
Index: mod_info.c
===================================================================
RCS file: /export/home/cvs/apache/src/mod_info.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -C3 -r1.20 -r1.21
*** mod_info.c 1997/07/17 22:27:37 1.20
--- mod_info.c 1997/07/19 09:02:47 1.21
***************
*** 66,71 ****
--- 66,75 ----
* Rasmus Lerdorf <ra...@vex.net>, May 1996
*
* 05.01.96 Initial Version
+ *
+ * Lou Langholtz <ld...@usi.utah.edu>, July 1997
+ *
+ * 07.11.97 Addition of the AddModuleInfo directive
*
*/
***************
*** 78,83 ****
--- 82,96 ----
#include "util_script.h"
#include "http_conf_globals.h"
+ typedef struct {
+ char *name; /* matching module name */
+ char *info; /* additional info */
+ } mod_info_entry;
+
+ typedef struct {
+ array_header *more_info;
+ } mod_info_server_conf;
+
typedef struct mod_info_config_lines {
char *cmd;
char *line;
***************
*** 87,92 ****
--- 100,125 ----
module MODULE_VAR_EXPORT info_module;
extern module *top_module;
+ void *create_info_config(pool *p, server_rec *s)
+ {
+ mod_info_server_conf *conf = (mod_info_server_conf *)
+ pcalloc(p, sizeof(mod_info_server_conf));
+
+ conf->more_info = make_array(p, 20, sizeof(mod_info_entry));
+ return conf;
+ }
+
+ void *merge_info_config(pool *p, void *basev, void *overridesv)
+ {
+ mod_info_server_conf *new = (mod_info_server_conf *)
+ pcalloc(p, sizeof(mod_info_server_conf));
+ mod_info_server_conf *base = (mod_info_server_conf *)basev;
+ mod_info_server_conf *overrides = (mod_info_server_conf *)overridesv;
+
+ new->more_info = append_arrays(p, overrides->more_info, base->more_info);
+ return new;
+ }
+
char *mod_info_html_cmd_string(char *string) {
char *s,*t;
static char ret[256]; /* What is the max size of a command? */
***************
*** 259,267 ****
--- 292,318 ----
}
}
+ char *find_more_info(server_rec *serv, const char *module_name)
+ {
+ int i;
+ mod_info_server_conf *conf = (mod_info_server_conf *)
+ get_module_config(serv->module_config,&info_module);
+ mod_info_entry *entry = (mod_info_entry *)conf->more_info->elts;
+
+ if (!module_name) return 0;
+ for (i = 0; i < conf->more_info->nelts; i++) {
+ if (!strcmp(module_name, entry->name)) {
+ return entry->info;
+ }
+ entry++;
+ }
+ return 0;
+ }
+
int display_info(request_rec *r) {
module *modp = NULL;
char buf[512], *cfname;
+ char *more_info;
command_rec *cmd=NULL;
handler_rec *hand=NULL;
server_rec *serv = r->server;
***************
*** 414,419 ****
--- 465,477 ----
} else {
rputs("<tt> none</tt>\n",r);
}
+
+ more_info = find_more_info(serv, modp->name);
+ if (more_info) {
+ rputs("<dt><strong>Additional Information:</strong>\n<dd>",r);
+ rputs(more_info,r);
+ }
+
rputs("<dt><hr>\n",r);
if(r->args) break;
}
***************
*** 431,436 ****
--- 489,512 ----
return 0;
}
+ const char *add_module_info(cmd_parms *cmd, void *dummy, char *name, char *info)
+ {
+ server_rec *s = cmd->server;
+ mod_info_server_conf *conf = (mod_info_server_conf *)
+ get_module_config(s->module_config,&info_module);
+ mod_info_entry *new = push_array(conf->more_info);
+
+ new->name = name;
+ new->info = info;
+ return NULL;
+ }
+
+ command_rec info_cmds[] = {
+ { "AddModuleInfo", add_module_info, NULL, RSRC_CONF, TAKE2,
+ "a module name and additional information on that module"},
+ { NULL }
+ };
+
handler_rec info_handlers[] = {
{ "server-info", display_info },
{ NULL }
***************
*** 441,449 ****
NULL, /* initializer */
NULL, /* dir config creater */
NULL, /* dir merger --- default is to override */
! NULL, /* server config */
! NULL, /* merge server config */
! NULL, /* command table */
info_handlers, /* handlers */
NULL, /* filename translation */
NULL, /* check_user_id */
--- 517,525 ----
NULL, /* initializer */
NULL, /* dir config creater */
NULL, /* dir merger --- default is to override */
! create_info_config, /* server config */
! merge_info_config, /* merge server config */
! info_cmds, /* command table */
info_handlers, /* handlers */
NULL, /* filename translation */
NULL, /* check_user_id */