diff --git a/website/content/en/cgi/getmsg.cgi b/website/content/en/cgi/getmsg.cgi deleted file mode 100755 index 272ad44309..0000000000 --- a/website/content/en/cgi/getmsg.cgi +++ /dev/null @@ -1,248 +0,0 @@ -#!/usr/bin/perl -T -# -# Given a filename, start offset and end offset of a mail message, -# read the message and format it nicely using HTML. -# -# by John Fieber -# February 26, 1998 -# -# $FreeBSD$ -# - -require "./cgi-lib.pl"; -require "./cgi-style.pl"; -use POSIX qw(strftime); -# -# Site design includes setting a:visited to the same as a:link, -# which isn't good in archived messages, e.g., you want to follow -# links in commit messages and know which links you've visited. -# Override it inside the
 that is the message.
-$t_style = qq`
-`;
-
-
-#
-# Files MUST be fully qualified and MUST start with this path.
-#
-$messagepath = "/usr/local/www/mailindex/archive/";
-$messagepathcurrent = "/usr/local/www/mid/archive/";
-$ftparchive = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/mailing-lists/archive';
-
-&ReadParse(*formdata);
-&Fetch($formdata{'fetch'});
-exit 0;
-
-sub Fetch
-{
-    my ($docid) = @_;
-    my ($start, $end, $file, $type) = split(/ /, $docid);
-    my ($message, @finfo);
-
-    #
-    # Check to ensure that (a) the specified file starts
-    # with an approved pathname and (b) that it contains no
-    # relative components (eg ..).  This is so that arbitrary
-    # files cannot be accessed.
-    #
-
-    $file =~ s/\.\.//g;
-    $file =~ s|/+|/|;
-    $file =~ s|^archive/|$messagepath/|;
-
-    my $valid_list_name = '^current/(aic7xxx|archbsd|ctm|cvs|dev|freebsd|netperf|oi|p4|soc|svn|trustedbsd|vendors)(-[a-z0-9-]+)?$';
-
-    # read the full archive 
-    if ($type eq 'archive') {
-	# from the FreeBSD ftp server
-	if ($file =~ s%^$messagepath%%o) {
-	    print "Location: $ftparchive/$file.gz\n";
-	    print "Content-type: text/plain\n\n";     
-	    exit(0);
-	}
-	
-	# from the local mail archive for current mails
-	elsif ($file =~ /$valid_list_name/ &&
-	       open(DATA, "$messagepathcurrent$file")) {
-	    print "Content-type: text/plain\n\n"; 
-	    while() {
-		print;
-	    }
-	    close(DATA);
-	    exit(0);
-	}
-    }
-
-    if (($file =~ /^$messagepath/ && -f $file && open(DATA, $file)) ||
-	($file =~ /$valid_list_name/ &&
-	 open(DATA, "$messagepathcurrent$file")))
-    {
-	@finfo = stat DATA;
-    	seek DATA, $start, 0;
-	if ($end > $start && $start >= 0) {
-	    read DATA, $message, $end - $start;
-	} else {
-	    # Unknown length, guess the end of the E-Mail
-	    my($newline) = 0;
-	    while() {
-		last if ($newline && /^From .* \d{4}/);
-		if (/^$/) { $newline = 1 } else { $newline = 0; }
-		$message .= $_;
-	    }
-	}
-    	close(DATA);
-	print "last-modified: " .
-	    POSIX::strftime("%a, %d %b %Y %T GMT", gmtime($finfo[9])) . "\n";
-
-	# print E-Mail as plain ascii text
-	if ($type eq 'raw') {
-            print "Content-type: text/plain\n\n";
-            print $message;
-	    return;
-        }	
-	$message = &MessageToHTML($message, $file);
-    }
-    else
-    {
-    	$message = "

The specified message cannot be accessed.

\n"; - warn "$0: error open '$file' $!\n"; - } - - print &short_html_header("FreeBSD Mail Archives"); - print $message; - print &html_footer; -} - -sub EscapeHTML -{ - my ($text) = @_; - $text =~ s/&/&/g; - $text =~ s//>/g; - return $text; -} - -sub MessageToHTML -{ - my ($doc, $file) = @_; - my ($header, $body) = split(/\n\n/, $doc, 2); - my ($i, %hdr, $field, $data, $message); - my ($mid) = 'mid.cgi'; - my ($mid_full_url) = 'https://docs.FreeBSD.org/cgi/mid.cgi'; - my ($tmid,$tirt,$tref); - - $body = &AddAnchors(&EscapeHTML($body)); - - $header = &EscapeHTML($header); - $header =~ s/\n[ \t]+/ /g; - - foreach $i (split(/\n/, $header)) { - ($field, $data) = split(/ /, $i, 2); - $field =~ y/A-Z/a-z/; - $hdr{$field} = $data; - } - - $message = "
\n";
-    if (length($hdr{'date:'}) > 0) {
-    	$message .= "Date:      $hdr{'date:'}\n";
-    }
-    if (length($hdr{'from:'}) > 0) {
-    	$message .= "From:      $hdr{'from:'}\n";
-    }
-    if (length($hdr{'to:'}) > 0) {
-    	$message .= "To:        $hdr{'to:'}\n";
-    }
-    if (length($hdr{'cc:'}) > 0) {
-    	$message .= "Cc:        $hdr{'cc:'}\n";
-    }
-#    if (length($hdr{'sender:'}) > 0) {
-#    	$message .= "Sender:    $hdr{'sender:'}\n";
-#    }
-    if (length($hdr{'subject:'}) > 0) {
-    	$message .= "Subject:   $hdr{'subject:'}\n";
-    }
-
-    if ($hdr{'message-id:'}) {
-	$tmid = $hdr{'message-id:'}; 
-	$hdr{'message-id:'} =~ 
-	    s%;([^&]+)&%;$1&%oi;
-	$message .= "Message-ID:  $hdr{'message-id:'}\n";
-    }
-
-    if ($hdr{'resent-message-id:'}) {
-	$hdr{'resent-message-id:'} =~ 
-	    s%;([^&]+)&%;$1&%oi;
-	$message .= "Resent-Message-ID: $hdr{'resent-message-id:'}\n";
-    }
-
-    if ($hdr{'in-reply-to:'}) {
-	$tirt = $hdr{'in-reply-to:'};
-	$hdr{'in-reply-to:'} =~
-	    s%;([^&]+)&%;$1&%oi;
-	$message .= "In-Reply-To: $hdr{'in-reply-to:'}\n";
-    }
-
-    if ($hdr{'references:'}) {
-	$tref = $hdr{'references:'};
-	$hdr{'references:'} =~
-	    s%;([^&\s]+)&%;$1&%goi;
-	$message .= "References:  $hdr{'references:'}\n";
-    }
-
-
-    $message .= "
\n"; - $message .= "
\n"; - - if ($tmid =~ m%;([^&]+)&%) { - $message .= qq{Next in thread\n}; - } - - if ($tirt =~ m%;([^&]+)&% || - $tref =~ m%;([^&]+)&%) { - $message .= qq{| Previous in thread\n}; - } - $message .= qq{| Raw E-Mail\n}; - my $file2 = $file; - if ($file2 =~ s%^$messagepath%archive/%oi || - $file2 =~ /^current/) { - $message .= qq{| Index\n}; - } - $message .= qq{| Archive\n}; - $message .= qq{| Help\n}; - - my $tid = $tmid; - $tid =~ s/^<//; - $tid =~ s/\@.*//; - - $message .= "
\n"; - #$message .= qq{
\n}; - $message .= "
\n$body\n
\n"; - #$message .= qq{
\n}; - - $message .= qq{
\n

Want to link to this message? Use this URL: <}; - $message .= qq{$mid_full_url} . '?' . $tid . qq{>

}; - - return $message; -} - -sub strip_url -{ - my $url = shift; - - # strip trailing characters - $url =~ s/>?$//; - $url =~ s/[.,;>\s\)]*$//; - - return $url; -} - -sub AddAnchors -{ - my ($text) = @_; - - $text =~ s/(http|https|ftp)(:[\S]*?\/?)(\W?\s)/sprintf("%s<\/a>$3", &strip_url("$1$2"), "$1$2", $3)/egoi; - - return $text; -} diff --git a/website/content/en/cgi/mailindex.cgi b/website/content/en/cgi/mailindex.cgi deleted file mode 100755 index 249da5f041..0000000000 --- a/website/content/en/cgi/mailindex.cgi +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/perl -T -# -# Copyright (c) Jan 1999-2011 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$ - - -use CGI; -use CGI::Carp; - -require "./cgi-lib.pl"; -require "./cgi-style.pl"; - -$ENV{PATH} = "/bin:/usr/bin:/usr/local/bin"; - -# no sort -my $sortopt = ''; -my $up = 0; - -$| = 1; - -# mail archive location -$maildir = '/home/mail/archive'; - -# mailindex program -$mailindex = '/usr/local/www/mailindex/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; -if ($file =~ m,^([0-9a-z/-]+|[0-9a-z/-]+\.[0-9a-z-]+)$,) { - $file = $1; -} else { - print "Unknown file name given\n"; - exit; -} - - -sub file_not_exists { - my $file = shift; - print "File does not exist: $file\n"; - exit; -} - -if ($file =~ s%^archive/%%) { - $maildir = '/usr/local/www/mailindex/archive'; - &file_not_exists("$maildir/$file") if (! -f "$maildir/$file"); -} elsif ($file =~ s%^current/%% && $file =~ /^(freebsd|cvs|svn|ctm|trustedbsd)-/) { - &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/website/content/en/cgi/mid.cgi b/website/content/en/cgi/mid.cgi deleted file mode 100755 index 12c9f255f3..0000000000 --- a/website/content/en/cgi/mid.cgi +++ /dev/null @@ -1,161 +0,0 @@ -#!/usr/bin/perl -T -# -# Copyright (c) March 1998-2021 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$ - -require "./cgi-lib.pl"; -require "./cgi-style.pl"; - -$home = '/usr/local/www/mailindex'; -$prefix= "/usr/local/www/mailindex/archive"; -$lookupdir = "$home/message-id"; # database(s) directory -$databaseDefault = 'mid'; # default database -$script = $ENV{'SCRIPT_NAME'}; -$shortid = 1; -$lookCommand = "/usr/bin/look"; -$ENV{PATH} = '/bin:/usr/bin'; - -$main::t_style .= qq{\n\n}; - -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 = '//' . $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

\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; -($messageid) = $messageid =~ m|^(\S+)$|; # XXX: can be more strict... - -if ($database =~ m/^(mid|irt)$/) { - $database = $1; -} else { - $database = $databaseDefault; -} - -&get_id($messageid, $database);