projects
/
spider.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7f15868
)
Allow dependant nodes to send pc16 data
author
minima
<minima>
Tue, 22 Feb 2005 17:25:10 +0000
(17:25 +0000)
committer
minima
<minima>
Tue, 22 Feb 2005 17:25:10 +0000
(17:25 +0000)
perl/DXProt.pm
patch
|
blob
|
history
perl/Thingy/Rt.pm
patch
|
blob
|
history
diff --git
a/perl/DXProt.pm
b/perl/DXProt.pm
index 35f91fefb301a56d9334dc59b0f2cd4024550757..8f16da6603436b57eb6b36831bfc5b19c7085eed 100644
(file)
--- a/
perl/DXProt.pm
+++ b/
perl/DXProt.pm
@@
-1094,6
+1094,9
@@
sub handle_20
$self->send(pc22());
$self->state('normal');
$self->{lastping} = 0;
$self->send(pc22());
$self->state('normal');
$self->{lastping} = 0;
+ my $thing = Thingy::Rt->new(user=>$self->{call});
+ my $nref = Route::Node::get($self->{call});
+ $thing->broadcast if $thing->copy_pc16_data($nref);
}
# delete a cluster from the list
}
# delete a cluster from the list
@@
-1174,6
+1177,9
@@
sub handle_22
my $origin = shift;
$self->state('normal');
$self->{lastping} = 0;
my $origin = shift;
$self->state('normal');
$self->{lastping} = 0;
+ my $thing = Thingy::Rt->new(user=>$self->{call});
+ my $nref = Route::Node::get($self->{call});
+ $thing->broadcast if $thing->copy_pc16_data($nref);
}
# WWV info
}
# WWV info
diff --git
a/perl/Thingy/Rt.pm
b/perl/Thingy/Rt.pm
index fe018855286f4a2ca5603e089c6797874d79fd2c..bc6228b112b9c568149ea3ca78d3260366445875 100644
(file)
--- a/
perl/Thingy/Rt.pm
+++ b/
perl/Thingy/Rt.pm
@@
-76,12
+76,12
@@
sub handle_cf
{
my $thing = shift;
my $dxchan = shift;
{
my $thing = shift;
my $dxchan = shift;
- my $origin = $thing->{origin};
+ my $origin = $thing->{
user} || $thing->{
origin};
my $chan_call = $dxchan->{call};
my $parent = Route::Node::get($origin);
unless ($parent) {
my $chan_call = $dxchan->{call};
my $parent = Route::Node::get($origin);
unless ($parent) {
- dbg("Thingy::Rt::
lcf: received from
$origin on $chan_call unknown") if isdbg('chanerr');
+ dbg("Thingy::Rt::
cf: received from $thing->{origin}/
$origin on $chan_call unknown") if isdbg('chanerr');
return;
}
return;
}
@@
-158,6
+158,24
@@
sub handle_cf
return $thing;
}
return $thing;
}
+#
+# copy out the PC16 data for a node into the
+# pc16n and u slots if there are any users
+#
+sub copy_node_pc16_data
+{
+ my $thing = shift;
+ my $uref = shift;
+
+ my @u = $uref->users;
+ if (@u) {
+ $thing->{pc16n} = $uref;
+ $thing->{pc16u} = [map {Route::User::get($_)} @u];
+ return scalar @u;
+ }
+ return undef;
+}
+
sub _add_user
{
my $node = shift;
sub _add_user
{
my $node = shift;