# Prepend the headers if they have not yet been sent
if ( $self->_has_header_buf ) {
- $buffer = $self->_clear_header_buf . $buffer;
+ $self->_warn_on_write_error(
+ $self->$orig($self->_clear_header_buf)
+ );
}
- my $ret = $self->$orig($c, $buffer);
+ $self->_warn_on_write_error($self->$orig($c, $buffer));
+};
+sub _warn_on_write_error {
+ my ($self, $ret) = @_;
if ( !defined $ret ) {
$self->_write_error($!);
DEBUG && warn "write: Failed to write response ($!)\n";
else {
DEBUG && warn "write: Wrote response ($ret bytes)\n";
}
-
return $ret;
-};
+}
=head2 run
while (1) {
my ( $path, $query_string ) = split /\?/, $uri, 2;
+ # URI is not the same as path. Remove scheme, domain name and port from it
+ $path =~ s{^https?://[^/?#]+}{};
+
# Initialize CGI environment
local %ENV = (
PATH_INFO => $path || '',