fix erronoeus input filter cmd causing crashes

This commit is contained in:
Dirk Koopman 2020-06-08 16:19:09 +01:00
parent 963a74a359
commit b7dedfebf0
4 changed files with 12 additions and 9 deletions

View File

@ -1,7 +1,8 @@
08Jun20=======================================================================
1. Fix show/mydx (lack of) filtering bug.
2. Add qra locator to prefix_data.pl
3. Add 4 digit qra square for spotted callsign if show/dxgrid is enabled
2. Add qra locator to prefix_data.pl.
3. Add 4 digit qra square for spotted callsign if show/dxgrid is enabled.
4. Fix general filtering bug where erroneous input causes crashing.
03Jun20=======================================================================
1. Make sure that all possible regexes get passed across to the search engine.
2. Fix out of order logging on sh/log queries spanning more than one month.

View File

@ -11,4 +11,4 @@ my $type = 'accept';
my $sort = 'spots';
my ($r, $filter, $fno) = $Spot::filterdef->cmd($self, $sort, $type, $line);
return (0, $r ? $filter : $self->msg('filter1', $fno, $filter->{name}));
return (1, $r ? $filter : $self->msg('filter1', $fno, $filter->{name}));

View File

@ -188,6 +188,8 @@
'pmruhf' => bless ( { band => [425000, 430000, 440000, 471000],
}, 'Bands'),
hf => bless ( { band => [1800, 29999], }, 'Bands'),
vhf => bless ( { band => [30000, 299999], }, 'Bands'),
);
#
@ -201,9 +203,9 @@
%regions = (
vlf => [qw( 73khz 136khz 500khz )],
hf => [qw( 160m 80m 60m 40m 30m 20m 17m 15m 12m 10m )],
# hf => [qw( 160m 80m 60m 40m 30m 20m 17m 15m 12m 10m )],
contesthf => [qw( 160m 80m 40m 20m 15m 10m )],
vhf => [qw( 6m 4m 2m 220 )],
# vhf => [qw( 6m 4m 2m 220 )],
vhfradio => [qw( band1 band2 )],
vhftv => [qw( band1 band3 )],
uhf => [qw( 70cm 23cm )],

View File

@ -540,9 +540,9 @@ sub parse
last;
}
}
return (0, $dxchan->msg('e20', $tok)) unless $found;
return (1, $dxchan->msg('e20', $tok)) unless $found;
} else {
return (0, $dxchan->msg('filter2', $tok));
return (1, $dxchan->msg('filter2', $tok));
}
$lasttok = $tok;
}
@ -561,13 +561,13 @@ sub parse
sub cmd
{
my ($self, $dxchan, $sort, $type, $line) = @_;
return $dxchan->msg('filter5') unless $line;
my ($r, $filter, $fno, $user, $s) = $self->parse($dxchan, $sort, $line);
return (1, $filter) if $r;
my $u = DXUser::get_current($user);
return (1, $dxchan->msg('isow', $user)) if $u && $u->isolate;
return (1, $filter) if $r;
my $fn = "filter$fno";