X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fsend.pl;h=1ff843859e3d5b17cf800dc0c037dadc6d1fb5b1;hb=87ba7daa22b255b3492fc697121928e85d901e0e;hp=9717c3afa3e4b578cc8bbde8858f17cb28edf812;hpb=79940e262f4585376cfed8bcdbaaff57c6b98eae;p=spider.git diff --git a/cmd/send.pl b/cmd/send.pl index 9717c3af..1ff84385 100644 --- a/cmd/send.pl +++ b/cmd/send.pl @@ -20,7 +20,7 @@ my ($self, $line) = @_; my @out; my $loc; -#$DB::single = 1; +# $DB::single = 1; if ($self->state eq "prompt") { @@ -49,8 +49,9 @@ if ($self->state eq "prompt") { for ($i++ ; $i < @f; $i++) { my $msgno = DXMsg::next_transno('Msgno'); my $newsubj = "CC: " . $oref->subject; + my $newcall = uc $f[$i]; my $nref = DXMsg->alloc($msgno, - uc $f[$i], + $newcall, $self->call, $main::systime, '1', @@ -68,8 +69,7 @@ if ($self->state eq "prompt") { push @list, $oref->read_msg_body(); $nref->store(\@list); $nref->add_dir(); - #push @out, $self->msg('sendcc', $oref->msgno, $f[$i]); - push @out, "copy of msg $oref->{msgno} sent to $to"; + push @out, $self->msg('m2', $oref->msgno, $newcall); } DXMsg::queue_msg(); return (1, @out); @@ -100,17 +100,49 @@ if ($self->state eq "prompt") { delete $self->{loc}; return (1, $self->msg('e6')); } - + # now save all the 'to' callsigns for later - my @to = map {uc $_} @f[ $i..$#f ]; - $loc->{to} = \@to; + # first check the 'to' addresses for 'badness' + my $t; + my @to; + splice @f, 0, $i-1 if $i > 0; + foreach $t (@f) { + $t = uc $t; + + # is this callsign a distro? + my $fn = "/spider/msg/distro/$t.pl"; + if (-e $fn) { + my $fh = new IO::File $fn; + if ($fh) { + local $/ = undef; + my $s = <$fh>; + $fh->close; + my @call; + @call = eval $s; + return (1, "Error in Distro $t.pl:", $@) if $@; + if (@call > 0) { + push @f, @call; + next; + } + } + } + if (grep $_ eq $t, @DXMsg::badmsg) { + push @out, $self->msg('m3', $t); + } else { + push @to, $t; + } + } + if (@to) { + $loc->{to} = \@to; + } else { + return (1, @out); + } # find me and set the state and the function on my state variable to # keep calling me for every line until I relinquish control $self->func("DXMsg::do_send_stuff"); $self->state('send1'); - #push @out, $self->msg('sendsubj'); - push @out, "Enter Subject (30 characters) >"; + push @out, $self->msg('m1'); } return (1, @out);