check for lower case letters in spotted calls
[spider.git] / perl / DXProt.pm
index 4a43ef086d1b381800960dd47158ce3fe5482a98..5c6ca1fb928abd18426cce68525fedbcb3e20cf6 100644 (file)
@@ -82,7 +82,7 @@ $handle_xml = 0;                              # handle XML sentences
 @checklist = 
 (
  [ qw(i c c m bp bc c) ],                      # pc10
- [ qw(i f bm d t m c c h) ],           # pc11
+ [ qw(i f m d t m c c h) ],            # pc11
  [ qw(i c bm m bm bm p h) ],           # pc12
  [ qw(i c h) ],                                        # 
  [ qw(i c h) ],                                        # 
@@ -477,6 +477,18 @@ sub handle_11
                        
        # rsfp check
        #                       return if $rspfcheck and !$self->rspfcheck(1, $_[7], $_[6]);
+       
+       # is the spotted callsign blank? This should really be trapped earlier but it
+       # could break other protocol sentences. Also check for lower case characters.
+       if ($_[2] =~ /^\s*$/) {
+               dbg("PCPROT: blank callsign, dropped") if isdbg('chanerr');
+               return;
+       }
+       if ($_[2] =~ /[a-z]/) {
+               dbg("PCPROT: lowercase characters, dropped") if isdbg('chanerr');
+               return;
+       }
+
 
        # if this is a 'nodx' node then ignore it
        if ($badnode->in($_[7])) {
@@ -933,7 +945,7 @@ sub handle_18
                        $self->user->put;
                        $self->sort('S');
                }
-               $self->{handle_xml}++ if $_[1] =~ /\bxml\b/;
+               $self->{handle_xml}++ if $main::do_xml && $_[1] =~ /\bxml\b/;
        } else {
                $self->version(50.0);
                $self->version($_[2] / 100) if $_[2] && $_[2] =~ /^\d+$/;