Blame contrib/mrtg-archiver-script/mrtgnav

Packit 667938
#!/usr/bin/perl
Packit 667938
Packit 667938
use strict;
Packit 667938
use URI;
Packit 667938
Packit 667938
my $dirc = 'none';
Packit 667938
my $HtmlBase = "/usr/lib/apache/htdocs";
Packit 667938
my ($rq, $rf, $prevDir, $nextDir, $newLocation);
Packit 667938
my ($basedir, $subdir, $file, $TheDir, $host);
Packit 667938
my (@dirs, @pathsegs);
Packit 667938
Packit 667938
$rq = URI->new($ENV{"REQUEST_URI"});
Packit 667938
$dirc = $rq->query;
Packit 667938
Packit 667938
$rf = URI->new($ENV{"HTTP_REFERER"});
Packit 667938
Packit 667938
$host = $rf->host;
Packit 667938
$subdir = $rf->path;
Packit 667938
@pathsegs = $rf->path_segments;
Packit 667938
Packit 667938
$file = $pathsegs[-1];
Packit 667938
$subdir = $pathsegs[-2];
Packit 667938
$basedir = join('/', @pathsegs[0..$#pathsegs-2]);
Packit 667938
Packit 667938
opendir(DIRHNDL, "$HtmlBase/$basedir");
Packit 667938
Packit 667938
while($TheDir = readdir(DIRHNDL)) {
Packit 667938
  if($TheDir =~ /^\w/ && -d "$HtmlBase/$basedir/$TheDir") {
Packit 667938
    push @dirs, $TheDir;
Packit 667938
  }
Packit 667938
}
Packit 667938
Packit 667938
@dirs = sort @dirs;
Packit 667938
Packit 667938
for(my $i = 0; $i <= $#dirs; $i++) {
Packit 667938
  if ($dirs[$i] eq $subdir) {
Packit 667938
    if($i > 0) { $prevDir = $dirs[$i - 1] }
Packit 667938
    else       { $prevDir = $subdir }
Packit 667938
Packit 667938
    if($i < $#dirs) { $nextDir = $dirs[$i + 1] }
Packit 667938
    else            { $nextDir = $subdir }
Packit 667938
Packit 667938
    last;
Packit 667938
  }
Packit 667938
}
Packit 667938
Packit 667938
if($dirc eq 'prev') {
Packit 667938
  if(-f "$HtmlBase/$basedir/$prevDir/$file") {
Packit 667938
    $newLocation = "http://$host$basedir/$prevDir/$file";
Packit 667938
  } else {
Packit 667938
    $newLocation = "http://$host$basedir/$subdir/$file";
Packit 667938
  }
Packit 667938
} elsif ($dirc eq 'next') {
Packit 667938
  if(-f "$HtmlBase/$basedir/$nextDir/$file") {
Packit 667938
    $newLocation = "http://$host$basedir/$nextDir/$file";
Packit 667938
  } else {
Packit 667938
    $newLocation = "http://$host$basedir/$subdir/$file";
Packit 667938
  }
Packit 667938
} elsif ($dirc eq 'index') {
Packit 667938
  if($file eq 'index.html') { 
Packit 667938
    $newLocation = "http://$host$basedir/index.html";
Packit 667938
  } else {
Packit 667938
    $newLocation = "http://$host$basedir/$subdir/index.html";
Packit 667938
  }
Packit 667938
} else {
Packit 667938
  $newLocation = $ENV{"HTTP_REFERER"};
Packit 667938
}
Packit 667938
Packit 667938
print "Location:$newLocation\n\n";
Packit 667938
Packit 667938
Packit 667938
Packit 667938
Packit 667938
Packit 667938
Packit 667938
Packit 667938
Packit 667938
Packit 667938
Packit 667938