X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=perl%2FThingy.pm;h=08d146678e2f5f07caaaa815714b7f50f43db760;hb=729acdaa4d7ee8905ce76f6ab0ef6cd543c3bc49;hp=308e80c3d67c3dd13e72576c09f7bceead959887;hpb=de7f7dbbadcad48ba245f22db044b14954e18782;p=spider.git diff --git a/perl/Thingy.pm b/perl/Thingy.pm index 308e80c3..08d14667 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); } }