NAME
HTTP::Daemon::UNIX - HTTP::Daemon over Unix sockets
VERSION
This document describes version 0.05 of HTTP::Daemon::UNIX (from Perl
distribution HTTP-Daemon-UNIX), released on 2014-12-05.
SYNOPSIS
use HTTP::Daemon::UNIX;
# arguments will be passed to IO::Socket::UNIX, but Listen=>1 and
# Type=>SOCK_STREAM will be added by default. also, HTTP::Daemon::UNIX will try
# to delete stale socket first, for convenience.
my $d = HTTP::Daemon::UNIX->new(Local => "/path/to/unix.sock");
# will print something like: "http:path/to/unix.sock"
print "Please contact me at: <URL:", $d->url, ">\n";
# after that, use like you would use HTTP::Daemon
while (my $c = $d->accept) {
while (my $r = $c->get_request) {
if ($r->method eq 'GET' and $r->uri->path eq "/xyzzy") {
# remember, this is *not* recommended practice :-)
$c->send_file_response("/etc/passwd");
} else {
$c->send_error(RC_FORBIDDEN);
}
}
$c->close;
undef($c);
}
# client side code, using LWP::Protocol::http::SocketUnixAlt
use LWP::Protocol::http::SocketUnixAlt;
use LWP::UserAgent;
use HTTP::Request::Common;
my $ua = LWP::UserAgent->new;
my $orig_imp = LWP::Protocol::implementor("http");
LWP::Protocol::implementor(http => 'LWP::Protocol::http::SocketUnixAlt');
my $resp = $ua->request(GET "http:path/to/unix.sock//uri/path");
LWP::Protocol::implementor(http => $orig_imp);
DESCRIPTION
This is a quick hack to enable HTTP::Daemon to serve requests over Unix
sockets, by mixing in IO::Socket::UNIX and HTTP::Daemon as parents to
HTTP::Daemon::UNIX and overriding IO::Socket::INET-related stuffs.
Basic stuffs seem to be working, but this module has not been tested
extensively, so beware that things might blow up in your face.
SEE ALSO
HTTP::Daemon
LWP::Protocol::http::SocketUnixAlt
HOMEPAGE
Please visit the project's homepage at
<https://metacpan.org/release/HTTP-Daemon-UNIX>.
SOURCE
Source repository is at
<https://github.com/perlancar/perl-HTTP-Daemon-UNIX>.
BUGS
Please report any bugs or feature requests on the bugtracker website
<https://rt.cpan.org/Public/Dist/Display.html?Name=HTTP-Daemon-UNIX>
When submitting a bug or request, please include a test-file or a patch
to an existing test-file that illustrates the bug or desired feature.
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.