tidy the Local.pm changes
[spider.git] / perl / DXProt.pm
index af7d73083a9e9f68d6947ea16450c7ed2d3fa1b5..eafb591dac4d64a5d3da6db501a150b116130794 100644 (file)
@@ -74,7 +74,7 @@ $obscount = 2;
 $chatdupeage = 20 * 60;
 $chatimportfn = "$main::root/chat_import";
 $pc19_version = 5454;                  # the visible version no for outgoing PC19s generated from pc59
-$pc92_update_period = 2*60*60; # the period between outgoing PC92 C updates
+$pc92_update_period = 4*60*60; # the period between outgoing PC92 C updates
 $pc92_short_update_period = 15*60; # shorten the update period after a connection or start up
 $pc92_extnode_update_period = 1*60*60; # the update period for external nodes
 $pc92_keepalive_period = 1*60*60;      # frequency of PC92 K (keepalive) records
@@ -420,6 +420,12 @@ sub normal
                }
        }
 
+       if (defined &Local::pcprot) {
+               my $r;
+               eval { $r = Local::pcprot($self, $pcno, $line, @field); };
+               return if $r;                   # i.e don't process it
+       }
+
        # send it out for processing
        my $origin = $self->{call};
        no strict 'subs';
@@ -457,7 +463,6 @@ sub process
                        $pc50s = pc50($main::me, scalar DXChannel::get_all_users);
                        eph_dup($pc50s);
                        $last_pc50 = $t;
-                       time_out_pc92_routes();
                }
 
                foreach $dxchan (@dxchan) {
@@ -511,6 +516,7 @@ sub process
 
                # do the keepalive for me, if required
                if ($main::systime >= $main::me->{next_pc92_keepalive}) {
+                       time_out_pc92_routes();
                        $main::me->broadcast_pc92_keepalive($main::mycall);
                }
 
@@ -548,6 +554,7 @@ sub send_dx_spot
        foreach $dxchan (@dxchan) {
                next if $dxchan == $main::me;
                next if $dxchan == $self && $self->is_node;
+               next if $line =~ /PC61/ && !$dxchan->is_spider && !$dxchan->is_user;
                $dxchan->dx_spot($line, $self->{isolate}, @_, $self->{call});
        }
 }
@@ -856,8 +863,10 @@ sub send_local_config
        } elsif ($self->{do_pc9x}) {
                dbg("send_local_config: doing pc9x");
                my $node = Route::Node::get($self->{call});
-               $self->send_last_pc92_config($main::routeroot);
-               $self->send(pc92a($main::routeroot, $node)) unless $main::routeroot->last_PC92C =~ /$self->{call}/;
+#              $self->send_last_pc92_config($main::routeroot);
+#              $self->send(pc92a($main::routeroot, $node)) unless $main::routeroot->last_PC92C =~ /$self->{call}/;
+               $self->send(pc92a($main::routeroot, $node));
+               $self->send(pc92k($main::routeroot));
        } else {
                # create a list of all the nodes that are not connected to this connection
                # and are not themselves isolated, this to make sure that isolated nodes