Re: Barrier to implementing web content compression in mod_perl
[prev]
[thread]
[next]
[Date index for 2005/01/31]
------=_Part_2624_27511068.1107206609767
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
On Mon, 31 Jan 2005 15:34:05 -0500, Perrin Harkins <perrin@xxxx.xxx> wrote:
> On Sun, 2005-01-30 at 21:54 +0000, Alex Greg wrote:
> > The problem I have found is that when I modify print_content_type as follows:
> >
> > sub print_content_type
> > {
> > my ($content_type) = @_;
> >
> > my $r = Apache->request();
> >
> > $r = $r->filter_register;
> > $fh = $r->filter_input();
> >
> > if (!$content_type)
> > {
> > $r->send_http_header("text/html");
> > }
> > else
> > {
> > $r->send_http_header($content_type);
> > }
> > }
> >
> > in order to register our application with the Apache::RegistryFilter
> > chain (which is required to use either Apache::Dynagzip or
> > Apache::Compress), I get the following in the error log:
> >
> > [Sat Dec 25 01:36:32 2004] [error] Not a HASH reference at
> > /usr/lib/perl5/site_perl/5.8.3/Apache/Filter.pm line 197.
>
> Have you tried using Apache::RegistryFilter instead of Registry?
HI Perrin,
I'm using Apache::RegistryFilter:
PerlHandler Apache::RegistryFilter Apache::Dynagzip
See the attached httpd.conf for full context etc.
> Or try putting something like this at the top of your scripts:
>
> my $r = shift;
> $r->filter_register();
>
> I don't think there's any reason for you to call $r->filter_input().
This causes the same problem as:
$r = Apache->request();
Attached is my httpd.conf and a script test.cgi which reproduces the
problem I'm having. I'm using Apache/1.3.33 with mod_perl statically
linked.
Regards,
-- Alex
------=_Part_2624_27511068.1107206609767
Content-Type: application/octet-stream; name="httpd.conf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="httpd.conf"
U2VydmVyVHlwZSBzdGFuZGFsb25lCgpTZXJ2ZXJSb290ICIvd3d3IgoKUGlkRmlsZSAvd3d3L2xv
Z3MvaHR0cGQucGlkClNjb3JlQm9hcmRGaWxlIC93d3cvbG9ncy9odHRwZC5zY29yZWJvYXJkClRp
bWVvdXQgMzAwCgpLZWVwQWxpdmUgT2ZmCgpNYXhLZWVwQWxpdmVSZXF1ZXN0cyAxMDAKCktlZXBB
bGl2ZVRpbWVvdXQgMTUKCk1pblNwYXJlU2VydmVycyA1CgpNYXhTcGFyZVNlcnZlcnMgMTAKClN0
YXJ0U2VydmVycyAxMAoKTWF4Q2xpZW50cyA5MAoKTWF4UmVxdWVzdHNQZXJDaGlsZCAyNTAKCkNs
ZWFyTW9kdWxlTGlzdApBZGRNb2R1bGUgbW9kX2Vudi5jCkFkZE1vZHVsZSBtb2RfbG9nX2NvbmZp
Zy5jCkFkZE1vZHVsZSBtb2RfbWltZS5jCkFkZE1vZHVsZSBtb2RfbmVnb3RpYXRpb24uYwpBZGRN
b2R1bGUgbW9kX3N0YXR1cy5jCkFkZE1vZHVsZSBtb2RfaW5jbHVkZS5jCkFkZE1vZHVsZSBtb2Rf
YXV0b2luZGV4LmMKQWRkTW9kdWxlIG1vZF9kaXIuYwpBZGRNb2R1bGUgbW9kX2NnaS5jCkFkZE1v
ZHVsZSBtb2RfYXNpcy5jCkFkZE1vZHVsZSBtb2RfaW1hcC5jCkFkZE1vZHVsZSBtb2RfYWN0aW9u
cy5jCkFkZE1vZHVsZSBtb2RfdXNlcmRpci5jCkFkZE1vZHVsZSBtb2RfYWxpYXMuYwpBZGRNb2R1
bGUgbW9kX2FjY2Vzcy5jCkFkZE1vZHVsZSBtb2RfYXV0aC5jCkFkZE1vZHVsZSBtb2Rfc2V0ZW52
aWYuYwpBZGRNb2R1bGUgbW9kX3BlcmwuYwoKUG9ydCA4MAoKVXNlciBub2JvZHkKR3JvdXAgbm9i
b2R5CgpTZXJ2ZXJBZG1pbiB3ZWJtYXN0ZXJAbG9jYWxob3N0CgpTZXJ2ZXJOYW1lICoKCkRvY3Vt
ZW50Um9vdCAiL3d3dy9odGRvY3MiCgpVc2VDYW5vbmljYWxOYW1lIE9mZgoKPElmTW9kdWxlIG1v
ZF9taW1lLmM+CiAgICBUeXBlc0NvbmZpZyAvd3d3L2NvbmYvbWltZS50eXBlcwo8L0lmTW9kdWxl
PgoKRGVmYXVsdFR5cGUgdGV4dC9wbGFpbgoKPElmTW9kdWxlIG1vZF9taW1lX21hZ2ljLmM+CiAg
ICBNSU1FTWFnaWNGaWxlIC93d3cvY29uZi9tYWdpYwo8L0lmTW9kdWxlPgoKSG9zdG5hbWVMb29r
dXBzIE9mZgoKTG9nRm9ybWF0ICIlaCAlbCAldSAldCBcIiVyXCIgJT5zICViIFwiJXtSZWZlcmVy
fWlcIiBcIiV7VXNlci1BZ2VudH1pXCIgJXYiIGNvbWJpbmVkCgpDdXN0b21Mb2cgbG9ncy9jb21i
aW5lZF9hY2Nlc3NfbG9nIGNvbWJpbmVkCkVycm9yTG9nIGxvZ3MvZXJyb3JfbG9nCgpMb2dMZXZl
bCBkZWJ1ZwoKUGVybE1vZHVsZSBBcGFjaGU6OkZpbHRlcgpQZXJsTW9kdWxlIEFwYWNoZTo6RHlu
YWd6aXAKUGVybE1vZHVsZSBBcGFjaGU6OkNvbXByZXNzCgo8RGlyZWN0b3J5IC8+CglPcHRpb25z
IEZvbGxvd1N5bUxpbmtzCglPcmRlciBhbGxvdyxkZW55CglBbGxvdyBmcm9tIGFsbAo8L0RpcmVj
dG9yeT4KCjxEaXJlY3RvcnkgIi93d3cvY2dpLWJpbiI+CglTZXRIYW5kbGVyIHBlcmwtc2NyaXB0
CglQZXJsSGFuZGxlciBBcGFjaGU6OlJlZ2lzdHJ5RmlsdGVyIEFwYWNoZTo6RHluYWd6aXAKCVBl
cmxTZXRWYXIgRmlsdGVyIE9uCglQZXJsU2VuZEhlYWRlciBPZmYKCVBlcmxTZXR1cEVudiBPbgoJ
QWxsb3dPdmVycmlkZSBBdXRoQ29uZmlnCglPcHRpb25zICtFeGVjQ0dJCjwvRGlyZWN0b3J5PgoK
U2NyaXB0QWxpYXMgL2NnaS1iaW4vIC93d3cvY2dpLWJpbi8KCkFkZEhhbmRsZXIgY2dpLXNjcmlw
dCAuY2dpIC5wbAo=
------=_Part_2624_27511068.1107206609767
Content-Type: application/octet-stream; name="test.cgi"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="test.cgi"
IyEvdXNyL2Jpbi9wZXJsCgpteSAkciA9IEFwYWNoZS0+cmVxdWVzdCgpOwojICJteSAkciA9IHNo
aWZ0OyIgcHJvZHVjZXMgdGhlIHNhbWUgZXJyb3IgYXMgdGhlIGFib3ZlCiRyID0gJHItPmZpbHRl
cl9yZWdpc3RlcjsKCnByaW50ICJDb250ZW50LXR5cGU6IHRleHQvaHRtbFxuXG4iOwoKcHJpbnQg
IjxoMT5Mb3JlbSBJcHN1bTwvaDE+XG5cbiI7CgpwcmludCAiPHA+TG9yZW0gaXBzdW0gZG9sb3Ig
c2l0IGFtZXQsIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuIFN1c3BlbmRpc3NlIGZyaW5n
aWxsYSBwb3J0dGl0b3IgbWkuLi4uPC9wPlxuXG4iOwoK
------=_Part_2624_27511068.1107206609767--