Attempted resolving of non-matching headers.
[MyWeb.git] / Web.pm
diff --git a/Web.pm b/Web.pm
index 8244e59..2a9406d 100644 (file)
--- 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();