[BACK]Return to patch-ai CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / mail / majordomo / patches

File: [cvs.NetBSD.org] / pkgsrc / mail / majordomo / patches / patch-ai (download)

Revision 1.6, Sun Dec 20 12:50:44 2020 UTC (2 years, 11 months ago) by spz
Branch: MAIN
CVS Tags: pkgsrc-2023Q3-base, pkgsrc-2023Q3, pkgsrc-2023Q2-base, pkgsrc-2023Q2, pkgsrc-2023Q1-base, pkgsrc-2023Q1, pkgsrc-2022Q4-base, pkgsrc-2022Q4, pkgsrc-2022Q3-base, pkgsrc-2022Q3, pkgsrc-2022Q2-base, pkgsrc-2022Q2, pkgsrc-2022Q1-base, pkgsrc-2022Q1, pkgsrc-2021Q4-base, pkgsrc-2021Q4, pkgsrc-2021Q3-base, pkgsrc-2021Q3, pkgsrc-2021Q2-base, pkgsrc-2021Q2, pkgsrc-2021Q1-base, pkgsrc-2021Q1, pkgsrc-2020Q4-base, pkgsrc-2020Q4, HEAD
Changes since 1.5: +5 -3 lines

majordomo: make the List-Id header RFC2919 compliant

$NetBSD: patch-ai,v 1.6 2020/12/20 12:50:44 spz Exp $

Quiet messages from perl 5.14.1, this is very old code.
Be RFC2919 compliant (List-Id)
Add Mail-Reply-To and Mail-Followup-To headers

--- resend.orig	2000-01-07 15:32:39.000000000 +0000
+++ resend
@@ -71,15 +71,15 @@ if ($ARGV[0] =~ /^\@/) {
 # getopts.pl was place where it's supposed to be.  This changes previous
 # behavior which allowed getopts.pl to be in the same place as
 # majordomo.cf.
-require "getopts.pl";
-&Getopts("C:c:Aa:df:h:I:l:M:p:Rr:s") || die("resend: Getopts() failed: $!");
+use Getopt::Std;
+getopts("C:c:Aa:df:h:I:l:M:p:Rr:s") || die("resend: Getopts() failed: $!");
 
 if (! defined($opt_l)) {
   die("resend: must specify '-l list'");
 }
     
-# Read and execute the .cf file
-$cf = $opt_C || $opt_c || $ENV{"MAJORDOMO_CF"} || "/etc/majordomo.cf";
+# Read and execute the .cf file. For security reasons, let the environment win
+$cf = $ENV{"MAJORDOMO_CF"} || $opt_C || $opt_c || "/etc/majordomo.cf";
 
 # Despite not having a place to send the remains of the body,
 # it would be nice to send a message to root or postmaster, at least...
@@ -92,8 +92,8 @@ require "$cf";
 
 chdir($homedir) || die("Can't chdir(\"$homedir\"): $!");
 
+unshift(@INC, $bindir);
 unshift(@INC, $homedir);
-require "ctime.pl";  # For logging purposes
 require "majordomo.pl";
 require "majordomo_version.pl";
 require "config_parse.pl";
@@ -316,7 +316,7 @@ $is_admin_header .= "\$taboo = \"\";\n};
 if (! defined($admin_body)) {
     &bitch("resend:  \$admin_body not defined in $cf !!\n" .
 	   "Majordomo will only catch \"subscribe\" and \"unsubscribe\" in\n" .
-	   "the body.\nLook at $homedir/sample.cf for a good definition.");
+	   "the body.\nLook at $bindir/sample.cf for a good definition.");
     @admin_body = ('/^subject:\s*subscribe\b/i' ,
 		      '/^subject:\s*unsubscribe\b/i');
 } else {
@@ -747,12 +747,20 @@ sub parse_header {
 
     # add new header fields
     print OUT "Sender: $sender\n";
+    print OUT "List-Id: <".$opt_l.".".$whereami.">\n";
+
     if (defined($opt_p)) {
 	print OUT "Precedence: $opt_p\n";
     }
 
     if (defined($opt_r)) {
 	print OUT "Reply-To: ", &config'substitute_values($opt_r), "\n";   #';
+	if (defined $reply_to) {
+	    print OUT "Mail-Reply-To: $reply_to\n";   #';
+	} else {
+	    print OUT "Mail-Reply-To: $from\n";   #';
+	}
+	print OUT "Mail-Followup-To: ", &config'substitute_values($opt_r), "\n";   #';
     }
     
     # print out per-list additonal headers