=encoding utf8
=head1 NAME
XML::Compile::SOAP::Daemon::LWPutil - LWP helper routines
=head1 INHERITANCE
XML::Compile::SOAP::Daemon::LWPutil
is a Exporter
=head1 SYNOPSIS
# used by ::Daemon::NetServer
# and ::Daemon::AnyDaemon
=head1 DESCRIPTION
=head1 FUNCTIONS
=over 4
=item B<lwp_action_from_header>($request)
Collect the soap action URI from the request, with C<undef> on failure.
Officially, the "SOAPAction" has no other purpose than the ability to
route messages over HTTP: it should not be linked to the portname of
the message (although it often can).
=item B<lwp_add_header>($field, $content, ...)
=item B<lwp_handle_connection>($connection, %options)
=item B<lwp_http11_connection>($daemon, $socket)
Initialize a HTTP/1.1 connect on the client $socket.
=item B<lwp_make_response>( $request, $rc, $msg, $body, [$postproc] )
=item B<lwp_run_request>( $request, $handler, [$connection, $postproc] )
Handle one $request (HTTP::Request object), which was received from
the CLIENT (string). When the request has been received, the $handler
is called. Returns the status, the status as text message, and the
output as XML::LibXML::Document.
=item B<lwp_socket_init>($socket)
Initialize LWP usage based on a created $socket.
=item B<lwp_wsdl_response>( [$wsdlfile|$response] )
Set the result of WSDL query responses, either to a response which
is created internally containing $wsdlfile, or to an already complete
$response object (HTTP::Response). The response object is returned.
=back
=head1 DETAILS
=head2 Postprocessing responses
The C<LWP> based daemons provide a C<postprocess> option to their C<run()>
methods. The parameter is a CODE reference.
When defined, the CODE is called when the response message is ready
to be returned to the client:
$code->($request, $response, $status, \$body)
The source C<$requests> is passed as first parameter. The C<$response>
is an HTTP::Response object, with all headers but without the body.
The C<$status> is the result code of the handler. A value of 200
(C<HTTP_OK> from C<HTTP::Status>) indicates successful processing of the
request. When the status is not HTTP_OK you may skip the postprocessing.
The C<$body> are the bytes which will be added as body to the response
after this postprocessing has been done. You may change the body.
B<Be warned> that the body is not a (latin1 or utf-8) string but already
encoded into a byte string.
=head1 SEE ALSO
This module is part of XML-Compile-SOAP-Daemon distribution version 3.13,
built on November 02, 2017. Website: F<http://perl.overmeer.net/xml-compile/>
Please post questions or ideas to the mailinglist at
F<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile> .
For live contact with other developers, visit the C<#xml-compile> channel
on C<irc.perl.org>.
=head1 LICENSE
Copyrights 2007-2017 by [Mark Overmeer]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See F<http://dev.perl.org/licenses/>