From 62d82b83c7cfef2ae3ef3a0ee6dea74ce7a37b2c Mon Sep 17 00:00:00 2001 From: minima Date: Sun, 30 Dec 2001 22:38:48 +0000 Subject: [PATCH] 1. make PC21 coming from the channel's node call then treat it as a PC39 and disconnect it. 2. Send the client a 'Z' command (shutdown) to see if this has any effect on the hangs. --- Changes | 5 +++++ cmd/bye.pl | 2 ++ perl/DXProt.pm | 13 ++++++++----- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Changes b/Changes index d7539796..c1df82e8 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,8 @@ +30Dec01======================================================================= +1. make PC21 coming from the channel's node call then treat it as a PC39 and +disconnect it. +2. Send the client a 'Z' command (shutdown) to see if this has any effect on +the hangs. 26Dec01======================================================================= 1. make some detail changes to help texts 2. Added 'all' to the Band's region table to allow 'acc/spot on all/cw' diff --git a/cmd/bye.pl b/cmd/bye.pl index 13195c60..f38f93f8 100644 --- a/cmd/bye.pl +++ b/cmd/bye.pl @@ -15,6 +15,8 @@ if ($self->is_user && -e "$main::data/logout") { sleep(1); } +$self->send_now('Z', ""); + $self->disconnect; return (1); diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 3681bfbf..7bffd606 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -823,6 +823,14 @@ sub normal return; } + # if I get a PC21 from the same callsign as self then treat it + # 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; + } + eph_del_regex("^PC1[79].*$call"); my @rout; @@ -833,11 +841,6 @@ sub normal return; } if ($call ne $main::mycall) { # don't allow malicious buggers to disconnect me! - if ($call eq $self->{call}) { - dbg("PCPROT: Trying to disconnect myself with PC21") if isdbg('chanerr'); - return; - } - my $node = Route::Node::get($call); if ($node) { -- 2.43.0