From: lace <> Date: Fri, 16 Jul 2010 06:25:48 +0000 (+0000) Subject: +&writeto X-Git-Url: http://git.jankratochvil.net/?p=PerlMail.git;a=commitdiff_plain;h=d270dc779e33822c84d5d43c22d1f4493284628d +&writeto --- diff --git a/perlmail-accept b/perlmail-accept index 20b5b20..2f7df60 100755 --- a/perlmail-accept +++ b/perlmail-accept @@ -129,8 +129,9 @@ sub inetd while (1) { local $/="\n"; + $!=undef(); my $length=; - confess "Unexpected EOF" if !defined $length; + confess "Unexpected EOF: $!" if !defined $length; confess "Missing EOL" if $length!~s/\n$//s; exit 0 if $length eq "BYE"; confess "Unrecognized length: $length" if $length!~/^\d+$/; @@ -456,6 +457,17 @@ my($funcref,@funcargs)=@_; return @AuditStored!=$did_last; } +sub writeto +{ +my($filename)=@_; + + local *F; + open F,$filename or confess "open $filename: $!"; + print F $Message or confess "write $filename: $!"; + close F or confess "close $filename: $!"; + return 1; +} + # Never use Mail::Audit->store() as it will reformat MIME bodies and possibly corrupt OpenPGP! sub write_message { @@ -534,7 +546,11 @@ my($cmd)=@_; # prevent Razor2's: Can't call method "log" on unblessed reference at Razor2/Client/Agent.pm line 212. local $ENV{"HOME"}=$HOME; # 2>/dev/null to prevent error messages to corrupt inetd() output of perlmail-accept(1) - open CHILD,"|$cmd >/dev/null 2>/dev/null" + open CHILD,"|$cmd &>/dev/null" + # Workaround: spamassassin-3.1.3-1.fc5 + #.q{|awk '/^X-Spam-Flag: YES$/{if (!body) exit 1;}/^$/{body=1;}'} + # Original: + #." >/dev/null 2>/dev/null" or return 0; print CHILD $Message; close CHILD;