From 840d4017e5a033515f31f3caf6880fd9a64cbfd3 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 28 Feb 2010 22:22:12 +0000 Subject: [PATCH] Publish rejections --- .gitignore | 2 +- cgi/logs.INO | 2 +- forward-suffix.part.INO | 2 +- get-settings | 7 +++++++ install-loggroups | 2 +- install-newsgroup | 2 +- install-weblinks | 1 - public-html/messages | 1 + setup | 1 + stump/etc/sanitise_and_quote_email.INO | 2 +- xlog/bin/record | 21 ++++++++++++++++----- xlog/bin/report | 9 ++++++--- 12 files changed, 37 insertions(+), 15 deletions(-) create mode 120000 public-html/messages diff --git a/.gitignore b/.gitignore index 8dc5a05..d34fba3 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ /xlog/log/*/event.log /xlog/log/*/event.log.[0-9] /xlog/log/*/event.log.[0-9].gz -/xlog/log/*/nr-*.txt +/xlog/log/*/public/nr-*.txt /crontab.part /stump/etc/modenv /stump/etc/added-headers diff --git a/cgi/logs.INO b/cgi/logs.INO index 9936de2..5c3510b 100755 --- a/cgi/logs.INO +++ b/cgi/logs.INO @@ -1,4 +1,4 @@ #!/bin/bash set -e cd %BASEDIR%/xlog/log -exec ../bin/report %GROUP% "$@" +exec ../bin/report %GROUP% %STATICFILESURL%/g.%ABBREV%/messages "$@" diff --git a/forward-suffix.part.INO b/forward-suffix.part.INO index bf5121a..1227565 100644 --- a/forward-suffix.part.INO +++ b/forward-suffix.part.INO @@ -30,7 +30,7 @@ endif if $local_part_suffix is +%ABBREV%-internal-log+mailout then unseen deliver %LOGGROUPEMAILPREFIX%+%ABBREV%+log+mailout - pipe "%BASEDIR%/xlog/bin/record mailout %GROUP%" + pipe "%BASEDIR%/xlog/bin/record %PUBREJOPT% mailout %GROUP%" finish endif diff --git a/get-settings b/get-settings index f9b3d6f..4226b29 100644 --- a/get-settings +++ b/get-settings @@ -18,6 +18,13 @@ export BASEDIR # derivative settings: +PUBREJOPT='' +if $PUBLISHREJECTIONS; then + PUBREJOPT=-P +fi +export PUBREJOPT + + test -f persistent-autosettings || touch persistent-autosettings . persistent-autosettings diff --git a/install-loggroups b/install-loggroups index d484a9a..83fea56 100755 --- a/install-loggroups +++ b/install-loggroups @@ -5,7 +5,7 @@ set -e case ",$NEWSADMINUSERS," in *,"`whoami`",*) ;; -*) echo >&2 "$0 must be run as one of $NEWSADMINUSERS, skipping" +*) echo >&2 "$0 must be run as one of $NEWSADMINUSERS, skipping"; exit 0;; esac exec ) { $keepheader= 1 unless m/^[ \t]/; $keepheader= 0 - if m/^(?: received )/ix; + if m/^(?: received + | envelope-to + )/ix; $keepheader= 'mangle' if m/^(?: to | from @@ -110,9 +119,11 @@ STDIN->error and die $!; $f{Now}= time; -if ($f{Event} =~ m/^notify reject /) { - #$ref= $f{MessageID} - open I, ">$dir/nr-$f{MessageNum}.txt" or die $!; +if ($publish_rejections && + $f{Event} =~ m/^notify reject /) { + $f{CopyRef}= $f{MessageID}; + $f{CopyRef} =~ s/\W/ sprintf '-%02x', ord($&) /ge; + open I, ">$dir/public/nr-$f{CopyRef}.txt" or die $!; print I $message or die $!; close I or die $!; } @@ -125,7 +136,7 @@ my @s= map { $v =~ s/\t/ /g; $v =~ s/[\r\n]/?/g; $v; -} qw(Now MessageNum MessageID From Subject Event); +} qw(Now MessageNum MessageID From Subject Event CopyRef); print L join("\t",@s)."\n" or die $!; close L or die $!; diff --git a/xlog/bin/report b/xlog/bin/report index ee3022e..5f74769 100755 --- a/xlog/bin/report +++ b/xlog/bin/report @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -our ($ng,@ARGV) = @ARGV; +our ($ng,$staticfiles,@ARGV) = @ARGV; chdir $ng or die $!; use strict (qw(vars)); @@ -34,7 +34,7 @@ sub processlogs ($) { sub processline_print () { my @sp= @s; $sp[3] =~ s/\@\w{0,2}/ at .. /; - my @sp= map { escapeHTML($_) } @sp; + @sp= map { escapeHTML($_) } @sp[0..5]; my @spu= map { s/\W/ sprintf "%%%02x", ord $& /ge; $_; @@ -45,6 +45,9 @@ sub processline_print () { $sp[$i]= a({ href=>$url }, $sp[$i] ); } } + if (length $s[6]) { + $sp[5]= a({ href=>"$staticfiles/nr-$s[6].txt" }, $sp[5] ); + } #print STDERR join('|',@sp),"\n"; print Tr(td([@sp])); } @@ -87,7 +90,7 @@ if ($pi =~ m,^/message/(\d+)/(.*)$,) { $title= "Single message ".escapeHTML($selectmid); $processline= \&processline_print_ifsingle; } elsif ($pi =~ m/^$/) { - $title= "Recent activity"; + $title= "Recent activity - $ng"; } elsif ($pi =~ m,^/queue,) { $title= "Activity regarding still-queued messages"; $processline= \&processline_queue_prescan; -- 2.30.2