}
}
+sub gen_my_pc92_config
+{
+ my $self = 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);
+}
+
sub gen_pc92_update
{
my $self = shift;
my $with_pc92_nodes = shift;
my $node;
my @lines;
-
- dbg('ROUTE: DXProt::gen_pc92_update start') if isdbg('route');
-
- # send 'my' configuration for all users and pc92 capable nodes
- my @dxchan = grep { $_->call ne $main::mycall && $_ != $self && !$_->{isolate} } DXChannel::get_all();
- dbg("ROUTE: all dxchan: " . join(',', map{$_->{call}} @dxchan)) if isdbg('route');
- my @localnodes = map { my $r = Route::get($_->{call}); $r ? $r : () } @dxchan;
- dbg("ROUTE: localnodes: " . join(',', map{$_->{call}} @localnodes)) if isdbg('route');
- push @lines, pc92c($main::routeroot, @localnodes);
+ my @dxchan;
+ my @localnodes;
+ dbg('ROUTE: DXProt::gen_pc92_update start') if isdbg('routelow');
+ # send 'my' configuration for all channels
+ push @lines, $self->gen_my_pc92_config;
+
if ($with_pc92_nodes) {
# send out the configuration of all the directly connected PC92 nodes with current configuration
# but with the dates that the last config came in with.
@dxchan = grep { $_->call ne $main::mycall && $_ != $self && !$_->{isolate} && $_->{do_pc92} } DXChannel::get_all_nodes();
- dbg("ROUTE: pc92 dxchan: " . join(',', map{$_->{call}} @dxchan)) if isdbg('route');
+ dbg("ROUTE: pc92 dxchan: " . join(',', map{$_->{call}} @dxchan)) if isdbg('routelow');
@localnodes = map { my $r = Route::Node::get($_->{call}); $r ? $r : () } @dxchan;
- dbg("ROUTE: pc92 localnodes: " . join(',', map{$_->{call}} @localnodes)) if isdbg('route');
+ dbg("ROUTE: pc92 localnodes: " . join(',', map{$_->{call}} @localnodes)) if isdbg('routelow');
foreach $node (@localnodes) {
if ($node && $node->lastid->{92}) {
my @rout = map {my $r = Route::get($_); $r ? ($r) : ()} $node->nodes, $node->users;
# send the configuration of all the directly connected 'external' nodes that don't handle PC92
# out with the 'external' marker on the first node.
@dxchan = grep { $_->call ne $main::mycall && $_ != $self && !$_->{isolate} && !$_->{do_pc92} } DXChannel::get_all_nodes();
- dbg("ROUTE: non pc92 dxchan: " . join(',', map{$_->{call}} @dxchan)) if isdbg('route');
+ dbg("ROUTE: non pc92 dxchan: " . join(',', map{$_->{call}} @dxchan)) if isdbg('routelow');
@localnodes = map { my $r = Route::Node::get($_->{call}); $r ? $r : () } @dxchan;
- dbg("ROUTE: non pc92 localnodes: " . join(',', map{$_->{call}} @localnodes)) if isdbg('route');
+ 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;
}
}
- dbg('ROUTE: DXProt::gen_pc92_update end with ' . scalar @lines . ' lines') if isdbg('route');
+ dbg('ROUTE: DXProt::gen_pc92_update end with ' . scalar @lines . ' lines') if isdbg('routelow');
return @lines;
}
my $self = shift;
# send out delayed PC92 config for this node if it is external
- unless ($self->{do_pc92}) {
- my $node = Route::Node::get($self->{call});
- if ($node) {
- my @rout = map {my $r = Route::User::get($_); $r ? ($r) : ()} $node->users;
- $self->route_pc92c($main::mycall, undef, $node, @rout);
- }
- }
+ my $line = $main::me->gen_my_pc92_config;
+ $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 {
+# 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;