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;fp=lib%2FObject%2FRemote%2FRole%2FLogForwarder.pm;h=4bf2ecc203b54738f2423308350d71eb44506cc2;hp=d3968d26a82b0fafce9794b2978d9ca8e79eb377;hb=08435f11e57bbd6e01f4e52382f58b22f71358ad;hpb=98bc05f5c9a8b6dcc25542bd808212eaea4944f6 diff --git a/lib/Object/Remote/Role/LogForwarder.pm b/lib/Object/Remote/Role/LogForwarder.pm index d3968d2..4bf2ecc 100644 --- a/lib/Object/Remote/Role/LogForwarder.pm +++ b/lib/Object/Remote/Role/LogForwarder.pm @@ -12,7 +12,14 @@ after _deliver_message => sub { my ($self, $level, $generator, $args, $metadata) = @_; my $package = $metadata->{package}; my $destination = $self->_forward_destination; + my %metadata = %$metadata; our $reentrant; + + if (defined $metadata->{object_remote}) { + $metadata{object_remote} = { %{$metadata->{object_remote}} }; + } + + $metadata{object_remote}->{forwarded} = 1; return unless $self->enable_forward; return unless defined $destination; @@ -25,7 +32,7 @@ after _deliver_message => sub { local $reentrant = $package; - eval { $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 $@;