From: Eric Wong Date: Sat, 8 Feb 2025 03:26:34 +0000 (+0000) Subject: git_http_backend: fix 32 default connection limit X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d11b68028c6925304bb9b65b9d61802a4fe6a9d2;p=thirdparty%2Fpublic-inbox.git git_http_backend: fix 32 default connection limit Using any configurable limiter actually defaults to `1', which isn't intended for `-httpbackend'. So add a $max_default parameter to ensure we can set a per-limiter default value for default limiters such as `-httpbackend'. Fixes: 0a083241 (git_http_backend: use default limiter from Qspawn, 2025-01-28) --- diff --git a/lib/PublicInbox/Config.pm b/lib/PublicInbox/Config.pm index 03db2a51a..2bb1a6722 100644 --- a/lib/PublicInbox/Config.pm +++ b/lib/PublicInbox/Config.pm @@ -123,13 +123,13 @@ sub lookup_newsgroup { } sub limiter { - my ($self, $name) = @_; + my ($self, $name, $max_default) = @_; $self->{-limiters}->{$name} //= do { require PublicInbox::Limiter; - my $max = $self->{"publicinboxlimiter.$name.max"} || 1; - my $limiter = PublicInbox::Limiter->new($max); - $limiter->setup_rlimit($name, $self); - $limiter; + my $max = $self->{"publicinboxlimiter.$name.max"}; + my $l = PublicInbox::Limiter->new($max || $max_default || 1); + $l->setup_rlimit($name, $self); + $l; }; } diff --git a/lib/PublicInbox/GitHTTPBackend.pm b/lib/PublicInbox/GitHTTPBackend.pm index 172de2bca..57d2ec7ba 100644 --- a/lib/PublicInbox/GitHTTPBackend.pm +++ b/lib/PublicInbox/GitHTTPBackend.pm @@ -98,8 +98,9 @@ sub serve_smart ($$$;$) { my $val = $env->{$name}; $env{$name} = $val if defined $val; } + # 32 is the default connection limit for git-daemon, so match that my $limiter = $git->{-httpbackend_limiter} // - ($pi_cfg ? $pi_cfg->limiter('-httpbackend') : undef); + ($pi_cfg ? $pi_cfg->limiter('-httpbackend', 32) : undef); $env{GIT_HTTP_EXPORT_ALL} = '1'; $env{PATH_TRANSLATED} = "$git->{git_dir}/$path"; my $rdr = input_prepare($env) or return r(500);