diff --git src/lib/Hydra/Controller/Root.pm src/lib/Hydra/Controller/Root.pm index a9b0d558..71869ba0 100644 --- a/src/lib/Hydra/Controller/Root.pm +++ b/src/lib/Hydra/Controller/Root.pm @@ -19,6 +19,11 @@ use Net::Prometheus; # Put this controller at top-level. __PACKAGE__->config->{namespace} = ''; +sub isRedistRestricted { + my ($path) = @_; + + return index($path, "-RESTRICTDIST-") >= 0; +} sub noLoginNeeded { my ($c) = @_; @@ -319,6 +324,7 @@ sub nar :Local :Args(1) { $path = $Nix::Config::storeDir . "/$path"; gone($c, "Path " . $path . " is no longer available.") unless isValidPath($path); + notFound($c, "Redistribution restricted") if isRedistRestricted($path); $c->stash->{current_view} = 'NixNAR'; $c->stash->{storePath} = $path; @@ -368,6 +374,7 @@ sub narinfo :LocalRegex('^([a-z0-9]+).narinfo$') :Args(0) { setCacheHeaders($c, 60 * 60); return; } + notFound($c, "Redistribution restricted") if isRedistRestricted($path); $c->stash->{storePath} = $path; $c->forward('Hydra::View::NARInfo');