The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

POEx::HTTP::Server::Error - Object encapsulating an error

SYNOPSIS

    use POEx::HTTP::Server;

    POEx::HTTP::Server->spawn( handlers => {
                on_error => 'poe:my-alias/error' );

    # events of session my-alias:
    sub error {
        my( $heap, $ereq ) = @_[HEAP,ARG0,ARG1];

        if( $err->op ) {
            warn $err->op, " error [", $err->errnum, "] ", $err->errstr;
        }
        else {
            warn $err->content;
        }
    }

DESCRIPTION

This object encapsulates a network error or an HTTP error for reporting to "on_error" in POEx::HTTP::Server special handlers.

Network errors are those reported by POE::Wheel::SocketFactory, POE::Wheel::ReadWrite and "sendfile" in Sys::Sendfile if that is used.

HTTP errors are those reported by POE::Filter::HTTPD when it detects a mal-formed header or errors internal to POEx::HTTP::Server. However, errors reported with "error" in POEx::HTTP::Server::Response do not invoke on_error.

HTTP errors are nearly always sent to the browser. You may modify the "content" in HTTP::Response or prevent them being sent by setting "sent" in POEx::HTTP::Server::Response.

HTTP errors will always close the connection, even if keep-alive is set.

METHODS

As this is a sub-class of POEx::HTTP::Server::Response, all that class's methods are available. Note, however, that "request" in POEx::HTTP::Server::Response might be undef.

op

Returns the name of the operation that failed. Can be one of read, write, bind or sendfile.

errnum

Returns the system error number; the numeric value of $!.

errstr

Returns the system error string; the string value of $!.

errstring

Same as "errstr".

SEE ALSO

POEx::HTTP::Server, POEx::HTTP::Server::Response, HTTP::Response.

AUTHOR

Philip Gwyn, <gwyn -at- cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2010 by Philip Gwyn

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.