projects
/
spider.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
89ce129
)
updated filtering logic
author
minima
<minima>
Thu, 2 Nov 2000 02:02:23 +0000
(
02:02
+0000)
committer
minima
<minima>
Thu, 2 Nov 2000 02:02:23 +0000
(
02:02
+0000)
Changes
patch
|
blob
|
history
perl/DXMsg.pm
patch
|
blob
|
history
perl/Filter.pm
patch
|
blob
|
history
diff --git
a/Changes
b/Changes
index a776e00dab4268e92361bc0b052101451943dc7a..84505f0c875c2723ad289464c4b5e2a886c82f06 100644
(file)
--- a/
Changes
+++ b/
Changes
@@
-1,3
+1,6
@@
+02Nov00=======================================================================
+1. updated filtering logic. You will need to RECREATE your filters (clear/spot
+all, then start again) for testing.
01Nov00=======================================================================
1. put PC11 field 2 check back to m for pc text.
2. improve 'simple' callsign checking
01Nov00=======================================================================
1. put PC11 field 2 check back to m for pc text.
2. improve 'simple' callsign checking
diff --git
a/perl/DXMsg.pm
b/perl/DXMsg.pm
index 0bd27bbfa430d3d8f74ae472ff67fc4a16a98cea..60351bd40885e8fe1e7005ceec375342bb5a80cc 100644
(file)
--- a/
perl/DXMsg.pm
+++ b/
perl/DXMsg.pm
@@
-144,6
+144,7
@@
sub process
my $ref = $busy{$_};
if (exists $ref->{lastt} && $main::systime >= $ref->{lastt} + $timeout) {
dbg('msg', "Timeout, stopping msgno: $ref->{msgno} -> $node");
my $ref = $busy{$_};
if (exists $ref->{lastt} && $main::systime >= $ref->{lastt} + $timeout) {
dbg('msg', "Timeout, stopping msgno: $ref->{msgno} -> $node");
+ Log('msg', "Timeout, stopping msgno: $ref->{msgno} -> $node");
$ref->stop_msg($node);
# delay any outgoing messages that fail
$ref->stop_msg($node);
# delay any outgoing messages that fail
diff --git
a/perl/Filter.pm
b/perl/Filter.pm
index 37d9de6c2ed13551d1e7950b73e753b67a29d36a..7242c63660669ae56267343240d33a19de66417e 100644
(file)
--- a/
perl/Filter.pm
+++ b/
perl/Filter.pm
@@
-178,19
+178,29
@@
sub it
my $self = shift;
my $hops = undef;
my $self = shift;
my $hops = undef;
- my $r = 1;
my $filter;
my $filter;
- foreach $filter ($self->getfilters) {
- $r = 0;
+ my @keys = sort $self->getfilkeys;
+ my $key;
+ my $r = @keys > 0 ? 0 : 1;
+ foreach $key (@keys) {
+ $filter = $self->{$key};
if ($filter->{reject} && exists $filter->{reject}->{code}) {
if ($filter->{reject} && exists $filter->{reject}->{code}) {
- next if &{$filter->{reject}->{code}}(\@_);
+ if (&{$filter->{reject}->{code}}(\@_)) {
+ $r = 0;
+ last;
+ } else {
+ $r = 1;
+ }
}
if ($filter->{accept} && exists $filter->{accept}->{code}) {
}
if ($filter->{accept} && exists $filter->{accept}->{code}) {
- next unless &{$filter->{accept}->{code}}(\@_);
+ if (&{$filter->{accept}->{code}}(\@_)) {
+ $r = 1;
+ last;
+ } else {
+ $r = 0;
+ }
}
}
- $r = 1;
- last;
}
# hops are done differently
}
# hops are done differently
@@
-379,6
+389,10
@@
sub parse
$s .= $tok;
$user .= $tok;
next;
$s .= $tok;
$user .= $tok;
next;
+ } elsif ($tok eq 'all') {
+ $s .= '1';
+ $user .= $tok;
+ last;
} elsif ($tok eq 'or') {
$conj = ' || ' if $conj ne ' || ';
next;
} elsif ($tok eq 'or') {
$conj = ' || ' if $conj ne ' || ';
next;
@@
-464,7
+478,7
@@
sub parse
$user =~ s/\!/ not /g;
$user =~ s/\s+/ /g;
$user =~ s/\!/ not /g;
$user =~ s/\s+/ /g;
- return (0, $filter, $fno, $user, "sub { my \$r = shift; return
$s
}");
+ return (0, $filter, $fno, $user, "sub { my \$r = shift; return
($s) ? 1 : 0
}");
}
package Filter::Old;
}
package Filter::Old;