package Apache2::Controller::Log::DetectAbortedConnection; # fwhew! that was a mouthful. =head1 NAME Apache2::Controller::Log::DetectAbortedConnection - helper handler for detecting cancelled connections to the client. =head1 VERSION Version 1.000.100 =cut use version; our $VERSION = version->new('1.000.100'); =head1 DESCRIPTION You don't need to use this handler, probably. This is pushed internally by L to detect in the PerlLogHandler phase if the connection has been broken to the client before the server closes the connection. So far it's only useful for the session, and because we now use a C for session saving instead of the C in prior versions. Using a C caused problems with synchronicity since the test scripts would fire off a new request before Apache was done processing the session saving from the prior request... I don't know why it did this under prefork with C, but it did. So, I'm leaving it separate just in case it is useful for something else in the future. =head1 FUNCTIONS =head2 handler Sets C<< $r->pnotes->{a2c}{connection_aborted} >> with the boolean results of C<< $r->connection->aborted() >> and returns. I am not entirely sure why to cache this except that I couldn't figure out any other way to manually override this state even if you didn't abort the connection, if that's useful. I may be over-planning here. =cut use strict; use warnings FATAL => 'all'; use Apache2::Connection (); use Apache2::RequestRec (); use Apache2::Const -compile => qw( OK ); use Log::Log4perl qw(:easy); sub handler { my ($r) = @_; DEBUG "detecting aborted connection..."; $r->pnotes->{a2c}{connection_aborted} ||= $r->connection->aborted(); return Apache2::Const::OK; } 1; =head1 SEE ALSO L, L, =head1 AUTHOR Mark Hedges, C<< >> =head1 COPYRIGHT & LICENSE Copyright 2008 Mark Hedges, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. This software is provided as-is, with no warranty and no guarantee of fitness for any particular purpose. =cut