summaryrefslogtreecommitdiff
path: root/www/mod_frontpage2-rtr/files/patch-apache2::mod_fpcgid.c
diff options
context:
space:
mode:
Diffstat (limited to 'www/mod_frontpage2-rtr/files/patch-apache2::mod_fpcgid.c')
-rw-r--r--www/mod_frontpage2-rtr/files/patch-apache2::mod_fpcgid.c154
1 files changed, 154 insertions, 0 deletions
diff --git a/www/mod_frontpage2-rtr/files/patch-apache2::mod_fpcgid.c b/www/mod_frontpage2-rtr/files/patch-apache2::mod_fpcgid.c
new file mode 100644
index 000000000000..fb94895807a4
--- /dev/null
+++ b/www/mod_frontpage2-rtr/files/patch-apache2::mod_fpcgid.c
@@ -0,0 +1,154 @@
+--- frontpage/version5.0/apache2/mod_fpcgid.c.orig Thu Jan 9 12:19:29 2003
++++ frontpage/version5.0/apache2/mod_fpcgid.c Wed Feb 12 10:30:45 2003
+@@ -121,8 +121,6 @@
+ #include <sys/un.h> /* for sockaddr_un */
+
+
+-module AP_MODULE_DECLARE_DATA frontpage_module;
+-
+ #if 0
+ This section is not used in the FrontPage daemon.
+ static int cgid_init(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *main_server);
+@@ -187,13 +185,6 @@
+ #define DEFAULT_CONNECT_ATTEMPTS 15
+ #endif
+
+-typedef struct {
+- const char *sockname;
+- const char *logname;
+- long logbytes;
+- int bufbytes;
+-} cgid_server_conf;
+-
+ /* If a request includes query info in the URL (stuff after "?"), and
+ * the query info does not contain "=" (indicative of a FORM submission),
+ * then this routine is called to create the argument list to be passed
+@@ -755,21 +746,42 @@
+
+ void* fpcreate_cgid_config(apr_pool_t *p, server_rec *s)
+ {
+- cgid_server_conf *c =
+- (cgid_server_conf *) apr_pcalloc(p, sizeof(cgid_server_conf));
++ cgid_server_conf *c;
+
+- c->logname = NULL;
+- c->logbytes = DEFAULT_LOGBYTES;
+- c->bufbytes = DEFAULT_BUFBYTES;
+- c->sockname = ap_server_root_relative(p, DEFAULT_SOCKET);
+- return c;
++ c = (cgid_server_conf *) apr_pcalloc(p, sizeof(cgid_server_conf));
++
++ c->fp_status = -1;
++ c->fp_admin_status = -1;
++ c->logname = NULL;
++ c->logbytes = DEFAULT_LOGBYTES;
++ c->bufbytes = DEFAULT_BUFBYTES;
++ c->sockname = ap_server_root_relative(p, DEFAULT_SOCKET);
++ return c;
+ }
+
+ void* fpmerge_cgid_config(apr_pool_t *p, void *basev, void *overridesv)
+ {
+- cgid_server_conf *base = (cgid_server_conf *) basev, *overrides = (cgid_server_conf *) overridesv;
++ cgid_server_conf *c, *base, *overrides;
+
+- return overrides->logname ? overrides : base;
++ c = (cgid_server_conf *)apr_pcalloc(p, sizeof(cgid_server_conf));
++ base = (cgid_server_conf *)basev;
++ overrides = (cgid_server_conf *)overridesv;
++
++ c->fp_status = (overrides->fp_status == -1) ? base->fp_status : overrides->fp_status;
++ c->fp_admin_status = (overrides->fp_admin_status == -1) ? base->fp_admin_status : overrides->fp_admin_status;
++
++ if (overrides->logname) {
++ c->logname = apr_pstrdup(p, overrides->logname);
++ c->logbytes = overrides->logbytes ? overrides->logbytes : base->logbytes;
++ c->bufbytes = overrides->bufbytes ? overrides->bufbytes : base->bufbytes;
++ c->sockname = apr_pstrdup(p, overrides->sockname ? overrides->sockname : base->sockname);
++ } else {
++ c->logname = apr_pstrdup(p, base->logname);
++ c->logbytes = base->logbytes;
++ c->bufbytes = base->bufbytes;
++ c->sockname = apr_pstrdup(p, base->sockname);
++ }
++ return c;
+ }
+
+ static const char *set_scriptlog(cmd_parms *cmd, void *dummy, const char *arg)
+@@ -823,8 +835,76 @@
+ return NULL;
+ }
+
++static const char *
++cmd_FrontPage(cmd_parms *cmd, void *mconfig, int flag)
++{
++ cgid_server_conf *sconf;
++
++ sconf = (cgid_server_conf *)ap_get_module_config(cmd->server->module_config, &frontpage_module);
++
++ if (cmd->path == NULL) { /* is server command */
++ sconf->fp_status = (flag ? TRUE : FALSE);
++ }
++ return NULL;
++}
++
++#ifdef IMPROVED_MODFP_COMPAT
++static const char*
++cmd_disable(cmd_parms* cmd, void* mconfig) {
++
++ return cmd_FrontPage(cmd, NULL, FALSE);
++}
++
++static const char*
++cmd_enable(cmd_parms* cmd, void* mconfig) {
++
++ return cmd_FrontPage(cmd, NULL, TRUE);
++}
++#endif /* IMPROVED_MODFP_COMPAT */
++
++static const char *
++cmd_FrontPageAdmin(cmd_parms *cmd, void *mconfig, int flag)
++{
++ cgid_server_conf *sconf;
++
++ sconf = (cgid_server_conf *)ap_get_module_config(cmd->server->module_config, &frontpage_module);
++
++ if (cmd->path == NULL) { /* is server command */
++ sconf->fp_admin_status = (flag ? TRUE : FALSE);
++ }
++ return NULL;
++}
++
++#ifdef IMPROVED_MODFP_COMPAT
++static const char*
++cmd_admin_disable(cmd_parms* cmd, void* mconfig) {
++
++ return cmd_FrontPageAdmin(cmd, NULL, TRUE);
++}
++
++static const char*
++cmd_admin_enable(cmd_parms* cmd, void *mconfig) {
++
++ return cmd_FrontPageAdmin(cmd, NULL, FALSE);
++}
++#endif /* IMPROVED_MODFP_COMPAT */
++
+ const command_rec fpcgid_cmds[] =
+ {
++ AP_INIT_FLAG("FrontPage", cmd_FrontPage, NULL, RSRC_CONF,
++ "On or Off to enable (default) or disable the FrontPage Extentions"),
++ AP_INIT_FLAG("FrontPageAdmin", cmd_FrontPageAdmin, NULL, RSRC_CONF,
++ "On or Off to enable (default) or disable FrontPage Administration"),
++#ifdef IMPROVED_MODFP_COMPAT
++ AP_INIT_NO_ARGS("FrontPageDisable", cmd_disable, NULL, RSRC_CONF,
++ "Disable FrontPage Extentions"),
++ AP_INIT_NO_ARGS("FrontPageEnable", cmd_enable, NULL, RSRC_CONF,
++ "Enable FrontPage Extentions"),
++ AP_INIT_NO_ARGS("FrontPageAdminDisable", cmd_admin_disable, NULL, RSRC_CONF,
++ "Disable FrontPage Administration"),
++ AP_INIT_NO_ARGS("FrontPageAdminEnable", cmd_admin_enable, NULL, RSRC_CONF,
++ "Enable FrontPage Administration"),
++#endif
+ AP_INIT_TAKE1("FPScriptLog", set_scriptlog, NULL, RSRC_CONF,
+ "the name of a log for script debugging info"),
+ AP_INIT_TAKE1("FPScriptLogLength", set_scriptlog_length, NULL, RSRC_CONF,