X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2FObject-Remote.git;a=blobdiff_plain;f=lib%2FObject%2FRemote%2FRole%2FLogForwarder.pm;h=d3968d26a82b0fafce9794b2978d9ca8e79eb377;hp=1ff8e5f569b5015006031cd475d1959da5e4e1af;hb=052976d4a389b826a9551909492f3fc2f2312c88;hpb=a27266b77a5c66f0c059c865193f64871d0dd90c diff --git a/lib/Object/Remote/Role/LogForwarder.pm b/lib/Object/Remote/Role/LogForwarder.pm index 1ff8e5f..d3968d2 100644 --- a/lib/Object/Remote/Role/LogForwarder.pm +++ b/lib/Object/Remote/Role/LogForwarder.pm @@ -4,6 +4,8 @@ use Moo::Role; has enable_forward => ( is => 'rw', default => sub { 1 } ); has _forward_destination => ( is => 'rw' ); +#lookup table for package names that should not +#be forwarded across Object::Remote connections has _forward_stop => ( is => 'ro', required => 1, default => sub { {} } ); after _deliver_message => sub { @@ -23,7 +25,11 @@ after _deliver_message => sub { local $reentrant = $package; - $destination->_deliver_message($level, $generator, $args, $metadata); + eval { $destination->_deliver_message($level, $generator, $args, $metadata) }; + + if ($@ && $@ !~ /^Attempt to use Object::Remote::Proxy backed by an invalid handle/) { + die $@; + } }; sub exclude_forwarding {