Re: IfModule symbol extension Backport request (PR: 29003)

2004-06-22 Thread Paul Querna
On Tue, 2004-06-22 at 08:34 +0200, Andrà Malo wrote:
> * Edward Rudd <[EMAIL PROTECTED]> wrote:
> 
> > I just applied this patch to the Apache_20_branch and the code applies,
> > compiles, and runs cleanly (only tested on linux RH 7.3).  I'm puttingthis
> > up for a vote to be applied from cvs head to the 2.0 branch.
> 
> I'm -1 on it, sorry.
> We should not try to backport all stuff, just because we can. 2.0 is *stable*.
> So the only things that are backported, should be bug fixes or important/not
> workaroundable features.
> I'm considering the  extension just as a new feature. For 2.1.
> 

I actually asked Eddie about the possibility to get this into 2.0, as my
DUMP_MODULES stuff relies upon his IfModule Changes.

I see your point nd, but it would be nice if I knew when these cool
features would make it into any stable branch. (ie a 2.2 ROADMAP...)

-Paul Querna



Re: IfModule symbol extension Backport request (PR: 29003)

2004-06-21 Thread André Malo
* Edward Rudd <[EMAIL PROTECTED]> wrote:

> I just applied this patch to the Apache_20_branch and the code applies,
> compiles, and runs cleanly (only tested on linux RH 7.3).  I'm puttingthis
> up for a vote to be applied from cvs head to the 2.0 branch.

I'm -1 on it, sorry.
We should not try to backport all stuff, just because we can. 2.0 is *stable*.
So the only things that are backported, should be bug fixes or important/not
workaroundable features.
I'm considering the  extension just as a new feature. For 2.1.

nd
-- 
package Hacker::Perl::Another::Just;print
[EMAIL PROTECTED] split/::/ =>__PACKAGE__]}~;

#  André Malo  #  http://www.perlig.de  #


IfModule symbol extension Backport request (PR: 29003)

2004-06-21 Thread Edward Rudd
I just applied this patch to the Apache_20_branch and the code applies,
compiles, and runs cleanly (only tested on linux RH 7.3).  I'm puttingthis
up for a vote to be applied from cvs head to the 2.0 branch.  twothings
still need to be test, the compile on Win32 and the compile on Netware.
they should compile fine, but a test is always a Good Thing.

I've attached a cvs diff from the 2.0 branch.
Here are the HEAD CVS revisions where the changes took place

configure.in (rev 1.260)
build/build-modules-c.awk (rev 1.9)
os/win32/modules.c (rev 1.17)
os/netware/modules.c (rev 1.9)
server/core.c (rev 1.280)
include/http_config.h (rev 1.110)
modules/mappers/mod_so.c (rev 1.57)
modules/mappers/mod_so.h (rev 1.1  New File)

--
Edward Rudd <[EMAIL PROTECTED]>
Website http://www.outoforder.cc/? build-prefork
Index: configure.in
===
RCS file: /home/cvspublic/httpd-2.0/configure.in,v
retrieving revision 1.232.2.14
diff -u -3 -p -r1.232.2.14 configure.in
--- configure.in18 Mar 2004 07:36:52 -  1.232.2.14
+++ configure.in21 Jun 2004 19:30:54 -
@@ -135,7 +135,7 @@ if test "$abs_builddir" != "$abs_srcdir"
   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 -I\$(top_srcdir)/modules/generators])
+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 
-I\$(top_srcdir)/modules/mappers])
 
 echo $ac_n "${nl}Applying OS-specific hints for httpd ...${nl}"
 
Index: libhttpd.dsp
===
RCS file: /home/cvspublic/httpd-2.0/libhttpd.dsp,v
retrieving revision 1.51.2.10
diff -u -3 -p -r1.51.2.10 libhttpd.dsp
--- libhttpd.dsp8 Mar 2004 17:40:34 -   1.51.2.10
+++ libhttpd.dsp21 Jun 2004 19:30:54 -
@@ -241,6 +241,35 @@ InputPath=.\modules\dav\main\mod_dav.h
 # End Source File
 # Begin Source File
 
+SOURCE=.\modules\mappers\mod_so.h
+
+!IF  "$(CFG)" == "libhttpd - Win32 Release"
+
+# PROP Ignore_Default_Tool 1
+# Begin Custom Build - Creating include/mod_so.h
+InputPath=.\modules\mappers\mod_so.h
+
+".\include\mod_so.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+   type .\modules\mappers\mod_so.h > .\include\mod_so.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libhttpd - Win32 Debug"
+
+# PROP Ignore_Default_Tool 1
+# Begin Custom Build - Creating include/mod_so.h
+InputPath=.\modules\mappers\mod_so.h
+
+".\include\mod_so.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+   type .\modules\mappers\mod_so.h > .\include\mod_so.h
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
 SOURCE=.\modules\filters\mod_include.h
 
 !IF  "$(CFG)" == "libhttpd - Win32 Release"
Index: build/build-modules-c.awk
===
RCS file: /home/cvspublic/httpd-2.0/build/build-modules-c.awk,v
retrieving revision 1.5.2.2
diff -u -3 -p -r1.5.2.2 build-modules-c.awk
--- build/build-modules-c.awk   9 Feb 2004 20:59:44 -   1.5.2.2
+++ build/build-modules-c.awk   21 Jun 2004 19:30:54 -
@@ -32,6 +32,7 @@ END {
 print ""
 print "#include \"ap_config.h\""
 print "#include \"httpd.h\""
+print "#define CORE_PRIVATE"
 print "#include \"http_config.h\""
 print ""
 for (i = 0; i < pn; ++i) {
@@ -50,6 +51,17 @@ END {
 printf "  &%s_module,\n", modules[i]
 }
 print "  NULL"
+print "};"
+print ""
+print "/*"
+print " *  We need the symbols as strings for  containers"
+print " */"
+print ""
+print "ap_module_symbol_t ap_prelinked_module_symbols[] = {"
+for (i = 0; i < n; ++i) {
+printf ("  {\"%s_module\", &%s_module},\n", modules[i], modules[i])
+}
+print "  {NULL, NULL}"
 print "};"
 print ""
 print "/*"
Index: include/http_config.h
===
RCS file: /home/cvspublic/httpd-2.0/include/http_config.h,v
retrieving revision 1.97.2.5
diff -u -3 -p -r1.97.2.5 http_config.h
--- include/http_config.h   9 Feb 2004 20:54:33 -   1.97.2.5
+++ include/http_config.h   21 Jun 2004 19:30:58 -
@@ -713,6 +713,14 @@ AP_DECLARE(const char *) ap_check_cmd_co
 #ifdef CORE_PRIVATE
 
 /**
+ * This structure is used to assign symbol names to module pointers
+ */
+typedef struct {
+const char *name;
+module *modp;
+} ap_module_symbol_t;
+
+/**
  * The topmost module in the list
  * @defvar module *ap_top_module
  */
@@ -723,6 +731,11 @@ AP_DECLARE_DATA extern module