On Tue, Apr 10, 2012 at 11:44 PM, Jan Kaluža <jkal...@redhat.com> wrote: > I've talked with Torsten about the mod_perl and httpd-2.4 compatibility and > he advised me to start discussion about this problem. > > Attached patch against httpd24 branch fixes the compilation with httpd-2.4. > I was not able to generate xs using "make source_scan", so I've changed them > manually. Should source_scan.pl work...?
What changes to source_scan.pl did you have to make? I've gotten httpd 2.4 to compile successfully, and I think this patch will work in terms of the api changes, but it needs to provide the appropriate method depending on the httpd minor version, remote_ip for 2.0, 2.2 and client_ip for 2.4. I'm not sure where that happens yet in the codebase - maybe FunctionTable.pm? I would favor the compatibility layer approach personally. I have some code on CPAN that uses remote_ip, so I don't really want to go change that to support 2.4 just yet. > > Except the source_scan.pl issue, there is one issue which has to be > addressed too. > > conn_rec->remote_ip and conn_rec->remote_addr have been removed and replaced > by request_rec->useragent_ip, request_rec->useragent_addr and > conn_rec->client_ip, conn_rec->client_addr. See [1] to read about the > differences between them. > > There are two ways how to address this issue: > > 1. Break the compatibility with older mod_perl versions. The advantage is > that mod_perl will stay consistent with httpd and mod_perl developers would > not have to maintain the compatibility layer. > > The disadvantage is that if there are projects using mod_perl and > remote_ip/remote_addr, they would have to be fixed too. However, it's the > very same situation like with httpd-2.4, where all the modules using > remote_ip/remote_addr have to be fixed too. > > 2. Introduce the compatibility layer. I'm not Perl expert, but I think with > the way how mod_perl is built currently it's not doable out-of-box (I can be > wrong of course). > > Interesting thing is also that most modules I've ported to httpd-2.4 use > remote_ip/remote_addr in the meaning of useragent_ip/useragent_addr. In > http-2.4 these two pairs are members of different structs (conn_rec and > request_rec). I think I can't imagine how would we map conn_rec->remote_ip > to request_rec->useragent_ip... > > > Personally I would vote for the number 1 and bumping mod_perl version. > > I'm not Perl developer, I just co-maintain mod_perl in Fedora and in the > development version httpd has been updated to 2.4, so mod_perl is not > building there anymore. > > Regards, > Jan Kaluza > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org > For additional commands, e-mail: dev-h...@perl.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org For additional commands, e-mail: dev-h...@perl.apache.org