X-Git-Url: http://git.jankratochvil.net/?a=blobdiff_plain;f=Web.pm;h=2a9406d750c84dc8c0f0d2ba21e1a3ee582d69e7;hb=fcaf410ca324e0fa3ad812545bf16e7bf4886b1e;hp=8244e59b7f34863866dec19a1a6511effcd159c9;hpb=312aff9cc8388402560b84502cb7dd09b035f3f9;p=MyWeb.git diff --git a/Web.pm b/Web.pm index 8244e59..2a9406d 100644 --- a/Web.pm +++ b/Web.pm @@ -306,7 +306,7 @@ sub exit_hook } sub exit_hook_start { - cluck "exit_hook_start() twice?" if defined $exit_orig; + do { cluck "exit_hook_start() twice?"; return; } if defined $exit_orig; $exit_orig=\&CORE::GLOBAL::exit; # Prevent: Subroutine CORE::GLOBAL::exit redefined no warnings 'redefine'; @@ -316,7 +316,8 @@ sub exit_hook_stop { do { cluck "exit_hook_stop() without exit_hook_start()?"; return; } if \&exit_hook ne \&CORE::GLOBAL::exit; - cluck "INTERNAL: exit_orig uninitialized" if !$exit_orig; + do { cluck "INTERNAL: exit_orig uninitialized"; return; } + if !$exit_orig; # Prevent: Subroutine CORE::GLOBAL::exit redefined no warnings 'redefine'; *CORE::GLOBAL::exit=$exit_orig; @@ -1046,6 +1047,9 @@ sub cache_finish() # as we may have just gave 304 and 'exit;' without starting the caching. return if !$W->{"cache_active"}; + # Headers may not be complete in this case; not sure, just trying. + return if $W->{"r"}->connection()->aborted(); + # Fill-in/check: %uri_args_frozen_to_headers_in_keys my $headers_in_keys_stored_arrayref_ref=\$uri_args_frozen_to_headers_in_keys{$W->{"uri_args_frozen"}}; my @headers_in_keys=tied(%{$W->{"headers_in_RecordKeys"}})->accessed();