%nodehops $baddx $badspotter $badnode $censorpc $rspfcheck
$allowzero $decode_dk0wcy $send_opernam @checklist
$eph_pc15_restime $pc92_update_period $last_pc92_update
+ %pc92_find $pc92_find_timeout
);
($VERSION, $BRANCH) = dxver(q$Revision$);
$pc19_version = 5466; # the visible version no for outgoing PC19s generated from pc59
$pc92_update_period = 30*60; # the period between PC92 C updates
$last_pc92_update = time + int rand(180); # the last time a PC92 config update
+%pc92_find = (); # outstanding pc92 find operations
+$pc92_find_timeout = 30; # maximum time to wait for a reply
+
@checklist =
}
Investigate::process();
+ clean_pc92_find();
# every ten seconds
if ($t - $last10 >= 10) {
dbg("ROUTE: sending pc92 update") if isdbg('route');
send_pc92_update();
time_out_pc92_routes();
- $last_pc92_update = $main::systime + int rand(180);
+ $last_pc92_update = $main::systime + int rand(5*60);
}
$last10 = $t;
sub send_announce
{
my $self = shift;
+ my $from_pc9x = shift;
my $line = shift;
my @dxchan = DXChannel::get_all();
my $dxchan;
- my $target;
+ my $target = $_[6];
my $to = 'To ';
my $text = unpad($_[2]);
} elsif ($_[3] gt ' ') { # speciality list handling
my ($name) = split /\./, $_[3];
$target = "$name"; # put the rest in later (if bothered)
- }
+ }
if ($_[5] eq '1') {
$target = "WX";
foreach $dxchan (@dxchan) {
next if $dxchan == $main::me;
next if $dxchan == $self && $self->is_node;
+ next if $from_pc9x && $dxchan->{do_pc9x};
+ next if $target eq 'LOCAL' && $dxchan->is_node;
$dxchan->announce($line, $self->{isolate}, $to, $target, $text, @_, $self->{call},
@a[0..2], @b[0..2]);
}
sub send_chat
{
my $self = shift;
+ my $from_pc9x = shift;
my $line = shift;
my @dxchan = DXChannel::get_all();
my $dxchan;
if ($dxchan->is_node) {
next if $dxchan == $main::me;
next if $dxchan == $self;
+ next if $from_pc9x && $dxchan->{do_pc9x};
next unless $dxchan->is_spider || $is_ak1a;
next if $target eq 'LOCAL';
if (!$ak1a_line && $is_ak1a) {
- $ak1a_line = DXProt::pc12($_[0], $text, $_[1], "$target.LST");
+ $ak1a_line = pc12($_[0], $text, $_[1], "$target.LST");
}
}
}
}
+# start a pc92 find operation
+sub start_pc92_find
+{
+ my $dxchan = shift;
+ my $target = shift;
+ my $key = "$dxchan->{call}|$target";
+ if ($pc92_find{$key}) {
+
+ }
+}
+
+# function (not method) to handle pc92 find returns
+sub handle_pc92_find_reply
+{
+ my ($dxchan, $node, $from, $target, $flag, $ms) = @_;
+
+ $dxchan->print_pc92_find_reply($node, $target, $flag, $ms) if $dxchan->can('print_pc92_find_return');
+}
+
+sub clean_pc92_find
+{
+
+}
1;
__END__