my @remotenodes;
if ($self->{isolate}) {
+ dbg("send_local_config: isolated");
@localnodes = ( $main::routeroot );
$self->send_route($main::mycall, \&pc19, 1, $main::routeroot);
} 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}/;
# and are not themselves isolated, this to make sure that isolated nodes
# don't appear outside of this node
+ dbg("send_local_config: traditional");
+
# send locally connected nodes
my @dxchan = grep { $_->call ne $main::mycall && $_ != $self && !$_->{isolate} } DXChannel::get_all_nodes();
@localnodes = map { my $r = Route::Node::get($_->{call}); $r ? $r : () } @dxchan if @dxchan;
sub gen_pc92_update
{
my $self = shift;
- my $with_pc92_nodes = shift;
- my $node;
- my @lines;
- my @dxchan;
- my @localnodes;
-
- dbg('ROUTE: DXProt::gen_pc92_update start') if isdbg('routelow');
# send 'my' configuration for all channels
- 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
- # but with the dates that the last config came in with.
-# @dxchan = grep { $_->call ne $main::mycall && $_ != $self && !$_->{isolate} && $_->{do_pc9x} } DXChannel::get_all_nodes();
-# 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('routelow');
-# foreach $node (@localnodes) {
-# if ($node && $node->lastid->{92}) {
-# my @rout = map {my $r = Route::get($_); $r ? ($r) : ()} $node->nodes, $node->users;
-# push @lines, gen_pc92_with_time($node->call, 'C', $node->lastid->{92}, @rout);
-# }
-# }
-# }
-
- # 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_pc9x} } DXChannel::get_all_nodes();
-# 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('routelow');
-# foreach $node (@localnodes) {
-# if ($node) {
-# push @lines, gen_my_pc92_config($node);
-# }
-# }
-
- dbg('ROUTE: DXProt::gen_pc92_update end with ' . scalar @lines . ' lines') if isdbg('routelow');
- return @lines;
+ my $l = gen_my_pc92_config($main::routeroot);
+ return $l;
}
my $parent = Route::Node::get($self->{call});
# record the type and version offered
- if ($_[1] =~ /DXSpider Version: (\d+\.\d+) Build: (\d+(?:\.\d+)?)/) {
+ if ($_[1] =~ /DXSpider Version: (\d+\.\d+)/) {
$self->{version} = 53 + $1;
$self->user->version(53 + $1);
$parent->version(0 + $1);
- $self->{build} = 0 + $2;
- $self->user->build(0 + $2);
- $parent->build(0 + $2);
+ dbg("DXSpider version $1");
+ my ($build) = $_[1] =~ /Build: (\d+(?:\.\d+)?)/;
+ $self->{build} = 0 + $build;
+ $self->user->build(0 + $build);
+ $parent->build(0 + $build);
+ dbg("DXSpider build $build");
unless ($self->is_spider) {
+ dbg("Change U " . $self->user->sort . " C $self->{sort} -> S");
$self->user->sort('S');
$self->user->put;
$self->sort('S');
}
- $self->{handle_xml}++ if DXXml::available() && $_[1] =~ /\bxml/;
+# $self->{handle_xml}++ if DXXml::available() && $_[1] =~ /\bxml/;
if ($_[1] =~ /\bpc9x/) {
$self->{do_pc9x} = 1;
dbg("Do px9x set on $self->{call}");
}
} else {
+ dbg("Unknown software");
$self->version(50.0);
$self->version($_[2] / 100) if $_[2] && $_[2] =~ /^\d+$/;
$self->user->version($self->version);
my $origin = shift;
if ($self->{do_pc9x} && $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->send("Reseting to oldstyle routing because login call not sent in any pc92");
+ $self->{do_pc9x} = 0;
}
$self->send_local_config;
$self->send(pc22());
if ($self->{do_pc9x}) {
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;
+ $self->send("Reseting to oldstyle routing because login call not sent in any pc92");
+ $self->{do_pc9x} = 0;
}
}
$self->{lastping} = 0;