NAME
HTTP::Daemon::UNIX - HTTP::Daemon over Unix sockets
VERSION
This document describes version 0.06 of HTTP::Daemon::UNIX (from Perl distribution HTTP-Daemon-UNIX), released on 2016-08-03.
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.
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.
SEE ALSO
LWP::Protocol::http::SocketUnixAlt
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 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.