about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--Documentation/public-inbox-config.pod4
-rw-r--r--lib/PublicInbox/Cgit.pm3
-rw-r--r--lib/PublicInbox/Config.pm2
3 files changed, 7 insertions, 2 deletions
diff --git a/Documentation/public-inbox-config.pod b/Documentation/public-inbox-config.pod
index dae69987..d6ecd086 100644
--- a/Documentation/public-inbox-config.pod
+++ b/Documentation/public-inbox-config.pod
@@ -231,6 +231,10 @@ the default limiter.
 C<RLIMIT_*> keys may be set to enforce resource limits for
 a particular limiter.
 
+Default named-limiters are prefixed with "-".  Currently,
+the "-cgit" named limiter is reserved for instances spawning
+cgit via C<publicinbox.cgitrc>
+
 =over 8
 
 =item publicinboxlimiter.<name>.max
diff --git a/lib/PublicInbox/Cgit.pm b/lib/PublicInbox/Cgit.pm
index 3d1a0d54..9ba9e14d 100644
--- a/lib/PublicInbox/Cgit.pm
+++ b/lib/PublicInbox/Cgit.pm
@@ -77,7 +77,8 @@ sub call {
 
         my $rdr = input_prepare($env) or return r(500);
         my $qsp = PublicInbox::Qspawn->new($self->{cmd}, $cgi_env, $rdr);
-        $qsp->psgi_return($env, undef, sub {
+        my $limiter = $self->{pi_config}->limiter('-cgit');
+        $qsp->psgi_return($env, $limiter, sub {
                 my ($r, $bref) = @_;
                 my $res = parse_cgi_headers($r, $bref) or return; # incomplete
                 $res;
diff --git a/lib/PublicInbox/Config.pm b/lib/PublicInbox/Config.pm
index 6f62712f..9c1c3e2c 100644
--- a/lib/PublicInbox/Config.pm
+++ b/lib/PublicInbox/Config.pm
@@ -132,7 +132,7 @@ sub limiter {
         my ($self, $name) = @_;
         $self->{-limiters}->{$name} ||= do {
                 require PublicInbox::Qspawn;
-                my $max = $self->{"publicinboxlimiter.$name.max"};
+                my $max = $self->{"publicinboxlimiter.$name.max"} || 1;
                 my $limiter = PublicInbox::Qspawn::Limiter->new($max);
                 $limiter->setup_rlimit($name, $self);
                 $limiter;