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);
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)) {
unlink($fn);
next;
}
- my @msg = map { chomp } <MSG>;
+ my @msg = map { chomp; $_ } <MSG>;
close(MSG);
unlink($fn);
my @out = import_one($DXProt::me, \@msg);
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';
$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 =~ /^</) { # this is bbs syntax for from call
+ } elsif ($f =~ /^<\S+/) { # this is bbs syntax for from call
($from) = $f =~ /^<(\S+)$/;
- } elsif ($f eq '<' && @f) { # this is bbs syntax for from call
- $from = uc shift @f;
+ } elsif ($f =~ /^\@\S+/) { # this is bbs syntax for origin
+ ($origin) = $f =~ /^\@(\S+)$/;
} else {
# callsign ?
pop @$ref while (@$ref && ($$ref[-1] eq '' || $$ref[-1] =~ /^\s+$/));
# strip off /EX or /ABORT
- return () if (@$ref && $$ref[-1] =~ m{^/ABORT$}i);
+ return ("aborted") if (@$ref && $$ref[-1] =~ m{^/ABORT$}i);
pop @$ref if (@$ref && $$ref[-1] =~ m{^/EX$}i);
# write all the messages away
$origin,
'0',
$rr);
+ $mref->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'));
}
}
}