From 49a14209678e26e31b2a9c89aec330c1a7a87b80 Mon Sep 17 00:00:00 2001 From: minima Date: Tue, 19 Mar 2002 19:38:38 +0000 Subject: [PATCH] fix probs with eph dup deleting fix probs with national characters not appearing in msgs (maybe) --- Changes | 3 +++ cmd/show/dup_eph.pl | 13 ++++++++++++- perl/AGWMsg.pm | 2 +- perl/DXProt.pm | 14 ++++++++------ perl/ExtMsg.pm | 2 +- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/Changes b/Changes index d3f436d5..bfddedad 100644 --- 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) diff --git a/cmd/show/dup_eph.pl b/cmd/show/dup_eph.pl index c8abccc1..cc0b2149 100644 --- a/cmd/show/dup_eph.pl +++ b/cmd/show/dup_eph.pl @@ -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); + diff --git a/perl/AGWMsg.pm b/perl/AGWMsg.pm index dbb8d8d2..69c63c1e 100644 --- a/perl/AGWMsg.pm +++ b/perl/AGWMsg.pm @@ -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') { diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 6c18a830..5ab4186b 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -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; diff --git a/perl/ExtMsg.pm b/perl/ExtMsg.pm index 2edd7537..4dbefbc5 100644 --- a/perl/ExtMsg.pm +++ b/perl/ExtMsg.pm @@ -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"); -- 2.34.1