X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FResponse.pm;h=e7bc2d3f314d5acfcc63a5c3fac96a45cb937ecf;hb=b3b39a59c337db57a9df0246635bb9364c0948cc;hp=e87ba61dbf8ce88392df19ab2417406b05bbcde0;hpb=e5ac67e5d706bf2e4a4c33537479f70c409a6e4e;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Response.pm b/lib/Catalyst/Response.pm index e87ba61..e7bc2d3 100644 --- a/lib/Catalyst/Response.pm +++ b/lib/Catalyst/Response.pm @@ -103,12 +103,24 @@ has _context => ( clearer => '_clear_context', ); -before [qw(status headers content_encoding content_length content_type header)] => sub { +before [qw(status headers content_encoding content_length content_type )] => sub { my $self = shift; - $self->_context->log->warn( + $self->_context->log->warn( "Useless setting a header value after finalize_headers and the response callback has been called." . - " Not what you want." ) + " Since we don't support tail headers this will not work as you might expect." ) + if ( $self->_context && $self->finalized_headers && !$self->_has_response_cb && @_ ); +}; + +# This has to be different since the first param to ->header is the header name and presumably +# you should be able to request the header even after finalization, just not try to change it. +before 'header' => sub { + my $self = shift; + my $header = shift; + + $self->_context->log->warn( + "Useless setting a header value after finalize_headers and the response callback has been called." . + " Since we don't support tail headers this will not work as you might expect." ) if ( $self->_context && $self->finalized_headers && !$self->_has_response_cb && @_ ); }; @@ -544,7 +556,7 @@ finalized (there isn't one anyway) and you need to call the close method. Prints @data to the output stream, separated by $,. This lets you pass the response object to functions that want to write to an L. -=head2 $self->finalize_headers($c) +=head2 $res->finalize_headers() Writes headers to response if not already written