From: minima Date: Mon, 8 Jan 2007 01:20:29 +0000 (+0000) Subject: make the delayed pc92 happen on pc20 as well as pc22 and also delay pc92s X-Git-Tag: 1.54~59 X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=c0b8fc3a5577205c33e9fe59ee18d9d020c845e1;p=spider.git make the delayed pc92 happen on pc20 as well as pc22 and also delay pc92s generated in init state. --- diff --git a/perl/DXProtHandle.pm b/perl/DXProtHandle.pm index 863789d3..d7350f4e 100644 --- a/perl/DXProtHandle.pm +++ b/perl/DXProtHandle.pm @@ -491,7 +491,7 @@ sub handle_16 } if (@rout) { $self->route_pc16($origin, $line, $parent, @rout); - $self->route_pc92a($main::mycall, undef, $parent, @rout); + $self->route_pc92a($main::mycall, undef, $parent, @rout) if $self->{state} eq 'normal'; } } @@ -736,6 +736,20 @@ sub handle_19 } } +sub send_delayed_pc92 +{ + 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); + } + } +} + # send local configuration sub handle_20 { @@ -747,6 +761,7 @@ sub handle_20 $self->send(pc22()); $self->state('normal'); $self->{lastping} = 0; + $self->send_delayed_pc92; } # delete a cluster from the list @@ -818,14 +833,7 @@ sub handle_22 $self->state('normal'); $self->{lastping} = 0; - # 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); - } - } + $self->send_delayed_pc92 } # WWV info