+ # unbusy and stop and outgoing mail
+ my $mref = DXMsg::get_busy($call);
+ $mref->stop_msg($call) if $mref;
+
+ # create a list of all the nodes that have gone and delete them from the table
+ my @nodes;
+ foreach my $node (grep { $_->dxchancall eq $call } DXNode::get_all) {
+ next if $node->call eq $call;
+ next if $node->call eq $main::mycall;
+ push @nodes, $node->call;
+ $node->del;
+ }
+
+ # broadcast to all other nodes that all the nodes connected to via me are gone
+ unless ($pc39flag && $pc39flag == 2) {
+ unless ($self->{isolate}) {
+ push @nodes, $call;
+ for (@nodes) {
+ broadcast_ak1a(pc21($_, 'Gone.'), $self);
+ }
+ }
+ }
+
+ # remove this node from the tables
+ my $node = DXCluster->get_exact($call);
+ $node->del if $node;
+
+ # remove outstanding pings
+ delete $pings{$call};
+
+ # I was the last node visited
+ $self->user->node($main::mycall);
+
+ # send info to all logged in thingies
+ $self->tell_login('logoutn');
+
+ Log('DXProt', $call . " Disconnected");
+