diff --git a/en/cgi/mailindex.cgi b/en/cgi/mailindex.cgi index 15f34b38a7..65eea411d8 100755 --- a/en/cgi/mailindex.cgi +++ b/en/cgi/mailindex.cgi @@ -1,104 +1,103 @@ #!/usr/bin/perl -T # # Copyright (c) Jan 1999 Wolfram Schneider # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: www/en/cgi/mailindex.cgi,v 1.5 1999/12/17 14:23:52 phantom Exp $ +# $FreeBSD: www/en/cgi/mailindex.cgi,v 1.6 2000/12/28 13:19:03 wosch Exp $ use CGI; use CGI::Carp; -$hsty_base = ''; require "./cgi-lib.pl"; require "./cgi-style.pl"; # no sort my $sortopt = ''; my $up = 0; $| = 1; # mail archive location $maildir = '/g/mail/archive'; # mailindex program $mailindex = '/usr/local/www/mid/bin/mailindex'; $query = new CGI(); print "Content-type: text/html\n\n"; my $reverse; $sortopt = '--sort-by-subject' if ($query->param('sort') eq 'subject'); $sortopt = '--sort-by-author' if ($query->param('sort') eq 'author'); $sortopt = '' if ($query->param('sort') eq 'date'); $reverse = '--reverse' if ($query->param('reverse')); my $file = $query->param('file'); if (!$file) { print "No file name given\n"; exit; } # forbid link to parent directories $file =~ s%\.\./%%g; sub file_not_exists { my $file = shift; print "File does not exists: $file\n"; exit; } if ($file =~ s%^archive/%%) { $maildir = '/g/www/db/text'; &file_not_exists("$maildir/$file") if (! -f "$maildir/$file"); } elsif ($file =~ s%^current/%% && $file =~ /^freebsd-|^cvs-/) { &file_not_exists("$file") if (! -f "$maildir/$file"); $up = 0; } else { &file_not_exists("$file"); } chdir($maildir) or die "chdir $maildir: $!\n"; my @options; push(@options, ("--up=$up", '--outdir=stdout', '--cgilink=1')); push(@options, $sortopt) if $sortopt; push(@options, $reverse) if $reverse; open(M, "-|") || exec "$mailindex", @options, $file || do { print "Cannot open $mailindex: $!\n"; exit; }; #print "cd $maildir; $mailindex @options $file\n"; while() { print; } exit; diff --git a/en/cgi/mid.cgi b/en/cgi/mid.cgi index e4835af485..82785b1500 100755 --- a/en/cgi/mid.cgi +++ b/en/cgi/mid.cgi @@ -1,157 +1,155 @@ #!/usr/bin/perl -T # # Copyright (c) March 1998-2000 Wolfram Schneider . Berlin. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # Search a mail by Message-ID, References or In-Reply-To field # -# $FreeBSD: www/en/cgi/mid.cgi,v 1.12 2002/04/22 05:08:41 kuriyama Exp $ - -$hsty_base = ''; +# $FreeBSD: www/en/cgi/mid.cgi,v 1.13 2005/10/20 19:54:57 fenner Exp $ require "./cgi-lib.pl"; require "./cgi-style.pl"; $home = '/usr/local/www/mailindex'; $prefix= "/usr/local/www/db/text"; $lookupdir = "$home/message-id"; # database(s) directory $databaseDefault = 'mid'; # default database $bindir = "$home/bin"; # where search scripts located $script = $ENV{'SCRIPT_NAME'}; $shortid = 1; $lookCommand = "/usr/bin/look"; sub escape($) { $_ = $_[0]; s/&/&/g; s//>/g; $_; } sub get_id { local($query, $db) = @_; open(DB, "-|") || exec("$lookCommand", $query, "$lookupdir/mid-current.$db") || do { print &midheader . "

Cannot connect to Message-ID database.

\n" . &foot; exit; }; local(@idlist); while() { push(@idlist, $_); } close DB; #warn "$lookCommand $query, $lookupdir/mid.$db"; open(DB, "-|") || exec("$lookCommand", $query, "$lookupdir/mid.$db") || do { print &midheader . "

Cannot connect to Message-ID database.

\n" . &foot; exit; }; while() { push(@idlist, $_); } close DB; if ($#idlist < 0) { # nothing found print &midheader; if ($db eq 'mid') { printf "Message-ID: \"%s\" not found\n", escape($query); } else { printf "No answers found for: \"%s\"\n", escape($query); } print &foot; } elsif ($#idlist == 0) { # one hit local($location) = $ENV{'SCRIPT_NAME'}; local($id, $file, $start) = split($", $idlist[0]); $location =~ s%/[^/]+$%%; local($host) = $ENV{'HTTP_HOST'}; $location = 'http://' . $host . $location; $start =~ s/\s+$//; print "Location: $location/getmsg.cgi?fetch=$start+0+" . ($file =~ /^current/ ? '' : "$prefix/") . "$file\n"; print "Content-type: text/plain\n\n"; exit; } else { # more than one hit local($id, $file, $start, $name); print &midheader; print "
    \n"; foreach (@idlist) { ($id, $file, $start) = split; $name = $file; $name =~ s%.*/%%; $name =~ s%(....)(..)(..)\.%$1-$2-$3 %; print qq{
  • $name $start
  • \n}; } print "
\n

\n"; print &foot; } } sub midheader { return &short_html_header("FreeBSD Message-ID Mail Archives") . qq{

Back to the search interface

\n}; } sub foot { return &html_footer; } ### # Main ### &ReadParse(*input); $messageid = $input{'id'}; $database = $input{'db'}; if (!$messageid) { # for lazy people ;-) # allow the syntax mid.cgi?messageid if ($ENV{'QUERY_STRING'} =~ /\-]+\S+$/) { $messageid = $ENV{'QUERY_STRING'}; $database = $databaseDefault; } # no message-id given else { print &midheader; print "No input given\n"; print &foot; exit; } } $messageid =~ s/^$//; $messageid =~ s/@.*// if $shortid; $database = $databaseDefault if (!($database eq 'mid' || $database eq 'irt')); &get_id($messageid, $database);