summaryrefslogtreecommitdiffstats
path: root/mod_perl-httpd24.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mod_perl-httpd24.patch')
-rw-r--r--mod_perl-httpd24.patch940
1 files changed, 330 insertions, 610 deletions
diff --git a/mod_perl-httpd24.patch b/mod_perl-httpd24.patch
index 5b54460..d4e185d 100644
--- a/mod_perl-httpd24.patch
+++ b/mod_perl-httpd24.patch
@@ -1,15 +1,128 @@
-From 8b8b824e0b549c1ff8a2aea65f3f0621efd1a10a Mon Sep 17 00:00:00 2001
-From: Stefan Fritsch <sf@sfritsch.de>
-Date: Sun, 22 Apr 2012 21:26:01 +0200
-Subject: [PATCH 01/22] fix compile with httpd trunk and AP_DEBUG
-
-some palloc debugging feature doesn't work within XS
----
- src/modules/perl/modperl_apache_includes.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
+diff --git a/lib/Apache2/ParseSource.pm b/lib/Apache2/ParseSource.pm
+index 8027548..0664af1 100644
+--- a/lib/Apache2/ParseSource.pm
++++ b/lib/Apache2/ParseSource.pm
+@@ -73,6 +73,9 @@ my @c_scan_defines = (
+ 'CORE_PRIVATE', #so we get all of apache
+ 'MP_SOURCE_SCAN', #so we can avoid some c-scan barfing
+ '_NETINET_TCP_H', #c-scan chokes on netinet/tcp.h
++ '_BYTESWAP_H', #c-scan chokes on byteswap.h
++ '_BITS_BYTESWAP_H', #c-scan chokes on byteswap.h
++ 'Expat_INCLUDED', #c-scan chokes on expath.h
+ # 'APR_OPTIONAL_H', #c-scan chokes on apr_optional.h
+ 'apr_table_do_callback_fn_t=void', #c-scan chokes on function pointers
+ );
+@@ -116,6 +119,7 @@ sub scan {
+ sub include_dirs {
+ my $self = shift;
+ ($self->config->apxs('-q' => 'INCLUDEDIR'),
++ $self->config->apxs('-q' => 'APR_INCLUDEDIR'),
+ $self->config->mp_include_dir);
+ }
+
+@@ -139,7 +143,8 @@ sub find_includes {
+ apr_optional mod_include mod_cgi
+ mod_proxy mod_ssl ssl_ apr_anylock
+ apr_rmm ap_config mod_log_config
+- mod_perl modperl_ apreq);
++ mod_perl modperl_ apreq mod_cache
++ mod_serf mod_dav);
+ $unwanted = qr|^$unwanted|;
+ my $wanted = '';
+
+@@ -229,7 +234,7 @@ sub generate_cscan_file {
+
+ my %defines_wanted = (
+ 'Apache2::Const' => {
+- common => [qw{OK DECLINED DONE}],
++ common => [qw{OK DECLINED DONE PROXYREQ PROXYREQ_REVERSE}],
+ config => [qw{DECLINE_CMD}],
+ context => [qw(NOT_IN_ GLOBAL_ONLY)],
+ http => [qw{HTTP_}],
+@@ -280,6 +285,9 @@ my %enums_wanted = (
+
+ my $defines_unwanted = join '|', qw{
+ HTTP_VERSION APR_EOL_STR APLOG_MARK APLOG_NOERRNO APR_SO_TIMEOUT
++APR_HOOK_PROBES_ENABLED APR_HOOK_INT_DCL_UD
++APLOG_MAX_LOGLEVEL
++APR_BEGIN_DECLS APR_END_DECLS
+ };
+
+ sub get_constants {
+@@ -398,6 +406,8 @@ sub get_functions {
+ my $c = $self->{c};
+
+ my $fdecls = $c->get($key);
++ my $inlines = $c->get('parsed_inlines');
++ push @{$fdecls}, @{$inlines};
+
+ my %seen;
+ my $wanted = $self->wanted_functions;
+diff --git a/lib/ModPerl/CScan.pm b/lib/ModPerl/CScan.pm
+index 6789af3..a57acf3 100644
+--- a/lib/ModPerl/CScan.pm
++++ b/lib/ModPerl/CScan.pm
+@@ -136,6 +136,8 @@ my $recipes
+ vdecl_hash => { filter => [ \&vdecl_hash, 'vdecls', 'mdecls' ], },
+ parsed_fdecls => { filter => [ \&do_declarations, 'fdecls',
+ 'typedef_hash', 'keywords'], },
++ parsed_inlines => { filter => [ \&do_declarations, 'inlines',
++ 'typedef_hash', 'keywords'], },
+ keywords_rex => { filter => [ sub { my @k = keys %{ shift() };
+ local $" = '|';
+ my $r = "(?:@k)";
+@@ -943,7 +945,7 @@ sub new {
+ my ($sym) = gensym;
+ my $cmd = WIN32 ?
+ "$Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $filename |" :
+- "echo '\#include \"$filename\"' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} |";
++ "echo '\#include \"$filename\"' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} | grep -v '^#' |";
+ #my $cmd = "echo '\#include <$filename>' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} |";
+
+ (open($sym, $cmd) or die "Cannot open pipe from `$cmd': $!")
+diff --git a/lib/ModPerl/Code.pm b/lib/ModPerl/Code.pm
+index e43f77c..98b037d 100644
+--- a/lib/ModPerl/Code.pm
++++ b/lib/ModPerl/Code.pm
+@@ -889,7 +889,8 @@ EOF
+
+ if ($name eq 'DECLINE_CMD' ||
+ $name eq 'DIR_MAGIC_TYPE' ||
+- $name eq 'CRLF') {
++ $name eq 'CRLF' ||
++ $name eq 'CRLF_ASCII') {
+ print $c_fh <<EOF;
+ return newSVpv($alias{$name}, 0);
+ EOF
+diff --git a/src/modules/perl/mod_perl.c b/src/modules/perl/mod_perl.c
+index d3245bf..b18e0fd 100644
+--- a/src/modules/perl/mod_perl.c
++++ b/src/modules/perl/mod_perl.c
+@@ -658,6 +658,10 @@ int modperl_hook_pre_config(apr_pool_t *p, apr_pool_t *plog,
+ /* perl 5.8.1+ */
+ modperl_hash_seed_init(p);
+
++#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
++ ap_reserve_module_slots_directive("PerlModule");
++#endif
++
+ return OK;
+ }
+
+diff --git a/src/modules/perl/modperl_apache_compat.h b/src/modules/perl/modperl_apache_compat.h
+index 78a9cb3..072ae79 100644
+--- a/src/modules/perl/modperl_apache_compat.h
++++ b/src/modules/perl/modperl_apache_compat.h
+@@ -68,7 +68,6 @@ AP_DECLARE(const char *) ap_get_server_version(void);
+ #define MP_HTTPD_OVERRIDE_OPTS_UNSET (-1)
+ #define MP_HTTPD_OVERRIDE_OPTS_DEFAULT (OPT_UNSET | \
+ OPT_ALL | \
+- OPT_INCNOEXEC | \
+ OPT_SYM_OWNER | \
+ OPT_MULTI)
+
diff --git a/src/modules/perl/modperl_apache_includes.h b/src/modules/perl/modperl_apache_includes.h
-index c93decc..dd39bf6 100644
+index c93decc..6f7bd8b 100644
--- a/src/modules/perl/modperl_apache_includes.h
+++ b/src/modules/perl/modperl_apache_includes.h
@@ -23,6 +23,10 @@
@@ -23,25 +136,15 @@ index c93decc..dd39bf6 100644
#include "ap_mmn.h"
#include "httpd.h"
#include "http_config.h"
---
-1.7.10.2
-
-
-From c79300b3da6889231a39f7b8d1c5a453c08d3034 Mon Sep 17 00:00:00 2001
-From: Stefan Fritsch <sf@sfritsch.de>
-Date: Sun, 22 Apr 2012 21:48:57 +0200
-Subject: [PATCH 02/22] per-module loglevel config
-
-tell httpd that we are logging for mod_perl
----
- src/modules/perl/modperl_apache_includes.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/modules/perl/modperl_apache_includes.h b/src/modules/perl/modperl_apache_includes.h
-index dd39bf6..a4209c5 100644
---- a/src/modules/perl/modperl_apache_includes.h
-+++ b/src/modules/perl/modperl_apache_includes.h
-@@ -43,4 +43,8 @@
+@@ -34,9 +38,16 @@
+ #include "http_core.h"
+ #include "http_vhost.h"
+ #include "ap_mpm.h"
++#if !(AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4)
++#include "apu_errno.h"
++#endif
+
+ #include "util_filter.h"
#include "util_script.h"
@@ -50,19 +153,128 @@ index dd39bf6..a4209c5 100644
+#endif
+
#endif /* MODPERL_APACHE_INCLUDES_H */
---
-1.7.10.2
-
-
-From 301f912a993802feac2fb167f6cca1ed050e6213 Mon Sep 17 00:00:00 2001
-From: Stefan Fritsch <sf@sfritsch.de>
-Date: Sun, 22 Apr 2012 21:57:28 +0200
-Subject: [PATCH 03/22] adjust test to new error log format
-
----
- t/response/TestAPI/aplog.pm | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
+diff --git a/src/modules/perl/modperl_apr_includes.h b/src/modules/perl/modperl_apr_includes.h
+index f5ae341..8e69776 100644
+--- a/src/modules/perl/modperl_apr_includes.h
++++ b/src/modules/perl/modperl_apr_includes.h
+@@ -35,5 +35,6 @@
+ #include "apr_general.h"
+ #include "apr_uuid.h"
+ #include "apr_env.h"
++#include "apu_errno.h"
+
+ #endif /* MODPERL_APR_INCLUDES_H */
+diff --git a/src/modules/perl/modperl_config.c b/src/modules/perl/modperl_config.c
+index c4ef81f..e182f2d 100644
+--- a/src/modules/perl/modperl_config.c
++++ b/src/modules/perl/modperl_config.c
+@@ -479,7 +479,7 @@ typedef struct {
+ PerlInterpreter *perl;
+ } svav_param_t;
+
+-static void *svav_getstr(void *buf, size_t bufsiz, void *param)
++static apr_status_t svav_getstr(void *buf, size_t bufsiz, void *param)
+ {
+ svav_param_t *svav_param = (svav_param_t *)param;
+ dTHXa(svav_param->perl);
+@@ -488,7 +488,7 @@ static void *svav_getstr(void *buf, size_t bufsiz, void *param)
+ STRLEN n_a;
+
+ if (svav_param->ix > AvFILL(av)) {
+- return NULL;
++ return APR_EOF;
+ }
+
+ sv = AvARRAY(av)[svav_param->ix++];
+@@ -496,7 +496,7 @@ static void *svav_getstr(void *buf, size_t bufsiz, void *param)
+
+ apr_cpystrn(buf, SvPVX(sv), bufsiz);
+
+- return buf;
++ return APR_SUCCESS;
+ }
+
+ const char *modperl_config_insert(pTHX_ server_rec *s,
+diff --git a/src/modules/perl/modperl_interp.c b/src/modules/perl/modperl_interp.c
+index dfff32e..6ec9b56 100644
+--- a/src/modules/perl/modperl_interp.c
++++ b/src/modules/perl/modperl_interp.c
+@@ -496,11 +496,19 @@ modperl_interp_t *modperl_interp_select(request_rec *r, conn_rec *c,
+
+ set_interp(p);
+
++#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
++ MP_TRACE_i(MP_FUNC,
++ "set interp 0x%lx in %s 0x%lx (%s request for %s)\n",
++ (unsigned long)interp, desc, (unsigned long)p,
++ (r ? (is_subrequest ? "sub" : "main") : "conn"),
++ (r ? r->uri : c->client_ip));
++#else
+ MP_TRACE_i(MP_FUNC,
+ "set interp 0x%lx in %s 0x%lx (%s request for %s)\n",
+ (unsigned long)interp, desc, (unsigned long)p,
+ (r ? (is_subrequest ? "sub" : "main") : "conn"),
+ (r ? r->uri : c->remote_ip));
++#endif
+ }
+
+ /* set context (THX) for this thread */
+diff --git a/src/modules/perl/modperl_module.c b/src/modules/perl/modperl_module.c
+index da148ca..aa1a851 100644
+--- a/src/modules/perl/modperl_module.c
++++ b/src/modules/perl/modperl_module.c
+@@ -832,7 +832,11 @@ const char *modperl_module_add(apr_pool_t *p, server_rec *s,
+
+ modperl_module_insert(modp);
+
++#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
++ ap_add_loaded_module(modp, p, modp->name);
++#else
+ ap_add_loaded_module(modp, p);
++#endif
+
+ apr_pool_cleanup_register(p, modp, modperl_module_remove,
+ apr_pool_cleanup_null);
+diff --git a/t/apache/constants.t b/t/apache/constants.t
+index 97a3e6a..74e2fe5 100644
+--- a/t/apache/constants.t
++++ b/t/apache/constants.t
+@@ -6,7 +6,7 @@ use Apache::Test;
+ use Apache::TestUtil;
+
+ # -compile puts constants into the Apache2:: namespace
+-use Apache2::Const -compile => qw(:http :common :mpmq :proxy
++use Apache2::Const -compile => qw(:http :common :mpmq
+ TAKE23 &OPT_EXECCGI
+ DECLINE_CMD DIR_MAGIC_TYPE
+ CRLF);
+diff --git a/t/conf/post_config_startup.pl b/t/conf/post_config_startup.pl
+index 391a0e2..5ab1bfc 100644
+--- a/t/conf/post_config_startup.pl
++++ b/t/conf/post_config_startup.pl
+@@ -31,7 +31,9 @@ test_apache_resource();
+
+ test_apache_status();
+
+-test_loglevel();
++# FIXME: httpd-2.4 does not have loglevel setting in ServerRec
++# This test has to be fixed.
++#test_loglevel();
+
+ test_perl_ithreads();
+
+diff --git a/t/response/TestAPI/add_config.pm b/t/response/TestAPI/add_config.pm
+index ff52cbc..c5f2d37 100644
+--- a/t/response/TestAPI/add_config.pm
++++ b/t/response/TestAPI/add_config.pm
+@@ -100,7 +100,6 @@ sub handler : method {
+
+ my $expect = Apache2::Const::OPT_ALL |
+ Apache2::Const::OPT_UNSET |
+- Apache2::Const::OPT_INCNOEXEC |
+ Apache2::Const::OPT_MULTI |
+ Apache2::Const::OPT_SYM_OWNER;
+
diff --git a/t/response/TestAPI/aplog.pm b/t/response/TestAPI/aplog.pm
index f2a4e19..1357311 100644
--- a/t/response/TestAPI/aplog.pm
@@ -143,231 +355,53 @@ index f2a4e19..1357311 100644
'overriden via export warn()';
Apache2::Const::OK;
---
-1.7.10.2
-
-
-From 94befe6a4f247988181993010374ee9d5565f6db Mon Sep 17 00:00:00 2001
-From: Stefan Fritsch <sf@sfritsch.de>
-Date: Tue, 24 Apr 2012 22:28:57 +0200
-Subject: [PATCH 04/22] ignore some new stuff from httpd 2.4 and trunk, and
- newer aprs
-
-these confuse "make source_scan"
----
- lib/Apache2/ParseSource.pm | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/lib/Apache2/ParseSource.pm b/lib/Apache2/ParseSource.pm
-index 8027548..f35c2a8 100644
---- a/lib/Apache2/ParseSource.pm
-+++ b/lib/Apache2/ParseSource.pm
-@@ -139,7 +139,8 @@ sub find_includes {
- apr_optional mod_include mod_cgi
- mod_proxy mod_ssl ssl_ apr_anylock
- apr_rmm ap_config mod_log_config
-- mod_perl modperl_ apreq);
-+ mod_perl modperl_ apreq mod_cache
-+ mod_serf mod_dav);
- $unwanted = qr|^$unwanted|;
- my $wanted = '';
-
-@@ -280,6 +281,9 @@ my %enums_wanted = (
-
- my $defines_unwanted = join '|', qw{
- HTTP_VERSION APR_EOL_STR APLOG_MARK APLOG_NOERRNO APR_SO_TIMEOUT
-+APR_HOOK_PROBES_ENABLED APR_HOOK_INT_DCL_UD
-+APLOG_MAX_LOGLEVEL
-+APR_BEGIN_DECLS APR_END_DECLS
- };
-
- sub get_constants {
---
-1.7.10.2
-
-
-From fa4c3ba115a8a34fcc9067330d6e0a9442ba9970 Mon Sep 17 00:00:00 2001
-From: Stefan Fritsch <sf@sfritsch.de>
-Date: Tue, 24 Apr 2012 22:31:18 +0200
-Subject: [PATCH 05/22] workaround CScan choking on glibc's headers
-
-CScan gets rather confused if cpp's line number markers appear in the middle
-of a function declaration
----
- lib/ModPerl/CScan.pm | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/ModPerl/CScan.pm b/lib/ModPerl/CScan.pm
-index 6789af3..a7314c9 100644
---- a/lib/ModPerl/CScan.pm
-+++ b/lib/ModPerl/CScan.pm
-@@ -943,7 +943,7 @@ sub new {
- my ($sym) = gensym;
- my $cmd = WIN32 ?
- "$Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $filename |" :
-- "echo '\#include \"$filename\"' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} |";
-+ "echo '\#include \"$filename\"' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} | grep -v '^#' |";
- #my $cmd = "echo '\#include <$filename>' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} |";
-
- (open($sym, $cmd) or die "Cannot open pipe from `$cmd': $!")
---
-1.7.10.2
-
-
-From fcb18aaa4eb48c8e213e2d23eb9e7b41f3d01e7d Mon Sep 17 00:00:00 2001
-From: Stefan Fritsch <sf@sfritsch.de>
-Date: Sun, 22 Apr 2012 22:39:33 +0200
-Subject: [PATCH 06/22] Add U16 type to make 'make xs_generate' happy
-
----
- xs/maps/modperl_types.map | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/xs/maps/modperl_types.map b/xs/maps/modperl_types.map
-index 3b02f02..8c6d541 100644
---- a/xs/maps/modperl_types.map
-+++ b/xs/maps/modperl_types.map
-@@ -7,6 +7,8 @@ struct modperl_filter_t | Apache2::OutputFilter
- SV * | SV
- I32 | IV
- I32 * | IV
-+U16 | UV
-+U16 * | UV
- U32 | UV
- U32 * | UV
-
---
-1.7.10.2
-
-
-From 670cf74e6949630b9fef02d9e0b0c10d00728521 Mon Sep 17 00:00:00 2001
-From: Stefan Fritsch <sf@sfritsch.de>
-Date: Sun, 22 Apr 2012 22:48:31 +0200
-Subject: [PATCH 07/22] add new constant CRLF_ASCII
-
----
- lib/ModPerl/Code.pm | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/lib/ModPerl/Code.pm b/lib/ModPerl/Code.pm
-index e43f77c..98b037d 100644
---- a/lib/ModPerl/Code.pm
-+++ b/lib/ModPerl/Code.pm
-@@ -889,7 +889,8 @@ EOF
-
- if ($name eq 'DECLINE_CMD' ||
- $name eq 'DIR_MAGIC_TYPE' ||
-- $name eq 'CRLF') {
-+ $name eq 'CRLF' ||
-+ $name eq 'CRLF_ASCII') {
- print $c_fh <<EOF;
- return newSVpv($alias{$name}, 0);
- EOF
---
-1.7.10.2
-
-
-From 51ce86b8ac2db8a5d408febe77c36e054fac578d Mon Sep 17 00:00:00 2001
-From: Stefan Fritsch <sf@sfritsch.de>
-Date: Sun, 22 Apr 2012 22:58:48 +0200
-Subject: [PATCH 08/22] workaround APR_ENOKEY not found
-
-there should be a better solution...
----
- src/modules/perl/modperl_apache_includes.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/modules/perl/modperl_apache_includes.h b/src/modules/perl/modperl_apache_includes.h
-index a4209c5..c2fb6de 100644
---- a/src/modules/perl/modperl_apache_includes.h
-+++ b/src/modules/perl/modperl_apache_includes.h
-@@ -38,6 +38,7 @@
- #include "http_core.h"
- #include "http_vhost.h"
- #include "ap_mpm.h"
-+#include "apu_errno.h"
-
- #include "util_filter.h"
-
---
-1.7.10.2
-
-
-From 434a596733eaf6c099e782c4969cb8a985200b78 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Mon, 4 Jun 2012 12:54:53 +0200
-Subject: [PATCH 09/22] Fix WrapXS parameters
-
----
- lib/ModPerl/WrapXS.pm | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/ModPerl/WrapXS.pm b/lib/ModPerl/WrapXS.pm
-index 9114fc6..10a3efe 100644
---- a/lib/ModPerl/WrapXS.pm
-+++ b/lib/ModPerl/WrapXS.pm
-@@ -140,7 +140,7 @@ EOF
- else {
- if ($orig_args and @$orig_args == @$args) {
- #args were reordered
-- $parms = join ', ', @$orig_args;
-+ $parms = $xs_parms;
- }
-
- $dispatch = $func->{name};
---
-1.7.10.2
-
-
-From 813a8c0e9cc99c61372effc37891717af182d286 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Mon, 4 Jun 2012 12:57:18 +0200
-Subject: [PATCH 10/22] Remove OPT_INCNOEXEC
-
----
- src/modules/perl/modperl_apache_compat.h | 1 -
- t/response/TestAPI/add_config.pm | 1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/src/modules/perl/modperl_apache_compat.h b/src/modules/perl/modperl_apache_compat.h
-index 78a9cb3..072ae79 100644
---- a/src/modules/perl/modperl_apache_compat.h
-+++ b/src/modules/perl/modperl_apache_compat.h
-@@ -68,7 +68,6 @@ AP_DECLARE(const char *) ap_get_server_version(void);
- #define MP_HTTPD_OVERRIDE_OPTS_UNSET (-1)
- #define MP_HTTPD_OVERRIDE_OPTS_DEFAULT (OPT_UNSET | \
- OPT_ALL | \
-- OPT_INCNOEXEC | \
- OPT_SYM_OWNER | \
- OPT_MULTI)
+diff --git a/t/response/TestDirective/cmdparms.pm b/t/response/TestDirective/cmdparms.pm
+index 72e0d33..8dc0e73 100644
+--- a/t/response/TestDirective/cmdparms.pm
++++ b/t/response/TestDirective/cmdparms.pm
+@@ -134,6 +134,7 @@ TestCmdParms "Vhost"
+
+ TestCmdParms "Location"
+
+-<LimitExcept GET>
+- TestCmdParms "Limit"
+-</LimitExcept>
++#FIXME! httpd 2.4 does not allow LimitExcept here
++# <LimitExcept GET>
++# TestCmdParms "Limit"
++# </LimitExcept>
+diff --git a/xs/APR/APR/Makefile.PL b/xs/APR/APR/Makefile.PL
+index 99ac3d4..79a0a0e 100644
+--- a/xs/APR/APR/Makefile.PL
++++ b/xs/APR/APR/Makefile.PL
+@@ -66,6 +66,8 @@ if (SOLARIS && $libs) {
+ $libs =~ s{-R\S+}{}g;
+ }
-diff --git a/t/response/TestAPI/add_config.pm b/t/response/TestAPI/add_config.pm
-index ff52cbc..c5f2d37 100644
---- a/t/response/TestAPI/add_config.pm
-+++ b/t/response/TestAPI/add_config.pm
-@@ -100,7 +100,6 @@ sub handler : method {
++# FIXME: This should be done automatically somewhere in Apache2::Build
++$libs .= qq{ -laprutil-1 };
+ $args{LIBS} = [$libs] if $libs;
- my $expect = Apache2::Const::OPT_ALL |
- Apache2::Const::OPT_UNSET |
-- Apache2::Const::OPT_INCNOEXEC |
- Apache2::Const::OPT_MULTI |
- Apache2::Const::OPT_SYM_OWNER;
+ my $srcdir = '../../../src/modules/perl';
+diff --git a/xs/APR/Socket/APR__Socket.h b/xs/APR/Socket/APR__Socket.h
+index dfc681c..d59fce6 100644
+--- a/xs/APR/Socket/APR__Socket.h
++++ b/xs/APR/Socket/APR__Socket.h
+@@ -118,10 +118,10 @@ apr_status_t mpxs_APR__Socket_poll(apr_socket_t *socket,
+ }
---
-1.7.10.2
-
-
-From ea359ac8f17a9df49807499d70c66f67245bc466 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Wed, 6 Jun 2012 08:47:21 +0200
-Subject: [PATCH 11/22] Fixed logleve
-
----
- xs/Apache2/Log/Apache2__Log.h | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
+ #ifndef WIN32
+-static MP_INLINE int mpxs_APR__Socket_fileno(pTHX_ apr_socket_t *sock)
++static MP_INLINE int mpxs_APR__Socket_fileno(pTHX_ apr_socket_t *socket)
+ {
+ apr_os_sock_t s;
+- apr_os_sock_get(&s, sock);
++ apr_os_sock_get(&s, socket);
+ return s;
+ }
+ #endif
diff --git a/xs/Apache2/Log/Apache2__Log.h b/xs/Apache2/Log/Apache2__Log.h
-index 1866315..4a3bb4d 100644
+index 1866315..8281e8e 100644
--- a/xs/Apache2/Log/Apache2__Log.h
+++ b/xs/Apache2/Log/Apache2__Log.h
@@ -36,6 +36,7 @@ static void mpxs_ap_log_error(pTHX_ int level, SV *sv, SV *msg)
@@ -400,220 +434,10 @@ index 1866315..4a3bb4d 100644
SvROK(msg) && (SvTYPE(SvRV(msg)) == SVt_PVCV)) {
dSP;
ENTER;SAVETMPS;
---
-1.7.10.2
-
-
-From 171af3b2747e95f2d670a34ae2cbf4899e92f941 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Mon, 4 Jun 2012 13:12:40 +0200
-Subject: [PATCH 12/22] Use module name in ap_add_loaded_module
-
----
- src/modules/perl/modperl_module.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/modules/perl/modperl_module.c b/src/modules/perl/modperl_module.c
-index da148ca..aa1a851 100644
---- a/src/modules/perl/modperl_module.c
-+++ b/src/modules/perl/modperl_module.c
-@@ -832,7 +832,11 @@ const char *modperl_module_add(apr_pool_t *p, server_rec *s,
-
- modperl_module_insert(modp);
-
-+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
-+ ap_add_loaded_module(modp, p, modp->name);
-+#else
- ap_add_loaded_module(modp, p);
-+#endif
-
- apr_pool_cleanup_register(p, modp, modperl_module_remove,
- apr_pool_cleanup_null);
---
-1.7.10.2
-
-
-From 963dd2b75feff278eda95de353d5d1975304ad13 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Mon, 4 Jun 2012 13:14:52 +0200
-Subject: [PATCH 13/22] unixd_config renamed to ap_unixd_config
-
----
- xs/Apache2/ServerUtil/Apache2__ServerUtil.h | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/xs/Apache2/ServerUtil/Apache2__ServerUtil.h b/xs/Apache2/ServerUtil/Apache2__ServerUtil.h
-index e222c1b..f000502 100644
---- a/xs/Apache2/ServerUtil/Apache2__ServerUtil.h
-+++ b/xs/Apache2/ServerUtil/Apache2__ServerUtil.h
-@@ -162,8 +162,13 @@ SV *mpxs_Apache2__ServerRec_get_handlers(pTHX_ server_rec *s,
- #define mpxs_Apache2__ServerUtil_server(classname) modperl_global_get_server_rec()
-
- #if !defined(OS2) && !defined(WIN32) && !defined(BEOS) && !defined(NETWARE)
-+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
-+#define mpxs_Apache2__ServerUtil_user_id(classname) ap_unixd_config.user_id
-+#define mpxs_Apache2__ServerUtil_group_id(classname) ap_unixd_config.group_id
-+#else
- #define mpxs_Apache2__ServerUtil_user_id(classname) unixd_config.user_id
- #define mpxs_Apache2__ServerUtil_group_id(classname) unixd_config.group_id
-+#endif
- #else
- #define mpxs_Apache2__ServerUtil_user_id(classname) 0
- #define mpxs_Apache2__ServerUtil_group_id(classname) 0
---
-1.7.10.2
-
-
-From 888e80fec78ec7a030b98239858dc6052253eb07 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Mon, 4 Jun 2012 13:17:03 +0200
-Subject: [PATCH 14/22] remote_ip renamed to client_ip
-
----
- src/modules/perl/modperl_interp.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/src/modules/perl/modperl_interp.c b/src/modules/perl/modperl_interp.c
-index dfff32e..6ec9b56 100644
---- a/src/modules/perl/modperl_interp.c
-+++ b/src/modules/perl/modperl_interp.c
-@@ -496,11 +496,19 @@ modperl_interp_t *modperl_interp_select(request_rec *r, conn_rec *c,
-
- set_interp(p);
-
-+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
-+ MP_TRACE_i(MP_FUNC,
-+ "set interp 0x%lx in %s 0x%lx (%s request for %s)\n",
-+ (unsigned long)interp, desc, (unsigned long)p,
-+ (r ? (is_subrequest ? "sub" : "main") : "conn"),
-+ (r ? r->uri : c->client_ip));
-+#else
- MP_TRACE_i(MP_FUNC,
- "set interp 0x%lx in %s 0x%lx (%s request for %s)\n",
- (unsigned long)interp, desc, (unsigned long)p,
- (r ? (is_subrequest ? "sub" : "main") : "conn"),
- (r ? r->uri : c->remote_ip));
-+#endif
- }
-
- /* set context (THX) for this thread */
---
-1.7.10.2
-
-
-From 6bc12830447343c70bf4e2bd10c2eb8b80c0f38c Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Mon, 4 Jun 2012 13:20:07 +0200
-Subject: [PATCH 15/22] remove apu_error.h include
-
----
- src/modules/perl/modperl_apache_includes.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/modules/perl/modperl_apache_includes.h b/src/modules/perl/modperl_apache_includes.h
-index c2fb6de..6f7bd8b 100644
---- a/src/modules/perl/modperl_apache_includes.h
-+++ b/src/modules/perl/modperl_apache_includes.h
-@@ -38,7 +38,9 @@
- #include "http_core.h"
- #include "http_vhost.h"
- #include "ap_mpm.h"
-+#if !(AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4)
- #include "apu_errno.h"
-+#endif
-
- #include "util_filter.h"
-
---
-1.7.10.2
-
-
-From ad6b98f6e768032c5ac20bf4d89e8bb895d788fa Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Mon, 4 Jun 2012 13:21:14 +0200
-Subject: [PATCH 16/22] Declare modperl::Global methods, otherwise they are
- not parsed and included in the final build
-
----
- xs/ModPerl/Global/ModPerl__Global.h | 22 ++++++++++++++++++----
- 1 file changed, 18 insertions(+), 4 deletions(-)
-
-diff --git a/xs/ModPerl/Global/ModPerl__Global.h b/xs/ModPerl/Global/ModPerl__Global.h
-index 2ece589..1b38683 100644
---- a/xs/ModPerl/Global/ModPerl__Global.h
-+++ b/xs/ModPerl/Global/ModPerl__Global.h
-@@ -17,7 +17,11 @@
- typedef void (*mpxs_special_list_do_t)(pTHX_ modperl_modglobal_key_t *,
- const char *, I32);
-
--static int mpxs_special_list_do(pTHX_ const char *name,
-+int mpxs_special_list_do(pTHX_ const char *name,
-+ SV *package,
-+ mpxs_special_list_do_t func);
-+
-+int mpxs_special_list_do(pTHX_ const char *name,
- SV *package,
- mpxs_special_list_do_t func)
- {
-@@ -36,7 +40,9 @@ static int mpxs_special_list_do(pTHX_ const char *name,
- return TRUE;
- }
-
--static
-+int mpxs_ModPerl__Global_special_list_call(pTHX_ const char *name,
-+ SV *package);
-+
- MP_INLINE int mpxs_ModPerl__Global_special_list_call(pTHX_ const char *name,
- SV *package)
- {
-@@ -44,7 +50,11 @@ MP_INLINE int mpxs_ModPerl__Global_special_list_call(pTHX_ const char *name,
- modperl_perl_global_avcv_call);
- }
-
--static
-+
-+int mpxs_ModPerl__Global_special_list_clear(pTHX_ const char *name,
-+ SV *package);
-+
-+
- MP_INLINE int mpxs_ModPerl__Global_special_list_clear(pTHX_ const char *name,
- SV *package)
- {
-@@ -52,7 +62,11 @@ MP_INLINE int mpxs_ModPerl__Global_special_list_clear(pTHX_ const char *name,
- modperl_perl_global_avcv_clear);
- }
-
--static
-+int mpxs_ModPerl__Global_special_list_register(pTHX_
-+ const char *name,
-+ SV *package);
-+
-+
- MP_INLINE int mpxs_ModPerl__Global_special_list_register(pTHX_
- const char *name,
- SV *package)
---
-1.7.10.2
-
-
-From 6036d0e2f19f2ff5c851b24d40e36f396d7c24da Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Thu, 7 Jun 2012 12:24:06 +0200
-Subject: [PATCH 17/22] Fix ap_log_error and ap_log_rerror calls
-
----
- xs/Apache2/Log/Apache2__Log.h | 19 ++++++++++++++++++-
- 1 file changed, 18 insertions(+), 1 deletion(-)
-
-diff --git a/xs/Apache2/Log/Apache2__Log.h b/xs/Apache2/Log/Apache2__Log.h
-index 4a3bb4d..deb589f 100644
---- a/xs/Apache2/Log/Apache2__Log.h
-+++ b/xs/Apache2/Log/Apache2__Log.h
-@@ -77,13 +77,21 @@ static void mpxs_ap_log_error(pTHX_ int level, SV *sv, SV *msg)
- else {
+@@ -71,12 +78,21 @@ static void mpxs_ap_log_error(pTHX_ int level, SV *sv, SV *msg)
str = SvPV(msg,n_a);
}
--
+
+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
+ if (r) {
+ ap_log_rerror(file, line, APLOG_MODULE_INDEX, level, 0, r, "%s", str);
@@ -632,7 +456,7 @@ index 4a3bb4d..deb589f 100644
if (svstr) {
SvREFCNT_dec(svstr);
-@@ -264,12 +272,21 @@ MP_STATIC XS(MPXS_Apache2__Log_log_xerror)
+@@ -257,12 +273,21 @@ MP_STATIC XS(MPXS_Apache2__Log_log_xerror)
msgstr = SvPV(msgsv, n_a);
@@ -654,63 +478,24 @@ index 4a3bb4d..deb589f 100644
SvREFCNT_dec(msgsv);
---
-1.7.10.2
-
-
-From 3d927e6284d239a3a9b4876752b974d1155b3517 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Thu, 7 Jun 2012 12:25:37 +0200
-Subject: [PATCH 18/22] Fix svav_getstr to return apr_status_t
-
----
- src/modules/perl/modperl_config.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/modules/perl/modperl_config.c b/src/modules/perl/modperl_config.c
-index c4ef81f..e182f2d 100644
---- a/src/modules/perl/modperl_config.c
-+++ b/src/modules/perl/modperl_config.c
-@@ -479,7 +479,7 @@ typedef struct {
- PerlInterpreter *perl;
- } svav_param_t;
-
--static void *svav_getstr(void *buf, size_t bufsiz, void *param)
-+static apr_status_t svav_getstr(void *buf, size_t bufsiz, void *param)
- {
- svav_param_t *svav_param = (svav_param_t *)param;
- dTHXa(svav_param->perl);
-@@ -488,7 +488,7 @@ static void *svav_getstr(void *buf, size_t bufsiz, void *param)
- STRLEN n_a;
-
- if (svav_param->ix > AvFILL(av)) {
-- return NULL;
-+ return APR_EOF;
- }
-
- sv = AvARRAY(av)[svav_param->ix++];
-@@ -496,7 +496,7 @@ static void *svav_getstr(void *buf, size_t bufsiz, void *param)
-
- apr_cpystrn(buf, SvPVX(sv), bufsiz);
-
-- return buf;
-+ return APR_SUCCESS;
- }
+diff --git a/xs/Apache2/ServerUtil/Apache2__ServerUtil.h b/xs/Apache2/ServerUtil/Apache2__ServerUtil.h
+index e222c1b..f000502 100644
+--- a/xs/Apache2/ServerUtil/Apache2__ServerUtil.h
++++ b/xs/Apache2/ServerUtil/Apache2__ServerUtil.h
+@@ -162,8 +162,13 @@ SV *mpxs_Apache2__ServerRec_get_handlers(pTHX_ server_rec *s,
+ #define mpxs_Apache2__ServerUtil_server(classname) modperl_global_get_server_rec()
- const char *modperl_config_insert(pTHX_ server_rec *s,
---
-1.7.10.2
-
-
-From 302d524a184c19936005df9d237a194829e6bfb1 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Thu, 7 Jun 2012 12:59:08 +0200
-Subject: [PATCH 19/22] Fix undefined reference to perl_module
-
----
- xs/ModPerl/Const/Const.xs | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
+ #if !defined(OS2) && !defined(WIN32) && !defined(BEOS) && !defined(NETWARE)
++#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
++#define mpxs_Apache2__ServerUtil_user_id(classname) ap_unixd_config.user_id
++#define mpxs_Apache2__ServerUtil_group_id(classname) ap_unixd_config.group_id
++#else
+ #define mpxs_Apache2__ServerUtil_user_id(classname) unixd_config.user_id
+ #define mpxs_Apache2__ServerUtil_group_id(classname) unixd_config.group_id
++#endif
+ #else
+ #define mpxs_Apache2__ServerUtil_user_id(classname) 0
+ #define mpxs_Apache2__ServerUtil_group_id(classname) 0
diff --git a/xs/ModPerl/Const/Const.xs b/xs/ModPerl/Const/Const.xs
index 33a4c0c..15fa36d 100644
--- a/xs/ModPerl/Const/Const.xs
@@ -733,81 +518,16 @@ index 33a4c0c..15fa36d 100644
MODULE = ModPerl::Const PACKAGE = ModPerl::Const
PROTOTYPES: disable
---
-1.7.10.2
-
-
-From b16f7c43d01db3f4f6123a15d369d5070fcc8ac0 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Thu, 7 Jun 2012 13:31:57 +0200
-Subject: [PATCH 20/22] Find for headers also in APR_INCLUDEDIR
-
----
- lib/Apache2/ParseSource.pm | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/lib/Apache2/ParseSource.pm b/lib/Apache2/ParseSource.pm
-index f35c2a8..2f68fa7 100644
---- a/lib/Apache2/ParseSource.pm
-+++ b/lib/Apache2/ParseSource.pm
-@@ -116,6 +116,7 @@ sub scan {
- sub include_dirs {
- my $self = shift;
- ($self->config->apxs('-q' => 'INCLUDEDIR'),
-+ $self->config->apxs('-q' => 'APR_INCLUDEDIR'),
- $self->config->mp_include_dir);
- }
-
---
-1.7.10.2
-
-
-From c87aca396f11277c1ef90b13cbd3d583dda86512 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Thu, 7 Jun 2012 13:35:46 +0200
-Subject: [PATCH 21/22] Include apu_errno
-
----
- src/modules/perl/modperl_apr_includes.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/modules/perl/modperl_apr_includes.h b/src/modules/perl/modperl_apr_includes.h
-index f5ae341..8e69776 100644
---- a/src/modules/perl/modperl_apr_includes.h
-+++ b/src/modules/perl/modperl_apr_includes.h
-@@ -35,5 +35,6 @@
- #include "apr_general.h"
- #include "apr_uuid.h"
- #include "apr_env.h"
-+#include "apu_errno.h"
-
- #endif /* MODPERL_APR_INCLUDES_H */
---
-1.7.10.2
-
-
-From 454581a726fe637f3d71376b47104edce6cbb195 Mon Sep 17 00:00:00 2001
-From: Jan Kaluza <hanzz.k@gmail.com>
-Date: Thu, 7 Jun 2012 13:43:40 +0200
-Subject: [PATCH 22/22] Add PROXYREQ define
-
----
- lib/Apache2/ParseSource.pm | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/Apache2/ParseSource.pm b/lib/Apache2/ParseSource.pm
-index 2f68fa7..2fda9e2 100644
---- a/lib/Apache2/ParseSource.pm
-+++ b/lib/Apache2/ParseSource.pm
-@@ -231,7 +231,7 @@ sub generate_cscan_file {
+diff --git a/xs/maps/modperl_types.map b/xs/maps/modperl_types.map
+index 3b02f02..8c6d541 100644
+--- a/xs/maps/modperl_types.map
++++ b/xs/maps/modperl_types.map
+@@ -7,6 +7,8 @@ struct modperl_filter_t | Apache2::OutputFilter
+ SV * | SV
+ I32 | IV
+ I32 * | IV
++U16 | UV
++U16 * | UV
+ U32 | UV
+ U32 * | UV
- my %defines_wanted = (
- 'Apache2::Const' => {
-- common => [qw{OK DECLINED DONE}],
-+ common => [qw{OK DECLINED DONE PROXYREQ PROXYREQ_REVERSE}],
- config => [qw{DECLINE_CMD}],
- context => [qw(NOT_IN_ GLOBAL_ONLY)],
- http => [qw{HTTP_}],
---
-1.7.10.2
-