1. make PC21 coming from the channel's node call then treat it as a PC39 and
authorminima <minima>
Sun, 30 Dec 2001 22:38:48 +0000 (22:38 +0000)
committerminima <minima>
Sun, 30 Dec 2001 22:38:48 +0000 (22:38 +0000)
disconnect it.
2. Send the client a 'Z' command (shutdown) to see if this has any effect on
the hangs.

Changes
cmd/bye.pl
perl/DXProt.pm

diff --git a/Changes b/Changes
index d75397961d10f5ead60d646cb74a27ca31aaefa5..c1df82e8395664b66700b9bf52ed5a05b821942b 100644 (file)
--- 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'
index 13195c60ebb3a38820c8f9f77e0e3de841746025..f38f93f8a0d72cdee32e66c23d1187ad47ceeb7c 100644 (file)
@@ -15,6 +15,8 @@ if ($self->is_user && -e "$main::data/logout") {
        sleep(1);
 }
 
+$self->send_now('Z', "");
+
 $self->disconnect;
 
 return (1);
index 3681bfbf35fee93b3c8fbbe96baf3bf716a1460a..7bffd606b25276058b368abf94b28de3cc4bc7ac 100644 (file)
@@ -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) {