]> dxcluster.org Git - spider.git/commitdiff
add a pc92a on receipt of a PC22
authorminima <minima>
Tue, 16 Jan 2007 00:47:35 +0000 (00:47 +0000)
committerminima <minima>
Tue, 16 Jan 2007 00:47:35 +0000 (00:47 +0000)
perl/DXProtHandle.pm

index 65aeeefa08c68aec890e81a3dcde9a94224abaf1..7332d669d4d4fd5c10bfe73e0bb41785cba7bb40 100644 (file)
@@ -879,17 +879,27 @@ sub handle_22
        my $line = shift;
        my $origin = shift;
 
-       if ($self->{do_pc92} && $self->{state} ne 'init92') {
-               dbg("PCPROT: disconnecting because login call not sent in any pc92") if isdbg('chanerr');
-               $self->send("**** You logged in with $self->{call} but that is NOT your \$mycall");
-               $self->disconnect;
-               return;
-       }
-
        $self->state('normal');
        $self->{lastping} = 0;
 
-       $self->send_delayed_pc92
+       if ($self->{do_pc92}) {
+               if ($self->{state} ne 'init92') {
+                       dbg("PCPROT: disconnecting because login call not sent in any pc92") if isdbg('chanerr');
+                       $self->send("**** You logged in with $self->{call} but that is NOT your \$mycall");
+                       $self->disconnect;
+                       return;
+               }
+               my $ref = Route::Node::get($self->{call});
+               if ($ref) {
+                       $main::me->route_pc92a($main::mycall, undef, $main::routeroot, $ref);
+               } else {
+                       dbg("PCPROT: disconnecting because pc92 for $self->{call} received") if isdbg('chanerr');
+                       $self->disconnect;
+                       return;
+               }
+       } else {
+               $self->send_delayed_pc92;
+       }
 }
                                
 # WWV info