diff options
author | Eric Wong <e@80x24.org> | 2022-10-08 08:24:45 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2022-10-09 16:48:37 +0000 |
commit | 2bc26fececd03705c68c1968f95a2d199bafec29 (patch) | |
tree | 900a1080687adc7ec7877e6d9123a570f4b14804 /lib/PublicInbox/RepoSnapshot.pm | |
parent | 8bd0fadfe7fcc7c44a3478ffefede71f24319441 (diff) | |
download | public-inbox-2bc26fececd03705c68c1968f95a2d199bafec29.tar.gz |
This also ensures we won't waste CPU cycles on snapshots which aren't configured if somebody attempts them by guessing URLs.
Diffstat (limited to 'lib/PublicInbox/RepoSnapshot.pm')
-rw-r--r-- | lib/PublicInbox/RepoSnapshot.pm | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/PublicInbox/RepoSnapshot.pm b/lib/PublicInbox/RepoSnapshot.pm index 460340e6..826392a8 100644 --- a/lib/PublicInbox/RepoSnapshot.pm +++ b/lib/PublicInbox/RepoSnapshot.pm @@ -72,10 +72,12 @@ sub ver_check { # git->check_async callback sub srv { my ($ctx, $fn) = @_; return if $fn =~ /["\s]/s; - $fn =~ s/\.($SUFFIX)\z//o or return; + my $fmt = $ctx->{wcr}->{snapshots}; # TODO per-repo snapshots + $fn =~ s/\.($SUFFIX)\z//o and $fmt->{$1} or return; $ctx->{snap_fmt} = $1; my $pfx = $ctx->{git}->local_nick // return; $pfx =~ s/(?:\.git)?\z/-/; + ($pfx) = ($pfx =~ m!([^/]+)\z!); substr($fn, 0, length($pfx)) eq $pfx or return; $ctx->{snap_pfx} = $fn; my $v = $ctx->{snap_ver} = substr($fn, length($pfx), length($fn)); |