sub gen_my_pc92_config
{
- my $self = shift;
+ my $node = shift;
- my @dxchan = grep { $_->call ne $main::mycall && $_ != $self && !$_->{isolate} } DXChannel::get_all();
- dbg("ROUTE: all dxchan: " . join(',', map{$_->{call}} @dxchan)) if isdbg('routelow');
- my @localnodes = map { my $r = Route::get($_->{call}); $r ? $r : () } @dxchan;
- dbg("ROUTE: localnodes: " . join(',', map{$_->{call}} @localnodes)) if isdbg('routelow');
- return pc92c($main::routeroot, @localnodes);
+ if ($node->{call} eq $main::mycall) {
+ my @dxchan = grep { $_->call ne $main::mycall && !$_->{isolate} } DXChannel::get_all();
+ dbg("ROUTE: all dxchan: " . join(',', map{$_->{call}} @dxchan)) if isdbg('routelow');
+ my @localnodes = map { my $r = Route::get($_->{call}); $r ? $r : () } @dxchan;
+ dbg("ROUTE: localnodes: " . join(',', map{$_->{call}} @localnodes)) if isdbg('routelow');
+ return pc92c($main::routeroot, @localnodes);
+ } else {
+ my @rout = map {my $r = Route::User::get($_); $r ? ($r) : ()} $node->users;
+ return pc92c($node, @rout);
+ }
}
sub gen_pc92_update
dbg('ROUTE: DXProt::gen_pc92_update start') if isdbg('routelow');
# send 'my' configuration for all channels
- push @lines, $self->gen_my_pc92_config;
+ push @lines, gen_my_pc92_config($main::routeroot);
if ($with_pc92_nodes) {
# send out the configuration of all the directly connected PC92 nodes with current configuration
dbg("ROUTE: non pc92 localnodes: " . join(',', map{$_->{call}} @localnodes)) if isdbg('routelow');
foreach $node (@localnodes) {
if ($node) {
- my @rout = map {my $r = Route::User::get($_); $r ? ($r) : ()} $node->users;
- push @lines, pc92c($node, @rout);
+ push @lines, gen_my_pc92_config($node);
}
}
{
my $self = shift;
- # send out delayed PC92 config for this node if it is external
- my $line = $main::me->gen_my_pc92_config;
+ # send out new PC92 config to everyone else
+ my $line = gen_my_pc92_config($main::me);
$self->broadcast_route_pc9x($main::mycall, undef, $line, 0);
+
+ # if this is an external node then send out the external config
+ unless ($self->{do_pc92}) {
+ $line = gen_my_pc92_config(Route::Node::get($self->{call}));
+ $self->broadcast_route_pc9x($main::mycall, undef, $line, 0);
+ }
}
# send local configuration
$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;
}
$self->{lastping} = 0;
$self->state('normal');
+ $self->send_delayed_pc92;
}
# WWV info