X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXMsg.pm;h=168a978280e56337e8b17db7de48e894b92347c1;hb=7575fa5f2154933e2c80f8fbfc4539e2b40d4b87;hp=88371ed787a3e08119d4c2a22a42af7a0a5d487b;hpb=ed8842a3d38de2c171329e51612d2dc520ffcc99;p=spider.git diff --git a/perl/DXMsg.pm b/perl/DXMsg.pm index 88371ed7..168a9782 100644 --- a/perl/DXMsg.pm +++ b/perl/DXMsg.pm @@ -846,13 +846,14 @@ sub do_send_stuff my $mycall = $main::mycall; $ref = DXMsg->alloc(DXMsg::next_transno('Msgno'), uc $to, - $self->call, + exists $loc->{from} ? $loc->{from} : $self->call, $systime, $loc->{private}, $loc->{subject}, - $mycall, + exists $loc->{origin} ? $loc->{origin} : $mycall, '0', $loc->{rrreq}); + $ref->swop_it($self->call); $ref->store($loc->{lines}); $ref->add_dir(); push @out, $self->msg('m11', $ref->{msgno}, $to); @@ -1057,7 +1058,7 @@ sub import_msgs closedir(DIR); my $name; foreach $name (@names) { - next if $name =~ /^./; + next if $name =~ /^\./; my $fn = "$importfn/$name"; next unless -f $fn; unless (open(MSG, $fn)) { @@ -1066,7 +1067,7 @@ sub import_msgs unlink($fn); next; } - my @msg = map { chomp } ; + my @msg = map { chomp; $_ } ; close(MSG); unlink($fn); my @out = import_one($DXProt::me, \@msg); @@ -1089,7 +1090,13 @@ sub import_one my @out; # first line; - my @f = split /\s+/, shift @$ref; + my $line = shift @$ref; + my @f = split /\s+/, $line; + unless ($f[0] =~ /^(:?S|SP|SB|SEND)$/ ) { + my $m = "invalid first line in import '$line'"; + dbg('MSG', $m ); + return (1, $m); + } while (@f) { my $f = uc shift @f; next if $f eq 'SEND'; @@ -1103,12 +1110,14 @@ sub import_one $rr = '1'; } elsif ($f eq '@' && @f) { # this is bbs syntax, for origin $origin = uc shift @f; + } elsif ($f eq '<' && @f) { # this is bbs syntax for from call + $from = uc shift @f; } elsif ($f =~ /^\$/) { # this is bbs syntax for a bid next; - } elsif ($f =~ /^swop_it($main::mycall); $mref->store($ref); $mref->add_dir(); - push @out, $dxchan->msg('m11', $ref->{msgno}, $to); + push @out, $dxchan->msg('m11', $mref->{msgno}, $to); #push @out, "msgno $ref->{msgno} sent to $to"; my $todxchan = DXChannel->get(uc $to); if ($todxchan) { if ($todxchan->is_user()) { - $todxchan->send($dxchan->msg('m9')); + $todxchan->send($todxchan->msg('m9')); } } }