fix error in local storage
[spider.git] / cmd / dx.pl
index 2ea40672ad044dbb8b3e7a468b0d4090f9516a5e..fd233eb1afc55dedf78f50d0ca5e529975288c99 100644 (file)
--- a/cmd/dx.pl
+++ b/cmd/dx.pl
@@ -15,6 +15,7 @@ my $spotted;
 my $freq;
 my @out;
 my $valid = 0;
+return (1, $self->msg('e5')) if $self->remotecmd;
 
 # do we have at least two args?
 return (1, $self->msg('dx2')) unless @f >= 2;
@@ -92,8 +93,10 @@ if ($spotted le ' ') {
 
 return (1, @out) unless $valid;
 
-# change ^ into : for transmission
-$line =~ s/\^/:/og;
+my @bad;
+if (@bad = BadWords::check($line)) {
+       return (1, $self->msg('e17', @bad));
+}
 
 # Store it here (but only if it isn't baddx)
 if (grep $_ eq $spotted, @DXProt::baddx) {
@@ -101,8 +104,11 @@ if (grep $_ eq $spotted, @DXProt::baddx) {
        push @out, $buf;
 } else {
        return (1, $self->msg('dup')) if Spot::dup($freq, $spotted, (int ($main::systime/60)) * 60, $line);
-       my @spot = Spot::add($freq, $spotted, $main::systime, $line, $spotter, $main::mycall);
+       my @spot = Spot::prepare($freq, $spotted, $main::systime, $line, $spotter, $main::mycall);
        if (@spot) {
+               # store it 
+               Spot::add(@spot);
+
                # send orf to the users
                DXProt::send_dx_spot($self, DXProt::pc11($spotter, $freq, $spotted, $line), @spot);
        }