fix probs with eph dup deleting
authorminima <minima>
Tue, 19 Mar 2002 19:38:38 +0000 (19:38 +0000)
committerminima <minima>
Tue, 19 Mar 2002 19:38:38 +0000 (19:38 +0000)
fix probs with national characters not appearing in msgs (maybe)

Changes
cmd/show/dup_eph.pl
perl/AGWMsg.pm
perl/DXProt.pm
perl/ExtMsg.pm

diff --git a/Changes b/Changes
index d3f436d51e2450e6ca5366ca799de211ccc31ef5..bfddedad794688397206728bd43e838ed251c672 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,6 @@
+19Mar02=======================================================================
+1. fix problems with ephemeral dup checking on PC16,17,19,21
+2. perturb the problem with national character sets.
 15Mar02=======================================================================
 1. add help for 'accept' and 'reject'. (g0vgs)
 2. adjustments to the manuals (g0vgs)
index c8abccc1f24c64e925b4f850ac5c7c5a53761626..cc0b21495a12547ab37599aa31572ee401294b5e 100644 (file)
@@ -9,4 +9,15 @@
 my $self = shift;
 my $line = shift;
 return (1, $self->msg('e5')) unless $self->priv >= 9; 
-return (1, DXProt::eph_list $line);
+my $regex = $line;
+my @out;
+my %list = DXProt::eph_list();
+
+for (keys %list ) {
+       if ($regex) {
+               next unless /$regex/i;
+       }
+       push @out, ztime($list{$_}) . ": $_";
+}
+return (1, sort @out);
+
index dbb8d8d2dfeeb4410a54aa73d4a42446f5b8de32..69c63c1ef702423bd4a1d2df1aca0f8443dad531 100644 (file)
@@ -299,7 +299,7 @@ sub _decode
                        my @lines = split /\cM/, $d;
                        
                        for (@lines) {
-                               s/([\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg; 
+#                              s/([\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg; 
                                dbg("AGW Monitor port: $port \"$_\"") if isdbg('agw');
                        }
                } elsif ($sort eq 'C') {
index 6c18a83052329dcddf29c42d149e38fd94d1e898..5ab4186b2c64cb6e8082f5b57800a4c61dc30a82 100644 (file)
@@ -621,7 +621,7 @@ sub normal
                                next unless $call && $conf && defined $here && is_callsign($call);
                                next if $call eq $main::mycall;
 
-                               eph_del_regex("^PC17\^$call\^$ncall");
+                               eph_del_regex("^PC17\\^$call\\^$ncall");
                                
                                $conf = $conf eq '*';
 
@@ -673,7 +673,7 @@ sub normal
                                return;
                        }
 
-                       eph_del_regex("^PC16.*$ncall.*$ucall");
+                       eph_del_regex("^PC16\\^$ncall.*$ucall");
                        
                        if ($ncall eq $main::mycall) {
                                dbg("PCPROT: trying to alter config on this node from outside!") if isdbg('chanerr');
@@ -743,7 +743,7 @@ sub normal
                                my $ver = $field[$i+3];
                                next unless defined $here && defined $conf && is_callsign($call);
 
-                               eph_del_regex("^PC(?:21\^$call|17\^[^\^]+\^$call)");
+                               eph_del_regex("^PC(?:21\\^$call|17\\^[^\\^]+\\^$call)");
                                
                                # check for sane parameters
 #                              $ver = 5000 if $ver eq '0000';
@@ -834,7 +834,6 @@ sub normal
                        # as a PC39: I have gone away
                        if ($call eq $self->call) {
                                $self->disconnect(1);
-                               eph_del_regex("^PC(?:1[679]|21).*$field[1]");
                                return;
                        }
 
@@ -993,7 +992,7 @@ sub normal
                }
                
                if ($pcno == 35) {              # remote command replies
-                       eph_del_regex("^PC35\^$field[2]\^$field[1]\^");
+                       eph_del_regex("^PC35\\^$field[2]\\^$field[1]\\^");
                        $self->process_rcmd_reply($field[1], $field[2], $field[1], $field[3]);
                        return;
                }
@@ -1007,7 +1006,6 @@ sub normal
                if ($pcno == 39) {              # incoming disconnect
                        if ($field[1] eq $self->{call}) {
                                $self->disconnect(1);
-                               eph_del_regex("^PC(?:1[679]|21).*$field[1]");
                        } else {
                                dbg("PCPROT: came in on wrong channel") if isdbg('chanerr');
                        }
@@ -1766,6 +1764,10 @@ sub disconnect
                $self->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', "System Op")));
        }
 
+       # get rid of any PC16 and 19s
+       eph_del_regex("^PC16\\^$call");
+       eph_del_regex("^PC19\\^.*$call");
+
        # do routing stuff
        my $node = Route::Node::get($call);
        my @rout;
index 2edd7537962a91bd06371f0805eaef841b27aedf..4dbefbc594c13e7edc2b18071a6c5a442404ef26 100644 (file)
@@ -95,7 +95,7 @@ sub dequeue
                        dbg("connect $conn->{cnum}: $msg") if $conn->{state} ne 'C' && isdbg('connect');
                
                        $msg =~ s/\xff\xfa.*\xff\xf0|\xff[\xf0-\xfe].//g; # remove telnet options
-                       $msg =~ s/[\x00-\x08\x0a-\x19\x1b-\x1f\x80-\x9f]/./g;         # immutable CSI sequence + control characters
+#                      $msg =~ s/[\x00-\x08\x0a-\x19\x1b-\x1f\x80-\x9f]/./g;         # immutable CSI sequence + control characters
                        
                        if ($conn->{state} eq 'C') {
                                &{$conn->{rproc}}($conn, "I$conn->{call}|$msg");