1. I believe I have fixed all the login/logout 'broken pipe' errors
[spider.git] / perl / DXProt.pm
index 88aef0db00395a2be049f12f8590be58d66c529d..fb1b4b95b85e1b28ae0b2e40ae27164f42070699 100644 (file)
@@ -106,6 +106,7 @@ sub start
        # get the INPUT filters (these only pertain to Clusters)
        $self->{inspotfilter} = Filter::read_in('spots', $call, 1);
        $self->{inwwvfilter} = Filter::read_in('wwv', $call, 1);
+       $self->{inwcyfilter} = Filter::read_in('wcy', $call, 1);
        $self->{inannfilter} = Filter::read_in('ann', $call, 1);
        
        # set unbuffered and no echo
@@ -877,11 +878,9 @@ sub finish
 {
        my $self = shift;
        my $call = $self->call;
-       my $nopc39 = shift;
+       my $conn = shift;
        my $ref = DXCluster->get_exact($call);
        
-       $self->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', "System Op"))) unless $nopc39;
-       
        # unbusy and stop and outgoing mail
        my $mref = DXMsg::get_busy($call);
        $mref->stop_msg($call) if $mref;
@@ -1350,5 +1349,17 @@ sub addrcmd
                route(undef, $to, pc34($main::mycall, $to, $cmd));
        }
 }
+
+sub disconnect
+{
+       my $self = shift;
+       my $nopc39 = shift;
+
+       if ($self->{conn} && !$nopc39) {
+               $self->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', "System Op")));
+       }
+
+       $self->SUPER::disconnect;
+}
 1;
 __END__