# $Id: sendme.pl,v 1.1 1999/11/15 06:40:45 rra Exp $ # Copyright (c)1998 G.J. Andruk # sendme.pl - The sendme control message. # Parameters: params sender reply-to token site action[=log] approved sub control_sendme { my $artfh; my @params = split(/\s+/,shift); my $sender = shift; my $replyto = shift; my $token = shift; my $site = shift; my ($action, $logging) = split(/=/, shift); my $approved = shift; my $pid = $$; my $tempfile = "$inn::tmpdir/sendme.$pid"; my ($errmsg, $status, $nc, @component, @oldgroup, $locktry, $ngname, $ngdesc, $modcmd, $kid); if ($action eq "mail") { $artfh = open_article($token); next if (!defined($artfh)); *ARTICLE = $artfh; SMHEAD: while(
) { last SMHEAD if /^$/ } $kid = open2(\*R, \*MAIL, @inn::mailcmd, "-s", "sendme by $sender", $inn::newsmaster); while (
) { s/^~/~~/; print MAIL $_; } close ARTICLE; close R; close MAIL; waitpid($kid, 0); } elsif ($action eq "log") { if (!$logging) { logmsg ('notice', 'sendme from %s', $sender); } else { logger($token, $logging, "sendme $sender"); } } elsif ($action eq "doit") { open(GREPHIST, "|grephistory -s > $tempfile"); $artfh = open_article($token); next if (!defined($artfh)); *ARTICLE = $artfh; SMHEAD2: while(
) { last SMHEAD2 if /^$/ } print GREPHIST $_ while
; close(ARTICLE); close(GREPHIST); ## xxx Need to lock the work file? if (-s $tempfile && ($site =~ /(^[a-zA-Z0-9.-_]+$)/)) { open(TEMPFILE, "<$tempfile"); open(BATCH, ">>$inn::batch/$1.work"); print BATCH $_ while ; close(BATCH); close(TEMPFILE); } unlink($tempfile); } }