X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FThingy.pm;h=c1f010c11e3a7c2790759a87acac08187e83fc6e;hb=2841b340579dae85808c5a571df3140b736c2fb2;hp=308e80c3d67c3dd13e72576c09f7bceead959887;hpb=de7f7dbbadcad48ba245f22db044b14954e18782;p=spider.git diff --git a/perl/Thingy.pm b/perl/Thingy.pm index 308e80c3..c1f010c1 100644 --- a/perl/Thingy.pm +++ b/perl/Thingy.pm @@ -74,7 +74,9 @@ sub send # before send (and line generation) things # function must return true to make the send happen $sub = "before_send_$class"; - return unless $thing->can($sub) && $thing->$sub($dxchan); + if ($thing->can($sub)) { + return $thing->$sub($dxchan); + } # generate the protocol line which may (or not) be cached my $ref; @@ -102,6 +104,10 @@ sub broadcast foreach my $dxchan (DXChannel::get_all()) { next if $dxchan == $main::me; next if grep $dxchan == $_, @_; + next if $dxchan->{call} eq $thing->{origin}; + next if $thing->{user} && !$dxchan->is_user && $dxchan->{call} eq $thing->{user}; + + dbg("Thingy::broadcast: sending to $dxchan->{call}") if isdbg('thing'); $thing->send($dxchan); } }