]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Qspawn.pm
rename {pi_config} fields to {pi_cfg}
[public-inbox.git] / lib / PublicInbox / Qspawn.pm
index d395a10b3b156b1fac05facbad8a4eca04ef44c2..2aa2042ab7e870fbdf499dcb0e3f1495138e6702 100644 (file)
@@ -25,8 +25,8 @@
 
 package PublicInbox::Qspawn;
 use strict;
-use warnings;
 use PublicInbox::Spawn qw(popen_rd);
+use PublicInbox::GzipFilter;
 
 # n.b.: we get EAGAIN with public-inbox-httpd, and EINTR on other PSGI servers
 use Errno qw(EAGAIN EINTR);
@@ -255,7 +255,9 @@ sub psgi_return_init_cb {
        my ($self) = @_;
        my $r = rd_hdr($self) or return;
        my $env = $self->{psgi_env};
-       my $filter = delete $env->{'qspawn.filter'};
+       my $filter = delete $env->{'qspawn.filter'} //
+               PublicInbox::GzipFilter::qsp_maybe($r->[1], $env);
+
        my $wcb = delete $env->{'qspawn.wcb'};
        my $async = delete $self->{async};
        if (scalar(@$r) == 3) { # error
@@ -357,12 +359,12 @@ sub new {
 }
 
 sub setup_rlimit {
-       my ($self, $name, $config) = @_;
+       my ($self, $name, $cfg) = @_;
        foreach my $rlim (@PublicInbox::Spawn::RLIMITS) {
                my $k = lc($rlim);
                $k =~ tr/_//d;
                $k = "publicinboxlimiter.$name.$k";
-               defined(my $v = $config->{$k}) or next;
+               defined(my $v = $cfg->{$k}) or next;
                my @rlimit = split(/\s*,\s*/, $v);
                if (scalar(@rlimit) == 1) {
                        push @rlimit, $rlimit[0];